Example #1
0
 public static function display_posts($num_or_config = 8)
 {
     $config = (object) array('display_num' => 8, 'page_slug' => 'blog', 'filter' => 'recent', 'list_id' => 'display_posts', 'template' => 'display_posts.inc', 'tags' => NULL, 'entry_id' => NULL);
     if (is_object($num_or_config)) {
         foreach ($num_or_config as $param => $value) {
             if (property_exists($config, $param)) {
                 $config->{$param} = $value;
             }
         }
     } else {
         if (is_int($num_or_config)) {
             $config->display_num = $num_or_config;
         }
     }
     $page_obj = new self(array($config->page_slug));
     $page_obj->template = $config->template;
     $page_obj->entry_limit = $config->display_num;
     $menu_obj = Menu::get_page_data_by_slug($config->page_slug);
     if ($config->filter === 'recent') {
         $page_obj->get_all_entries();
     } else {
         if ($config->filter === 'featured') {
             $page_obj->get_featured_entries();
         } else {
             if ($config->filter === 'related' && isset($config->tags)) {
                 $page_obj->get_related_entries($config->entry_id, $menu_obj->page_id, $config->tags);
             }
         }
     }
     $page_obj->generate_template_tags();
     foreach ($page_obj->entries as &$entry) {
         if (!empty($entry->subtitle)) {
             $subtitle = ': ' . $entry->subtitle;
         } else {
             $subtitle = NULL;
         }
         $entry->title = stripslashes($entry->title . $subtitle);
     }
     $extra_template->header->list_id = $config->list_id;
     // Return the entry as formatted by the template
     return $page_obj->generate_markup($extra_template);
 }