HTML представление виджета

buketoff 185 3 5 7

html представление виджета взято из ДО и переделано

// Возвращает html представление виджета.
//
// Параметры:
//   Заголовок - Строка - html текст заголовка виджета.
//   Подвал - Строка - html текст подвала виджета.
//   ТелоВиджета - Строка - html текст тела виджета.
//   ФонаВиджета - Строка - цвет фона виджета в виде шестнадцатеричного значения.
//   ЦветРамкиТаблицы - Строка - цвет рамок таблиц в виджете, в виде шестнадцатеричного значения.
//
// Возвращаемое значение:
//   Строка - html представление виджета.
//
Функция HTMLПредставлениеВиджета(
		Заголовок = "", Подвал = "", ТелоВиджета, ФонаВиджета, ЦветРамкиТаблицы)
	
	HTMLТекст = "<html><head><meta name=""viewport"" content=""viewport-fit=cover, width=device-width"" />"
		+ СтильHTML(ЦветРамкиТаблицы)
		+ "<body bgcolor=" + ФонаВиджета + ">";
		
	HTMLТекст = HTMLТекст + СтрЗаменить("
	|<table class=""one"">
	|<tr><td>
	|<table class=""title"">
	|<tr>
	|<td class=""menu"">
	|</td>
	|<td class=""title"">
	|<p>	
	|" + Заголовок + "
	|</td>
	|</tr>
	|</table>	
	|</td></tr>	
	|<tr class=""height100""><td>
	|" + ТелоВиджета + "
	|</td></tr>	
	|<tr><td>	
	|<table>
	|<tr>	
	|<td width=""5"">
	|</td>	
	|<td height=""18"">
	|" + Подвал + "
	|</td>	
	|</tr>
	|</table>	
	|</td></tr>	
	|</table>	
	|</body></html>", "|","");
		
		
	
	УдалитьВредоносныйКодИзТекста(HTMLТекст); 
	
	Возврат HTMLТекст;
	
КонецФункции

// Удаляет вредоносный код html из текста.
//
// Параметры:
//   Текст - Строка - текст
//
Процедура УдалитьВредоносныйКодИзТекста(Текст) Экспорт
	
	НРегТекст = НРег(Текст);
	
	МассивСтрокБезВредоносногоТекста = Новый Массив;
	
	// Удаление скриптов
	НомерСкрипта = 1;
	ПозицияНачалаОбработки = 1;
	
	Пока Истина Цикл
		
		ПозицияНачалаОткрывающегоТегаScript = СтрНайти(НРегТекст, "<script",,, НомерСкрипта);
		ПозицияНачалаЗакрывающегоТегаScript = СтрНайти(НРегТекст, "</script",,, НомерСкрипта);
		
		Если ПозицияНачалаОткрывающегоТегаScript = 0 Или ПозицияНачалаЗакрывающегоТегаScript = 0 Тогда
			Прервать;
		КонецЕсли;
		
		ПозицияОкончанияОткрывающегоТегаScript = СтрНайти(НРегТекст, ">",, ПозицияНачалаОткрывающегоТегаScript + 1);
		ПозицияОкончанияЗакрывающегоТегаScript = СтрНайти(НРегТекст, ">",, ПозицияНачалаЗакрывающегоТегаScript + 1);
		
		Если ПозицияОкончанияОткрывающегоТегаScript = 0 Или ПозицияОкончанияЗакрывающегоТегаScript = 0 Тогда
			Прервать;
		КонецЕсли;
		
		// Добавим текст до скрипта
		ТекстДоСкрипта = Сред(Текст, ПозицияНачалаОбработки, ПозицияНачалаОткрывающегоТегаScript - ПозицияНачалаОбработки);
		МассивСтрокБезВредоносногоТекста.Добавить(ТекстДоСкрипта);
		
		ПозицияНачалаОбработки = ПозицияОкончанияЗакрывающегоТегаScript + 1;
		НомерСкрипта = НомерСкрипта + 1;
		
	КонецЦикла;
	
	Если МассивСтрокБезВредоносногоТекста.Количество() > 0 Тогда
		
		// Добавим текст после последнего скрипта
		ТекстДоСкрипта = Сред(Текст, ПозицияНачалаОбработки);
		МассивСтрокБезВредоносногоТекста.Добавить(ТекстДоСкрипта);
		
		// Сформируем итоговую строку без скрипта
		Текст = СтрСоединить(МассивСтрокБезВредоносногоТекста);
	КонецЕсли;
	
КонецПроцедуры
0
Орфографическая ошибка в виджета (найдено 8): виджета
Орфографическая ошибка в ТелоВиджета (найдено 3): Виджета
Орфографическая ошибка в ФонаВиджета (найдено 3): Виджета
Орфографическая ошибка в виджете: виджете
Орфографическая ошибка в HTMLПредставлениеВиджета: Виджета
Орфографическая ошибка в viewport (найдено 2): viewport
Орфографическая ошибка в bgcolor: bgcolor

См. также

ПредставлениеСмТакже (БСП)

ПредставлениеВажный (БСП)

ПросклонятьПредставление (БСП)

ПредставленияЗаполнены (БСП)

ПредставлениеПисьма (БСП)

ПредставлениеРасписания (БСП)

ПредставлениеРоли (БСП)

ПредставлениеАдреса (БСП)

ПредставлениеСписка (БСП)

Модератору