Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 'Динамический' patch файла для require_once
 
 автор: zetrider   (21.10.2013 в 22:26)   письмо автору
 
 

Добрый вечер.

Работаю над созданием плагина для 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'); 


такой вопросы господа, не хе*ней ли я занимаюсь. Возможно есть решение проше?

  Ответить  
 
 автор: Sfinks   (22.10.2013 в 07:56)   письмо автору
 
   для: zetrider   (21.10.2013 в 22:26)
 

Я не знаю, как на счет самой логики приложения, но для нахождения пути подключать цикл точно нет необходимости.
<?php
  define
('DS'DIRECTORY_SEPARATOR);
  
$path implode(DSarray_slice(explode(DS__DIR__), 0, -4));
  require_once(
$path.'/cms-load.php');

  Ответить  
 
 автор: ZetRider   (22.10.2013 в 08:39)   письмо автору
 
   для: Sfinks   (22.10.2013 в 07:56)
 

Спасибо, так куда лучше

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования