Cotonti - Dictionary.

Cotonti - Dictionary.

Плагин для CMF Cotonti.

Плагин словарей и номенклатуры для Cotonti Siena.

тип: плагин
Версия: 1.0.1
Совместимость: Siena

GitHub: https://github.com/Alex300/dictionary

 

Системные требования и ограничения:

 

Установка:
- Скопировать плагин на сервер в папку plugins/dictionary
- Установить плагин из панели администратора

 

Плагин позволяет организовать номенклатуру на сайте под управлением Cotonti. А именно - создать словари с наборами 'Ключ' => 'Значение'. Т.е. каждому слову в словаре сопрставляется уникальный ID, которые можно использовать в других расширениях. Например это могут быть марки или модели авто, типы товаров, должности сотрудников и т.п.

Словари можно использовать для хранения вариантов выбора для экстраполей типа «select».

Словари можно использовать как связанные данные для других моделей.

 

Этот пример заполнит варианты выбора экстраполей значениями из словарей:

$conf = array(
        array(
                'location' => cot::$db->advert,
                'field' => 'brand',
                'dictionary' => 2,
                'condition' => "id IN (1,2,3)",
        ),
        array(
                'location' => cot::$db->advert,
                'field' => 'model',
                'dictionary' => 3,
                'parent' => cot_import_buffered('brand', $advert->brand, 0),
        ),
);

dic_loadExtraFieldData($conf);

параметры конфигурации:

- location и field - таблица и экстраполе соотвественно
- dictionary - id словаря, от куда брать значения
- condition (необязательно) - условия выборки значений. Если не указано то выбираются все значения указанного словаря.
- parent (необязательно) - значение родительского словаря.

 

Плагин может быть полезен прежде всего разработчикам. Вы в своих таблицах можете хранить id значений словарей, получая сами значения только при необходимости. Это позволяет избежать ошибок при многократном написании самих значений. А исправление внесенное в словарь сразу отразится на всех связанных данных. Также возможно организовать поиск по таким полям.
Напрмер: выбрать все модели автомобилей марки BMW.

 

Программно получить список "ключ" => "значение" метод dictionary_model_Value::keyValPairs(), например:

dictionary_model_Value::keyValPairs(array(array('dictionary', 3)));

выберет все значения для словаря с id=3.

 

Родительский словарь

Словарь может иметь родителя. Например модель автомобиля - марку, а город относится к определенному региону. dic_loadExtraFieldData() организует элементы select так, что после выбора значения родительского словаря (например произволителя авто) пользвателю будет предложен выбор соотвествующих значений словаря - потомка (напрмер: марки авто этого производителя)

 

Упрощенным и частным случаем этого плагина является плагин Region-City.

 

История изменений:

Версия v1.0.1

  • Совместимость с Cotonti Lib v2.0.

 
Автор: Alex
Опубликовано: Alex
Комментарии: (2)
Рейтинги:  
0

Комментарии:


Алексей
2. Алексей

Вопрос поднимался. Но развития не будет. Скорее всего будет отдельная ветка куда эти наработки и войдут. Но пока на нее не хватает времени.

Что же касается основной ветки - там есть член команды который всеми силами удерживает ее в состоянии "как есть". "Она и так хорошая и нечего мутить что то новое". Дело доходит даже до того, что он откатывает коммиты совершенно не понимая зачем они нужны.

Все это происходит с молчаливого согласия остальной части команды.

О развитии в таких условиях не может быть и речи. Если в последниее время я поддталкивал выход релизов, то больше такие условия не для меня.

Аватар
1. CrazyFreeMan
  • Наличие на Вашем сайте установленной библиотеки cotonti-lib (http://portal30.ru/sozdanie-internet-sajtov/free-scripts/cotonti-lib).
  • Административная часть плагина расчитана на альтернативную тему панели управления cpanel (http://portal30.ru/sozdanie-internet-sajtov/free-scripts/cpanel).

Плохо что есть зависимости что не входят в кота, может поднимите вопрос об интеграции наработок в основную ветку? Пусть будет хоть какое-то развитие а не запах смерти cmf. А то каждый разработчик тянет в свою сторону развитие и хз что делать

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

* Просьба все технические вопросы, которые могут потребовать обсуждения, задавать на форуме.
** все некорректные и рекламные посты будут удаляться, ненормативная лексика и оскорбительные высказывания запрещаются.


Кликните для обновления

* Для редактирования комментария осталось 15 минут