PHPBB将模板变量发送到total_footer.html

PHPBB将模板变量发送到total_footer.html,php,template-engine,phpbb,Php,Template Engine,Phpbb,由于totall_footer.html是由一个核心phpbb文件提供的,该文件不应该被编辑,我如何在不编辑核心文件的情况下向模板发送一些变量呢 更具体地说,我正在尝试使用totall_footer.html中的注释来执行一个条件语句,并且我还需要在我将要编辑的任何文件中包含一个函数文件(functions_chat.php),以便正确执行此操作。因此,对于任何对此问题的答案感兴趣的人,看起来页脚实际上是在functions.php文件中生成的。位于/包括 function page_f

由于totall_footer.html是由一个核心phpbb文件提供的,该文件不应该被编辑,我如何在不编辑核心文件的情况下向模板发送一些变量呢


更具体地说,我正在尝试使用totall_footer.html中的注释来执行一个条件语句,并且我还需要在我将要编辑的任何文件中包含一个函数文件(functions_chat.php),以便正确执行此操作。

因此,对于任何对此问题的答案感兴趣的人,看起来页脚实际上是在functions.php文件中生成的。位于/包括

    function page_footer($run_cron = true, $display_template = true, $exit_handler = true)
{
    global $db, $config, $template, $user, $auth, $cache, $phpEx;
    global $request, $phpbb_dispatcher, $phpbb_admin_path;

    // A listener can set this variable to `true` when it overrides this function
    $page_footer_override = false;

    /**
    * Execute code and/or overwrite page_footer()
    *
    * @event core.page_footer
    * @var  bool    run_cron            Shall we run cron tasks
    * @var  bool    page_footer_override    Shall we return instead of running
    *                                       the rest of page_footer()
    * @since 3.1.0-a1
    */
    $vars = array('run_cron', 'page_footer_override');
    extract($phpbb_dispatcher->trigger_event('core.page_footer', compact($vars)));

    if ($page_footer_override)
    {
        return;
    }

    phpbb_check_and_display_sql_report($request, $auth, $db);

    $template->assign_vars(array(
        'DEBUG_OUTPUT'          => phpbb_generate_debug_output($db, $config, $auth, $user, $phpbb_dispatcher),
        'TRANSLATION_INFO'      => (!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] : '',
        'CREDIT_LINE'           => $user->lang('POWERED_BY', '<a href="https://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Limited'),

        'U_ACP' => ($auth->acl_get('a_') && !empty($user->data['is_registered'])) ? append_sid("{$phpbb_admin_path}index.$phpEx", false, true, $user->session_id) : '')
    );

    // Call cron-type script
    $call_cron = false;
    if (!defined('IN_CRON') && !$config['use_system_cron'] && $run_cron && !$config['board_disable'] && !$user->data['is_bot'] && !$cache->get('_cron.lock_check'))
    {
        $call_cron = true;
        $time_now = (!empty($user->time_now) && is_int($user->time_now)) ? $user->time_now : time();

        // Any old lock present?
        if (!empty($config['cron_lock']))
        {
            $cron_time = explode(' ', $config['cron_lock']);

            // If 1 hour lock is present we do not call cron.php
            if ($cron_time[0] + 3600 >= $time_now)
            {
                $call_cron = false;
            }
        }
    }

    // Call cron job?
    if ($call_cron)
    {
        global $phpbb_container;

        /* @var $cron \phpbb\cron\manager */
        $cron = $phpbb_container->get('cron.manager');
        $task = $cron->find_one_ready_task();

        if ($task)
        {
            $url = $task->get_url();
            $template->assign_var('RUN_CRON_TASK', '<img src="' . $url . '" width="1" height="1" alt="cron" />');
        }
        else
        {
            $cache->put('_cron.lock_check', true, 60);
        }
    }
函数页\u页脚($run\u cron=true,$display\u template=true,$exit\u handler=true)
{
全局$db、$config、$template、$user、$auth、$cache、$phpEx;
全局$request、$phpbb_dispatcher、$phpbb_admin_path;
//当侦听器重写此函数时,可以将此变量设置为“true”
$page\u footer\u override=false;
/**
*执行代码和/或覆盖页脚()
*
*@event core.page\u页脚
*@var bool run\u cron我们应该运行cron任务吗
*@var bool page\u footer\u覆盖我们是否返回而不是运行
*页脚()的其余部分
*@自3.1.0-a1起
*/
$vars=array('run_cron','page_footer_override');
提取($phpbb_dispatcher->trigger_事件('core.page_footer',compact($vars));
如果($page\u footer\u override)
{
返回;
}
phpbb检查和显示sql报告($request、$auth、$db);
$template->分配变量(数组)(
'DEBUG_OUTPUT'=>phpbb_generate_DEBUG_OUTPUT($db、$config、$auth、$user、$phpbb_dispatcher),
“翻译信息”=>(!empty($user->lang['TRANSLATION\u INFO'])?$user->lang['TRANSLATION\u INFO']:”,
'CREDIT_LINE'=>$user->lang('POWERED_BY','®;Forum Software©;phpBB Limited'),
'U_ACP'=>($auth->acl_get('a_')&!empty($user->data['is_registered'])?追加\U sid(“{$phpbb_admin_path}索引.$phpEx”,false,true,$user->session id:”)
);
//调用cron类型脚本
$call_cron=false;
如果(!defined('IN_CRON')&&&!$config['use_system_CRON']&&&&$run_CRON&&!$config['board_disable']&&!$user->data['is_bot']&&&!$cache->get('u CRON.lock_check'))
{
$call_cron=true;
$time\u now=(!empty($user->time\u now)&&is\u int($user->time\u now))?$user->time\u now:time();
//有旧锁吗?
如果(!empty($config['cron_lock']))
{
$cron_time=explode(“”,$config['cron_lock']);
//如果存在1小时锁,则不调用cron.php
如果($cron\u time[0]+3600>=$time\u now)
{
$call_cron=false;
}
}
}
//呼叫cron job?
如果($call\u cron)
{
全球$phpbb_集装箱;
/*@var$cron\phpbb\cron\manager*/
$cron=$phpbb_容器->获取('cron.manager');
$task=$cron->find_one_ready_task();
如果($任务)
{
$url=$task->get_url();
$template->assign_var('RUN_CRON_TASK','');
}
其他的
{
$cache->put(“cron.lock\u check”,true,60);
}
}
这是变量分配给模板的地方

$template->assign_vars(array(
        'DEBUG_OUTPUT'          => phpbb_generate_debug_output($db, $config, $auth, $user, $phpbb_dispatcher),
        'TRANSLATION_INFO'      => (!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] : '',
        'CREDIT_LINE'           => $user->lang('POWERED_BY', '<a href="https://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Limited'),

        'U_ACP' => ($auth->acl_get('a_') && !empty($user->data['is_registered'])) ? append_sid("{$phpbb_admin_path}index.$phpEx", false, true, $user->session_id) : '')
    );
$template->分配变量(数组)(
'DEBUG_OUTPUT'=>phpbb_generate_DEBUG_OUTPUT($db、$config、$auth、$user、$phpbb_dispatcher),
“翻译信息”=>(!empty($user->lang['TRANSLATION\u INFO'])?$user->lang['TRANSLATION\u INFO']:”,
'CREDIT_LINE'=>$user->lang('POWERED_BY','®;Forum Software©;phpBB Limited'),
'U_ACP'=>($auth->acl_get('a_')&!empty($user->data['is_registered'])?追加\U sid(“{$phpbb_admin_path}索引.$phpEx”,false,true,$user->session id:”)
);