Merge remote-tracking branch 'upstream/develop' into patch-10

This commit is contained in:
Frédéric FRANCE 2018-09-09 14:45:56 +02:00
commit dfc1153bb7
No known key found for this signature in database
GPG Key ID: 06809324E4B2ABC1
4 changed files with 42 additions and 12 deletions

View File

@ -15,6 +15,13 @@ For developers:
* Code changes to be more compatible with PSR2 * Code changes to be more compatible with PSR2
* Removed trigger USER_LOGOUT, USER_LOGIN, USER_LOGIN_FAILED (Some hooks are already dedicated for that) * Removed trigger USER_LOGOUT, USER_LOGIN, USER_LOGIN_FAILED (Some hooks are already dedicated for that)
WARNING:
Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:
* If you use some links like viewimages.php?modulepart=mycompany&file=... in you external modules, you must
relace them with links like viewimages.php?modulepart=mycompany&file=logos/... (note that link change only for
modulepart=mycompany that now works like others).
***** ChangeLog for 8.0.1 compared to 8.0.0 ***** ***** ChangeLog for 8.0.1 compared to 8.0.0 *****

View File

@ -150,11 +150,13 @@ function dolWebsiteOutput($content)
$nbrep=0; $nbrep=0;
if (! $symlinktomediaexists) if (! $symlinktomediaexists)
{ {
$content=preg_replace('/(<script[^>]*src=")[^\"]*document\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\document.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); $content=preg_replace('/(<script[^>]*src=")[^\"]*document\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
$content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); $content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); $content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
$content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); $content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1/wrapper.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep);
$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=mycompany([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=mycompany\3file=\4\5', $content, -1, $nbrep);
} }
else else
{ {
@ -163,6 +165,8 @@ function dolWebsiteOutput($content)
$content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1medias/\4\5', $content, -1, $nbrep); $content=preg_replace('/(<a[^>]*href=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1medias/\4\5', $content, -1, $nbrep);
$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1medias/\4\5', $content, -1, $nbrep); $content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=medias([^\"]*)file=([^\"]*)("[^>]*>)/', '\1medias/\4\5', $content, -1, $nbrep);
$content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1medias/\4\5', $content, -1, $nbrep); $content=preg_replace('/(url\(["\']?)[^\)]*viewimage\.php([^\)]*)modulepart=medias([^\)]*)file=([^\)]*)(["\']?\))/', '\1medias/\4\5', $content, -1, $nbrep);
$content=preg_replace('/(<img[^>]*src=")[^\"]*viewimage\.php([^\"]*)modulepart=mycompany([^\"]*)file=([^\"]*)("[^>]*>)/', '\1/wrapper.php\2modulepart=mycompany\3file=\4\5', $content, -1, $nbrep);
} }
} }
@ -612,22 +616,24 @@ function dolSavePageContent($filetpl, $object, $objectpage)
/** /**
* Save content of the index.php page * Save content of the index.php and wrapper.php page
* *
* @param string $pathofwebsite Path of website root * @param string $pathofwebsite Path of website root
* @param string $fileindex Full path of file index.php * @param string $fileindex Full path of file index.php
* @param string $filetpl File tpl to index.php page redirect to * @param string $filetpl File tpl to index.php page redirect to
* @param string $fileindex Full path of file wrapper.php
* @return boolean True if OK * @return boolean True if OK
*/ */
function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl) function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper)
{ {
global $conf; global $conf;
$result=0; $result1=false;
$result2=false;
dol_mkdir($pathofwebsite); dol_mkdir($pathofwebsite);
dol_delete_file($fileindex);
dol_delete_file($fileindex);
$indexcontent = '<?php'."\n"; $indexcontent = '<?php'."\n";
$indexcontent.= "// BEGIN PHP File generated to provide an index.php as Home Page or alias redirector - DO NOT MODIFY - It is just a generated wrapper.\n"; $indexcontent.= "// BEGIN PHP File generated to provide an index.php as Home Page or alias redirector - DO NOT MODIFY - It is just a generated wrapper.\n";
$indexcontent.= '$websitekey=basename(dirname(__FILE__));'."\n"; $indexcontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
@ -639,11 +645,25 @@ function dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl)
$indexcontent.= "}\n"; $indexcontent.= "}\n";
$indexcontent.= "include_once './".basename($filetpl)."'\n"; $indexcontent.= "include_once './".basename($filetpl)."'\n";
$indexcontent.= '// END PHP ?>'."\n"; $indexcontent.= '// END PHP ?>'."\n";
$result = file_put_contents($fileindex, $indexcontent); $result1 = file_put_contents($fileindex, $indexcontent);
if (! empty($conf->global->MAIN_UMASK)) if (! empty($conf->global->MAIN_UMASK))
@chmod($fileindex, octdec($conf->global->MAIN_UMASK)); @chmod($fileindex, octdec($conf->global->MAIN_UMASK));
return $result; dol_delete_file($filewrapper);
$wrappercontent = '<?php'."\n";
$wrappercontent.= "// BEGIN PHP File generated to provide a wrapper.php - DO NOT MODIFY - It is just a generated wrapper.\n";
$wrappercontent.= '$websitekey=basename(dirname(__FILE__));'."\n";
$wrappercontent.= "if (! defined('USEDOLIBARRSERVER')) { require_once './master.inc.php'; } // Load master if not already loaded\n";
$wrappercontent.= '$original_file=str_replace("../","/", GETPOST("file","alpha"));'."\n";
$wrappercontent.= 'if ($_GET["modulepart"] == "mycompany" && preg_match(\'/^\/?logos\//\', $original_file)) readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file));'."\n";
$wrappercontent.= "else print 'Bad value for modulepart or file';\n";
$wrappercontent.= 'if (is_object($db)) $db->close();'."\n";
$wrappercontent.= '// END PHP ?>'."\n";
$result2 = file_put_contents($filewrapper, $wrappercontent);
if (! empty($conf->global->MAIN_UMASK))
@chmod($filewrapper, octdec($conf->global->MAIN_UMASK));
return ($result1 && $result2);
} }

View File

@ -1023,8 +1023,10 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard'
print '</td>'; print '</td>';
print '<td>'; print '<td>';
print $langs->trans("Remote"); print $langs->trans("Remote");
//if ($src->cvc_check == 'fail') print ' - CVC check fail';
print '</td>'; print '</td>';
print '<td>'; print '<td>';
//var_dump($src);
print ''; print '';
print '</td>'; print '</td>';
print '<td align="right" class="nowraponall">'; print '<td align="right" class="nowraponall">';

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2016-2017 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2016-2018 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -140,6 +140,7 @@ $filerobot=$pathofwebsite.'/robots.txt';
$filehtaccess=$pathofwebsite.'/.htaccess'; $filehtaccess=$pathofwebsite.'/.htaccess';
$filetpl=$pathofwebsite.'/page'.$pageid.'.tpl.php'; $filetpl=$pathofwebsite.'/page'.$pageid.'.tpl.php';
$fileindex=$pathofwebsite.'/index.php'; $fileindex=$pathofwebsite.'/index.php';
$filewrapper=$pathofwebsite.'/wrapper.php';
// Define $urlwithroot // Define $urlwithroot
$urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root));
@ -981,7 +982,7 @@ if ($action == 'setashome')
// Generate the index.php page to be the home page // Generate the index.php page to be the home page
//------------------------------------------------- //-------------------------------------------------
$result = dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl); $result = dolSaveIndexPage($pathofwebsite, $fileindex, $filetpl, $filewrapper);
if ($result) setEventMessages($langs->trans("Saved"), null, 'mesgs'); if ($result) setEventMessages($langs->trans("Saved"), null, 'mesgs');
else setEventMessages('Failed to write file '.$fileindex, null, 'errors'); else setEventMessages('Failed to write file '.$fileindex, null, 'errors');