|
|
|
| Добрый вечер.
Работаю над созданием плагина для CMS.
Разный пользователь может поставить CMS в любую директорию.
Например в корень:
/www/файлы CMS
или назвать папку blog
/www/blog/фалы CMS
Для работы с Ajax нужно подгружать файл расположенный в корне папки куда установлена CMS (из него получаю необходимые ресурсы этой системы)
в случаи если система установлена в корень www то вполне хватит этого кода:
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/cms-load.php');
|
но когда папка может называться как угодно, невозможно понять, откуда этот файл брать.
Но, я точно знаю что файл лежит на 4 уровня ниже файла к которому отправляется Ajax запрос.
Т.к. все плагины строго лежат на 4 уровня выше корня CMS.
Решил написать данный код:
<?php
define('DS', DIRECTORY_SEPARATOR);
$test_file_dir = dirname(__FILE__); /* Текущее положение */
$test_file_arr = array_reverse(explode(DS, $test_file_dir)); /* Переворачиваем */
$test_depth_file = '4'; /* Указываем уровень воложенности текущего файла */
for($i = 0; $i < $test_depth_file; $i++)
{
unset($test_file_arr[$i]); /* Удаляем ненужные папки */
}
$test_file_implode = array_reverse($test_file_arr); /* Снова переворачиваем */
$test_patch = implode(DS,$test_file_implode); /* Собираем */
require_once($test_patch.'/cms-load.php');
|
такой вопросы господа, не хе*ней ли я занимаюсь. Возможно есть решение проше? | |
|
|
|
|
|
|
|
для: zetrider
(21.10.2013 в 22:26)
| | Я не знаю, как на счет самой логики приложения, но для нахождения пути подключать цикл точно нет необходимости.
<?php
define('DS', DIRECTORY_SEPARATOR);
$path = implode(DS, array_slice(explode(DS, __DIR__), 0, -4));
require_once($path.'/cms-load.php');
|
| |
|
|
|
|
|
|
|
для: Sfinks
(22.10.2013 в 07:56)
| | Спасибо, так куда лучше | |
|
|
|