Ejemplo n.º 1
0
 /**
  * Generate the category select (much is from the make_jumpbox function)
  *
  * @param array|bool $selected		Array of selected categories. Defaults to false.
  * @param bool $is_manage			Whether in category management, in which case all are listed
  * @param bool $disable_parents		Whether to disable categories that do not have a contribution type
  * @param bool|int $category_type	Category type to limit list to
  * @return void
  */
 public function generate_category_select($selected = false, $is_manage = false, $disable_parents = true, $category_type = false)
 {
     if (!is_array($selected)) {
         $selected = array($selected);
     }
     $right = $padding = 0;
     $padding_store = array('0' => 0);
     $categories = $this->cache->get_categories();
     $hidden_categories = array();
     $category = new \titania_category();
     foreach ($categories as $row) {
         $type = $this->types->get($row['category_type']);
         if ($type && (!$type->acl_get('submit') || $category_type && $type->id != $category_type)) {
             continue;
         }
         $category->__set_array($row);
         if ($row['left_id'] < $right) {
             $padding++;
             $padding_store[$row['parent_id']] = $padding;
         } else {
             if ($row['left_id'] > $right + 1) {
                 $padding = isset($padding_store[$row['parent_id']]) ? $padding_store[$row['parent_id']] : $padding;
             }
         }
         $right = $row['right_id'];
         if (!$is_manage) {
             // Non-postable category with no children, don't display
             $not_postable = $row['category_type'] == 0 && $row['left_id'] + 1 == $row['right_id'];
             $hidden = !$row['category_visible'] || in_array($row['parent_id'], $hidden_categories);
             $team_only_restriction = $category->is_option_set('team_only') && !$type->acl_get('moderate');
             if ($not_postable || $hidden || $team_only_restriction) {
                 if ($hidden) {
                     $hidden_categories[] = $row['category_id'];
                 }
                 continue;
             }
         }
         $this->template->assign_block_vars('category_select', array('S_SELECTED' => in_array($row['category_id'], $selected), 'S_DISABLED' => $row['category_type'] == 0 && $disable_parents, 'VALUE' => $row['category_id'], 'TYPE' => $row['category_type'], 'NAME' => $category->get_name()));
         for ($i = 0; $i < $padding; $i++) {
             $this->template->assign_block_vars('category_select.level', array());
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Assign breadcrumbs to the template.
  *
  * @return null
  */
 protected function generate_breadcrumbs()
 {
     $category = new \titania_category();
     // Parents
     foreach (array_reverse($this->cache->get_category_parents($this->id)) as $row) {
         $category->__set_array($this->categories[$row['category_id']]);
         $this->display->generate_breadcrumbs(array($category->get_name() => $category->get_url()));
     }
     // Self
     $this->display->generate_breadcrumbs(array($this->category->get_name() => $this->category->get_url()));
 }
Ejemplo n.º 3
0
 /**
  * Generate category breadcrumbs.
  *
  * @return null
  */
 protected function generate_breadcrumbs()
 {
     $crumbs = array('MANAGE_CATEGORIES' => $this->helper->route('phpbb.titania.manage.categories'));
     if ($this->id) {
         $categories = $this->cache->get_categories();
         $category = new \titania_category();
         // Parents
         foreach (array_reverse($this->cache->get_category_parents($this->id)) as $data) {
             $category->__set_array($categories[$data['category_id']]);
             $crumbs[$category->get_name()] = $category->get_manage_url();
         }
         // Self
         $crumbs[$this->category->get_name()] = $this->category->get_manage_url();
     }
     $this->display->generate_breadcrumbs($crumbs);
 }
Ejemplo n.º 4
0
 /**
  * Assign breadcrumbs to template.
  *
  * @return null
  */
 protected function generate_breadcrumbs()
 {
     // Search for a category with the same name as the contrib type.  This is a bit ugly, but there really isn't any better option
     $categories = $this->cache->get_categories();
     $category = new \titania_category();
     foreach ($categories as $category_id => $category_row) {
         $category->__set_array($category_row);
         $name = $category->get_name();
         if ($name == $this->contrib->type->lang || $name == $this->contrib->type->langs) {
             // Generate the main breadcrumbs
             $this->display->generate_breadcrumbs(array($name => $category->get_url()));
         }
     }
 }