Настройки системы
Введение
В системе есть различный уровень настроек:
- Системный SQL (/syssp) задает ключевые настройки, работающие через SQL ( в первую очередь это каркас страницы GetLayout)
- Статичные настройки (/settings) - раздел неизменяемых опций, которые используются в системе
- Системные настройки (файл web.config)
- Настройки frontend (/uploads/as.systemOptions.js) - для стилизации и работы в JS
Раздел Системный SQL (/sysSP)
Находится в меню "Система" -> "Системный SQL". Основные характеристики:
- Процедура поиска (falcon_search) - процедура глобального поиска (в шапке сайта)
- Процедура GetLayout (falcon_getLayoutInfo) - процедура извлечения для построения страницы (язык, настройки макета и т.д.). Выполняется при загрузке каждой страницы
- Периодический запуск (falcon_sync) - хранимки, которые запускаются по периоду. Чтобы они корректно работали, необходимо настроить ежеминутный вызов адреса из внешнего сервиса (см. соответствующий раздел)
- Генерация sitemap.xml (falcon_sitemap) - создание карты сайта в виде файла sitemap.xml
Раздел Общие настройки /settings
Находится в меню "Настройки". Основные характеристики:
- apiType - тип вывода АПИ. Либо XML либо JSON
- brand - Что выводится наверху слева (название сайта)
- commonScripts - разметка перед закрывающим тегом (счетчики, скрипты, глобальные кнопки и т.д.)
- commonScriptsNoBot - разметка перед закрывающим тегом (счетчики, скрипты, глобальные кнопки и т.д.) для обычных посетителей, исключая ботов.
- commonStyles - добавление стилей, подключение шрифтов
- disableMailLog - если 1, то будет отключено логирование отправки писем в trace с кодом email
- disableSendMail - если 1, то будет глобально для сайта отключена отправка писем.
- enableLogErrorForBot - если "1", то для ботов будут фиксироваться JS ошибки в trace (по умолчанию логирование ошибок для ботов отключено)
- globalCSS - стили, которые применятся к каждой странице
- globalJS - JS, который будет доступен каждой странице
- globalRightBreadcrumb - разметка, которая добавляется в правые хлебные крошки на все стандартные страницы с хлебными крошками.
- logChanges - логировать или нет изменения сущностей (если не используется, то лучше не логировать, чтобы не разрасталась база)
- logoIcon - FontAwesome иконка для логотипа вверху слева
- logoffURL - если указан URL, то после выхода пользователь будет переходить на этот адрес, а не на главную
- mail…. - Настройки отправки почты
- emailAsync - если 1, то почта будет отправляться асихнронно (т.е. не задерживать основной запрос и выполняться в отдельном потоке).
- robots.txt - редактирование файла индексации robots (для поисковиков)
- showDebugInfo - если 1, то для компонентов Форма, Таблица, Дашборд и другие будут выводиться JSON объекты в консоль браузера (независимо от роли)
- editPageInModal - если 1, то для editor и admin будет управление страницей открываться в модальном окне на этой же странице.
- uploadTinyFilenameFormat - при загрузке файла через редактор HTML можно задать маску имени используя переменные {name} (начальное имя файла), {g} (часть GUID), {num} (случайное число).
- sitemap.xml - редактирование sitemap.xml файла (для поисковиков). Настройка НЕАКТУАЛЬНА (данные теперь берутся из процедуры falcon_sitemap).
Как изменить элементы Layout (настройки GetLayoutInfo)
Для этого необходимо изменить процедуру falcon_getLayoutInfo в разделе Системные элементы/Системный SQL.
Параметры процедуры:
- url - текущая страница
- username - текущий пользователь
- langID - текущий язык
- parameters ExtendedDictionaryParameter (необязательный) - содержит служебные данные (например, falconGuid - уникальный идентификатор любого посетителя, который хранится у него в куки)
Общий вид процедуры:
CREATE PROCEDURE [dbo].[falcon_getLayoutInfo]
@url nvarchar(256),
@username nvarchar(128),
@langID int = 0, -- 111,
@parameters ExtendedDictionaryParameter READONLY
AS
BEGIN
declare @userGuid uniqueidentifier = (select top 1 try_cast(Value as uniqueidentifier)
from @parameters where [Key] = 'falconGuid')
declare @disableSlideoutMenu bit = 0
declare @isAdmin bit = dbo.sec_isUserInRole(@username, 'admin')
declare @lang nvarchar(20) = ''
declare @footer nvarchar(max) = [dbo].as_htmlBlockLang ('footer', @langID)
declare @mobileFooter nvarchar(max) = [dbo].as_htmlBlockLang ('mobileFooter', @langID)
declare @topNavbarText nvarchar(max) = [dbo].as_htmlBlockLang ('topNavbarText', @langID)
declare @topPageText nvarchar(max) = [dbo].as_htmlBlockLang ('topPageText', @langID)
declare @customHeader nvarchar(max) = [dbo].as_htmlBlockLang ('customHeader', @langID)
declare @topSubMenuText nvarchar(max) = [dbo].as_htmlBlockLang ('topSubMenuText', @langID)
declare @topSubMenuTitle nvarchar(max) = [dbo].as_htmlBlockLang ('topSubMenuTitle', @langID)
declare @topMakeup nvarchar(max) = [dbo].as_htmlBlockLang ('topMakeup', @langID)
declare @topMobileMakeup nvarchar(max) = [dbo].as_htmlBlockLang ('topMobileMakeup', @langID)
declare @customMetaTags nvarchar(max) = [dbo].as_htmlBlockLang ('customMetaTags', @langID)
declare @enableLang bit = iif(dbo.as_setting('enableLang', '')='True',1, 0)
declare @enablePWA bit = iif(dbo.as_setting('enablePwa', '')='True',1, 0)
declare @enableGeolocation bit = iif(dbo.as_setting('enableGeolocation', '')='True',1, 0)
declare @geolocationKey nvarchar(128) = dbo.as_setting('geolocationKey', '')
declare @saveGeoposition bit = iif(dbo.as_setting('saveGeoposition', '')='True',1, 0)
declare @helpChatKey nvarchar(128) = dbo.as_setting('helpChatKey', '')
declare @fixWidth bit = iif(dbo.as_setting('fixWidth', '')='True',1, 0)
declare @dateFormat nvarchar(128) = dbo.as_setting('dateFormat', 'dd.mm.yyyy')
declare @phoneFormat nvarchar(128) = dbo.as_setting('phoneFormat', '+7 (ddd) ddd-dddd')
declare @linkPrefix nvarchar(128) = dbo.as_setting('linkPrefix', '5')
declare @userPicLabel nvarchar(128) = iif(dbo.as_setting('showLogin', '')='True', @username, '')
declare @enableAnimation bit = try_cast(dbo.as_design_getSetting('enableAnimation', '0') as bit),
@horizontalMainMenu bit = try_cast(dbo.as_design_getSetting('horizontalMainMenu', '0') as bit),
@theme nvarchar(128) = dbo.as_design_getSetting('theme', '')
declare @round nvarchar(32) = dbo.as_design_getSetting('round', '')
declare @roundClass nvarchar(32) = iif(@round='round', 'as-round', iif(@round='unround', 'as-unround', ''))
-- SELECT 1 - LAYOUT SETTINGS
select
@theme theme, --@theme
isnull((select top 1 Value from as_settings where Code = 'Brand'), 'Falcon Auction') brand,
isnull(dbo.rs_resourceLink('siteLogo','0',1),'') LogoIcon,
isnull(dbo.rs_resourceLink('favIcon','0',1),'/content/images/favicon.ico') favicon,
@topNavbarText TopNavbarText,
@topPageText topPageText,
@topMakeup topMakeup,
@topMobileMakeup topMobileMakeup,
@customMetaTags customMetaTags,
@roundClass + ' ' + iif(@horizontalMainMenu=1, 'as-horizontalMainMenu', '') +
iif(@disableSlideoutMenu=1, ' as-disableSlideoutMenu ', '' ) bodyClass, -- as-disableSlideoutMenu
'' leftFooterText,
'' rightFooterText,
@footer Footer,
@mobileFooter mobileFooter,
@customHeader customHeader,
@topSubMenuText topSubMenuText,
@topSubMenuTitle topSubMenuTitle,
'/user' userProfileLink,
@enableLang enableLang,
@lang defaultLang,
@enableAnimation enableAnimation,
@enablePWA enablePWA,
1 enablePWANotifications,
@enableGeolocation EnableGeolocation,
@geolocationKey GeolocationKey,
@saveGeoposition saveGeoposition,
iif(@isAdmin=1, '0cebbe5e-7884-4c41-b09a-4c1dcbabeff7', @helpChatKey) HelpChatKey,
@fixWidth fixWidth,
'' leftSidebar,
iif(@username='',1,0) HideLeftCol, --
1 MainMenuInRightSidebar,
'' BalanceSum,
'' BalanceIcon, -- fa-money-bill-alt
'' BalanceLink,
'' BalanceText,
0 HorizontalMenuOnTop,
0 BreadcrumbOnTop,
iif(@isAdmin=1,1,0) showSearch,
@dateFormat dateFormat,
@phoneFormat phoneFormat,
1 DisableCart,
'http://schema.org/WebPage' SchemaTypeBody,
'2x' alertIcon,
@linkPrefix linkPrefix,
@userPicLabel userPicLabel
--SELECT 2 - TOP HORIZONTAL MENU
select 1 -- id Id, '' Name, '' Title, '' Url, 'fa fa-cogs' CssClass, 0 isActive, 0 ParentID
declare @select3 table (type nvarchar(max), title nvarchar(max), code nvarchar(max), itemID nvarchar(max), icon nvarchar(max),
btnText nvarchar(max), bigModal bit, FloatPanel bit, background nvarchar(max), ord int)
insert into @select3
select type, title, code, itemID, icon, btnText, bigModal, FloatPanel, background, ord
from as_layout_fastLinks
where dbo.sec_hasAccessByUsersRoles(@username, '', roles)=1
--SELECT 3 FAST ADD LINKS
select * from @select3
order by ord
declare @select4 table (class nvarchar(max), title nvarchar(max), icon nvarchar(max), url nvarchar(max), ord int)
insert into @select4
select class, title, icon, url, ord
from as_layout_stuffMenu
where @username <>'' and dbo.sec_hasAccessByUsersRoles(@username, '', roles)=1
or @username = '' and onlyNotAuth = 1
-- SELECT 4 STUFF MENU
select * from @select4
order by ord
-- SELECT 5 MENU Labels
/*
select '/tickets' Url, 'fa fa-edit' Icon, '12' Value, 'light' Type, '123' Title
union
select '/forms' Url, 'fa fa-edit' Icon, '' Value, 'success' Type, '123' Title
*/
if(@username<> '') begin
update as_users set lastVisitDate = getdate()
where username = @username
end
END
Выходной первый select (SELECT 1) имеет следующие параметры:
- alertIcon - настройки вывода иконки в сообщениях справа вверху. Значения - no, x, 2x, 3x. Определяет размер иконки. Если no - то иконки не будут использоваться
- BalanceSum, BalanceLink, BalanceText, BalanceIcon - вывод вверху элементов по балансу пользователя (в целом можно любую другую информацию вывести здесь о текущем пользователе). Элемент выводится только если BalanceSum не пустая строка (выводить можно и для неавторизованных пользователей)
- bodyClass - если указан, то к тегу body добавляется этот класс (необходимо для более точного CSS системных элементов (напр. хлебных крошек) для конкретных страниц)
- brand - название сайта (слева вверху)
- breadcrumbOnTop. Если 1 - то хлебные крошки выводятся в верхней полосе шапки. Если 0 - то под шапкой
- cartCode - задает код корзины для элемента в верхней полоске (data-code)
- customHeader - разметка верхней полоски, полностью заменяет верстку верхней панели. Может содержать различные параметры замены вида {par1}. Подробнее
- customMetaTags - кастомные настройки дополнительных тегов. По умолчанию там следующее:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="Falcon Space, Web-Automation.ru">
<meta name="theme-color" content="#cccccc">
- dateFormat - установка вывода формата даты, по умолчанию dd.mm.yyyy
- defaultLang - можно установить язык по умолчанию (например, ru-ru или en-us)
- disableCart - если 1, то в шапке сайта не выводится элемент корзины
- enableAnimation - включается анимация (появление заголовков, сообщение после сохранения формы, открытие модального окна)
- enableGeolocation - если 1, то включает запрос разрешения на геолокацию в браузере и сохранение страны пользователя
- enableLang - если 1, то можно менять язык справа наверху (локализация)
- favicon - путь к favicon иконке
- fixWidth - если 1 то страница имеет фиксированную ширину (container). По умолчанию макет страницы резиновый (container-fluid)
- fontLink - загрузка шрифта. По умолчанию загружается шрифт с Google Fonts. Если равен пробелу, то не добавляется подключение шрифта.
- footer - разметка для подвала (если она указана, то игнорируются leftFooterText и rightFooterText)
- geolocationKey - ключ Google GeolocationAPI для подключения скриптов геолокации
- helpChatKey - если указать ключ для чата (пока только ключ чатов replain), то выведет внизу чат для помощи пользователю. Указывается в формате replain:{id}. Можно давать различные чаты в зависимости от роли пользователя. Ключ чата можно получить на https://replain.cc/
- hideLeftCol - если 1 то скрывается вся левая колонка с меню и лого на странице
- HideNotificationPanel - если 1, то на странице под хлебными крошками не будет выводиться панель уведомлений для пользователя. По умолчанию она выводится.
- horizontalMenuOnTop. Если 1 - то горизонтальное меню выводится в верхней полосе шапки. Если 0 - то под шапкой
- leftFooterText - разметка в подвале слева, rightFooterText - разметка в подвале справа
- leftSidebar - HTML разметка в левом сайдбаре, выводится для всех страниц
- LinkPrefix - строка префикс для добавления в конец URL для загрузки CSS и JS. Требуется когда необходимо принудительно обновить у всех пользователей подгружаемые ресурсы (которые закешировались в браузере). В итоге ресурсы будут грузиться с ?v={prefix}
- logoIcon - иконка бренда (слева наверху), по умолчанию fa-dove. Также можно указать путь - тогда будет выводиться указанная картинка
- mobileFooter - разметка закрепленной полоски внизу мобильного (не заменяет footer). Типовая разметка:
<ul class="list-inline mt-2 text-center">
<li class="list-inline-item px-3"><a href="#" title=""><i class="fa fa-2x fa-cube"></i></a></li>
<li class="list-inline-item px-3"><a href="#" title=""><i class="fa fa-2x fa-star"></i></a></li>
<li class="list-inline-item px-3"><a href="#" title=""><i class="fa fa-2x fa-bars"></i></a></li>
<li class="list-inline-item px-3"><a href="#" title=""><i class="fa fa-2x fa-fire"></i></a></li>
</ul>
- phoneFormat - установка формата для телефона , по умолчанию +1 (ddd) ddd dd-dd
- redirectUrl - если задан, то будет выполнен редирект на указанную страницу (пример в SELECT1: select iif(@url like '%/diag%', '', '/diag') redirectUrl). Условие добавлено, чтобы не было редиректа.
- saveGeoposition - если 1, то в скрытом поле as-latlng будут проставлены текущие координаты в формате "lat,lng"
- schemaTypeBody - схема микроразметки Schema.org. Если указана, то у body проставляет схема (в общем случае можно использовать http://schema.org/WebPage)
- showSearch - Если 1 то поиск показывается пользователю
- theme - название темы. ВАЖНО! Не указывайте здесь названия несуществующей темы (в этом случае вся верстка сайта поедет и необходимо будет менять данную хранимую процедуру через SQL Management Studio). Тема это файл, хранящийся в папке /uploads/themes/{themeCode}
- TopMakeup и TopMakeupMobile - задают кастомную разметку для верхней панели системы с использованием переменных вида {code1}. Подробнее
- topNavbarText- разметка в верхней панели (слева от поиска)
- topPageText - разметка, которая добавляется перед хлебными крошками на странице
- TopSubMenuText, TopSubMenuTitle - задание большого подменю вверху. Выводится TopSubMenuTitle перед поиском и раскрывается в виде большой панели с разметкой TopSubMenuText
- userPic - указывает путь на картинку (выводится в правом верхнем углу как аватар пользователя). Если не указывать - то работает стандартный механизм загрузки файла getFile (грузится через отдельную хранимую процедуру). ВАЖНО - если картинка указана, то выбор картинки пользователем в профиле не будет влиять на нее
- userPicLabel - метка имени пользователя выводится рядом с аватаркой пользователя сверху справа. На мобильных экранах надпись скрывается
- userProfileLabel - место-заголовок, которое выводися в меню профиля пользователя справа наверху. Если пустая - то будет выводится имя пользотеля (username). Если пробел " ", то не будет выводиться ничего.
- userProfileLink - ссылка на профиль пользователя. Если заполнена - то показывается наверху справа в выпадающем списке.
Второй запрос в GetLayout (SELECT 2) - это горизонтальное меню.
Модель SELECT 2:
--SELECT 2 - TOP HORIZONTAL MENU
select 1
/*
select id Id,
name Name,
'' Title, подсказка к элементу
code Url,
'fa fa-cogs' CssClass, класс иконки
0 isActive,
parentID ParentID родительский элемент(для вложенного меню)
from as_cat_categories
*/
Если не указан 2 запрос, то меню не выводится (это меню может никак не пересекаться с as_menu и pg_pages и строиться полностью динамически).
Третий запрос GetLayout (SELECT 3) дает список форм быстрого добавления, которые можно открыть с любой страницы в модальном окне.
Для этого используем следующую модель в SELECT 3:
select * from
(select 'form' type,'Создать страницу' Title, 'newPage' Code, '' itemID, 'fa-plus'
Icon, 'Создать страницу' btnText, 0 bigModal, 0 Ord
union
select 'sp' type, 'Процедура GetLayout' Title, 'falcon' Code,'getLayoutInfo'
itemID, 'fa-cube' Icon, '' btnText, 1 bigModal, 6 Ord
union
select 'link' type,'Очистка кеша' Title, '/controls/stuff/clearcache' Code,''
itemID, 'fa-trash' Icon, '' btnText, 0 bigModal, 500 Ord) t
union
select 'formcont' type,'' Title, 'newPage' Code,'123'
itemID, '' Icon, '' btnText, 0 bigModal, 500 Ord) t
Order by ord
При Type = form вызывается модальная форма
- Title - задает название элемента в списке и заголовок модального окна.
- Code - код модальной формы
- ItemID - data-itemID для формы.
- Icon - иконка в списке
- btnText - Кнопка сохранения в модальном окне
- bigModal - Если 1, то делает модальное окно большим.
- slideout - Если 1, то форма будет в виде большого окна, выдвигающегося слева. Если 2 - то справа. Если 0 - то стандартное модальное окно по центру.
- floatPanel - если 1, то кнопка будет участвовать во float панели справа. Подробнее про float панель
При Type = formcont прямо в панели показывается форма (для малых форм)
- Code - код формы
- ItemID - data-itemID для формы
- Title, Icon, btnText, btnModal, slideout - не используются
При Type = table вызывается таблица в модальном окне
- Title - задает название элемента в списке и заголовок модального окна.
- Code - код таблицы
- Icon - иконка в списке
- bigModal - Если 1, то делает модальное окно большим.
- slideout - Если 1, то таблица будет в виде большого окна, выдвигающегося слева.
При Type = link кнопка будет работать как ссылка и переходить по адресу, указанному в поле Code.
При Type = sp кнопка будет работать как компонент изменения хранимой процедуры (компонент as-sp-link).
При этом в Code указывается первая часть (data-control), в itemID указывается вторая часть (data-entity) и в btnText указывается 3 часть наименования хранимой процедуры (data-operation).
Примечание:
1. если при этом не нужен SELECT 2, то вместо него можно просто поставить Select '1'
2. Если нужно скрыть определенную ссылку, то можно установить type = ''
3. Можно задать фон элемента через параметр background (bootstrap цвета - info, danger, warning и т.д.)
4. floatPanel =1 у ссылки помещает ее в плавающую панель иконок справа
Четвертый запрос GetLayout (SELECT 4) определяет что будет выводиться пользователю в служебном меню справа (при нажатии на иконку пользователя).
-- SELECT 4 STUFF MENU
if(@username='admin') begin
select * from
(select '' Class,'Мой профиль' Title, 'fa-user' Icon, '/user' Url, 0 Ord
union
select '' Class,'Сменить пароль' Title, 'fa-key' Icon,
'/admin/account/changepassword' Url, 1 Ord
union
select '' Class,'Выход' Title, 'fa-sign-out-alt' Icon,
'/account/logoff' Url, 2 Ord) t
Order by ord
end else begin
select * from
(select '' Class,'Войти' Title, 'fa-user' Icon, '/account/login' Url, 0 Ord) t
Order by ord
end
Примечание. Быстрые ссылки из SELECT 4 доступны через горячие клавиши Ctrl + Alt + [Num]
Пятый запрос GetLayout (SELECT 5) определяет лейблы, которые выводятся у пунктов меню.
select '/tickets' Url, 'fa fa-edit' Icon, '12' Value, 'light' Type, '123' Title
union
select '/forms' Url, 'fa fa-edit' Icon, '' Value, 'success' Type, '123' Title
По Url мы находим пункт меню и добавляем в него элемент с иконкой Icon, справа от иконки значение Value. Стиль подложки задает Type (secondary, light, success и т.д.)
Шестой запрос GetLayout (SELECT 6) содержит вызов внешних действий (отправка почты, телеграм и т.д.)
Настройки appsettings (web.config)
Это специальные системные настройки, которые хранятся в конфигурационном файле веб-проекта в разделе appSettings. В core версии платформы, эти настройки хранятся в файле appsettings.json
- autoCommentToSP - если 1, то при сохранении хранимой процедуры в нее будет записываться в конец автокомментарий с именем пользователя и временем правки.
- catalogCacheMinutes - время кеширования в минутах результатов выдачи каталога (если 0, то кеширование не используется)
- Cron:PeriodSeconds и Cron:Key - настройка внутреннего планировщика периодических событий, задают период события в секундах и ключ для проверки в хранимой процедуре
- defaultLang (en-us, ru-ru) - установка языка по умолчанию (имеет приоритет над аналогичной установкой в Settings). Имеет смысл использовать когда 2 разных приложения используют одну базу и могут иметь разные настройки в web.config по языку.
- disableAntiXSSRoles - список ролей, которые могут отправлять на сервер HTML (защита от XSS атак).
- disableSaveTraceCodes - список кодов через запятую, для которых нужно отключить сохранение в trace. Если * - то любые коды не сохраняются.
- disableTransactions - если 1, то во всех запросах к БД отключены транзакции при выполнении запросов (режим используется для запроса к другим базам через openquery). Нюанс: если транзакции включены (по умолчанию), то не будут работать в runSQL редакторе прямые команды update, insert.
- HotLinkRegexFilter, HotLinkRegexFilterDomain (доступно только в appsettings.json для Core) - указаны шаблоны путей, для которых будет включена защита от хотлинкинга (когда идет прямое обращение ресурса, а не со страницы с сайта). Указываем массив шаблонов, а также домены, с которых можно делать ссылки. Пример:
HotLinkRegexFilter": [
"/uploads/(.*)"
],
"HotLinkRegexFilterDomain": "localhost"
- hugeQueriesLimit - указываем суммарное число строк, вернувшихся от запроса, при котором логируется файл количества строк в as_trace с кодом huge (по умолчанию 500) используется для поиска больших массивов, загружающих процессор
- jsAvailableTraceCodes - устанавливает какие коды (строка через запятую) в trace может сохранить front сторона (из JS), по умолчанию это строка "event,dblreq"
- licenseKey - ключ лицензии экземпляра программы
- listCacheMinutes - время кеширования в минутах результатов выдачи списка list (если 0, то кеширование не используется)
- logChanges - если 1, то будут сохраняться все изменения хранимых процедур в базу данных
- logUserAction - если 1, то в as_trace будут логироваться все поcещения страниц с кодом (pv) и все сохранения форм (с кодом sf)
- proxyPassword - пароль к прокси
- proxyUrl - адрес прокси для телеграма (в формате http://45.89.19.84:11498)
- proxyUser - пользователь прокси
- security:requestsInMinuteLimit и security:blockIPCacheMin - настройки блокировки частых запросов по IP (боты, парсинг). Подробнее
- security:trapUrls - список URL через запятую. Если посетитель заходит на один из адресов, то он блокируется на некоторое время (например, значение /wp-admin,/wp-content).
- sendPrintToUsernames - список администраторов, кому приходят print из sql процедур в реальном времени (выводятся слева внизу на любой странице).
- sqlTimeout - задает в секундах таймаут на запросы sql (по умолчанию 30 секунд)
- telegramToken - токен телеграм. Если не указан, то бот телеграма не запускается
- telegramOnlyTextMessages - если 1, то телеграм бот будет обрабатывать только текстовые запросы
- traceTextSize - максимальный размер поля text в as_trace. (по умолчанию 2047). Если вы измените тип поля на nvarchar(max), то имеет смысл увеличить этот параметр до требуемого размера
Настройки кеширования
В системе некоторые объекты кешируются на уровне сервера:
- меню пользователя
- выдача каталога (время кеша устанавливается в web.config. Если 0, то отключено).
- выдача списков list (время кеша устанавливается в web.config. Если 0, то отключено).
- работа с ролями пользователей
- настройки
Корневой префикс всех ключей кеша - as_
Вручную очистить кеш можно в разделе Настройки.
Если необходимо чистить кеш после некоего действия в форме - используйте внешнее действие clearcache
select 'clearcache' type, 'as_' prefix
Дополнительные настройки через class для body
В GetLayout вы можете установить класс для тега body. Он может иметь некоторые значения для настроек:
- as-poorVision - чуть увеличенный шрифт, режим для слабовидящих.
- as-disable-onerror - отключен обработчик ошибок (и ошибки выводятся как есть в консоли браузера)
- as-stickyLeft - левая панель всегда на виду
- as-stickyTop - верхняя плашка всегда привязана к верху браузера
- as-disableSlideoutMenu - отключает на мобильных устройствах открытие меню по swipe (движение пальцем вправо).
Настройки Frontend в JS файле
Некоторые настройки вынесены в файл /uploads/as.systemOptions.js. Они управляют отдельными деталями работы frontend.
var as = as || {};
as.systemOptions = {
"alert.alwaysHidePrev": false, // если true, то при появлении нового алерт будут скрываться все предыдущие
"alert.disableProgress": false, // скрывать в alert окне progress bar элемент
"alert.defaultDelay": 7000, // длительность по умолчанию для alert
"alert.placement": "center", // расположение окна алерт (center, leftBottom, leftTop, rightBottom). По умолчанию - справа наверху.
"alert.defaultDelay": 7000, // задержка окна alert по умолчанию
"alert.disableTimestamp":false, // настройка в as.systemOption.js - если true, то отключает показ метки времени в окошках alert
"alert.headerIcon": "/uploads/1.png", // путь к иконке для вывода в заголовке окна alert
"copy.enableSourceAdding": true, // если true - то при копироовании текста с сайта будет идти добавка в текст.
"copy.container": "", // указывает селектор контейнера, в рамках которого добавляется прибавка текста при копировании
"copy.disableCopy": false, // если true - то при копировании текста через Ctrl + C не будет ничего скопировано в буфер обмена
"form.disableMaxlengthInput": false, // отключить для полей с maxlength отображение остатка
"form.spinnerIcon": "fa-spinner fa-spin", // иконка загрузки формы
"form.progressDelay": 1000, // delay for progress trigger field change
"form.checkFieldDelay": 1500, // delay перед отправкой запроса по изменению поля.
"form.updateDependentColsDelay": 200, // озадержка в мс перед срабатыванием триггера Зависимых колонок
"form.resultContClasses": "p-3 my-3 text-muted shadow-sm border d-flex justify-content-between", // классы окна результата при сохранении форм
"form.ctrlEnterForm": "founderror", // форма которая будет показываться при ctrl enter (с обработкой выделенного текста)
"entity.statusColorStyle": "border: solid 1px {0}", // задает стиль статуса Сущности {0} - #color
"entity.actionColorStyle": "background-color: {0}", // задает стиль кнопки дейсвтия {0} - #color
"disableDebugMode": false, // возможность отключить показ отладочных сообщений в консоли браузера
"doubleRequests.disableCheck": false, // отключить контроль количества одинаковых запросов на странице
"doubleRequests.count": 3, // порог по количеству запросов, после которого будет идти уведомление в trace с кодом dblreq
"doubleRequests.countLimit": 4, // после превышения данного порога запрос будет отбрасываться и выводиться сообщение юзеру
"doubleRequests.duration": 2000, // длительность в течение которого учитывается количество запросов (в миллисекундах)
"imageCheckboxDefaultImage": "https://demo.web-automation.ru/uploads/fire.gif", // поле формы imageCheckbox - картинка по дефолту
"imageCheckboxDefaultWidth": "50px", // поле формы imageCheckbox - ширина по дефолту
"imageCheckboxDefaultHeight": "50px", // поле формы imageCheckbox - высота по дефолту
"menu.animateIcon": "faa-tada", // установить формат анимации иконок меню при наведении (варианты - https://l-lin.github.io/font-awesome-animation/)
"menu.side": "right", // где выводится меню на мобильных устройствах - left.right
"menu.disableSlideout": false, // если true, то не будет работать swipe для меню.
"modal.headerBack": "danger", // цвет верхней полоски в модальном окне
"modal.bodyBack": "warning", // цвет тела модального окна
"modal.footerBack": "success", // цвет нижней части модального окна.
"modal.enablePrevNextModal": false, // если true, то в модальном окне будут показаны кнопки перехода назад/вперед (переключение по истории показа модальных окон)
"modal.changePageTitleWithModal": true, // если true то при открытии окна будет меняться title страницы (при закрытии возвращать начальное значение)
"online.disableCheck": false, // если true - то не будет проверяться статус онлайн юзер или нет (as-online)
"online.period": 30000, // через сколько миллисекунд опрашивать сервер о статусе юзера (онлайн или нет)
"table.removeIcon": "far fa-trash-alt",// иконка удаления в таблице
"table.commentIcon": "fa-comment", // иконка коммента в таблице
"table.defaultTheme": "light", // тема для таблиц по умолчанию
"table.instantFilterDelay": 1500, // задержка в мс при срабатывании InstantFilter
"table.subPlus": "fa-caret-right", // иконка для свернутого состояния sub
"table.subMinus": "fa-caret-down",// иконка для развернутого состояния sub
"timestamp.secNow":10, // кол-во секунд, в течениие которых временная метка выводится как "только что"
"table.mobCardsHorizontal": true, // если true то строки таблицы в моб будут идти как карточки со скроллингом вправо.
"search.delay": 3000, // через сколько мс начнет запускаться глобальный поиск
"search.minLength": 5, // кол-во символов в поиске с которого запускается поиск
"switch.defaultWidth": "150px", // ширина переключателя по умолчанию
"system.excludeExceptions": /Client Closed Request|1111/g, // какие JS ошибки не логировать
"system.slowRequestLimitMs": 700, // если больше этого порога в мс, то Ajax запрос будет логироваться в trace с кодом slow
"system.disableSignalR": false, // если true то будет отключен механизм signalR (уведомления с сервера на клиент о некоторых событиях)
"system.disableScrollEvent": false, // если true то событие onscroll будет отключено (для отладки ситуаций, когда зависает страница при скрролле).
"system.getIPInfoUrlFormat" : 'some url {0}', // использование внешнего API для получения данных по IP ({0} - передаваемый API). Испольуется для компонента as-ip
"system.showButtonProgressIcon": "spinner-border spinner-border-sm mx-1", // настройка спиннера у кнопки выполнения действия (напр, сохранение формы). Если непустая,то добавляется спиннер иконка с заданным классом
// настройки для signalR уведомления
"notifications.alertType": "info", // вид вид уведомления SignalR
"notifications.alertIcon": "fa fa-bell", // иконка уведомления
"notifications.alertDelay": 100000, // как долго будет висеть уведомление
"notifications.alertShowUserFrom": true, // если true - то будет показываться юзер, от которого пришло уведомление
"notifications.sound": "", // путь к звуковому файлу - будет проигрываться при новом уведомлении
"notification.processNotificationIcon": "far fa-check-circle" // иконка на кнопке обработки уведомления (в панели уведомлений).
}
Для использования настроек в JS разработке следует использовать функцию as.option(code, defValue).
Главные горячие клавиши
- Ctrl + Shift + S - сохранение формы или поля, вызов сохранения в модальном окне
- Ctrl + Shift + [Num] - вызов одного из элементов меню быстрых действий (вверху) - по номеру расположения в меню
- Ctrl + Shift + U - очистка storages в браузере (для быстрого решения проблем после обновления)
- Ctrl + Alt + F - применение фильтра в таблице
- Ctrl + Alt + N - вызов окна быстрого создания в таблице
- Shift + Alt + Z - вызов окна быстрых действий
- Ctrl + Shift + F11 - переключение диалогового окна на полноэкранный режим и обратно
Также есть механизм HotKeys - позволяет задать комбинацию клавиш и селектор элемента, на котором сработает данная комбинация.
Дополнительные элементы настройки
Установка и системные требования falcon space
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. Поэтапная реализация проекта