Ejemplo n.º 1
0
 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();
 }
Ejemplo n.º 2
0
<?php

//TODO: ability to delete userdata field
//TODO: abiltiy to mark a userdata field as required at registration (such as email)
namespace cd;

$session->requireSuperAdmin();
switch ($this->owner) {
    case 'list':
        echo '<h1>Existing userdata fields</h1>';
        $list = UserDataField::getAll();
        $dt = new YuiDatatable();
        $dt->addColumn('id', 'Name', 'link', 'a/userdata/edit/', 'name');
        $dt->addColumn('label', 'Label');
        $dt->addColumn('type', 'Type', 'array', UserDataField::getTypes());
        $dt->setDataSource($list);
        echo $dt->render();
        echo '<br/>';
        echo '&raquo; ' . ahref('a/userdata/new', 'Create new field');
        break;
    case 'new':
        function newSubmit($p)
        {
            $f = new UserDataField();
            $f->name = $p['name'];
            $f->type = $p['type'];
            $f->label = $p['label'];
            $f->id = $f->store();
            if ($f->type == UserDataField::RADIO) {
                js_redirect('a/userdata/edit/' . $f->id);
            } else {
Ejemplo n.º 3
0
<?php

namespace cd;

$session->requireAdmin();
if (!$this->owner) {
    $this->owner = 'default';
}
switch ($this->owner) {
    case 'default':
        echo '<h1>User feedback</h1>';
        $list = Feedback::getUnanswered();
        //    d($list);
        $dt = new YuiDatatable();
        $dt->addColumn('id', '#', 'link', 'a/feedback/handle/', 'subject');
        $dt->addColumn('time_created', 'Created');
        $dt->addColumn('from', 'From', 'link', 'u/profile/');
        $dt->setDataSource($list);
        echo $dt->render();
        break;
    case 'handle':
        // child = tblFeedback.id
        function fbHandle($p)
        {
            $msg_id = Message::send($p['to'], $p['msg']);
            Feedback::markHandled($p['owner'], $msg_id);
            js_redirect('a/feedback/default');
        }
        $fb = Feedback::get($this->child);
        if (!$fb) {
            die('Eppp');
Ejemplo n.º 4
0
 * File manager
 */
// XXX: verify before deleting file!
//TODO: limit selection by selecting image type, dates, etc
//TODO: pagination
namespace cd;

$session->requireAdmin();
if (!$this->owner) {
    $this->owner = 'list';
}
switch ($this->owner) {
    case 'list':
        echo '<h1>All uploaded files</h1>';
        $list = File::getList();
        $dt = new YuiDatatable();
        $dt->addColumn('id', '#', 'link', 'a/files/details/', 'name');
        $dt->addColumn('time_uploaded', 'Uploaded');
        $dt->addColumn('uploader', 'Uploader', 'link', 'u/profile/');
        $dt->addColumn('type', 'Type');
        $dt->addColumn('size', 'Size');
        $dt->addColumn('mimetype', 'Mime');
        $dt->setDataSource($list);
        echo $dt->render();
        break;
    case 'delete':
        if (confirmed('Are you sure you want to permanently delete this file?')) {
            File::unlink($this->child);
            js_redirect('a/files/list');
        }
        break;
Ejemplo n.º 5
0
<?php

//TODO later: ability to export results (csv, xls, ...?)
namespace cd;

$session->requireAdmin();
if (!$this->owner) {
    $this->owner = 'list';
}
switch ($this->owner) {
    case 'list':
        echo '<h1>Manage polls</h1>';
        $list = PollItem::getPolls(SITE);
        $dt = new YuiDatatable();
        $dt->addColumn('id', '#', 'link', 'a/polls/edit/', 'text');
        $dt->addColumn('time_start', 'Starts');
        $dt->addColumn('time_end', 'Ends');
        $dt->addColumn('time_created', 'Created');
        $dt->setDataSource($list);
        echo $dt->render();
        echo '<br/>';
        echo ahref('a/polls/add', 'Add new poll');
        break;
    case 'edit':
        // child = poll id
        function editPoll($p)
        {
            if (empty($_POST['poll_q'])) {
                return;
            }
            PollItem::updatePoll($p['poll'], $p['poll_q']);
Ejemplo n.º 6
0
namespace cd;

switch ($this->owner) {
    case 'online':
        $list = UserList::getUsersOnline();
        echo '<h2>Showing all users online';
        echo ' (' . count($list) . ' hits)</h2>';
        $dt = new YuiDatatable();
        $dt->addColumn('id', 'Username', 'link', 'u/profile/', 'name');
        $dt->addColumn('time_last_active', 'Last active');
        $dt->addColumn('type', 'Type', 'array', getSessionTypes());
        $dt->setDataSource($list);
        //$dt->setRowsPerPage(10);
        echo $dt->render();
        break;
    case 'newest':
        // shows the newest registered users on the site
        echo '<h2>Showing newest members</h2>';
        $list = UserList::getNewUsers(5);
        $dt = new YuiDatatable();
        $dt->addColumn('id', 'Username', 'link', 'u/profile/', 'name');
        $dt->addColumn('time_created', 'Time created');
        $dt->addColumn('type', 'Type', 'array', getSessionTypes());
        $dt->setDataSource($list);
        //$dt->setRowsPerPage(10);
        echo $dt->render();
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Ejemplo n.º 7
0
<?php

namespace cd;

$session->requireAdmin();
if (!$this->owner) {
    $this->owner = 'default';
}
switch ($this->owner) {
    case 'default':
        echo '<h2>FAQ items</h2>';
        $list = FaqItem::getAll();
        $dt = new YuiDatatable();
        $dt->addColumn('id', 'Question', 'link', 'a/faq/edit/', 'question');
        $dt->addColumn('time_created', 'Created');
        $dt->addColumn('creator', 'Creator', 'link', 'u/profile/');
        $dt->setDataSource($list);
        echo $dt->render();
        echo '<br/>';
        echo '&raquo; ' . ahref('a/faq/add', 'Add new FAQ');
        break;
    case 'add':
        function createHandler($p)
        {
            $session = SessionHandler::getInstance();
            $o = new FaqItem();
            $o->question = $p['q'];
            $o->answer = $p['a'];
            $o->creator = $session->id;
            $o->time_created = sql_datetime(time());
            $o->id = $o->store();
Ejemplo n.º 8
0
<?php

namespace cd;

$session->requireAdmin();
echo '<h1>Available hash functions</h1>';
$data = "The quick brown fox jumps over the lazy dog";
echo 'Hash calculated from string <b>' . $data . '</b><br/>';
$list = array();
foreach (hash_algos() as $h) {
    $r = hash($h, $data);
    $list[] = array('algo' => $h, 'len' => strlen($r), 'hash' => $r);
}
$dt = new YuiDatatable();
$dt->addColumn('algo', 'Algo');
$dt->addColumn('len', 'Length');
$dt->addColumn('hash', 'Hash');
$dt->setRowsPerPage(50);
$dt->setDataSource($list);
echo $dt->render();
Ejemplo n.º 9
0
     //,    'link', 'a/moderation/handle/', 'name');
     $dt->addColumn('owner', 'Owner', 'link', 'a/user/', 'name');
     $dt->addColumn('type', 'Type', 'array', getModerationTypes());
     $dt->addColumn('time_created', 'Created');
     $dt->addColumn('time_handled', 'Approved');
     $dt->addColumn('handled_by', 'Approved by', 'link', 'a/user/', 'name');
     $dt->addColumn('data', 'Data');
     $dt->addColumn('reference', 'Reference');
     $dt->setDataSource($list);
     echo $dt->render();
     break;
 case 'denied':
     echo '<h1>Denied items in Moderation queue</h1>';
     $list = ModerationObject::getDenied();
     //d( $list );
     $dt = new YuiDatatable();
     $dt->addColumn('id', 'Id');
     //,    'link', 'a/moderation/handle/', 'name');
     $dt->addColumn('owner', 'Owner', 'link', 'a/user/', 'name');
     $dt->addColumn('type', 'Type', 'array', getModerationTypes());
     $dt->addColumn('time_created', 'Created');
     $dt->addColumn('time_handled', 'Denied');
     $dt->addColumn('handled_by', 'Denied by', 'link', 'a/user/', 'name');
     $dt->addColumn('data', 'Data');
     $dt->addColumn('reference', 'Reference');
     $dt->setDataSource($list);
     echo $dt->render();
     break;
 case 'handle':
     if (!$this->child) {
         die('SADFGFG');
Ejemplo n.º 10
0
echo 'Username filter: ' . xhtmlInput('usearch');
echo xhtmlSubmit('Search');
echo xhtmlFormClose();
echo '<br/>';
if (isset($_GET['online'])) {
    $list = UserList::getUsersOnline($filter);
    echo '<h2>Showing all users online';
} else {
    $list = UserList::getUsers($filter);
    echo '<h2>Showing all users';
}
if ($filter) {
    echo ', matching <u>' . $filter . '</u>';
}
echo ' (' . count($list) . ' hits)</h2>';
$dt = new YuiDatatable();
$dt->addColumn('id', 'Username', 'link', 'a/user/', 'name');
$dt->addColumn('email', 'E-mail');
$dt->addColumn('time_last_active', 'Last active');
$dt->addColumn('last_ip', 'Last IP');
$dt->addColumn('time_created', 'Created');
$dt->addColumn('is_online', 'Online?');
$dt->addColumn('type', 'Type', 'array', getSessionTypes());
// $dt->addColumn('userlevel',         'User level', 'array', getUserLevels() );
/*  //XXX row coloring not fully working in YuiDatatable
$header->embedCss(
'.yui-skin-sam .yui-dt tr.green_mark,'.
'.yui-skin-sam .yui-dt tr.green_mark td.yui-dt-asc,'.
'.yui-skin-sam .yui-dt tr.green_mark td.yui-dt-desc,'.
'.yui-skin-sam .yui-dt tr.green_mark td.yui-dt-asc,'.
'.yui-skin-sam .yui-dt tr.green_mark td.yui-dt-desc {'.
Ejemplo n.º 11
0
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;' . '}');
function gbHandler($p)
{
    $session = SessionHandler::getInstance();
    if ($session->id == $p['to']) {
Ejemplo n.º 12
0
<?php

namespace cd;

$session->requireLoggedIn();
switch ($this->owner) {
    case 'profile':
        echo '<h2>Showing the most recent visits of your profile page</h2>';
        $list = Visit::getAll(PROFILE, $session->id);
        $dt = new YuiDatatable();
        $dt->addColumn('ref', 'User', 'link', 'u/profile/', 'name');
        $dt->addColumn('time', 'Time of visit');
        $dt->setDataSource($list);
        //$dt->setRowsPerPage(10);
        echo $dt->render();
        break;
    default:
        throw new \Exception('no such view: ' . $this->owner);
}
Ejemplo n.º 13
0
    echo '<td>' . xhtmlInput('setting_name_' . $set['id'], $set['name']) . '</td>';
    echo '<td>' . xhtmlInput('setting_val_' . $set['id'], $set['value']) . '</td>';
    echo '<td><a href="' . relurl_add(array('remove_setting' => $set['name'])) . '">Remove</a></td>';
    echo '</tr>';
}
echo '</table>';
echo xhtmlSubmit('Save changes');
echo xhtmlFormClose() . '<br/><br/>';
echo '<h3>Add new user setting</h3>';
echo xhtmlForm('new_setting');
echo 'Name: ' . xhtmlInput('setting_name') . ' ';
echo 'Value: ' . xhtmlInput('setting_val') . ' ';
echo xhtmlSubmit('Add');
echo xhtmlFormClose() . '<br/><br/>';
echo '<h2>Login history</h2>';
$dt = new YuiDatatable();
$dt->addColumn('timeCreated', 'Timestamp');
$dt->addColumn('IP', 'IP');
$dt->addColumn('userAgent', 'User agent');
$dt->setSortOrder('timeCreated', 'desc');
$dt->setDataSource(LoginEntry::getHistory($user->id));
$dt->setRowsPerPage(10);
echo $dt->render();
if ($session->id != $this->owner) {
    echo '&raquo; <a href="' . relurl_add(array('remove' => 1)) . '">Remove user</a><br/><br/>';
}
/*
        echo '<h2>'.t('Userdata').'</h2>';
        editUserdataSettings($user->id);

        echo '<h2>'.t('Events').'</h2>';