From 1ae3b151c8c06b5ad936e3f20627aaf98a5b6d3e Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Wed, 10 Feb 2021 09:11:53 +0100 Subject: [PATCH 01/11] Add new button to generate sitemap --- htdocs/langs/en_US/website.lang | 5 ++- htdocs/website/index.php | 58 ++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index 7793fa5dead..27501c072fd 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -136,4 +136,7 @@ RSSFeedDesc=You can get a RSS feed of latest articles with type 'blogpost' using PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames -DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. \ No newline at end of file +DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. +GenerateSitemaps=Generate web site sitemap file +BackToPreview= Back to preview +GeneratedSitemapsFiles = Generated sitemap files \ No newline at end of file diff --git a/htdocs/website/index.php b/htdocs/website/index.php index ebcf31ad2c5..b29a1419e5c 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -38,6 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formwebsite.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; require_once DOL_DOCUMENT_ROOT.'/website/class/website.class.php'; require_once DOL_DOCUMENT_ROOT.'/website/class/websitepage.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; @@ -2254,6 +2255,7 @@ $form = new Form($db); $formadmin = new FormAdmin($db); $formwebsite = new FormWebsite($db); $formother = new FormOther($db); +$formfile = new FormFile($db); $helpurl = 'EN:Module_Website|FR:Module_Website_FR|ES:Módulo_Website'; @@ -2469,6 +2471,10 @@ if (!GETPOST('hide_websitemenu')) print '   '; + print dolButtonToOpenUrlInDialogPopup('generate_sitemap', $langs->transnoentitiesnoconv("GenerateSitemaps"), '', '/website/index.php?action=generatesitemaps&website='.$website->ref, $disabled); + + print '   '; + print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("ReplaceWebsiteContent")).'">'; } @@ -2570,7 +2576,7 @@ if (!GETPOST('hide_websitemenu')) // Toolbar for pages // - if ($websitekey && $websitekey != '-1' && !in_array($action, array('editcss', 'editmenu', 'importsite', 'file_manager', 'replacesite', 'replacesiteconfirm')) && !$file_manager) + if ($websitekey && $websitekey != '-1' && !in_array($action, array('editcss', 'editmenu', 'importsite', 'file_manager', 'replacesite', 'replacesiteconfirm', 'generatesitemaps')) && !$file_manager) { print ''; // Close current websitebar to open a new one @@ -3791,6 +3797,56 @@ if ($action == 'editmeta' || $action == 'createcontainer') // Edit properties of print '
'; } +$domainname = '0.0.0.0:8080'; +$tempdir = $conf->website->dir_temp.'/'.$websitekey.'/'; + +// Generate web site sitemaps +if ($action == 'generatesitemaps') { + $container_array = array(); + $sql = "SELECT wp.type_container , wp.pageurl, wp.lang, DATE(wp.tms) as tms"; + $sql .= " FROM ".MAIN_DB_PREFIX."website_page as wp"; + $sql .= " WHERE wp.type_container IN ('page', 'blogpost')"; + $resql = $db->query($sql); + if ($resql) { + $num_rows = $db->num_rows($resql); + if ($num_rows > 0) { + $i = 0; + while ($i < $num_rows) { + $objp = $db->fetch_object($resql); + $container_array[] = $objp; + $i++; + } + } + }else{ + dol_print_error($db); + } + + if (!is_dir($tempdir)) { + mkdir($tempdir); + } + $domtree = new DOMDocument('1.0','UTF-8'); + $domtree->formatOutput = true; + $root = $domtree->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9','urlset'); + foreach ($container_array as $container) { + $url = $domtree->createElement('url'); + $pageurl = $container->pageurl; + if ($container->lang) { + $pageurl = $container->lang.'/'.$pageurl; + } + $loc = $domtree->createElement('loc','http://'.$domainname.'/'.$pageurl); + $lastmod = $domtree->createElement('lastmod',$container->tms); + + $url->appendChild($loc); + $url->appendChild($lastmod); + $root->appendChild($url); + } + $domtree->appendChild($root); + $domtree->save($tempdir.'sitemaps.'.$websitekey.'.xml'); + print '
'; + print $formfile->showdocuments('website', 'temp/'.$websitekey, $tempdir, $_SERVER["PHP_SELF"].'?action=""', $liste, 0,'', 1, 1, 0, 0, 0, '', $langs->trans("GeneratedSitemapsFiles")); + +} + if ($action == 'editfile' || $action == 'file_manager') { print ''."\n"; From 484b406985803487f9db30d9464c81e396a681fa Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Wed, 10 Feb 2021 10:41:13 +0100 Subject: [PATCH 02/11] Add website url form --- htdocs/langs/en_US/website.lang | 5 +++-- htdocs/website/index.php | 21 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index 27501c072fd..f59c7d23697 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -137,6 +137,7 @@ PagesRegenerated=%s page(s)/container(s) regenerated RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. -GenerateSitemaps=Generate web site sitemap file +GenerateSitemaps=Generate website sitemap file BackToPreview= Back to preview -GeneratedSitemapsFiles = Generated sitemap files \ No newline at end of file +GeneratedSitemapsFiles = Generated sitemap files +EnterWebsiteUrl= Enter your website URL diff --git a/htdocs/website/index.php b/htdocs/website/index.php index b29a1419e5c..d5459094737 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2471,7 +2471,10 @@ if (!GETPOST('hide_websitemenu')) print '   '; - print dolButtonToOpenUrlInDialogPopup('generate_sitemap', $langs->transnoentitiesnoconv("GenerateSitemaps"), '', '/website/index.php?action=generatesitemaps&website='.$website->ref, $disabled); + if ($websitekey && $websitekey != '-1' && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone' || $action == 'deletesite')) + { + print dolButtonToOpenUrlInDialogPopup('generate_sitemap', $langs->transnoentitiesnoconv("GenerateSitemaps"), '', '/website/index.php?action=generatesitemapsdomainname&website='.$website->ref, $disabled); + } print '   '; @@ -3800,8 +3803,24 @@ if ($action == 'editmeta' || $action == 'createcontainer') // Edit properties of $domainname = '0.0.0.0:8080'; $tempdir = $conf->website->dir_temp.'/'.$websitekey.'/'; +if ($action == 'generatesitemapsdomainname'){ + print '
'; + print ''; + print ''; + print ''; + print '

'; + print '
'.$langs->trans('EnterWebsiteUrl').'

'; + print ''.$form->textwithpicto('', $langs->trans("Exemple").': www.exemple.com').'

'; + print ''; + print '
'; + print '
'; +} + // Generate web site sitemaps if ($action == 'generatesitemaps') { + if (!empty($_POST['domainname'])) { + $domainname = $_POST['domainname']; + } $container_array = array(); $sql = "SELECT wp.type_container , wp.pageurl, wp.lang, DATE(wp.tms) as tms"; $sql .= " FROM ".MAIN_DB_PREFIX."website_page as wp"; From 865c678e3eb985d1594b412c7109a1f0f743449d Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Wed, 10 Feb 2021 09:46:42 +0000 Subject: [PATCH 03/11] Fixing style errors. --- htdocs/website/index.php | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index d5459094737..9af38431bcc 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -3836,24 +3836,24 @@ if ($action == 'generatesitemaps') { $i++; } } - }else{ + }else { dol_print_error($db); } if (!is_dir($tempdir)) { mkdir($tempdir); } - $domtree = new DOMDocument('1.0','UTF-8'); + $domtree = new DOMDocument('1.0', 'UTF-8'); $domtree->formatOutput = true; - $root = $domtree->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9','urlset'); + $root = $domtree->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset'); foreach ($container_array as $container) { $url = $domtree->createElement('url'); $pageurl = $container->pageurl; if ($container->lang) { $pageurl = $container->lang.'/'.$pageurl; } - $loc = $domtree->createElement('loc','http://'.$domainname.'/'.$pageurl); - $lastmod = $domtree->createElement('lastmod',$container->tms); + $loc = $domtree->createElement('loc', 'http://'.$domainname.'/'.$pageurl); + $lastmod = $domtree->createElement('lastmod', $container->tms); $url->appendChild($loc); $url->appendChild($lastmod); @@ -3862,8 +3862,7 @@ if ($action == 'generatesitemaps') { $domtree->appendChild($root); $domtree->save($tempdir.'sitemaps.'.$websitekey.'.xml'); print '
'; - print $formfile->showdocuments('website', 'temp/'.$websitekey, $tempdir, $_SERVER["PHP_SELF"].'?action=""', $liste, 0,'', 1, 1, 0, 0, 0, '', $langs->trans("GeneratedSitemapsFiles")); - + print $formfile->showdocuments('website', 'temp/'.$websitekey, $tempdir, $_SERVER["PHP_SELF"].'?action=""', $liste, 0, '', 1, 1, 0, 0, 0, '', $langs->trans("GeneratedSitemapsFiles")); } if ($action == 'editfile' || $action == 'file_manager') From e36391c6abeb964f7ccba56e1e1fd53b349735da Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Wed, 10 Feb 2021 13:15:56 +0100 Subject: [PATCH 04/11] Close #16218 : new button sitemap file --- htdocs/website/index.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 9af38431bcc..5475efc50eb 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -3803,6 +3803,7 @@ if ($action == 'editmeta' || $action == 'createcontainer') // Edit properties of $domainname = '0.0.0.0:8080'; $tempdir = $conf->website->dir_temp.'/'.$websitekey.'/'; +// Form URL for generate web site sitemaps if ($action == 'generatesitemapsdomainname'){ print '
'; print ''; From 40b20d510d6dcf14d598929d6864809f5313f4c5 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Thu, 11 Feb 2021 10:05:40 +0100 Subject: [PATCH 05/11] fix to fix PR --- htdocs/langs/en_US/website.lang | 6 +- htdocs/website/index.php | 141 +++++++++++++++----------------- 2 files changed, 69 insertions(+), 78 deletions(-) diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index f59c7d23697..6c43fa7fc7c 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -138,6 +138,6 @@ RegenerateWebsiteContent=Regenerate web site cache files AllowedInFrames=Allowed in Frames DefineListOfAltLanguagesInWebsiteProperties=Define list of all available languages into web site properties. GenerateSitemaps=Generate website sitemap file -BackToPreview= Back to preview -GeneratedSitemapsFiles = Generated sitemap files -EnterWebsiteUrl= Enter your website URL +ConfirmGenerateSitemaps=If you confirm, you will erase the existing sitemap file... +ConfirmSitemapsCreation=Confirm sitemap generation +SitemapGenerated=Sitemap Generated diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 5475efc50eb..49e1c4d0d55 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2155,6 +2155,65 @@ if ($action == 'regeneratesite') } } +$form = new Form($db); +$formadmin = new FormAdmin($db); +$formwebsite = new FormWebsite($db); +$formother = new FormOther($db); +$domainname = '0.0.0.0:8080'; +$tempdir = $conf->website->dir_output.'/'.$websitekey.'/'; + +// Confirm generation of website sitemaps +if($action == 'confirmgeneratesitemaps'){ + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmSitemapsCreation'), $langs->trans('ConfirmGenerateSitemaps', $object->ref),'generatesitemaps', '', "yes", 1); + $action = 'preview'; +} + +// Generate web site sitemaps +if ($action == 'generatesitemaps') { + $domtree = new DOMDocument('1.0', 'UTF-8'); + $root = $domtree->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset'); + $domtree->formatOutput = true; + + $sql = "SELECT wp.type_container , wp.pageurl, wp.lang, DATE(wp.tms) as tms, w.virtualhost"; + $sql .= " FROM ".MAIN_DB_PREFIX."website_page as wp, ".MAIN_DB_PREFIX."website as w"; + $sql .= " WHERE wp.type_container IN ('page', 'blogpost')"; + $resql = $db->query($sql); + if ($resql) { + $num_rows = $db->num_rows($resql); + if ($num_rows > 0) { + $i = 0; + while ($i < $num_rows) { + $objp = $db->fetch_object($resql); + $url = $domtree->createElement('url'); + $pageurl = $objp->pageurl; + if ($objp->lang) { + $pageurl = $objp->lang.'/'.$pageurl; + } + if ($objp->virtualhost) { + $domainname = $objp->virtualhost; + } + $loc = $domtree->createElement('loc', 'http://'.$domainname.'/'.$pageurl); + $lastmod = $domtree->createElement('lastmod', $objp->tms); + + $url->appendChild($loc); + $url->appendChild($lastmod); + $root->appendChild($url); + $i++; + } + $domtree->appendChild($root); + if ($domtree->save($tempdir.'sitemaps.'.$websitekey.'.xml')) + { + setEventMessages($langs->trans("SitemapGenerated"), null, 'mesgs'); + } else { + setEventMessages($object->error, $object->errors, 'errors'); + } + } + }else { + dol_print_error($db); + } + $action = 'preview'; +} + // Import site if ($action == 'importsiteconfirm') { @@ -2251,11 +2310,6 @@ if ($action == 'importsiteconfirm') * View */ -$form = new Form($db); -$formadmin = new FormAdmin($db); -$formwebsite = new FormWebsite($db); -$formother = new FormOther($db); -$formfile = new FormFile($db); $helpurl = 'EN:Module_Website|FR:Module_Website_FR|ES:Módulo_Website'; @@ -2470,11 +2524,9 @@ if (!GETPOST('hide_websitemenu')) print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("RegenerateWebsiteContent")).'">'; print '   '; - - if ($websitekey && $websitekey != '-1' && ($action == 'preview' || $action == 'createfromclone' || $action == 'createpagefromclone' || $action == 'deletesite')) - { - print dolButtonToOpenUrlInDialogPopup('generate_sitemap', $langs->transnoentitiesnoconv("GenerateSitemaps"), '', '/website/index.php?action=generatesitemapsdomainname&website='.$website->ref, $disabled); - } + + // Generate site map + print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("GenerateSitemaps")).'">'; print '   '; @@ -2579,7 +2631,7 @@ if (!GETPOST('hide_websitemenu')) // Toolbar for pages // - if ($websitekey && $websitekey != '-1' && !in_array($action, array('editcss', 'editmenu', 'importsite', 'file_manager', 'replacesite', 'replacesiteconfirm', 'generatesitemaps')) && !$file_manager) + if ($websitekey && $websitekey != '-1' && !in_array($action, array('editcss', 'editmenu', 'importsite', 'file_manager', 'replacesite', 'replacesiteconfirm')) && !$file_manager) { print ''; // Close current websitebar to open a new one @@ -3800,70 +3852,9 @@ if ($action == 'editmeta' || $action == 'createcontainer') // Edit properties of print '
'; } -$domainname = '0.0.0.0:8080'; -$tempdir = $conf->website->dir_temp.'/'.$websitekey.'/'; - -// Form URL for generate web site sitemaps -if ($action == 'generatesitemapsdomainname'){ - print ''; - print ''; - print ''; - print ''; - print '

'; - print '
'.$langs->trans('EnterWebsiteUrl').'

'; - print ''.$form->textwithpicto('', $langs->trans("Exemple").': www.exemple.com').'

'; - print ''; - print '
'; - print ''; -} - -// Generate web site sitemaps -if ($action == 'generatesitemaps') { - if (!empty($_POST['domainname'])) { - $domainname = $_POST['domainname']; - } - $container_array = array(); - $sql = "SELECT wp.type_container , wp.pageurl, wp.lang, DATE(wp.tms) as tms"; - $sql .= " FROM ".MAIN_DB_PREFIX."website_page as wp"; - $sql .= " WHERE wp.type_container IN ('page', 'blogpost')"; - $resql = $db->query($sql); - if ($resql) { - $num_rows = $db->num_rows($resql); - if ($num_rows > 0) { - $i = 0; - while ($i < $num_rows) { - $objp = $db->fetch_object($resql); - $container_array[] = $objp; - $i++; - } - } - }else { - dol_print_error($db); - } - - if (!is_dir($tempdir)) { - mkdir($tempdir); - } - $domtree = new DOMDocument('1.0', 'UTF-8'); - $domtree->formatOutput = true; - $root = $domtree->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset'); - foreach ($container_array as $container) { - $url = $domtree->createElement('url'); - $pageurl = $container->pageurl; - if ($container->lang) { - $pageurl = $container->lang.'/'.$pageurl; - } - $loc = $domtree->createElement('loc', 'http://'.$domainname.'/'.$pageurl); - $lastmod = $domtree->createElement('lastmod', $container->tms); - - $url->appendChild($loc); - $url->appendChild($lastmod); - $root->appendChild($url); - } - $domtree->appendChild($root); - $domtree->save($tempdir.'sitemaps.'.$websitekey.'.xml'); - print '
'; - print $formfile->showdocuments('website', 'temp/'.$websitekey, $tempdir, $_SERVER["PHP_SELF"].'?action=""', $liste, 0, '', 1, 1, 0, 0, 0, '', $langs->trans("GeneratedSitemapsFiles")); +// Print formconfirm +if ($action == 'preview'){ + print $formconfirm; } if ($action == 'editfile' || $action == 'file_manager') From 7f6cb24909edfa393d95a9872803eeea4d5d9d0f Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Thu, 11 Feb 2021 09:06:39 +0000 Subject: [PATCH 06/11] Fixing style errors. --- htdocs/website/index.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 49e1c4d0d55..2d3d1c80bfc 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2163,8 +2163,8 @@ $domainname = '0.0.0.0:8080'; $tempdir = $conf->website->dir_output.'/'.$websitekey.'/'; // Confirm generation of website sitemaps -if($action == 'confirmgeneratesitemaps'){ - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmSitemapsCreation'), $langs->trans('ConfirmGenerateSitemaps', $object->ref),'generatesitemaps', '', "yes", 1); +if ($action == 'confirmgeneratesitemaps'){ + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmSitemapsCreation'), $langs->trans('ConfirmGenerateSitemaps', $object->ref), 'generatesitemaps', '', "yes", 1); $action = 'preview'; } @@ -2210,7 +2210,7 @@ if ($action == 'generatesitemaps') { } }else { dol_print_error($db); - } + } $action = 'preview'; } @@ -2524,7 +2524,7 @@ if (!GETPOST('hide_websitemenu')) print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("RegenerateWebsiteContent")).'">'; print '   '; - + // Generate site map print 'ref.'" class="button bordertransp"'.$disabled.' title="'.dol_escape_htmltag($langs->trans("GenerateSitemaps")).'">'; @@ -3854,7 +3854,7 @@ if ($action == 'editmeta' || $action == 'createcontainer') // Edit properties of // Print formconfirm if ($action == 'preview'){ - print $formconfirm; + print $formconfirm; } if ($action == 'editfile' || $action == 'file_manager') From 4032c8f8772e4b2173dcbcbac7df289443391154 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Fri, 12 Feb 2021 12:02:17 +0100 Subject: [PATCH 07/11] changes to fix pr + robots.txt --- htdocs/website/index.php | 145 +++++++++++++++++++++++---------------- 1 file changed, 84 insertions(+), 61 deletions(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 2d3d1c80bfc..4d86b1f856b 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2155,65 +2155,6 @@ if ($action == 'regeneratesite') } } -$form = new Form($db); -$formadmin = new FormAdmin($db); -$formwebsite = new FormWebsite($db); -$formother = new FormOther($db); -$domainname = '0.0.0.0:8080'; -$tempdir = $conf->website->dir_output.'/'.$websitekey.'/'; - -// Confirm generation of website sitemaps -if ($action == 'confirmgeneratesitemaps'){ - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmSitemapsCreation'), $langs->trans('ConfirmGenerateSitemaps', $object->ref), 'generatesitemaps', '', "yes", 1); - $action = 'preview'; -} - -// Generate web site sitemaps -if ($action == 'generatesitemaps') { - $domtree = new DOMDocument('1.0', 'UTF-8'); - $root = $domtree->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset'); - $domtree->formatOutput = true; - - $sql = "SELECT wp.type_container , wp.pageurl, wp.lang, DATE(wp.tms) as tms, w.virtualhost"; - $sql .= " FROM ".MAIN_DB_PREFIX."website_page as wp, ".MAIN_DB_PREFIX."website as w"; - $sql .= " WHERE wp.type_container IN ('page', 'blogpost')"; - $resql = $db->query($sql); - if ($resql) { - $num_rows = $db->num_rows($resql); - if ($num_rows > 0) { - $i = 0; - while ($i < $num_rows) { - $objp = $db->fetch_object($resql); - $url = $domtree->createElement('url'); - $pageurl = $objp->pageurl; - if ($objp->lang) { - $pageurl = $objp->lang.'/'.$pageurl; - } - if ($objp->virtualhost) { - $domainname = $objp->virtualhost; - } - $loc = $domtree->createElement('loc', 'http://'.$domainname.'/'.$pageurl); - $lastmod = $domtree->createElement('lastmod', $objp->tms); - - $url->appendChild($loc); - $url->appendChild($lastmod); - $root->appendChild($url); - $i++; - } - $domtree->appendChild($root); - if ($domtree->save($tempdir.'sitemaps.'.$websitekey.'.xml')) - { - setEventMessages($langs->trans("SitemapGenerated"), null, 'mesgs'); - } else { - setEventMessages($object->error, $object->errors, 'errors'); - } - } - }else { - dol_print_error($db); - } - $action = 'preview'; -} - // Import site if ($action == 'importsiteconfirm') { @@ -2307,9 +2248,91 @@ if ($action == 'importsiteconfirm') /* - * View - */ +* View +*/ +$form = new Form($db); +$formadmin = new FormAdmin($db); +$formwebsite = new FormWebsite($db); +$formother = new FormOther($db); +$domainname = '0.0.0.0:8080'; +$tempdir = $conf->website->dir_output.'/'.$websitekey.'/'; + +// Confirm generation of website sitemaps +if ($action == 'confirmgeneratesitemaps'){ + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmSitemapsCreation'), $langs->trans('ConfirmGenerateSitemaps', $object->ref), 'generatesitemaps', '', "yes", 1); + $action = 'preview'; +} + +// Generate web site sitemaps +if ($action == 'generatesitemaps') { + $domtree = new DOMDocument('1.0', 'UTF-8'); + $root = $domtree->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset'); + $domtree->formatOutput = true; + $xmlname = 'sitemap.'.$websitekey.'.xml'; + + $sql = "SELECT wp.type_container , wp.pageurl, wp.lang, DATE(wp.tms) as tms, w.virtualhost"; + $sql .= " FROM ".MAIN_DB_PREFIX."website_page as wp, ".MAIN_DB_PREFIX."website as w"; + $sql .= " WHERE wp.type_container IN ('page', 'blogpost')"; + $sql .= " AND wp.fk_website = w.rowid"; + $sql .= " AND w.ref = '".$websitekey."'"; + $resql = $db->query($sql); + if ($resql) { + $num_rows = $db->num_rows($resql); + if ($num_rows > 0) { + $i = 0; + while ($i < $num_rows) { + $objp = $db->fetch_object($resql); + $url = $domtree->createElement('url'); + $pageurl = $objp->pageurl; + if ($objp->lang) { + $pageurl = $objp->lang.'/'.$pageurl; + } + if ($objp->virtualhost) { + $domainname = $objp->virtualhost; + } + $loc = $domtree->createElement('loc', 'http://'.$domainname.'/'.$pageurl); + $lastmod = $domtree->createElement('lastmod', $objp->tms); + + $url->appendChild($loc); + $url->appendChild($lastmod); + $root->appendChild($url); + $i++; + } + $domtree->appendChild($root); + if ($domtree->save($tempdir.$xmlname)) + { + setEventMessages($langs->trans("SitemapGenerated"), null, 'mesgs'); + } else { + setEventMessages($object->error, $object->errors, 'errors'); + } + } + }else { + dol_print_error($db); + } + $robotcontent = @file_get_contents($filerobot); + $result = preg_replace('/\n/ims', '', $robotcontent); + if ($result) + { + $robotcontent = $result; + } + $robotsitemap = "Sitemap: ".$domainname."/".$xmlname; + $result = strpos($robotcontent,'Sitemap: '); + if ($result) + { + $result = preg_replace("/Sitemap.*\n/",$robotsitemap,$robotcontent); + $robotcontent = $result ? $result : $robotcontent; + }else{ + $robotcontent .= $robotsitemap."\n"; + } + $result = dolSaveRobotFile($filerobot, $robotcontent); + if (!$result) + { + $error++; + setEventMessages('Failed to write file '.$filerobot, null, 'errors'); + } + $action = 'preview'; +} $helpurl = 'EN:Module_Website|FR:Module_Website_FR|ES:Módulo_Website'; From 08a21a7408b6da476de7e62787218a5cbbf6e9d2 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Fri, 12 Feb 2021 11:03:09 +0000 Subject: [PATCH 08/11] Fixing style errors. --- htdocs/website/index.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 4d86b1f856b..04ed41b4004 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2317,12 +2317,12 @@ if ($action == 'generatesitemaps') { $robotcontent = $result; } $robotsitemap = "Sitemap: ".$domainname."/".$xmlname; - $result = strpos($robotcontent,'Sitemap: '); + $result = strpos($robotcontent, 'Sitemap: '); if ($result) { - $result = preg_replace("/Sitemap.*\n/",$robotsitemap,$robotcontent); + $result = preg_replace("/Sitemap.*\n/", $robotsitemap, $robotcontent); $robotcontent = $result ? $result : $robotcontent; - }else{ + }else { $robotcontent .= $robotsitemap."\n"; } $result = dolSaveRobotFile($filerobot, $robotcontent); From 44f4410c83ee1f1352c68d29a8bed83013ae77f8 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Fri, 12 Feb 2021 12:31:42 +0100 Subject: [PATCH 09/11] buid error repair --- htdocs/website/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 04ed41b4004..6570ec3d940 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2275,7 +2275,7 @@ if ($action == 'generatesitemaps') { $sql .= " FROM ".MAIN_DB_PREFIX."website_page as wp, ".MAIN_DB_PREFIX."website as w"; $sql .= " WHERE wp.type_container IN ('page', 'blogpost')"; $sql .= " AND wp.fk_website = w.rowid"; - $sql .= " AND w.ref = '".$websitekey."'"; + $sql .= " AND w.ref = '".dol_escape_json($websitekey)."'"; $resql = $db->query($sql); if ($resql) { $num_rows = $db->num_rows($resql); From b097e909a603a681d53127431fd374b0840158d5 Mon Sep 17 00:00:00 2001 From: lmarcouiller Date: Mon, 1 Mar 2021 09:52:34 +0100 Subject: [PATCH 10/11] changes to fix pr with eldy advices --- htdocs/website/index.php | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index eff25950a46..8c42f491618 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -2144,26 +2144,9 @@ if ($action == 'importsiteconfirm') { } } - - - -/* -* View -*/ - -$form = new Form($db); -$formadmin = new FormAdmin($db); -$formwebsite = new FormWebsite($db); -$formother = new FormOther($db); $domainname = '0.0.0.0:8080'; $tempdir = $conf->website->dir_output.'/'.$websitekey.'/'; -// Confirm generation of website sitemaps -if ($action == 'confirmgeneratesitemaps'){ - $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmSitemapsCreation'), $langs->trans('ConfirmGenerateSitemaps', $object->ref), 'generatesitemaps', '', "yes", 1); - $action = 'preview'; -} - // Generate web site sitemaps if ($action == 'generatesitemaps') { $domtree = new DOMDocument('1.0', 'UTF-8'); @@ -2234,6 +2217,21 @@ if ($action == 'generatesitemaps') { $action = 'preview'; } +/* +* View +*/ + +$form = new Form($db); +$formadmin = new FormAdmin($db); +$formwebsite = new FormWebsite($db); +$formother = new FormOther($db); + +// Confirm generation of website sitemaps +if ($action == 'confirmgeneratesitemaps'){ + $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?website='.$website->ref, $langs->trans('ConfirmSitemapsCreation'), $langs->trans('ConfirmGenerateSitemaps', $object->ref), 'generatesitemaps', '', "yes", 1); + $action = 'preview'; +} + $helpurl = 'EN:Module_Website|FR:Module_Website_FR|ES:Módulo_Website'; $arrayofjs = array( From 13e1ccb7956b5caa85348640886bb76f80e99e5c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 2 Mar 2021 14:55:42 +0100 Subject: [PATCH 11/11] Update index.php --- htdocs/website/index.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/website/index.php b/htdocs/website/index.php index 8c42f491618..ab094c384b6 100644 --- a/htdocs/website/index.php +++ b/htdocs/website/index.php @@ -3770,12 +3770,11 @@ if ($action == 'editmeta' || $action == 'createcontainer') { // Edit properties // Print formconfirm -if ($action == 'preview'){ +if ($action == 'preview') { print $formconfirm; } -if ($action == 'editfile' || $action == 'file_manager') -{ +if ($action == 'editfile' || $action == 'file_manager') { print ''."\n"; print '

'; //print '
'.$langs->trans("FeatureNotYetAvailable").'';