Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 299 Просмотров
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Собственно вопрос весь в теме, просто поясню если не понятно.

Есть фильтрация на виде orders, в фильтре участвует поле route_id, которое выбирается в модальном окне. Так вот у вида routes есть привязка к категории и я решил в вид orders сделать фильтрацию по категории - все вышло хорошо, но хотелось бы при установленном параметре "CATEGORY_ID" в фильтре вида orders получить эту категорию и отфильтровать вывод модального вида routes.

посмотрел в
$this->state - это свой фильтер
$this->filterForm - там вроде нужный перечень, но значений нет

Подскажите где искать!
« Последнее редактирование: 29.03.2017, 15:09:29 от platonische »
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
components/com_mycom/models/forms/filter_orders.xml. Создать, если не существует.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Нет все фильтры работают. Все файлы созданы.
Вопрос в том как из одного фильтра для вида ORDERS забрать значение фильтра для другого фильтра в виде ROUTERS вызванного через модальное окно.
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
Что значит "забрать"? Создайте нужное поле (тип поля) в нужной форме нужного фильтра.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Забрать я подрузамеваю - получить значение переменной
Все переменные в фильтре есть и отрабатываются. Надо получить значение переменной (из фильтра) в другом виде вызванном модально.
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
А в $_REQUEST нет его?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Нет в request его нет, нашел в $this, но не пойму как локализовать вот часть дампа
Спойлер
[свернуть]
filter: search, category_id, route_id,... - это те самые значения фильтра, но не понимаю где они лежат
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
Попробуйте так
Код: php-brief
$routers_model = JModelLegacy::getInstance('Routers', 'MycomModel');
$category_id = $routers_model->getState('filter.search');

P.S.
MycomModelRouters - это класс модели Routers.
filter.search - точный параметр смотрите в методе MycomModelRouters::populateState().
« Последнее редактирование: 28.03.2017, 20:13:40 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Что-то не прокатило
Спойлер
[свернуть]

Спойлер
[свернуть]

Находимся в виде Orders фильтр настроили в Orders и хотим его достроить (параметр route_id). Лезем менять параметр фильтра route_id через вызов модального окна и там (в модальном виде ROUTES) хочу получить отфильтрованный список.
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
Что-то не прокатило
Что именно? Как проверяли?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
проверяю var_dump. сунул ваши строки в modal вид . Результат 0
А вот интересно стал искать (методом тыка) где же присутствует переменная и оказалась она есть в $this->pagination

P.S.: бред какой-то... но она там реально есть.


« Последнее редактирование: 28.03.2017, 20:31:25 от platonische »
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
Код: php-brief
$model = JModelLegacy::getInstance('Orders', 'TurismModel');
$catid = $model->getState('filter.categoty_id');
echo '<pre>';
print_r($model);
echo '</pre>';
Ваш параметр должен быть там. Другое дело - пустой он или нет.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Да есть переменная но все пустое, нулёвое.

Надо посмотреть как в content сделано подцепление категории из фильтра при созданиии нового материала.
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Вот такой ответ нашел
Спойлер
[свернуть]
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Так а теперь вопрос как корректно засунуть параметр из фильтра orders в фильтрацию routes?

вариант вижу такой: в модели сделать проверку на модальность и брать там параметр и внедрять его в getListQuery
Правильно ли мыслю и какие камни могут быть?
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
Да, думаю, что это правильное решение.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
А как в моделе понять что это MODAL вывод?

что-то не найду. в виде есть $this->getLayout(), но в моделе его нет
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
Берите из $_REQUEST: layout=modal.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Берите из $_REQUEST: layout=modal.
Да это вариант! Отработало.
А подскажите ещё. Можно ли как-то узнать кто запустил модальное окно? у меня его могут вызывать виды orders, tours и etc... чтобы в модальном знать чьи фильтры стоит посмотреть.
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
переделал только $_REQUEST через $jinput = JFactory::getApplication()->input;
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Конечно можно $_SERVER['HTTP_REFERER'] отпарсить!
А может у J! свои варианты есть?
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

robert

  • Профи
  • ********
  • 4009
  • 371
А подскажите ещё. Можно ли как-то узнать кто запустил модальное окно? у меня его могут вызывать виды orders, tours и etc... чтобы в модальном знать чьи фильтры стоит посмотреть.
Сохраните значение view в сессию и вытаскивайте его оттуда для проверки.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Вот вариант. Modal - это AJAX а поэтому $_SERVER['HTTP_REFERER'] содержит отправителя
Решение:
Код
$u = JURI::getInstance( $_SERVER['HTTP_REFERER'] );
$view = $u->getVar( 'view' );
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism
*

platonische

  • Давно я тут
  • ****
  • 320
  • 0
  • Парусные экспедиции vk.com/tc670
Итак окончательное решение:
Получать фильтр из другой формы можно и в populaState в моделе вот так
Спойлер
[свернуть]
Первые строки для обычного фильтра, вторые для фильтра из любого вида.
Далее проверяем на модальность и вычленяем который из видов запросил модальное окно. И по результатам делаем доп параметры в sql-запросе в getListQuery в моделе.
Спойлер
[свернуть]
Это чисто мой случай.
Парусные экспедиции http://vk.com/tc670, сплавы на байдарках http://vk.com/magnittv_turism