Пути и каталоги
Материал из AOW
На уровне скриптов: Все серверные пути должны иметь абсолютные адреса, а все пути браузера должны быть относительными. Это реализуется за счет использования разделения глобальных переменных на I_ – Internal, E_ – External. Все Internal пути опираются на системные пути, все External пути отталкиваются от имени домена. Для вызова или подключения библиотеки на стороне севера необходимо использовать Internal, для формирования ссылки для браузера – External, соответственно.
Внутри не связанных через php модулей применяется смена директории на директорию индексного файла командой chdir("../../../../"); Затем подключаются конфигурационный файл системы. Очень важно, что бы команда chdir(“../../”); выводила в корневой каталог системы, т.е. каталог где находятся основные папки системы, например main_cfg.
Например, файл модуля captcha, ссылка для браузера выглядит как:
<img src=”<?=$GLOBALS[‘E_base’]?>captcha/img/captcha.img.php” alt=”captcha” />
Исходный код использует внутренние пути:
<?php
/*----------------artofweb - sitecontrol 3rd breathing-------------------------------
captcha EgAr 2007.11.02
------------------------------------------------------------------------------------*/
session_start();
//Нахождения конфига фиксировано относительно директории содержащей каталоги системы aow-sc3
chdir("../../../");
require("main_cfg/main.cfg");
require_once($GLOBALS['I_main_fnc']."_all.fnc.php"); //AOW-SC3 базовый функционал
. . .
$font = $GLOBALS['I_main_res'].'fonts/arial.ttf';
. . .
?>
На уровне браузера пользователя:
Что бы все пути были корректны необходимо соблюдать простое правило, использовать в путях одну из префиксных глобальных переменных:
$GLOBALS['E_root'],
$GLOBALS['E_base'],
$GLOBALS['E_main_res'],
$GLOBALS['E_main_tmp'].

