2012-03-09 81 views
1

我需要引用一个特定的functions.php文件,它可以存储在我的Joomla模板的模板目录中。 WordPress的似乎包含这一点,但如果我这样做:Joomla 2.5模板'functions.php'类似wordpress

包含的功能文件

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

在functions.php中:

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

,然后在模板的index.php:

<?php displaySomething(); ?> 

该模板中断/为空。为了提高性能,我只想拥有一个可引用的php案例函数。

+1

我不知道,但它可能是路径从主索引文件计算(不模板的一个),请尝试使用'模板/ templatename/functions.php'(或任何它在最新的Joomla中)。并启用error_reporting,顺便说一句(在Joomla的配置和服务器) – 2012-03-09 15:01:46

回答

3

试试这个 -

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

然而,有机会,你不应该做这种方式。一般来说,将任何内容硬编码到模板中并不是一个好主意,因为这会消除选择希望代码执行的页面的能力,并且无法轻松编辑代码正在执行的操作。

你真的应该把你的代码放在模块或插件中。将它放在模块中可以轻松选择想要代码的页面,全局打开或关闭它,或者轻松更改输出。将它放在插件中可以很容易地将它放在基于Joomla事件触发器的页面上,并在全局范围内打开或关闭它。

对于需要花费的时间将其转换为扩展名,这非常值得。

+1

建议模块+1 – ChelseaStats 2012-06-15 08:20:53

1

尝试(使用常量JPATH_BASE):

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