' . TEXT_HEAD_EZPAGES . ''; $select = ''; $from = ''; $where = ''; $order_by = ''; if (SITEMAPXML_EZPAGES_ORDERBY != '') { $order_by = SITEMAPXML_EZPAGES_ORDERBY; } if ($sitemapXML->dbColumnExist(TABLE_EZPAGES, 'status_meta_robots')) { $where .= " AND status_meta_robots=1"; } elseif ($sitemapXML->dbColumnExist(TABLE_EZPAGES, 'status_rel_nofollow')) { $where .= " AND status_rel_nofollow!=1"; } if ($sitemapXML->dbTableExist('TABLE_EZPAGES_TEXT')) { $from .= " LEFT JOIN " . TABLE_EZPAGES_TEXT . " pt ON (p.pages_id = pt.pages_id)"; if ($sitemapXML->dbColumnExist(TABLE_EZPAGES_TEXT, 'language_id')) { $where .= " AND pt.language_id IN (" . $sitemapXML->getLanguagesIDs() . ") "; } elseif ($sitemapXML->dbColumnExist(TABLE_EZPAGES_TEXT, 'languages_id')) { $select .= ", pt.languages_id as language_id"; $where .= " AND pt.languages_id IN (" . $sitemapXML->getLanguagesIDs() . ") "; } } if ($sitemapXML->dbColumnExist(TABLE_EZPAGES, 'date_added') && $sitemapXML->dbColumnExist(TABLE_EZPAGES, 'last_modified')) { $select .= ", GREATEST(IFNULL(p.date_added, '0001-01-01 00:00:00'), IFNULL(p.last_modified, '0001-01-01 00:00:00')) AS last_date"; if ($order_by != '') { $order_by .= ", "; } $order_by .= "last_date DESC"; $last_date_sql = "SELECT MAX(GREATEST(IFNULL(p.date_added, '0001-01-01 00:00:00'), IFNULL(p.last_modified, '0001-01-01 00:00:00'))) AS last_date FROM " . TABLE_EZPAGES . " p " . $from . " WHERE alt_url_external = ''" . $where; $last_date = $db->Execute($last_date_sql); $table_status = $db->Execute("SHOW TABLE STATUS LIKE '" . TABLE_EZPAGES . "'"); $last_date = max($table_status->fields['Update_time'], $last_date->fields['last_date']); if ($last_date <= '0001-01-01 00:00:00') { $last_date = 0; } } else { $last_date = 0; } if ($sitemapXML->SitemapOpen('ezpages', $last_date)) { $page_query_sql = "SELECT p.toc_chapter FROM " . TABLE_EZPAGES . " p " . $from . " WHERE alt_url_external = '' AND ( (status_header = 1 AND header_sort_order > 0) OR (status_sidebox = 1 AND sidebox_sort_order > 0) OR (status_footer = 1 AND footer_sort_order > 0) ) AND status_toc != 0" . $where . " GROUP BY toc_chapter"; $page_query = $db->Execute($page_query_sql); // pages_id $toc_chapter_array = array(); while (!$page_query->EOF) { $toc_chapter_array[$page_query->fields['toc_chapter']] = $page_query->fields['toc_chapter']; $page_query->MoveNext(); } if (sizeof($toc_chapter_array) > 0) { $where_toc = " OR toc_chapter IN (" . implode(',', $toc_chapter_array) . ")"; } else { $where_toc = ''; } $page_query_sql = "SELECT *" . $select . " FROM " . TABLE_EZPAGES . " p " . $from . " WHERE alt_url_external = '' AND ( (status_header = 1 AND header_sort_order > 0) OR (status_sidebox = 1 AND sidebox_sort_order > 0) OR (status_footer = 1 AND footer_sort_order > 0) " . $where_toc . " )" . $where . ($order_by != '' ? " ORDER BY " . $order_by : ''); $page_query = $db->Execute($page_query_sql); // pages_id $sitemapXML->SitemapSetMaxItems($page_query->RecordCount()); while (!$page_query->EOF) { 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'], '', ($page_query->fields['page_is_ssl']=='0' ? 'NONSSL' : 'SSL'), false, true, true); $link = str_replace('&', '&', $link); $link = preg_replace('/&&+/', '&', $link); $link = preg_replace('/&/', '&', $link); $linkParm = ''; $parse_url = parse_url($link); if (!isset($parse_url['path'])) $parse_url['path'] = '/'; $link_base_url = $parse_url['scheme'] . '://' . $parse_url['host']; if ($link_base_url != HTTP_SERVER && $link_base_url != HTTPS_SERVER) { var_dump($page_query->fields['alt_url'], $link, $parse_url, $link_base_url, $sitemapXML->base_url, HTTP_SERVER . DIR_WS_CATALOG); echo sprintf(TEXT_ERRROR_EZPAGES_OUTOFBASE, $page_query->fields['alt_url'], $link) . '
'; $link = false; } else { if (basename($parse_url['path']) == 'index.php') { $query_string = explode('&', $parse_url['query']); foreach($query_string as $query) { list($parm_name, $parm_value) = explode('=', $query); if ($parm_name == 'main_page') { if (defined('ROBOTS_PAGES_TO_SKIP') && in_array($parm_value, explode(',', constant('ROBOTS_PAGES_TO_SKIP'))) || $parm_value == 'down_for_maintenance') { echo sprintf(TEXT_ERRROR_EZPAGES_ROBOTS, $page_query->fields['alt_url'], $link) . '
'; $link = false; break; } } } } } } else { // use EZPage ID to create link $link = FILENAME_EZPAGES; $linkParm = 'id=' . $page_query->fields['pages_id'] . ((int)$page_query->fields['toc_chapter'] > 0 ? '&chapter=' . $page_query->fields['toc_chapter'] : ''); } if ($link != false) { if (isset($page_query->fields['last_date']) && $page_query->fields['last_date'] != null) { if (zen_not_null($page_query->fields['last_date']) && $page_query->fields['last_date'] > '0001-01-01 00:00:00') { $last_date = $page_query->fields['last_date']; } else { $last_date = ''; } } else { $last_date = ''; } $page_query->fields['language_id'] = (isset($page_query->fields['language_id']) ? $page_query->fields['language_id'] : 0); $sitemapXML->writeItem($link, $linkParm, $page_query->fields['language_id'], $last_date, SITEMAPXML_EZPAGES_CHANGEFREQ); } $page_query->MoveNext(); } $sitemapXML->SitemapClose(); } unset($page_query); // EOF