Основной PHP, чтобы установить ширину столбца в Joomla
Я использую Joomla с начальной загрузкой для создания шаблона 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 ответ
Ну, похоже, это должно работать, если вы правильно установили параметры.
Вы на самом деле не говорите, что идет не так, то есть какой результат генерируется, поэтому немного сложно сказать точно, так что вот некоторая справочная информация и предложения, которые могут помочь вам понять это. Для разработки шаблонов вы можете найти больше на веб-сайте Joomla Docs по разработке шаблонов.
Предполагая, что ваш код находится в ваших шаблонах index.php
:
$this->params->get('sidebarLeftWidth','')
получает параметр шаблона с именемsidebarLeftWidth
, но если этот параметр недоступен, он устанавливает его в''
фактическиnull
,Имена параметров в вашем
get
должны быть определены с точно таким же написанием и прописными буквами, как в вашемtemplateDetails.xml
файл. Если не ваш$left
а также$right
может быть пустым. (Это поможет, если вы отредактируете свой вопрос, включив в него шаблон XML или его часть.)params
part является объектом JRegistry и возвращает смешанный тип в зависимости от того, что изначально сохранено в атрибуте имени объекта (обычно это строка, но это может быть все, что может обработать 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>';