From 72aacb81aecc4bd03ddd13322d67a2ff11386ff3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Fri, 16 Sep 2016 01:00:24 +0200 Subject: [PATCH] NEW Can use native php and dolibarr object on pages of module website. --- htdocs/core/class/doleditor.class.php | 1 + htdocs/public/websites/index.php | 1 + htdocs/theme/eldy/ckeditor/config.js | 10 ++-- htdocs/theme/md/ckeditor/config.js | 10 ++-- htdocs/websites/index.php | 86 +++++++++++++++++++++++---- 5 files changed, 85 insertions(+), 23 deletions(-) diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index bca9555f379..5ad8b3aa646 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -195,6 +195,7 @@ class DolEditor readOnly : '.($this->readonly?'true':'false').', htmlEncodeOutput :'.$htmlencode_force.', allowedContent :'.($disallowAnyContent?'false':'true').', + extraAllowedContent : \'\', fullPage : '.($fullpage?'true':'false').', toolbar: \''.$this->toolbarname.'\', toolbarStartupExpanded: '.($this->toolbarstartexpanded ? 'true' : 'false').', diff --git a/htdocs/public/websites/index.php b/htdocs/public/websites/index.php index 8c83a1daebc..44789409058 100644 --- a/htdocs/public/websites/index.php +++ b/htdocs/public/websites/index.php @@ -144,6 +144,7 @@ if (! file_exists($original_file_osencoded)) // Output page content +define('USEDOLIBARRSERVER', 1); print "\n".'<!-- Page content '.$original_file.' : Html with CSS link + Body was saved into tpl -->'."\n"; include_once $original_file_osencoded; diff --git a/htdocs/theme/eldy/ckeditor/config.js b/htdocs/theme/eldy/ckeditor/config.js index f01fde4dabb..eb88af48a04 100644 --- a/htdocs/theme/eldy/ckeditor/config.js +++ b/htdocs/theme/eldy/ckeditor/config.js @@ -39,17 +39,17 @@ CKEDITOR.editorConfig = function( config ) ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], ['BidiLtr', 'BidiRtl'], ['Link','Unlink','Anchor'], - ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe'], + ['Image','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe'], ['Styles','Format','Font','FontSize'], ['TextColor','BGColor'], - ['Maximize', 'ShowBlocks','-','About'] + ['Maximize', 'ShowBlocks'] ]; // Used for mailing fields config.toolbar_dolibarr_mailings = [ ['Source','Maximize','Preview'], - ['Cut','Copy','Paste','-','SpellChecker'], + ['Cut','Copy','Paste','-','SpellChecker', 'Scayt'], ['Undo','Redo','-','Find','Replace'], ['Format','Font','FontSize'], ['Bold','Italic','Underline','Strike','Subscript','Superscript','-','TextColor','RemoveFormat'], @@ -62,7 +62,7 @@ CKEDITOR.editorConfig = function( config ) config.toolbar_dolibarr_notes = [ ['Source','Maximize'], - ['Cut','Copy','Paste','-','SpellChecker'], + ['Cut','Copy','Paste','-','SpellChecker', 'Scayt'], ['Undo','Redo','-','Find','Replace'], ['Format','Font','FontSize'], ['Bold','Italic','Underline','Strike','Subscript','Superscript','-','TextColor','RemoveFormat'], @@ -75,7 +75,7 @@ CKEDITOR.editorConfig = function( config ) config.toolbar_dolibarr_details = [ ['Source','Maximize'], - ['Cut','Copy','Paste','-','SpellChecker'], + ['Cut','Copy','Paste','-','SpellChecker', 'Scayt'], ['Format','Font','FontSize'], ['Bold','Italic','Underline','Strike','Subscript','Superscript','-','TextColor','RemoveFormat'], ['NumberedList','BulletedList','Outdent','Indent'], diff --git a/htdocs/theme/md/ckeditor/config.js b/htdocs/theme/md/ckeditor/config.js index f01fde4dabb..eb88af48a04 100644 --- a/htdocs/theme/md/ckeditor/config.js +++ b/htdocs/theme/md/ckeditor/config.js @@ -39,17 +39,17 @@ CKEDITOR.editorConfig = function( config ) ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], ['BidiLtr', 'BidiRtl'], ['Link','Unlink','Anchor'], - ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe'], + ['Image','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe'], ['Styles','Format','Font','FontSize'], ['TextColor','BGColor'], - ['Maximize', 'ShowBlocks','-','About'] + ['Maximize', 'ShowBlocks'] ]; // Used for mailing fields config.toolbar_dolibarr_mailings = [ ['Source','Maximize','Preview'], - ['Cut','Copy','Paste','-','SpellChecker'], + ['Cut','Copy','Paste','-','SpellChecker', 'Scayt'], ['Undo','Redo','-','Find','Replace'], ['Format','Font','FontSize'], ['Bold','Italic','Underline','Strike','Subscript','Superscript','-','TextColor','RemoveFormat'], @@ -62,7 +62,7 @@ CKEDITOR.editorConfig = function( config ) config.toolbar_dolibarr_notes = [ ['Source','Maximize'], - ['Cut','Copy','Paste','-','SpellChecker'], + ['Cut','Copy','Paste','-','SpellChecker', 'Scayt'], ['Undo','Redo','-','Find','Replace'], ['Format','Font','FontSize'], ['Bold','Italic','Underline','Strike','Subscript','Superscript','-','TextColor','RemoveFormat'], @@ -75,7 +75,7 @@ CKEDITOR.editorConfig = function( config ) config.toolbar_dolibarr_details = [ ['Source','Maximize'], - ['Cut','Copy','Paste','-','SpellChecker'], + ['Cut','Copy','Paste','-','SpellChecker', 'Scayt'], ['Format','Font','FontSize'], ['Bold','Italic','Underline','Strike','Subscript','Superscript','-','TextColor','RemoveFormat'], ['NumberedList','BulletedList','Outdent','Indent'], diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php index fce7a96bc30..5b7ae2a3b25 100644 --- a/htdocs/websites/index.php +++ b/htdocs/websites/index.php @@ -325,35 +325,54 @@ if ($action == 'updatemeta') { $db->commit(); + $filemaster=$pathofwebsite.'/master.inc.php'; $fileoldalias=$pathofwebsite.'/'.$objectpage->old_object->pageurl.'.php'; $filealias=$pathofwebsite.'/'.$objectpage->pageurl.'.php'; + + dol_mkdir($pathofwebsite); + - // Generate the alias.php page - //----------------------------- - dol_syslog("We regenerate alias page new name=".$filealias.", old name=".$fileoldalias); + // Now generate the master.inc.php page + dol_syslog("We regenerate the master file"); + dol_delete_file($filemaster); - dol_mkdir($pathofwebsite); - dol_delete_file($fileoldalias); + $mastercontent = '<?php'."\n"; + $mastercontent.= '// File generated to link to the master file'."\n"; + $mastercontent.= "if (! defined('USEDOLIBARRSERVER')) require '".DOL_DOCUMENT_ROOT."/master.inc.php';\n"; + $mastercontent.= '?>'."\n"; + $result = file_put_contents($filemaster, $mastercontent); + if (! empty($conf->global->MAIN_UMASK)) + @chmod($filemaster, octdec($conf->global->MAIN_UMASK)); + + if (! $result) setEventMessages('Failed to write file '.$filemaster, null, 'errors'); + + + // Now generate the alias.php page + if (! empty($fileoldalias)) + { + dol_syslog("We regenerate alias page new name=".$filealias.", old name=".$fileoldalias); + dol_delete_file($fileoldalias); + } $aliascontent = '<?php'."\n"; $aliascontent.= '// File generated to wrap the alias page'."\n"; - $aliascontent.= "include_once './page".$objectpage->id.".tpl.php'\n"; + $aliascontent.= "include_once './page".$objectpage->id.".tpl.php';\n"; $aliascontent.= '?>'."\n"; $result = file_put_contents($filealias, $aliascontent); if (! empty($conf->global->MAIN_UMASK)) @chmod($filealias, octdec($conf->global->MAIN_UMASK)); - if ($result) setEventMessages($langs->trans("Saved"), null, 'mesgs'); - else setEventMessages('Failed to write file '.$filealias, null, 'errors'); + if (! $result) 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); - $tplcontent = '<html>'."\n"; + $tplcontent =''; + $tplcontent.= '<?php require "./master.inc.php"; ?>'."\n"; + $tplcontent.= '<html>'."\n"; $tplcontent.= '<header>'."\n"; $tplcontent.= '<meta http-equiv="content-type" content="text/html; charset=utf-8" />'."\n"; $tplcontent.= '<meta name="robots" content="index, follow" />'."\n"; @@ -376,7 +395,7 @@ if ($action == 'updatemeta') if ($result) { - //setEventMessages($langs->trans("Saved"), null, 'mesgs'); + setEventMessages($langs->trans("Saved"), null, 'mesgs'); //header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website.'&pageid='.$pageid); //exit; } @@ -423,12 +442,53 @@ if ($action == 'updatecontent') { $db->commit(); + $filemaster=$pathofwebsite.'/master.inc.php'; + //$fileoldalias=$pathofwebsite.'/'.$objectpage->old_object->pageurl.'.php'; + $filealias=$pathofwebsite.'/'.$objectpage->pageurl.'.php'; + + dol_mkdir($pathofwebsite); + + + // Now generate the master.inc.php page + dol_syslog("We regenerate the master file"); + dol_delete_file($filemaster); + + $mastercontent = '<?php'."\n"; + $mastercontent.= '// File generated to link to the master file'."\n"; + $mastercontent.= "if (! defined('USEDOLIBARRSERVER')) require '".DOL_DOCUMENT_ROOT."/master.inc.php';\n"; + $mastercontent.= '?>'."\n"; + $result = file_put_contents($filemaster, $mastercontent); + if (! empty($conf->global->MAIN_UMASK)) + @chmod($filemaster, octdec($conf->global->MAIN_UMASK)); + + if (! $result) setEventMessages('Failed to write file '.$filemaster, null, 'errors'); + + + // Now generate the alias.php page + if (! empty($fileoldalias)) + { + dol_syslog("We regenerate alias page new name=".$filealias.", old name=".$fileoldalias); + dol_delete_file($fileoldalias); + } + + $aliascontent = '<?php'."\n"; + $aliascontent.= '// File generated to wrap the alias page'."\n"; + $aliascontent.= "include_once './page".$objectpage->id.".tpl.php';\n"; + $aliascontent.= '?>'."\n"; + $result = file_put_contents($filealias, $aliascontent); + if (! empty($conf->global->MAIN_UMASK)) + @chmod($filealias, octdec($conf->global->MAIN_UMASK)); + + if (! $result) setEventMessages('Failed to write file '.$filealias, null, 'errors'); + + // Now create the .tpl file // TODO Keep a one time generate file or include a dynamicaly generated content ? - dol_mkdir($pathofwebsite); dol_delete_file($filetpl); - $tplcontent = '<html>'."\n"; + $tplcontent =''; + $tplcontent.= '<?php require "./master.inc.php"; ?>'."\n"; + $tplcontent.= '<html>'."\n"; $tplcontent.= '<header>'."\n"; $tplcontent.= '<meta http-equiv="content-type" content="text/html; charset=utf-8" />'."\n"; $tplcontent.= '<meta name="robots" content="index, follow" />'."\n"; -- GitLab