X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fprofile%2Fgroups.inc.php;h=8aadbddc7632d1d744fe200a22eb189f67d3c512;hb=7996ae8cd41fbb3ccd748eaed71a50f866269c6e;hp=79485191da92547373008e6eb892beb9297b0b9a;hpb=fb813fb52d5ab65ca9a5b92b5cb9089523380d79;p=platal.git diff --git a/modules/profile/groups.inc.php b/modules/profile/groups.inc.php index 7948519..8aadbdd 100644 --- a/modules/profile/groups.inc.php +++ b/modules/profile/groups.inc.php @@ -19,7 +19,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -class ProfileSection implements ProfileSetting +class ProfileSettingSection implements ProfileSetting { public function value(ProfilePage &$page, $field, $value, &$success) { @@ -43,17 +43,10 @@ class ProfileSection implements ProfileSetting } } -class ProfileGroup implements ProfileSetting +class ProfileSettingBinets 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) @@ -61,9 +54,9 @@ class ProfileGroup implements ProfileSetting 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; @@ -79,8 +72,8 @@ class ProfileGroup implements ProfileSetting public function save(ProfilePage &$page, $field, $value) { - XDB::execute("DELETE FROM {$this->table}_ins - WHERE {$this->user_field} = {?}", + XDB::execute("DELETE FROM profile_binets + WHERE pid = {?}", $page->pid()); if (!count($value)) { return; @@ -89,20 +82,20 @@ class ProfileGroup implements ProfileSetting 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)); } } -class ProfileGroups extends ProfilePage +class ProfileSettingGroups extends ProfilePage { protected $pg_template = 'profile/groups.tpl'; public function __construct(PlWizard &$wiz) { parent::__construct($wiz); - $this->settings['section'] = new ProfileSection(); - $this->settings['binets'] = new ProfileGroup('binets', 'user_id', 'binet_id'); + $this->settings['section'] = new ProfileSettingSection(); + $this->settings['binets'] = new ProfileSettingBinets(); $this->watched['section'] = $this->watched['binets'] = true; }