*/ class saSitemapFactory extends BaseSaSitemapFactory { public static function getSitemap() { $sitemap = new saSitemap('Mapa stránek'); self::addPage($sitemap, 1); self::addPage($sitemap, 2); self::addPage($sitemap, 3); self::addPage($sitemap, 10); $offers = new saSitemap('Nabídky zaměstnání', self::url('jobs_offers')); $query = Doctrine::getTable('JobCategory')->createQuery()->orderBy('priority DESC'); foreach($query->execute() as $category) { $cat = new saSitemap($category->getName(), self::url('jobs_offers').'?f[category_id]='.$category->getId()); $query = JobTable::getNonExpirationQuery()->addWhere('type_id = ? AND category_id = ?', array(JobType::OFFER, $category->getId())); foreach($query->execute() as $job) { $cat->addItem(new saSitemap($job->getName(), self::url('job_read', $job))); } $offers->addItem($cat); } $sitemap->addItem($offers); // Poptávky nejsou veřejné // $demands = new saSitemap('Popdávky po zaměstnání', self::url('jobs_demands')); // // $query = JobTable::getNonExpirationQuery()->addWhere('type_id = ?', JobType::DEMAND); // foreach($query->execute() as $job) // { // $demands->addItem(new saSitemap($job->getName(), self::url('job_read', $job))); // } // $sitemap->addItem($demands); return $sitemap; } /** * * @param saSitemap $sitemap * @param integer $pageId */ private static function addPage(saSitemap &$sitemap, $pageId) { $page = Doctrine::getTable('Page')->findOneById($pageId); if($page instanceof Page) { $sitemap->addItem(new saSitemap($page->getTitle(), self::url('page_read', $page))); } } }