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); }
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); }
/** * 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; }
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); }