Esempio n. 1
0
 /**
  * Add active class to menu of post type single template
  *
  * @param array $css_classes
  *
  * @return array
  */
 public function addActive($css_classes)
 {
     $custom_post_type = PostType::get_custom_post_type();
     if (\is_single() && \is_singular($custom_post_type) || \is_tax()) {
         // check - Post is a Custom Post Type
         $css_classes = \array_filter($css_classes, array($this, 'removeActiveClass'));
         //get all registered custom post type templates
         foreach ($custom_post_type as $post_type) {
             if ($post_type === get_post_type()) {
                 $searching_slug = array();
                 $templates = PostTypeAbstract::getTemplates($post_type);
                 if (!is_null($templates)) {
                     $pages = Page::getPageByTemplate($templates);
                     foreach ($pages as $page) {
                         $slag = sanitize_title($page->post_title);
                         $searching_slug[] = 'menu-' . $slag;
                     }
                     if (array_intersect($searching_slug, $css_classes)) {
                         $css_classes[] = 'active';
                     }
                 }
             }
         }
     }
     return $css_classes;
 }
Esempio n. 2
0
 /**
  *
  * foot path
  *
  * @global object $post post object
  * @return string
  * @static
  * @todo change from echo to array, and refactor this method
  */
 public function get_breadcrumbs()
 {
     if (function_exists('bcn_display')) {
         echo bcn_display();
     } else {
         global $post;
         $home_page_id = \get_option('page_on_front');
         $home_link = \get_home_url();
         $home = \get_the_title($home_page_id);
         //$home_link = $this->get_home();
         //$home = Translate::translate( 'home' );
         if (is_home() || is_front_page()) {
             echo '<ol class="breadcrumb">';
             if ($this->_show_on_home) {
                 echo '<li><a href="' . $home_link . '">' . $home . '</a></li>' . $this->_delimiter . ' ' . "\n";
             }
             $blog_page = $this->get_blog_page();
             if (isset($blog_page['title'])) {
                 echo '<li class="active">' . $blog_page['title'] . '</li>' . "\n";
             }
             echo '</ol>' . "\n";
         } else {
             echo '<ol class="breadcrumb"><li><a href="' . $home_link . '">' . $home . '</a></li>' . $this->_delimiter . ' ' . "\n";
             if (is_category()) {
                 $this->get_blog_page();
                 $thisCat = get_category(get_query_var('cat'), false);
                 if ($thisCat->parent != 0) {
                     echo '<li>' . get_category_parents($thisCat->parent, true, ' </li><li> ') . '</li>' . "\n";
                 }
                 echo $this->_before . Translate::translate('Archive by category') . ' "' . single_cat_title('', false) . '"' . $this->_after;
             } elseif (is_search()) {
                 echo $this->_before . Translate::translate('Search') . '"' . get_search_query() . '"' . $this->_after;
             } elseif (is_day()) {
                 echo '<li><a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a></li>' . $this->_delimiter . ' ' . "\n";
                 echo '<li><a href="' . get_month_link(get_the_time('Y'), get_the_time('m')) . '">' . get_the_time('F') . '</a></li>' . $this->_delimiter . ' ' . "\n";
                 echo $this->_before . get_the_time('d') . $this->_after;
             } elseif (is_month()) {
                 echo '<li><a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a></li>' . $this->_delimiter . ' ' . "\n";
                 echo $this->_before . get_the_time('F') . $this->_after;
             } elseif (is_year()) {
                 echo $this->_before . get_the_time('Y') . $this->_after;
             } elseif (is_single() && !is_attachment()) {
                 //custom post types
                 $post_type = get_post_type();
                 if ($post_type != 'post') {
                     $page_object = \SilverWp\Helper\Page::getPagesByTemplates($post_type);
                     //if page temaplate for page lists is set get page_id
                     if (isset($page_object[0]->ID)) {
                         $page_id = $page_object[0]->ID;
                     } else {
                         //if not return home id
                         $page_id = get_option('page_on_front');
                     }
                     $this->get_the_page_path($page_id);
                     if ($this->_show_current == 1) {
                         echo ' ' . $this->_delimiter . ' ' . $this->_before . get_the_title() . $this->_after . "\n";
                     }
                 } else {
                     $cat = get_the_category();
                     $cat_string = '<li>' . get_category_parents($cat[0]->cat_ID, true, '</li><li>') . '</li>';
                     echo substr($cat_string, 0, strlen($cat_string) - strlen('</li><li>')) . "\n";
                     if ($this->_show_current == 1) {
                         echo $this->_before . get_the_title() . $this->_after;
                     }
                 }
             } elseif (!is_single() && !is_page() && get_post_type() != 'post' && !is_404()) {
                 $post_type = get_post_type_object(get_post_type());
                 echo $this->_before . $post_type->labels->singular_name . $this->_after;
             } elseif (is_attachment()) {
                 if ($post->post_parent != 0) {
                     $parent = get_post($post->post_parent);
                     $cat = get_the_category($parent->ID);
                     if (isset($cat[0])) {
                         echo get_category_parents($cat[0], true, ' ' . $this->_delimiter . ' ');
                     }
                     echo '<li><a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a></li>' . "\n";
                 }
                 if ($this->_show_current == 1) {
                     echo ' ' . $this->_delimiter . ' ' . $this->_before . get_the_title() . $this->_after;
                 }
             } elseif (is_page() && !$post->post_parent) {
                 if ($this->_show_current == 1) {
                     echo $this->_before . get_the_title() . $this->_after;
                 }
             } elseif (is_page() && $post->post_parent) {
                 $parent_id = $post->post_parent;
                 $this->get_the_page_path($parent_id);
                 if ($this->_show_current == 1) {
                     echo ' ' . $this->_delimiter . ' ' . $this->_before . get_the_title() . $this->_after;
                 }
             } elseif (is_tag()) {
                 echo $this->_before . Translate::translate('Posts tagged') . ' "' . single_tag_title('', false) . '"' . $this->_after;
             } elseif (is_author()) {
                 global $author;
                 $userdata = get_userdata($author);
                 echo $this->_before . Translate::translate('Articles posted by') . ' ' . $userdata->display_name . $this->_after;
             } elseif (is_404()) {
                 echo $this->_before . Translate::translate('Error 404') . $this->_after;
             }
             if (get_query_var('paged')) {
                 /*if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) {
                       
                   }*/
                 //echo $this->_before;
                 echo '<span class="active"> (';
                 echo Translate::translate('Page') . ' ' . \get_query_var('paged');
                 echo ')</span>';
                 //echo $this->_after;
                 /*if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) {
                       
                   }*/
             }
             echo '</ol>' . "\n";
         }
     }
 }
Esempio n. 3
0
 /**
  * Get page id by template name (include language)
  *
  * @param array|string $template_name
  *
  * @return bool|mixed|null|string
  * @access public
  * @static
  */
 public static function getIdByTemplate($template_name)
 {
     $template_name = is_array($template_name) ? $template_name : array($template_name);
     $page = Page::getPageByTemplate($template_name);
     if (function_exists('icl_object_id')) {
         $page_id = icl_object_id($page[0]->ID, 'page', true, ICL_LANGUAGE_CODE);
     } else {
         $page_id = $page[0]->ID;
     }
     return $page_id;
 }