You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP7.4环境下Joomla模板TransPro函数重声明错误求助

Joomla模板TransPro错误修复方案(PHP7.4环境)

环境信息

  • PHP版本:7.4
  • 涉及模板:TransPro

错误详情

错误页面:https://voltshost.com.br/aarontrans/
错误提示:

Fatal error: Cannot redeclare sp_button_group_addon() (previously declared in /home/storage/f/7e/46/voltshost2/public_html/aarontrans/templates/transpro/sppagebuilder/addons/button_group/site.php:15) in /home/storage/f/7e/46/voltshost2/public_html/aarontrans/templates/transpro/sppagebuilder/addons/button_group12/site.php on line 15

问题核心

PHP不允许同一作用域内重复定义同名函数,当前sp_button_group_addon()函数在button_group/site.php和button_group12/site.php两个文件中被重复声明,触发致命错误。

修复方案

方案1:删除冗余插件目录

检查button_group12目录是否为重复生成的冗余插件:

  • 若button_group目录已能正常提供按钮组功能,直接删除transpro/sppagebuilder/addons/button_group12整个目录即可解决冲突。

方案2:修改函数名避免冲突

如需保留button_group12的功能,修改该目录下site.php的函数与注册名:

  1. 打开/transpro/sppagebuilder/addons/button_group12/site.php文件
  2. 将所有sp_button_group_addon替换为唯一名称(例如sp_button_group12_addon)
  3. 同步修改插件注册代码:
    原代码:
    AddonParser::addAddon('sp_button_group','sp_button_group_addon');
    
    修改为:
    AddonParser::addAddon('sp_button_group12','sp_button_group12_addon');
    
  4. 保存文件后刷新页面测试。

方案3:添加函数存在性检查(临时兼容)

若不想删除或重命名,可给函数添加存在性判断,避免重复声明:
修改button_group12/site.php中的函数定义:
原代码:

function sp_button_group_addon($atts, $content){
    // 函数内容
}

修改为:

if (!function_exists('sp_button_group_addon')) {
    function sp_button_group_addon($atts, $content){
        // 原函数内容保持不变
    }
}

注意:该方案可能导致button_group12的插件功能无法正常触发(优先使用已存在的函数),仅作为临时兼容手段。

参考文件代码(button_group/site.php)

<?php
/**
 * @package SP Page Builder
 * @author JoomShaper http://www.joomshaper.com
 * @copyright Copyright (c) 2010 - 2016 JoomShaper
 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
*/
//no direct accees
defined ('_JEXEC') or die ('restricted aceess');

AddonParser::addAddon('sp_button_group','sp_button_group_addon');
AddonParser::addAddon('sp_button_group_item','sp_button_group_item_addon');

$sppbButtonGroup_margin = '';
function sp_button_group_addon($atts, $content){
    global $sppbButtonGroup_margin;

    extract(spAddonAtts(array(
        'alignment' =>'',
        'margin'    =>'',
        'class'     =>''
        ), $atts));

    $sppbButtonGroup_margin = $margin;

    $output  = '<div class="sppb-addon sppb-addon-button-group ' . $alignment . ' ' . $class . '">';
    $output .= '<div class="sppb-addon-content" style="margin:-' . (int) $margin . 'px;">';

    $output .= AddonParser::spDoAddon($content);

    $output .= '</div>';
    $output .= '</div>';

    $sppbButtonGroup_margin = '';

    return $output; 
}

内容的提问来源于stack exchange,提问作者Benhur Augusto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 16:46:25