我有一个Joomla模块
在Default.php文件中,调用了一个函数和一个来自xml文件的变量。
但是它找不到变量函数。
$mod_circle_display1不是由函数读取;
该函数直接看到均值else,函数的输出是column1 (这就是column1 )。
我的Default.php
require_once __DIR__ . '/function.php';
$check = CheckDisplay();
?>
<div class="<?php echo CheckDisplay()?> <?php echo $mod_circle_move1;?>"
style="<?php echo $mod_circle_display1;?>">
<div class="<?php echo CheckDisplay()?> <?php echo $mod_circle_move2;?>"
style="<?php echo $mod_circle_display2;?>">
<div class="<?php echo CheckDisplay()?> <?php echo $mod_circle_move3;?>"
style="<?php echo $mod_circle_display3;?>">
<div class="<?php echo CheckDisplay()?> <?php echo $mod_circle_move4;?>"
style="<?php echo $mod_circle_display4;?>">
我的Function.php
function CheckDisplay ()
{
/*global $mod_circle_display1; is not worked*/
/*global $mod_circle_display2; is not worked*/
/*global $mod_circle_display3; is not worked*/
/*global $mod_circle_display4; is not worked*/
$mod_circle_display1;
$mod_circle_display2;
$mod_circle_display3;
$mod_circle_display4;
$mod_circle_displayon = "display:none !important";
$mod_circle_displayoff = "padding:0";
$mod_circle_displayres1 = "column4";
$mod_circle_displayres2 = "column2";
$mod_circle_displayres3 = "column1";
if (($mod_circle_display1 == $mod_circle_displayoff)AND($mod_circle_display2 == $mod_circle_displayoff)AND
($mod_circle_display3 == $mod_circle_displayoff)AND($mod_circle_display4 == $mod_circle_displayoff))
{
return $mod_circle_displayres1;
}
elseif (($mod_circle_display1 == $mod_circle_displayoff)AND($mod_circle_display2 == $mod_circle_displayon)AND
($mod_circle_display3 == $mod_circle_displayoff)AND($mod_circle_display4 == $mod_circle_displayon))
{
return $mod_circle_displayres2;
}
else { return $mod_circle_displayres3; }
我的mod_circle.xml
<field name="mod_circle_display1"
type="list"
default="padding:0"
label="MOD_CIRCLE_DISPLAY1"
description="MOD_CIRCLE_DISPLAY1">
<option value="display:none !important">Yes</option>
<option value="padding:0">No</option>
</field>
and ...
我的mod_circle.php
defined( '_JEXEC' ) or die( 'Restricted access' );
require_once __DIR__ . '/helper.php';
$mod_circle_background = $params->get('mod_circle_background');
$mod_circle_widthrl = $params->get('mod_circle_widthrl');
$mod_circle_display1 = $params->get('mod_circle_display1');
$mod_circle_image1 = $params->get('mod_circle_image1');
$mod_circle_opacity1 = $params->get('mod_circle_opacity1');
$mod_circle_width1 = $params->get('mod_circle_width1');
$mod_circle_height1 = $params->get('mod_circle_height1');
$mod_circle_margin1 = $params->get('mod_circle_margin1');
$mod_circle_radius1 = $params->get('mod_circle_radius1');
$mod_circle_circle1 = $params->get('mod_circle_circle1');
$mod_circle_circletime1 = $params->get('mod_circle_circletime1');
and
$mod_circle_display2 = $params->get('mod_circle_display2');
Etc.
$mod_circle_display3 = $params->get('mod_circle_display3');
Etc.
$mod_circle_display4 = $params->get('mod_circle_display4');
Etc.
发布于 2018-08-19 00:16:17
首先,就PHP脚本而言,您低估了$mod_circle_display1是不存在的。
它可能(可以这么说)存在于XML中,但不存在于PHP中
您需要首先将XML文件中所需的值解析为php变量( $mod_circle_display1 ),然后将$mod_circle_display1设置为全局变量(请参阅本教程:https://www.w3schools.com/php/php_xml_simplexml_read.asp)。
您甚至可以从函数内部将XML文件读取到$mod_circle_display1中,这样就不需要将$mod_circle_display1设置为全局变量
https://stackoverflow.com/questions/51909702
复制相似问题