Универсальный поиск по личному кабинету на сайте
Выводится сверху личных кабинетов форма поиска. При вводе параметров вызывается специальная хранимая процедура и отображаются результаты поиска по разным объектам системы.
В Настройках системы в настройке rolesForShortSearch можно задать роли, у которых должна выводиться форма поиска.
Формат процедуры falcon_search
CREATE PROCEDURE [dbo].[falcon_search]
@q nvarchar(256), -- @q - это текст запроса
@typeID int, -- @typeID - не используется
@page nvarchar(256) = '', -- @page - страница на которой вызван запрос
@username nvarchar(256),
@parameters ExtendedDictionaryParameter readonly -- опционально, содержит langID, falconGuid, url и др параметры в виде Key,Value2
AS
BEGIN
-- структура таблицы задает выходной результат, его важно соблюдать
CREATE TABLE dbo.#result (id int, [text] nvarchar(max), [desc] nvarchar(max),[type] nvarchar(256),
[date] date)
create table dbo.#roles (role nvarchar(256))
-- получаем роли пользователя
insert into #roles
select [role]from dbo.sec_getUserRoles(@username)
/* для админа добавляем в результатирующую
таблицу найденные результаты по типам */
if(select count(*) from #roles where [role]='admin')>0
begin
insert into #result
select instanceID,
' '+
iif(as_en_entityInstances.statusID in (60,61,62), 'Клиент',
'Лид')+' ' +shortname + '',
'',
'',
getdate()
from crm_clients
inner join ctr_contragents on crm_clients.contragentID = ctr_contragents.id
inner join as_en_entityInstances on as_en_entityInstances.id =
crm_clients.instanceID
where ((isnull(shortname, '') + isnull(fullname, '') + isnull([description],
'') + isnull(username, '')) like '%'+@q+'%')
or ((select phone1 from ctr_contacts where contragentID =
ctr_contragents.id) like '%'+@q+'%')
or ((select phone2 from ctr_contacts where contragentID =
ctr_contragents.id) like '%'+@q+'%')
or ((select email from ctr_contacts where contragentID =
ctr_contragents.id) like '%'+@q+'%')
or ((select skype from ctr_contacts where contragentID =
ctr_contragents.id) like '%'+@q+'%')
select * from #result
drop table #result -- не забываем удалить таблицу
-- SELECT 2
select 1 Result, '' Msg, '' Makeup
END
Если необходима дополнительная логика по поиску - прописываем ее всю в данной процедуре - сразу для всех ролей.
Выходные параметры:
- SELECT 1 - элементы поиска. Обязательные столбцы: id, type, text, desc, color. Необязательные: date, p1, p2, p3, p4, p5 (могут быть использованы при кастомной разметке)
- SELECT 2 - Result, Msg, Makeup
Есть возможность сделать кастомной разметку результатов поиска. Для этого используем в SELECT 2 параметр makeup и передаем в него псевдопеременные id, type, text, desc, date, color, p1, p2, p3, p4, p5
Пример:
select 1 Result, '' Msg, '{text} {p1}' Makeup
UPD Oct 2024. Поиск стал на весь экран и элементы теперь идут не списком вниз, а заполняют все пространство страницы:
Если необходимо вернуть старый вид поиска, то ставим у body класс disableFullGlogalSearchView (в GetLayout SELECT 1 параметр bodyClass).
Google поиск по нашей документации
- Руководства
- Основа Falcon Space Из чего состоит веб-платформа Falcon Space Настройки системы Работа со страницами Создание структуры БД - создание таблиц БД и связей между ними Описание кабинета для администрации сайта (роль editor) Описание интерфейса администратора-разработчика веб-платформы Внешние действия (уведомления, пуш, email, вызов API) Управление ролями и пользователями на сайте Система периодических событий на сайте (планировщик, крон, cron) Универсальный поиск по личному кабинету на сайте Falcon Space. Словарь терминов Соглашения по SQL коду в платформе
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта