CMS Joomla – принципы работы бесплатной системы управления контентом, создание страниц и их кэширование в Joomla

Рубрика: Самоучитель Joomla

Здравствуйте уважаемые читатели блога KtoNaNovenkogo.ru. В предыдущем посте из рубрике Joomla, я пытался разъяснить понятия категорий и разделов в CMS Joomla, а также показать, что на любой пункт любого меню в Joomla можно повесить не только открытие одной статьи (материала), но и серии статей из одной категории или из одного раздела CMS.

CMS Joomla

Причем, материалы в CMS (системе управления контентом) Джумла могут располагаться как в формате блога (пункт меню шаблон блога категории или раздела), так и в виде таблички со списком заголовков статей (пункт меню шаблон списка категории или раздела). Само собой разумеется, на пункт меню в Joomla можно повесить еще массу вариантов открытия контента, но об этом чуть позже (Организация материалов в Joomla).

Из чего состоит и как работает CMS Joomla

В этом посте я хотел бы остановиться на еще одном моменте в логике работы с Джумла, который вызвал у меня небольшие сложности в понимании. Но прежде, я все-таки попробую описать из чего состоит сайт созданный на бесплатной CMS Joomla (как сделать свой сайт). Ну, во-первых, при работе с Джумла мы имеем как-бы два различных вебсайта.

Первый — это собственно сам основной CMS Joomla, который видят посетители и ради которого все и задумывалось. Оборотная сторона CMS Joomla — это, так называемая админка Joomla, в которую мы может попасть, добавив в адресной строке к URL нашего проекта /administrator (например,http://caokun.ru/administrator). Причем, вход в админку Joomla закрыт для обычных пользователей и осуществляется путем ввода логина и пароля.

Вход в административный раздел CMS Joomla

Для чего в этой CMS сделано именно так? Зачем нужно создавать фактически отдельный вебсайт (админку CMS Джумла), который имеет собственный шаблон и, наверное, такое же, если не большее, количество файлов, чем у основного ресурса (Джумла Front Page)? А для нашего с вами удобства! Ведь в противном случае, не имей CMS Joomla админки, нам пришлось бы напрямую вводить все настройки в файлы нашего проекта, а тексты статей, ссылки, адреса рисунков и прочее, напрямую вставлять в базу данных Joomla, ну, например, с помощью PhpMyadmin.

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

Видимая часть сайта CMS Joomla (Front Page)

Рассмотрим предназначенную для посетителей, видимую часть CMS Joomla, который называется Front Page. Из чего он состоит? Если рассматривать этот вопрос с точки зрения внешнего вида, то состоит он из центральной части, в которой располагается контент CMS Joomla и окружающих ее, так называемых, модулей Joomla (пример проекта на CMS Joomla — Алабай Троян и мейн-куны).

Если рассматривать этот же вопрос с точки зрения программной организации работы CMS Джумла, то состоит он из шаблона Joomla (Шаблоны Joomla) и подгружаемых данных в разные позиции для модулей шаблона Joomla.

В область контента CMS Joomla подгружаются соответствующие этой странице статьи или же, например, фотографии с помощью компонента фотогалереи (Бесплатная фотогалерея для Joomla — Phoca Gallery). В позиции для модулей шаблона для CMS Joomla может подгружаться все, что угодно, в зависимости от того, для чего этот модуль создан (например, в модулях выводятся те же самые меню Joomla или, допустим, заголовки последних сообщений на Джумла сайте и т.п.).

Как формируются (генерируются) страницы в CMS Joomla

Обратите внимание, что данные в этом случае подгружаются из базы данных CMS Joomla по мере необходимости, а это происходит только если пользователь открывает какую-нибудь страничку. А как он ее открывает? Ну, либо переходит по ссылке с другого ресурса, либо перемещается по вашему Joomla проекту, используя его внутреннюю навигацию – меню или внутреннюю перелинковку. К чему я все это говорю? А к тому, что по логике работы Джумла, к вебстранице нельзя обратиться, пока не будет создан пункт меню в CMS Joomla, ссылающийся на эту страничку. Немного не понятно? Попробую пояснить.

Все дело в том, что браузеры работают только со страничками в формате HTML (язык гипертекстовой разметки) и напрочь не понимают язык PHP на котором, собственно, и написана Joomla. Поэтому CMS Джумла, после того как пользователь обратится к той или иной вебстранице вашего проекта, должна успеть сгенерировать эту страничку, опираясь на алгоритм, прописанный в ее коде на языке PHP. Получается, что любая страница CMS Joomla сайта существует только если к ней обратились, а обратится к ней мы можем, только перейдя по HTML ссылке. Круг замкнулся. Получается, что нужно иметь ссылку на то чего нет, пока мы не обратимся к нему по этой ссылке.

Этот момент в работе CMS Joomla особенно сложно понять тем, кто хоть немного представляет создание классического вебсайта, состоящего только из страничек на HTML. Все вебстраницы, в этом случае, реально существуют и находятся на сервере вашего хостинга. К ним всегда можно обратиться, введя соответствующий адрес в браузере, или даже физически, через FTP, скачать какую-нибудь страничку с сервера себе на компьютер и открыть просто двойным щелчком по ней. Как говорится, ее можно пощупать.

В случае же с Джумла, да собственно, и любой другой CMS, базирующейся на PHP, странички в формате HTML генерятся непосредственно на сервере хостинга, в момент обращения к ним. Каким образом они генерятся в CMS? Ну, в соответствии с содержанием запрашиваемой вебстраницы, в центральную часть шаблона Joomla загружается из базы данных CMS соответствующий контент (статьи, фотогалерея, интернет магазин и т.п.), а по бокам шаблона, сверху и снизу, в позиции для модулей загружаются данные в те модули Joomla, которые должны отображаться именно на этой вебстранице. Весь этот алгоритм работы CMS прописывается в файлах Джумла и настраивается как раз в админке Joomla.

Как вы уже наверное заметили, такой способ формирования страниц в CMS Joomla скрывает в себе некоторую проблему, которая особенно остро может встать при большом количестве посетителей на вебсайте. Код файлов вашей CMS, написанных на PHP, интерпретируется в HTML страничку прямо на сервере хостинга.

Если запросов на создание страниц в CMS Joomla будет очень много, то это может нагнуть сервер хостинга, т.е. существенно замедлить его работу. Даже если предположить, что все посетители находящиеся в данный момент на вашем Джумла-сайте запросили одну и туже вебстраницу, она все равно будет создаваться CMS заново столько раз, сколько посетителей нажали по соответствующей ее ссылке.

Включаем кэширование в CMS Joomla для снятия нагрузки с сервера хостинга

Выход из этой ситуации состоит в использовании кэширования в CMS Joomla. Как это работает? Довольно просто. Каждый раз, когда по требованию посетителя на сервере хостинга создается вебстраница в формате HTML, то она не только передается браузеру пользователя, нажавшего по ссылке, но и сохраняется CMS в папке с кэшем Joomla на сервере хостинга.

И уже при следующем обращении к этой вебстранице, она не будет заново создаваться, отнимая ресурс сервера хостинга (создавая дополнительную нагрузку на его процессор), а будет передана браузеру пользователя, запросившему эту страничку, из той самой папки на сервере хостинга, где хранятся кэшированные страницы CMS Joomla.

А как же тогда быть с обновлением информации на Джумла сайте? Если все берется из кэша CMS, то любые вносимые изменения, допустим, в статьи, не будут видны пользователям. Ведь они то получают статью из папки CMS для кэша. Да, действительно, в случае применения кэширования в Joomla, внесенные изменения сразу видны не будут, но они обязательно появятся потом, чуть позже. А вот насколько позже, зависит от времени жизни кэша в CMS Joomla, которую вы сможете задать в админке Joomla.

Для включения и настройки кэширования в Joomla, зайдите в админку этой CMS и выполните следующие перемещения: «Общие настройки» — вкладка «Система» — область «Установки кэша». Поставьте галочку в позицию «Да» в строке «Включить кэширование» и выберите время жизни кэша. Не забудьте по окончании настройки нажать кнопку «Применить» или «Сохранить», в противном случае, внесенные вами в CMS изменения, не вступят в силу.

Включение кэша в админке Joomla

Более подробно про кэширование в Joomla вы можете почитать в этой статье — Настройка кэширования и времени жизни сессий.

Чем отличается в CMS Joomla действия кнопок «Применить» и «Сохранить»

Кстати, вы знаете в чем заключается различие между действиями, выполняемыми в CMS Joomla по нажатию кнопки «Применить» от действий, выполняемых по нажатию кнопки «Сохранить»? Совсем немногим. В обоих случаях будут сохранены все внесенные изменения, но после нажатия на кнопку «Применить», вы останетесь в этом же окне и сможете продолжить редактирование, а после нажатия на кнопку «Сохранить», окно редактирования в CMS Джумла закроется, и вы очутитесь на той страничке, которая была открыта до этого. Т.е. кнопку «Применить», нужно нажимать если вы еще планируете работать в этом окне, а кнопку «Сохранить», если работу в этом окне CMS вы уже закончили.

Отключения кэширования для некоторых элементов в CMS Joomla

Хочу остановиться еще на одном моменте связанном с кэшем в CMS Joomla. Дело в том, что для некоторых элементов вашего Джумла сайта, желательно вообще не применять кэширования. Например, это могут быть какие-нибудь информеры в модулях CMS, данные на которых должны меняться при каждом обращении к страничке, где они установлены. В случае применения кэша в Joomla это становиться невозможно.

Именно для таких случаев в настройках всех модулей предусмотрена возможность отключить кэширование в Joomla именно для этого модуля, при том, что все остальное на на вашем вебсайте может продолжать прекрасно кэшироваться. Эту возможность отключить кэш в CMS Джумла, нужно искать в правой части окна настройки модуля. Например, для модуля, в котором будет выводится на сайт меню, настройка кэширования находится здесь:

Включение/отключение кэширования для отдельного модуля в CMS Joomla

Итак, в начале поста я говорил, что нельзя создать ссылку на страницу в CMS Joomla если нет соответствующего пункта меню, ссылающегося на эту страничку. А если пункт меню с такой ссылкой не нужен, но сама ссылка нужна и должна использоваться в тексте какой-нибудь статьи? В таком случае, нужно создать фиктивное меню в Joomla, которое не будет публиковаться на вебсайте и которое будет включать в себя пункт с нужной ссылкой на страницу Джумла. Тут я как раз и подошел к вопросу, который меня озадачил в начале изучения работы CMS Joomla.

Как создать новое меню в этой CMS я понял, но оно после добавления в него пунктов не хотело отображаться на сайте.
— «Ты же не вставил его в модуль», — скажите вы и будете совершено правы.
Действительно, меню в этой CMS должно быть привязано к модулю, который и определит, где будет находиться наше меню на Joomla сайте.

Как посмотреть позиции для модулей, предусмотренные в шаблоне CMS Joomla

Дело в том, что в любом шаблоне CMS Joomla для модулей, отведены специальные позиции. Увидеть эти позиции для модулей в шаблоне Джумла вы сможете просто добавив в конце URL вашего ресурса в адресной строке браузера ?tp=1 (например, http://caokun.ru/?tp=1).

В разных шаблонах CMS Joomla количество и расположение позиций для модулей отличается. Поэтому прежде чем вставлять модуль с меню в какую-либо позицию (например, left, right или top) шаблона CMS Joomla, убедитесь, где именно в этом шаблоне находится эта позиция. Не исключен вариант, что позиция left будет находиться справа.

Более подробно о создании меню, его вставку в определенное место шаблона и многое другое, связанное с работой в CMS Joomla, я расскажу в следующих постах рубрики Уроки Joomla.

У Евгения Попова имеется видекурс по Joomla, который стоит того, чтобы с ним ознакомиться.

Вы так же можете ознакомиться с другими материалами по Joomla:

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Шаблоны Сайтов
Поиск:
Робот считает, что Вам это тоже может быть интересно:
Очень обяжете, если воспользуетесь этим блоком кнопок:
RSS
Рубрика : Самоучитель Joomla
Наверх

Комментарии
25-09-2009 в 0:50

А чего у блога такая посещаемость низкая... Кстати на твой блог порчу навели, помогу снять

охрана труда

25-09-2009 в 4:54

Ой, благодарю за CMS.

BluRayOriginalSound

25-09-2009 в 8:27

Да уж, это конечно же нелегко. :)

Нега

5-01-2010 в 14:11

Как же хорошо все расписано про CMS Joomla, хотя многое уже знал

nat

5-01-2010 в 14:12

спасибо за статью

nat

12-01-2010 в 5:52

В общем это всё ясно, но не мог бы по конкретнее написать про генерацию страниц в CMS Joomla? Просто я так понял, страничка генерируется, записывается в папочку, далее проверка на существо этой страницы. С этим всё ясно, но вот в чём дело: при работе с CMS Joomla строка адреса явно не передаёт переменные методом пос и гет, там адрес типа домен.ру\234\234\3

Это как раз связано с кэшированием страниц или изобрели метод передачи параметров каким нибудь другим способом!? Просто я сейчас пишу типа тоже что-то про CMS и встала проблема генерации страниц, точнее определения, что на страницу должно грузиться, а определить можно только по переменным в строке адреса или используя глобальные переменные. Так в итоге вопрос, как он всё-таки работает? К примеру пусть не CMS

Shopscript free стартует сессия, создаётся объект типа смарти (это шабланизатор такой), затем смотрятся переданные переменные типа там ID продукта, если есть и он создан в глобальном массиве, то добро пожаловать на страницу продукта.

А как тут всё происходит!???

Заранее пардон за мой русский (на потоке мысли главное её не потерять) :-) ))

ilich87

13-01-2010 в 9:49

Стандартное кеширование в CMS Joomla хорошо, если на сайте мало используются сторонние плагины. У меня при использовании стандартного кеширования рушилась менюшка при выборе меню компонента Quick_FAQ. Решил вместо этого использовать стандартный джумловый компонент.

Будет время опиши как прикрутить WEb Optimizer для Joomla!

близкий

14-01-2010 в 14:13

близкий: WEb Optimizer на пробовал. Может быть вам JRE CACHE или JAccelerator попробовать.

Дмитрий

24-01-2010 в 12:02

Спасибо!

Я до этого не знал зачем это кеширование в CMS нужно и особенности его работы!

Спасибо! :)

Lardok

25-01-2010 в 12:24

Lardok: пожалуйста.

Дмитрий

27-01-2010 в 10:51

Дмитрий, спасибо. Все, что я читал про Joomla — это какие-то обрывки мыслей. Хорошо, что я знаю о Вашем сайте. Наконец-то могу прочитать подробное и интересное руководство про эту CMS.

Андрей Морковин

3-02-2010 в 1:09

Благодарю за информацию, немногие будут уделять внимание этой функции, как и сам я не обратил, теперь буду пробовать работу CMS с кешем и без.

Ayder

28-02-2010 в 18:25

Благодарю за информацию

Ghost

15-03-2010 в 12:49

Тоже хотелось бы поблагодарить автора за информацию по CMS Джумла.Спасибо!

max

21-03-2010 в 23:29

+1. Спасибо автору. ktonanovenkogo рулит, мало где вообще есть нормальные, человекопонятные описания, либо развернута информация, а у вас тут действительно, для начинающего всё доступно расписано по CMS Joomla. Еще раз огромный сенькс :) рад что вас нашел.

Олег

23-03-2010 в 1:20

Олег: пожалуйста, я то же рад, что вы нашли мой блог и оставили такой замечательный комментарий.

Дмитрий

25-05-2010 в 23:00

А какой платный шаблон приводится на картинке в качестве примера большого количества модулей?

Marat

8-06-2010 в 23:54

спасибо. много подчерпнул по этой CMS, и пополнил свои знания по joomla. Развиваемся. :)

Igrun

18-06-2010 в 23:42

Igrun: пожалуйста.

Дмитрий

21-08-2010 в 17:47

Подскажите, кто знает чем отличается включение кеширования в общих настройках CMS от включения кеширования включением модуля system cashe?

recszpua

24-08-2010 в 15:43

тружусь над своим сайтом, и ваши статьи по CMS Joomla мне очень помогают. Не нашла здесь как сделать комментарии к статьям? Ваши очень понравились, где такое взять?

И еще (не в тему): Phoca Gallery заценила по вашему рецепту, поставила себе тоже. Но не могу найти в настройках, как выровнять по центру превьюшки (они же заключены в рамку, но смещены вверх)? Может подскажите.

Наталья

2-09-2010 в 8:02

Материал понравился. Хочу свой новый сайт сделать на Joomla. И чтобы добиться успеха надо знать все тонкости.

Сергей

6-10-2010 в 16:44

Как уменьшить именно загрузку оперативной памяти CMS джумла на вдс?

Я был очень удивлен, когда мне на fastvps сказали, что «Ваш сай недоступен из-за забитой на 100% ОЗУ». Не верю, что 200 мб не хватит на сайт с посещалкой в 5 человек...

Yawall

17-10-2010 в 20:58

Спасибо за статью, у вас всё очень информативно и ясно написано по этой CMS ке.

yufka

12-01-2011 в 16:21

охрана труда говорит, что:

А чего у блога такая посещаемость низкая… Кстати на твой блог порчу навели, помогу снять

Улыбнул первый пост. ))

Как все-таки ситуация поменялась за полтора года.

Reklaman.com

25-01-2011 в 12:07

Дмитрий, я ваша подписчица.

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

Вроде в программе «Блокнот» можно, но я открыла его, ничего не поняла и закрыла.

natalya

Дмитрий

6-02-2011 в 18:13

Добрый день!

Не могли бы Вы ответить на, наверное, дурацкий, вопрос, но на который я, тем не менее, не могу найти ответ ни на одном ресурсе.

У меня есть хостинг. Есть сайт . (www.khms.ru, например) При написании его я пользовалась Macromedia Dreamweaver или блокнотом. Лично я не испытываю трудности в том, чтобы править и загружать на сервер непосредственно страницы html и работать с Dreamweaver, но вот появились сотрудники, для которых эта программа оказалась не по зубам. Они хотят простой движок, с помощью которого они могли бы выкладывать на сайт текстовую информацию и картинки.

Возможно ли прикрутить к уже готовому выложенному на сервере работающему сайту какой-то такой простой движок? Да ещё и так, чтобы сам web-мастер мог править этот сайт из Dreamweaver, а контент-менеджер — с другого компьютера через некий простой движок?

CMS Joomla, CMS WordPress, Денвер — что-то из этого является аналогом моего воображаемого «простого движка» или они нужны для чего-то другого?

Я уже совершенно запуталась в этих программах... :( (

Заранее большое спасибо!

Светлана

6-02-2011 в 18:53

Светлана: можно, например, поставить Joomla и перенести все Html файлы в эту CMS, прямо через Html редактор. Нужно будет только не забыть сделать 301 редирект со старых url на новые (установить какое-нибудь расширение для этой цели, например).

Вы сможете работать с сайтом через админку Joomla, добавляя статьи через визуальный редактор Джумла (похоже на обычный Word), а если с Html на короткой ноге, то и через Html редактор Joomla.

В Joomla разным группам пользователей можно назначить различные права по добавлению и редактированию материалов, чем вы можете воспользоваться.

Дмитрий

6-02-2011 в 19:52

Спасибо, Дмитрий!

Я правильно поняла, что после переноса Html файлов в CMS Joomla с ними уже нельзя будет работать через Dreamweaver? Т.е. вопрос в том, в каком виде хранятся на сервере эти файлы после переноса в Joomla? Можно ли их через FTP-соединение оттуда скачать на компьютер, чтобы редактировать в каком-то ином редакторе?

Спасибо!

Светлана

6-02-2011 в 21:47

Светлана: вы сможете подготавливать статьи в любом удобном для вас редакторе, а затем в виде Html кода загружать их в Html редактор Joomla. Статьи в Joomla будут храниться в базе данных и скачать их про FTP вы, естественно не сможете, но сможете в админке Joomla открыть их на редактирование и скопировать Html код статьи из CMS для редактирования его в Дримвьювере.

Дмитрий

6-02-2011 в 21:53

Понятно, спасибо, Дмитрий!

Тогда ещё вопрос: я скачала Joomla в виде какого-то самораспаковывающегося архива... не могу понять, что с ним делать. Его обязательно загружать прямо на сервер или можно установить у себя на компьютере, чтобы по изучать CMS?

exe-файл в папке отсутствует и ставит меня в тупик, как запустить установку.

Светлана

6-02-2011 в 22:14

Светлана: поучитесь сначала работать с Joomla на локальном сервере, например, Денвер. Про установку Joomla я уже писал, да и вообще, воспользуйтесь материалами рубрики Настройки и работа в Joomla, делайте все не спеша, с толком и расстановкой, и тогда все получится. Работа с Joomla не очень сложная, а опираясь на мои статьи, я думаю, вам будет еще чуть чуть полегче.

Дмитрий

6-02-2011 в 22:19

Спасибо, Дмитрий!

Светлана

21-06-2011 в 8:06

Добрый день! Отличная информация! У меня все на Joomla, поэтому инфа ценная... я новичок и думаю с помощью этих статей качественно улучшить свои сайтики... кстати, Дмитрий, почитайте статью на rundeks.ru это я решил своим опытом поделиться... маленьким, но опытом...

Алексей

9-09-2011 в 18:36

Спасибо, ничего лучшего не видел!

Николай

29-09-2011 в 12:46

Спасибище Вам огромное за проделанную работу!

Вы, пожалуй, нашли самый эффективный способ структурирования информации — не только все понимаешь, но и получаешь эстетическое удовольствие)))

antiler

23-10-2011 в 19:26

Люди помогите. После работы на denwer адрес сохранился в строке мазилы, теперь не могу выйти на свой сайт в сети. Чистил кеш и реестр не помогает. Что делать.

Андрей

9-02-2012 в 14:43

Дмитрий, не подскажете по такому вопросу — при включении кэша, информация с счетчиком посещаемости будет нормально сниматься? Или будут задержки, равные времени жизни кэша? Заранее спасибо за ответ.

P.S. Сайт ktonanovenkogo.ru просто как энциклопедия по joomla ))))

Алексей

12-04-2012 в 22:55

Только в разделе про кэширование надо было указать, что кэш вещь коварная и не всегда следует это делать.

http://blogobit.ru/cms-joomla

Написать

(обязательно)

(обязательно)

Ваш комментарий
Заключайте PHP и другой код в теги [php][/php]

Это не спам.

Подписаться без комментирования