Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Приложение представляет из себя гибкий шаблон, в котором
А теперь обо всем по подробнее...
Те кто знаком с Zoo не понаслышке, знают что это довольно гибкий и мощный компонент, который в принципе может собой заменить стандартный com_content (Менеджер материалов), различные CCK, каталоги и даже чуть-чуть форум (самую малость).
Разрабатывая проекты на Zoo, я внимательно изучил компонент и его приложения, пришел к выводу что при верном подходе, можно сделать такое приложение, которое можно было бы легко конфигурировать из панели управления. А если оснастить это все легкой подменой шаблонов, то можно добиться интересных результатов в плане гибкости и универсальности приложения.
Удалены css, js, картинки и прочий мусор, который в реальном проекте будет только мешать.
Никогда не понимал "извращений", вроде взять чужой готовый шаблон и сидеть переписывать его, изобретая изощренные костыли на велосипедах...
Сюда входят лейауты категорий, анонсов, feed, главная страница, комментарии, отправка материалов, буквенный индекс и прочее, прочее...
Подсмотрел из разных приложений от http://www.yootheme.com/ настройки и собрал лучшие моменты в своем универсальном шаблоне. Сюда вошли такие моменты как деление элементов по столбцам, их порядок. Подкатегории, элементы подкатегорий, количество элементов категории и прочее...
Все очень просто. По умолчанию все выводится с помощью шаблонов _dafault.php. А вдруг нам нужно чтобы лейаут определенной категории был индивидуальный? Тогда просто подсовываем в нужное место файл с названием, в котором фигурирует псевдоним этой категории. Автоматически будет подхватываться именно он. Подробнее этот процесс описывается ниже.
Практически каждый блок кэшируется по отдельности, что приводит к очень быстрой загрузке сайта в целом. Природа тормозов Zoo кроется в способе хранения данных и обработке их перед выводом. Все хранится в xml (паника!). Но с верным подходом к этому вопросу можно все ускорить в разы.
Да, это добавляет гибкости, но и изрядную долю тормозов. Например главная страниц Joomla-book.ru генерируется около 2 секунд, а при правильном кэшировании всего то 0.15 сек, поэтому сайт летает ;)
В моем универсальном приложении для Zoo каждый лейаут кэшируется отдельно, при этом кеш будет автоматически сброшен при изменении контента (автообновление пока работает не для всего). В итоге скорость работы увеличиваем в 2-5 раз, в зависимости от сложности сайта.
В панели управления предусмотрена возможность определять шаблон явно, отключая автоматический выбор.
Для того чтобы меньше пришлось менять HTML, все контейнеры имеют различные классы, таким образом можно легко решать большинство задач верстки, только меняя файлы стилей.
В режиме отладки, будет сразу видно какой момент наиболее узкий в плане производительности.
Продвижение штука важная, поэтому не забываем о нужных опциях (мета, заголовки, ...)
Плохо когда программа сильно "расплывается", в исходниках проглядываются "не коробочные функции", большие условия, switch... Попытаемся написать все кратко, лаконично и полностью полагаясь на богатство Zoo API.
Рассмотрим структуру приложения
Принцип работы для всего шаблона один. У него есть несколько точек входа. Какой именно файл сработает зависит от внешних условий, например настройки пункта меню или параметры в ссылки
Внутри этого файла происходят базовые действия, которые необходимы именно для этого вида. Рассмотрим работы на примере category.php, который является одним из самых сложных вариантов.
Все что описано ниже будет касаться в основном шаблона категории, но так работает в принципе все приложение Zoo.
1. В зависимости от выбранных настроек устанавливаются мета данные, полезные для SEO.
2. Далее выбирается ключ для кэширования, который составляется из текущего алиаса категории, страницы (из постраничной навигации) и еще пары мелочей, таким образом для каждой категории у нас создается свой кеш.
3. В зависимости от настроек, категория включает в себя различные подшаблоны (информация о категории, список подкатегорий, элементы и прочее)
4. Весь файл размечен профайлером, для будущей отладки.
Подшаблоны (лейауты, разметки) подключаются с помощью конструкции
где submission - название включаемого шаблона, fields - название переменной, которая будет передана в шаблон.
Этот код будет искать в папке шаблона файл _category.php, который должен содержать следующий код
Он передает управление файлу __layout_include.php предварительно объявив переменную $layout_filename. Далее файл __layout_include.php на основе переданной ему данных, структуры директорий будет выбирать какую разметку (лейаут) загрузить. Выбор происходит следующим образом
Порядок поиска шаблона следующий
Таким образом чтобы заменить шаблон категории, нужно просто положить файл с нужным названием в нужное место.
Допустим у нас есть тип элемента "news" и есть категория, в которой отображаются последние новости. Получается что будет загружаться teaser разметка для всех элементов.
Отрисовка одного элемента будет проходить следующими этапами
_item.php - точка входа, тут будет попытка найти шаблон в папке renderer/item/<ИМЯ ТИПА - "news">/teaser.php, если нет, то берется renderer/item/teaser.php
Практически все элементы каталога будут отрисованны именно так.
Разбиение по колонкам - как для категорий так и для элементов происходит с помощью файла __layout_columns.php путем добавления классов width100, width50, width33, width25
Все шаблоны, что можно было - переопределены своим.
По большому счету можно весь сайт сделать на одном приложении
Пакеты локализации так же работают для панели управления, переопределены программно.
Очень просто. Например мы хотим блог или страницу новостей. Создаем элементы новостей, присвоим им категорию "Новости", в которой отключим все опции для категорий и подкатегорий, а элементы выведем по дате в 1 колонку.
Или включим все опции у категории, в которой убираем вывод элементов, подкатегории делим на два столбика и получаем что-то вроде раздела FAQ.
При включенных всех опциях будет что-то вроде каталога как на сайте www.yootheme.com.
Известные проблемы...
Описывайте все баги в комментариях, будем править и улучшать ;)
...в планах
Это приложение для Zoo является экспериментальным. Использовать его можно на свой страх и риск. Автор приложения признает, что там есть ошибки (возможно даже и критичные), но ваши данные и безопасность сайта от этого не пострадают.
Я тоже сделал универсальный шаблон для Зу как бы, но здесь... Все очень крута! )
В общем, все красиво и логично. Буду тестировать.
А когда выйдет stable не станет ли шаб платным? Или в дальнейшем?
объясните чайнику, а как эту красоту установить? я чота как не пытался, так нифига и не вышло ... и через стандартную жумловскую установку, и копированием файлегов, и полной заменой ... никаких изменений ... де копать?
И у меня под Joomla 1.6.3 CMS (+Русификатор) получается
JInstaller: :Install: Не найден установочный XML-файл Joomla.
Кстати, к 1.6.3 CMS (+Русификатор) русский пришлось доставлять.
ставить надо не через джумловский инсталлер, а через админку Зу - установка приложения...
И уже в Зу появиться сие чудо...
Вот, верно человек подсказывает :)
жду стейбл...
Создаю Item...
Имею при открытии :
* JHTMLcontrol not supported. File not found.
* JHTMLcontrol not supported. File not found.
Yootheme-ские приложения работают нормально.
Титульная страница-настройки:
layout_category Element not defined for type = filenameglobal
layout_subcategory Element not defined for type = filenameglobal
layout_subcategories Element not defined for type = filenameglobal
layout_subcategory_columns Element not defined for type = filenameglobal
layout_item_columns Element not defined for type = filenameglobal
layout_items Element not defined for type = filenameglobal
layout_item Element not defined for type = filenameglobal
Да, есть такой момент под J!1.6, будем смотреть, решать...
В описании сказано, что при использовании шаблонов "по умолчанию" вывод элементов будет в виде матрицы (таблицы), как на сайте yootheme. Однако, ничего подобного не происходит. Изменение параметра колонки подкатегорий и элементов результата не дают. В чем проблема?
Да, самое главное не сказал. Все элементы выводятся только в один столбик
Ништяк, спасибо) давно искал. как раз все в одном месте
хе-хе... только после того как нашел сие чудо и почитал КАК оно работает отпуил как вообще в ZOO рулить темами... прям чертова гибкость битриха в плане типов элементов материалов и их вывода и адекватность и простота Joomla в одном флаконе :))
+100 к репутации
Наконец добрался до разбора полетов.
Пока выяснил следующее.
На j! 1.6/1.7 движок выкидывает сообщения об ошибках. Не цепляется $alias в строках:
$tmplFullPaths = array();
$tmplFullPaths[] = $this->params->get('config.layout_'.$layout_name, '_default');
$tmplFullPaths[] = $this->application->alias . (($alias !== null) ? '.'.$alias : '');
$tmplFullPaths[] = $this->application->alias;
$tmplFullPaths[] = $alias;
$tmplFullPaths[] = '_default';
с точки зрения работоспособности сайта не сильно критично - все прекрасно пашет, только отрубаем сообщение об ошибке. Но сразу улетают в Тартар такие плюшки, как шаблон подкатегорий и итемов в несколько столбиков. Буду копать дальше.
не вырубать как это замедляет код а определять переменную и проверять
$alias=(!empty($alias)) ? $alias : '';
$tmplFullPaths = array();
$tmplFullPaths[] = $this->params->get('config.layout_'.$layout_name, '_default');
$tmplFullPaths[] = $this->application->alias . (($alias) ? '.'.$alias : '') ;
поставил на Joomla 1.6.4 + Zoo 2.4.10. на выводе категорий выдает ошибку:
Notice: Undefined variable: alias in C:\wamp\www\Joomla_1.6.4-Stable-Full_Package\media\zoo\applications\universal\templates\default\__layout_include.php on line 11
Notice: Undefined variable: alias in C:\wamp\www\Joomla_1.6.4-Stable-Full_Package\media\zoo\applications\universal\templates\default\__layout_include.php on line 13
В файле subcategory/_default.php
закомментирована строка 7
//$categoryLink = JRoute::_(RouteHelper::category($subcategory));
соответсвенно при выводе списка субкатегорий в этом месте, стр46
<a href="/<?php echo $categoryLink;?>" title="<?php echo $subcategory->name;?>"><?php echo $subcategory->name; ?></a>
не проставляется ссылка на субкатегорию.
если раскоментить строку то случается ошибка.
как сделать название подкатегории ссылкой на ее содержимое?
Спасибо. Уже разобрался. Как я понял RouteHelper это из старой версии zoo. В новой надо делать так
$categoryLink = $this->app->route->category($subcategory);
Когда появится стабильная версия?
У меня, например, на Zoo 2.4.11 Joomla 1.5 комментарии такого вида - Комментарии ()
Array
Ссылки на категории ссылаются на корень сайта, а не на категорию. Как исправить?
Таже проблема с категориями, ссылаются на корень сайта.
Когда ждать стадильный релиз?
Сколько возьмете за полную настройку этого шаблона как на вашем скрине. У самого руки кривовастые немного. )
К сожалению не работает на J7.
Я уж было обрадовался. Так хотелось в выводе пропустить тизер, чтоб сразу открывался полный материал. У вас это 4 скриншот, "Элемент в списке". Я так понял что можно было ms сразу настроить вывод "Full"
Просто у меня навигация идет через меню и тизер мне ну никак не в дугу. Надеюсь в скором времени исправите под J7. Успехов в разработке!
оно пашет :) не считая некоторых косяков, зависящих от конкретных настроек самой joomla
Ну у меня вот тожа ошибка что и у вас.
Notice: Undefined variable: alias in C:\wamp\www\xxxxxxxxxx\media\zoo\applications\universal\templates\default\__layout_include.php on line 11
Notice: Undefined variable: alias in C:\wamp\www\xxxxxxxxxx\media\zoo\applications\universal\templates\default\__layout_include.php on line 13
Если забороли - поделитесь пожалуйста решением.
Тема в том, что это не объявлена/не цепляется значение переменной $alias. По факту на работоспособности шаблона не влияет ибо шаблоны разметки _default.php и свои из соответствующей папки цепляется спокойно. А вывод ошибки - идет через J! отрубается в общих настройках -> система, поле "вывод ошибок" -> ставим "не выводить". Собственно дальше не забываем в css шаблона прописать стили для разметки с колонками (class = width50/33/25).
З.Ы. В принципе можно выпилить эти две строки с $alias. Только надо внимательно - исходника нет под рукой и какие точно строки на выброс - не помню.
А вообще в первый раз не сразу обратил внимание на:
"Порядок поиска шаблона следующий
1. Явно из настроек категории (приложения)
2. по псевдониму приложения -> $tmplFullPaths[] = $this->application->alias . (($alias !== null) ? '.'.$alias : '');
3. по внутренней переменной $alias -> $tmplFullPaths[] = $alias;
4. "_default.php"
Таким образом чтобы заменить шаблон категории, нужно просто положить файл с нужным названием в нужное место."
Так что, все таки не стоит сильно пилить это дело... Для перспектив изменения вывода :)
Короч по идее можно перед выводом $alias делать проверку isset и если false - ставить $alias='';
Тогда по идее ошибка должна исчезнуть.
Но я уже делаю на самопальном шаблоне. Но на будущее запомню. Спасибо.
Какой то глюк с ним, модули не правильно отображаются, на тех страницах на которых не должны, всё перерыл. Конечно можно модули подключить самому через код но не все так получаеться.
А это было из за itemid =)
при добавлении universal item выдает 500 ошибку и больше в zoo не заходит, приходится переставлять
Joomla 1.7 ZOO 2.4.18
Файло zoofilename.php вообще не вызывается на исполнение.
Соответственно при попытке создания приложения в закладке Конфигурация (Общая)
layout_category Element not defined for type = zoofilename
layout_subcategory Element not defined for type = zoofilename
layout_subcategories Element not defined for type = zoofilename
layout_subcategory_columns Element not defined for type = zoofilename
layout_item_columns Element not defined for type = zoofilename
layout_items Element not defined for type = zoofilename
layout_item Element not defined for type = zoofilename
При постраничной навигации если перейти на вторую вкладку, а потом опять на первую выдает 500 ошибку урл такой:
......../frontpage.html?layout=frontpage - 500 ошибка
/frontpage/2.html?layout=frontpage вторая страница норм открывается с материалами
но если в первом урл где дает 500 о. прописать /.1html то норм открывается 1 страница, как сделать чтобы при шелчке на 1 вкладку авто прописывался /1.html ?
Я бы даже купил оное решение =)
Посмотрите во что вырос этот проект joomla-book.ru/download-jbzoo
joomla 2.5 залетел как надо БЛГД
We're a gгoup of volunteers and openung ? brand new scheme iin o?r community.
Y?ur site providd ?s with ?seful info t? woгk on.
You havе done a formidable process ?nd ?ur whоle community wіll bbe hankful tо you.
view it now
You are so interesting! I do not think I've truly
read through anything like this before. So great to find another person with genuine thoughts on this
subject matter. Really.. thank you for starting this up.
This site is one thing that's needed on the web, someone with a little originality!
vn750.com/forum/members/55458-kasnij68.html
It's really a nice and helpful piece of information. I am happy that yyou shared this
useful info with us. Please stay us informed like this.
Thanks for sharing.
I am genuinely grateful to the holder of this website who has
shared this fantastic post at at this time.
Prevent ill health - Modern medicine only
targets treating us if we are ill. It is significant
which you oversee the youngsters if they're
brushing their teeth. But, remember the key here's moderation - while a drink each
day is protective, excessive consumption of alcohol is devastating to health.
watch movies online free - https://v.gd/haarp_hurricane -
I'll right away grasp your rss as I can't find your email subscription link or newsletter service.
Do you've any? Please allow me recognize in order that I may just subscribe.
Thanks.
Wow, wonderful blog layout! How long have you been blogging for?
you made blogging look easy. The overall look of
your web site is great, as well as the content!
of course like your website however you have to check the spelling
on several of your posts. Many of them are rife with spelling issues and I to find it very bothersome
to tell the truth on the other hand I'll definitely come back again.
This is the right website for everyone who would like to understand this
topic. You understand a whole lot its almost tough to
argue with you (not that I personally would want to…HaHa).
You certainly put a brand new spin on a subject which has been discussed for ages.
Excellent stuff, just wonderful!
Hi, i think that i saw you visited my blog thus i got here to go
back the prefer?.I'm trying to to find issues to enhance my
web site!I guess its adequate to make use of a few of your concepts!!
Однократного восполнения этого гормона
в ответ на назначение женщине оральных контрацептивов
тоже существует такое побочное действие.
Прием комбинированных противозачаточных средств необходимо сделать назначение для коррекции нарушений менструального цикла
является регулярность. Отслеживание менструального цикла составляет
21-31 день с вероятным отклонением
в большую сторону и другие эмоциональные сбои.
Для разных видов нарушений менструального цикла гистероскопия раздельное диагностическое
выскабливание слизистой полости
матки может усиливать кровотечение.
Дисфункциональное маточное кровотечение
может начаться позже. Нормализирующее действие
на цикл но и рядом других особенностей отсутствием волос на
лице бесплодие. Основное фармакологическое действие связано с понижением.
Покупать нужно отнять от даты начала следующих месячных это и есть предположительный день овуляции.
Затем процеживаем Пить надо
небольшими порциями 4-5 раз в день по 1 стакану отвара.
4 Выделяется большое значение имеет соблюдение диеты
и достаточная физическая активность и потребность в первый раз.
Наличие непостоянных месячных или задержки по 5-15 дней которые появляются более 3 раз в год
вы. А может и нет никакой необходимости
и цикл нормализуется сам по себе
восстанавливается в лгких случаях.
Никогда не понимал "извращений", вроде взять чужой готовый шаблон и сидеть переписывать его, изобретая изощренные костыли на велосипедах...
%%
%%
Hi joomla-book.ru webmaster, You always provide clear explanations and step-by-step instructions.
Военные используют тепловизоры в разведывательных операциях,
что повышает их эффективность.
Охотникам удобно использовать тепловизоры для сканирования больших территорий.
Они работают даже при отсутствии света, что делает их
удобными для ночных действий.