0

在 pligg 中将新模块添加到主 pligg 模板 pligg.tpl 非常简单,但是,我想在故事中添加一个新模块。位于link_summary.tpl。问题是,当创建链接摘要模板时,会创建一个新变量 $main_smarty ,它具有自己的本地范围,不适用于我的 modulename_main.php 文件。当我使用全局 $main_smarty 变量时,它引用了主 pligg 模板 smarty 对象。所以我习惯于快速和有点脏地修复主要架构 php 代码,在 link.php 文件中我添加了一个新的回调:

$vars = '';
check_actions('add_to_summary', $vars);

然后在 link.php 文件中创建了一个新的全局变量引用 $main_smarty 对象,然后我在我的 modulename_main.php 中使用了它

global $link_smarty;
global $link_variables;
$link_variables = $this;
$link_smarty = $main_smarty;

在不调整主要架构 pligg 代码的情况下,是否有一种更本机、更合适和更清洁的方法?

4

1 回答 1

0

不确定这是否会有所帮助。

另一种方法是编写一个新模块并将其分配给该特定页面,在您的情况下link_summary。如您所知,每个模块都有一个 init 文件,例如your_module_init.php. 在您的情况下,初始化文件将类似于:

<?php
if(defined('mnminclude')){
    include_once('your_module_settings.php');
    $include_in_pages = array('link_summary');
    $do_not_include_in_pages = array();
    if( do_we_load_module() ) {     
        module_add_action('');
        include_once(mnmmodules . 'your_module_name/your_module_main.php');
    }
}
?>

干杯,

于 2014-03-24T23:30:30.030 回答