Example #1
0
{
    $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>';
}
echo '</table>';
Example #2
0
        $form->addSubmit('Save');
        $form->setHandler('handleEditPassword');
        echo $form->render();
        break;
    case 'status':
        function handleEditStatus($p)
        {
            $session = SessionHandler::getInstance();
            if (!$session->id) {
                return;
            }
            PersonalStatus::setStatus($session->id, $p['status']);
            js_redirect('u/profile');
        }
        echo '<h1>Change status</h1>';
        $form = new XhtmlForm();
        $form->addInput('status', '');
        $form->addSubmit('Save');
        $form->setHandler('handleEditStatus');
        $form->setFocus('status');
        echo $form->render();
        break;
        break;
    default:
        echo 'no such view: ' . $view;
}
?>



<?php 
Example #3
0
        break;
    case 'remove':
        if (confirmed('Are you sure you want to remove this chatroom?')) {
            ChatRoom::remove($this->child);
            js_redirect('a/chatroom/list');
        }
        break;
    case 'empty':
        if (confirmed('Are you sure you want to remove all messages from this chatroom?')) {
            ChatMessage::deleteByRoom($this->child);
            js_redirect('a/chatroom/list');
        }
        break;
    case 'new':
        function createHandler($p)
        {
            $o = new ChatRoom();
            $o->name = trim($p['name']);
            $o->id = $o->store();
            js_redirect('a/chatroom/list');
        }
        echo '<h2>Create new chatroom</h2>';
        $x = new XhtmlForm();
        $x->addInput('name', 'Name');
        $x->addSubmit('Create');
        $x->setHandler('createHandler');
        echo $x->render();
        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
                $item->title = $p['poll_a' . $i];
                $item->store();
            }
            js_redirect('a/polls/list');
        }
        echo '<h2>Add new poll</h2>';
        $frm = new XhtmlForm();
        $frm->addInput('poll_q', 'Question');
        //    echo '<div id="poll_period_selector">';
        $dur = array('1d' => '1 day', '1w' => '1 week', '1m' => '1 month');
        $frm->addDropdown('poll_dur', 'Duration', $dur, '1w');
        $start = array('thismonday' => 'monday this week', 'nextmonday' => 'monday next week', 'nextfree' => 'next free time');
        $frm->addDropdown('poll_start', 'Starting', $start, 'nextmonday');
        //    echo '<a href="#" onclick="hide_el(\'poll_period_selector\');show_el(\'poll_period_manual\')">Enter dates manually</a>';
        //    echo '</div>';
        //    echo '<div id="poll_period_manual" style="display: none;">';
        //        echo 'Start time: '.xhtmlInput('poll_start_man').' (format YYYY-MM-DD HH:MM)<br/>';
        //        echo 'End time: '.xhtmlInput('poll_end_man').'<br/>';
        //        echo '<a href="#" onclick="hide_el(\'poll_period_manual\');show_el(\'poll_period_selector\')">Use dropdown menus instead</a>';
        //    echo '</div>';
        echo '<br/><br/>';
        for ($i = 1; $i <= 8; $i++) {
            $frm->addInput('poll_a' . $i, 'Answer ' . $i);
        }
        $frm->addSubmit('Create');
        $frm->setHandler('addPoll');
        echo $frm->render();
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Example #6
0
        $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;
                    $val = UserDataFieldOption::get($field->id, $opt);
                    if ($val) {
                        $img = new XhtmlComponentImage();
                        $img->src = getThumbUrl($val);
                        $form->add($img, 'Existing picture ' . $i);
                        //                $form->addCheckbox('remove_'.$f->id, 'Remove photo');
                    }
                    $form->addFile($opt, 'Avatar ' . $i, $val);
                }
                break;
        }
        $form->addSubmit('Save');
        $form->setHandler('editSubmit');
        echo $form->render();
        break;
    default:
        echo 'No handler for view ' . $this->owner;
}
Example #7
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;
}
Example #8
0
$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();
if ($user_id == $session->id) {
    return;
}
$header->registerJsFunction('function check_gb(frm)' . '{' . 'if (!frm.body.value)' . 'return false;' . 'return true;' . '}');
Example #9
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 #10
0
     {
         if (!is_url($p['url'])) {
             $error = ErrorHandler::getInstance();
             $error->add('Not an url');
             return false;
         }
         $eventId = TaskQueue::addTask(TASK_FETCH, $p['url']);
         echo '<div class="okay">URL to process has been enqueued.</div><br/>';
         echo ahref('queue/show/' . $eventId, 'Click here') . ' to perform further actions on this file.';
     }
     $url = 'http://processtest.x/kaos.mp3';
     echo 'Enter resource URL:<br/>';
     $form = new XhtmlForm('ul_pdf');
     $form->addInput('url', 'URL', $url, 60);
     $form->addSubmit('Add');
     $form->setHandler('uploadSubmit');
     echo $form->render();
     break;
 case 'overview':
     //FIXME show failed & in progress aswell
     $list = TaskQueue::getList(0, isset($_GET['completed']) ? ORDER_COMPLETED : ORDER_NEW);
     //d($list);die;
     if (!empty($list)) {
         foreach ($list as $row) {
             echo '<div class="item">';
             echo '<h2>#' . $row['entryId'] . ': ';
             switch ($row['orderType']) {
                 /*
                             case TASK_AUDIO_RECODE:
                                 echo 'Audio recode to <b>"'.$row['orderParams'].'"</b></h2>';
                                 break;
Example #11
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 #12
0
     */
     /*
             if ($session->isAdmin && !empty($_GET['wikilock'])) {
                 $q = 'UPDATE tblWiki SET lockerId='.$session->id.',timeLocked=NOW() WHERE wikiId='.$this->id;
                 $db->update($q);
                 $this->lockerId = $session->id;
                 addRevision(REVISIONS_WIKI, $this->id, 'The wiki has been locked', now(), $session->id, REV_CAT_LOCKED);
             } else if ($session->isAdmin && isset($_GET['wikilock'])) {
                 $q = 'UPDATE tblWiki SET lockerId=0 WHERE wikiId='.$this->id;
                 $db->update($q);
                 $this->lockerId = 0;
                 addRevision(REVISIONS_WIKI, $this->id, 'The wiki has been unlocked', now(), $session->id, REV_CAT_UNLOCKED);
             }
     */
     $form->addSubmit('Save');
     $form->setHandler('editWikiSubmit');
     echo $form->render();
     echo t('Last edited') . ' ';
     if ($wiki->time_edited) {
         echo formatTime($wiki->time_edited) . ' ' . t('by') . ' ' . User::get($wiki->edited_by)->name;
     } else {
         echo t('never');
     }
     echo '</div>';
     break;
 case 'history':
     // child = article name
     echo '<h2>History for wiki ' . $this->child . '</h2>';
     $wiki = Wiki::getByName($this->child);
     $menu = new XhtmlMenu();
     $menu->setCss('wiki_menu');
Example #13
0
$form = new XhtmlForm('login');
$form->cssTable('');
$u_img = new XhtmlComponentImage();
$u_img->src = $page->getRelativeCoreDevUrl() . 'gfx/icon_user.png';
$i = new XhtmlComponentInput();
$i->name = 'usr';
$form->add($i, t('Username'), $u_img);
$p_img = new XhtmlComponentImage();
$p_img->src = $page->getRelativeCoreDevUrl() . 'gfx/icon_keys.png';
$i = new XhtmlComponentPassword();
$i->name = 'pwd';
$form->add($i, t('Password'), $p_img);
$form->addSubmit('Log in', 'font-weight:bold');
$form->setFocus('usr');
$form->onSubmit('return check_login(this);');
$form->setHandler(__NAMESPACE__ . '\\loginHandler');
echo $form->render();
$header->registerJsFunction('function show_login_form()' . '{' . ($show_reg_div ? 'hide_el("' . $reg_div . '");' : '') . ($show_recover_div ? 'hide_el("' . $recover_div . '");' : '') . 'show_el("' . $login_div . '");' . '}');
if ($show_reg_div) {
    $header->registerJsFunction('function show_reg_form()' . '{' . 'hide_el("' . $login_div . '");' . 'show_el("' . $reg_div . '");' . '}');
    $x = new XhtmlComponentButton();
    $x->onClick('return show_reg_form();');
    $x->text = t('Register');
    $x->style = 'font-weight:bold';
    echo $x->render();
}
if ($show_recover_div) {
    $header->registerJsFunction('function show_recover_form()' . '{' . 'hide_el("' . $login_div . '");' . 'show_el("' . $recover_div . '");' . '}');
    $x = new XhtmlComponentButton();
    $x->onClick('return show_recover_form();');
    $x->text = t('Forgot password');
Example #14
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 #15
0
<?php

namespace cd;

switch ($this->owner) {
    case 'user':
        function handleSearch($p)
        {
            $list = UserList::getUsers($p['q']);
            echo '<h2>Showing users matching <u>' . $p['q'] . '</u>';
            echo ' (' . count($list) . ' hits)</h2>';
            $dt = new YuiDatatable();
            $dt->addColumn('id', 'Username', 'link', 'u/profile/', 'name');
            $dt->addColumn('time_last_active', 'Last active');
            $dt->setDataSource($list);
            echo $dt->render();
        }
        $form = new XhtmlForm();
        $form->addInput('q', 'Username search');
        $form->setFocus('q');
        $form->addSubmit('Search');
        $form->setHandler('handleSearch');
        echo $form->render();
        echo '<br/>';
        echo '&raquo; ' . ahref('u/users/online', 'Show users online') . '<br/>';
        echo '&raquo; ' . ahref('u/users/newest', 'Show new members') . '<br/>';
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Example #16
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 #17
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 #18
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 #19
0
    case 'new':
        $session->requireLoggedIn();
        // create new photo album
        echo '<h1>Create a new photo album</h1>';
        function handleNew($p)
        {
            $session = SessionHandler::getInstance();
            $o = new PhotoAlbum();
            $o->owner = $session->id;
            $o->name = $p['name'];
            $o->time_created = sql_datetime(time());
            if ($session->isSuperAdmin && $p['system']) {
                $o->owner = 0;
            }
            // create a system wide album
            $o->id = $o->store();
            js_redirect('u/album/show/' . $session->id . '/' . $o->id);
        }
        $form = new XhtmlForm();
        $form->addInput('name', 'Name');
        $form->setFocus('name');
        if ($session->isSuperAdmin) {
            $form->addCheckbox('system', 'System wide album? (SUPERADMIN)');
        }
        $form->addSubmit('Save');
        $form->setHandler('handleNew');
        echo $form->render();
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Example #20
0
namespace cd;

$session->requireSuperAdmin();
switch ($this->owner) {
    case 'version':
        echo "<h1>GeoIP database versions</h1>";
        foreach (GeoIp::getDatabaseVersions() as $d) {
            echo '<h2>' . $d['name'] . ' ' . $d['version'] . '</h2>';
            echo 'Date: ' . $d['date'] . ' (' . ago($d['date']) . ')<br/>';
            echo $d['file'] . '<br/>';
            echo '<br/>';
        }
        echo '&raquo; ' . ahref('a/geoip/query', 'Query GeoIP database');
        break;
    case 'query':
        function queryHandler($p)
        {
            echo '<h2>Result for ' . $p['ip'] . '</h2>';
            d(GeoIP::getRecord($p['ip']));
            echo 'Time zone: ' . GeoIP::getTimezone($p['ip']) . '<br/>';
        }
        echo '<h1>Query GeoIP database</h1>';
        $x = new XhtmlForm();
        $x->addInput('ip', 'IP');
        $x->addSubmit('Lookup');
        $x->setHandler('queryHandler');
        echo $x->render();
        break;
    default:
        echo 'No handler for view ' . $this->owner;
}