У Джумлы есть один секрет: где всё понятно - Джумлы нет.
День добрый.
Представляю вашему вниманию несколько рецептов для начинающих джумловодов.
Я не буду расписывать в деталях, как пользоваться административной панелью движка. Мне кажется, она довольно удобна в использовании и при должном желании с нею можно разобраться и самостоятельно. К тому же, руководств по этому делу полным полно.
Примечание о файлах и папках: в статье я использую пути по отношению к папке, куда установлена CMS. Например, если корневая директория Joomla расположена по адресу _http://мой-сайт.ру/joomla, то, говоря о файле index.php, я буду подразумевать файл _http://мой-сайт.ру/joomla/index.php.
Кроме того, при создании новых файлов и каталогов внимательно следите за регистром символов. Он должен быть ровно таким, который указан в статье. Все текстовые файлы должны быть закодированы в UTF-8 без BOM.
Следует также заметить - всё нижеперечисленное относится к Джумле версии 1.7. Однако, по большому счёту, и в других её версиях принцип примерно такой же.
Ну-с, приступим.
Языковые файлы
[img]http://janews.ru/images/external/jazyk.jpg[/img]
В языковых файлах хранится вся (ну, или почти вся) текстовая информация, которую выводит Joomla. Файлы для разных языков хранятся в разных папках (за одним исключением, о котором позже) и имеют расширение ".ini". Например, файлы русского языка находятся в папке language/ru-RU, а для английского - в language/en-GB.
Название файла указывает на сущность, которой он соответствует. Файл ru-RU.com_content.ini относится к компоненту com_content. Файл ru-RU.mod_footer.ini - к модулю mod_footer. В файле ru-RU.ini находятся строки общего назначения. В рамках данной статьи файлы, чьи имена заканчиваются на ".sys.ini", нам не нужны.
Формат данных в языковых файлах чрезвычайно прост:
Идентификатор="Значение"
Идентификатор используется для доступа к строке из PHP-кода. Пусть есть строка с идентификатором JPAGETITLE, тогда, чтобы загрузить её содержимое, можно использовать такой код:
JText::_('JPAGETITLE')
Очевидно, что, изменяя значения, расположенные в кавычках, можно повлиять на то, какой текст будет отображаться на Вашем сайте. Но делать это, напрямую модифицируя языковые файлы, не рекомендуется. Ибо тогда Вы лишитесь возможности обновления движка и установленных расширений. При каждом обновлении содержимое этих файлов с большой вероятностью будет затёрто, и все внесённые изменения потеряются.
Есть другой путь. Использовать специальные "перегрузочные" файлы. Они располагаются в папке language/overrides и имеют имена подобные следующим: ru-RU.override.ini, en-GB.override.ini, итп (для каждого языка - свой). Помните, я говорил об исключении? Вот оно - файлы перегрузки для всех языков находятся в одной папке.
Итак, для того, чтобы изменить текст, соответствующий, к примеру, идентификатору JPAGETITLE, нужно в файл ru-RU.override.ini добавить следующую строку:
JPAGETITLE="%1$s | %2$s"
Вот и всё.
Небольшая ремарка. Если идентификатор, который Вы собираетесь переопределить, уже присутствует в файле, добавлять новую строку не надо, достаточно просто отредактировать соответствующее значение.
Кстати, Вам, наверно, интересно, что за каракули я написал в вышеприведённом примере? Поясню. Переопределив JPAGETITLE таким образом, можно добиться того, чтобы в тайтле страниц в качестве разделителя между названиями страницы и сайта использовалась вертикальная черта, а не тире.
Шаблоны модулей
[img]http://janews.ru/images/external/shablon.jpg[/img]
Шаблон (или макет) определяет, как модуль будет выглядеть при визуализации. То есть, по сути, формирует код, который в конечном итоге попадает на страницу. Поле "Альтернативный макет" (вкладка "Дополнительные параметры" настроек модуля) позволяет выбрать используемый в данный момент макет.
Всё вышесказанное относится ко всем стандартным модулям и большинству модулей сторонних разработчиков. Однако иногда встречаются экземпляры, не поддерживающие стандартный механизм шаблонизации Joomla. В этом случае приёмы, описанные в этой главе, могут быть неприменимы.
Если стандартный макет модуля нас устраивает, то всё хорошо - работаем и не напрягаемся. Но вдруг нам чего-то не хватает? Со мной такое случалось не раз.
К примеру, есть стандартный модуль футера (или подвала), который отображает информацию об авторских правах. Но его шаблон, использующийся по умолчанию, добавляет открытые внешние ссылки на сайты движка и лицензии GNU GPL. С точки зрения СЕО - это явно лишнее.
Как быть в таких случаях?
Первый и самый простой ответ, который приходит на ум - исправить шаблон модуля.
Отправляемся в папку модуля, отыскиваем там каталог tmpl. Например, для футера это будет /modules/mod_footer/tmpl. Для других модулей достаточно заменить footer на соответствующее название.
Видим файл default.php. Он отвечает за макет, используемый модулем по умолчанию. Кроме того, здесь могут находиться и другие файлы. Часть из них может представлять другие шаблоны, а часть - быть вспомогательными. Joomla отличает одни от других по наличию подчёркивания в имени файла. То есть my.php - это макет с именем my, а my_item.php - вспомогательный файл.
Итак, нам надо изменить способ отображения модуля. Мы решили исправить шаблон и нашли файлы, соответствующие предустановленным шаблонам. Но тут в нашу сообразительную голову приходит мысль - а не возникнет ли при модифицировании той же проблемы, что и с языковыми файлами? Помните? С обновлением? Помните - хорошо.
Подумав еще немного, понимаем, что непременно возникнет. Ибо файлы, поставляемые с движком, при обновлении перезаписываются. То же касается и обновления отдельных модулей.
Какой же выход предлагает нам Joomla?
CMS ищет файлы макетов в нескольких местах. В каталоге tmpl папки модуля, о котором мы говорили выше. А также во всех установленных шаблонах сайта по пути templates/html/, где - название шаблона, а - название данного модуля. При наличии одинаковых файлов в каталоге модуля и текущего (!) шаблона сайта будет использован файл из шаблона.
Поясню на примере. Пусть в папке модуля mod_footer имеются два файла: default.php и my.php. На сайте используется шаблон beez5 (он входит в стандартную поставку Joomla). Кроме того, в папке templates/beez5/html/mod_footer наличествует файл default.php, а в папке templates/atom/html/mod_footer (заметьте, это уже другой сайтовый шаблон) - файл my.php.
Тогда при выборе в настройках модуля макета default (по умолчанию) будет использован файл из шаблона beez5. А если выбрать макет my, Джумла проигнорирует файл из шаблона atom и применит одноимённый макет из папки модуля. Так как atom не является текущим шаблоном.
Ну, теперь можно легко смекнуть, что для решения нашей задачи можно добавить новый макет в папку модуля или одного из шаблонов. Не забывайте, однако, о только что озвученном правиле переопределения.
На первых порах за основу рекомендую брать уже существующие макеты соответствующих модулей. Просмотрев исходный код (благо в большинстве своём он довольно простой), можно понять принцип работы макета, а также - какие данные будут доступны Вам при написании собственного.
Удаление слова "Подробности"
[img]http://janews.ru/images/external/podrobnosti.jpg[/img]
Напоследок - более конкретный кулинарный рецепт.
По неведомой мне причине Joomla предваряет детали статей (вроде даты публикации или названия категории) словом "Подробности", которое, на мой взгляд, там совершенно не к месту. Если Вы разделяете моё мнение, то этот приём для вас.
Чтобы расправиться с ненавистным словом, нам нужно отправиться в папку templates/html/com_content, где - название используемого шаблона сайта. Если её не существует, немедленно создаём. Именно сюда мы поместим файлы макетов статей, которые должны переопределить предусмотренные в Джумле по умолчанию.
Теперь направляемся в каталог /components/com_content/views. Нас интересуют 4 директории, находящиеся здесь: archive, article, category и featured.
Заходим в первую из них - archive, затем - в поддиректорию tmpl. Копируем файл default.php в папку templates/html/com_content/archive.
Проделываем подобные операции со всеми четырьмя папками. В результате в каталоге templates/html/com_content должны появиться папки с теми же названиями, каждая из которых содержит файл default.php.
Открываем поочерёдно эти файлы, ищем в них строчку с текстом "article-info-term". Выглядеть она будет примерно вот так:
<dt class="article-info-term"><!--?php echo JText::_('COM_CONTENT_ARTICLE_INFO'); ?--></dt>
Удаляем или комментируем эту строку. Будьте внимательны - удалить нужно только её одну, соседние трогать нельзя. Сам когда-то таким образом попал впросак.
Ну, вот и всё, мы избавились от надоедливого словечка "Подробности".
За сим откланиваюсь. Спасибо за внимание. Надеюсь, мои потуги были не напрасны, и сей манускрипт будет Вам полезен.
О, Джумла - я помню чудное мгновенье... А после - хоть не вспоминай.
[img]https://masterwebs.ru/sp/admitad-konkurs.jpg[/img]
Admitad.com - агрегатор партнерских программ с оплатой за действие пользователя. Выбор множества выгодных предложений для вашего трафика.
Обсудить на форуме.
[img]https://masterwebs.ru/sp/maxtrust-konkurs.jpg[/img]
Maxtrust.ru - сеть по продаже VIP-товаров. Высокий заработок для качественного трафика - от 270$ за 1000 посетителей
Обсудить на форуме.
Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|