【发布时间】:2014-02-04 11:51:19
【问题描述】:
我需要包含一些必须在许多 tmpls 中重复的 php 代码。我该怎么做,可能包括在内?以及如何以正确的方式用我的类编写 php 文件?换句话说,我需要类似的东西
views/category/tpml/default.php
JLoader::register('MyClass', '/administrator/components/com_mycom/helpers/myclass.php');
$repeatedcode = new MyClass();
echo $resultstr;
views/article/tpml/default.php
JLoader::register('MyClass', '/administrator/components/com_mycom/helpers/myclass.php');
$repeatedcode = new MyClass();
echo $resultstr;
myclass.php
class MyClass {
// some code with string for echo in the end
$resultstr = ...
}
...
更新: @Guilherme 谢谢!所以现在它看起来像
文件/mytemplate/html/com_content/article/default.php:
require_once '/administrator/components/com_mycom/helpers/myclass.php';
MyComHelper::myFunction($param);
$newstring = str_replace($find, $replace, $this->item->text);
echo $newstring;
文件administrator/components/com_mycom/helpers/myclass.php:
defined('_JEXEC') or die;
abstract class MyComHelper
{
public static function myFunction($param)
{
$db = &JFactory::getDBO();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('ua', 'ru')))
->from($db->quoteName('#__words'));
$db->setQuery($query);
$results = $db->loadAssocList();
$find = array();
$replace = array();
foreach ($results as $row) {
$find[] = $row['ua'];
$replace[] = $row['ru'];
}
return $find;
return $replace;
}
}
此脚本将每个 ua 单词替换为存储在我的数据库中的匹配 ru 单词,如果我直接将脚本添加到 tmpl 则它可以工作。但是在包含文章的情况下,当我打开包含文章的页面时,我会看到仅包含标题而没有其他内容的空白页面,即不显示内容。可能是数组的问题?
【问题讨论】:
标签: php class joomla include joomla2.5