Beispiel #1
0
 /**
  * Things to do before every page load.
  */
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     // AJAX request, so no page layout.
     if (Request::isXhr()) {
         $this->via_ajax = true;
         $this->set_layout(null);
         $request = Request::getInstance();
         foreach ($request as $key => $value) {
             $request[$key] = studip_utf8decode($value);
         }
         // Open base layout for normal
     } else {
         $layout = $GLOBALS['template_factory']->open('layouts/base');
         $this->set_layout($layout);
         PageLayout::setTitle(_('Anmeldesets'));
         // Get only own courses if user doesn't have permission to edit institute-wide coursesets.
         $this->onlyOwnCourses = true;
         if ($GLOBALS['perm']->have_perm('admin') || $GLOBALS['perm']->have_perm('dozent') && get_config('ALLOW_DOZENT_COURSESET_ADMIN')) {
             // We have access to institute-wide course sets, so all courses may be assigned.
             $this->onlyOwnCourses = false;
             Navigation::activateItem('/tools/coursesets/sets');
         } else {
             throw new AccessDeniedException();
         }
     }
     PageLayout::addSqueezePackage('admission');
     $this->set_content_type('text/html;charset=windows-1252');
     $views = new ViewsWidget();
     $views->setTitle(_('Aktionen'));
     $views->addLink(_('Anmeldeset anlegen'), $this->url_for('admission/courseset/configure'))->setActive($action == 'configure');
     Sidebar::Get()->addWidget($views);
 }
Beispiel #2
0
 /**
  * Displays all available schedules according to the set filters.
  *
  * @param int $page Which page to display
  */
 public function index_action($page = 1)
 {
     $filter = $_SESSION['cronjob-filter'];
     $this->max_per_page = Config::get()->ENTRIES_PER_PAGE;
     $this->total = CronjobSchedule::countBySql('1');
     $this->total_filtered = CronjobSchedule::countBySql($filter['where']);
     $this->page = max(1, min($page, ceil($this->total_filtered / $this->max_per_page)));
     $limit = sprintf(" LIMIT %u, %u", ($this->page - 1) * $this->max_per_page, $this->max_per_page);
     $this->schedules = CronjobSchedule::findBySQL($filter['where'] . $limit);
     // Filters
     $this->tasks = CronjobTask::findBySql('1');
     $this->filter = $filter['values'];
     // Infobox image was produced from an image by Robbert van der Steeg
     // http://www.flickr.com/photos/robbie73/5924985913/
     $sidebar = Sidebar::Get();
     $sidebar->setTitle(_('Cronjobs'));
     $sidebar->setImage('sidebar/date-sidebar.png');
     // Aktionen
     $views = new ViewsWidget();
     $views->addLink(_('Cronjobs verwalten'), $this->url_for('admin/cronjobs/schedules'))->setActive(true);
     $views->addLink(_('Aufgaben verwalten'), $this->url_for('admin/cronjobs/tasks'));
     $views->addLink(_('Logs anzeigen'), $this->url_for('admin/cronjobs/logs'));
     $sidebar->addWidget($views);
     $actions = new ActionsWidget();
     $actions->addLink(_('Neuen Cronjob registrieren'), $this->url_for('admin/cronjobs/schedules/edit'), Icon::create('add', 'clickable'));
     $sidebar->addWidget($actions);
 }
Beispiel #3
0
 function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     Navigation::activateItem("/pluginmarket/presenting");
     if ($GLOBALS['perm']->have_perm("user")) {
         $config = UserConfig::get($GLOBALS['user']->id);
         $this->last_pluginmarket_visit = $config->getValue("last_pluginmarket_visit") ?: time();
         $_SESSION['last_pluginmarket_visit'] = time();
         $config->store("last_pluginmarket_visit", $_SESSION['last_pluginmarket_visit']);
     }
     PageLayout::addScript($this->plugin->getPluginURL() . "/assets/studiptable.js");
     PageLayout::addScript($this->plugin->getPluginURL() . "/assets/pluginmarket.js");
     $tags_statement = DBManager::get()->prepare("\n            SELECT pluginmarket_tags.tag, COUNT(*) AS number\n            FROM pluginmarket_tags\n                INNER JOIN pluginmarket_plugins ON (pluginmarket_plugins.plugin_id = pluginmarket_tags.plugin_id)\n            WHERE pluginmarket_tags. proposal = '0'\n                AND pluginmarket_plugins.approved = 1\n                AND pluginmarket_plugins.publiclyvisible = 1\n            GROUP BY pluginmarket_tags.tag\n            ORDER BY number DESC, RAND()\n            LIMIT 25\n        ");
     $tags_statement->execute();
     $this->tags = $tags_statement->fetchAll(PDO::FETCH_ASSOC);
     // Set view
     $_SESSION['pluginmarket']['view'] = Request::get('view') ?: $_SESSION['pluginmarket']['view'];
     if (!isset($_SESSION['pluginmarket']['view'])) {
         $_SESSION['pluginmarket']['view'] = 'tiles';
     }
     // Sidebar
     $sidebar = Sidebar::Get();
     // Create search widget
     $searchWidget = new SearchWidget($this->url_for('presenting/all'));
     $searchWidget->addNeedle(_('Suche'), 'search', true);
     $sidebar->addWidget($searchWidget);
     // Create cloud
     $tagWidget = new LinkCloudWidget();
     $tagWidget->setTitle(_("Beliebte Tags"));
     foreach ($this->tags as $tag) {
         $tagWidget->addLink($tag['tag'], $this->url_for('presenting/all', array('tag' => $tag['tag'])), $tag['number']);
     }
     $sidebar->addWidget($tagWidget);
     // Create view widget
     if ($action != 'details') {
         $viewWidget = new ViewsWidget();
         $viewWidget->addLink(_('Kacheln'), URLHelper::getLink('', array('view' => 'tiles')))->setActive($_SESSION['pluginmarket']['view'] == 'tiles');
         $viewWidget->addLink(_('Liste'), $this->url_for('presenting/all', array('view' => 'list')))->setActive($_SESSION['pluginmarket']['view'] == 'list');
         $sidebar->addWidget($viewWidget);
     }
     // Create versionfilter widget
     $versionWidget = new OptionsWidget();
     $versionWidget->setTitle(_('Stud.IP Version'));
     // Create options for all studip versions
     $_SESSION['pluginmarket']['version'] = Request::submitted('version') ? Request::get('version') : $_SESSION['pluginmarket']['version'];
     $options[] = "<option value='" . URLHelper::getLink('', array('version' => 0)) . "'>" . _('Alle Versionen') . "</option>";
     foreach (array_reverse(PluginMarket::getStudipReleases()) as $version) {
         $options[] = "<option value='" . URLHelper::getLink('', array('version' => $version)) . "' " . ($_SESSION['pluginmarket']['version'] == $version ? "SELECTED" : "") . ">{$version}</option>";
     }
     $versionWidget->addElement(new WidgetElement('<select style="width: 100%" onchange="location = this.options[this.selectedIndex].value;">' . join("", $options) . '</select>'));
     // Add checkbox to ignore older releases (use invese logic to be applied on startup)
     $sidebar->addWidget($versionWidget, 'comments');
 }
Beispiel #4
0
 /**
  *
  **/
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     require_once 'lib/bootstrap-api.php';
     $GLOBALS['perm']->check('root');
     Navigation::activateItem('/admin/config/api');
     PageLayout::setTitle(_('API Verwaltung'));
     $this->types = array('website' => _('Website'), 'desktop' => _('Herkömmliches Desktopprogramm'), 'mobile' => _('Mobile App'));
     // Sidebar
     $views = new ViewsWidget();
     $views->addLink(_('Registrierte Applikationen'), $this->url_for('admin/api'))->setActive($action === 'index');
     $views->addLink(_('Globale Zugriffseinstellungen'), $this->url_for('admin/api/permissions'))->setActive($action == 'permissions');
     $views->addLink(_('Konfiguration'), $this->url_for('admin/api/config'))->setActive($action == 'config');
     Sidebar::get()->addWidget($views);
     $actions = new ActionsWidget();
     $actions->addLink(_('Neue Applikation registrieren'), $this->url_for('admin/api/edit'), Icon::create('add', 'clickable'))->asDialog();
     Sidebar::get()->addWidget($actions);
 }
Beispiel #5
0
    /**
     * Displays all available tasks.
     *
     * @param int $page Which page to display
     */
    public function index_action($page = 1)
    {
        $this->max_per_page = Config::get()->ENTRIES_PER_PAGE;
        $this->total        = CronjobTask::countBySql('1');
        $this->page         = max(1, min($page, ceil($this->total / $this->max_per_page)));

        $limit = sprintf(" LIMIT %u, %u", ($this->page - 1) * $this->max_per_page, $this->max_per_page);
        $this->tasks = CronjobTask::findBySQL('1' . $limit);

        // Infobox image was produced from an image by Robbert van der Steeg
        // http://www.flickr.com/photos/robbie73/5924985913/
        $sidebar = Sidebar::Get();
        $sidebar->setTitle(_('Cronjobs'));
        $sidebar->setImage('sidebar/admin-sidebar.png');

        // Aktionen
        $actions = new ViewsWidget();
        $actions->addLink(_('Cronjobs verwalten'),$this->url_for('admin/cronjobs/schedules'));
        $actions->addLink(_('Aufgaben verwalten'),$this->url_for('admin/cronjobs/tasks'))->setActive(true);
        $actions->addLink(_('Logs anzeigen'),$this->url_for('admin/cronjobs/logs'));
        $sidebar->addWidget($actions);
    }
Beispiel #6
0
 /**
  * @see AuthenticatedController::before_filter
  */
 public function before_filter(&$action, &$args)
 {
     parent::before_filter($action, $args);
     if (Request::isXhr()) {
         $this->via_ajax = true;
         $this->set_layout(null);
         $request = Request::getInstance();
         foreach ($request as $key => $value) {
             $request[$key] = studip_utf8decode($value);
         }
     } else {
         $layout = $GLOBALS['template_factory']->open('layouts/base');
         $this->set_layout($layout);
         PageLayout::setTitle(_('Personenlisten'));
         Navigation::activateItem('/tools/coursesets/userlists');
     }
     PageLayout::addSqueezePackage('admission');
     $this->set_content_type('text/html;charset=windows-1252');
     $views = new ViewsWidget();
     $views->setTitle(_('Aktionen'));
     $views->addLink(_('Personenliste anlegen'), $this->url_for('admission/userlist/configure'))->setActive($action == 'configure');
     Sidebar::Get()->addWidget($views);
 }
Beispiel #7
0
 protected function createSidebar($active = null, $calendar = null)
 {
     $active = $active ?: $this->last_view;
     $sidebar = Sidebar::Get();
     $sidebar->setTitle(_('Kalender'));
     $sidebar->setImage('sidebar/schedule-sidebar.png');
     $views = new ViewsWidget();
     $views->addLink(_('Tag'), $this->url_for($this->base . 'day'))->setActive($active == 'day');
     $views->addLink(_('Woche'), $this->url_for($this->base . 'week'))->setActive($active == 'week');
     $views->addLink(_('Monat'), $this->url_for($this->base . 'month'))->setActive($active == 'month');
     $views->addLink(_('Jahr'), $this->url_for($this->base . 'year'))->setActive($active == 'year');
     $sidebar->addWidget($views);
 }
Beispiel #8
0
                } else
                    printf("<font size=\"-1\" color=\"black\"><b>%s&nbsp;</b></font>\n", htmlReady($field["name"]));
                echo "</td>\n";
            }
            ?>
        </tr>
        </thead>
        <?php 
echo $table_content;
?>
    </table>
<?
}
$sidebar = Sidebar::get();
$sidebar->setImage('sidebar/person-sidebar.png');
$widget = new ViewsWidget();
$widget->addLink(_('Standard'), URLHelper::getURL('?extend=no'))->setActive($extend != 'yes');
$widget->addLink(_('Erweitert'), URLHelper::getURL('?extend=yes'))->setActive($extend == 'yes');
$sidebar->addWidget($widget);

if ($admin_view) {

    if (!LockRules::Check($inst_id, 'participants')) {

        $edit = new SidebarWidget();
        $edit->setTitle(_('Personenverwaltung'));
        $edit->addElement(new WidgetElement($mp));
        $sidebar->addWidget($edit);
    }

Beispiel #9
0
<? endif; ?>

<?php 
$sidebar = Sidebar::get();
$sidebar->setImage('sidebar/mail-sidebar.png');
$actions = new ActionsWidget();
$actions->addLink(_("Neue Nachricht schreiben"), $controller->url_for('messages/write'), Icon::create('mail+add', 'clickable'), array('data-dialog' => 'width=650;height=600'));
if (Navigation::getItem('/messaging/messages/inbox')->isActive() && $messages) {
    $actions->addLink(_('Alle als gelesen markieren'), $controller->url_for('messages/overview', array('read_all' => 1)), Icon::create('accept', 'clickable'));
}
$actions->addLink(_('Ausgewählte Nachrichten löschen'), "#", Icon::create('trash', 'clickable'), array('onclick' => "if (window.confirm('Wirklich %s Nachrichten löschen?'.toLocaleString().replace('%s', jQuery('#bulk tbody :checked').length))) { jQuery('#bulk').submit(); } return false;"));
$sidebar->addWidget($actions);
$search = new SearchWidget(URLHelper::getLink('?'));
$search->addNeedle(_('Nachrichten durchsuchen'), 'search', true);
$search->addFilter(_('Betreff'), 'search_subject');
$search->addFilter(_('Inhalt'), 'search_content');
$search->addFilter(_('Autor/-in'), 'search_autor');
$sidebar->addWidget($search);
$folderwidget = new ViewsWidget();
$folderwidget->forceRendering();
$folderwidget->title = _('Schlagworte');
$folderwidget->id = 'messages-tags';
$folderwidget->addLink(_("Alle Nachrichten"), URLHelper::getURL("?"), null, array('class' => "tag"))->setActive(!Request::submitted("tag"));
if (empty($tags)) {
    $folderwidget->style = 'display:none';
} else {
    foreach ($tags as $tag) {
        $folderwidget->addLink(ucfirst($tag), URLHelper::getURL("?", array('tag' => $tag)), null, array('class' => "tag"))->setActive(Request::get("tag") === $tag);
    }
}
$sidebar->addWidget($folderwidget);
Beispiel #10
0
 private function initSidebar($active_id = null)
 {
     $sidebar = Sidebar::Get();
     $letterlist = new SidebarWidget();
     foreach (range('A', 'Z') as $letter) {
         if ($this->contacts[$letter]) {
             $html .= "<a href='#letter_{$letter}'>{$letter}</a>";
         } else {
             $html .= "<span>{$letter}</span>";
         }
     }
     $letterlist->setTitle(_('Schnellzugriff'));
     $letterlist->addElement(new WidgetElement("<div class='letterlist'>{$html}</div>"));
     $sidebar->addWidget($letterlist);
     // Groups
     $actions = new ActionsWidget();
     $actions->addLink(_('Neue Gruppe anlegen'), $this->url_for('contact/editGroup'), Icon::create('group3+add', 'clickable'))->asDialog('size=auto');
     $actions->addLink(_('Nachricht an alle'), $this->url_for('messages/write', array('rec_uname' => $this->allContacts->pluck('username'))), Icon::create('mail', 'clickable'))->asDialog();
     $actions->addLink(_('E-Mail an alle'), URLHelper::getLink('mailto:' . join(',', $this->allContacts->pluck('email'))), Icon::create('mail', 'clickable'));
     $actions->addLink(_('Alle vCards herunterladen'), $this->url_for('contact/vcard/' . $this->filter), Icon::create('vcard', 'clickable'));
     $sidebar->addWidget($actions);
     // Groups navigation
     $groupsWidget = new ViewsWidget();
     $groupsWidget->setTitle(_('Gruppen'));
     $groupsWidget->addLink(_('Alle Kontakte'), URLHelper::getLink('dispatch.php/contact/index'))->setActive(!$active_id);
     foreach ($this->groups as $group) {
         $groupsWidget->addLink($group->name, URLHelper::getLink('dispatch.php/contact/index/' . $group->id))->setActive($group->id == $active_id);
     }
     $sidebar->addWidget($groupsWidget);
 }
Beispiel #11
0
 /**
  * Get widget for grouping selected courses (e.g. by colors, ...)
  * @param      $action
  * @param bool $selected
  * @return string
  */
 private function setGroupingSelector(&$group_field)
 {
     $sidebar = Sidebar::Get();
     $groups = array('sem_number' => _('Standard'), 'sem_tree_id' => _('Studienbereich'), 'sem_status' => _('Typ'), 'gruppe' => _('Farbgruppen'), 'dozent_id' => _('Dozenten'));
     $view = new ViewsWidget();
     foreach ($groups as $key => $group) {
         $view->addLink($group, $this->url_for('my_courses/store_groups?select_group_field=' . $key))->setActive($key === $group_field);
     }
     $sidebar->addWidget($view);
 }
Beispiel #12
0
 /**
  * Adds the content to sidebar
  */
 private function setSidebar()
 {
     $sidebar = Sidebar::Get();
     $sidebar->setTitle(_('Ferien'));
     $sidebar->setImage('sidebar/admin-sidebar.png');
     $views = new ViewsWidget();
     $views->addLink(_('Alle Einträge'), $this->url_for('admin/holidays', array('filter' => null)))->setActive(!$this->filter);
     $views->addLink(_('Aktuelle/zukünftige Einträge'), $this->url_for('admin/holidays', array('filter' => 'current')))->setActive($this->filter === 'current');
     $views->addLink(_('Vergangene Einträge'), $this->url_for('admin/holidays', array('filter' => 'past')))->setActive($this->filter === 'past');
     $sidebar->addWidget($views);
     $links = new ActionsWidget();
     $links->addLink(_('Neue Ferien anlegen'), $this->url_for('admin/holidays/edit', array('filter' => null)), Icon::create('add', 'clickable'))->asDialog('size=auto');
     $sidebar->addWidget($links);
 }
Beispiel #13
0
    break;
    case 'openobject_group_schedule':
        PageLayout::setTitle($SessSemName['header_line'] . ' - ' . _('Belegungszeiten aller Ressourcen pro Tag ausgeben'));
        Navigation::activateItem('/course/resources/group_schedule');

        $widget = new ExportWidget();
        $widget->addLink(_('Druckansicht'),
                         URLHelper::getLink('?view=openobject_group_schedule&print_view=1'), Icon::create('print', 'clickable'),
                         array('target' => '_blank'));
        $sidebar->addWidget($widget);
    break;
    case 'view_requests_schedule':
        PageLayout::setTitle(_('Anfragenübersicht eines Raums:') . ' ' . ResourceObject::Factory($_SESSION['resources_data']['resolve_requests_one_res'])->getName());
        Navigation::activateItem('/resources/room_requests/schedule');

        $widget = new ViewsWidget();
        $widget->addLink(_('Semesterplan'),
                         URLHelper::getLink('resources.php?actual_object=' . $_SESSION['resources_data']['resolve_requests_one_res'] . '&quick_view=view_sem_schedule&quick_view_mode=no_nav'),
                         Icon::create('schedule', 'clickable'),
                         array('onclick' => "window.open(this.href, '', 'scrollbars=yes,left=10,top=10,width=1000,height=680,resizable=yes');return false;"));
        $sidebar->addWidget($widget);
    break;
    //default
    default:
        PageLayout::setTitle(_('Übersicht der Ressourcen'));
        Navigation::activateItem('/resources/view/hierarchy');
    break;
}

//general naming of resources management pages
if (!$SessSemName) {
Beispiel #14
0
/**
* Returns an infobox string holding information and action links for
* diff view of current page.
*
* @param    string  WikiPage name
*
**/
function getDiffPageInfobox($keyword) {

    $versions=getWikiPageVersions($keyword);

    // Aktuelle Version
    $widget = new ViewsWidget();
    $widget->addLink(_('Standard'),
                     URLHelper::getLink('?keyword=' . urlencode($keyword) . '&view=show'));
    if (count($versions) >= 1) {
        $widget->addLink(_('Textänderungen anzeigen'),
                         URLHelper::getLink('?keyword=' . urlencode($keyword) . '&view=diff'))
               ->setActive(Request::option('view') === 'diff');
        $widget->addLink(_('Text mit Autor/-innenzuordnung anzeigen'),
                         URLHelper::getLink('?keyword=' . urlencode($keyword) . '&view=combodiff'))
               ->setActive(Request::option('view') === 'combodiff');
    }
    Sidebar::get()->addWidget($widget);

    // Versionen
    if (count($versions) > 0) {
        $widget = new SelectWidget(_('Alte Versionen dieser Seite'),
                                   URLHelper::getLink('?keyword=' . urlencode($keyword)),
                                   'version');
        $widget->addElement(new SelectElement('', _('Aktuelle Version')));
        foreach ($versions as $version) {
            $element = new SelectElement($version['version'],
                                         sprintf(_('Version %u (%s)'),
                                                 $version['version'],
                                                 date('d.m.Y, H:i', $version['chdate'])),
                                         $version['version'] == Request::int('version', 0));
            $widget->addElement($element);
        }
        Sidebar::get()->addWidget($widget);
    }

    return array();
}
Beispiel #15
0
 /**
  * Show administration page for user's news
  *
  * @param string $area_type         area filter
  */
 function admin_news_action($area_type = '')
 {
     // check permission
     if (!$GLOBALS['auth']->is_authenticated() || $GLOBALS['user']->id === 'nobody') {
         throw new AccessDeniedException();
     }
     $GLOBALS['perm']->check('user');
     // initialize
     $news_result = array();
     $limit = 100;
     if (Request::get('news_filter') == 'set') {
         $this->news_searchterm = Request::option('news_filter_term');
         $this->news_startdate = Request::int('news_filter_start');
         $this->news_enddate = Request::int('news_filter_end');
     } else {
         $this->news_startdate = time();
     }
     if (is_array($this->area_structure[$area_type])) {
         $this->area_type = $area_type;
     }
     $this->set_layout($GLOBALS['template_factory']->open('layouts/base'));
     PageLayout::setTitle(_('Meine Ankündigungen'));
     PageLayout::setHelpKeyword('Basis.News');
     Navigation::activateItem('/tools/news');
     if (Request::submitted('reset_filter')) {
         $area_type = 'all';
         $this->news_searchterm = '';
         $this->news_startdate = '';
         $this->news_enddate = '';
     }
     // delete news
     if (Request::submitted('remove_marked_news')) {
         $remove_ranges = array();
         foreach (Request::optionArray('mark_news') as $mark_id) {
             list($news_id, $range_id) = explode('_', $mark_id);
             $remove_ranges[$news_id][] = $range_id;
         }
         $this->flash['question_text'] = remove_news($remove_ranges);
         $this->flash['question_param'] = array('mark_news' => Request::optionArray('mark_news'), 'remove_marked_news' => 1);
     }
     // apply filter
     if (Request::submitted('apply_news_filter')) {
         $this->news_isvisible['basic'] = $this->news_isvisible['basic'] ? false : true;
         if (Request::get('news_searchterm') and strlen(trim(Request::get('news_searchterm'))) < 3) {
             PageLayout::postMessage(MessageBox::error(_('Der Suchbegriff muss mindestens 3 Zeichen lang sein.')));
         } elseif (Request::get('news_startdate') and !$this->getTimeStamp(Request::get('news_startdate'), 'start') or Request::get('news_enddate') and !$this->getTimeStamp(Request::get('news_enddate'), 'end')) {
             PageLayout::postMessage(MessageBox::error(_('Ungültige Datumsangabe. Bitte geben Sie ein Datum im Format TT.MM.JJJJ ein.')));
         } elseif (Request::get('news_enddate') and Request::get('news_enddate') and $this->getTimeStamp(Request::get('news_startdate'), 'start') > $this->getTimeStamp(Request::get('news_enddate'), 'end')) {
             PageLayout::postMessage(MessageBox::error(_('Das Startdatum muss vor dem Enddatum liegen.')));
         }
         if (strlen(trim(Request::get('news_searchterm'))) >= 3) {
             $this->news_searchterm = Request::get('news_searchterm');
         }
         $this->news_startdate = $this->getTimeStamp(Request::get('news_startdate'), 'start');
         $this->news_enddate = $this->getTimeStamp(Request::get('news_enddate'), 'end');
     }
     // fetch news list
     $this->news_items = StudipNews::getNewsRangesByFilter($GLOBALS["auth"]->auth["uid"], $this->area_type, $this->news_searchterm, $this->news_startdate, $this->news_enddate, true, $limit + 1);
     // build area and filter description
     if ($this->news_searchterm and $this->area_type and $this->area_type != 'all') {
         if ($this->news_startdate and $this->news_enddate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen im Bereich "%s" zum Suchbegriff "%s", die zwischen dem %s und dem %s sichtbar sind.'), $this->area_structure[$this->area_type]['title'], $this->news_searchterm, date('d.m.Y', $this->news_startdate), date('d.m.Y', $this->news_enddate));
         } elseif ($this->news_startdate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen im Bereich "%s" zum Suchbegriff "%s", die ab dem %s sichtbar sind.'), $this->area_structure[$this->area_type]['title'], $this->news_searchterm, date('d.m.Y', $this->news_startdate));
         } elseif ($this->news_enddate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen im Bereich "%s" zum Suchbegriff "%s", die vor dem %s sichtbar sind.'), $this->area_structure[$this->area_type]['title'], $this->news_searchterm, date('d.m.Y', $this->news_enddate));
         } else {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen im Bereich "%s" zum Suchbegriff "%s".'), $this->area_structure[$this->area_type]['title'], $this->news_searchterm);
         }
     } elseif ($this->area_type and $this->area_type != 'all') {
         if ($this->news_startdate and $this->news_enddate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen im Bereich "%s", die zwischen dem %s und dem %s sichtbar sind.'), $this->area_structure[$this->area_type]['title'], date('d.m.Y', $this->news_startdate), date('d.m.Y', $this->news_enddate));
         } elseif ($this->news_startdate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen im Bereich "%s", die ab dem %s sichtbar sind.'), $this->area_structure[$this->area_type]['title'], date('d.m.Y', $this->news_startdate));
         } elseif ($this->news_enddate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen im Bereich "%s", die vor dem %s sichtbar sind.'), $this->area_structure[$this->area_type]['title'], date('d.m.Y', $this->news_enddate));
         } else {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen im Bereich "%s".'), $this->area_structure[$this->area_type]['title']);
         }
     } elseif ($this->news_searchterm) {
         if ($this->news_startdate and $this->news_enddate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen zum Suchbegriff "%s", die zwischen dem %s und dem %s sichtbar sind.'), $this->news_searchterm, date('d.m.Y', $this->news_startdate), date('d.m.Y', $this->news_enddate));
         } elseif ($this->news_startdate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen zum Suchbegriff "%s", die ab dem %s sichtbar sind.'), $this->news_searchterm, date('d.m.Y', $this->news_startdate));
         } elseif ($this->news_enddate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen zum Suchbegriff "%s", die vor dem %s sichtbar sind.'), $this->news_searchterm, date('d.m.Y', $this->news_enddate));
         } else {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen zum Suchbegriff "%s".'), $this->news_searchterm);
         }
     } elseif ($this->news_startdate or $this->news_enddate) {
         if ($this->news_startdate and $this->news_enddate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen, die zwischen dem %s und dem %s sichtbar sind.'), date('d.m.Y', $this->news_startdate), date('d.m.Y', $this->news_enddate));
         } elseif ($this->news_startdate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen, die ab dem %s sichtbar sind.'), date('d.m.Y', $this->news_startdate));
         } elseif ($this->news_enddate) {
             $this->filter_text = sprintf(_('Angezeigt werden Ankündigungen, die vor dem %s sichtbar sind.'), date('d.m.Y', $this->news_enddate));
         }
     }
     // check for delete-buttons and news limit
     foreach ($this->area_structure as $type => $area_data) {
         if (is_array($this->news_items[$type])) {
             foreach ($this->news_items[$type] as $key => $news) {
                 // has trash icon been clicked?
                 if (Request::submitted('news_remove_' . $news['object']->news_id . '_' . $news['range_id']) and Request::isPost()) {
                     $this->flash['question_text'] = remove_news(array($news['object']->news_id => $news['range_id']));
                     $this->flash['question_param'] = array('mark_news' => array($news['object']->news_id . '_' . $news['range_id']), 'remove_marked_news' => 1);
                 }
                 // check if result set too big
                 $counter++;
                 if ($counter == $limit + 1) {
                     PageLayout::postMessage(MessageBox::info(sprintf(_('Es werden nur die ersten %s Ankündigungen angezeigt.'), $limit)));
                     unset($this->news_items[$type][$key]);
                 }
             }
         }
     }
     // sort grouped list by title
     foreach ($this->area_structure as $type => $area_data) {
         if (count($this->news_groups[$type])) {
             ksort($this->news_groups[$type]);
         }
     }
     $this->sidebar = Sidebar::get();
     $this->sidebar->setImage('sidebar/news-sidebar.png');
     if ($GLOBALS['perm']->have_perm('tutor')) {
         $widget = new ViewsWidget();
         $widget->addLink(_('Alle Ankündigungen'), URLHelper::getURL('dispatch.php/news/admin_news/all'))->setActive(!$this->area_type);
         if ($GLOBALS['perm']->have_perm('root')) {
             $widget->addLink(_('System'), URLHelper::getURL('dispatch.php/news/admin_news/global'))->setActive($this->area_type === 'global');
         }
         if ($GLOBALS['perm']->have_perm('dozent')) {
             $widget->addLink(_('Einrichtungen'), URLHelper::getURL('dispatch.php/news/admin_news/inst'))->setActive($this->area_type === 'inst');
         }
         $widget->addLink(_('Veranstaltungen'), URLHelper::getURL('dispatch.php/news/admin_news/sem'))->setActive($this->area_type === 'sem');
         $widget->addLink(_('Profil'), URLHelper::getURL('dispatch.php/news/admin_news/user'))->setActive($this->area_type === 'user');
         $this->sidebar->addWidget($widget);
     }
     $widget = new ActionsWidget();
     $widget->addLink(_('Ankündigung erstellen'), URLHelper::getLink('dispatch.php/news/edit_news/new'), Icon::create('news+add', 'clickable'), array('rel' => 'get_dialog', 'target' => '_blank'));
     $this->sidebar->addWidget($widget);
 }
Beispiel #16
0
 /**
  * Sets up the sidebar
  *
  * @param bool $user_section Adjust sidebar to user section?
  */
 protected function setupSidebar($user_section = false)
 {
     // Basic info and layout
     $sidebar = Sidebar::Get();
     $sidebar->setTitle(_('Konfiguration'));
     $sidebar->setImage(Assets::image_path('sidebar/admin-sidebar.png'));
     // Views
     $views = new ViewsWidget();
     $views->addLink(_('Globale Konfiguration'), $this->url_for('admin/configuration/configuration'))->setActive(!$user_section);
     $views->addLink(_('Personenkonfiguration'), $this->url_for('admin/configuration/user_configuration'))->setActive($user_section);
     $sidebar->addWidget($views);
     // Add section selector when not in user mode
     if (!$user_section) {
         $options = array();
         foreach (ConfigurationModel::getConfig() as $key => $value) {
             $options[$key] = $key ?: '- ' . _('Ohne Kategorie') . ' -';
         }
         $widget = new SelectWidget(_('Anzeigefilter'), $this->url_for('admin/configuration/configuration'), 'section', 'get');
         $widget->addElement(new SelectElement(-1, _('alle anzeigen')));
         $widget->setOptions($options);
         $sidebar->addWidget($widget);
     }
     // Add specific searches (specific user when in user mode, keyword
     // otherwise)
     if ($user_section) {
         $search = new SearchWidget($this->url_for('admin/configuration/user_configuration'));
         $search->addNeedle(_('Person suchen'), 'user_id', true, new StandardSearch('user_id'), 'function () { $(this).closest("form").submit(); }');
     } else {
         $search = new SearchWidget($this->url_for('admin/configuration/configuration'));
         $search->addNeedle(_('Suchbegriff'), 'needle', true);
     }
     $sidebar->addWidget($search);
 }
Beispiel #17
0
                    <tr>
                    </tr>
                </tbody>
                <tfoot>
                <tr>
                    <td><?php 
echo LinkButton::create(_('Übernehmen'), $controller->url_for('help_content/resolve_conflict/' . $conflict[$keys[0]]->getId() . '/accept'));
?>
</td>
                    <td><?php 
echo LinkButton::create(_('Übernehmen'), $controller->url_for('help_content/resolve_conflict/' . $conflict[$keys[0]]->getId() . '/delete'));
?>
</td>
                </tr></tfoot>
            </table>
            <? endforeach ?>
        <? else : ?>
            <?php 
echo _('Keine Konflikte vorhanden.');
?>
        <? endif ?>
        </form><br><br></p></td>
    </tr>
</table>
</div>
<?
$sidebar = Sidebar::get();
$widget = new ViewsWidget();
$widget->addLink(_('Übersicht'), URLHelper::getURL('dispatch.php/help_content/admin_overview'));
$widget->addLink(_('Konflikte'), URLHelper::getURL('dispatch.php/help_content/admin_conflicts'))->setActive(true);
$sidebar->addWidget($widget);
Beispiel #18
0
 private function setSidebar($action)
 {
     $sidebar = Sidebar::Get();
     $sidebar->setTitle(PageLayout::getTitle() ?: _('Rollen'));
     $sidebar->setImage('sidebar/roles-sidebar.png');
     $views = new ViewsWidget();
     $views->addLink(_('Rollen verwalten'), $this->url_for('admin/role'))->setActive($action === 'index');
     $views->addLink(_('Personenzuweisungen bearbeiten'), $this->url_for('admin/role/assign_role'))->setActive($action === 'assign_role');
     $views->addLink(_('Pluginzuweisungen bearbeiten'), $this->url_for('admin/role/assign_plugin_role'))->setActive($action === 'assign_plugin_role');
     $views->addLink(_('Rollenzuweisungen anzeigen'), $this->url_for('admin/role/show_role'))->setActive($action === 'show_role');
     $sidebar->addWidget($views);
     $actions = new ActionsWidget();
     $actions->addLink(_('Neue Rolle anlegen'), $this->url_for('admin/role/add'), Icon::create('add', 'clickable'))->asDialog('size=auto');
     $sidebar->addWidget($actions);
 }