Шаблон Joomla 2.5 'functions.php' похож на wordpress

Мне нужно сослаться на определенный файл functions.php, который может храниться в каталоге шаблонов моего шаблона Joomla. WordPress, кажется, включает это, но если я сделаю что-то вроде:

Включить файл функций

<?php require_once ( 'functions.php' ); ?>

В functions.php:

<?php
     function displaySomething() {
          echo "Hello World";
 }
?>

а затем в шаблонах index.php:

<?php displaySomething(); ?>

Шаблон ломается/пустой. Для удобства я просто хочу иметь единственную референсную функцию php case.


person SMacFadyen    schedule 09.03.2012    source источник
comment
Я не уверен, но может быть путь рассчитывается из основного файла индекса (а не из файла шаблона), попробуйте использовать templates/templatename/functions.php (или что-то еще в последней версии Joomla). И включите error_reporting, кстати (как в конфиге Joomla, так и на сервере)   -  person Damien Pirsy    schedule 09.03.2012


Ответы (2)


Попробуй это -

<?php require_once ($this->baseurl.'/templates/'.$this->template.'/functions.php'); ?>

Тем не менее, есть вероятность, что вы не должны делать это таким образом. В общем, не рекомендуется жестко кодировать что-либо в шаблоне, потому что это лишает возможности выбирать страницы, на которых вы хотите, чтобы код выполнялся, и лишает возможности легко редактировать то, что когда-либо делает код.

Вы действительно должны поместить свой код в модуль или плагин. Помещение его в модуль позволяет легко выбирать страницы, на которых вы хотите разместить код, включать или выключать его глобально или легко изменять вывод. Включение его в плагин упростило бы размещение его на страницах на основе одного из триггеров событий Joomla, а также глобальное включение или выключение.

За то количество времени, которое потребуется, чтобы превратить его в расширение, оно того стоит.

person Brent Friar    schedule 09.03.2012

Попробуйте (используя константу JPATH_BASE):

<?php
 #Loading functions
 require_once (
  JPATH_BASE."/templates/{$this->template}/functions.php"
 );
?>
person fitorec    schedule 14.03.2013