Новости Joomla

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

delames

  • Захожу иногда
  • 141
  • 10 / 0
  • Решаю программные вопросы за $ - Обращайтесь!
Ребят, вот задумался о реализации двустороннего добавления Related Item. Короче под этим я подоразумеваю следующую фишку: когда админ добавляет Related Item, то и  редактируемый Item ТАКЖЕ становится Relat'ным по отношению к добавленному. Удобство в том чтобы не делать лишнюю работу. Да по возможности вкл/выкл этой опции.

Тока покапавшись в в admin\elements\relateditems\relateditems.php

Подозреваю что установка происходит в function decodeXML. Кто как считает, может общими усилиями?
« Последнее редактирование: 20.10.2010, 20:35:53 от delames »
*

PashkaRu

  • Давно я тут
  • 941
  • 91 / 4
  • Дедушка Игнат, изыди ((((
Помочь ничем не могу, но сказать что это правильная мысль - это могу : )
Такой плагин реализован во Флекси.
Сразу скажу некоторые недостатки, которые могут быть. Впрочем, это и к нынешнему, наверное, может относиться (давно зуу не трогал).
Приходится иметь дело с огромным списком материалов (если, конечно, их много на сайте)
+
*

delames

  • Захожу иногда
  • 141
  • 10 / 0
  • Решаю программные вопросы за $ - Обращайтесь!
Приходится иметь дело с огромным списком материалов (если, конечно, их много на сайте)

Есть немного.. Но спасает хоть как-то фильтр. А вот назначать одно и тоже в Related - вот это большой недостаток.) Хотя по логике вещей, если он ей релейтный зн и она ему такова-же)
*

lovec

  • Захожу иногда
  • 66
  • 0 / 0
а когда несколько тыщ статей? то же ковыряться и вспоминать какая релейтная? Вообще это бредовый механизм. Не доделанный точнее
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
ну вот вы не видите логики, а я вижу :)
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

sm_denis

  • Захожу иногда
  • 441
  • 36 / 2
Немного по другому решил эту проблему - способ кастыльный :)

Создал отдельную таблицу
jos_zoo_item_separated
Код
    id	                int(11) unsigned Автоматическое приращение	 
    item_id         int(11)
    application_id int(11)
    identifier         varchar(255)
    value         varchar(255)
    text         text
тут еще индексы добавьте


в класс ItemTable добавил новый метод
Код: php
    function saveSaparatedData($item, $identifier, $data) {

        $db = & JFactory::getDBO();
       
        $sql = 'DELETE FROM `#__zoo_item_separated` WHERE (
            `identifier` = "'.$identifier.'" AND
            `application_id` = "'.$item->application_id.'" AND
            `item_id` = "'.$item->id.'"
        )';
        $db->setQuery($sql);
        $db->query();
       
        if (count($data) > 0) {
            foreach ($data as $key=>$val) {
                if (strlen($val['value']) > 0 || strlen($val['text']) > 0) {
                    $obj = new stdClass;
                    $obj->item_id = $item->id;
                    $obj->application_id = $item->application_id; 
                    $obj->identifier = $identifier; 
                    $obj->value = $val['value']; 
                    $obj->text = $val['text'];
                    $db->insertObject('#__zoo_item_separated', $obj);
                } 
            }
        }
    }


при сохранении в этом же классе
Код: php
    public function save($object) {

...
        foreach ($object->getElements() as $id => $element) {
...
            if ($element->getConfig()->get('separated', 0) == '1') {
                $this->saveSaparatedData($object, $element->identifier, $element->getSeparateData());
            }
        }
...

   }

Чтобы не нарушить баланса сил в природе, добавил в абстрактном классе Element
Код: php
    public function getSeparateData() {
        return array();
    }


Теперь для любого элемента добавляем в параметры
Код: xml
        <param name="separated" type="radio" default="0" label="Separate table" description="Save data in separate table">
            <option value="0">No</option>
            <option value="1">Yes</option>
        </param>

+ метод, который вернет данные для записи в таблицу (это пример для relateditems.php)
Код: php
    function getSeparateData() {
        $items = $this->_getRelatedItems();
        $values = array();
        foreach($items as $item) {
            $values[] = array(
                'value' => $item->id,
                'text' => ''
            );
        }
        return $values;
    }

---------------
что происходит тут... ?
Во время сохранения проверяется значение конфига элемента "separated", если оно равно 1, то данные копией сохраняются в новую таблицу.
Затем по этой таблице можно делать выборки по различным полям, и вытаскивать элементы каталога. (через join)

Минусов у метода тьма
 - много хламу в одной таблице
 - нужно менять много файлов ядра Zoo
 - работает только для новых элементов каталога (или пересохранять старые)
 - нет рализации для фронта (делается уже в зависимости от задачи ручками)
 - мне самому не очень нравиться, но быстро костыль

Плюсы тоже есть
 - реализвать сортировки, фильтры без больших нагрузок на php и mysql
 - выборки элементов по определнным полям
 - элементы реально связываются


В принципе тоже самое уже реализованое при индексации поиска (#_zoo_search_index). но меня в нем много не устраивает: данные фильтруются (фильтры переписывать как то не очень), не все элементы туда попадают), таблица активна используется для поиска - пусть для него и остается.

----------------------------------------------------------------------------------------
Думаю люди, знакомые с кодом Zoo, Joomla и php как таковым поймут что к чему.


*

delames

  • Захожу иногда
  • 141
  • 10 / 0
  • Решаю программные вопросы за $ - Обращайтесь!
Чет я вообще в ступоре. ^-^ Да логика есть во всем. Ну вот первое чтобы я добавил так это чекбоксы к итемам. Чтоб чел ввел в фильтр "секс" потом CheckAll и Добавить. Ато по одному тыкаться и ждать загрузки окна тож время. Ну и вот плюс сквозняк (сабж)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Related items с двусторонним сохранением+Выбор катал

Автор -Dima-

Ответов: 73
Просмотров: 18386
Последний ответ 29.08.2015, 19:15:24
от Vahan
Кракозябры в описании Item Zoo

Автор 7ssoft

Ответов: 4
Просмотров: 1212
Последний ответ 15.01.2015, 18:03:52
от 7ssoft
ZOO как сделать автоматическое добавление Item в Frontpage?

Автор d91me

Ответов: 33
Просмотров: 8257
Последний ответ 29.12.2014, 11:44:46
от dmi_alex
В zoo глючит кнопка Related Products.

Автор Vas80

Ответов: 0
Просмотров: 1175
Последний ответ 15.10.2014, 14:14:00
от Vas80
Вывод item-ов из нескольких категорий

Автор No_Mosk

Ответов: 0
Просмотров: 1003
Последний ответ 24.06.2014, 22:51:46
от No_Mosk