From 8a32391171a08c11eb1c1ace616934b659ecdb9e Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 15 Sep 2016 19:27:04 +0200
Subject: [PATCH] Work on website module

---
 htdocs/websites/class/websitepage.class.php | 11 +++--
 htdocs/websites/index.php                   | 53 +++------------------
 2 files changed, 13 insertions(+), 51 deletions(-)

diff --git a/htdocs/websites/class/websitepage.class.php b/htdocs/websites/class/websitepage.class.php
index 79fe143f7a5..63dc35b8084 100644
--- a/htdocs/websites/class/websitepage.class.php
+++ b/htdocs/websites/class/websitepage.class.php
@@ -376,14 +376,11 @@ class WebsitePage extends CommonObject
 			 $this->status = trim($this->status);
 		}
 
-
-
 		// Check parameters
 		// Put here code to add a control on parameters values
 
 		// Update request
 		$sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . ' SET';
-
 		$sql .= ' fk_website = '.(isset($this->fk_website)?$this->fk_website:"null").',';
 		$sql .= ' pageurl = '.(isset($this->pageurl)?"'".$this->db->escape($this->pageurl)."'":"null").',';
 		$sql .= ' title = '.(isset($this->title)?"'".$this->db->escape($this->title)."'":"null").',';
@@ -394,8 +391,6 @@ class WebsitePage extends CommonObject
 		$sql .= ' date_creation = '.(! isset($this->date_creation) || dol_strlen($this->date_creation) != 0 ? "'".$this->db->idate($this->date_creation)."'" : 'null').',';
 		$sql .= ' date_modification = '.(! isset($this->date_modification) || dol_strlen($this->date_modification) != 0 ? "'".$this->db->idate($this->date_modification)."'" : 'null').',';
 		$sql .= ' tms = '.(dol_strlen($this->tms) != 0 ? "'".$this->db->idate($this->tms)."'" : "'".$this->db->idate(dol_now())."'");
-
-
 		$sql .= ' WHERE rowid=' . $this->id;
 
 		$this->db->begin();
@@ -407,6 +402,12 @@ class WebsitePage extends CommonObject
 			dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);
 		}
 
+		if ($this->old_object->pageurl != $this->pageurl)
+		{
+		      dol_syslog("The alias was changed, we must rename/recreate the page file into document");
+		      
+		}
+		
 		if (!$error && !$notrigger) {
 			// Uncomment this and change MYOBJECT to your own tag if you
 			// want this action calls a trigger.
diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php
index 185e8dd0ef3..4cb10ed0de6 100644
--- a/htdocs/websites/index.php
+++ b/htdocs/websites/index.php
@@ -182,48 +182,6 @@ if ($action == 'add')
 	$id = $objectpage->id;
 }
 
-// Update page
-if ($action == 'update')
-{
-    $db->begin();
-
-    $res = $object->fetch(0, $website);
-
-    $objectpage->fk_website = $object->id;
-    $objectpage->pageurl = GETPOST('WEBSITE_PAGENAME');
-
-    $res = $objectpage->fetch(0, $object->fk_website, $objectpage->pageurl);
-
-    if ($res > 0)
-    {
-        $objectpage->title = GETPOST('WEBSITE_TITLE');
-        $objectpage->description = GETPOST('WEBSITE_DESCRIPTION');
-        $objectpage->keyword = GETPOST('WEBSITE_KEYWORD');
-
-        $res = $objectpage->update($user);
-        if (! $res > 0)
-        {
-            $error++;
-            setEventMessages($objectpage->error, $objectpage->errors, 'errors');
-        }
-
-    	if (! $error)
-    	{
-    		$db->commit();
-    	    setEventMessages($langs->trans("SetupSaved"), null, 'mesgs');
-    	    $action='';
-    	}
-    	else
-    	{
-    		$db->rollback();
-    	}
-    }
-    else
-    {
-        dol_print_error($db);
-    }
-}
-
 // Update page
 if ($action == 'delete')
 {
@@ -338,7 +296,7 @@ if ($action == 'setashome')
     }
 }
 
-// Update page
+// Update page (meta)
 if ($action == 'updatemeta')
 {
     $db->begin();
@@ -349,7 +307,7 @@ if ($action == 'updatemeta')
     $res = $objectpage->fetch($pageid, $object->fk_website);
     if ($res > 0)
     {
-        $oldobjectpage = clone $objectpage;
+        $objectpage->old_object = clone $objectpage;
         
         $objectpage->pageurl = GETPOST('WEBSITE_PAGENAME');
         $objectpage->title = GETPOST('WEBSITE_TITLE');
@@ -367,11 +325,13 @@ if ($action == 'updatemeta')
         {
             $db->commit();
 
-            $fileoldalias=$pathofwebsite.'/'.$oldobjectpage->pageurl.'.php';
+            $fileoldalias=$pathofwebsite.'/'.$objectpage->old_object->pageurl.'.php';
             $filealias=$pathofwebsite.'/'.$objectpage->pageurl.'.php';
             
             // Generate the alias.php page
             //-----------------------------
+            dol_syslog("We regenerate alias page new name=".$filealias.", old name=".$fileoldalias);
+            
             dol_mkdir($pathofwebsite);
             dol_delete_file($fileoldalias);
             
@@ -386,9 +346,10 @@ if ($action == 'updatemeta')
             if ($result) setEventMessages($langs->trans("Saved"), null, 'mesgs');
             else setEventMessages('Failed to write file '.$filealias, null, 'errors');
 
-            
 
             // Now create the .tpl file (duplicate code with actions updatecontent but we need this to save new header)
+            dol_syslog("We regenerate the tpl page filetpl=".$filetpl);
+            
             dol_mkdir($pathofwebsite);
             dol_delete_file($filetpl);
             
-- 
GitLab