Example #1
0
         $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>';
Example #2
0
     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:
Example #3
0
                 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;
Example #4
0
             $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) {
Example #5
0
     {
         $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 '&raquo; ' . ahref('a/chatroom/empty/' . $this->child, 'Empty chatroom of messages') . '<br/>';
     echo '<br/>';
     echo '&raquo; ' . 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');
Example #6
0
     // 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 '&raquo; ' . 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;
Example #7
0
                    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;
}
Example #8
0
    $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();
}
Example #9
0
}
$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);
Example #10
0
 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, '&amp;wikilock=0').'\'"/>';
Example #11
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/>';
}
Example #12
0
        }
        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;
}