Работа со страницами

Страницы создаются в панели администратора в разделе Страницы

Доступ к странице имеет только роли, указанные в поле Роли (через запятую без пробелов. Если указано all - то доступ имеют все. Если * - то только авторизованные пользователи). 

Безопасность и разграничение доступа в Falcon Space



У каждой страницы может быть свой JS и CSS файлы. Их можно менять через страницу управления данной страницей. 

Вся функциональность добавляется через специальные сниппеты разметки - это сниппеты as crud, as form, as editable и т.д.

Пример сниппета:

<div class="as-form" data-code="form1" data-itemid="12"></div>

- при выводе преобразуется в вывод формы с кодом code1

Адрес страниц - /{code}, где code - это код страницы. 

Для связи страниц используются параметры в разметке , которые при рендеринге страницы подменяются на URL параметры (в большинстве случаев для идентификации дополнительных объектов лучше использовать параметр itemID, т.к. он неявно передается на страницу, напр. /page1/code1 означает переход на страницу page1 и itemID=code1). 

Также можно передавать в разметке параметр для вывода имени текущего пользователя. 



Примечание: 

  • Меню кабинетов определяется на базе раздела меню, а также из тех страниц, которые имеют галочку Показывать в меню. 
  • Важно! Не меняйте без особой необходимости код страницы (по коду страницы создаются JS и CSS файлы + при изменении кода изменится URL страницы) + на это поле завязаны хранимые процедуры с хлебными крошками.
  • Страница будет доступна для просмотра только той роли, в рамках которой она была создана.
  • Сниппеты - задают типовую разметку, чтобы не по памяти набирать ее. Старайтесь указывать все параметры, которые дает сниппет (т.е. если не нужен параметр, то оставляйте пустым или 0).
  • Для страниц панелей управления указываем в настройках галочку Панель управления и иконку.  Эта страница будет считаться главной для кабинета и может быть использована для редиректов на вход в кабинет.  
  • Все посещения страниц сохраняются в as_trace с кодом pv (сохраняется url, falconGuid и в некоторых случаях itemID).
  • Для страниц можно использовать специальный режим, при котором можно выводить разметку с логикой через JSRender. Для этого ставим галочку Режим JS Render и используем специальную разметку (но помните, что при этом вывод данных на странице при этом не будет индексироваться поисковыми системами).

     

          В JS Render передается объект с полями username (имя текущего пользователя), roles (массив ролей), urlParameters (параметры URL в виде объекта {key:value, ...}).

  • Для перехода к редактированию страницы нажмите иконку редактирования справа вверху.  

       

  • Вы можете указать какой использовать Layout для страницы (Редактирование страницы / Правая колонка) - либо кабинетный (для страниц кабинета пользователей), либо лицевой (для страниц неавторизованного доступа, например Каталог, Корзина и т.д.). 
  • Для главной страницы используется страница со специальным кодом _default. При этом в web.config в App Settings должен быть указан параметр hasDefaultPage=”1” 
  • Нельзя использовать коды страниц, начинающихся с этих слов:  controls, arkstuff, admin, catalog, account, api, list, home.
  • Название страницы участвует в заголовке страницы, а также в формировании меню (если стоит галочка в Меню). 

SQL процедура управления страницей

Для страницы можно через SQL (кнопка SQL Страницы) внедрять различную бизнес-логику на SQL. 

Входные параметры 

  1. @roles - роли текущего пользователя через запятую. 
  2. @itemID - переданный параметр itemID в URL
  3. @urlParameters - коллекция параметров из URL (Key, Value). Здесь также передаются спец параметры, которые добавляются системой (т.е. это не принимаются от браузера): 
    1. langID - текущий язык
    2. username - текущий пользователь

Выходные параметры

    1. SELECT 1 - Хлебные крошки
    2. SELECT 2 - 
      1. Title, Description, Keywords - SEO параметры  страницы, тег title и метатеги Description и Keywords. 
      2. RedirectUrl - Если задано, то идет перенаправление на другую страницу.
      3. BodyBottomSection - здесь можно вставить дополнительные скрипты (или динамическую микроразметку)
      4. HeadSection Здесь можно вставить подключения дополнительных стилей
      5. IntroRunBtnText, 1 IntroInstantRun - задают параметры мастера описания страницы. IntroRunBtnText - текст кнопки запуска мастера (по умолчанию становится справа на странице). IntroInstantRun  - если 1, то сразу запускается мастер при загрузке страницы (показывается автоматически только 1 раз при загрузке).
    3. SELECT 3 - Дополнительные параметры отдельным запросом, которые можно вывести на странице через {sp-par1}, где par1 - название параметра в SQL. Также здесь передается разметка для списковых данных (list1Makeup, list2Makeup… list5Makeup). 
    4. SELECT 4-8 - списковые данные в формате p1... p6, они используются в разметки listXMakeup
    5. SELECT 9 - настойки мастера ознакомления со страницей. 
      1. Selector - селектор элемента на странице (.btn)
      2. Event - по какому событию будет переход к следующему элементу (next - по кнопке Вперед, click - по клику на элемент Selector)
      3. Description - текст описания
      4. Shape  - какой фигурой выделяется элемент (rect, circle)
      5. ScrollAnimationSpeed  скорость анимации в мс (300)
      6. Raduis - радиус выделенной области при  Shape = circle (100)
      7. Margin - отступы выделенной области (50)
      8. NextText - текст кнопки Дальше. Если не задано - то кнопка скрыта.
      9. SkipText - текст кнопки Закрыть. Если не задано - то кнопка скрыта.
    6. SELECT 10 - подсказки к элементам (при наведении или клике)
      1. Selector - селектор элемента для которого будет выводиться подсказка. 
      2. Event  - click либо mouseenter (при наведении)
      3. Text - выводимый текст
      4. Type - цветовое решение по выводимому окну (danger, info и т.д.)
      5. ShowType - toast (вывод подсказки сверху вверху) или tooltip (миниподсказка, которая будет выводиться при наведении).
        CREATE PROCEDURE [dbo].[pg_crumbs_supplierProjects]
        	@roles nvarchar(128),
        	@itemID nvarchar(128) = '',
                @urlParameters CRUDFilterParameter READONLY
        AS
        BEGIN
        	CREATE TABLE dbo.#result (title nvarchar(256), link nvarchar(256), tooltip
                                          nvarchar(256), ord int)
        
        
        	insert into #result
        	select 'Главная', '/', '', 1
        	union
        	select 'Рабочий стол', '/home/p/supplierCabinet', '', 2
        	union
        	select 'Мои проекты', '', '', 3
        
                -- первый запрос - хлебные крошки
        	select * from #result order by ord
        
                -- второй запрос - seo параметры и RedirectUrl
                select 'Мои проекты' Title, '' RedirectUrl
        
                -- третий запрос в свободном формате, доп. параметры
                select 'Par1' as Par1
        	drop table #result
        END

Специальные страницы

  • _default - главная страница сайта
  • notfound - страница для показа 404 ошибки (ситуации, когда запрошенная страницы не найдена)
  • noaccess - страница отображается, когда к запрошенной странице нет доступа у пользователя.