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; }