Exemple #1
0
 public function index($id = NULL, $page = 1)
 {
     if (is_null($id) or is_numeric($id)) {
         $this->redirect($this->conf['blog_siteurl']);
     }
     $tag = $id;
     $post = new post();
     $link = new link();
     $comment = new comment();
     $this->html->useTheme($this->conf['blog_current_theme']);
     $info = array();
     $info["isAdmin"] = false;
     if ($this->cookie->check("logged") and $this->cookie->id_user == 1) {
         $info["isAdmin"] = true;
     }
     $this->themes->info = $info;
     $includes['charset'] = $this->html->charsetTag("UTF-8");
     $includes['rssFeed'] = $this->html->includeRSS();
     if ($page > 1) {
         $includes['canonical'] = "<link rel=\"canonical\" href=\"{$this->conf['blog_siteurl']}/tag/" . rawurlencode($post->sql_escape($id)) . "/{$page}\" />";
     } else {
         $includes['canonical'] = "<link rel=\"canonical\" href=\"{$this->conf['blog_siteurl']}/tag/" . rawurlencode($post->sql_escape($id)) . "\" />";
     }
     $this->registry->includes = $includes;
     $this->plugin->call('index_includes');
     $includes = null;
     foreach ($this->registry->includes as $include) {
         $includes .= $include;
     }
     $this->themes->includes = $includes;
     $this->themes->links = $link->findAll();
     $this->themes->single = false;
     $total_rows = $post->countPosts(array('status' => 'publish', 'tag' => $tag));
     $page = (int) is_null($page) ? 1 : $page;
     $limit = $this->conf['blog_posts_per_page'];
     $offset = ($page - 1) * $limit;
     $limitQuery = $offset . "," . $limit;
     $targetpage = $this->path . "tag/{$tag}/";
     $this->themes->pagination = $this->pagination->init($total_rows, $page, $limit, $targetpage);
     $posts = $post->getPostsByTag($tag, $limitQuery);
     foreach ($posts as $k => $p) {
         $posts[$k]['title'] = htmlspecialchars($p['title']);
         $posts[$k]['tags'] = $post->getTags($p['ID']);
         $posts[$k]['comments_count'] = $comment->countCommentsByPost($posts[$k]['ID']);
         $user = new user();
         if ($posts[$k]['id_user'] < 2) {
             $posts[$k]['autor'] = $user->find(1);
         } else {
             $posts[$k]['autor'] = $user->find($posts[$k]['id_user']);
         }
     }
     $this->registry->posts = $posts;
     $this->plugin->call("index_post_content");
     $this->themes->posts = $this->registry->posts;
     $this->themes->title_for_layout = "{$this->conf['blog_name']} - {$tag}";
     $this->render();
 }
Exemple #2
0
 public function busqueda($q)
 {
     $P = new post();
     $q = $P->sql_escape($q);
     $rows = $P->findAll("urlfriendly,title,match(title, content, urlfriendly) against('{$q}') as score", "score DESC", 20, "WHERE status='publish' AND match(title, content, urlfriendly) against('{$q}')");
     return $rows;
 }
 public function index($urlfriendly = null, $page = 1, $vistas = false)
 {
     $this->plugin->call('index_load');
     $page = (int) is_null($page) ? 1 : $page;
     $C = new configuration();
     $P = new post();
     $L = new link();
     $urlfriendly = rawurlencode($P->sql_escape($urlfriendly));
     //Sanitize
     $codice = $C->getBlogConfiguration();
     $title_for_layout = $codice['blog_name'];
     $links = $L->findAllBy("type", "internal");
     //links para el sidebar
     $single = $urlfriendly ? true : false;
     $this->registry->single = $single;
     if ($urlfriendly) {
         $post = $P->getPost($urlfriendly, 'publish');
         $posts = null;
         if ($P->isNew() === false) {
             $title_for_layout = $post["title"];
             $busqueda = null;
             $pagination = null;
         } else {
             $title_for_layout = "Búsquedas";
             $posts = $P->busqueda($urlfriendly);
             $busqueda = true;
             $pagination = null;
             $single = false;
         }
     } else {
         $total_rows = $P->countPosts();
         $limit = $codice['blog_posts_per_page'];
         $offset = ($page - 1) * $limit;
         $limitQuery = $offset . "," . $limit;
         $targetpage = $this->path . 'index/page/';
         $busqueda = null;
         $pagination = $this->pagination->init($total_rows, $page, $limit, $targetpage);
         $post = null;
         $posts = $P->getPosts("publish", $limitQuery);
     }
     //Creamos los tags <meta> que van dentro del layout.
     $includes = array();
     $includes['charset'] = $this->html->charsetTag("UTF-8");
     $includes['rssFeed'] = $this->html->includeRSS();
     if ($page > 1) {
         $includes['canonical'] = $this->html->includeCanonical("/index/page/{$page}");
     } else {
         if ($urlfriendly) {
             $includes['canonical'] = $this->html->includeCanonical($urlfriendly);
         } else {
             $includes['canonical'] = $this->html->includeCanonical();
         }
     }
     $this->registry->includes = $includes;
     $this->plugin->call('index_includes');
     //Convertimos de Array a String, para que pueda ser mostrado en la vista.
     $includes = null;
     foreach ($this->registry->includes as $include) {
         $includes .= $include;
     }
     $this->registry->post = $post;
     $this->registry->posts = $posts;
     $this->plugin->call("index_post_content");
     $this->view->setLayout("codice");
     $this->view->codice = $codice;
     $this->view->urlfriendly = $urlfriendly;
     $this->view->pagination = $pagination;
     $this->view->busqueda = $busqueda;
     $this->view->includes = $includes;
     $this->view->links = $links;
     $this->view->single = $single;
     $this->view->posts = $this->registry->posts;
     $this->view->post = $this->registry->post;
     $this->view->cookie = array('author' => $this->cookie->check('author') ? $this->cookie->author : '', 'email' => $this->cookie->check('email') ? $this->cookie->email : '', 'url' => $this->cookie->check('url') ? $this->cookie->url : '');
     $this->title_for_layout($title_for_layout);
     $this->render("index");
 }