在Joomla中设置列宽的基本php

时间:2013-09-03 01:57:27

标签: php joomla joomla-template joomla3.1

我正在使用Joomla和bootstrap创建一个Joomla模板。我有一个3列布局(容器总共12个,所以Bootstrap:span12)。我在Joomla后端设置参数来设置$ left和$ right列宽,然后在我的模板中回显这些变量来设置左右div列的宽度(在index.php中)

但是,我想在模板中使用一个简单的逻辑位来根据后端参数中输入的$ left和$ right值自动计算和设置中间列的跨度值。

我确实知道PHP几乎为零,所以请原谅我这段代码的粗糙。我只想检查我所做的是正确的还是简单的愚蠢,还是有更好的方法。这就是我在做什么......

<?php
$left = $this->params->get('sidebarLeftWidth', '');
$right = $this->params->get('sidebarRightWidth', '');

$grid = 12;
$span = $grid - ( $left + $right );
?>

然后在我的html中设置我的中间列的宽度 - 简单地......

class="span<?php echo $span; ?>"

1 个答案:

答案 0 :(得分:1)

嗯,如果你正确设置了参数,它看起来应该可行。

你实际上并没有说出出了什么问题,即产生了什么结果因此有点难以确切地说出来,所以这里有一些背景信息和建议可以帮助你解决问题。对于模板开发,您可以在Joomla Docs上的Template Development网站上找到更多信息。

假设您的代码位于模板中index.php

  1. $this->params->get('sidebarLeftWidth','')正在获取名为sidebarLeftWidth的模板参数,但如果该参数不可用,则会将其设置为''有效null

  2. get中的参数名称应使用与templateDetails.xml文件中完全相同的拼写和大小写进行定义。如果不是,$left$right可能为空。 (如果您编辑问题以包含模板XML或其中的一部分,将会有所帮助。

  3. params部分是JRegistry object,并根据最初存储在对象的name属性中的内容返回混合类型(通常这是一个字符串,但它可以是任何内容PHP可以处理)。要强制使用in值,您可能需要更改get行以将结果转换为整数,如果未找到任何内容则返回0:

    $left = (int) $this->params->get('sidebarLeftWidth', 0);

    $right = (int) $this->params->get('sidebarRightWidth', 0);

  4. 检查调试器中params的内容,即检查$this->params对象中每个命名参数的值。如果您没有使用IDE,请尝试执行print_r()

    echo '<pre>' . print_r($this->params, true) . '</pre>';