Fix: Fix a lot of regression. There still a lot of new bugs to fix (like compatibility through proxy, or restore performance by avoiding huge number of fil_exists).

This commit is contained in:
Laurent Destailleur 2010-12-19 03:04:06 +00:00
parent 1e151d9864
commit 749b9c333e
6 changed files with 16 additions and 18 deletions

View File

@ -376,13 +376,13 @@ if ($mode != 4)
{
if (preg_match('/^([^@]+)@([^@]+)$/i',$urlpage,$regs))
{
if (! defined('DOL_URL_EXTMODULE') || ! DOL_URL_EXTMODULE || file_exists(DOL_URL_ROOT.'/'.$regs[2].'/admin/'.$regs[1]))
if (! DOL_URL_ROOT_ALT || file_exists(DOL_URL_ROOT.'/'.$regs[2].'/admin/'.$regs[1]))
{
print '<a href="'.DOL_URL_ROOT.'/'.$regs[2].'/admin/'.$regs[1].'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a>&nbsp;';
}
else
{
print '<a href="'.DOL_URL_EXTMODULE.'/'.$regs[2].'/admin/'.$regs[1].'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a>&nbsp;';
print '<a href="'.DOL_URL_ROOT_ALT.'/'.$regs[2].'/admin/'.$regs[1].'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a>&nbsp;';
}
}
else
@ -395,13 +395,13 @@ if ($mode != 4)
}
else if (preg_match('/^([^@]+)@([^@]+)$/i',$objMod->config_page_url,$regs))
{
if (! defined('DOL_URL_EXTMODULE') || ! DOL_URL_EXTMODULE || file_exists(DOL_URL_ROOT.'/'.$regs[2].'/admin/'.$regs[1]))
if (! DOL_URL_ROOT_ALT || file_exists(DOL_URL_ROOT.'/'.$regs[2].'/admin/'.$regs[1]))
{
print '<td align="right" valign="top"><a href="'.DOL_URL_ROOT.'/'.$regs[2].'/admin/'.$regs[1].'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a></td>';
}
else
{
print '<td align="right" valign="top"><a href="'.DOL_URL_EXTMODULE.'/'.$regs[2].'/admin/'.$regs[1].'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a></td>';
print '<td align="right" valign="top"><a href="'.DOL_URL_ROOT_ALT.'/'.$regs[2].'/admin/'.$regs[1].'" title="'.$langs->trans("Setup").'">'.img_picto($langs->trans("Setup"),"setup").'</a></td>';
}
}
else

View File

@ -65,7 +65,7 @@ function print_auguria_menu($db,$atarget,$type_user)
{
preg_match('/^([^<]+\.php)/i',$tabMenu[$i]['url'],$regs);
$url=DOL_URL_ROOT.$tabMenu[$i]['url'];
if (defined('DOL_URL_EXTMODULE') && DOL_URL_EXTMODULE && ! file_exists(DOL_DOCUMENT_ROOT.$tabMenu[$i]['url'])) $url=DOL_URL_EXTMODULE.$tabMenu[$i]['url'];
if (DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.$tabMenu[$i]['url'])) $url=DOL_URL_ROOT_ALT.$tabMenu[$i]['url'];
if (! preg_match('/\?/',$url)) $url.='?';
else $url.='&';
if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url))
@ -279,7 +279,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after)
// Add mainmenu in GET url. This make to go back on correct menu even when using Back on browser.
preg_match('/^([^<]+\.php)/i',$menu_array[$i]['url'],$regs);
$url=DOL_URL_ROOT.$menu_array[$i]['url'];
if (defined('DOL_URL_EXTMODULE') && DOL_URL_EXTMODULE && ! file_exists(DOL_DOCUMENT_ROOT.$regs[1])) $url=DOL_URL_EXTMODULE.$menu_array[$i]['url'];
if (DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.$regs[1])) $url=DOL_URL_ROOT_ALT.$menu_array[$i]['url'];
if (! preg_match('/mainmenu=/i',$menu_array[$i]['url']))
{

View File

@ -454,7 +454,7 @@ function print_eldy_menu($db,$atarget,$type_user)
else
{
$url=DOL_URL_ROOT.$tabMenu[$i]['url'];
if (defined('DOL_URL_EXTMODULE') && DOL_URL_EXTMODULE && ! file_exists(DOL_DOCUMENT_ROOT.$tabMenu[$i]['url'])) $url=DOL_URL_EXTMODULE.$tabMenu[$i]['url'];
if (DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.$tabMenu[$i]['url'])) $url=DOL_URL_ROOT_ALT.$tabMenu[$i]['url'];
if (! preg_match('/\?/',$url)) $url.='?';
else $url.='&';
if (! preg_match('/mainmenu/i',$url) || ! preg_match('/leftmenu/i',$url))
@ -1388,7 +1388,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after)
// For external modules
preg_match('/^([^<]+\.php)/i',$menu_array[$i]['url'],$regs);
$url=DOL_URL_ROOT.$menu_array[$i]['url'];
if (defined('DOL_URL_EXTMODULE') && DOL_URL_EXTMODULE && ! file_exists(DOL_DOCUMENT_ROOT.$regs[1])) $url=DOL_URL_EXTMODULE.$menu_array[$i]['url'];
if (DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.$regs[1])) $url=DOL_URL_ROOT_ALT.$menu_array[$i]['url'];
// Menu niveau 0
if ($menu_array[$i]['level'] == 0)

View File

@ -123,15 +123,13 @@ $conf->global->MAIN_LOGTOHTML=1;
if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_';
define('MAIN_DB_PREFIX',(isset($dolibarr_main_db_prefix)?$dolibarr_main_db_prefix:''));
define('DOL_DATA_ROOT',(isset($dolibarr_main_data_root)?$dolibarr_main_data_root:''));
define('DOL_CLASS_PATH', 'class/'); // Filsystem path to class dir
define('DOL_DOCUMENT_ROOT_ALT', (isset($dolibarr_main_document_root_alt)?$dolibarr_main_document_root_alt:'')); // Filesystem path to external root dir (external modules)
define('DOL_DATA_ROOT',(isset($dolibarr_main_data_root)?$dolibarr_main_data_root:''));
define('DOL_MAIN_URL_ROOT', (isset($dolibarr_main_url_root)?$dolibarr_main_url_root:'')); // URL relative root
$uri=preg_replace('/^http(s?):\/\//i','',constant('DOL_MAIN_URL_ROOT')); // $uri contains url without http*
$suburi = strstr ($uri, '/'); // $suburi contains url without domain
if ($suburi == '/') $suburi = ''; // If $suburi is /, it is now ''
define('DOL_URL_ROOT', $suburi); // URL relative root ('', '/dolibarr', ...)
define('DOL_URL_EXTMODULE', DOL_URL_ROOT.(isset($dolibarr_main_url_root_alt)?$dolibarr_main_url_root_alt:'')); // URL relative for external modules
if (empty($conf->file->character_set_client)) $conf->file->character_set_client="UTF-8";

View File

@ -1154,7 +1154,7 @@ function img_object($alt, $object, $cssclass='')
$object = $regs[1];
$path = $regs[2];
// If img file not into standard path, we use alternate path
if (! file_exists(DOL_DOCUMENT_ROOT.'/'.$path.'/img/object_'.$object.'.png')) $url = DOL_URL_EXTMODULE;
if (DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.'/'.$path.'/img/object_'.$object.'.png')) $url = DOL_URL_ROOT_ALT;
}
return '<img src="'.$url.'/'.$path.'/img/object_'.$object.'.png" border="0" alt="'.dol_escape_htmltag($alt).'" title="'.dol_escape_htmltag($alt).'" '.$cssclass.'>';
@ -1182,7 +1182,7 @@ function img_picto($alt, $picto, $options='', $pictoisfullpath=0)
{
$picto = $regs[1];
$path = $regs[2];
if (! file_exists(DOL_DOCUMENT_ROOT.'/'.$path.'/img/'.$picto)) $url = DOL_URL_EXTMODULE;
if (DOL_URL_ROOT_ALT && ! file_exists(DOL_DOCUMENT_ROOT.'/'.$path.'/img/'.$picto)) $url = DOL_URL_ROOT_ALT;
}
if (! preg_match('/(\.png|\.gif)$/i',$picto)) $picto.='.png';

View File

@ -101,10 +101,10 @@ if (empty($dolibarr_main_data_root))
}
// Define some constants
define('DOL_DOCUMENT_ROOT', $dolibarr_main_document_root); // Filesystem core php (htdocs)
define('DOL_DATA_ROOT', $dolibarr_main_data_root); // Filesystem data (documents)
define('DOL_CLASS_PATH', 'class/'); // Filesystem path to class dir
define('DOL_DOCUMENT_ROOT_ALT', $dolibarr_main_document_root_alt); // Filesystem path to external modules dir
define('DOL_DATA_ROOT', $dolibarr_main_data_root); // Filesystem data (documents)
define('DOL_DOCUMENT_ROOT', $dolibarr_main_document_root); // Filesystem core php (htdocs)
define('DOL_DOCUMENT_ROOT_ALT', $dolibarr_main_document_root_alt); // Filesystem paths to alternate core php (alternate htdocs)
// If dolibarr_main_url_root = auto (Hidden feature for developers only), we try to forge it.
if ($dolibarr_main_url_root == 'auto' && ! empty($_SERVER["SCRIPT_URL"]) && ! empty($_SERVER["SCRIPT_URI"]))
{
@ -112,11 +112,11 @@ if ($dolibarr_main_url_root == 'auto' && ! empty($_SERVER["SCRIPT_URL"]) && ! em
}
define('DOL_MAIN_URL_ROOT', $dolibarr_main_url_root); // URL relative root
$uri=preg_replace('/^http(s?):\/\//i','',constant('DOL_MAIN_URL_ROOT')); // $uri contains url without http*
$suburi = strstr ($uri, '/'); // $suburi contains url without domain
$suburi = strstr($uri, '/'); // $suburi contains url without domain
if ($suburi == '/') $suburi = ''; // If $suburi is /, it is now ''
define('DOL_URL_ROOT', $suburi); // URL relative root ('', '/dolibarr', ...)
if (! empty($dolibarr_main_url_root_static)) define('DOL_URL_ROOT_FULL_STATIC', $dolibarr_main_url_root_static); // Used to put static images on another domain
define('DOL_URL_EXTMODULE', DOL_URL_ROOT.$dolibarr_main_url_root_alt); // URL relative for external modules
define('DOL_URL_ROOT_ALT', DOL_URL_ROOT.$dolibarr_main_url_root_alt); // URL relative for external modules
/*
* Include functions