Основной 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:

  1. $this->params->get('sidebarLeftWidth','') получает параметр шаблона с именем sidebarLeftWidth, но если этот параметр недоступен, он устанавливает его в '' фактически null,

  2. Имена параметров в вашем get должны быть определены с точно таким же написанием и прописными буквами, как в вашем templateDetails.xml файл. Если не ваш $left а также $right может быть пустым. (Это поможет, если вы отредактируете свой вопрос, включив в него шаблон XML или его часть.)

  3. params part является объектом JRegistry и возвращает смешанный тип в зависимости от того, что изначально сохранено в атрибуте имени объекта (обычно это строка, но это может быть все, что может обработать PHP). Чтобы заставить в стоимости вы можете изменить свой 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>';

Другие вопросы по тегам