Как указать ссылку меню на представление с несколькими параметрами для одного и того же выбранного открытого фильтра?


У меня есть страница просмотра, которая служит как каталог, используя множество открытых фильтров.

Мне нужна ссылка в меню, указывающая на определенную комбинацию фильтров. Допустим, URL-адрес для этого отфильтрованного представления >

Просмотр?опция[]=7&опция[]=12&опция[]=14

Звучит просто, но я нахожу это трудным по ряду причин:

  • Меню считает этот путь недопустимым
  • Я не могу превратить его в псевдоним пути, потому что это также считает это недопустимым путем
  • Я могу настроить его как перенаправление, но меню все равно не распознает перенаправление как допустимый путь
  • Я могу настроить его как страницу менеджера страниц, используя менеджер страниц CTools, и настроить его как перенаправление, но каждый параметр, кроме последнего, обрезается, и он перенаправляется на это. Похоже, ему не нравятся амперсанды:

Просмотр?опция[]=14

  • Если я введу его с закодированным URL-адресом амперсандов, он получит сбит с толку, потому что двойной URL кодирует символы, закодированные в URL, нарушая их.
 1
Author: kiamlaluno, 2016-06-03

1 answers

Получилось. Я настроил его как страницу менеджера страниц с произвольным путем (например, options или view/options), установил значение "Код ответа HTTP", затем "перенаправление 301".

Проблема в вопросе, где символы, разделенные амперсандом, были съедены, по-видимому, была вызвана тем, что Drupal рассматривал их как дубликаты друг друга и отвергал все, кроме последнего. Чтобы обойти это, я установил URL-адрес перенаправления следующим образом:

Просмотр?опция [1]=7 и опция[2]=12 и опция[3]=14

Примечание как у каждого из них есть уникальный номер в квадратных скобках.

Представления, похоже, не заботятся о числах в квадратных скобках, и они останавливают объединение параметров Drupal в один.


Обратите внимание, что вы всегда должны вводить некодированную версию, как указано выше, иначе Drupal будет дважды кодировать ее, что приведет к ее разрыву. Имейте это в виду, если вы редактируете его - вам нужно будет заменить всю строку оригинальной, некодированной версией, а затем отредактировать ее перед сохранением.

 1
Author: user56reinstatemonica8, 2016-06-03 14:16:07