Add WEBSITE_ADD_RSS_FEED_INTO_SITEMAP
This commit is contained in:
parent
6b01edbf01
commit
c6d76622a7
@ -2504,6 +2504,14 @@ $tempdir = $conf->website->dir_output.'/'.$websitekey.'/';
|
||||
|
||||
// Generate web site sitemaps
|
||||
if ($action == 'generatesitemaps' && $usercanedit) {
|
||||
// Define $domainname
|
||||
if ($website->virtualhost) {
|
||||
$domainname = $website->virtualhost;
|
||||
}
|
||||
if (! preg_match('/^http/i', $domainname)) {
|
||||
$domainname = 'https://'.$domainname;
|
||||
}
|
||||
|
||||
$domtree = new DOMDocument('1.0', 'UTF-8');
|
||||
|
||||
$root = $domtree->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset');
|
||||
@ -2511,6 +2519,7 @@ if ($action == 'generatesitemaps' && $usercanedit) {
|
||||
|
||||
$domtree->formatOutput = true;
|
||||
|
||||
$addrsswrapper = 0;
|
||||
$xmlname = 'sitemap.xml';
|
||||
|
||||
$sql = "SELECT wp.rowid, wp.type_container , wp.pageurl, wp.lang, wp.fk_page, wp.tms as tms,";
|
||||
@ -2539,6 +2548,11 @@ if ($action == 'generatesitemaps' && $usercanedit) {
|
||||
$shortlangcode = substr($object->lang, 0, 2); // Use short lang code of website
|
||||
}
|
||||
|
||||
// Is it a blog post for the RSS wrapper ?
|
||||
if ($objp->type_container == 'blogpost') {
|
||||
$addrsswrapper = 1;
|
||||
}
|
||||
|
||||
// Forge $pageurl, adding language prefix if it is an alternative language
|
||||
$pageurl = $objp->pageurl.'.php';
|
||||
if ($objp->fk_default_home == $objp->rowid) {
|
||||
@ -2549,24 +2563,18 @@ if ($action == 'generatesitemaps' && $usercanedit) {
|
||||
}
|
||||
}
|
||||
|
||||
if ($objp->virtualhost) {
|
||||
$domainname = $objp->virtualhost;
|
||||
}
|
||||
if (! preg_match('/^http/i', $domainname)) {
|
||||
$domainname = 'https://'.$domainname;
|
||||
}
|
||||
//$pathofpage = $dolibarr_main_url_root.'/'.$pageurl.'.php';
|
||||
|
||||
// URL of sitemaps must end with trailing slash if page is ''
|
||||
$loc = $domtree->createElement('loc', $domainname.'/'.$pageurl);
|
||||
$lastmod = $domtree->createElement('lastmod', dol_print_date($db->jdate($objp->tms), 'dayrfc', 'gmt'));
|
||||
$changefreq = $domtree->createElement('changefreq', 'weekly'); // TODO Manage other values
|
||||
$priority = $domtree->createElement('priority', '1');
|
||||
|
||||
$url->appendChild($loc);
|
||||
$url->appendChild($lastmod);
|
||||
// Add suggested frequency for refresh
|
||||
if (!empty($conf->global->WEBSITE_SITEMAPS_ADD_WEEKLY_FREQ)) {
|
||||
$changefreq = $domtree->createElement('changefreq', 'weekly'); // TODO Manage other values
|
||||
$url->appendChild($changefreq);
|
||||
}
|
||||
// Add higher priority for home page
|
||||
@ -2655,7 +2663,31 @@ if ($action == 'generatesitemaps' && $usercanedit) {
|
||||
$root->appendChild($url);
|
||||
$i++;
|
||||
}
|
||||
|
||||
// Adding a RSS feed into a sitemap should nto be required. The RSS contains pages that are already included into
|
||||
// the sitemap and RSS feeds are not shown into index.
|
||||
if ($addrsswrapper && getDolGlobalInt('WEBSITE_ADD_RSS_FEED_INTO_SITEMAP')) {
|
||||
$url = $domtree->createElement('url');
|
||||
|
||||
$pageurl = 'wrapper.php?rss=1';
|
||||
|
||||
// URL of sitemaps must end with trailing slash if page is ''
|
||||
$loc = $domtree->createElement('loc', $domainname.'/'.$pageurl);
|
||||
$lastmod = $domtree->createElement('lastmod', dol_print_date($db->jdate(dol_now()), 'dayrfc', 'gmt'));
|
||||
|
||||
$url->appendChild($loc);
|
||||
$url->appendChild($lastmod);
|
||||
// Add suggested frequency for refresh
|
||||
if (!empty($conf->global->WEBSITE_SITEMAPS_ADD_WEEKLY_FREQ)) {
|
||||
$changefreq = $domtree->createElement('changefreq', 'weekly'); // TODO Manage other values
|
||||
$url->appendChild($changefreq);
|
||||
}
|
||||
|
||||
$root->appendChild($url);
|
||||
}
|
||||
|
||||
$domtree->appendChild($root);
|
||||
|
||||
if ($domtree->save($tempdir.$xmlname)) {
|
||||
dolChmod($tempdir.$xmlname);
|
||||
setEventMessages($langs->trans("SitemapGenerated", $xmlname), null, 'mesgs');
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
// BEGIN PHP File wrapper.php - DO NOT MODIFY - It is just a copy of file website/samples/wrapper.php
|
||||
$websitekey = basename(__DIR__);
|
||||
if (strpos($_SERVER["PHP_SELF"], 'website/samples/wrapper.php')) {
|
||||
die("Sample file for website module. Can be called directly.");
|
||||
die("Sample file for website module. Can't be called directly.");
|
||||
}
|
||||
if (!defined('USEDOLIBARRSERVER') && !defined('USEDOLIBARREDITOR')) {
|
||||
require_once './master.inc.php';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user