Все в галерейке хорошо, вот только добираться до оригинальной фотографии уж больно долго. Решил, наконец, пропатчить галерею на эту тему. Теперь при просмотре категории, если щелкнуть на фото, то откроется фрейм с возможностью листать вперед-назад, а не новая страница с изображением среднего размера.
Скачать пропатченный com_datsogallery
Показаны сообщения с ярлыком Joomla. Показать все сообщения
Показаны сообщения с ярлыком Joomla. Показать все сообщения
пятница, 17 апреля 2009 г.
вторник, 31 марта 2009 г.
Патчим com_akocomment
Компонент комментариев akocomment всем хорош, но есть одно но. Вместо названия статьи в админке, где пропускаем комментарии, стоит ее номер. Неудобно. Наконец дошли руки и это досадное неудобство, наконец, исправил.
Фай /administrator/com_akocomment/admin.akocomment.php
Заменяем строку 159 на это
Фай /administrator/com_akocomment/admin.akocomment.html.php
Строку 108 тоже изменяем
Фай /administrator/com_akocomment/admin.akocomment.php
Заменяем строку 159 на это
$database->setQuery( "SELECT #__akocomment.id, #__akocomment.parentid, #__akocomment.status, #__akocomment.contentid, #__akocomment.ip,Теперь исправляем отображение
#__akocomment.name, #__akocomment.web, #__akocomment.email, #__akocomment.title, #__akocomment.comment, #__akocomment.date,
#__akocomment.published, #__akocomment.ordering, #__akocomment.iduser, #__akocomment.subscribe,
#__content.title
FROM #__akocomment"
. (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
. "\nleft join #__content on #__akocomment.contentid = #__content.id"
. "\nORDER BY id DESC"
. "\nLIMIT $pageNav->limitstart,$pageNav->limit"
);
Фай /administrator/com_akocomment/admin.akocomment.html.php
Строку 108 тоже изменяем
echo "<td align='center'><a href=\"".$mosConfig_live_site."/index.php?option=com_content&task=view&id=".$row->contentid."&Itemid=1\" target=\"_blank\">$row->title</a></td>";Этих двух простых исправлений достаточно, чтобы упростить процесс просмотра комментариев.
Ярлыки:
Компоненты Joomla,
полезное,
Beloretsk.RU,
Joomla
понедельник, 30 марта 2009 г.
Патчим com_banners
Я оттягивал этот момент сколько мог. Начальство хочет, чтобы на сайте можно было на разные страницы из одного раздела (будем считать, с одинаковым Itemid) ставить разные баннеры. Так как в Джумле модули выбираются в зависимости как раз от Itemid, то привязка к нему совсем не выход.
Зато страница имеет кучу других параметров, таких как, например, option, id, task, act. Именно к ним я и решил привязать показ баннеров.
Итакс, начнем патчить базу =)
Выполняем в ней запрос
Этим мы создадим таблицу, в которой и будем хранить параметры баннеров. Поля таблицы говорят сами за себя.
Далее. Теперь патчим админку компонента, чтобы можно было эти параметры устанавливать.
Сюда, собственно, код вставляется плохо, поэтому выложу сразу исправленные файлы.
Обновленный компонент+модуль
Зато страница имеет кучу других параметров, таких как, например, option, id, task, act. Именно к ним я и решил привязать показ баннеров.
Итакс, начнем патчить базу =)
Выполняем в ней запрос
CREATE TABLE IF NOT EXISTS `#__bannerparam` (
`param_id` int(11) NOT NULL auto_increment,
`banner_id` int(11) NOT NULL default '0',
`param_name` varchar(255) NOT NULL default '',
`param_value` varchar(255) NOT NULL default '',
PRIMARY KEY (`param_id`)
)
Этим мы создадим таблицу, в которой и будем хранить параметры баннеров. Поля таблицы говорят сами за себя.
Далее. Теперь патчим админку компонента, чтобы можно было эти параметры устанавливать.
Сюда, собственно, код вставляется плохо, поэтому выложу сразу исправленные файлы.
Обновленный компонент+модуль
Ярлыки:
Компоненты Joomla,
модули Joomla,
Программирование,
Сайт,
Beloretsk.RU,
Joomla
пятница, 20 марта 2009 г.
Доклад За кулисами Joomla 1.5.x
Я уже писал, что делаю доклад по Joomla, и вот, наконец, настал тот час, когда я выбрал время и открыл свой любимый OpenOffice Writer и набрал в нем текст доклада.
Доклад получился короткий, рассчитан на читателя хоть сколько-нибудь слышавшего об объектно-ориентированном программировании (потому что упоминается слово класс, инкапсуляция и еще что-то подобное).
Информация, в основном, бралась с англоязычного сайта разработчиков Joomla.
Прочитать можно здесь: За кулисами Joomla 1.5.x
Доклад получился короткий, рассчитан на читателя хоть сколько-нибудь слышавшего об объектно-ориентированном программировании (потому что упоминается слово класс, инкапсуляция и еще что-то подобное).
Информация, в основном, бралась с англоязычного сайта разработчиков Joomla.
Прочитать можно здесь: За кулисами Joomla 1.5.x
понедельник, 16 марта 2009 г.
За кулисами Joomla 1.5.x
За кулисами Joomla 1.5.x -- так я решил назвать свой второй доклад для OpenSource конференции. После просмотра всего, что у меня есть несложного по Joomla и того, что можно рассказать за 15 минут я пришел к выводу, что лучше всего рассказать о нововведениях в архитектуре Joomla 1.5.x, ведь их, как оказалось, действительно, очень много!
Доклад уже готово процентов на 60: написан текст, осталось только его отредактировать и придумать слайды.
Приблизительный план доклада (вряд ли что-то координально поменяю):
Доклад уже готово процентов на 60: написан текст, осталось только его отредактировать и придумать слайды.
Приблизительный план доклада (вряд ли что-то координально поменяю):
- WWW и появление CMS
- Joomla: появление, лицензия, сообщество
- Joomla Framework API
- Joomla MVC модель
- Классы безопасности Joomla
среда, 18 февраля 2009 г.
Социальная сеть на Joomla
Долго не писал, все время выбрать не мог, но вот, наконец-то решил выложить, что накодил за это время. Начну, пожалуй, с самой большой, и как оказалось, бесперспективной, разработки: социальная сеть для Joomla. Погуглив, погуглив, пришел к выводу, что ничего подобного, по крайней мере, в том виде, в котором мне это нужно, для Joomla еще не сделано, вот и решил-таки сделать именно то, что нужно мне.
Получилась, в принципе, рабочая социальная сеть, с возможность общения в группах, обмена сообщениями и прочими малоинтересными вещами.
Выкладываю скрины и сырцы, так как не жалко. Сеть использовалась и разрабатывалась специально для сайта Белорецк.РУ


Скачать com_kontakt
Зы: В архиве лежат файлы, которые на сервер заливать, установочник я так и не сделал
Получилась, в принципе, рабочая социальная сеть, с возможность общения в группах, обмена сообщениями и прочими малоинтересными вещами.
Выкладываю скрины и сырцы, так как не жалко. Сеть использовалась и разрабатывалась специально для сайта Белорецк.РУ


Скачать com_kontakt
Зы: В архиве лежат файлы, которые на сервер заливать, установочник я так и не сделал
понедельник, 12 января 2009 г.
Мысли о раскрутке. Мысль 1
В связи со слезной просьбой начальства о раскрутке сайта начал потихоньку гуглить на тему, как же, собственно, эти сайты раскручивать.
Перво-наперво полез в Википедию и посмотрел, что же такое, собственно, поисковая оптимизация:
По самым ключевым словам сайт на нужной позиции, правда вот эта фигня в первой строчке под ссылкой, похоже и есть description в админке. Меняем это самое описание на вменяемое и ждемс, когда, наконец, сайт переиндексируется.
Перво-наперво полез в Википедию и посмотрел, что же такое, собственно, поисковая оптимизация:
Поисковая оптимизация (англ. search engine optimization, SEO) — процесс корректировки HTML-кода, текстового наполнения (контента), структуры сайта, контроль внешних факторов для соответствия требованиям алгоритма поисковых систем, с целью поднятия позиции сайта в результатах поиска в поисковых системах по определенным запросам пользователей. Чем выше позиция сайта в результатах поиска, тем больше заинтересованных посетителей перейдет на него с поисковых систем.Короче, процесс поисковой оптимизации -- мысли о загоне юзеров на сайт. Читаем дальше, там написано, что учитывают поисковики при индексировании:
частота ключевых слов; сложные алгоритмы современных поисковиков позволяют производить семантический анализ текста, чтобы отсеять поисковый спам, когда ключевое слово встречается слишком часто (более 7-8 процентов от всего содержимого) или слишком редко (1-3 %) на странице. Оптимальная плотность ключевых слов: 5-7 % от текстового содержимого веб-страницы, при этом ключевые слова (фразы) должны встречаться в тексте как минимум 3-4 раза.Для начала, я думаю, займемся ключевыми словами. В коде сайта они выглядят так:
индекс цитирования сайта, или количество веб-ресурсов, ссылающихся на данный сайт; многими поисковиками не учитываются взаимные ссылки (друг на друга), также важно, чтобы ссылки были с сайтов схожей тематики, что и раскручиваемый (оптимизируемый) сайт.
Правда, здесь рядом есть и еще одна строка<meta name="keywords" content="Белорецк, Арский, камень, туризм, фестиваль" />
Теперь смотрим в админку, где это все живет и видим вот что)<meta name="description" content="Белорецк, Арский, камень, туризм, фестиваль" />
Дальше. Смотрим, что к чему. Гуглим по ключевому слову "Арский камень" и видим:
По самым ключевым словам сайт на нужной позиции, правда вот эта фигня в первой строчке под ссылкой, похоже и есть description в админке. Меняем это самое описание на вменяемое и ждемс, когда, наконец, сайт переиндексируется.
Добавление новости от пользователей
Часто бывает нужно дать пользователям возможность самим прислать новость на сайт. Сначала я использовал модули типа прислать сообщение мылом или отправить сообщение на e-mail прямо с сайта, но потом таких сообщений ооочень много да и перебивать их из мыла на сайт влом.
Поэтому я разработал модуль, который без перезагрузки страницы добавляет в категорию неопубликованный материал, а администратору присылает сообщение на электронную почту о добавлении материала. В результате остается только просмотреть материал и опубликовать, если он подходит.
Скачать модуль mod_addnew
Поэтому я разработал модуль, который без перезагрузки страницы добавляет в категорию неопубликованный материал, а администратору присылает сообщение на электронную почту о добавлении материала. В результате остается только просмотреть материал и опубликовать, если он подходит.
Скачать модуль mod_addnew
воскресенье, 11 января 2009 г.
Выезжающее меню на jQuery
jQuery нынче уже не редкость, плагин к нему Accordion уже тоже, тем не менее, готового модуля меню на основе аккордеона я еще не видел. Конкретно говоря, мне понадобилось меню, "кнопками" аккордеона которого бы были категории, а в выезжающем списке -- названия статей из категории.
Работающий пример смотрим здесь.
Скачать модуль mod_sectionmenu
Работающий пример смотрим здесь.
Скачать модуль mod_sectionmenu
суббота, 10 января 2009 г.
Тюнингуем {mosimage}
Что удобно в WordPress, но крайне неудобно в Joomla, так то, что картинки, вставленные в статьи имеют тот же размер, что и сами изображения.
Пораскинув мозгами, пришел к выводу, что изображения в текст статьи вставляет мамбот {mosimage}, то логично было бы править именно его.
Мамбот {mosimage} лежит в папке ~/mambots/content/mosimage.php
Смотрим 163 строку и абзац кода далее
Пораскинув мозгами, пришел к выводу, что изображения в текст статьи вставляет мамбот {mosimage}, то логично было бы править именно его.
Мамбот {mosimage} лежит в папке ~/mambots/content/mosimage.php
Смотрим 163 строку и абзац кода далее
// атрибуты размера изображенияЗаменяем это примерно вот на это =)
$size = '';
if ( function_exists( 'getimagesize' ) ) {
$size = @getimagesize( $mosConfig_absolute_path .'/images/stories/'. $attrib[0] );
if (is_array( $size )) {
$size = ' width="'. $size[0] .'" height="'. $size[1] .'"';
}
}
// атрибуты размера изображенияВ результате мы масштабируем все вставленные изображения до ширины 150 пикселов.
$size = '';
if ( function_exists( 'getimagesize' ) ) {
$size = @getimagesize( $mosConfig_absolute_path .'/images/stories/'. $attrib[0] );
if (is_array( $size )) {
if ($size[0] > 150) {
$size[0] = 150;
$size[1] = $size[0] * 150 / $size[1];
}
$size = ' width="'. $size[0] .'" height="'. $size[1] .'"';
}
}
четверг, 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, который позволяет показывать любой контент во всплывающем фрейме.
В результате объединения получился вот такой вот шаблон.
Скачать шаблон
Посмотреть шаблон можно здесь.
понедельник, 10 ноября 2008 г.
Joomla Простая админка
После всего времени работы с джумлой так и не нашел компонента, который бы позволил избавиться от большой админки с избыточной функциональности, которая по-умолчанию есть в джумле, ну, или хотябы, заменил ее. Пришлось самому написать.
Вот что из этого вышло.
Возможности:
+ Интеграция со стандартным компонентом содержимого
+ Интеграция со стандартным средством управления пользователей
+ Индивидуальные права доступа для каждого пользователя
+ Автоматическое масштабирование изображений
- Модули пока добавляются только вручную.
- Модуль жестко связывается с конфигами джумлы и напрямую работает с БД
Ссылка на скачивание http://www.rapidshare.ru/824558
Скриншоты творчества:



Вот что из этого вышло.
Возможности:
+ Интеграция со стандартным компонентом содержимого
+ Интеграция со стандартным средством управления пользователей
+ Индивидуальные права доступа для каждого пользователя
+ Автоматическое масштабирование изображений
- Модули пока добавляются только вручную.
- Модуль жестко связывается с конфигами джумлы и напрямую работает с БД
Ссылка на скачивание http://www.rapidshare.ru/824558
Скриншоты творчества:



среда, 5 ноября 2008 г.
Joomla и механизм проверки пароля
Возникла необходимость написания простой админки для сайта, отличной от родной джумловской. Столкнулся с проблемой проверки пароля. После недолгих размышлений пришел вот к такому вот решению.
На первый взгляд решение абстрактное и неуклюжее, зато работает.
require ("../configuration.php");
mysql_connect($mosConfig_host,$mosConfig_user,$mosConfig_password) OR DIE ("Не могу создать соединение ");
mysql_select_db($mosConfig_db) OR DIE ("Не могу выбрать базу данных ");
$sql = "select * from site_users where `username`='User_name'";
$res = mysql_query($sql) or die (mysql_error());
echo mysql_result($res, 0, 'password')."
";
$salt = mysql_result($res, 0, 'password');
$salt = trim(substr($salt, strpos($salt, ':')+1));
echo $salt."
";
$pass = $_GET['pass'];
echo $pass."
";
$pass = trim($pass);
$crypt = md5($pass.$salt);
$pass = $crypt.':'.$salt;
echo $pass;
На первый взгляд решение абстрактное и неуклюжее, зато работает.
Закончена работа над большим проектом
Ну вот и закончена работа над еще одним большим проектом. Теперь заказчик еще целый месяц будет мучить мой мозг, чтобы все было так, как он хочет сейчас, а не так, как планировалось.
Реализация на Joomla оказалась несколько сложнее, чем я задумывал. Модули, которые выложены в свободном доступе практически нельзя использовать без переделки, так что большую часть пришлось тупо написать вручную.
Скорее всего, я их здесь все выложу, вдруг еще кому пригодятся.
Реализация на Joomla оказалась несколько сложнее, чем я задумывал. Модули, которые выложены в свободном доступе практически нельзя использовать без переделки, так что большую часть пришлось тупо написать вручную.
Скорее всего, я их здесь все выложу, вдруг еще кому пригодятся.
среда, 29 октября 2008 г.
Модуль отправки e-mail сообщений

После длительной работы так и не обнаружил модуль для Joomla, который бы позволял отправлять e-mail сообщения прямо с сайта на определенный адрес. Решил вот сам модуль написать и выложить, вдруг кому еще понадобиться.
Ссылка на скачивание
Ярлыки:
модули Joomla,
отправка сообщений,
Joomla
понедельник, 27 октября 2008 г.
Первая запись
С чего же начать...
Начнем с того, что уже в который раз перенес вот этот сайт на новый движок. Теперь вот он трудиться на WordPress. С Joomla не вся команда разобралась. Оно и понятно, там был невероятно мощный движок, из которого можно было собрать все, что угодно, а WordPress это просто несложный блог.
Начнем с того, что уже в который раз перенес вот этот сайт на новый движок. Теперь вот он трудиться на WordPress. С Joomla не вся команда разобралась. Оно и понятно, там был невероятно мощный движок, из которого можно было собрать все, что угодно, а WordPress это просто несложный блог.
Подписаться на:
Сообщения (Atom)
