Создание шаблона Joomla за 6 шагов. Шаг 5.
В предыдущих уроках данной темы мы сделали простой, но уже вполне пригодный шаблон для использования в системе Joomla.
Но в нем всегда будут отображаться три колонки, вне зависимости от того, есть в колонке какое-нибудь содержание или нет. Для шаблона CMS данный факт является недостатком. Статичный сайт меняется редко, но для динамического сайта под управлением Joomla нужно предоставить возможность администратору изменять содержание любой колонки без правки шаблона CSS. Поэтому перед нами стоит задача автоматически отключать или сворачивать колонку, если в ней нет никакого содержания.
Joomla 1.6 предоставляет простой способ определять количество модулей, которые генерируют содержание для определённой позиции. Таким образом, мы можем разместить проверку такого счетчика в PHP коде, чтобы скрыть пустые колонки и соответственно настроить шаблон. Код PHP для такой проверки будет выглядеть следующим образом:
<?php if($this->countModules('условие')) : ?> <!-делаем что-то, если условие выполняется--> <?php else : ?> <!-делаем что-то, если условие НЕ выполняется--> <?php endif; ?>
Условие - строка, в которой указывается имя позиции или комбинация имен позиции с ключевыми словами. За более подробной информацией о функции countModules
и правилах написания условий обращайтесь к документации по Joomla.
Для проверки работы функции можно вставить следующий код в конец раздела body в в файле index.php нашего шаблона:
left=<?php echo $this->countModules('left');?><br /> left and right=<?php echo $this->countModules('left and right');?><br /> left or right=<?php echo $this->countModules('left or right');?><br /> left + right=<?php echo $this->countModules('left + right');?>
После сохранения изменённого файла index.php и перезагрузки страницы сайта получим следующую картину (важная информация заключена в красный квадрат):
Рассмотрим подробнее, что получилось:
countModules ('left')
возвращает 3, потому что в позиции left три модуля выводят содержание;countModules('left and right')
возвращает 1, потому что в обеих позициях left и right присутствует содержание, выводимое модулями;countModules('left or right')
возвращает 1, потому, что либо в позиции left, либо в позиции right присутствует содержание, возвращаемое каким-либо модулем;countModules('left + right')
возвращает 4, потому что количество модулей, которые выводят содержание в позиции left и right равно четырем.
Теперь, когда есть представление о том, как проверить наличие содержания в позиции, нужно задействовать функцию countModule
, чтобы динамически изменять наш шаблон в соответствии с содержание колонок.
Решить задачу можно различными методами. В нашем шаблоне будет использоваться преимущество сеточной разметки. Мы будем изменять ширину колонки в зависимости от содержания.
Изменим файл index.php нашего шаблона.
Перед контейнером content добавим следующий код PHP:
<?php $leftcolgrid= "3"; $rightcolgrid= "3"; if ($this->countModules('left') == 0): $leftcolgrid = "0"; endif; if ($this->countModules('right') == 0): $rightcolgrid = "0"; endif; ?>
Здесь определяются две переменные, значение которых будет использоваться для составления имени класса, применяемого для колонки. А функция countModule
используется для определения наличия содержания в левой или правой колонке.
Код контейнера также изменим, чтобы изменять класс, применяемый к позиции, в зависимости от наличия содержания в колонке:
<div id="content" class="container_12"> <div id="sidebar" class="grid_<?php echo $leftcolgrid;?>"> <jdoc:include type="modules" name="left"style="xhtml"/> </div> <div id="maincolumn" class="grid_<?php echo(12-$leftcolgrid-$rightcolgrid);?>"> <jdoc:include type="modules" name="breadcrumbs" style="xhtml" /> <jdoc:include type="component" /> </div> <div id="sidebar-2" class="grid_<?php echo $rightcolgrid;?>"> <jdoc:include type="modules" name="right" style="xhtml" /> </div> </div>
Для основной колонки maincolumn имя класса будет формироваться как результат простого арифметического действия. А в результате мы получим класс соответствующий нужной ширине колонки.
Сохраним изменения в файле index.php. Для проверки действия нашего кода были сняты с публикации все модули, привязанные к позиции left. В результате, сайт с нашим шаблоном стал выглядеть следующим образом:
Обратите внимание, что ширина центральной колонки корректно изменилась. Если использовать предыдущую версию шаблона, то отсутствие содержания в левой колонке приведёт к простому смещению всего остального контента влево, что будет выглядеть на шаблоне неприглядно.
В следующем уроке мы изменим шаблон так, чтобы он не выводил код пустых блоков.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/wr4x14K4zAg/lessons.php


Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2025-04-08 » Горшочек, рисуй: 10 бесплатных сервисов для генерации картинок
- 2025-04-08 » SEO-продвижение в 2025 году: 15 трендов, без которых ТОП не светит
- 2025-03-14 » SPF-запись
- 2025-03-07 » SEO на маркетплейсах: как оптимизировать карточку товара для поисковой выдачи
- 2025-02-18 » Топ-10 бесплатных нейросетей для генерации изображений: лучшие ии генераторы 2024 года
- 2025-02-11 » Критическая уязвимость в 1С-Битрикс
- 2025-02-11 » Google Search Console: руководство для начинающих вебмастеров
- 2025-02-11 » Методы измерения результативности рекламных кампаний: плюсы и минусы
- 2025-02-11 » Тренды SEO в 2025 году
- 2025-02-10 » Свой Google в локалке. Ищем иголку в стоге сена
- 2025-01-29 » SEO — это комплексная работа. Шесть главных факторов ранжирования сайтов
- 2025-01-29 » Гайд для главной страницы e-commerce сайта: как оформить, чтобы повысить конверсию
- 2025-01-20 » Krea AI выпустила бесплатную функцию преобразования изображений в 3D-объекты — их можно вращать и вписывать в фотографии
- 2025-01-19 » Отзывы на Яндекс Картах: как пройти модерацию
- 2025-01-15 » Топ-6 лучших российских нейросетей, в которых можно генерировать тексты и изображения бесплатно и без VPN
- 2025-01-14 » 15 бесплатных способов узнать, чем интересуется ваша аудитория
- 2025-01-11 » Бездепозитные бонусы в казино за регистрацию с выводом: особенности и возможности получения
- 2025-01-09 » Новая модель LAM способна выполнять задачи в Word
- 2024-12-26 » Универсальный промпт для нейросети: как выжать максимум из ChatGPT, YandexGPT, Gemini, Claude в 2025
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
Неудача — это не единичное внезапное событие. Ваш провал не возникает внезапно. Напротив, неудача появляется, когда вы совершаете одни и те же ошибки изо дня в день. Джим Рон |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.
Или напишите нам в WhatsApp
Или напишите нам в WhatsApp