Exemple #1
0
 private function sortCourseNavigation()
 {
     global $perm;
     $restNavigation = array();
     $newNavigation = Navigation::getItem('/course');
     foreach (Navigation::getItem('/course') as $key => $tab) {
         $block = SeminarTab::findOneBySQL('seminar_id = ? AND tab IN (?) ORDER BY position ASC', array($this->getSeminarId(), $key));
         if ($block) {
             $tab->setTitle($block->getValue('title'));
             if ($block->getValue('tn_visible') == true || $perm->have_studip_perm('dozent', Request::get('cid'))) {
                 $subNavigations[$block->getValue('position')][$key] = $tab;
             }
         } else {
             //keine Info bezüglich Reihenfolge also hinten dran
             //greift bei neu aktivierten Navigationselementen
             $restNavigation[$key] = $tab;
         }
         $newNavigation->removeSubNavigation($key);
     }
     ksort($subNavigations);
     foreach ($subNavigations as $subNavs) {
         foreach ($subNavs as $key => $subNav) {
             $newNavigation->addSubNavigation($key, $subNav);
         }
     }
     if (count($restNavigation) > 0) {
         foreach ($restNavigation as $key => $restNav) {
             $newNavigation->addSubNavigation($key, $restNav);
         }
     }
     Navigation::addItem('/course', $newNavigation);
 }
Exemple #2
0
 public function save_action()
 {
     $this->tabs = $_POST;
     $tab_count = intval($this->tabs['tab_num']);
     $order = explode(',', $this->tabs['new_order']);
     $position = 1;
     foreach ($order as $o) {
         $this->tabs['tab_position_' . $o] = $position;
         $position++;
     }
     for ($i = 0; $i < $tab_count; $i++) {
         $block = new SeminarTab();
         //falls noch kein Eintrag existiert: anlegen
         if (!SeminarTab::findOneBySQL('seminar_id = ? AND tab IN (?) ORDER BY position ASC', array($this->course_id, $this->tabs['tab_title_' . $i]))) {
             $block->setData(array('seminar_id' => $this->course_id, 'tab' => $this->tabs['tab_title_' . $i], 'title' => $this->tabs['new_tab_title_' . $i], 'position' => $this->tabs['tab_position_' . $i], 'tn_visible' => $this->tabs['visible_' . $i] == 'on' ? true : false));
             $block->store();
         } else {
             $block = SeminarTab::findOneBySQL('seminar_id = ? AND tab IN (?) ORDER BY position ASC', array($this->course_id, $this->tabs['tab_title_' . $i]));
             $block->setValue('title', $this->tabs['new_tab_title_' . $i]);
             $block->setValue('position', $this->tabs['tab_position_' . $i]);
             $block->setValue('tn_visible', $this->tabs['visible_' . $i] == 'on' ? true : false);
             $block->store();
         }
     }
 }