$session->requireAdmin(); function addUserGroupSubmit($p) { $grp = new UserGroup(); $grp->setName($p['name']); $grp->setInfo($p['info']); $grp->setLevel($p['level']); $grp->save(); redir('a/usergroups'); } $header->setTitle('Admin: Manage user groups'); echo '<h1>Manage user groups</h1>'; echo '<h2>Add new group</h2>'; $form = new XhtmlForm('adm_usergroup'); $form->addInput('name', 'Group name'); $form->addTextarea('info', 'Info'); $form->addDropdown('level', 'Level', getUserLevels()); $form->addSubmit('Add'); $form->setHandler('addUserGroupSubmit'); echo $form->render(); echo '<br/>'; echo '<h2>Existing groups</h2>'; echo '<table>'; echo '<tr><th>Name</th><th>Level</th><th>Info</th><th>Created</th></tr>'; foreach (UserGroup::getAll() as $grp) { echo '<tr>'; echo '<td>' . ahref('a/usergroup/' . $grp->getId(), $grp->getName()) . '</td>'; echo '<td>' . $grp->getLevelDesc() . '</td>'; echo '<td>' . $grp->getInfo() . '</td>'; echo '<td>' . sql_datetime($grp->getTimeCreated()) . '</td>'; echo '</tr>';
} if ($fb->type == USER) { $from = User::get($fb->from); echo '<h2>User feedback from ' . $fb->name . '</h2>'; } echo 'Subject: ' . $fb->subject . '<br/>'; if ($fb->body) { echo 'Message: ' . nl2br($fb->body); } echo '<br/>'; if ($fb->type == USER) { $msg = "In response to your feedback:\n\n" . $fb->body; $frm = new XhtmlForm(); $frm->addHidden('owner', $this->child); $frm->addHidden('to', $fb->from); $frm->addTextarea('msg', 'Reply', $msg); $frm->addSubmit('Send'); $frm->setHandler('fbHandle'); echo $frm->render(); } echo '<br/>'; echo ahref('a/feedback/markhandled/' . $this->child, 'Mark as handled'); break; case 'markhandled': // child = tblFeedback.id Feedback::markHandled($this->child); js_redirect('a/feedback/default'); break; default: echo 'No handler for view ' . $this->owner; }
{ $session = SessionHandler::getInstance(); $o = FaqItem::get($p['id']); $o->question = $p['q']; $o->answer = $p['a']; $o->creator = $session->id; $o->time_created = sql_datetime(time()); $o->store(); js_redirect('a/faq'); } echo '<h2>Edit FAQ</h2>'; $faq = FaqItem::get($this->child); $x = new XhtmlForm(); $x->addHidden('id', $this->child); $x->addInput('q', 'Question', $faq->question); $x->addTextarea('a', 'Answer', $faq->answer); $x->addSubmit('Save'); $x->setHandler(__NAMESPACE__ . '\\editHandler'); echo $x->render(); echo '<br/>'; echo '» ' . ahref('a/faq/delete/' . $this->child, 'Delete FAQ entry'); break; case 'delete': // child = tblFAQ.id if (confirmed('Are you sure you want to delete this FAQ entry?')) { FaqItem::remove($this->child); js_redirect('a/faq'); } break; default: echo 'No handler for view ' . $this->owner;
break; default: throw new \Exception('eh'); } echo '<hr/>'; } break; case 'send': // child = send to user id if (Bookmark::exists(BOOKMARK_USERBLOCK, $session->id, $this->child)) { echo 'User has blocked you from access'; return; } function msgSubmit($p) { Message::send($p['to'], $p['msg']); js_redirect('u/messages/inbox'); } $user = User::get($this->child); echo '<h2>Send a message to ' . $user->name . '</h2>'; $form = new XhtmlForm(); $form->addTextarea('msg', 'Msg'); $form->addHidden('to', $this->child); $form->addSubmit('Send'); $form->setHandler('msgSubmit'); $form->setFocus('msg'); echo $form->render(); break; default: echo 'No handler for view ' . $this->owner; }
<?php namespace cd; function fbHandler($p) { $session = SessionHandler::getInstance(); $o = new Feedback(); $o->type = USER; $o->subject = $p['subj']; $o->body = $p['body']; $o->from = $session->id; $o->time_created = sql_datetime(time()); $o->store(); js_redirect(''); // jump to start page } echo '<h2>Send us feedback</h2>'; $x = new XhtmlForm(); $x->addInput('subj', 'Subject'); $x->addTextarea('body', 'Body'); $x->addSubmit('Send'); $x->setHandler('fbHandler'); echo $x->render();
$user_id = $this->owner; if (!$this->owner) { $user_id = $session->id; } $user = User::get($user_id); if (!$user) { die('ECK'); } if (Bookmark::exists(BOOKMARK_USERBLOCK, $session->id, $user_id)) { echo 'User has blocked you from access'; return; } echo '<h1>Guestbook for ' . $user->name . '</h1>'; $form = new XhtmlForm('msg'); $form->addHidden('to', $this->owner); $form->addTextarea('body', 'Body'); $form->addSubmit('Send'); $form->setFocus('body'); $form->onSubmit('return check_gb(this);'); $form->setHandler('gbHandler'); $form->handle(); // to get latest added entry in the following query $list = Guestbook::getEntries($user_id); $dt = new YuiDatatable(); $dt->addColumn('creator', 'Written by'); /// XXXX show username, show link to user page $dt->addColumn('time_created', 'When'); $dt->addColumn('body', 'Msg'); $dt->setSortOrder('time_created', 'desc'); $dt->setDataSource($list); echo $dt->render();
/** * Utility to decode base64 strings */ namespace cd; $session->requireSuperAdmin(); if (!$this->owner) { $this->owner = 'default'; } switch ($this->owner) { case 'default': function onSubmit($p) { $error = ErrorHandler::getInstance(); $res = base64_decode($p['data'], true); if ($res === false) { $error->add('Input is not base64 encoded'); return false; } echo dh($res); } $form = new XhtmlForm(); $form->addTextarea('data'); $form->setFocus('data'); $form->addSubmit('Analyze'); $form->setHandler('onSubmit'); echo $form->render(); break; default: throw new \Exception('no such view: ' . $this->owner); }
//TODO: ability to remove a empty usergroup namespace cd; $session->requireAdmin(); $grp = new UserGroup($this->owner); $header->setTitle('Admin: Manage user group: ' . $grp->getName()); echo '<h1>Manage user group: ' . $grp->getName() . '</h1>'; echo 'Created at ' . sql_datetime($grp->getTimeCreated()) . ' by ' . $grp->getCreatorName() . '<br/><br/>'; function saveUserGroupSubmit($p) { $grp = new UserGroup($p['g_id']); $grp->setName($p['name']); $grp->setInfo($p['info']); $grp->setLevel($p['level']); $grp->save(); return true; } $form = new XhtmlForm('adm_usergroup'); $form->addHidden('g_id', $grp->getId()); //XXXX hax $form->addInput('name', 'Group name', $grp->getName()); $form->addTextarea('info', 'Info', $grp->getInfo()); $form->addDropdown('level', 'Level', getUserLevels(), $grp->getLevel()); $form->addSubmit('Save'); $form->setHandler('saveUserGroupSubmit'); echo $form->render(); echo '<br/><br/>'; echo '<h1>Group members</h1>'; foreach ($grp->getMembers() as $user) { echo ahref('a/user/' . $user->id, $user->name) . '<br/>'; }
} echo '<h1>Report user ' . $u->name . '</h1>'; $form = new XhtmlForm(); $form->addHidden('id', $u->id); //XXX ugly hack $form->addTextarea('reason', 'Reason'); $form->addSubmit('Send'); $form->setHandler('handleReportUser'); echo $form->render(); break; case 'photo': // child = file id function handleReportPhoto($p) { ModerationObject::add(MODERATE_PHOTO, $p['id'], $p['reason']); js_redirect('u/photo/show/' . $p['id']); } $f = File::get($this->child); d($f); echo '<h1>Report photo ' . $f->id . '</h1>'; $form = new XhtmlForm(); $form->addHidden('id', $f->id); //XXX ugly hack $form->addTextarea('reason', 'Reason'); $form->addSubmit('Send'); $form->setHandler('handleReportPhoto'); echo $form->render(); break; default: echo 'no such view: ' . $this->owner; }