Работа с HTML блоками
Часто возникают задачи использовать повторяющуюся верстку.
Для этого можно использовать HTML блоки - куски некой разметки, которую можно вставить по именному коду.
Как использовать HTML блоки:
- Создаем блок в разделе HTML блоки (/htmlblocks).
- Указываем поле HTML.
- Если блок будет динамический (что то выводить в цикле или иметь меняющиеся параметры), то указываем хранимую процедуру генерации разметки (get).
- Используем блок по коду в местах генерации разметки
Простое использование (для статичных элементов)
select dbo.as_htmlBlock(@code) -- без использования локализации.
select dbo.as_htmlBlockLang(@code, @langID) -- с локализацией (должна быть таблица as_lang_htmlBlocks)
В функцию передается код блока и язык. В итоге получаем статичную верстку. Эта функция неприменима, когда мы генерируется HTML блок через хранимую процедуру.
Использование при меняющейся разметке (когда должна быть задействована хранимая процедура)
Разметка HTML блока при этом строится через хранимую процедуру. Процедура задается в колонке SQL на странице /htmlblocks
Примеры процедуры для HTML блока, где выводится несколько элементов и на входе есть некие параметры:
CREATE PROCEDURE [dbo].[block_blogArticles_get]
@code nvarchar(128),
@itemID nvarchar(256),
@parameters ExtendedDictionaryParameter readonly, -- langID, username...
@res nvarchar(max) output
AS
BEGIN
-- извлекаем блок по умолчанию
declare @s nvarchar(max) = '', @t nvarchar(max)='', @temp nvarchar(max), @langID int, @par nvarchar(max)
select @langID = isnull(try_cast(Value as int),1) from @parameters where [key] = 'langID'
SELECT @temp = STUFF(
( -- https://placeimg.com/80/80/nature
SELECT '<article class="bla-item card mb-3">
<a href="/blog/'+isnull(t1.code, '')+'">
<img class="card-img-top" src="'+isnull([dbo].[rs_resourceLink]('articleTitleImage', t1.id, 0), '')+'" alt="">
</a>
<div class="card-body">
<div class="bla-title card-title ">
<a class="card-link" href="/blog/'+isnull(t1.code, '')+'"><h5>'
+isnull(lang.title, isnull(t1.title,''))+'</h5></a><div class="bl-desc card-text"></div>
</div>
</div>
</article>'
FROM (select * from as_articles art
where id in (select value from dbo.split(@itemID, ','))) t1
left join as_lang_articles lang on lang.articleID = t1.id and lang.langID = @langID
order by ord
FOR XML PATH(''), TYPE
).value('.','varchar(max)')
,1,0, ''
)
if( isnull(@temp, '') !='') begin
set @t = iif(isnull(@langID,0) != 1,'<div class="as-blogArticles">' +
'<h3>Почитать</h3>' + isnull(@temp, '') +
'</div> ','<div class="as-blogArticles">' +
'<h3>More</h3>' + isnull(@temp, '') +
'</div>')
end
set @res = @t
END
Вызов процедуры осуществляется через подобный код:
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
Примеры удобных таблиц и форм Примеры дашборда Примеры графиков и диаграмм Пример календаря Таблица с данными по API Пример вывода карты с точками Виды полей форм Пример виджета статистики Пример дерева иерархии Пример компонента Временная линия Пример карточки товаров Пример учета загрузки ресурса Пример Канбан доски Пример мастер формы Пример выгрузки документов Excel/Word Пример заполнения данных по ИНН- Руководства
- Основа Falcon Space
- Основные компоненты Falcon Space. Работа с таблицами Falcon Space. Работа с формами Falcon Space. Работа с дашбордами Falcon Space. Работа с ресурсами Falcon Space. Работа со статусами Falcon Space. Бизнес-процессы Falcon Space. Генерация документов Docx и Xlsx Falcon Space. Работа с деревьями (иерархия) Работа с HTML блоками Внешние действия (уведомления, пуш, email, вызов API) Диаграммы и графики Интерактивное дерево Диаграмма Ганта Доска Канбан Диаграмма Chartbar Карта с маркерами Карточки Полоски прогресса Временная линия (timeline) Календарь
- Возможности Falcon Space
- Подсистемы
- Дополнительные компоненты
- Интеграции
- HOWTO
- HOWTO Таблицы
- HOWTO Формы
- HOWTO JS
- HOWTO CSS
- HOWTO Верстка
- Решение проблем
Платформа Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства
Бесплатное обучение разработке на Falcon Space
