При разработке системы контента он включает в себя процесс разделения содержания и формы, то есть процесс настройки шаблонов страниц на основе пользователей с последующей заменой их соответствующим контентом. Это фундаментально отличается от многих внешних систем управления контентом всего сайта. Существует множество систем управления контентом, которые выглядят одинаково, независимо от того, сколько людей их используют, поскольку страницы нельзя настроить, а пользователи, не знающие программирования, не могут их изменять. Я не думаю, что у такого веб-сайта, который заполняет всего несколько параметров и выдает результат, есть большое будущее. Потому что все выглядят одинаково и все знают, как заполнять эти параметры.
Например, если вы посмотрите на следующие сайты, думаете ли вы, что это набор программ?
www.blueidea.com
http://pages.blueidea.com
http://digi.blueidea.com
http://dsp.blueidea.com
http://www.dcshooter.com
Если я скажу вам, что все они представляют собой программы, а соответствующие веб-мастера создают только разные шаблоны для отображения страниц, вы обнаружите превосходство этой системы.
Конечно, из-за высокого класса этой системы она в настоящее время недоступна обычным пользователям, поэтому я разработал свою собственную систему управления контентом, систему управления контентом Kiss.
Чтобы предоставить пользователям систему шаблонов, прежде всего, должна быть простая и понятная система маркировки. Взгляните на следующий код, чтобы убедиться, что его легко понять:
<tag:loop Channelid=1 Pagesize=10 />channelid — идентификатор столбца в базе данных.
размер страницы — сколько документов нужно перечислить
title — это длина заголовка
type — это тип столбца списка, а параметр NEW здесь установлен на последний документ.
столбец — сколько столбцов отображать
Вышеприведенное введение предназначено для популяризации его среди людей, которые не знают программирования или не понимают систему контента, а также для рекламы моей системы управления контентом, и я хочу сказать, что модуль шаблона системы управления контентом, используемый Blue Идеальное место, намного сильнее моего.
Теперь очередь программиста, остальным не нужно смотреть вниз.
Так как же прочитать их значения?
Следующая функция является последней и используется для анализа содержимого всех шаблонов.
Скопируйте код следующим образом:'[Function] Пользовательский тег шаблона
Function ProcessCustomTags(ByVal sContent)
Dim objRegEx, Match, Matches
'Создание регулярного выражения
Set objRegEx = New RegExp
'Найти содержимое
objRegEx.Pattern = <tag:.*/>
' Игнорировать case
objRegEx.IgnoreCase = True
'Глобальный поиск
objRegEx.Global = True
'Выполнить поиск по переданная нам строка содержимого
Set Matches = objRegEx.Execute(sContent)
'Прокручиваем найденные совпадения
для каждого совпадения в совпадениях
'Замените каждое совпадение соответствующим HTML-кодом из нашей функции ParseTag
sContent = replace(sContent, Match.Value, ParseTag (Match.Value))
Далее
'Уничтожить набор объектов
Matches = ничего
set objRegEx = ничего
'Возвращаемое значение
ProcessCustomTags = sContent
End Функция
использует регулярные выражения в приведенном выше коде. Если вы мало что знаете об этом, обратитесь к соответствующей информации, я не буду здесь вдаваться в подробности.
Итак, как получить значение параметра, это также функция:
скопируйте код в поле копирования кода следующим образом:'[Функция] Получить имя параметра тега шаблона
', например: <tag:loopchannelid=1pagesize= 10 />function GetAttribute(ByVal strAttribute, ByVal strTag)
Dim objRegEx, Matches
'Создать регулярное выражение
Set objRegEx = New RegExp
'Найти содержимое (имя атрибута, за которым следуют двойные кавычки и т. д.)
objRegEx.Pattern = lCase(strAttribute) & =[0-9a-zA-Z]*
'Игнорировать регистр
objRegEx.IgnoreCase = True
'Глобальный поиск
objRegEx.Global = True
'Выполнить поиск
Set Matches = objRegEx.Execute(strTag)
'Если есть совпадение Затем верните значение, в противном случае верните нулевое значение,
если Matches.Count > 0, а затем
GetAttribute = Split(Matches(0).Value,)(1)
else
GetAttribute =
end if
'Уничтожить набор объектов
Matches = ничего
set objRegEx = ничего
end function
ОК, тогда как проанализировать содержимое, например <tagloop:> выше?
Ниже приведена функция:
скопируйте код следующим образом:'[Function] Разберите и замените соответствующую
функцию содержимого тега шаблона ParseTag(ByVal strTag)
dim arrResult, ClassName, arrAttributes, sTemp, i, objClass
'Если тег пуст, выйдите функция
if len(strTag) = 0, а затем выход из функции
'Разделить совпадение по символу двоеточия (:)
arrResult = Split(strTag, :)
'Разделить второе элемент результирующего массива для символа пробела, чтобы
'получить имя класса
ClassName = Split(arrResult(1), )(0)
'Используйте оператор выбора случая, чтобы определить, с каким классом мы имеем дело
'и, следовательно, какие свойства заполнять и т. д.
выберите case uCase(ClassName)
'Это класс цикла, поэтому создайте его экземпляр и получите его свойства.
case LOOP
set objClass = new LOOP_Class
LOOP.Channelid= GetAttribute(channelid, strTag)
LOOP.Pagesize= GetAttribute(pagesize, strTag)
LOOP.title = GetAttribute(title, strTag)
LOOP.type = GetAttribute(Type, strTag)
ParseTag = LOOP.column (GetAttribute(column, strTag), true )
'Уничтожить наш
набор объектов класса objClass = Nothing
end select
end
Цикл над
функцией
— это класс, поэтому я не буду здесь вдаваться в подробности.Потому что я давно не разговаривал и не привык, хаха.
Вывод: с помощью вышеуказанной функции вы можете быстро писать соответствующие программы-шаблоны. Надеюсь, это поможет.