projects
/
platal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do not store profile modification of null fields.
[platal.git]
/
modules
/
profile
/
groups.inc.php
diff --git
a/modules/profile/groups.inc.php
b/modules/profile/groups.inc.php
index
7948519
..
2d7caaa
100644
(file)
--- a/
modules/profile/groups.inc.php
+++ b/
modules/profile/groups.inc.php
@@
-1,6
+1,6
@@
<?php
/***************************************************************************
<?php
/***************************************************************************
- * Copyright (C) 2003-201
0
Polytechnique.org *
+ * Copyright (C) 2003-201
1
Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
@@
-19,7
+19,7
@@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-class ProfileSection implements ProfileSetting
+class ProfileSe
ttingSe
ction implements ProfileSetting
{
public function value(ProfilePage &$page, $field, $value, &$success)
{
{
public function value(ProfilePage &$page, $field, $value, &$success)
{
@@
-39,21
+39,19
@@
class ProfileSection implements ProfileSetting
XDB::execute("UPDATE profiles
SET section = {?}
WHERE pid = {?}",
XDB::execute("UPDATE profiles
SET section = {?}
WHERE pid = {?}",
- $value, $page->pid());
+ ($value == 0) ? null : $value, $page->pid());
+ }
+
+ public function getText($value) {
+ $sectionsList = DirEnum::getOptions(DirEnum::SECTIONS);
+ return $sectionsList[$value];
}
}
}
}
-class Profile
Group
implements ProfileSetting
+class Profile
SettingBinets
implements ProfileSetting
{
{
- private $table;
- private $user_field;
- private $group_field;
-
- public function __construct($table, $user, $group)
+ public function __construct()
{
{
- $this->table = $table;
- $this->user_field = $user;
- $this->group_field = $group;
}
public function value(ProfilePage &$page, $field, $value, &$success)
}
public function value(ProfilePage &$page, $field, $value, &$success)
@@
-61,9
+59,9
@@
class ProfileGroup implements ProfileSetting
if (is_null($value)) {
$value = array();
$res = XDB::iterRow("SELECT g.id, g.text
if (is_null($value)) {
$value = array();
$res = XDB::iterRow("SELECT g.id, g.text
- FROM
{$this->table}_def
AS g
- INNER JOIN
{$this->table}_ins AS i ON (i.{$this->group_field}
= g.id)
- WHERE i.
{$this->user_field}
= {?}",
+ FROM
profile_binet_enum
AS g
+ INNER JOIN
profile_binets AS i ON (i.binet_id
= g.id)
+ WHERE i.
pid
= {?}",
$page->pid());
while (list($gid, $text) = $res->next()) {
$value[intval($gid)] = $text;
$page->pid());
while (list($gid, $text) = $res->next()) {
$value[intval($gid)] = $text;
@@
-79,8
+77,8
@@
class ProfileGroup implements ProfileSetting
public function save(ProfilePage &$page, $field, $value)
{
public function save(ProfilePage &$page, $field, $value)
{
- XDB::execute("DELETE FROM
{$this->table}_in
s
- WHERE
{$this->user_field}
= {?}",
+ XDB::execute("DELETE FROM
profile_binet
s
+ WHERE
pid
= {?}",
$page->pid());
if (!count($value)) {
return;
$page->pid());
if (!count($value)) {
return;
@@
-89,20
+87,24
@@
class ProfileGroup implements ProfileSetting
foreach ($value as $id=>$text) {
$insert[] = XDB::format('({?}, {?})', $page->pid(), $id);
}
foreach ($value as $id=>$text) {
$insert[] = XDB::format('({?}, {?})', $page->pid(), $id);
}
- XDB::execute("INSERT INTO
{$this->table}_ins ({$this->user_field}, {$this->group_field}
)
+ XDB::execute("INSERT INTO
profile_binets (pid, binet_id
)
VALUES " . implode(',', $insert));
}
VALUES " . implode(',', $insert));
}
+
+ public function getText($value) {
+ return implode(', ', $value);
+ }
}
}
-class ProfileGroups extends ProfilePage
+class Profile
Page
Groups extends ProfilePage
{
protected $pg_template = 'profile/groups.tpl';
public function __construct(PlWizard &$wiz)
{
parent::__construct($wiz);
{
protected $pg_template = 'profile/groups.tpl';
public function __construct(PlWizard &$wiz)
{
parent::__construct($wiz);
- $this->settings['section'] = new ProfileSection();
- $this->settings['binets'] = new Profile
Group('binets', 'user_id', 'binet_id'
);
+ $this->settings['section'] = new ProfileSe
ttingSe
ction();
+ $this->settings['binets'] = new Profile
SettingBinets(
);
$this->watched['section'] = $this->watched['binets'] = true;
}
$this->watched['section'] = $this->watched['binets'] = true;
}
@@
-120,8
+122,7
@@
class ProfileGroups extends ProfilePage
WHERE a.inscriptible != 0
AND (a.cat = 'GroupesX' OR a.cat = 'Institutions')
ORDER BY a.cat, a.dom, a.nom"));
WHERE a.inscriptible != 0
AND (a.cat = 'GroupesX' OR a.cat = 'Institutions')
ORDER BY a.cat, a.dom, a.nom"));
- # XXX: FIXME: promo_sortie
- $page->assign('old', (int)date('Y') >= S::i('promo_sortie'));
+ $page->assign('old', (int) date('Y') >= $this->profile->grad_year);
}
}
}
}