protected function createSidebar($active = null, $calendar = null) { parent::createSidebar($active, $calendar); $sidebar = Sidebar::Get(); if ($calendar->havePermission(Calendar::PERMISSION_WRITABLE)) { $actions = new ActionsWidget(); $actions->addLink(_('Termin anlegen'), $this->url_for('calendar/single/edit'), Icon::create('add', 'clickable'), array('data-dialog' => 'size=auto')); if ($calendar->havePermission(Calendar::PERMISSION_OWN) && get_config('CALENDAR_GROUP_ENABLE')) { $actions->addLink(_('Kalender freigeben'), $this->url_for('calendar/single/manage_access'), Icon::create('community', 'clickable'), array('id' => 'calendar-open-manageaccess', 'data-dialog' => '', 'data-dialogname' => 'manageaccess')); } $sidebar->addWidget($actions); } if ($calendar->havePermission(Calendar::PERMISSION_OWN)) { $export = new ExportWidget(); $export->addLink(_('Termine exportieren'), $this->url_for('calendar/single/export_calendar'), Icon::create('download', 'clickable'), array('data-dialog' => 'size=auto'))->setActive($active == 'export_calendar'); $export->addLink(_('Termine importieren'), $this->url_for('calendar/single/import'), Icon::create('upload', 'clickable'), array('data-dialog' => 'size=auto'))->setActive($active == 'import'); $export->addLink(_('Kalender teilen'), $this->url_for('calendar/single/share'), Icon::create('group2', 'clickable'), array('data-dialog' => 'size=auto'))->setActive($active == 'share'); $sidebar->addWidget($export); } }
<? endif ?> <? $treeview->showTree(); ?> <?php $sidebar = Sidebar::get(); $sidebar->setImage('sidebar/literature-sidebar.png'); $widget = new ActionsWidget(); $widget->addLink(_('Literatur importieren'), URLHelper::getLink('dispatch.php/literature/import_list?return_range=' . $_range_id), Icon::create('literature+add', 'clickable'), array('data-dialog' => '')); $widget->addLink(_('Neue Literatur anlegen'), URLHelper::getLink('dispatch.php/literature/edit_element?_range_id=new_entry&return_range=' . $_range_id), Icon::create('literature+add', 'clickable'), array('data-dialog' => '')); $sidebar->addWidget($widget); ob_start(); echo $clip_form->getFormStart(URLHelper::getLink($treeview->getSelf())); echo $clip_form->getFormField("clip_content", array_merge(array('size' => $clipboard->getNumElements()), (array) $attributes['lit_select'])); echo $clip_form->getFormField("clip_cmd", $attributes['lit_select']); ?> <div align="center"> <?php echo $clip_form->getFormButton("clip_ok", array('style' => 'vertical-align:middle;margin:3px;')); ?> </div> <?php echo $clip_form->getFormEnd(); ?> <? $content = ob_get_clean(); $widget = new SidebarWidget(); $widget->setTitle(_('Merkliste')); $widget->addElement(new WidgetElement($content)); $sidebar->addWidget($widget); $widget = new ExportWidget(); $widget->addLink(_('Druckansicht'), URLHelper::getLink('dispatch.php/literature/print_view?_range_id='.$_range_id), Icon::create('print', 'clickable'), array('target' => '_blank')); $sidebar->addWidget($widget);
if ($_SESSION['resources_data']['actual_object']) { $helpbar->setVariables(array( 'name' => $currentObject->getName(), 'category' => $currentObject->getCategoryName(), )); } PageLayout::setTitle($SessSemName['header_line'] . ' - ' . ('Belegung anzeigen/bearbeiten')); Navigation::activateItem('/course/resources/edit_assign'); 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
$emphasize = new LinkElement(_('Thema hervorheben'), $emphasize_url, Icon::create('staple', 'clickable'), array('onclick' => 'STUDIP.Forum.makeThreadStickyFromThread(\'' . $constraint['topic_id'] . '\', ' . ForumHelpers::getPage() . '); return false;', 'id' => "stickyButton")); $actions->addElement($emphasize, 'emphasize'); } else { $unemphasize_url = PluginEngine::getLink('coreforum/index/make_unsticky/' . $constraint['topic_id'] . '/' . $constraint['topic_id'] . '/' . ForumHelpers::getPage()); $emphasize = new LinkElement(_('Hervorhebung aufheben'), $unemphasize_url, Icon::create('staple', 'clickable'), array('onclick' => 'STUDIP.Forum.makeThreadUnstickyFromThread(\'' . $constraint['topic_id'] . '\', ' . ForumHelpers::getPage() . '); return false;', 'id' => "stickyButton")); $actions->addElement($emphasize, 'emphasize'); } } if ($constraint['depth'] == 0 && ForumPerm::has('add_category', $seminar_id)) { $actions->addLink(_('Neue Kategorie erstellen'), "#create", Icon::create('link-intern', 'clickable')); } } $sidebar->addWidget($actions); if ($section === 'index' && ForumPerm::has('pdfexport', $seminar_id)) { $export = new ExportWidget(); $export->addLink(_('Beiträge als PDF exportieren'), $controller->url_for('index/pdfexport/' . $constraint['topic_id']), Icon::create('file-pdf', 'clickable')); $sidebar->addWidget($export); } ?> <!-- Breadcrumb navigation --> <?php echo $this->render_partial('index/_breadcrumb'); ?> <!-- Seitenwähler (bei Bedarf) am oberen Rand anzeigen --> <div style="float: right; padding-right: 10px;" data-type="page_chooser"> <? if ($constraint['depth'] > 0 || !isset($constraint)) : ?> <?php echo $pagechooser = $GLOBALS['template_factory']->render('shared/pagechooser', array('page' => ForumHelpers::getPage(), 'num_postings' => $number_of_entries, 'perPage' => ForumEntry::POSTINGS_PER_PAGE, 'pagelink' => str_replace('%%s', '%s', str_replace('%', '%%', PluginEngine::getURL('coreforum/index/goto_page/' . $topic_id . '/' . $section . '/%s/?searchfor=' . $searchfor . (!empty($options) ? '&' . http_build_query($options) : '')))))); ?>
/** * Show all courses with more options */ public function index_action() { $this->sem_create_perm = in_array(Config::get()->SEM_CREATE_PERM, array('root', 'admin', 'dozent')) ? Config::get()->SEM_CREATE_PERM : 'dozent'; // get courses only if institutes available $this->actions = $this->getActions(); $config_my_course_type_filter = $GLOBALS['user']->cfg->MY_COURSES_TYPE_FILTER; // Get the view filter $this->view_filter = $this->getFilterConfig(); if (Request::get('sortFlag')) { $GLOBALS['user']->cfg->store('MEINE_SEMINARE_SORT_FLAG', Request::get('sortFlag') == 'asc' ? 'DESC' : 'ASC'); } if (Request::option('sortby')) { $GLOBALS['user']->cfg->store('MEINE_SEMINARE_SORT', Request::option('sortby')); } $this->selected_action = $GLOBALS['user']->cfg->MY_COURSES_ACTION_AREA; if (is_null($this->selected_action)) { $this->selected_action = 1; } $this->sortby = $GLOBALS['user']->cfg->MEINE_SEMINARE_SORT; $this->sortFlag = $GLOBALS['user']->cfg->MEINE_SEMINARE_SORT_FLAG ?: 'ASC'; $this->courses = $this->getCourses(array('sortby' => $this->sortby, 'sortFlag' => $this->sortFlag, 'view_filter' => $this->view_filter, 'typeFilter' => $config_my_course_type_filter)); if (in_array('contents', $this->view_filter)) { $this->nav_elements = MyRealmModel::calc_nav_elements(array($this->courses)); } // get all available teacher for infobox-filter // filter by selected teacher $_SESSION['MY_COURSES_LIST'] = array_map(function ($c, $id) { return array('Name' => $c['Name'], 'Seminar_id' => $id); }, array_values($this->courses), array_keys($this->courses)); $this->all_lock_rules = new SimpleCollection(array_merge(array(array('name' => '--' . _("keine Sperrebene") . '--', 'lock_id' => 'none')), LockRule::findAllByType('sem'))); $this->aux_lock_rules = array_merge(array(array('name' => '--' . _("keine Zusatzangaben") . '--', 'lock_id' => 'none')), AuxLockRules::getAllLockRules()); $sidebar = Sidebar::get(); $sidebar->setImage("sidebar/seminar-sidebar.png"); $this->setSearchWiget(); $this->setInstSelector(); $this->setSemesterSelector(); $this->setTeacherWidget(); $this->setCourseTypeWidget($config_my_course_type_filter); $this->setActionsWidget($this->selected_action); if ($this->sem_create_perm) { $actions = new ActionsWidget(); $actions->addLink(_('Neue Veranstaltung anlegen'), URLHelper::getLink('dispatch.php/course/wizard'), Icon::create('seminar+add', 'clickable'))->asDialog('size=50%'); $sidebar->addWidget($actions, 'links'); } $this->setViewWidget($this->view_filter); if ($this->sem_create_perm) { $params = array(); if ($GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT) { $params['search'] = $GLOBALS['user']->cfg->ADMIN_COURSES_SEARCHTEXT; } $export = new ExportWidget(); $export->addLink(_('Als Excel exportieren'), URLHelper::getLink('dispatch.php/admin/courses/export_csv', $params), Icon::create('file-excel', 'clickable')); $sidebar->addWidget($export); } }
private function createSidebar($filtered_members) { $sidebar = Sidebar::get(); $sem = Seminar::GetInstance($this->course_id); if ($this->is_tutor) { $widget = new ActionsWidget(); $url = URLHelper::getLink('dispatch.php/messages/write', array('course_id' => $this->course_id, 'default_subject' => $this->subject, 'filter' => 'all', 'emailrequest' => 1)); $widget->addLink(_('Nachricht an alle (Rundmail)'), $url, Icon::create('inbox', 'clickable'), array('data-dialog' => "buttons")); if ($this->is_dozent) { if (!$this->dozent_is_locked) { $sem_institutes = $sem->getInstitutes(); if (SeminarCategories::getByTypeId($sem->status)->only_inst_user) { $search_template = "user_inst"; } else { $search_template = "user"; } // create new search for dozent $searchtype = new PermissionSearch($search_template, sprintf(_("%s suchen"), get_title_for_status('dozent', 1, $sem->status)), "user_id", array('permission' => 'dozent', 'exclude_user' => array(), 'institute' => $sem_institutes)); // quickfilter: dozents of institut $sql = "SELECT user_id FROM user_inst WHERE Institut_id = ? AND inst_perms = 'dozent'"; $db = DBManager::get(); $statement = $db->prepare($sql, array(PDO::FETCH_NUM)); $statement->execute(array(Seminar::getInstance($this->course_id)->getInstitutId())); $membersOfInstitute = $statement->fetchAll(PDO::FETCH_COLUMN, 0); // add "add dozent" to infobox $mp = MultiPersonSearch::get('add_dozent' . $this->course_id)->setLinkText(sprintf(_('Neue/n %s eintragen'), $this->status_groups['dozent']))->setDefaultSelectedUser($filtered_members['dozent']->pluck('user_id'))->setLinkIconPath("")->setTitle(sprintf(_('Neue/n %s eintragen'), $this->status_groups['dozent']))->setExecuteURL(URLHelper::getLink('dispatch.php/course/members/execute_multipersonsearch_dozent'))->setSearchObject($searchtype)->addQuickfilter(sprintf(_('%s der Einrichtung'), $this->status_groups['dozent']), $membersOfInstitute)->setNavigationItem('/course/members/view')->render(); $element = LinkElement::fromHTML($mp, Icon::create('community+add', 'clickable')); $widget->addElement($element); } if (!$this->tutor_is_locked) { $sem_institutes = $sem->getInstitutes(); if (SeminarCategories::getByTypeId($sem->status)->only_inst_user) { $search_template = 'user_inst'; } else { $search_template = 'user'; } // create new search for tutor $searchType = new PermissionSearch($search_template, sprintf(_('%s suchen'), get_title_for_status('tutor', 1, $sem->status)), 'user_id', array('permission' => array('dozent', 'tutor'), 'exclude_user' => array(), 'institute' => $sem_institutes)); // quickfilter: tutors of institut $sql = "SELECT user_id FROM user_inst WHERE Institut_id = ? AND inst_perms = 'tutor'"; $db = DBManager::get(); $statement = $db->prepare($sql, array(PDO::FETCH_NUM)); $statement->execute(array(Seminar::getInstance($this->course_id)->getInstitutId())); $membersOfInstitute = $statement->fetchAll(PDO::FETCH_COLUMN, 0); // add "add tutor" to infobox $mp = MultiPersonSearch::get("add_tutor" . $this->course_id)->setLinkText(sprintf(_('Neue/n %s eintragen'), $this->status_groups['tutor']))->setDefaultSelectedUser($filtered_members['tutor']->pluck('user_id'))->setLinkIconPath("")->setTitle(sprintf(_('Neue/n %s eintragen'), $this->status_groups['tutor']))->setExecuteURL(URLHelper::getLink('dispatch.php/course/members/execute_multipersonsearch_tutor'))->setSearchObject($searchType)->addQuickfilter(sprintf(_('%s der Einrichtung'), $this->status_groups['tutor']), $membersOfInstitute)->setNavigationItem('/course/members/view')->render(); $element = LinkElement::fromHTML($mp, Icon::create('community+add', 'clickable')); $widget->addElement($element); } } if (!$this->is_locked) { // create new search for members $searchType = new SQLSearch("SELECT auth_user_md5.user_id, CONCAT(" . $GLOBALS['_fullname_sql']['full'] . ", \" (\", auth_user_md5.username, \")\") as fullname " . "FROM auth_user_md5 " . "LEFT JOIN user_info ON (user_info.user_id = auth_user_md5.user_id) " . "WHERE (CONCAT(auth_user_md5.Vorname, \" \", auth_user_md5.Nachname) LIKE :input " . "OR CONCAT(auth_user_md5.Nachname, \" \", auth_user_md5.Vorname) LIKE :input " . "OR auth_user_md5.username LIKE :input) " . "AND auth_user_md5.perms IN ('autor', 'tutor', 'dozent') " . " AND auth_user_md5.visible <> 'never' " . "ORDER BY Vorname, Nachname", _("Teilnehmer suchen"), "username"); // quickfilter: tutors of institut $sql = "SELECT user_id FROM user_inst WHERE Institut_id = ? AND inst_perms = 'autor'"; $db = DBManager::get(); $statement = $db->prepare($sql, array(PDO::FETCH_NUM)); $statement->execute(array(Seminar::getInstance($this->course_id)->getInstitutId())); $membersOfInstitute = $statement->fetchAll(PDO::FETCH_COLUMN, 0); // add "add autor" to infobox $mp = MultiPersonSearch::get("add_autor" . $this->course_id)->setLinkText(sprintf(_('Neue/n %s eintragen'), $this->status_groups['autor']))->setDefaultSelectedUser($filtered_members['autor']->pluck('user_id'))->setLinkIconPath("")->setTitle(sprintf(_('Neue/n %s eintragen'), $this->status_groups['autor']))->setExecuteURL(URLHelper::getLink('dispatch.php/course/members/execute_multipersonsearch_autor'))->setSearchObject($searchType)->addQuickfilter(sprintf(_('%s der Einrichtung'), $this->status_groups['autor']), $membersOfInstitute)->setNavigationItem('/course/members/view')->render(); $element = LinkElement::fromHTML($mp, Icon::create('community+add', 'clickable')); $widget->addElement($element); // add "add person to waitlist" to sidebar if ($sem->isAdmissionEnabled() && !$sem->admission_disable_waitlist && (!$sem->getFreeSeats() || $sem->admission_disable_waitlist_move)) { $ignore = array_merge($filtered_members['dozent']->pluck('user_id'), $filtered_members['tutor']->pluck('user_id'), $filtered_members['autor']->pluck('user_id'), $filtered_members['user']->pluck('user_id'), $filtered_members['awaiting']->pluck('user_id')); $mp = MultiPersonSearch::get('add_waitlist' . $this->course_id)->setLinkText(_('Neue/n Person auf Warteliste eintragen'))->setDefaultSelectedUser($ignore)->setLinkIconPath('')->setTitle(_('Neue/n Person auf Warteliste eintragen'))->setExecuteURL(URLHelper::getLink('dispatch.php/course/members/execute_multipersonsearch_waitlist'))->setSearchObject($searchType)->addQuickfilter(_('Mitglieder der Einrichtung'), $membersOfInstitute)->setNavigationItem('/course/members/view')->render(); $element = LinkElement::fromHTML($mp, Icon::create('community+add', 'clickable')); $widget->addElement($element); } } $widget->addLink(_('Teilnehmerliste importieren'), $this->url_for('course/members/import_autorlist'), Icon::create('community+add', 'clickable')); $sidebar->addWidget($widget); if (Config::get()->EXPORT_ENABLE) { include_once $GLOBALS['PATH_EXPORT'] . '/export_linking_func.inc.php'; $widget = new ExportWidget(); // create csv-export link $csvExport = export_link($this->course_id, "person", sprintf('%s %s', htmlReady($this->status_groups['autor']), htmlReady($this->course_title)), 'csv', 'csv-teiln', '', _('Teilnehmendenliste als csv-Dokument exportieren'), 'passthrough'); $widget->addLink(_('Teilnehmendenliste als CSV-Dokument exportieren'), $this->parseHref($csvExport), Icon::create('file-office', 'clickable')); // create csv-export link $rtfExport = export_link($this->course_id, "person", sprintf('%s %s', htmlReady($this->status_groups['autor']), htmlReady($this->course_title)), 'rtf', 'rtf-teiln', '', _('Teilnehmendenliste als rtf-Dokument exportieren'), 'passthrough'); $widget->addLink(_('Teilnehmendenliste als rtf-Dokument exportieren'), $this->parseHref($rtfExport), Icon::create('file-text', 'clickable')); if (count($this->awaiting) > 0) { $awaiting_rtf = export_link($this->course_id, "person", sprintf('%s %s', _("Warteliste"), htmlReady($this->course_title)), "rtf", "rtf-warteliste", $this->waiting_type, _("Warteliste als Textdokument (.rtf) exportieren"), 'passthrough'); $widget->addLink(_('Warteliste als rtf-Dokument exportieren'), $this->parseHref($awaiting_rtf), Icon::create('file-office+export', 'clickable')); $awaiting_csv = export_link($this->course_id, "person", sprintf('%s %s', _("Warteliste"), htmlReady($this->course_title)), "csv", "csv-warteliste", $this->waiting_type, _("Warteliste als Tabellendokument (.csv) exportieren"), 'passthrough'); $widget->addLink(_('Warteliste als csv-Dokument exportieren'), $this->parseHref($awaiting_csv), Icon::create('file-text+export', 'clickable')); } $sidebar->addWidget($widget); } } else { if ($this->is_autor || $this->is_user) { // Visibility preferences if (!$this->my_visibility['iam_visible']) { $text = _('Sie sind für andere Teilnehmenden auf der Teilnehmendenliste nicht sichtbar.'); $icon = Icon::create('visibility-visible', 'clickable'); $modus = 'make_visible'; $link_text = _('Klicken Sie hier, um sichtbar zu werden.'); } else { $text = _('Sie sind für andere Teilnehmenden auf der Teilnehmendenliste sichtbar.'); $icon = Icon::create('visibility-invisible', 'clickable'); $modus = 'make_invisible'; $link_text = _('Klicken Sie hier, um unsichtbar zu werden.'); } $actions = new ActionsWidget(); $actions->addLink($link_text, $this->url_for('course/members/change_visibility', $modus, $this->my_visibility['visible_mode']), $icon, array('title' => $text)); $sidebar->addWidget($actions); } } }
$semester_widget->setTitle(_('Angezeigtes Semester')); $semester_widget->addElement(new WidgetElement($this->render_partial('calendar/schedule/_semester_chooser')), 'semester'); $sidebar->addWidget($semester_widget, 'calendar/schedule/semester'); $actions = new ActionsWidget(); if (!$inst_mode) { $actions->addLink(_("Neuer Eintrag"), $controller->url_for('calendar/schedule/entry'), Icon::create('date+add', 'clickable'), array('data-dialog' => '')); } $actions->addLink(_("Darstellung ändern"), $controller->url_for('calendar/schedule/settings'), Icon::create('admin', 'clickable'), array('data-dialog' => '')); if (!$show_hidden) { $actions->addLink(_("Ausgeblendete Veranstaltungen anzeigen"), $controller->url_for('calendar/schedule/?show_hidden=1'), Icon::create('visibility-visible', 'clickable')); } else { $actions->addLink(_("Ausgeblendete Veranstaltungen verbergen"), $controller->url_for('calendar/schedule/?show_hidden=0'), Icon::create('visibility-visible', 'clickable')); } $sidebar->addWidget($actions, 'calendar/schedule/actions'); $widget = new ExportWidget(); $widget->addLink(_('Druckansicht'), $controller->url_for('calendar/schedule/index/' . implode(',', $days) . '?printview=true&semester_id=' . $current_semester['semester_id']), Icon::create('print', 'clickable'), array('target' => '_blank')); $sidebar->addWidget($widget, 'calendar/schedule/print'); $options = new OptionsWidget(); $options->setTitle(_("Darstellungsgröße")); $options->addRadioButton(_("klein"), URLHelper::getURL('', array('zoom' => 0)), $zoom == 0); $options->addRadioButton(_("mittel"), URLHelper::getURL('', array('zoom' => 1)), $zoom == 1); $options->addRadioButton(_("groß"), URLHelper::getURL('', array('zoom' => 2)), $zoom == 2); $sidebar->addWidget($options, 'calendar/schedule/options'); ?> <div style="text-align: center; font-weight: bold; font-size: 1.2em"> <? if($inst_mode) : ?> <?php echo $institute_name; ?> : <?php echo _('Stundenplan im');
/** * Defines the elements in the sidebar. * * @param String $current_entry Directory entry id of the current folder * @param String $current_dir File id of the current folder */ private function setupSidebar($current_entry, $current_dir, $page = 1) { $root_dir = RootDirectory::find($this->context_id); $root_count = $root_dir->countFiles(true, false); $sidebar = Sidebar::get(); $sidebar->setImage('sidebar/files-sidebar.png'); if (Config::get()->PERSONALDOCUMENT_OPEN_ACCESS && $GLOBALS['user']->id !== $this->context_id) { $title = sprintf(_('Dateien von %s'), $this->owner->getFullname()); $sidebar->setTitle($title); } if ($this->full_access) { $widget = new ActionsWidget(); $widget->addLink(_('Datei hochladen'), $this->url_for('document/files/upload/' . $current_entry . '/' . $page), Icon::create('upload', 'clickable'), $this->userConfig['forbidden'] ? array('disabled' => '', 'title' => _('Ihre Upload-Funktion wurde gesperrt.')) : array())->asDialog('size=auto'); $widget->addLink(_('Neuen Ordner erstellen'), $this->url_for('document/folder/create/' . $current_entry), Icon::create('folder-empty+add', 'clickable'))->asDialog('size=auto'); $attributes = $root_count > 0 ? array() : array('disabled' => true, 'title' => _('Ihr Dateibereich enthält keine Dateien')); $widget->addLink(_('Dateibereich leeren'), $this->url_for('document/folder/delete/all'), Icon::create('trash', 'clickable'), $attributes); $sidebar->addWidget($widget); } $widget = new OptionsWidget(); $widget->setTitle(_('Darstellung anpassen')); foreach (self::$possible_limits as $limit) { $widget->addRadioButton(sprintf(_('%u Einträge pro Seite anzeigen'), $limit), $this->url_for('document/files/settings/' . $limit . '/' . $page . '/' . $current_entry), $limit == $this->limit); } $sidebar->addWidget($widget); // Show export options only if zip extension is loaded // TODO: Implement fallback if (extension_loaded('zip')) { $widget = new ExportWidget(); $this_dir = $current_dir === $this->context_id ? $root_dir : StudipDirectory::find($current_dir); $attributes = $this_dir->countFiles(true, false) > 0 ? array() : array('disabled' => true, 'title' => _('Dieser Ordner enthält keine Dateien')); $widget->addLink(_('Inhalt dieses Ordners herunterladen'), $this->url_for('document/download/' . $current_dir), Icon::create('file-archive', 'clickable'), $attributes); $attributes = $root_count > 0 ? array() : array('disabled' => true, 'title' => _('Ihr Dateibereich enthält keine Dateien')); $widget->addLink(_('Alle Dateien herunterladen'), $this->url_for('document/download/' . $this->context_id), Icon::create('download', 'clickable'), $attributes); $sidebar->addWidget($widget); } }
/** * Returns an infobox string holding information and action links for * current page. * If newest version is displayed, infobox includes backlinks. * * @param string WikiPage name * @param bool Is version displayed latest version? * **/ function getShowPageInfobox($keyword, $latest_version) { $versions = getWikiPageVersions($keyword); if (!$latest_version) { $message = sprintf(_('Sie betrachten eine alte Version, die nicht mehr geändert werden kann. Verwenden Sie dazu die %saktuelle Version%s.'), '<a href="' . URLHelper::getLink('?keyword='.urlencode($keyword)) . '">', '</a>'); PageLayout::postMessage(MessageBox::info($message)); } $sidebar = Sidebar::get(); // Table of Contents/QuickLinks $widget = new ListWidget(); $widget->setTitle(_('QuickLinks')); $toccont = get_toc_content(); $toccont_empty = !trim(strip_tags($toccont)); if ($GLOBALS['perm']->have_studip_perm('autor', $GLOBALS['SessSemName'][1])){ $extra = sprintf('<a href="%s">%s</a>', URLHelper::getLink('?keyword=toc&view=edit'), $toccont_empty ? Icon::create('add', 'clickable', ['title' => _('erstellen')])->asImg() : Icon::create('edit', 'clickable', ['title' => _('bearbeiten')])->asImg()); $widget->setExtra($extra); } $element = new WidgetElement($toccont_empty ? _('Keine QuickLinks vorhanden') : $toccont); $element->icon = Icon::create('link-intern', 'clickable'); $widget->addElement($element); $sidebar->addWidget($widget); // Backlinks if ($latest_version) { $widget = new LinksWidget(); $widget->setTitle(_('Seiten, die auf diese Seite verweisen')); foreach(getBacklinks($keyword) as $backlink) { $widget->addLink($backlink, URLHelper::getLink('?keyword=' . urlencode($backlink))); } $sidebar->addWidget($widget); } // Ansichten $widget = new ViewsWidget(); $widget->addLink(_('Standard'), URLHelper::getLink('?keyword=' . urlencode($keyword) . '&view=show'), Icon::create('wiki', 'clickable')) ->setActive(true); if (count($versions) >= 1) { $widget->addLink(_('Textänderungen anzeigen'), URLHelper::getLink('?keyword=' . urlencode($keyword) . '&view=diff')); $widget->addLink(_('Text mit Autor/-innenzuordnung anzeigen'), URLHelper::getLink('?keyword=' . urlencode($keyword) . '&view=combodiff')); } $sidebar->addWidget($widget); // Suche $widget = new SearchWidget(URLHelper::getLink('?view=search&keyword=' . urlencode($keyword))); $widget->addNeedle(_('Im Wiki suchen'), 'searchfor', true); $widget->addFilter(_('Nur in aktuellen Versionen'), 'searchcurrentversions'); $sidebar->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->addWidget($widget); } // Kommentare $widget = new OptionsWidget(); $widget->setTitle(_('Kommentare')); $widget->addRadioButton(_('einblenden'), URLHelper::getLink('?keyword=' . urlencode($keyword) . '&wiki_comments=all'), $GLOBALS['show_wiki_comments'] === 'all'); $widget->addRadioButton(_('als Icons einblenden'), URLHelper::getLink('?keyword=' . urlencode($keyword) . '&wiki_comments=icon'), $GLOBALS['show_wiki_comments'] === 'icon'); $widget->addRadioButton(_('ausblenden'), URLHelper::getLink('?keyword=' . urlencode($keyword) . '&wiki_comments=none'), $GLOBALS['show_wiki_comments'] === 'none'); $sidebar->addWidget($widget, 'comments'); // Exportfunktionen $version = Request::int('version') ?: ''; $widget = new ExportWidget(); $widget->addLink(_('Druckansicht'), URLHelper::getLink('?keyword=' . urlencode($keyword) . '&version=' . $version . '&view=wikiprint'), Icon::create('print', 'clickable'), array('target' => '_blank')); $widget->addLink(_('PDF-Ausgabe'), URLHelper::getLink('?keyword=' . urlencode($keyword) . '&version=' . $version . '&view=export_pdf'), Icon::create('file-pdf', 'clickable'), array('target' => '_blank')); $sidebar->addWidget($widget); return array(); }