Example #1
0
 public function pagesByTag($params = false)
 {
     $pdoConn = Record::getConnection();
     if (!$params) {
         $params = $this->params;
     }
     $pages = array();
     $tag_unslugified = unslugify(isset($params[0]) ? $params[0] : NULL);
     $tag = isset($params[0]) ? $params[0] : NULL;
     $where = " WHERE page.id = page_tag.page_id AND page_tag.tag_id = tag.id AND ((tag.name = '{$tag}') OR (tag.name = '{$tag_unslugified}'))" . " AND page.status_id != " . Page::STATUS_HIDDEN . " AND page.status_id != " . Page::STATUS_DRAFT . " ORDER BY page.created_on DESC";
     // Count rows in table
     $sql_count = "SELECT count(*) FROM " . TABLE_PREFIX . "page AS page, " . TABLE_PREFIX . "page_tag AS page_tag, " . TABLE_PREFIX . "tag AS tag" . $where;
     $query = $pdoConn->query($sql_count);
     if ($query->fetchColumn() > 0) {
         $sql = "SELECT page.* FROM " . TABLE_PREFIX . "page AS page, " . TABLE_PREFIX . "page_tag AS page_tag, " . TABLE_PREFIX . "tag AS tag" . $where;
         $stmt = $pdoConn->prepare($sql);
         $stmt->execute();
         while ($object = $stmt->fetchObject()) {
             $page = new PageTagger($object);
             // assignParts
             $page->part = Page::get_parts($page->id);
             $pages[] = $page;
         }
     } else {
         return false;
     }
     return $pages;
 }