X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Joomla - пусть тайное станет явным
Demogorgon
Demogorgon
Topic Starter сообщение 23.4.2012, 22:17; Ответить: Demogorgon
Сообщение #1


У Джумлы есть один секрет: где всё понятно - Джумлы нет.

День добрый.

Представляю вашему вниманию несколько рецептов для начинающих джумловодов.

Я не буду расписывать в деталях, как пользоваться административной панелью движка. Мне кажется, она довольно удобна в использовании и при должном желании с нею можно разобраться и самостоятельно. К тому же, руководств по этому делу полным полно.

Примечание о файлах и папках: в статье я использую пути по отношению к папке, куда установлена 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+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Если двигаться не будешь, ни к чему ума палата... Webeffector - жизнь требует продвижения
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Разработка сайтов Joomla Wordpress Opencart
Разработка, верстка, оптимизация веб сайтов.
77 WoWeb 40433 3.9.2023, 16:52
автор: Sawich
Открытая тема (нет новых ответов) [Продам] базы сайтов на CMS Wordpress/Joomla/Drupal/Magento/...
14 phosphoruss 13765 16.8.2023, 15:27
автор: SmmPanelUS
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыТехподдержка сайтов на движках Joomla, Netcat, Opencart
5 54web 4290 22.1.2023, 13:27
автор: kikimora17
Открытая тема (нет новых ответов) Доработка сайта Joomla + VirtuMart
0 Intuit_Design 1189 4.2.2021, 15:05
автор: Intuit_Design
Горячая тема (нет новых ответов) ВНИМАНИЕ: Тема имеет прикрепленные файлыКомплекс услуг по движку Joomla и верстка
61site.ru - Верстаем и делаем сайты под ключ
321 lostprophet 435647 1.7.2020, 12:02
автор: shamil918


 



RSS Текстовая версия Сейчас: 20.4.2024, 15:17
Дизайн