Какого это меню с 5к страниц

Главные вкладки

Аватар пользователя NightL NightL 25 ноября 2011 в 1:50

Ребят, представим меню к которому прикреплено скажем 5000 страниц, какого открыть это меню? Возможно ли с ним работать при таком кол-ве страниц, а то и еще большем? Есть ли какие-то советы/возможности, например, просматривать меню по уровням, а не выводить все 5к страниц и т.д

Поделитесь опытом
Спасибо

Комментарии

Аватар пользователя NightL NightL 25 ноября 2011 в 12:44

Меня скорее всего не поняли, я имел ввиду вывод меню не на сайте, а в административной части, вывод то есть просмотр самого дерева меню (admin/build/menu/list)

Одно меню так как меню сильно разветленное и удобнее работать если оно одно.

ddi26
Ну конечно не визитка, как оптимизировать навигацию, если у нас 5к страниц с иерархией?!

При просмотре дерева меню в административной части /admin/build/menu-customize/menu-...
дерево меню выводится полностью в не зависимости от того сколько там страниц и весь вопрос как с таким меню проще работать?

Аватар пользователя NightL NightL 25 ноября 2011 в 14:47

v1adimir@drupal.org
Вывести views можно, но как управлять?

Ребят я про управление деревом меню в административной части

Когда меню сильно разрастается управлять им все сложнее и сложнее, да не часто, но порой требуется. В этом мой и вопрос как управлять меню, если кол-во пунктов в нем становится несколько тысяч. Совершенно ни как не пойму при чем тут views, сайт визитки, оптимизация, таксономия или сапа Sad

Сталкивался ли кто с таким вопросом?

Аватар пользователя v1adimir@drupal.org v1adimir@drupal.org 25 ноября 2011 в 15:17

Можно организовать views где будут необходимые кнопки для управления вхождениями в пункты меню. Но это не решит главной проблемы – это донельзя корявое решение, когда нужно вручную править меню с 5k+ элементами.

Такая система должна управляться только автоматически через набор правил. Например, через модуль Rules или что-то аналогичное.

Аватар пользователя bsyomov bsyomov 25 ноября 2011 в 15:37

Откуда в этом меню может взяться 5000 пунктов? Откуда вообще в меню может взяться столько пунктов? Smile
Видимо не надо засовывать все материалы в меню. Надо делать выборки по ним при помощи views, упорядочивать таксономией, etc.

Аватар пользователя NightL NightL 25 ноября 2011 в 15:50

Скриншот был, чтобы меня верно поняли, о чем конкретно я веду речь.
Таксономия в моем случае мне не помощник так как мне требуется именно меню где ссылка на каждую страницу имеет свое постоянное место

Нашел модуль, который решает моею задачу [module=bigmenu] но смущает кол-во пользующихся и статус

Есть обсуждение на д.орг аналогичного вопроса http://drupal.org/node/1063004 там у автора вопрос о нескольких десятках тысяч страниц в меню, хоть ему и намекают о проблемах в структуре меню, но тем не менее и меню с огромным код-во страниц имеет право на существование и таксономией полностью задачу не решить

Как потенциальное решение это раскидать 5к-10к страниц меню на 10-20 меню с кол-вом в каждом на приемлемом уровне 500-1к, но оно неудобное

Аватар пользователя bsyomov bsyomov 25 ноября 2011 в 16:05

В каком месте, эту задачу не решить таксономией?
У вас на сайте где-то выводится полное меню? Наверняка нет, т.к. это ад. Smile Даже если и так, то никто не мешает строить его динамически по таксономии.

Зачем вам использовать модуль menu для работы с такими наборами данных абсолютно не понятно, т.к. не предназначен он для этого.

Видимо, ваша ошибка в том, что вы идеологически связываете меню показываемое где-то на сайте с модулем меню. А это просто список пунктов, который можно сделать десятком способов. Например с помощью views, или taxonomy_menu или...

Аватар пользователя NightL NightL 25 ноября 2011 в 16:35

bsyomov да, действительно меню (визуально) я связываю с модулем меню, но в тоже время понимаю, что этот список пунктов может быть выведен другими способами

RxB эх чую пройдусь я в будущем по граблям. Хотелось бы конечно в общих чертах узнать уровень "хероватости" скажем соотношение нормального к ненормальному, если это возможно выразить подобным

Удобно использовать меню крепя его с помощью hierarchical select, а с помощью menu block выводить различные куски в нужное место.

Думаете лучше переделать по сути весь сайт дабы заменить модуль меню на что-то менее ресурсоемкое для сервера? Да возможно серверу будет лучше, но станет ли удобнее управлять...

Таксономию я конечно и так использую для материалов у которых есть неявные параметры, такие как время актуальности или общий тип, например, новости или материалы с общим тегом, но чтобы все страницы подвязать на таксономию... при сохранении структуры в пути типа
node-alias/node-alias/node-alias/title
я даже не знаю...

Аватар пользователя marazmus marazmus 25 ноября 2011 в 16:52

Может, хотя бы в общих чертах поделитесь задачей, в которой условие - привязать несколько тысяч нод именно к меню? Чисто из прозекторского интереса, понятно же, что в реальной жизни такие задачи долго не живут... Ну кроме говносайтов под сапу канешна Biggrin

Аватар пользователя NightL NightL 25 ноября 2011 в 17:11

На счет как долго живут откуда у вас статистика?

В общих чертах имеем ряд объектов (образно) у каждого объекта может быть несколько своих объектов и в свою очередь у любого объекта может быть свойство кол-во которых может быть до нескольких сотен

Объект и свойство это ноды
вот в общих чертах

Аватар пользователя marazmus marazmus 28 ноября 2011 в 20:56

"NightL" wrote:
В общих чертах имеем ряд объектов (образно) у каждого объекта может быть несколько своих объектов и в свою очередь у любого объекта может быть свойство кол-во которых может быть до нескольких сотен

Чем Node Reference не устраивает для решения этой задачи?

Аватар пользователя NightL NightL 28 ноября 2011 в 22:08

Ноде референсе я тоже использую, но не подумал, что с помощью него можно структуру городить, подходит ли он только для этого.. пока не попробуешь не узнаешь

Аватар пользователя marazmus marazmus 28 ноября 2011 в 22:29

У вас реально попутаны понятия или слабое знание сущностей Друпала, простой совет:

- для воссоздания в Друпале структуры ваших данных, используйте Node Reference, как наиболее подходящий инструмент для создания связей вида "один ко многим" и т.п.

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

- для создания меню на сайте (в его нормальном понятии - просто меню вида "Главная", "Новости") используйте возможности работы Друпала с меню, для всего остального использовать меню просто какая-то странная практика...

Аватар пользователя NightL NightL 29 ноября 2011 в 0:14

Все то что вы перечислили я так же использую половина сайта выводится через views и еще %25 через таксономию. Остальное же по мелочи и потенциально крупный раздел с помощью модуля menu + block_menu

"один ко многим" это частность в моем случае

Не знал, что с модулем menu потенциально столько возможных проблем и его лучше использовать только для вывода меню с 5-ю пунктами, а для создания большого дерева оно потенциально плохо приспособлено Sad

Аватар пользователя marazmus marazmus 29 ноября 2011 в 8:00

"NightL" wrote:
у каждого объекта может быть несколько своих объектов и в свою очередь у любого объекта может быть свойство кол-во которых может быть до нескольких сотен

"NightL" wrote:
"один ко многим" это частность в моем случае

Первое утверждение у вас разве не связь "один ко многим"?

Аватар пользователя NightL NightL 29 ноября 2011 в 11:44

Да, наверное. Меню на основе Node Reference выводится либо views либо своим кодом верно? А как вложить 1 пункт меню в другой так, чтобы разные уровни меню можно было выводить на разных страницах + показывать блоки только на отдельных кусках меню с общей структурой основываясь на алиасе?

Аватар пользователя marazmus marazmus 30 ноября 2011 в 10:00

Что вы привязались к этому меню? Сформулируйте задачу конкретно, по кускам, по одному куску за один раз. Меню тут вообще не при чем, если у вас проблема сформулировать задачу типа "вывод информации о связях текущей ноды в удобоваримом для посетителя виде". Эта задача перед вами стоит?

У вас есть нода типа "объект", у нее есть связи типа "объект-объект" и "объект-свойства", так? Node Reference выводит ссылки на "свои" связи прямо в шаблон ноды. Зачем вам меню при этом, вообще не понимаю? Цель какая? Дать посетителю понять, что текущая нода связана с другими нодами? Ну так вот они, связи-то - ссылки на другие объекты и ноды в отдельных блоках (если использовать Fieldgroup).

Аватар пользователя NightL NightL 30 ноября 2011 в 11:42

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

Аватар пользователя NightL NightL 30 ноября 2011 в 18:20

Три вопроса в продолжение темы
1. при структуре "объект-объект" и "объект-свойства" все ясно, как выстраивать меню, меню показывается основываясь на родителе, но как быть, если меню от какого-то родителя нужно показывать на всех страницах подродителей. Какие правильно указать аргумент? При использовании модуля menu с этой задачей справлялся модуль block menu показывая навигации по уровням + настройки видимости блока по алиасу

2. Если страницы крепятся к меню, то вопросов с хлебными крошками нет вообще они выстраиваются сами вида:

объект - объект - объект - свойство
линк-1 - линк-2 - линк-3 - нет ссылки

То при выстраивании меню через node reference и views вопрос, как настроить через custom breadcrumb, получается только 2-х уровневое меню, а уже при 3-м непонятно, какими паттернами вытаскивать нужные данные, а лучше бы 1 паттерном, который бы строил путь но не весь сразу, а по частям, чтобы иметь возможность перейти в середину пути

3. В настройках меню есть 2 поля название ссылки и собственно то меню к которому прикрепляется страница. Если заполнять поле название ссылки, это нагружает систему, то есть считается, что используется модуль menu со всеми его затыками или нет?

Аватар пользователя NightL NightL 1 декабря 2011 в 13:57

Сложные наверное вопросы, чтобы получить на них ответ либо сама реализация сложная не зная сайта тяжело дать решение?

Верно?

Аватар пользователя marazmus marazmus 2 декабря 2011 в 11:16

Для начала вам надо изучить Node Reference и построить на его основе хотя бы часть структуры ваших данных. Поковырять шаблоны, изучить вывод полей. После этого половина ваших затупов по поводу неуместного использования меню в неподходящей этому модуле задаче пропадут сами собой. Остальные вопросы вполне решаемы самостоятельно.

Аватар пользователя NightL NightL 2 декабря 2011 в 12:09

Node Reference я использую в том числе и для построения навигации, но выстраиваются они по принципу зависимости от текущей ноды.
То есть, если мы находимся в ноде-А то видим все объекты, которые к ней прикреплены, но если перейдем на любой объект дальше, то все зависимые объекты имеющие зависимости от ноды-А пропадут. Часть структуры у меня есть, неясно какие использовать аргументы для решения задачи выше.

Может и самостоятельно решается остальное, но помощь в виде подсказки все равно необходима. Все паттерны, которые есть в custom breadcrumb не дали нужного результата, может тут нужен другой модуль?

И про поля в модуле меню я тоже сам буду копать очень долго Sad

Аватар пользователя marazmus marazmus 2 декабря 2011 в 21:18

"NightL" wrote:
но если перейдем на любой объект дальше, то все зависимые объекты имеющие зависимости от ноды-А пропадут

С помощью Views можно вытащить ноды, которые ссылаются на текущую ноду Smile

Аватар пользователя NightL NightL 10 ноября 2015 в 11:47

Это понятно до такой степени, что давно именно так и работает Smile
Вопрос в том, что если перейти дальше... ща нарисую лучше

Навскидку схема:
ноды 2, 3 и 4 через node reference имеют связь к ноде 1
ноды 5, 6, 7, 8 имеют связь к ноде 2
Находясь в ноде 1 мне понятно, как вывести ноды с этой связью (то есть показать на этой же странице ссылки на ноды 2 3 и 4), но находясь на ноде 5 мне не понятно, как показать линейку навигации из нод 2, 3 и 4. В этом и вопрос

Аватар пользователя drupby drupby 3 декабря 2011 в 1:26

"NightL" wrote:
Навскидку схема:
ноды 2, 3 и 4 через node reference имеют связь к ноде 1
ноды 5, 6, 7, 8 имеют связь к ноде 2
Находясь в ноде 1 мне понятно, как вывести ноды с этой связью (то есть показать на этой же странице ссылки на ноды 2 3 и 4), но находясь на ноде 5 мне не понятно, как показать линейку навигации из нод 2, 3 и 4. В этом и вопрос

модуль Node Hierarchy
смотри mustardseedmedia.com/podcast/episode45

Аватар пользователя NightL NightL 3 декабря 2011 в 2:16

Покрутил модуль и не совсем понятно подходит ли оно
Модуль работает с menu block, а menu block, в свою очередь, работает с навигацией основанной на модуле menu