Я использую Joomla с бутстрапом для создания шаблона Joomla. У меня есть 3-х столбцовый макет (контейнер объемом 12, поэтому Bootstrap: span12). Я устанавливаю параметры в бэкэнде Joomla, чтобы задать ширину столбцов $ left и $ right, а затем повторять эти переменные в моем шаблоне, чтобы установить ширину столбца в левом и правом столбцах (в 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; ?>"
Ну, похоже, что он должен работать, если вы правильно установили параметры.
Вы на самом деле не говорите, что происходит не так, т. Е. Какой результат генерируется, поэтому немного сложно точно сказать, так что вот некоторые справочные данные и предложения, которые могут помочь вам разобраться. Для разработки шаблонов вы можете найти больше на веб-сайте Joomla Docs в разделе « Разработка шаблонов» .
Предполагая, что ваш код находится в ваших шаблонах index.php
:
$this->params->get('sidebarLeftWidth','')
получает параметр шаблона под названием sidebarLeftWidth
, но если этот параметр недоступен, он устанавливает его ''
фактически null
.
Имена параметров в вашем get
должны быть определены с точно такой же орфографией и капитализацией, что и в файле templateDetails.xml
. Если не ваши $left
и $right
могут быть пустыми. ( Это поможет, если вы отредактируете свой вопрос, чтобы включить шаблон XML или его часть. )
Параметр params
является объектом JRegistry и возвращает смешанный тип в зависимости от того, что изначально было сохранено в атрибуте name объекта (обычно это строка, но это может быть все, что может обрабатывать PHP). Чтобы принудительно изменить значение, вы можете изменить свои линии get
чтобы отличать результаты как целые числа и возвращать 0, если ничего не найдено:
$left = (int) $this->params->get('sidebarLeftWidth', 0);
$right = (int) $this->params->get('sidebarRightWidth', 0);
Проверьте содержимое ваших params
в вашем отладчике, то есть проверьте значения каждого из ваших именованных параметров в объекте $this->params
. Если вы не используете IDE, попробуйте сделать print_r()
:
echo '<pre>' . print_r($this->params, true) . '</pre>';