function handleEdit($p) { $session = SessionHandler::getInstance(); foreach (UserDataField::getAll() as $f) { if (!empty($p['remove_' . $f->id])) { UserSetting::set($session->id, $f->name, 0); continue; } switch ($f->type) { case UserDataField::IMAGE: if ($p[$f->name]['error'] == UPLOAD_ERR_NO_FILE) { continue; } $album = PhotoAlbum::getProfileAlbumId(); $fileId = File::importImage(USER, $p[$f->name], $album); UserSetting::set($session->id, $f->name, $fileId); break; default: UserSetting::set($session->id, $f->name, $p[$f->name]); } } js_redirect('u/profile'); }
<?php //TODO: ability to delete userdata field //TODO: abiltiy to mark a userdata field as required at registration (such as email) namespace cd; $session->requireSuperAdmin(); switch ($this->owner) { case 'list': echo '<h1>Existing userdata fields</h1>'; $list = UserDataField::getAll(); $dt = new YuiDatatable(); $dt->addColumn('id', 'Name', 'link', 'a/userdata/edit/', 'name'); $dt->addColumn('label', 'Label'); $dt->addColumn('type', 'Type', 'array', UserDataField::getTypes()); $dt->setDataSource($list); echo $dt->render(); echo '<br/>'; echo '» ' . ahref('a/userdata/new', 'Create new field'); break; case 'new': function newSubmit($p) { $f = new UserDataField(); $f->name = $p['name']; $f->type = $p['type']; $f->label = $p['label']; $f->id = $f->store(); if ($f->type == UserDataField::RADIO) { js_redirect('a/userdata/edit/' . $f->id); } else {