Работа с HTML блоками. Создание модулей верстки

Часто возникают задачи использовать повторяющуюся верстку. 

Для этого можно использовать HTML блоки - куски некой разметки, которую можно вставить по именному коду.

Как использовать HTML блоки: 

  1. Создаем блок в разделе HTML блоки (/htmlblocks). 
  2. Указываем поле HTML. 
  3. Если блок будет динамический (что-то выводить в цикле или иметь меняющиеся параметры), то указываем хранимую процедуру генерации разметки (get). 
  4. Используем блок по коду в местах генерации разметки

Простое использование (для статичных элементов)

select dbo.as_htmlBlock(@code, @langID)  -- (без использования таблицы локализации as_lang_htmlBlocks)
select dbo.as_htmlBlockLang(@code, @langID) -- с учетом локализации (должна быть таблица as_lang_htmlBlocks)

В функцию передается код блока и язык. В итоге получаем статичную верстку. Эта функция неприменима, когда мы генерируем HTML блок через хранимую процедуру. 

Использование при сложной динамической разметке

Разметка HTML блока при этом строится через хранимую процедуру. Процедура задается в колонке SQL на странице /htmlblocks

Примеры процедуры для HTML блока, где выводится несколько элементов и на входе есть некие параметры: https://pastebin.com/quPkHDYX

На входе: 

  • @code - код блока,
  • @itemID - при вызове через SQL может быть передан некий itemID,
  • @parameters коллекция доп параметров в key, value2 (langID, username и т.д.)
  • @res - выходная переменная
На выходе: 
Выходных SELECT нет, дожно быт занесено значение в @res. 

Вызов процедуры осуществляется через подобный код: 

declare @res nvarchar(max)
declare @p ExtendedDictionaryParameter  -- передаем параметры в HTML Block

insert into @p ([key], value, value2)
values ('langID', @langID, @langID)

exec [dbo].[as_block]    -- данная процедура вызовет внутри хранимую процедуру блока. 
	@code ='blogArticles',
	@itemID =12,
	@parameters = @p,   -- ExtendedDictionaryParameter (langID, username и т.д.)
	@res =@res OUTPUT
select @res

Мы можем передать в процедуру некий itemID, а также указать любые дополнительные параметры в @parameters. Выходная разметка будет сгенерирована через хранимую процедуру блока и возвращена в @res.

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK