コード例 #1
0
function get_highscore_list()
{
    $db = new DB_Seminar("SELECT murmeln_highscore.*,username FROM murmeln_highscore LEFT JOIN auth_user_md5 USING(user_id) ORDER BY score DESC LIMIT 20");
    $ret = '<ol>';
    $maxscore = 0;
    while ($db->next_record()) {
        $ret .= '<li><b>' . $db->f('score') . '</b> - 
				' . ($db->f('username') ? '<a href="' . UrlHelper::getLink('about.php?username='******'username')) . '">' . htmlReady(get_fullname_from_uname($db->f('username'))) . '</a>' : htmlready($db->f('name'))) . '</li>';
        $maxscore = $db->f('score');
    }
    $ret .= '</ol>';
    $db->query("DELETE FROM murmeln_highscore WHERE score < " . $maxscore);
    return $ret;
}
コード例 #2
0
ファイル: studygroup.php プロジェクト: ratbird/hope
 /**
  * offers specific member functions wrt perms
  *
  * @param string id of a studypgroup
  * @param string action that has to be performed
  * @param string status if applicable (e.g. tutor)
  *
  * @return void
  */
 function edit_members_action($id, $action, $status = '', $studipticket = false)
 {
     global $perm;
     $user = Request::get('user');
     $user = preg_replace('/[^\\w@.-]/', '', $user);
     if ($perm->have_studip_perm('tutor', $id)) {
         if (!$action) {
             $this->flash['success'] = _("Es wurde keine korrekte Option gewählt.");
         } elseif ($action == 'accept') {
             StudygroupModel::accept_user($user, $id);
             $this->flash['success'] = sprintf(_("Der Nutzer %s wurde akzeptiert."), get_fullname_from_uname($user, 'full', true));
         } elseif ($action == 'deny') {
             StudygroupModel::deny_user($user, $id);
             $this->flash['success'] = sprintf(_("Der Nutzer %s wurde nicht akzeptiert."), get_fullname_from_uname($user, 'full', true));
         } elseif ($action == 'cancelInvitation') {
             StudygroupModel::cancelInvitation($user, $id);
             $this->flash['success'] = sprintf(_("Die Einladung des Nutzers %s wurde gelöscht."), get_fullname_from_uname($user, 'full', true));
         } elseif ($perm->have_studip_perm('tutor', $id)) {
             if (!$perm->have_studip_perm('dozent', $id, get_userid($user)) || count(Course::find($id)->getMembersWithStatus('dozent')) > 1) {
                 if ($action == 'promote' && $perm->have_studip_perm('dozent', $id)) {
                     $status = $perm->have_studip_perm('tutor', $id, get_userid($user)) ? "dozent" : "tutor";
                     StudygroupModel::promote_user($user, $id, $status);
                     $this->flash['success'] = sprintf(_("Der Status des Nutzers %s wurde geändert."), get_fullname_from_uname($user, 'full', true));
                 } elseif ($action === "downgrade" && $perm->have_studip_perm('dozent', $id)) {
                     $status = $perm->have_studip_perm('dozent', $id, get_userid($user)) ? "tutor" : "autor";
                     StudygroupModel::promote_user($user, $id, $status);
                     $this->flash['success'] = sprintf(_("Der Status des Nutzers %s wurde geändert."), get_fullname_from_uname($user, 'full', true));
                 } elseif ($action == 'remove') {
                     $this->flash['question'] = sprintf(_("Möchten Sie wirklich den Nutzer %s aus der Studiengruppe entfernen?"), get_fullname_from_uname($user, 'full', true));
                     $this->flash['candidate'] = $user;
                 } elseif ($action == 'remove_approved' && check_ticket($studipticket)) {
                     StudygroupModel::remove_user($user, $id);
                     $this->flash['success'] = sprintf(_("Der Nutzer %s wurde aus der Studiengruppe entfernt."), get_fullname_from_uname($user, 'full', true));
                 }
             } else {
                 $this->flash['messages'] = array('error' => array('title' => _("Jede Studiengruppe muss mindestens einen Gruppengründer haben!")));
             }
         }
         //Für die QuickSearch-Suche:
         if (Request::get('choose_member_parameter') && Request::get('choose_member_parameter') !== _("Nutzer suchen")) {
             $this->flash['choose_member_parameter'] = Request::get('choose_member_parameter');
         }
         $this->redirect($this->url_for('course/studygroup/members/' . $id, array('view' => 'list')));
     } else {
         $this->redirect(URLHelper::getURL('seminar_main.php?auswahl=' . $id));
     }
 }
コード例 #3
0
ファイル: helpers.php プロジェクト: ratbird/hope
 function resource_message_action($resource_id)
 {
     $r_perms = new ResourceObjectPerms($resource_id, $GLOBALS['user']->id);
     if (!$r_perms->havePerm('admin')) {
         throw new AccessDeniedException();
     }
     $this->resource = new ResourceObject($resource_id);
     $title = sprintf(_("Nutzer von %s benachrichtigen"), htmlReady($this->resource->getName()));
     $form_fields['start_day'] = array('type' => 'text', 'size' => '10', 'required' => true, 'caption' => _("Belegungen berücksichtigen von"));
     $form_fields['start_day']['attributes'] = array('onMouseOver' => 'jQuery(this).datepicker();this.blur();', 'onChange' => '$(this).closest("form").submit();');
     $form_fields['start_day']['default_value'] = strftime('%x');
     $form_fields['end_day'] = array('type' => 'text', 'size' => '10', 'required' => true, 'caption' => _("Belegungen berücksichtigen bis"));
     $form_fields['end_day']['attributes'] = array('onMouseOver' => 'jQuery(this).datepicker();this.blur();', 'onChange' => '$(this).closest("form").submit();');
     $form_fields['end_day']['default_value'] = strftime('%x', strtotime('+6 months'));
     $form_fields['subject'] = array('type' => 'text', 'size' => '200', 'attributes' => array('style' => 'width:100%'), 'required' => true, 'caption' => _("Betreff"));
     $form_fields['subject']['default_value'] = $this->resource->getName();
     $form_fields['message'] = array('caption' => _("Nachricht"), 'type' => 'textarea', 'required' => true, 'attributes' => array('rows' => 4, 'style' => 'width:100%'));
     $form_buttons['save_close'] = array('caption' => _('OK'), 'info' => _("Benachrichtigung verschicken und Dialog schließen"));
     $form = new StudipForm($form_fields, $form_buttons, 'resource_message', false);
     $start_time = strtotime($form->getFormFieldValue('start_day'));
     $end_time = strtotime($form->getFormFieldValue('end_day'));
     $assign_events = new AssignEventList($start_time, $end_time, $resource_id, '', '', TRUE, 'all');
     $rec = array();
     while ($event = $assign_events->nextEvent()) {
         if ($owner_type = $event->getOwnerType()) {
             if ($owner_type == 'date') {
                 $seminar = new Seminar(Seminar::GetSemIdByDateId($event->getAssignUserId()));
                 foreach ($seminar->getMembers('dozent') as $dozent) {
                     $rec[$dozent['username']][] = strftime('%x %R', $event->begin) . ' - ' . strftime('%R', $event->end) . ' ' . $seminar->getName();
                 }
             } else {
                 $rec[get_username($event->getAssignUserId())][] = strftime('%x %R', $event->begin) . ' - ' . strftime('%R', $event->end);
             }
         }
     }
     if ($form->isSended() && count($rec) && $form->getFormFieldValue('message')) {
         $messaging = new Messaging();
         $ok = $messaging->insert_message($form->getFormFieldValue('message'), array_keys($rec), $GLOBALS['user']->id, null, null, null, '', $form->getFormFieldValue('subject'), true);
         PageLayout::postMessage(MessageBox::success(sprintf(_("Die Nachricht wurde an %s Nutzer verschickt"), $ok)));
         return $this->redirect(URLHelper::getUrl('resources.php?view=resources'));
     }
     if (!count($rec)) {
         PageLayout::postMessage(MessageBox::error(sprintf(_("Im Zeitraum %s - %s wurden keine Belegungen gefunden!"), strftime('%x', $start_time), strftime('%x', $end_time))));
         $this->no_receiver = true;
     } else {
         $submessage = array();
         foreach ($rec as $username => $slots) {
             $submessage[] = get_fullname_from_uname($username, 'full_rev_username', true) . ' ' . sprintf(_('(%s Belegungen)'), count($slots));
         }
         PageLayout::postMessage(MessageBox::info(sprintf(_("Benachrichtigung an %s Nutzer verschicken"), count($rec)), $submessage, true));
     }
     $this->form = $form;
     $this->response->add_header('X-Title', $title);
 }
コード例 #4
0
ファイル: _replace_founder.php プロジェクト: ratbird/hope
<?
# Lifter010: TODO
?>
<tr>
    <td style='text-align:right; vertical-align:top;'><?php 
echo _("Gruppengründer:");
?>
</td>
    <td nowrap>
        <div style="width: 50%; float: left; vertical-align:middle;">
            <? if(is_array($founders) && sizeof($founders) > 0) : ?>
                <? foreach($founders as $founder) : ?>
                    <?php 
echo htmlReady(get_fullname_from_uname($founder['username']));
?>
                <? endforeach; ?>
            <? endif; ?>
        </div>
        <? if(!empty($tutors)) :?>
            <div style="width: 50%; float: left; vertiacl-align:middle;">
                <?php 
echo Icon::create('arr_2left', 'sort', ['title' => _('Als GruppengründerIn eintragen')])->asInput(["type" => "image", "class" => "middle", "name" => "replace_founder"]);
?>
                <select name="choose_founder">
                    <? foreach($tutors as $uid => $tutor) : ?>
                        <option value="<?php 
echo $uid;
?>
"> <?php 
echo htmlReady($tutor['fullname']);
?>
コード例 #5
0
ファイル: visual.inc.php プロジェクト: ratbird/hope
/**
* formats a ~~~~ wiki signature with username and timestamp
* @param string
* @param unix timestamp
*/
function preg_call_format_signature($username, $timestamp)
{
    $fullname = get_fullname_from_uname($username);
    $date = strftime('%x, %X', $timestamp);
    return '<span style="font-size: 75%">-- <a href="' . URLHelper::getLink('dispatch.php/profile', array('username' => $username)) . '">' . htmlReady($fullname) . '</a> ' . htmlReady($date) . '</span>';
}