当前位置: 首页 > 知识库问答 >
问题:

如何在Joomla tmpls中包含一些php类

傅砚
2023-03-14

我需要包括一些必须在许多tmpls中重复的php代码。我怎么能做到这一点,可能是因为类包括?我怎么能写PHP文件与我的类在一个正确的方式?换句话说,我需要像

视图/类别/胎压监测/默认值。php

JLoader::register('MyClass', '/administrator/components/com_mycom/helpers/myclass.php');
$repeatedcode = new MyClass();
echo $resultstr;

视图/文章/TPM/默认值。php

JLoader::register('MyClass', '/administrator/components/com_mycom/helpers/myclass.php');
$repeatedcode = new MyClass();
echo $resultstr;

我的班级。php

class MyClass {
// some code with string for echo in the end
$resultstr = ...
}

...

更新:@Guilherme谢谢你!所以现在看起来

文件/mytemplate/html/com\u 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;

文件管理员/components/com\u 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;
    }
}

这个脚本用存储在我数据库中的匹配的ru单词替换每个ua单词,如果我直接将脚本添加到tmpl中,它就可以工作。但是在包含的情况下,当我打开一个带有文章的页面时,我看到空白页面,其中只包含一个标题,没有其他内容,即内容不显示。也许阵列有问题?

共有1个答案

益清野
2023-03-14

助手中包含php函数后,可以使用require\u一次性将其包含在tmpl

    require_once JPATH_COMPONENT.'/helpers/mycom.php';
    MycomHelper::myFunction($param);

mycmhelper是我的Helper

com_mycom/helpers/helper。php

<?php

// no direct access
defined('_JEXEC') or die;

// Component Helper
jimport('joomla.application.component.helper');

class MycomHelper
{
    public static function dosomething($var)
    {
        return "Helper say: ".$var;
    }
}

在我com_content的tmpl中(第一行)

components\com\u content\views\article\tmpl\default。php

<?php

defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_COMPONENT . '/helpers');

    if(!defined('DS')) { define('DS',DIRECTORY_SEPARATOR); }
    require_once JPATH_ROOT.DS."components".DS."com_mycom".DS."helpers".DS."helper.php";

    echo MycomHelper::dosomething("hello!!!");

现在,您可以看到短语“Helper say:hello!!!”在每一篇文章中,乔姆拉

 类似资料:
  • 问题内容: 我正在尝试在内容表中插入值。如果我在VALUES内没有PHP变量,则效果很好。当我将变量放在里面时,这是行不通的。我究竟做错了什么? 问题答案: 在任何MySQL语句中添加PHP变量的规则很简单: 任何表示 SQL数据文字的 变量(或简单地说-SQL字符串或数字)都 必须通过准备好的语句添加 。没有例外。 任何其他查询部分(例如SQL关键字,表或字段名或运算符)都必须通过 白名单 进行

  • 如何在我的WordPress帖子中自动包含以下PHP脚本? 我不熟悉PHP,我假设上面的代码来自我用来显示社交共享按钮的插件。 我希望有人可能已经处理自动添加元素到摘录之前,会有一些代码,我可以复制到我的子主题?

  • 我有一些库脚本:lib1。groovy: lib2.groovy: lib3.groovy: 并希望在另一个脚本中使用它们:conf.groovy: conf.groovy是由用户配置的,他不知道我的后台lib脚本!他只知道提供的方法/任务:a()、b()、c()。实际上,我创建lib脚本是为了简化用户。 有没有办法将lib目录中的所有脚本(脚本lib1、lib2m、lib3)都包含到conf.g

  • 问题内容: 在Python中,如何检查是否有数据? 我发现不仅可以检查stdin是否已连接到TTY设备,还可以检查是否有可用数据。 但是如果有人使用诸如 然后使用,它仍然返回True。我需要做什么检查stdin是否有数据? 问题答案: 在Unix系统上,您可以执行以下操作: 在Windows上,虽然select模块只能与套接字一起使用,所以您需要使用其他机制。

  • 尝试转换多个时。使用py2exe将文件复制到exe文件中我得到错误:回溯(最近一次调用上次):文件“ParentWindow.py”,第7行,in 提到的“FileAnalysers1”是包含. py脚本的python包。如何在exe中包含整个包?

  • 主要内容:PHP include 和 require 语句,语法,PHP include 和 require 语句PHP include 和 require 语句 在 PHP 中,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。 include 和 require 语句用于在执行流中插入写在其他文件中的有用的代码。 include 和 require 除了处理错误的方式不同之外,在其他方面都是相同的: require 生成一个致命错误(E_COMPILE_ERROR),在错误发