Главная » Joomla » Статьи о Joomla » Создание сайтов » Дружим sCatalog и JoomFish на Joomla 1.5
Распечатать статью

Дружим sCatalog и JoomFish на Joomla 1.5

Scatalog и JoomFishИтак, у нас имеется сайт на базе компонента sCatalog и спустя время, в связи с расширением, клиенту нужно создать английскую версию сайта. Для чего мы будем использовать панацею многоязычности — JoomFish. Но как быть с переводом контента каталога? Вот тут мы сталкиваемся с проблемой, поскольку официального плагина sCatalog для JoomFish не существует. Проблема усугубляется тем, что каталог позволяет пользователю создавать дополнительные поля, но как их учитывать в плагине JoomFish? Мы не стали мудрствовать лукаво и заточили плагин под конкретные нужды сайта, т.е. с минимальной конфигурацией (автором модификации и плагина является Era, за что ему объявляется благодарность).

 

Этап 1. Создаём плагин для JoomFish. Категории sCatalog.

Создаём плагин и кладём в /administrator/components/com_joomfish/contentelements/scatalog_categories.xml:

 

1.<joomfish type="contentelement"> <name>SCatalog Categories</name> <author>A. Balashov</author> <version>1.0.0</version> <description>SCatalog Category Items Translate</description> <copyright>2011, Balashov Aleksandr, aka Era</copyright> <reference><field type="referenceid" name="id" translate="0">ID</field><field type="titletext" name="title" translate="1">Title</field><field type="htmltext" name="short_desc" translate="1">Short Description</field><field type="htmltext" name="desc" translate="1">Description</field>
2.<table name="scatalog_categories"></table>
3.<component> </component> </reference> </joomfish>

Этап 2. Создаём плагин для JoomFish. Товары sCatalog.

Создаём плагин и размещаем его в /administrator/components/com_joomfish/contentelements/scatalog_products.xml:

1.<joomfish type="contentelement"> <name>SCatalog products</name> <author>A. Balashov</author> <version>1.0.0</version> <description>SCatalog Tovars Items Translate</description> <copyright>2011, Balashov Aleksandr, aka Era</copyright> <reference><field type="referenceid" name="id" translate="0">ID</field><field type="titletext" name="title" translate="1">Title</field><field type="htmltext" name="short_desc" translate="1">Short Description</field><field type="htmltext" name="desc" translate="1">Description</field>
2.<table name="scatalog_products"></table>
3.<component> </component> </reference> </joomfish>

Этап 3. Вносим небольшую модификацию в компонент sCatalog.

Для поддержки перевода в модуле категорий добавлены строчки в /components/com_scatalog/models/category.php в функцию getNodes. Между строками:

1.foreach($prods as &$row) $row->link = JRoute::_('index.php?option=com_scatalog&view=product&catid='.$cslug.'&id=' .$row->slug); $res = array_merge($res, $prods); }

и строками:

1.return $res; } function getCatTree() {

Добавляем модификацию:

1.// era edited: added start if (count($res) and file_exists(JPATH_SITE.DS.'components'.DS.'com_joomfish')) { $itms = array(); foreach($res as $r) { $itms[] = str_replace('cat-', '', $r->id); } if (count($itms)) { $this->_db->setQuery("SELECT id, title FROM #__scatalog_categories WHERE id IN (".implode(",", $itms).")"); $res_items = $this->_db->loadObjectList(); if (count($res_items)) { for($i = 0; $i < count($res); $i++) { foreach($res_items as $res_item) { if ('cat-'.$res_item->id == $res[$i]->id) { $res[$i]->name = $res_item->title; } } } } } } // era edited: added end

 

Источник:  joomlablog.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи