Esempio n. 1
0
 public function view($slug = '')
 {
     if (!$slug or !($post = $this->blog_m->get_by('slug', $slug))) {
         redirect('blog');
     }
     if ($post->status != 'live' && !$this->ion_auth->is_admin()) {
         redirect('blog');
     }
     // if it uses markdown then display the parsed version
     if ($post->type == 'markdown') {
         $post->body = $post->parsed;
     }
     // IF this post uses a category, grab it
     if ($post->category_id && ($category = $this->blog_categories_m->get($post->category_id))) {
         $post->category = $category;
     } else {
         $post->category->id = 0;
         $post->category->slug = '';
         $post->category->title = '';
     }
     $this->session->set_flashdata(array('referrer' => $this->uri->uri_string));
     $this->template->title($post->title, lang('blog_blog_title'))->set_metadata('description', $post->intro)->set_metadata('keywords', implode(', ', Keywords::get_array($post->keywords)))->set_breadcrumb(lang('blog_blog_title'), 'blog');
     if ($post->category->id > 0) {
         $this->template->set_breadcrumb($post->category->title, 'blog/category/' . $post->category->slug);
     }
     $post->keywords = Keywords::get_links($post->keywords, 'blog/tagged');
     $this->template->set_breadcrumb($post->title)->set('post', $post)->build('view', $this->data);
 }
Esempio n. 2
0
 public function pre_output($input, $data)
 {
     // if we want an array, format it correctly
     if (isset($data['return_type']) and $data['return_type'] === 'array') {
         $keyword_array = Keywords::get_array($input);
         $keywords = array();
         $total = count($keyword_array);
         foreach ($keyword_array as $key => $value) {
             $keywords[] = array('count' => $key, 'total' => $total, 'is_first' => $key == 0, 'is_last' => $key == $total - 1, 'keyword' => $value);
         }
         return $keywords;
     }
     // otherwise return it as a string
     return Keywords::get_string($input);
 }
Esempio n. 3
0
 /**
  * Tag/Keyword List
  *
  * Create a list of blog keywords/tags
  *
  * Usage:
  * {{ blog:tags limit="10" }}
  *		<span><a href="{{ url }}" title="{{ title }}">{{ title }}</a></span>
  * {{ /blog:tags }}
  *
  * @param array
  * @return array
  */
 public function tags()
 {
     $limit = $this->attribute('limit', null);
     $this->load->library(array('keywords/keywords'));
     $posts = $this->db->select('keywords')->get('news')->result();
     $buffer = array();
     // stores already added keywords
     $tags = array();
     foreach ($posts as $p) {
         $kw = Keywords::get_array($p->keywords);
         foreach ($kw as $k) {
             $k = trim(strtolower($k));
             if (!in_array($k, $buffer)) {
                 $buffer[] = $k;
                 $tags[] = array('title' => ucfirst($k), 'url' => site_url('news/tagged/' . $k));
             }
         }
     }
     if (count($tags) > $limit) {
         return array_slice($tags, 0, $limit);
     }
     return $tags;
 }
Esempio n. 4
0
 private function _single_view($post, $build = 'view')
 {
     // if it uses markdown then display the parsed version
     if ($post->type == 'markdown') {
         $post->body = $post->parsed;
     }
     // IF this post uses a category, grab it
     if ($post->category_id && ($category = $this->blog_categories_m->get($post->category_id))) {
         $post->category = $category;
     } else {
         $post->category->id = 0;
         $post->category->slug = '';
         $post->category->title = '';
     }
     $this->session->set_flashdata(array('referrer' => $this->uri->uri_string));
     $this->template->title($post->title, lang('blog_blog_title'))->set_metadata('description', $post->intro)->set_metadata('keywords', implode(', ', Keywords::get_array($post->keywords)))->set_breadcrumb(lang('blog_blog_title'), 'blog');
     if ($post->category->id > 0) {
         $this->template->set_breadcrumb($post->category->title, 'blog/category/' . $post->category->slug);
     }
     $post->keywords = Keywords::get($post->keywords);
     $this->template->set_breadcrumb($post->title)->set('post', $post)->build($build);
 }