Форум русской поддержки Joomla!® CMS
05.12.2016, 22:43:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Альтернатива include_once или как включить сторонний php из папки шаблона?

 (Прочитано 193 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« : 19.07.2016, 00:03:42 »

Следующая конструкция отлично коннектила php - файл из папки шаблона

Код:
$path   = JURI::base(true).'/templates/'.$app->getTemplate().'/';
<?php include_once($path.'/includes/ArticleInfo.php'); ?>

НИЧЕГО НЕ МЕНЯЯ, через Акибу я перенес бэкап на новый OpenServer
И эта конструкция перестала работать.

Справедливости ради отмечу, что версии php разные 7.0.4 и 7.0.8

Что интересно, вроде никакие параметры php.ini не менял
В свойствах php в обоих случаях
Directive   Local Value   Master Value
allow_url_fopen   On   On
allow_url_include   Off   Off

Так вот, php файл не инклюдит, и выдает ошибку
Warning: include_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0

Погуглил - понятно что рекомендуют подправит php.ini

Лезть в php.ini не хочу по следующим причинам
- хостинг может не позволить мне этого сделать
- через .htaccess директива не сработала
- включать функцию инклуда вроде как небезопасно (https://docs.joomla.org/Security_Checklist/Hosting_and_Server_Setup)
- Joomla рекомендует "Use allow_url_fopen" (не понял правда как)

Пробовал использовать относительный путь (типа ../includes/ArticleInfo.php - не понимает)

Так как тогда безопасно инклюдить php-файл?
Записан
SmokerMan
Профи
********

Репутация: +694/-25
Offline Offline

Пол: Мужской
Сообщений: 5225



« Ответ #1 : 19.07.2016, 11:50:45 »

Так как тогда безопасно инклюдить php-файл?
странно что оно где-то работало Azn
может так попробовать?)
Код:
include_once (JPATH_ROOT.'/templates/'.$app->getTemplate().'/includes/ArticleInfo.php');
Записан
b2z
Support Team
*****

Репутация: +709/-0
Offline Offline

Пол: Мужской
Сообщений: 7521


Разраблю понемногу


« Ответ #2 : 19.07.2016, 11:59:23 »

Мдаа... То есть раньше подключали через include_once('http://lalala.ru/templates/template_name/includes/ArticleInfo.php'); - это жестоко...
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #3 : 19.07.2016, 12:32:58 »

Мдаа... То есть раньше подключали через include_once('http://lalala.ru/templates/template_name/includes/ArticleInfo.php'); - это жестоко...
Профессора Joomla, не издевайтесь. Я же и спросил, как ПРАВИЛЬНО инклудить свой файл?
Получается что и вариант от SmokerMan тоже "жестокий"? т.к. в итоге всё сведется к полному пути http://..... ArticleInfo.php ?
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3581


« Ответ #4 : 19.07.2016, 12:37:32 »

в итоге всё сведется к полному пути http://..... ArticleInfo.php ?
C чего вы взяли? Может быть, стоило проверить перед тем, как писать?
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #5 : 19.07.2016, 12:45:15 »

C чего вы взяли? Может быть, стоило проверить перед тем, как писать?
Попробовать смогу только вечером (сейчас пробую по максимуму собрать информации). А кстати, решение
Код:
include_once (JPATH_ROOT.'/templates/'.$app->getTemplate().'/includes/ArticleInfo.php');

будет ли работать с триггером "allow_url_include Off ", либо нужно включать переменную в php.ini?
Записан
b2z
Support Team
*****

Репутация: +709/-0
Offline Offline

Пол: Мужской
Сообщений: 7521


Разраблю понемногу


« Ответ #6 : 19.07.2016, 13:56:54 »

Я на издеваюсь и дело тут не в Joomla, а банальных знаниях PHP. Хоть бы загуглили, перед тем как использовать такие конструкции Wink

Цитировать
будет ли работать с триггером "allow_url_include Off ", либо нужно включать переменную в php.ini?
Будет, потому что JPATH_ROOT - это не URL, а путь до Вашей установки Joomla, типа /var/www/lalala.ru
Записан
ice99
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 91


« Ответ #7 : 19.07.2016, 20:16:04 »

может так попробовать?)
Код:
include_once (JPATH_ROOT.'/templates/'.$app->getTemplate().'/includes/ArticleInfo.php');

Работает. Всем спасибо за советы.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet