$fileId = File::importImage(USER, $p['img'], $p['album']); if ($fileId) { js_redirect('u/album/show/' . $session->id . '/' . $p['album']); } return false; } if (!$this->child) { die('nonoAAA'); } $album = PhotoAlbum::get($this->child); if ($album->owner != 0 && $album->owner != $session->id) { throw new \Exception('epic HACK attempt'); } echo '<h1>Upload photo to album ' . $album->name . '</h1>'; $form = new XhtmlForm(); $form->addHidden('album', $this->child); $form->addFile('img', 'Select file'); $form->addSubmit('Save'); $form->setHandler('handleUpload'); echo $form->render(); // only enable Html5Uploader for supported browsers $b = HttpUserAgent::getBrowser(); if ($b->name == 'Firefox' || $b->name == 'Chrome') { echo '<h1>' . ahref('u/album/uploadmulti/' . $this->child, $b->name . ' detected, try the new drag & drop multi image uploader') . '</h1>'; } break; case 'uploadmulti': if (!$this->child) { die('nonow2'); } echo '<h2>Multi image uploader</h2>';
if (!$fb) { die('Eppp'); } 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:
if (!empty($p['avatar_' . $i])) { if ($p['avatar_' . $i]['error'] == UPLOAD_ERR_NO_FILE) { continue; } $fileId = File::importImage(SITE, $p['avatar_' . $i]); UserDataFieldOption::set($f->id, 'avatar_' . $i, $fileId); } } break; } js_redirect('a/userdata/list'); } echo '<h1>Edit userdata field</h1>'; $field = UserDataField::get($this->child); $form = new XhtmlForm(); $form->addHidden('id', $field->id); /// XXX hack! $form->addInput('name', 'Name', $field->name); $form->addInput('label', 'Label', $field->label); $form->addDropdown('type', 'Type', UserDataField::getTypes(), $field->type); switch ($field->type) { case UserDataField::RADIO: for ($i = 1; $i < 6; $i++) { $opt = 'opt_' . $i; $val = UserDataFieldOption::get($field->id, $opt); $form->addInput($opt, 'Option ' . $i, $val); } break; case UserDataField::AVATAR: for ($i = 1; $i < 6; $i++) { $opt = 'avatar_' . $i;
$opt->title = $p['poll_a' . $i]; $opt->store(); } } if (!empty($p['poll_new_a'])) { $item = new CategoryItem(POLL); $item->owner = $p['poll']; $item->title = $p['poll_new_a']; $item->store(); } js_redirect('a/polls/edit/' . $p['poll']); } $poll = PollItem::get($this->child); echo '<h1>Edit poll</h1>'; $frm = new XhtmlForm(); $frm->addHidden('poll', $this->child); $frm->addInput('poll_q', 'Question', $poll->text); if (ts($poll->time_start) < time()) { $frm->addText($poll->time_start, 'Poll starts'); } else { $frm->addInput('poll_ts', 'Poll starts', $poll->time_start); } if (ts($poll->time_end) < time()) { $frm->addText($poll->time_end, 'Poll ends'); } else { $frm->addInput('poll_te', 'Poll ends', $poll->time_end); } if ($poll) { $cats = new CategoryList(POLL); $cats->setOwner($this->child); foreach ($cats->getItems() as $i => $opt) {
{ $o = new ChatRoom(); $o->id = $p['roomid']; $o->name = trim($p['name']); if ($p['locked']) { $session = SessionHandler::getInstance(); $o->locked_by = $session->id; $o->time_locked = sql_datetime(time()); } $o->store(); js_redirect('a/chatroom/list'); } $o = ChatRoom::get($this->child); echo '<h2>Edit chatroom ' . $o->name . '</h2>'; $x = new XhtmlForm(); $x->addHidden('roomid', $o->id); //XXX haxx $x->addInput('name', 'Name', $o->name, 200); $x->addCheckbox('locked', 'Lock chatroom (read only)', $o->locked_by ? 1 : 0); $x->addSubmit('Save'); $x->setHandler('editHandler'); echo $x->render(); echo '<br/>'; echo '» ' . ahref('a/chatroom/empty/' . $this->child, 'Empty chatroom of messages') . '<br/>'; echo '<br/>'; echo '» ' . ahref('a/chatroom/remove/' . $this->child, 'Remove chatroom') . '<br/>'; break; case 'remove': if (confirmed('Are you sure you want to remove this chatroom?')) { ChatRoom::remove($this->child); js_redirect('a/chatroom/list');
// child = tblFAQ.id function editHandler($p) { $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;
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; }
$c->private = 0; $c->time_created = sql_datetime(time()); $c->owner = $p['owner']; $c->creator = $session->id; $c->creator_ip = client_ip(); $c->store(); redir($_SERVER['REQUEST_URI']); } $list = Comment::getByTypeAndOwner($this->type, $this->owner); foreach ($list as $c) { $user = User::get($c->creator); if ($user) { echo $user->name . ' wrote: '; } else { echo 'user id ' . $c->creator . ' wrote: '; } echo nl2br($c->msg) . '<br/>'; echo '<span title="' . ago($c->time_created) . '">'; echo sql_datetime($c->time_created); echo '</span>'; echo '<hr/>'; } if ($session->id) { $form = new XhtmlForm('addcomment'); $form->addHidden('type', $this->type); $form->addHidden('owner', $this->owner); $form->addRichedit('comment', t('Write a comment'), '', 300, 80); $form->addSubmit('Save'); $form->setHandler('handleSubmit'); echo $form->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 '<h2>Edit wiki ' . $this->child . '</h2>'; $menu = new XhtmlMenu(); $menu->setCss('wiki_menu'); $menu->add(t('Article'), 'u/wiki/show/' . $this->child); $menu->add(t('Edit'), 'u/wiki/edit/' . $this->child); $menu->add(t('History'), 'u/wiki/history/' . $this->child); echo '<div class="wiki">'; echo $menu->render(); /* if (!$session->isAdmin && !$this->lockerId) { echo "WIKI LOCKED"; return; } */ $form = new XhtmlForm('wiki_edit'); $form->addHidden('wiki_name', $this->child); ///XXXX ugly hack $form->addText('Edit wiki article ' . $this->child); /* if ($this->lockerId) echo '<div class="wiki_locked">This article is currently locked from editing.</div>'; */ $rows = 8 + substr_count($wiki->text, "\n"); if ($rows > 36) { $rows = 36; } $form->addRichedit('text', '', $wiki->text); /* if ($session->isAdmin) { if ($this->lockerId) { echo '<input type="button" class="button" value="'.t('Unlock').'" onclick="location.href=\''.URLadd('WikiEdit:'.$this->name, '&wikilock=0').'\'"/>';
//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; }