Skip to content

Не могу заставить работать quickSearch в таблице

Привет всем.

Хочу на сайте вывести продвинутую версию таблички с данными из базы данных с полем для быстрого поиска. Вот, что я сделал:

  1. Создал новую страницу
  2. Поместил туда такой код:
    {{$database = \IPS\cms\Databases::load( 1 );}}
    
    {{$table = new \IPS\Helpers\Table\Db( 'cms_custom_database_1', \IPS\Request::i()->url() );}}
    {{$table->tableTemplate = array(\IPS\cms\Theme::i()->getTemplate('contacts_super_listing', 'cms', 'database'), 'categoryTable');}}
    {{$table->rowsTemplate = array(\IPS\cms\Theme::i()->getTemplate('contacts_super_listing', 'cms', 'database'), 'recordRow');}}
    {{$table->langPrefix  = 'content_';}}
    {{$table->sortBy = $database->field_sort ? $database->field_sort : 'field_21';}}
    {{$table->sortDirection = $database->field_direction ? $database->field_direction : 'desc';}}
    
    {{$table->quickSearch = 'field_21';}}
    
    {{$table->include = array('primary_id_field','field_21');}}
    
    {{$table->parsers = array('field_21' => function( $val, $row ) use ($database) {$class = '\IPS\cms\Records1'; $val   = $class::load( $row['primary_id_field'] )->_title; return \IPS\Theme::i()->getTemplate( 'records', 'cms', 'admin' )->title( $row, $val );});}}
    
    {$table|raw}
  3. Создал шаблон для базы данных contacts_super_listing 
  4. В categoryTable скопировал код из applications/core/dev/html/admin/tables/table.html
  5. В recordRow скопировал код из applications/core/dev/html/admin/tables/rows.html

Табличка выводится, колонки корректные, сортировка по заголовку колонки работает, поле для quickSearch есть, но при вводе в него поискового запроса сайт не отправляет AJAX запросы для поиска. Подскажите, чего не хватает, чтобы он сгенерил JS код для quickSearch.

Featured Replies

Попробуйте добавить

\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js('mixins', 'global', 'admin' ) );

 

Можно пример таких табличек посмотреть на ips?

  • Author
23.02.2020 в 11:36, newbie сказал:

Попробуйте добавить


\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js('mixins', 'global', 'admin' ) );

 

Без изменений. Запросы не шлются, табличка не обновляется.

  • Author
2 часа назад, Fantik сказал:

Можно пример таких табличек посмотреть на ips?

Я за основу брал табличку списка пользователей из админки (records.php)

Создайте js-файл в Pages

Скопируйте код из \dev\js\admin\mixins\ips.core.table.js

Подключите файл к странице

  • Author

Мамма миа! Работает. Вы для меня прям новый чудный мир инструментов для разработчиков открыли. Раньше внесения изменений в фронте было достаточно. Спасибо!

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.