+ XDB::execute("UPDATE profiles
+ SET section = {?}
+ WHERE pid = {?}",
+ $value, $page->pid());
+ }
+
+ public function getText($value) {
+ $sectionsList = DirEnum::getOptions(DirEnum::SECTIONS);
+ return $sectionsList[$value];
+ }
+}
+
+class ProfileSettingBinets implements ProfileSetting
+{
+ public function __construct()
+ {
+ }
+
+ public function value(ProfilePage &$page, $field, $value, &$success)
+ {
+ if (is_null($value)) {
+ $value = array();
+ $res = XDB::iterRow("SELECT g.id, g.text
+ 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;
+ }
+ }
+ if (!is_array($value)) {
+ $value = array();
+ }
+ ksort($value);
+ $success = true;
+ return $value;
+ }
+
+ public function save(ProfilePage &$page, $field, $value)
+ {
+ XDB::execute("DELETE FROM profile_binets
+ WHERE pid = {?}",
+ $page->pid());
+ if (!count($value)) {
+ return;
+ }
+ $insert = array();
+ foreach ($value as $id=>$text) {
+ $insert[] = XDB::format('({?}, {?})', $page->pid(), $id);
+ }
+ XDB::execute("INSERT INTO profile_binets (pid, binet_id)
+ VALUES " . implode(',', $insert));
+ }
+
+ public function getText($value) {
+ return implode(', ', $value);