Example #1
0
                         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;
             $val = UserDataFieldOption::get($field->id, $opt);
             if ($val) {
Example #2
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 #3
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>';
Example #4
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 #5
0
$session->requireSuperAdmin();
switch ($this->owner) {
    case 'overview':
        echo '<h1>Blogs overview</h1>';
        echo '&raquo; ' . ahref('a/blogs/new', 'Write a new blog post');
        break;
    case 'new':
        function createHandler($p)
        {
            $session = SessionHandler::getInstance();
            $o = new BlogEntry();
            $o->owner = $session->id;
            $o->subject = trim($p['subject']);
            $o->body = trim($p['body']);
            $o->time_created = sql_datetime(time());
            $o->time_published = sql_datetime(time());
            $o->id = $o->store();
            js_redirect('a/blogs/overview');
        }
        echo '<h1>Write a new blog</h1>';
        $x = new XhtmlForm();
        $x->addInput('subject', 'Subject');
        $x->addRichedit('body', 'Body');
        $x->addSubmit('Create');
        $x->setHandler('createHandler');
        echo $x->render();
        break;
    default:
        echo 'No handler for view ' . $this->owner;
}
Example #6
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 #7
0
        $m->microtime = microtime(true);
        $m->store();
        $page->setMimeType('text/plain');
        echo 'OK';
        break;
    case 'show':
        // child = room id
        $cr = ChatRoom::get($this->child);
        echo '<h2>Chat in ' . $cr->name . '</h2>';
        if ($cr->locked_by) {
            echo 'The chatroom is locked!';
            return;
        }
        $div_name = 'chatroom_txt';
        $form_id = 'chatfrm';
        ChatRoomUpdater::init($this->child, $div_name, $form_id);
        $css = 'width:500px;' . 'height:300px;' . 'background-color:#eee;' . 'overflow:auto;';
        echo '<div id="' . $div_name . '" style="' . $css . '"></div>';
        $form = new XhtmlForm();
        $form->setId($form_id);
        $form->addInput('msg', $session->username . ':', '', 445);
        $form->setFocus('msg');
        $form->disableAutocomplete();
        echo $form->render();
        YuiTooltip::init();
        echo UserLink::render(27, "martin") . ' ';
        echo UserLink::render(32, "kotte");
        break;
    default:
        echo 'No handler for view ' . $this->owner;
}
Example #8
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 #9
0
         $pollId = PollItem::add(SITE, 0, $p['poll_q'], $p['poll_dur'], $p['poll_start']);
     }
     for ($i = 1; $i <= 8; $i++) {
         if (empty($p['poll_a' . $i])) {
             continue;
         }
         $item = new CategoryItem(POLL);
         $item->owner = $pollId;
         $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);
Example #10
0
     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;
 default:
Example #11
0
     // From here you ask the server to fetch a remote media for later processing
     function uploadSubmit($p)
     {
         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:
Example #12
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 #13
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;
}