/** * Return sites by tag * * @param string $tag * @param boolean $asArray * @return Site[] */ public function getSitesByTag($tag, $asArray = false) { $result = []; $tagID = TagManager::getID($tag); if ($tagID) { $tagID = array_keys($tagID); } if ($sites = $this->dbh->getColumn('share_sites_tags', 'site_id', ['tag_id' => $tagID])) { $result = array_map(function ($siteID) use($asArray) { return !$asArray ? $this->getSiteByID($siteID) : $siteID; }, $sites); } return $result; }
/** * @param string $tag * @return array */ public function getPagesByTag($tag) { return $this->dbh->getColumn('SELECT * FROM `share_sitemap_tags` st RIGHT JOIN share_sitemap s On (st.smap_id = s.smap_id) AND (s.site_id= %s) WHERE tag_id IN (%s)', $this->siteID, array_keys(TagManager::getID($tag))); }