пятница, 9 января 2009 г.
JavaScript внутри AJAX
Обнаружил сегодня еще одну значительную багу в FF: если скрипт грузить внутри блока, загруженного AJAX, то он не работает. Решение, естественно, банальное: выкидывать весь нужный JavaScript либо в отдельный файл и грузить при генерации страницы, либо вставлять до отображения AJAX-содержимого.
Чем развлечься
Сидел-сидел сегодня, жуть как скучно было, решил себя хоть чем-нибудь развлечь. Немного полазив по LinuxForum обнаружил две замечательные игрушки.
Игрушка про админов
Игрушка про терминатора
Игрушка про админов
Игрушка про терминатора
четверг, 8 января 2009 г.
com_ajax_content и соответствующий пункт меню
Еще поковырявшись с недавно написанным компонентом отображения содержимого при помощи JS, пришел к выводу, что компонент получился на удивление удачным для отображения всякой стандартизированной ерунды. Немного еще его модернизировав уперся в еще одну неприятную проблему -- как создать к нему пункт меню. В результате ковыряния стандартного модуля меню нашел-таки решение и быстренько настрогал соответствующий модуль для com_menu.
Патчим com_menus
Кидаем содержимое архива в ~/administrator/components/com_menus/
Скачать com_menus_patch
Пропатченный com_ajax_content
Я подумал, что было бы удобно создавать пункт меню не только для отображения содержимого целого раздела, но и для отдельной категории, благо компонент уже до этого все предусматривал. Заодно убрал в админке в компонентах ссылку на com_ajax_content, я там все равно не придумал, что бы такого написать. В результате получился очень легкий, но эффективный компонент.
Скачать com_ajax_content
Патчим com_menus
Кидаем содержимое архива в ~/administrator/components/com_menus/
Скачать com_menus_patch
Пропатченный com_ajax_content
Я подумал, что было бы удобно создавать пункт меню не только для отображения содержимого целого раздела, но и для отдельной категории, благо компонент уже до этого все предусматривал. Заодно убрал в админке в компонентах ссылку на com_ajax_content, я там все равно не придумал, что бы такого написать. В результате получился очень легкий, но эффективный компонент.
Скачать com_ajax_content
вторник, 6 января 2009 г.
com_show_shop: Магазины
Еще один интересный, с академической точки зрения, компонент. Мне он нужен для того, чтобы отображать содержимое раздела с магазинами в удобном виде: слева картинка, справа описание.
Хитрое отличие от com_content состоит в том, что содержимое отображается без перезагрузки страницы, т.е., опять же, AJAX. В некотором роде, конечно, полезно, с другой стороны - не очень.
Административную часть делать не стал, так как не придумал, зачем она, собственно, нужна. Выкладываю здесь сырцы как заготовку, подогнать которую можно под отображение практически любого контента.
Скачать com_show_shop
Хитрое отличие от com_content состоит в том, что содержимое отображается без перезагрузки страницы, т.е., опять же, AJAX. В некотором роде, конечно, полезно, с другой стороны - не очень.
Административную часть делать не стал, так как не придумал, зачем она, собственно, нужна. Выкладываю здесь сырцы как заготовку, подогнать которую можно под отображение практически любого контента.
Скачать com_show_shop
понедельник, 29 декабря 2008 г.
Joomla и AJAX: Шаг 3 com_content
Осталось дело за малым: научить отображать джумлу все свое содержимое в нужном виде, так как только пока только переходы с главного меню не перезагружают страницу. За вывод контента отвечает одноименный компонент com_content.
Суть всего редактирования заключается компонента заключается в исправлении ссылок с index.php на index2.php и исправления событий onClick и свойства href.
Кроме того, com_content работает с модулем pageNavigation, который разбивает содержимое на страницы -- исправить ссылки в нем тоже не помешает.
Выкладываю окончательный вариант.
Скачать com_content
Суть всего редактирования заключается компонента заключается в исправлении ссылок с index.php на index2.php и исправления событий onClick и свойства href.
Кроме того, com_content работает с модулем pageNavigation, который разбивает содержимое на страницы -- исправить ссылки в нем тоже не помешает.
Выкладываю окончательный вариант.
Скачать com_content
Joomla и AJAX: Шаг 2 mod_mainmenu
Тем не менее, использование стандартного модуля mod_mainmenu не позволяет использовать этот шаблон -- загрузка страниц все равно происходит с перезагрузкой и полной загрузки контента.
Загрузка контента осуществляется в mosMainBody, но этот модуль находится во фрейме и по-умолчанию не отображается.
В content происходит загрузка контента с использованием AJAX.
Таким образом, ссылка меняется крайне хитрым образом:
Загрузка контента осуществляется в mosMainBody, но этот модуль находится во фрейме и по-умолчанию не отображается.
<div id="content_box" style="display: none;">
<div id="content">
</div>
</div>
content_box -- это модуль ThickBox, как видим, он по умолчанию не отображается.
В content происходит загрузка контента с использованием AJAX.
Таким образом, ссылка меняется крайне хитрым образом:
<a
onclick="javascript:ajaxpage
('http://site.ru/index2.php
?option=com_content
&task=blogcategory
&id=14&Itemid=38', 'content');"
class="thickbox"
id="active_menu"
href="#TB_inline?height=600
&width=800&inlineId=content_box&">
Условия проживания</a>
- В ссылке меняется index.php на index2.php. index2.php отображает только содержимое главного модуля.
- Класс ссылки меняется на thickbox, id остается main_menu, так что возможность управлениея стилем меню осталась.
- Сама ссылка меняется на href="#TB_inline?height=600&width=800&inlineId=content_box&" Таким образом ссылка идет на модуль thickbox, ширину и высоту которого настраиваем отдельно.
- Так как href уже занят, переход по ссылке вешаем на onClick ссылки.
Joomla и AJAX: Шаг 1 Шаблон
В стандартной поставке в joomla нет ни шаблонов, ни компонентов, которые бы использовали AJAX, я вот и решил немного восполнить этот недостаток.
Загуглив по ключевым словам Joomla и AJAX получил ссылку вот на эту статью: Использование AJAX в шаблонах Joomla. Идея хорошая и меня натолкнула кое-на-что еще.
Всем известен скрипт ThickBox, который позволяет показывать любой контент во всплывающем фрейме.
В результате объединения получился вот такой вот шаблон.
Скачать шаблон
Посмотреть шаблон можно здесь.
Загуглив по ключевым словам Joomla и AJAX получил ссылку вот на эту статью: Использование AJAX в шаблонах Joomla. Идея хорошая и меня натолкнула кое-на-что еще.
Всем известен скрипт ThickBox, который позволяет показывать любой контент во всплывающем фрейме.
В результате объединения получился вот такой вот шаблон.
Скачать шаблон
Посмотреть шаблон можно здесь.
Подписаться на:
Сообщения (Atom)