Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
vinegredz

Почему не работает фильтрация в таблице?

Recommended Posts

Здравствуйте.

Я делаю вот такой порядок действий:

  1. Создал новую страницу
  2. Добавил в нее генерацию таблицы вот так:
    {{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records2', $record->url(), array( array('field_165 = ?', $record->_id) ));}}
    {$table|raw}

     

  3. Добавил две ссылки, чтобы сделать сортировку:
    <a href="{expression="\IPS\Request::i()->url()->setQueryString( array( 'advanced_search_submitted' => 1, 'content_field_14' => 0 ) )->csrf()"}">
      Only Films
    </a>
    <a href="{expression="\IPS\Request::i()->url()->setQueryString( array( 'advanced_search_submitted' => 1, 'content_field_14' => 1 ) )->csrf()"}">
      Only Actors
    </a>

Проверил, чтобы в базе ID2 было поле с field_14. Пробовал указывать массив 'content_field_14[1]' => 1, но работать эту конструкция не хочет. Чего тут не хватает?

Share this post


Link to post

Не вижу у Вас ничего, связанного с field_14, при создании таблицы

Share this post


Link to post

Если я правильно понял намек, то я попробовал добавить:

{{$table->sortOptions = array( 'field_14' );}}

Но это не помогло. Или вы имели ввиду менять $where? Если да, то я думал, что у Table\Content есть обработчик (ведь все работает для виджета фильтра базы данных же).

Share this post


Link to post
7 минут назад, vinegredz сказал:

ведь все работает для виджета фильтра базы данных же

Там значения записываются в куки. А после на странице категории эти куки проверяются, и формируется $where

10 минут назад, vinegredz сказал:

Или вы имели ввиду менять $where?

Да

Share this post


Link to post

А, понял. Тогда вот решение для тех, кто будет после меня:

{{if \IPS\Request::i()->content_field_14}}
{{$where = array( array( 'field_14=? and field_165=?', \IPS\Request::i()->content_field_14, $record->_id ) );}}
{{else}}
{{$where = array( array( 'field_165=?', $record->_id ) );}}
{{endif}}

{{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records2', $record->url(), $where);}}
{$table|raw}

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...