Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

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

22.06.2012, 17:31
Евгений

Зарегистрирован:
2012-05-22
Сообщений: 31

Добрый вечер!
Есть форма, где объекты содержат множественный список в виде чекбоксов. Хочется для каждого чекбокса задать свою категорию.
В системных настройках пишу:
Код:
if ($DopCategory) $query_where = "a.Category_ID='$DopCategory'";


И в макет для раздела пишу:
Код:
".( $sub == 392 ? s_list_class(368,475,"DopCategory=1") : "" )."
".( $sub == 393 ? s_list_class(368,475,"DopCategory=2") : "" )."
".( $sub == 394 ? s_list_class(368,475,"DopCategory=3") : "" )."
".( $sub == 395 ? s_list_class(368,475,"DopCategory=4") : "" )."

Но ничего не выводит... Вообще реально?
22.06.2012, 18:45
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Из того, что указано могу сделать вывод о том, что вы, батенька, мазахист. Это, если у вас юзер каталог новый захочет добавить, то придется вам в макет дизайна новые условия для нового ИД каталога писать?! не могу смотреть

Ну и в целом, поставнока вашей задачи не ясна. Приведите наглядный пример решаемой задачи в повествовательном виде, типа есть такие-то разделы, есть такой-то компонент, каждая запись должна соотв-ть одной (двум, трем,...) категориям. В качестве категории выступает запись "Списка"/"Раздела" и т.д....

Temet nosce...
25.06.2012, 10:48
Евгений

Зарегистрирован:
2012-05-22
Сообщений: 31

Цитата:
Из того, что указано могу сделать вывод о том, что вы, батенька, мазахист. Это, если у вас юзер каталог новый захочет добавить, то придется вам в макет дизайна новые условия для нового ИД каталога писать?!

Категории окончательны и меняться не будут. По крайней мере, достаточно продолжительное время.

Цитата:
Ну и в целом, поставнока вашей задачи не ясна. Приведите наглядный пример решаемой задачи в повествовательном виде, типа есть такие-то разделы, есть такой-то компонент, каждая запись должна соотв-ть одной (двум, трем,...) категориям. В качестве категории выступает запись "Списка"/"Раздела" и т.д....

Есть каталог организаций, есть категории сфер деятельности этих организаций. То есть одна организация может иметь несколько сфер деятельности и, соответственно, будет в каталоге представлена в разных категориях.
Дополнительно нужно для разных групп пользователей задать такое ограничение: первые могут добавить компанию только в один каталог, другие - в несколько.
Пока мысль есть выводить для группы один список с категориями, а для другой группы - чекбоксы.

И как поймать значения по чекбоксам, насколько я понимаю NetCat (и не только он) значение "1" и массив из (допустим) "1,3,5" не уровняет?
Есть, конечно и еще более мазахистская мысль сделать под каждую категорию отдельный чекбокс...
Но все равно как тогда организовать вывод по условию, что если в списке не 0 ИЛИ чекбокс не 0? Какой синтаксис условия?

Приношу извинения за глупые вопросы, но я не программист, а NetCat изучаю на ходу.
26.06.2012, 11:53
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Все равно я пока не понимаю задачу в целом...

Как каталог связан с категорией? Из примера кода сверху ясно, что один каталог соотв-ет только одной категории, это так? Если в одном каталоге могут быть компании с разным набором категорий, то тогда указанный выше код мне не ясен.

Заходя в каталог, что надо видеть - сразу список компаний или будет еще доп. фильтр по категориям или как?

Temet nosce...
26.06.2012, 15:37
Евгений

Зарегистрирован:
2012-05-22
Сообщений: 31

В каталоге есть категории, в категориях соответственно компании. Но компания может находится в нескольких категориях.

На данный момент организовал следующее:
1) Одна категория - одна логическая переменная (чекбокс)
2) В каталоге в категории идет отбор если для выбранной категории чекбокс = 1, то показывает в категории

Дополнительно организовал следующее: есть две группы пользователей - обычные и привелегированные, первым доступна только одна категория (отображается списком), вторым доступна группа чекбоксов.
Сделал сейчас все топорно - без автоматизации на уровне категорий, но думаю она в проекте и не потребуется, по крайней мере сейчас, а в дальнейшем видится, что можно будет без крупных перестроений её вкрутить.
28.06.2012, 11:10
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Евгений, тут всё дело в используемой вами терминологии. В вашем случае категория - это просто подраздел какого-то основного раздела (каталога).

В итоге для решения вашей задачи нужны 3 сущности:
1. Разделы
2. Компонент "компании"
3. Компонент "компании по разделам" (с полями: Company_ID, Sub_ID. по этим полям лучше сделать отдельный индекс, если записей будет много)

Для компонента "Компании" надо настроить альтернативные формы добавления/редактирования, в которых делаете запрос к нужным разделам (таблица Subdivision) и результат выборки отображаете в виде списка названий с чекбоксами, т.е. юзер сможет выбирать галочками нужные категории. Имена переменным даете как sub_ids[ид_раздела], соотв-но когда форма в данными будет сохранятся, то на серверной стороне вы получите массив $sub_ids выбранных разделов. Далее в действиях после добавления/изменения/удаления в цикле проходитесь по всем элементам массива и в зависимости от действия (добавление/удаление) либо добавлеяте через sql запрос insert запись в компонент "компании по разделам", либо удаляете.

Далее в сист. настройках компонента пишите:
Цитата:
$ignore_sub=1;
$ignore_cc=1;
$query_where = "exists (select null from MessageXX cs where cs.Company_ID=a.Message_ID and cs.Sub_ID=$sub)";

где XX - это ид компонента "компании по разделам"

Ну и добавляете свою логику по правам доступа юзеров, там в приницпе сложностей тоже нет.

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

Temet nosce...
11.07.2012, 13:32
Игорь
Веб-студия "Комп-АС!"

Зарегистрирован:
2012-05-20
Сообщений: 70

Хотел разместить свой вопрос, но походу в этом топике уже есть подсказка, но все же:

Я еще плохо знаю CMS NetCat, поэтому подскажите или укажите кто может подсказать, в решении следующей проблему:
Я создаю сайт справочник, что то типа «Желтых страниц» и теперь дошел до стадии создания «Рубрикатора», который будет, пока, двух уровневый, например:

Легкая промышленность (???)
Кожа и меха.
Изделия из кожи и меха (???)
Текстиль (???)
Швейные изделия (???)
и т.д.

Получается, что «Списки» использовать нельзя, тогда как?
Необходимо так же, что бы при регистрации компаний можно было выбрать нужную или несколько нужных рубрик.
Подскажите как это можно сделать или где подсмотреть как это было сделано.

Спасибо, Игорь
11.07.2012, 15:43
Евгений

Зарегистрирован:
2012-05-22
Сообщений: 31

Я сделал несколько по "дубовому": каждая рубрика - чекбокс. Если чекбокс стоит, то отображаем в рубрике.
При желании и наличии навыков, можно и автоматизировать. В силу того, что у меня список рубрик окончателен, то не заморачсивался.
198 196 2012-07-11 15:43:21 12396
Описание проекта