Комментарии

Применения синтаксиса подчеркивания
( 1 Проголосовало )

Так, мы почти у цели нашего изыскания. В завершение рассматриваемого здесь примера рассмотрим один весьма изящный прием программирования. Если попытаться найти в кодовой базе Joomla места, где применяется метод JHtmlString:: truncate (), то мы не обнаружим ничего подобного, а вместо этого — строки кода, аналогичные следующей.

В этой строке кода применяется другой способ вызова того же самого метода truncate (), и делается это с помощью метода с синтаксисом подчеркивания (_) из класса JHTML. (Следует иметь в виду, что в именах классов языка РНР регистр не учитывается, и поэтому имена JHTML и JHtml обозначают один и тот же класс. Но нам приходится указывать имя JHtml, чтобы придерживаться принятых в Joomla условных обозначений имен, тогда как для самого кода РНР это не имеет никакого значения.)

Метод JHtml::__() выполняет очень необычную, но замечательную функцию, интерпретируя первый свой аргумент следующим образом. Первая половина этого аргумента (string) обозначает часть имени класса, а полное имя класса в данном случае следующее: JHtmlString (напомним, что регистр в нем особого значения не имеет). Вторая половина данного аргумента обозначает вызываемый метод (в данном случае — truncate ()). А остальные аргументы метода с синтаксисом подчеркивания передаются непосредственно вызываемому методу. В рассматриваемом здесь примере в качестве этих аргументов передаются вводный текст и его максимальная длина.

Таким образом, метод JHtml::_() автоматически загружает нужный класс! Это означает, что нам больше не нужно беспокоиться о загрузке класса, а следовательно, мы можем исключить строку кода с вызовом метода JLoader:: register () из файла нашей компоновки. Здесь риведен окончательный вариант кода из первого примера замещения компоновки с использованием синтаксиса подчеркивания, выделенного в соответствующей строке кода полужирным.

Как видите, в этом коде отсутствует строка с вызовом метода JLoader:: register (). Но дает он такой же результат, как и прежде.
В этой статье мы рассмотрели немало важных тем, но весь его материал сводится к следующему.

  1. Мы создали новую подпапку для хранения файла замещения компоновки в нашем новом шаблоне и скопировали в нее файл стандартной компоновки.
  2. Мы видоизменили файл замещения компоновки в соответствии с нашими потребностями. В данном случае мы просто добавили немного предварительно просматриваемого текста под заголовком каждой статьи на странице.

Где бы теперь ни отображался данный модуль с помощью шаблона beez_20_copy, для этой цели будет использоваться файл видоизмененной компоновки вместо стандартной.


Понравился материал? Пригодилась информация? Плюсани в социалки!


Теги:
 
Похожие новости