Аргументы в панель

Аватар пользователя SYr

Приветствую!

Подскажите пожалуйста как решить задачку и решаема ли она.

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

    $panel=panels_load_display(3);
    // заполняем аргументами ...
    return panels_render_display($panel);

Но застрял на 2ух вопросах:
1. Не получается впихнуть свои контексты в объект $panel что-бы их админ мог юзать в содержимом панели.
2. Как передать контексты аргументом в вьюсы на панели.
Спасибо!

Модули и темы:
Тип материала:
Версия Drupal:
0 Thanks

Лучший ответ

Комментарии

Аватар пользователя gun_dose
gun_dose 1 месяц назад

1. Не понимаю, зачем панель выводить ещё отдельно модулем? Там из коробки всё прекрасно с контекстами.
2. Включите модуль views content, это подмодуль ctools, он позволяет создавать вьюхи как фрагменты панели, тогда во вьюсах появляется возможность указывать, откуда брать контекстные фильтры, есть несколько способов, как их взять из панели.

Аватар пользователя SYr
SYr 1 месяц назад

за views content спасибо.

gun_dose написал:
1. Не понимаю, зачем панель выводить ещё отдельно модулем? Там из коробки всё прекрасно с контекстами.

количество материал не определенно > 1*10^X. По некой маске пути проверяется логическое наличие контента - если есть - собирается материал, и выводится панелью.

Аватар пользователя Andruxa
Andruxa 1 месяц назад

Вам нужен page_manager - объявляете в нем роут с аргументами: path/%arg1/%arg2/%etc
Там же задаете условия, при которых отображать ту или иную панель, можно подтянуть необходимый контекст, ну и т.д.

Аватар пользователя Orion76
Orion76 1 месяц назад

И всеравно, как-то все сложно..
Что-то мне подсказывает, можно проще.
Наверное с категоризацией материалов что-то не так..

Аватар пользователя SYr
SYr 1 месяц назад
Orion76 написал:

Что-то мне подсказывает, можно проще.

Более чем уверен, что при данном объеме информации - согласился бы с Вами и пришел к такому же выводу ! :)

Дело в том, что материалов нет, как таковых...
Попробую отстраненным примером: есть 1 000 терминов = числа.
каждая страница = описание арифметических действий между двумя терминами (327*951, 327/951, 327+951 и 327-951), если надет изображение - то и иллюстрации и т.д.

Можно конечно нарендерить 1 000 000 нод
Но мне кажется заказчик прав - логичнее, практичнее и удобнее генерировать эти страницы с обработкой исключений.

Аватар пользователя SYr
SYr 1 месяц назад
Andruxa написал:
Вам нужен page_manager - объявляете в нем роут с аргументами: path/%arg1/%arg2/%etc

Там же задаете условия, при которых отображать ту или иную панель, можно подтянуть необходимый контекст, ну и т.д.

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

Аватар пользователя Andruxa
Andruxa 1 месяц назад

А каким образом передаются аргументы?

Аватар пользователя SYr
SYr 1 месяц назад
Andruxa написал:
А каким образом передаются аргументы?

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

Аватар пользователя SYr
SYr 1 месяц назад
Orion76 написал:
Вам надо просто пару ctools-плагинчиков написать для панелей и прочих вьюсов.
Вот неплохой обзор: http://drupalace.ru/lesson/pishem-plagin-k-panels-s-pomoshchyu-ctools

Спасибо!
нашел обходной путь, попробую его...
Но возможно пойду Вами предложенным!