|
danik.html
|
 |
« : 11.04.2010, 04:21:46 » |
|
Модуль категорий для VirtueMart 1.* - mod_virtuemart_categories Если вам нужен аналогичный модуль для JoomShopping, вам сюда. Скриншоты фронта: Особенности:1) Привязка к пункту меню - обязательно укажите эту опцию, иначе ссылки выдаваемые модулем буду "плавать" , тоесть зависить от текущей просматриваемой странице. Также не будет правильно работать подсветка активного пункта меню (в модуле меню) 2) Вывод только одной категории и ее субкатегорий 3) Создание списка категорий, выводить которые не нужно, или наоборот нужно. 4) Возможность выводить категории только с и до определенного уровня, то есть можно создать два связанных модуля (аналогично mod_mainmenu) 5) Имеется 4 шаблона модуля, принципиально отличающихся: Accordion, MooTree, Select, дефолтный. Можно их перекрывать в своем шаблоне сайта, или добавлять новые - они появятся в настройках. 6) Стандартные возможности указания суффиксов, кеширования и тд. 7) Две локализации - Русский и Английский. Важно:1) Корнем Mootree, если не задано в настройках, является пункт меню, если задан, или же пункт меню по умолчанию (главная сайта) 2) При включенном кеше модуля не будут работать Mootree и Accordion, а так же разворачиваться активные категории 3) При использовании Mootree и Accordion нужно отключить сворачивание меню 4) Стиль списка категорий может отличаться от стиля меню, из-за немного иной разметки. Решение проблемы описано в "Кастомизация. HTML". 5) В модуле нет каких либо js-файлов, используется стандартный функционал Joomla(mootools.js, accordion.js включенный в сборку mootools.js, mootree.js) 6) При использовании двух копий модуля с шаблоном mootree или accordion, как минимум в одном из них должен быть прописан параметр id списка, причем отличный от дефолтного( не mootree или accordion соответственно) "Написание CSS-стилей для модуля" ul в default и accordion имеет класс .menu{суффикс_если_задан}в select тег не ul а select, и имеет класс .select{суффикс_если_задан}Активные пункты имеют класс .active(как в mod_mainmenu), текущий - .current Родительские - .parent. В select выпадающие пункты так же имеют эти классы. Так же в Accordion имеется класс .expanded, помечающий развернутые пункты. Пример: Для accordion и default .menu .active a{ color: red; } .menu .current a{ text-decoration: underline; }Для select .select .active{ background: #eee; } .select .current{ color: #f00; }Для mootree нужно использовать классы .mooTree_text и .mooTree_selected, приписывая свойствам !important, потому как они уже определены в файле media/system/css/mootree.css "Изменение HTML-разметки модуля" Если нужно изменить основную html-разметку модуля, нужно создать папку templates/текущий_шаблон/html/mod_virtuemart_categories/и скопировать туда нужный файл из modules/mod_virtuemart_categories/tmpl/ . Теперь в файл можно вносить изменения. В этом файле вы не найдете ожидаемой разметки типа тегов ul, li, a и тд.. Модуль использует немного другой механизм создания html-кода. Весь список представляет собой xml-объект, имеющий набор методов для добавления/изменения узлов - каждый узел впоследствии "рендерится" в соответствующий html-тег. В файле имеется функция-декоратор, которой в цикле передается каждый узел списка. С ним можно делать что угодно. К примеру, чтобы разметка совпадала с mod_mainmenu, допишем в раздел case: 'a' такой код: // inject span into anchor $node->addChild('span')->setData($node->data()); Для этого категориям назначаем картинки, но не Полные изображения, а миниатюры (thumbnails). Затем добавим в case: 'li' (читаем Кастомизация. HTML) этот код: if ($node->attributes('image')) { $node->a[0]->addChild('img', array('src' => $node->attributes('image'), 'alt' => $node->a[0]->data()) ); }а в case: 'a' этот: $node->addChild('span')->setData($node->data());Добавил новый шаблон модуля(layout) - MooExplorer. Основан на MooTree. Отличие - подргужает через AJAX подкатегории и ТОВАРЫ. Таким образом в нутри модуля умещается весь ваш магазин ) В модуль его добавляем так: Качаем mooexplorer.layout.zip, распаковываем в папку вашего шаблона сайта. Идем в админку, выставляем в параметрах модуля Шаблон модуля - mooexplorer. Внимание! в mooexplorer есть ошибка, изза которой со включенным sef-ом работать не будет. Чтоб заработал нужно заменить в коде index.html на index.php и все.
|
|
|
|
« Последнее редактирование: 26.03.2012, 14:35:58 от danik.html »
|
Записан
|
|
|
|
| |
|
danik.html
|
 |
« Ответ #181 : 23.08.2010, 17:36:39 » |
|
включите в настройках Joomla максимальное отображение ошибок. И какая версия php у вас?
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #182 : 23.08.2010, 17:41:52 » |
|
вот шаблон table, в шапке темы описано как добавлять шаблоны <?php
// no direct access defined('_JEXEC') or die('Restricted access');
if ( ! defined('VMCategoriesTableDecoratorDefined') ) { function VMCategoriesTableDecorator(&$node, &$args) { $categories = & VMCategories::getInstance(); $active = $categories->getActive(); $path = $active ? $active->getPath() : false; $columns = 3; $count = 0;
switch ($node->name()) { case 'ul': // get children before appending table $children = $node->children(); // append table $table = $node->addChild('table'); // iterate through list items foreach ($children as $child) { // new table row if nesessary if ($count % $columns == 0) { $tr = $table->addChild('tr'); } // append cell $td = $tr->addChild('td'); // set current class if ($path && $child->attributes('id') == $path[0]) { $td->addAttribute('class', $td->attributes('class').' current'); } // set active class if ($path && in_array($child->attributes('id'), $path)) { $td->addAttribute('class', $td->attributes('class').' active'); } // append anchor $a = $td->addChild('a'); $a->setData($child->a[0]->data()); $a->addAttribute('href', $child->a[0]->attributes('href')); $count ++; } break; case 'li': break; case 'a': // do nothing break; }
// remove XML attributes $node->removeAttribute('id'); $node->removeAttribute('level'); }
define('VMCategoriesTableDecoratorDefined', true); }
// get XML directly coz we have to make some manipulations with it $xml = & modVMCategoriesHelper::getXML($params);
if ($xml) { // pass each node to $decorator function $xml->map('VMCategoriesTableDecorator', array('xml'=>$xml, 'params'=>$params));
// just make table as root of xml $xml = $xml->table[0];
$class_sfx = $params->get('class_sfx'); $tag_id = $params->get('tag_id');
$xml->addAttribute('class', 'menu'.$class_sfx); $tag_id and $xml->addAttribute('id', $tag_id);
echo JFilterOutput::ampReplace( $xml->toString(true) ); }
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #183 : 23.08.2010, 17:44:35 » |
|
в папке elements тоже надо все self'ы поправить, это изза них админка не кажет... Не знаю, сделать это самому и выложить новую версию, или php4 слишком редко встречается чтоб заморачиваться...
|
|
|
|
|
Записан
|
|
|
|
pecha
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 15
|
 |
« Ответ #184 : 23.08.2010, 17:48:35 » |
|
Пасибо, здесь описание есть - с 4 пусть читают ИМХО, и правят ручками, или пинают хостеров.
|
|
|
|
|
Записан
|
|
|
|
pecha
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 15
|
 |
« Ответ #185 : 23.08.2010, 19:08:17 » |
|
в папке elements тоже надо все self'ы поправить, это изза них админка не кажет... Не знаю, сделать это самому и выложить новую версию, или php4 слишком редко встречается чтоб заморачиваться...
Не помогло
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #186 : 23.08.2010, 19:10:21 » |
|
А отображение ошибок включил? Должны же выскочить ошибки...
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #187 : 23.08.2010, 19:20:53 » |
|
если ты везде self подменил, то думаю косяк может быть еще изза имени переменной - $item->parent. В общем если есть желание разобраться, напишешь о результатах. Если ниче не получится - попробую тогда сам поправить...
|
|
|
|
|
Записан
|
|
|
|
pecha
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 15
|
 |
« Ответ #188 : 23.08.2010, 19:22:14 » |
|
Когда заходишь в модуль - то как на картинки. когда ставишь то вот: 1. SELECT * FROM jos_components WHERE parent = 0 2. SELECT folder AS type, element AS name, params FROM jos_plugins WHERE published >= 1 AND access <= 2 ORDER BY ordering 3. SELECT template FROM jos_templates_menu WHERE client_id = 1 AND menuid = 0 4. SELECT `id` FROM `jos_modules` WHERE module = 'mod_virtuemart_categories' AND client_id = 0 5. SELECT `id` FROM `jos_modules` WHERE module = 'mod_virtuemart_categories' AND client_id = 0 6. DELETE FROM jos_modules_menu WHERE moduleid = 72 7. INSERT INTO `jos_modules_menu` VALUES (72, 0 ) 8. SELECT id, title, module, position, content, showtitle, control, params FROM jos_modules AS m LEFT JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 2 AND m.client_id = 1 ORDER BY position, ordering 9. SELECT a.*, SUM(b.home) AS home FROM jos_menu_types AS a LEFT JOIN jos_menu AS b ON b.menutype = a.menutype GROUP BY a.id 10. SELECT * FROM jos_components WHERE `option` <> "com_frontpage" AND `option` <> "com_media" AND enabled = 1 ORDER BY ordering, name 11. SELECT COUNT(*) FROM jos_messages WHERE state = 0 AND user_id_to = 62 12. SELECT COUNT( session_id ) FROM jos_session WHERE guest <> 1
|
|
|
|
|
Записан
|
|
|
|
pecha
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 15
|
 |
« Ответ #189 : 23.08.2010, 19:23:40 » |
|
В общем если есть желание разобраться, напишешь о результатах. Если ниче не получится - попробую тогда сам поправить...
Перенос закончу и буду разбираться, ибо ваш модуль - единственный прямой. Правда в ПХП не силен. ну да Яндекс есть
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #190 : 23.08.2010, 19:45:48 » |
|
это ты включил режим отладки, а я говорю включить Сообщения об ошибках, должны вылезти ошибки. Это во вкладке Сервер настроек Joomla
|
|
|
|
|
Записан
|
|
|
|
pecha
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 15
|
 |
« Ответ #191 : 23.08.2010, 20:28:34 » |
|
Fatal error: Undefined class name 'modvmcategorieshelper' in /home/domov52.ru/data/www/domov52.ru/modules/mod_virtuemart_categories/elements/vmcategory.php on line 31 там сейчас $options = modVMCategoriesHelper::_toArray($tree);
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #192 : 23.08.2010, 20:53:07 » |
|
будь внимательней, класс то тут другой - JElementVMCategory, и во всех других файлах классы тож свои )
|
|
|
|
|
Записан
|
|
|
|
pecha
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 15
|
 |
« Ответ #193 : 23.08.2010, 21:16:06 » |
|
будь внимательней, класс то тут другой - JElementVMCategory, и во всех других файлах классы тож свои )
Заработало, разбираюсь с выводом пока не выводит
|
|
|
|
|
Записан
|
|
|
|
kobru
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 13
|
 |
« Ответ #194 : 25.08.2010, 05:17:20 » |
|
добрых суток. как в списке подкатегорий, к каждой подкатегории и к заголовку списка подкатегорий прикрепить свою картинку? типа такого:
*картинка папуаса* устрой охоту себе сам *картинка акулы* живые акулы *картинка копья* первобытные орудия охоты *картинка бумаги* туалетная бумага
|
|
|
|
« Последнее редактирование: 25.08.2010, 05:21:44 от kobru »
|
Записан
|
|
|
|
xCoReLx
Давно я тут
  
Репутация: +7/-0
Offline
Пол: 
Сообщений: 273
|
 |
« Ответ #195 : 25.08.2010, 16:25:09 » |
|
у меня не работает Mootree, когда вкючаю, в меню поный бордак картинки кашей
|
|
|
|
|
Записан
|
|
|
|
IvanSmirnov
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 83
|
 |
« Ответ #196 : 25.08.2010, 17:19:03 » |
|
Публикую новую версию - 2.0.0. Пока как тестовую, потому как не уверен что все ошибки отловлены. Код полностью переписан, модуль работает еще быстрее. Модуль категорий VirtueMart - mod_virtuemart_categories
СПАСИБО!
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #197 : 25.08.2010, 18:06:08 » |
|
xCoReLx, а можно ссылку на бордак? или хотябы скрин?
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #198 : 25.08.2010, 19:18:35 » |
|
Добавил в шапку темы инфу как сделать меню с иконками.
|
|
|
|
|
Записан
|
|
|
|
xCoReLx
Давно я тут
  
Репутация: +7/-0
Offline
Пол: 
Сообщений: 273
|
 |
« Ответ #199 : 25.08.2010, 20:25:27 » |
|
 вот такое вылазит, а аккордионом мне не нра жумла 1,5,20+ ВМ 1,1,15
|
|
|
|
« Последнее редактирование: 25.08.2010, 20:30:35 от xCoReLx »
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #200 : 25.08.2010, 20:55:13 » |
|
прикольно ) а можно ссылку? или хотябы шаблон который вы используете...
|
|
|
|
|
Записан
|
|
|
|
xCoReLx
Давно я тут
  
Репутация: +7/-0
Offline
Пол: 
Сообщений: 273
|
 |
« Ответ #201 : 25.08.2010, 21:30:32 » |
|
http://bike-street.ru шаблон sunshine, Разобрался, модуль не хочет дружить с резиновым шаблоном!
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #202 : 25.08.2010, 21:38:20 » |
|
гы гы.. Байкер-Стрит с beez-шаблоном офигеть как смотрица )))
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #203 : 25.08.2010, 21:43:48 » |
|
Нет, дело вот в этом: #left_out .module div div div div, #right_out .module div div div div, #left_out .moduletable div div div div, #right_out .moduletable div div div div, #left_out .module_menu div div div div, #right_out .module_menu div div div div, #left_out .module_text div div div div, #right_out .module_text div div div div { margin:0; padding:0; } ice_sp...se=gzip (строка 69) #left_out .module div div div, #right_out .module div div div, #left_out .moduletable div div div, #right_out .moduletable div div div, #left_out .module_menu div div div, #right_out .module_menu div div div, #left_out .module_text div div div, #right_out .module_text div div div { background:none repeat scroll 0 0 transparent; overflow:hidden; padding:5px 5px 10px; width:172px; }Это css-код вашего шаблона красного... Как можно заметить он не очень то заботится о том чтоб не повлиять на модули расположенные в сайдбарах... Нужно либо переделывать либо менять шаблон... а разве индивидуальный дизайн не в планах  ?
|
|
|
|
|
Записан
|
|
|
|
xCoReLx
Давно я тут
  
Репутация: +7/-0
Offline
Пол: 
Сообщений: 273
|
 |
« Ответ #204 : 25.08.2010, 21:54:39 » |
|
к сожалению бюджет не позволяет
|
|
|
|
|
Записан
|
|
|
|
IvanSmirnov
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 83
|
 |
« Ответ #205 : 25.08.2010, 23:16:51 » |
|
Очень классный модуль!! НО, кто-нибудь знает как решить мою проблему? Модуль с ОПРЕДЕЛЕННЫМИ категориями выводится с привязкой к определенной странице (привязка к пункту другого меню Joomla). Так вот, а когда я захожу в карточку товара, то модуль пропадает. Как сделать, чтобы модуль отображался и на карточках тех товаров, чьи категории разрешены к отображению в модуле. Во как.
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #206 : 25.08.2010, 23:56:31 » |
|
Как я понял у вас задача: отображать модулем некоторые категории на некоторых страницах(категориях) магазина, верно? и вы для этого насоздавали пунктов в джумловском меню, и привязали к нужным пунктам модуль(список в левой нижней части страницы настроек модуля), так? и проблема в том что модуль отображается в категориях, но не отображается если перейти в карточку? ну, можно тогда насоздавать пунктов для товаров, и добавить соответсвующую привязку. или попробовать использовать такие настройки как начальный уровень. иль я не так понял?
|
|
|
|
|
Записан
|
|
|
|
IvanSmirnov
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 83
|
 |
« Ответ #207 : 26.08.2010, 10:26:26 » |
|
Как я понял у вас задача: отображать модулем некоторые категории на некоторых страницах(категориях) магазина, верно? и вы для этого насоздавали пунктов в джумловском меню, и привязали к нужным пунктам модуль(список в левой нижней части страницы настроек модуля), так? и проблема в том что модуль отображается в категориях, но не отображается если перейти в карточку? ну, можно тогда насоздавать пунктов для товаров, и добавить соответсвующую привязку. или попробовать использовать такие настройки как начальный уровень. иль я не так понял?
Все ровно наоборот. У меня есть три пункта меню самой Joomla они соответствуют трем родительским разделам VM. (Сразу спрошу, можно ли вывести модуль с родительскими категориями в стиле Joomla, как главное меню?) Этими родительскими категориями сайт как бы разделен на три части, Часть 1, часть 2, часть 3 В кадой части свои совершенно разные товары. Для части 1 я вывожу модуль с его категориями, для части 2 с его категориями и т.д. Но когда зазожу в карточку товара, модули пропадают. Как это исправить ? спасибо!
|
|
|
|
|
Записан
|
|
|
|
|
danik.html
|
 |
« Ответ #208 : 26.08.2010, 10:59:53 » |
|
Проблема никакого отношения к модулю не имеет. Проследите за Itemid в адресе - при переходе к карточке товара он не должен теряться или меняться. Если не разберетесь - воспользуйтесь поиском по форуму, уверен тему обсуждали..
|
|
|
|
|
Записан
|
|
|
|
IvanSmirnov
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 83
|
 |
« Ответ #209 : 26.08.2010, 11:08:52 » |
|
Проблема никакого отношения к модулю не имеет. Проследите за Itemid в адресе - при переходе к карточке товара он не должен теряться или меняться. Если не разберетесь - воспользуйтесь поиском по форуму, уверен тему обсуждали.. К модулю претензий нет! Такой модуль я неделю искал! И за него огромное спасибо! Itemid действительно меняется с 3 на 1. Как это поправить ?
|
|
|
|
|
Записан
|
|
|
|
kobru
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 13
|
 |
« Ответ #210 : 26.08.2010, 15:23:17 » |
|
Добавляю картинки к подкатегориям по этому варианту: 2) Накидываем в папку images свои иконки, скажем c_1.png, c_2.png и тд... добавляем в case: 'li' следующий код: Код
$icon = 'c_'.$node->attributes('id').'.png'; if ( file_exists(JPATH_SITE.DS.'images'.DS.$icon) ) { $node->addAttribute('style', "background-image:"."url('/images/$icon')"); }
Не забываем добавить в CSS .menu li{background-repeat: no-repeat} сделал картинки, положил в /images/ картинки названы согласно id подкатегорий.. код вставлял в tmpl/default.php ничего не меняется... что-не так делаю?
|
|
|
|
|
Записан
|
|
|
|
|