Hej, zrobiłem podział sitemapy, lecz mam problem z powtarzalnym kodem i chciałbym uniknąć tworzenia dodatkowych funkcji, żeby tylko zmienić wartość offsetu przy robieniu query (pobieram artykuły po 2000).
public function index() { $this->layout = false; $sitemaps = [ ['loc' => (APP . '\Config\Config')::getUrl() . '/sitemaps/articles0/sitemap.xml'], ['loc' => (APP . '\Config\Config')::getUrl() . '/sitemaps/articles1/sitemap.xml'] ]; $this->set('sitemaps', $sitemaps); } public function articles0() { $this->loadModel('Article'); $articles = $this->Article->query( 'SELECT url, modified FROM articles WHERE site_id=' . $this->siteId . " AND status='publish' AND (redirect_url is null OR redirect_url = '') AND landing_page_id is null AND calc_id = '0' LIMIT 2000" ); foreach ($articles as $article) { $urls[] = [ 'loc' => (APPNAME . '\Config\Config')::getUrl() . '/-' . $article['url'], 'lastmod' => http://www.php.net/date('Y-m-d\TH:i:s+00:00', http://www.php.net/strtotime($article['modified'])) ]; } $this->set('urlset', $urls); $this->render('sitemaps/urlset', false); } public function articles1() { $this->loadModel('Article'); $articles = $this->Article->query( 'SELECT url, modified FROM articles WHERE site_id=' . $this->siteId . " AND status='publish' AND (redirect_url is null OR redirect_url = '') AND landing_page_id is null AND calc_id = '0' LIMIT 2000, 2000" ); foreach ($articles as $article) { $urls[] = [ 'loc' => (APPNAME . '\Config\Config')::getUrl() . '/-' . $article['url'], 'lastmod' => http://www.php.net/date('Y-m-d\TH:i:s+00:00', http://www.php.net/strtotime($article['modified'])) ]; } $this->set('urlset', $urls); $this->render('sitemaps/urlset', false); }
public function articles(int $offset, int $rowCount){}
dziękuje bardzo, a czy mógłbym przeciażać w php metodę, żeby mieć 1 metodę z tą samą nazwą tylko parametrami by się różniła?
Nie da się przeciążać metod w PHP, ale możesz wstrzyknąć Obiekt z różną ilością properties, ale zapiętym jednym Interface'em.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)