Thx, it is working now.
I've made some modifications who may interest some people and maybe the author:
line 129, I corrected a small mistake ("EZpages" and not "category"):
Code:
message('<span style="font-weight: bold); color: red;">ERROR: Google EZPages Sitemap Generation FAILED!</span><br />' . "\n\n");
line 424, I modified the function called "GenerateEzpagesSitemap" (modifications in bold):
Code:
function GenerateEzpagesSitemap(){
global $db;
$where = array();
if(GOOGLE_SITEMAP_EZPAGES_HEADER == 'true') $where[] = '(status_header = 1 AND header_sort_order > 0)';
if(GOOGLE_SITEMAP_EZPAGES_SIDEBOX == 'true') $where[] = '(status_sidebox = 1 AND sidebox_sort_order > 0)';
if(GOOGLE_SITEMAP_EZPAGES_FOOTER == 'true') $where[] = '(status_footer = 1 AND footer_sort_order > 0)';
//$where[] = '(status_header = 1 AND header_sort_order > 0)';
//$where[] = '(status_sidebox = 1 AND sidebox_sort_order > 0)';
//$where[] = '(status_footer = 1 AND footer_sort_order > 0)';
//if(sizeof($where) == 0) return false;
$container = array();
if(defined('TABLE_EZPAGES_TEXT')) {
$from = "LEFT JOIN " . TABLE_EZPAGES_TEXT . " pt ON (p.pages_id = pt.pages_id)
LEFT JOIN " . TABLE_LANGUAGES . " l ON (pt.languages_id = l.languages_id) ";
} else {
$from = "";
}
$where_stmt = empty($where) ? "" : " WHERE " . implode(' OR ', $where);
$page_query = $db->Execute("SELECT *
FROM " . TABLE_EZPAGES . " p " . $from . $where_stmt . "
ORDER BY sidebox_sort_order");
while (!$page_query->EOF) {
if($page_query->fields['alt_url_external'] == '') { // skip external link
$lang_param = (isset($page_query->fields['code']) && $page_query->fields['code'] != DEFAULT_LANGUAGE ? '&language=' . $page_query->fields['code'] : '');
if($page_query->fields['alt_url'] != '') { // internal link
$link = (substr($page_query->fields['alt_url'],0,4) == 'http') ?
$page_query->fields['alt_url'] :
zen_href_link($page_query->fields['alt_url'], $lang_param, ($page_query->fields['page_is_ssl']=='0' ? 'NONSSL' : 'SSL'), false, true, true);
} else { // use EZPage ID to create link
$link = zen_href_link(FILENAME_EZPAGES, 'id=' . $page_query->fields['pages_id'] . ((int)$page_query->fields['toc_chapter'] != 0 ? '&chapter=' . $page_query->fields['toc_chapter'] : '') . $lang_param, ($page_query->fields['page_is_ssl']=='0' ? 'NONSSL' : 'SSL'), false);
}
if(!isset($this->duplicated_links[$link])) {
$this->duplicated_links[$link] = true;
$page_query->fields['last_date'] = null;
if(isset($page_query->fields['date_added']) && $page_query->fields['date_added'] != null) {
$page_query->fields['last_date'] = strtotime($page_query->fields['date_added']);
}
if(isset($page_query->fields['last_modified']) && $page_query->fields['last_modified'] != null) {
$page_query->fields['last_date'] = strtotime($page_query->fields['last_modified']);
}
$container[$link] = array('loc' => $link,
'lastmod' => $page_query->fields['last_date'],
'changefreq' => GOOGLE_SITEMAP_EZPAGES_CHANGE_FREQ,
'priority' => GOOGLE_SITEMAP_EZPAGES_CHANGE_PRIOR);
}
}
$page_query->MoveNext();
}
return $this->GenerateSitemap($container, 'ezpages');
}
I've then added the possibility to generate 2 new sitemaps: manufacturers' pages and other pages like "new products", "shipping info"...
I've added the following code:
line 39:
Code:
@define('GOOGLE_SITEMAP_OTHERPAGES_CHANGE_FREQ', 'weekly');
@define('GOOGLE_SITEMAP_OTHERPAGES_CHANGE_PRIOR', 0.5);
@define('GOOGLE_SITEMAP_MANUFACTURERS_CHANGE_FREQ', 'daily');
@define('GOOGLE_SITEMAP_MANUFACTURERS_CHANGE_PRIOR', 0.5);
line 131:
Code:
message('<br />');
if ($google->GenerateManufacturersSitemap()){
message('Generated Google Manufacturers Sitemap Successfully' . ' - <a href="' . $google->base_url . 'manufacturers.xml" target="_blank">' . $google->base_url . 'sitemapmanufacturers.xml</a><br />' . "\n");
} else {
$submit = false;
message('<span style="font-weight: bold); color: red;">ERROR: Google Manufacturers Sitemap Generation FAILED!</span><br />' . "\n\n");
}
message('<br />');
if ($google->GenerateOtherpagesSitemap()){
message('Generated Google Other Pages Sitemap Successfully' . ' - <a href="' . $google->base_url . 'otherpages.xml" target="_blank">' . $google->base_url . 'sitemapotherpages.xml</a><br />' . "\n");
} else {
$submit = false;
message('<span style="font-weight: bold); color: red;">ERROR: Google Other Pages Sitemap Generation FAILED!</span><br />' . "\n\n");
}
line 474:
Code:
// generate other pages sitemap data
function GenerateManufacturersSitemap(){
global $db;
$languages_dir = array();
$language_query = $db->Execute("SELECT *
FROM " . TABLE_LANGUAGES);
while (!$language_query->EOF) {
if($language_query->fields['directory'] != ''){
$languages_dir[$language_query->fields['code']] = $language_query->fields['directory'];
}
$language_query->MoveNext();
}
$container = array();
$manufacturer_query = $db->Execute("SELECT *
FROM " . TABLE_MANUFACTURERS);
while (!$manufacturer_query->EOF) {
foreach ($languages_dir as $language_code=>$language_dir) {
if($language_code != DEFAULT_LANGUAGE){
$link = zen_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturer_query->fields['manufacturers_id'].'&language='.$language_code);
}
else {
$link = zen_href_link(FILENAME_DEFAULT, 'manufacturers_id='.$manufacturer_query->fields['manufacturers_id']);
}
if(!isset($this->duplicated_links[$link])) {
$this->duplicated_links[$link] = true;
$container[$link] = array('loc' => $link,
'lastmod' => time(),
'changefreq' => GOOGLE_SITEMAP_MANUFACTURERS_CHANGE_FREQ,
'priority' => GOOGLE_SITEMAP_MANUFACTURERS_CHANGE_PRIOR);
}
}
$manufacturer_query->MoveNext();
}
return $this->GenerateSitemap($container, 'manufacturers');
}
// generate other pages sitemap data
function GenerateOtherpagesSitemap(){
global $db;
global $template_dir;
$languages_dir = array();
$language_query = $db->Execute("SELECT *
FROM " . TABLE_LANGUAGES);
while (!$language_query->EOF) {
if($language_query->fields['directory'] != ''){
$languages_dir[$language_query->fields['code']] = $language_query->fields['directory'];
}
$language_query->MoveNext();
}
$container = array();
foreach ($languages_dir as $language_code=>$language_dir) {
$path_oe = DIR_FS_CATALOG . DIR_WS_LANGUAGES . $language_dir . '/html_includes/' . $template_dir;
if ($op_dir = @dir($path_oe)) {
while ($filename = $op_dir->read()) {
$tmp_zen_filename = str_replace(".php", "", $filename);
if($tmp_zen_filename != $filename) {
$zen_filename = str_replace("define_", "", $tmp_zen_filename);
if($zen_filename != $tmp_zen_filename){
//echo "<br />".$filename." ".$zen_filename;
if($language_code != DEFAULT_LANGUAGE){
$link = zen_href_link($zen_filename, 'language='.$language_code);
}
else {
$link = zen_href_link($zen_filename);
}
if(!isset($this->duplicated_links[$link])) {
$this->duplicated_links[$link] = true;
$container[$link] = array('loc' => $link,
'lastmod' => filemtime($path_oe . '/' . $filename),
'changefreq' => GOOGLE_SITEMAP_OTHERPAGES_CHANGE_FREQ,
'priority' => GOOGLE_SITEMAP_OTHERPAGES_CHANGE_PRIOR);
}
}
}
}
}
}
return $this->GenerateSitemap($container, 'otherpages');
}
Bookmarks