public function generateSeoGSiteMap() { $res = true; $xmlSiteMapHeader = <<<XML <?xml version="1.0" encoding="UTF-8" ?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> </urlset> XML; $xml = array(); foreach (AdvancedSearchClass::getSearchsId(true) as $searchRow) { $idSearch = (int) $searchRow['id_search']; $idShop = (int) AdvancedSearchClass::getShopBySearch($idSearch); if (version_compare(_PS_VERSION_, '1.5.0.0', '>=')) { $shop = new Shop($idShop); } if (!isset($xml[$idShop])) { $xml[$idShop] = new SimpleXMLElement($xmlSiteMapHeader); } foreach (Language::getLanguages(true) as $language) { $seoSearchs = AdvancedSearchSeoClass::getSeoSearchs($language['id_lang'], false, $idSearch); foreach ($seoSearchs as $seoSearch) { $nbCriteria = count(unserialize($seoSearch['criteria'])); if ($nbCriteria <= 3) { $priority = 0.7; } else { if ($nbCriteria <= 5) { $priority = 0.6; } else { $priority = 0.5; } } $sitemap[$idShop] = $xml[$idShop]->addChild('url'); if (version_compare(_PS_VERSION_, '1.5.0.0', '>=')) { $url = $shop->getBaseURL() . (Language::countActiveLanguages() > 1 ? $language['iso_code'] . '/' : '') . 's/' . (int) $seoSearch['id_seo'] . '/' . htmlentities($seoSearch['seo_url'], ENT_COMPAT, 'UTF-8'); if (Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE')) { $url = 'https://' . ltrim($url, 'http://'); } $sitemap[$idShop]->addChild('loc', $url); } else { $sitemap[$idShop]->addChild('loc', _PS_BASE_URL_ . __PS_BASE_URI__ . (Language::countActiveLanguages() > 1 ? $language['iso_code'] . '/' : '') . 's/' . (int) $seoSearch['id_seo'] . '/' . htmlentities($seoSearch['seo_url'], ENT_COMPAT, 'UTF-8')); } $sitemap[$idShop]->addChild('priority', $priority); $sitemap[$idShop]->addChild('changefreq', 'weekly'); } } } foreach ($xml as $idShop => $xmlContent) { if ($idShop) { $res &= file_put_contents(_PS_ROOT_DIR_ . '/modules/pm_advancedsearch4/sitemap/seositemap-' . (int) $idShop . '.xml', $xmlContent->asXML()); } else { $res &= file_put_contents(_PS_ROOT_DIR_ . '/modules/pm_advancedsearch4/sitemap/seositemap.xml', $xmlContent->asXML()); } } return $res; }