|
|
24.11.2009, 22:59
|
|
Гость
Гость
|
Здравствуйте.
Есть раздел в котором есть несколько подразделов с одинаковым компонентом.
Возможно ли вывести в родительском разделе все объекты из компонентов всех подразделов?
Если да, то не подскажите как?
Можно сделать через поиск по полям компонента, по всем подразделам. Но хочется чтобы адресная строка родительского раздела была нормальной а не вида .../?action=index&srchPat[0]=&srchPat[1]=
Спасибо!
|
|
|
25.11.2009, 10:02
|
|
Хыиуду
Зарегистрирован: 2009-10-21
Сообщений: 156
|
http://netcat.ru/support/ncforum/?Subdiv_ID=5&Topic_ID=1389
|
|
|
25.11.2009, 10:21
|
|
Хыиуду
Зарегистрирован: 2009-10-21
Сообщений: 156
|
Могу рассказать, как это сделано у меня. Страшсло и ужасло.
Во-первых, у меня есть компонент "Категория товаров" с полями Name, Description, Filters, Section. Name - название подраздела, Description - описание, Filters - фильтры для отбора объектов внутри родительского раздела, Section - номер подраздела, куда выводится эта фильтрованая выборка. Например, есть раздел "Рога" №5, в нем есть подраздел "Рога прямые" №6 и Рога кривые №7. Создаем объекты в компоненте "Категория товаров":
Name - Рога прямые
Description - Прямые рога это те, которые не кривые.
Filters - &RogaType=1
Section - 6
Name - Рога кривые
Description - Кривые рога это те, которые не прямые
Filters - &RogaType=2
Section - 7
Во-вторых, у всех подразделов один и тот же макет шаблона, в котором прописано следующее:
Код:
$category_table="Message72"; #Таблица, в которой лежат объекты типа "Категория"
$res=mysql_query("SELECT parent, subclass, subdiv , Description, Filters, Name, RelatedTopics
FROM (select sc.Subdivision_ID as parent, sc.Sub_Class_ID as subclass, sd.Subdivision_ID as subdiv
from Sub_Class sc, Subdivision sd
WHERE sc.Subdivision_ID = sd.Parent_Sub_ID
AND sd.Subdivision_ID =$current_sub[Subdivision_ID]) as sd
left join $category_table m on m.section=sd.subdiv");
$row=mysql_fetch_assoc($res);
echo "<h2>$row[Name]</h2>
$row[Description] <br>";
$row[Filters].="&curPos=".$_GET[curPos]; # Чтобы обеспечить нормальный постраничный просмотр
echo s_list_class($row[parent],$row[subclass],$row[Filters]);
В-третьих, компонент "Рога" с полем RogaType присоединяется исключительно к родительскому разделу, в подразделах никаких компонентов нет!
И в-четвертых, в системных настройках компонента прописывается:
if (isset($RogaType))
$query_where.="a.`RogaType`=$RogaType";
В итоге есть красивый раздел http://sait.ru/roga, в котором отображаются все рога, и подразделы http://sait.ru/roga/pryamie и http://sait.ru/roga/krivye, в котором отображаются те же самые рога, но с фильтрацией по полю RogaType
|
|
|
25.11.2009, 12:13
|
|
Гость
Гость
|
Спасибо.
Предвижу сложности в ситуации когда надо будет, например из кривых рогов, какие то удалить или отредактировать. Замучаешься их искать во всём многообразии рогов в родительском разделе, особенно если этих рогов (всяких разных) достаточно большое кол-во. Или нет?
т.е. я правильно понял что все разносортные рога, по сути (в админке), "свалены" в один раздел?
|
|
|
25.11.2009, 13:54
|
|
Хыиуду
Зарегистрирован: 2009-10-21
Сообщений: 156
|
Да, именно так. Но ничто не мешает присобачить кнопки админского редактирования и выискивать нужные кривые рога из админки.
|
|
|
26.11.2009, 09:20
|
|
Гость
Гость
|
Спасибо.
да....
плохо, плохо.....
для меня наверное это не вариант. Скорее всего клиент не захочет так заморачиваться.
Разработчики, не придвидится нормального решения данного вопроса???Судя по всему я не первый с этим вопросом и, видимо, не последний.
|
|
|
26.11.2009, 11:33
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
А чем вас не устраивает вариант с использованием $ignore_sub=1, $ignore_cc=1 для родительского раздела?
Документация разработчика, раздел про системные настройки компонента, кажется.
|