среда, 31 августа 2011 г.

Создание шаблона для Joomla 1.7. Изменение представления модуля CMS Joomla под заданный дизайн. Часть 4


Доброго времени суток. В предыдущих постах мы рассмотрели создание шаблона: структуру шаблона CMS Joomla, верстка шаблона, определение позиций для модулей CMS Joomla.
Но при отображение модулей и основного контента нашего сайта не вписывается в общий дизайн сайта. И это правильно, ведь отображение как модулей, так и компонент в нашем случает будет по умолчанию.
В этой статье я хотел бы рассказать о том, как изменить отображения модулей и компонент под дизайн сайта, не изменяя отображений по умолчанию. А также закрепить ранее полученные знания по изменению позиции для модулей. Задача поставлена, давайте приступим к созданию шаблона для Joomla, а точнее продолжим создавать наш шаблон.
Первое на чем бы я хотел остановиться – поместить модуль поиска на позицию «find». Давайте это сделаем, заходим в админпанель CMS Joomla. В основном меню переходим Расширения-> Менеджер модулей (если Вы не очень хорошо разбираетесь в интерфейсе Joomla, то Вам поможет пост про интерфейс CMS Joomla):
Выбор позиции для модуля
Чтобы долго не искать данный модуль введем фильтр (выберем «Сайт» и «Поиск»). После этого щелкаем по модулю с заголовком «Поиск», который отображается на всех страницах.
В следующем окне жмем «Выбор позиции»:
Выбор позиции для модуля "Поиск"
И в открывшемся окне включаем фильтр (выбираем «Шаблон» и название нашего шаблона для joomla, в моем примере это «lesson») и жмем по позиции «find»:
Выбор позиции для модуля у установленного шаблона
Проделав вышеперечисленные действия, мы тем самым выбрали для модуля «Поиск» позицию «find». Можете посмотреть на Ваш сайт, теперь в верхнем левом углу появился поиск по сайту. Но выглядит наш поиск, прямо скажем, не ахти. Вот тут мы и переходим ко второй части нашего поста.
Для того, чтобы шаблон для CMS Joomla соответствовал эскизу необходимо не только правильно сверстать каркас, но также и определить отображение для модулей Joomla, соответствующее дизайну нашего шаблона.
Чтобы не изменять стандартное представление модулей и компонент в CMS Joomle, существует следующий ход:
В папке с шаблоном создаем папку «html» и в нее помещаем подпапки необходимых для изменения модулей в нашем случае «mod_search» и копируем в нее шаблон представления для данного модуля, который находится в: /modules/<mod_название модуля>/tmpl/ (в нашем случае /modules/mod_search/tmpl/default.php ). И этот файл мы изменяем по своему усмотрению (ну конечно согласно заданного эскиза :)).
Давайте, рассмотрим, как ведет себя joomla. Когда Вы открываете страницу, то cms смотрит как ее отобразить, для этого она заглядывает в папку с выбранным шаблоном, после она смотрит есть и ли папка «html» и если да, то смотрит какие модули и компоненты необходимо отобразить не стандартным способом, если же данной папки нет, то она отображает модули так как они описаны в стандартном представлении (/modules/<название модуля>/tmpl/default.php). Вот в принципе и все!!!
Изменяя представления модулей в своем шаблоне (а точнее в подпапке html) Вы тем самым не нарушаете общую структуру CMS Joomla и сохраняете возможность быстро и качественно изменять вид Вашего сайта, который работает на данном движке.
На этом статья про создание шаблона для CMS joomla, а точнее изменение представления модулей CMS Joomla под дизайн сайта закончена.
В следующем посте мы рассмотрим как добавить дополнительные параметры к шаблону, которые можно изменять из админки.
Всем успехов в разработке новых и интересных шаблонов для CMS Joomla.

Понравилась статья? Поблагодарить автора:

Введите e-mail адрес:



22 комментария:

  1. здравствуйте,спасибо практически все получилось,НО как сделать так чтобы при нажатий на пункт меню из левой колонки ,отбражался контент в центральной колонке?целый день бьюсь(

    ОтветитьУдалить
  2. Здравствуйте, так сразу и не скажу, да и требование, если честно, не совсем понял. Вот посмотрите тут: http://zloykolobok.blogspot.com/2011/06/joomla-16.html может натолкнет на мысль.

    ОтветитьУдалить
  3. нет,с меню я разобрался
    http://s017.radikal.ru/i442/1110/f7/858526792efc.jpg
    если не трудно добавишь меня в скайп g_shamil_a

    ОтветитьУдалить
  4. ну правильно, создать материал, а зпетм при создании меню выбрать в тип меню материал и указать этот материал. Тогда при нажатии на данный пункт меню будет открываться этот материал.

    ОтветитьУдалить
  5. ну не открывается(

    ОтветитьУдалить
  6. Привет! Все хорошо и доходчиво описано, так держать! :) Но, тык сказать без ложки дегтя не получается ) Краткость - сестра таланта, но все же не мешало бы некоторые моменты по подробней рассмотреть. Например касаемо модулей, описано, что в этой папке (html) что-то должно лежать, но вот что именно должно лежать? Модуль целиком или какие-то определенные файлы?

    ОтветитьУдалить
  7. Привет zigurath. Там же все описано: в папке html нужно положить папку с названием модуля (например mod_search), а в нее уже ложите шаблон самого модуля. И уже меняя шаблон в этой папке Вы изменяете вид данного модуля. Все просто. Благодаря этому Вам не надо лезть в сами мозги Joomla для изменения шаблонов расширений.

    ОтветитьУдалить
  8. То есть, целиком модуль класть и у уже эту копиию и редактировать? Если так, то теперь все понятно! :) Спасибо за помощь, да и за статьи, очень полезные! Жду свежачка!

    ОтветитьУдалить
  9. zigurath, нет весь модуль туда ложить не надо, только его шаблон

    ОтветитьУдалить
  10. ЗломуКОлобку респект.
    Кратко и по делу. Вез воды и размазывания очевидного.

    ОтветитьУдалить
  11. Помогите, пожалуйста! Как изменить цвет подсветки в результатах поиска на моем сайте? Цвет подсветки и слова результатов поиска сливаются. Ничего толком не видно. Подскажите кто знает?!

    ОтветитьУдалить
  12. А вот у меня ничего не получается :(

    Для практики делал как написано у тебя Ромчик:
    1) Указал модулю позицию (модуль появился на сайте);
    2) Создал папку html в папке моего шаблона;
    3) Указал в файле templateDetails.xml -> html (хотя пробовал из без этого);
    4) Перекинул в папку html шаблон default.php из www\modules\mod_search\tmpl
    5) Переименовал папку стандартного шаблона в www\modules, чтобы проверить как Joomla обращается в моей папке html.
    В итоге, модуль который я разместил на сайте пропадает. Что я не правильно делаю?

    ОтветитьУдалить
    Ответы
    1. Если Вы хотите поменять представление mod_search, то в папку /html/mod_search помещаете файл default.php из папки, которую Вы указали в 4 пункте. Для проверки измените название этого файла в /modules/mod_search/tmpl

      Удалить
  13. Конечно в папку /html/mod_search, но всё-равно не получается. Что-бы не делал все изменения реагируют только на файл в папке /modules/mod_search/tmpl.

    Только вот для проверки изменяю не имя файла default.php, а имя папки /modules/mod_search. Может в этом загвоздка?

    ОтветитьУдалить
  14. Да, проблема в этом нужно переименовать сам файл. А лучше изменить стиль отображения в html/mod_search И Вы должны будете увидеть эти изменения

    ОтветитьУдалить
  15. Этот комментарий был удален автором.

    ОтветитьУдалить
  16. огромное спасибо Ромчик за такие доступные статьи по джумле

    ОтветитьУдалить
  17. А вот у меня целых три проблемы.
    1. После удаления раскраски не остается никаких границ блоков. При просмотре позиций добавлением к адресу сайта "?tp=1" границы блоков тоже не видны, только названия (find, footer etc.). Что, у других тоже так?
    И как мне выйти из положения - восстановить раскраску?

    2. При установке модулей у меня ничего не устанавливается - наверное все устанавливали Джумлу с демонстрационным контентом, там конечно долны быть какие-то модули. А я устанавливал пустую Джумлу, без контента. На локальный сервер WAMPSERVER.

    3. Одна из позиций, а именно "find" попадаен не на свое, а на чужое место. Дело в том, что я верстал разметку сам и блок find всталял как-то иначе. Но самое главное, когда я под контейнером "menu" разместил "clear" (причем в CSS он у меня описан как "div#clear:right", по другому все не работало и происходило смещение блоков. Когда я это сделал, все блоки встали на свои места, но под полоской menu очистилась узкая 40px полоска с расцветкой обертки. И я ее решил испольцовать для блока навигации, так и описал и в jdoc, и в templateDetails. И она прописалась под присвоенным ей названием "navigation". Так вот теперь позиция "find" у меня размещается не там, где она прописана (в правом краю верхней строки), а влезает в очищенную область "navigation", правда не вытесняя ее, а расширяя - размещается вместе с ней. В одной области получается как бы два блока "navigation" и "find".

    Если кто-то что-то понял из моего сумбурного изложения, посоветуйте что-нибудь путное, хоть что сможете.
    Спасибо.

    ОтветитьУдалить
  18. Здравствуйте! Пользуясь Вашей дискссией с "Анонимным" (он очень помог), я отремонтировал Ваш index.html и соответствующий template.css, а потом переустановил Ваш шаблон. Все благополучно встало.
    Но: Джумлу тоже пришлось переустановить вместе с контентом и этот контент сразу же без всяких моих усилий разместился на блоге (т.е. на центральном блоке "center". (Кстати я его включил в описани позиций в файле templateDetails, у Вас не был указан.
    Не знаю, правильно ли сделал или самовольно что-то нарушил?).
    Но вот беда: шрифт на блоге "center" разместился настолько крупный, что вылез не только за пределы сайта, но и за пределы экрана.
    Вопрос: как уменьшить шрифт статей, чтобы он помещался в отведенном ему месте.
    И спасибо, Рома за такую науку. Нисколько не жалею о многочисленных исправлениях и переустановках, только лучше наловчился, теперь с закрытыми глазами могу проделать Ваши уроки.

    И все же: как уменьшить шрифт?

    ОтветитьУдалить
  19. Здравствуйте! Это опять Михаил и опять с проблемой: в этих переносимых к себе .php модулях активно используются многие разные классы. При этом источник css, откуда они берутся в модулях нет. Где их найти, хоть посмотреть, как они устроены.
    Или самому в папке css создавать отдельный файл .css, в котором описывать эти классы?

    Рома, и все-таки очень прошу, ответь мне - как уменьшить размеры форм входа и размеры текста в них. И как вообще управлять размерами текста. Ничего не влезает в блоки моего сайта и вообще выходит за пределы экрана!
    Спасибо. И вообще огромное спасибо за хорошие статьи.

    ОтветитьУдалить