Example #1
0
$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>';
Example #2
0
        }
        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;
}
Example #3
0
     {
         $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;
 default:
     echo 'No handler for view ' . $this->owner;
Example #4
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 #5
0
<?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();
Example #6
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);
echo $dt->render();
Example #7
0
/**
 * 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);
}
Example #8
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 #9
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;
}