У мене була дуже схожа проблема, і я не просто знайшов її вирішення, але й дізнався нові речі про те, як працює перегляд. Дозвольте мені поділитися тим, що я дізнався, і вирішенням вашої проблеми.
Коли ви створюєте подання з одним або декількома контекстуальними фільтрами, представлення повинно десь отримувати значення цих фільтрів. Це можна зробити -
- Вибір значення (-ів) фільтру контексту з URL-адреси
- Зазвичай у вас буде перегляд сторінки для таких цілей, який має URL-адресу форми
foo/%/bar
або foo/bar/%
для одного контекстного фільтра АБО форми foo/%/bar/%
або foo/bar/%/%
для декількох фільтрів
- Якщо у вас є кілька фільтрів, значення URL, яке з’являється першим, відображається у перший фільтр, поруч із другим фільтром тощо.
- Перегляди дозволяють вказати, що робити, якщо значення фільтру недоступні в URL-адресі . Зазвичай використовується для перегляду блоків .
- Ви можете вибрати різні дії, а потім налаштувати вибір.
asdfj kajsdf
- Ще одна річ, яку дозволяє переглядати, - це сказати, що робити зі значеннями фільтрів, якщо вони знайдені в URL-адресі, як описано в №1 вище. Типовими випадками використання є - Створення динамічних заголовків на основі значень фільтрів, Перевірка значень фільтру тощо.
- Під час перевірки значень фільтрів ви також можете змінювати значення! (Саме тут лежить наше рішення). Це дуже схоже на те, як ми можемо змінити значення $ form у зворотних зворотах для перевірки друпальної форми.
Вирішення вашої конкретної проблеми полягає у використанні дуже подібного коду в розділах, на які вказують стрілки на наведеному вище зображенні.
Це посилання виявилося мені дуже корисним. Ось уривок з нього:
$np = explode('/', drupal_get_normal_path($argument));
if (!empty($np[1])) {
$handler->argument = $np[1];
return TRUE;
} else {
return FALSE;
}