Страница 2 из 2

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 10:45
nruslan2
аа точно сортировка, тогда ссори! был не прав.

PS а вот как создать свою кнопку тогда используя данный код, по факту вот тему создал тот же вопрос по сути:
как создать стандартными средствами кнопку(не автоматизация), которая запустит код php!
viewtopic.php?t=6739

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 10:47
Antonyous99
В коде, что Fiat прислал, берем первый $panel_id - это и будет заветный reports_id, теперь его можно вставить в кнопку "Назад без фильтров".
Снимок экрана 2024-01-20 104556.png
Снимок экрана 2024-01-20 104556.png (9.09 КБ) 495 просмотров

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 10:51
nruslan2
Antonyous99 писал(а): 20 янв 2024, 10:47 В коде, что Fiat прислал, берем первый $panel_id - это и будет заветный reports_id, теперь его можно вставить в кнопку "Назад без фильтров".
Снимок экрана 2024-01-20 104556.png
вы использовали Автоматизацию в итоге?

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 10:53
Antonyous99
Fait писал(а): 19 янв 2024, 17:55
Antonyous99 писал(а): 19 янв 2024, 14:38 Как бы программно сделать, чтобы при входе в запись все это сбрасывалось и при возврате в список записей уже не применялось.
Практическая задача: отфильтровал / нашел запись, вошел в нее... Все, фильтры и поиск больше не нужны.
Возвращаешься опять в полный нефильтровнный список записей, работаешь дальше.
У кого есть идеи?)
Вот, держи универсального убийцу всех установленных фильтров (вставлять в Настройка отображения > Настройка страницы записи > PHP код:

Код: Выделить всё

$entity_id = explode('-',$_GET['path'])[0];
$user_id = $app_user['id'];
$check_panels = db_query('select * from app_reports where entities_id='.$entity_id.' and created_by='.$user_id);
foreach ($check_panels as $key => $value) {
	$panel_id = $value['id'];
	$del_fields = db_query('delete from app_reports_filters where reports_id='.$panel_id);
	$del_panel = db_query('delete from app_reports where id='.$panel_id);
}
Код универсальный, работает в любой сущности.
Fait, твой код сносит вообще, а не сбрасывает все фильтры этой сущности в системе, просто удаляет из настроек.

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 10:57
Antonyous99
nruslan2 писал(а): 20 янв 2024, 10:51
Antonyous99 писал(а): 20 янв 2024, 10:47 В коде, что Fiat прислал, берем первый $panel_id - это и будет заветный reports_id, теперь его можно вставить в кнопку "Назад без фильтров".
Снимок экрана 2024-01-20 104556.png
вы использовали Автоматизацию в итоге?
Нет. Кнопки "Назад" и "Назад без фильров", считай, JS на странице записи (точнее в файле layout_bottom.php плагина)

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 11:10
nruslan2
а как через js вы заставили запускаться php код? или создавали доп файл на сервере?

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 11:52
Antonyous99
Да, файл на сервере создает кнопку "Назад без фильтров" для страницы записи нужной сущности.

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 11:55
nruslan2
а случаем как без файла, только стандартными средствами реализовать запуск через кнопку не знаете как?

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 12:04
Antonyous99
Изображение
Да я по сути в эту кнопку код кноки Клиенты копирую, то есть, заглавной кнопки панели фильтров, которая фильтры и сбрасывает.

Re: Сброс фильтров и поиска

Добавлено: 20 янв 2024, 12:33
Fait
Antonyous99 писал(а): 20 янв 2024, 10:53 Fait, твой код сносит вообще, а не сбрасывает все фильтры этой сущности в системе, просто удаляет из настроек.
Да, всё верно. Панель сбрасывается только через удаление.
Хотя... можно из app_reports не удалять совсем запись, но обратить внимание на поля listing_order_fields и fields_in_listing.

И получается вот так:

Код: Выделить всё

$entity_id = explode('-',$_GET['path'])[0]; // Получаем ID текущей сущности
$user_id = $app_user['id']; // Получаем ID текущего пользователя
$check_panels = db_query('select * from app_reports where entities_id='.$entity_id.' and created_by='.$user_id);
foreach ($check_panels as $key => $value) {
  $panel_id = $value['id']; // Получаем ID настроек
  db_query('delete from app_reports_filters where reports_id='.$panel_id); // Удаляет установленные фильтры
  //db_query('delete from app_reports where id='.$panel_id); // Удаляет панель фильтров со всеми настройками
  db_query('update app_reports set listing_order_fields="" where id='.$panel_id); // Сбрасывает сортировку
  db_query('update app_reports set fields_in_listing="" where id='.$panel_id); // Сбрасывает пользовательский набор колонок в списке
}