Модуль ZOO Category - как сделать выпадающим списком?

0 Пользователей и 1 Гость просматривают эту тему.
  • 34 Ответов
  • 7273 Просмотров
*

tsg

  • Захожу иногда
  • **
  • 19
  • 1
Подскажите как реализовать вывод категорий в модуле ZOO Category выпадающим списком и также сделать такой вывод в модуле ZOO Item (как на фото).

*

mickle

  • Захожу иногда
  • **
  • 20
  • 2
ИМХО только хаком ядра.
/administrator/components/com_zoo/helpers/html.php
function categoryList()

добавляешь новый параметр IsDropDown=false, и правишь
        return $this->_('zoo.genericlist', $options, $name, $attribs, $key, $text, $selected, $idtag, $translate);
на что-нибудь типа
         return $this->_('zoo.genericlist', $options . (IsDropDown? ' size=5' : '')  , $name, $attribs, $key, $text, $selected, $idtag, $translate);

далее правишь код модуля шоб параметр передался :)

*

likrion

  • Завсегдатай
  • *****
  • 753
  • 126
нафиг ядро то трогать??
сча ребенка из сада заберу - напишу как
R331474010295

*

likrion

  • Завсегдатай
  • *****
  • 753
  • 126
самый простой способ изменить код самого модуля, тупо превратить ul-li в select-optgroup-options

идем в  /modules/mod_zoocategory/tmpl/list.php

и изменяем код

Код
<div class="zoo-category list">

<?php if ($count) : ?>

<ul class="level1">
<?php foreach ($categories as $category) : ?>
<?php echo $zoo->categorymodule->render($category, $params, 2); ?>
<?php endforeach; ?>
</ul>

<?php else : ?>
<?php echo JText::_('COM_ZOO_NO_CATEGORIES_FOUND'); ?>
<?php endif; ?>

</div>


на


Код
<div class="zoo-category list">
<?php if ($count) : ?>
              <select onchange="self.location=this.options[this.selectedIndex].value" style="width: 170px">
                    <optgroup class="level1" label="">      
<?php foreach ($categories as $category) : ?>
<?php echo $zoo->categorymodule->render($category, $params, 2); ?>
<?php endforeach; ?>
                    </optgroup>
              </select>

<?php else : ?>
<?php echo JText::_('COM_ZOO_NO_CATEGORIES_FOUND'); ?>
<?php endif; ?>
</div>


далее идем в /modules/mod_zoocategory/helper.php


и заменяем код  

Код

$result   = array();
$result[] = '<li>';
$result[] = '<a href="'.$url.'">'.$category->name.'</a>';

if ((!$max_depth || $max_depth >= $level) && ($children = $category->getChildren()) && !empty($children)) {
$result[] = '<ul class="level'.$level.'">';
foreach ($children as $child) {
$result[] = $this->render($child, $params, $level+1);
}
$result[] = '</ul>';
}

$result[] = '</li>';

return implode("\n", $result);



на такой

Код

$result   = array();
$result[] = '<option value="'.$url.'">';
$result[] = $category->name;

if ((!$max_depth || $max_depth >= $level) && ($children = $category->getChildren()) && !empty($children)) {
$result[] = '<optgroup class="level'.$level.'" label="" >';
foreach ($children as $child) {
$result[] = $this->render($child, $params, $level+1);
}
$result[] = '</optgroup>';
}

$result[] = '</option>';

return implode("\n", $result);



впринципе все, при вложенности в 1 уровень 100% валидный HTML на 2 уровне появляются некритичные ошибки - не судите строго все на скорую руку -позже доработаю и выложу отдельным модулем с разными стилями


РЕЗУЛЬТАТ


1 уровень вложенности




2 уровня вложенности

« Последнее редактирование: 26.09.2011, 18:35:04 от likrion »
R331474010295

*

tsg

  • Захожу иногда
  • **
  • 19
  • 1
likrion спасибо, все получилось ). Не подскажите такое же решение и для модуля mod_zooitem? Я использую вертикальный вывод (list-v), просмотрел папку mod_zooitem и не нашел там файла helper.php  :(
« Последнее редактирование: 27.09.2011, 00:03:38 от tsg »

*

likrion

  • Завсегдатай
  • *****
  • 753
  • 126
нарисуй как ты себе это представляешь, мне просто легче когда я вижу что хотят
R331474010295

*

mickle

  • Захожу иногда
  • **
  • 20
  • 2
Спасибо за идею!

Хотя с большим списком долго работает, и неудобно. Лучше бы конечно treeview  ;)


*

likrion

  • Завсегдатай
  • *****
  • 753
  • 126
типо вот так??

R331474010295

*

tsg

  • Захожу иногда
  • **
  • 19
  • 1
нарисуй как ты себе это представляешь, мне просто легче когда я вижу что хотят

у меня каталог, модуль mod_zooitem выводит весь товар только одной категории. везде только 1 уровень вложенности.примерно вот так:
выбор категории

и уже в выбранной категории реализовать вывод материалов (товаров) в модуле mod_zooitem выпадающим списком
 

*

likrion

  • Завсегдатай
  • *****
  • 753
  • 126
т.е. тебе надо чтобы товары выводились select списком также как и категории?    сфоткай как сейчас
R331474010295

*

tsg

  • Захожу иногда
  • **
  • 19
  • 1
да, чтобы выводились select списком также как и категории ). вот скрин как сейчас выводится ( категории уже выпадающим списком, хотелось так выводить и материалы)


*

likrion

  • Завсегдатай
  • *****
  • 753
  • 126
там несколько сложнее..это понадобится создавать отдельный стиль чтобы получилось хотя бы так  




или я неправильно понял?
R331474010295

*

tsg

  • Захожу иногда
  • **
  • 19
  • 1
в принципе так. и вообще почему стала такая задача - просто товаров на одну категорию примерно 80 и если их выводить обычным вертикальным списком, то страничка получается очень длинной. а если выпадающим списком, то все компактно и удобно для пользователя ).

*

mickle

  • Захожу иногда
  • **
  • 20
  • 2
типо вот так??



угу, только покомпактнее и выпадалкой.

*

likrion

  • Завсегдатай
  • *****
  • 753
  • 126
в head своего шаблона добавляй

Код

  <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
  <link rel="stylesheet" href="http://jquery.bassistance.de/treeview/jquery.treeview.css" type="text/css" />
  <script type="text/javascript" src="http://jquery.bassistance.de/treeview/jquery.treeview.js"></script>
  <script type="text/javascript">$(document).ready(function(){$("#example").treeview();});</script>


или скачай к себе и укажи путь до скриптов

jquery.treeview.css  можешь удалить из строк если перенесешь себе CSS  в /modules/mod_zoocategory/tmpl/list/style.css



листинг /modules/mod_zoocategory/helper.php

Код
<?php
/**
* @package   ZOO Category
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/

/*
Class: CategoryModuleHelper
The category module helper class
*/
class CategoryModuleHelper extends AppHelper {

    public function render($category, $params, $level) {

// init vars
$max_depth = $params->get('depth', 0);

if ($menu_item = $params->get('menu_item')) {
$url = $this->app->link(array('task' => 'category', 'category_id' => $category->id, 'Itemid' => $menu_item));
} else {
$url = JRoute::_($this->app->route->category($category));
}

$result   = array();
$result[] = '<li><span class="file">';
$result[] = '<a href="'.$url.'">'.$category->name.'</a></span>';

if ((!$max_depth || $max_depth >= $level) && ($children = $category->getChildren()) && !empty($children)) {
$result[] = '<ul class="folder">';
foreach ($children as $child) {
$result[] = $this->render($child, $params, $level+1);
}
$result[] = '</ul>';
}

$result[] = '</li>';

return implode("\n", $result);
}

}




листинг  /modules/mod_zoocategory/tmpl/list.php

Код
<?php
/**
* @package   ZOO Category
* @author    YOOtheme http://www.yootheme.com
* @copyright Copyright (C) YOOtheme GmbH
* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/

// no direct access
defined('_JEXEC') or die('Restricted access');

// include css
$zoo->document->addStylesheet('mod_zoocategory:tmpl/list/style.css');

$count = count($categories);

?>

<div class="zoo-category list">

<?php if ($count) : ?>

<ul id="example" class="filetree">
<?php foreach ($categories as $category) : ?>
<?php echo $zoo->categorymodule->render($category, $params, 2); ?>
<?php endforeach; ?>
</ul>

<?php else : ?>
<?php echo JText::_('COM_ZOO_NO_CATEGORIES_FOUND'); ?>
<?php endif; ?>

</div>



РЕЗУЛЬТАТ  Без настройки CSS



100% HTML valid
« Последнее редактирование: 28.09.2011, 01:03:31 от likrion »
R331474010295

*

dolfun

  • Осваиваюсь на форуме
  • ***
  • 76
  • 0
не раскрываются у меня категории ((( по последнему методу. Выпадающим все работает отлично.
Это у меня только не работает? Или....

*

nick71

  • Живу я здесь
  • ******
  • 1143
  • 0
  • Сайты любой сложности - обращайтесь
а готового решения нет в виде модуля, чтоб выглядело как здесь: http://portall.com.ua/tambour2/
Модуль слева
Основная специализация - стандартные сайты на Joomla, но готовы к выполнению работ любой степени сложности, есть специалисты самой высокой квалификации, в т.ч. каталоги и магазины с синхронизацией с 1С. Скайп portall.com.ua Ася 473737041, телефон в Киеве (044) 361-7570

*

ritm-it45

  • Осваиваюсь на форуме
  • ***
  • 64
  • 0
likrion
не подскажешь как в этом модуле сделать вывод изображения категории

*

nick71

  • Живу я здесь
  • ******
  • 1143
  • 0
  • Сайты любой сложности - обращайтесь
у меня каталог, модуль mod_zooitem выводит весь товар только одной категории. везде только 1 уровень вложенности.примерно вот так:
выбор категории

и уже в выбранной категории реализовать вывод материалов (товаров) в модуле mod_zooitem выпадающим списком
 

А можно в ЗУ сделать при добавлении материала что-то похожее? Мне надо чтоб добавляющий материал выбирал из списка Область, а потом из следующего списка Город выбранной области?
Основная специализация - стандартные сайты на Joomla, но готовы к выполнению работ любой степени сложности, есть специалисты самой высокой квалификации, в т.ч. каталоги и магазины с синхронизацией с 1С. Скайп portall.com.ua Ася 473737041, телефон в Киеве (044) 361-7570

*

MetaSpirit

  • Живу я здесь
  • ******
  • 1379
  • 106
  • R.A.S.Lab[.org]
А можно в ЗУ сделать при добавлении материала что-то похожее? Мне надо чтоб добавляющий материал выбирал из списка Область, а потом из следующего списка Город выбранной области?
Связанные списки пока не встречались
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.

*

yandex_hb

  • Давно я тут
  • ****
  • 350
  • 20
Извиняюсь, может быть не по теме, но вы упоминали про:
Код: html4strict
  <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
  <link rel="stylesheet" href="http://jquery.bassistance.de/treeview/jquery.treeview.css" type="text/css" />
у меня zoo уже подгружает:
Код: html4strict
  <script type="text/javascript" src="/media/zoo/libraries/jquery/jquery.js"></script>
  <script type="text/javascript" src="/components/com_zoo/assets/js/default.js"></script>
как удалить запись zoo, чтоб погружать с jquery.com или Google?

*

newvideo

  • Осваиваюсь на форуме
  • ***
  • 192
  • 2
подскажите как вывести все категории со всеми содержащимися в них файлами каталога, желательно в цикле по 1 пункту, так чтобы я смог тэги разметки вставлять.
стандартный модуль категорий выводит категории, а модуль итемов выводит материалы, нужно как-то склеить эти модули. Пока всё что у меня работает это:
Код
foreach ($category->getChildren(true) as $category) :
echo $category -> name.'</br>';
endforeach;

непонятно что за метод getChildren (подскажите какие методы ещё есть и где о них узнать?)
откуда берется переменная $category?
ну и самое важное как в цикл добавить цикл вывода итэмов?
« Последнее редактирование: 29.01.2017, 15:40:24 от newvideo »
кто не работает, тот ест

*

nick71

  • Живу я здесь
  • ******
  • 1143
  • 0
  • Сайты любой сложности - обращайтесь
в JBZOO есть такой модуль, готовый
Основная специализация - стандартные сайты на Joomla, но готовы к выполнению работ любой степени сложности, есть специалисты самой высокой квалификации, в т.ч. каталоги и магазины с синхронизацией с 1С. Скайп portall.com.ua Ася 473737041, телефон в Киеве (044) 361-7570

*

newvideo

  • Осваиваюсь на форуме
  • ***
  • 192
  • 2
в JBZOO есть такой модуль, готовый
рискну предположить, что вы отвечали мне, в JBZoo Cat List выводится только выбранная категория без вложений
кто не работает, тот ест

*

newvideo

  • Осваиваюсь на форуме
  • ***
  • 192
  • 2
в модуле ZooItem выводится так $renderer->render('item.'.$layout, compact('item', 'params'));
При попытке вставить этот вывод в модуль ZooCat выводится Fatal error: Call to a member function render() on a non-object in
Я так понимаю render() не находит. В модуле ZooItem есть описание типа:   $renderer = $zoo->renderer->create('item')->addPath(array($zoo->path->path('component.site:'), dirname(__FILE__)));
Вставляю это объявление в modZooCategory.php но таже ошибка

« Последнее редактирование: 29.01.2017, 18:32:08 от newvideo »
кто не работает, тот ест

*

newvideo

  • Осваиваюсь на форуме
  • ***
  • 192
  • 2
А в ZooItem при выводе есть такой код
Код
foreach ($items as $item) : 
echo $renderer->render('item.'.$layout, compact('item', 'params'));
$i++; endforeach;

где в цикле используется $item? ^-^
« Последнее редактирование: 29.01.2017, 18:32:17 от newvideo »
кто не работает, тот ест

*

nick71

  • Живу я здесь
  • ******
  • 1143
  • 0
  • Сайты любой сложности - обращайтесь
рискну предположить, что вы отвечали мне, в JBZoo Cat List выводится только выбранная категория без вложений
да, именно о нем речь, хотя если покупали лицензию там в маркетплейсе можно еще поискать, а этот модуль выводит категории/подкатегории/материалы, а что именно выводить в шаблоне можно настроить.
Основная специализация - стандартные сайты на Joomla, но готовы к выполнению работ любой степени сложности, есть специалисты самой высокой квалификации, в т.ч. каталоги и магазины с синхронизацией с 1С. Скайп portall.com.ua Ася 473737041, телефон в Киеве (044) 361-7570

*

newvideo

  • Осваиваюсь на форуме
  • ***
  • 192
  • 2
да, именно о нем речь, хотя если покупали лицензию там в маркетплейсе можно еще поискать, а этот модуль выводит категории/подкатегории/материалы, а что именно выводить в шаблоне можно настроить.
в маркет у меня доступа нет, но даже как-то в поиск я попал, ничего не нашел, что нужно...
как подскажите пожалуйста вывести подкатегории?
кто не работает, тот ест

*

nick71

  • Живу я здесь
  • ******
  • 1143
  • 0
  • Сайты любой сложности - обращайтесь
да, сорри, подкатегории не выводит...
Основная специализация - стандартные сайты на Joomla, но готовы к выполнению работ любой степени сложности, есть специалисты самой высокой квалификации, в т.ч. каталоги и магазины с синхронизацией с 1С. Скайп portall.com.ua Ася 473737041, телефон в Киеве (044) 361-7570

*

newvideo

  • Осваиваюсь на форуме
  • ***
  • 192
  • 2
да, сорри, подкатегории не выводит...
о чем и речь, простейшая задача, уверен нужен многим такой функционал, его кроме меню сайта, можно использовать как карту сайта, но пока на этот счет глухо, тут в соседней ветке кодик нашел - не работает, ошибки, ошибки...
кто не работает, тот ест