Универсальный поиск по личному кабинету на сайте
Выводится сверху личных кабинетов форма поиска. При вводе параметров вызывается специальная хранимая процедура и отображаются результаты поиска по разным объектам системы.
В Настройках системы в настройке 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. Необязательные: date, p1, p2, p3, p4, p5 (могут быть использованы при кастомной разметке)
- SELECT 2 - Result, Msg, Makeup
Есть возможность сделать кастомной разметку результатов поиска. Для этого используем в SELECT 2 параметр makeup и передаем в него псевдопеременные id, type, text, desc, date, p1, p2, p3, p4, p5
Пример:
select 1 Result, '' Msg, '{text} {p1}' Makeup
Google поиск по нашей документации
- Руководства
- Основа Falcon Space Из чего состоит веб-платформа Falcon Space Настройки системы Работа со страницами Создание структуры БД - создание таблиц БД и связей между ними Описание кабинета для администрации сайта (роль editor) Описание интерфейса администратора-разработчика веб-платформы Внешние действия (уведомления, пуш, email, вызов API) Управление ролями и пользователями на сайте Система периодических событий на сайте (планировщик, крон, cron) Универсальный поиск по личному кабинету на сайте Falcon Space. Словарь терминов Соглашения по SQL коду в платформе
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация
- Лендинги
- Универсальный API
- Примеры интеграций
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом
Это быстрое внесение изменений
по ходу эксплуатации программы. Как создается функционал на платформе
Это простой удобный интерфейс
адаптация под мобильные устройства. Про юзабилити платформы