No desenvolvimento de sistemas de conteúdo, envolve o processo de separação de conteúdo e forma, ou seja, o processo de customização de modelos de páginas com base nos usuários e sua posterior substituição por conteúdo relevante. Isso é fundamentalmente diferente de muitos sistemas externos de gerenciamento de conteúdo de todo o site. Existem muitos sistemas de gerenciamento de conteúdo que parecem iguais, não importa quantas pessoas os utilizem, porque as páginas não podem ser customizadas e os usuários que não conhecem programação não podem modificá-las. Não creio que um site assim, que só preenche alguns parâmetros e sai, tenha muito futuro. Porque todos parecem iguais e todos sabem como preencher esses parâmetros.
Por exemplo, se você olhar os sites a seguir, você pensaria que eles são um conjunto de programas?
www.blueidea.com
http://pages.blueidea.com
http://digi.blueidea.com
http://dsp.blueidea.com
http://www.dcshooter.com
Se eu lhe disser que todos eles são um programa, e os webmasters relevantes apenas desenham modelos diferentes para obter a exibição da página, você encontrará a excelência deste sistema.
É claro que, devido à natureza sofisticada deste sistema, ele atualmente não está disponível para usuários comuns, então desenvolvi meu próprio sistema de gerenciamento de conteúdo, o sistema de gerenciamento de conteúdo Kiss.
Para fornecer aos usuários um sistema de modelo, em primeiro lugar, deve haver um sistema de marcação simples e fácil de entender. Dê uma olhada no código a seguir para ver se é fácil de entender:
<tag:loop channelid=1 pagesize=10 />channelid é o ID de uma coluna no banco de dados
pagesize é quantos documentos listar
título é o comprimento do título
type é um tipo de coluna de lista e NEW aqui é definido como o documento mais recente
coluna é quantas colunas exibir
A introdução acima é para popularizá-lo para pessoas que não conhecem programação ou não entendem de sistema de conteúdo, e para divulgar meu sistema de gerenciamento de conteúdo, e o que quero dizer é, o módulo modelo de sistema de gerenciamento de conteúdo usado pelo Blue Site ideal, muito mais forte que o meu.
Agora é a vez do programador, os outros não precisam olhar para baixo.
Então, como ler seus valores?
A função a seguir é a última e é usada para analisar o conteúdo de todos os modelos
Copie o código da seguinte forma:'[Function] Custom template tag
Function ProcessCustomTags(ByVal sContent)
Dim objRegEx, Match, Matches
'Criar expressão regular
Set objRegEx = New RegExp
'Encontrar conteúdo
objRegEx.Pattern = <tag:.*/>
' Ignorar case
objRegEx.IgnoreCase = True
'Pesquisa global
objRegEx.Global = True
'Executa a pesquisa no string de conteúdo que nos foi passada
Set Matches = objRegEx.Execute(sContent)
'Percorrer as correspondências encontradas
For Each Match in Matches
'Substitua cada correspondência pelo HTML apropriado de nossa função ParseTag
sContent = Replace(sContent, Match.Value, ParseTag (Match.Value))
Próximo
'Destruir o
conjunto de objetos Matches = nada
set objRegEx = nada
'Valor de retorno
ProcessCustomTags = sContent
End A função
usa expressões regulares no código acima. Se você não sabe muito sobre isso, consulte as informações relevantes, não entrarei em detalhes aqui.
Então, como obter o valor do parâmetro, também é uma função:
copie o código na caixa de cópia do código da seguinte forma:'[Função] Obtenha o nome do parâmetro da tag do modelo
', como: <tag:loop channelid=1 pagesize= 10 />function GetAttribute(ByVal strAttribute, ByVal strTag)
Dim objRegEx, Matches
'Cria uma expressão regular
Set objRegEx = New RegExp
'Encontre o conteúdo (o nome do atributo seguido de aspas duplas, etc.)
objRegEx.Pattern = lCase(strAttribute) & =[0-9a-zA-Z]*
'Ignorar case
objRegEx.IgnoreCase = True
'Pesquisa global
objRegEx.Global = True
'Executar busca
Set Matches = objRegEx.Execute(strTag)
'Se houver uma correspondência Em seguida, retorne um valor, caso contrário, retorne um valor nulo
se Matches.Count > 0 então
GetAttribute = Split(Matches(0).Value,)(1)
else
GetAttribute =
end if
'Destruir o
conjunto de objetos Matches = nada
set objRegEx = nada
end function
OK, então como analisar o conteúdo como <tagloop:> acima?
A seguir está uma função:
copie o código da seguinte forma:'[Função] Analisar e substituir o conteúdo da tag de modelo correspondente
function ParseTag(ByVal strTag)
dim arrResult, ClassName, arrAttributes, sTemp, i, objClass
'Se a tag estiver vazia, saia a função
se len(strTag) = 0 then exit function
'Dividir a correspondência no caractere de dois pontos (:)
arrResult = Split(strTag, :)
'Dividir o segundo item da matriz resultante no caractere de espaço, para
'recuperar o nome da classe
ClassName = Split(arrResult(1), )(0)
'Use uma instrução select case para descobrir com qual classe estamos lidando
' e, portanto, quais propriedades preencher etc
select case uCase(ClassName)
'É uma classe de loop, então instancie uma e obtenha suas propriedades
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 )
'Destrua nosso objeto de classe
set objClass = nada
end select
end
O loop acima
da função
é uma classe, então não entrarei em detalhes aqui.Porque faz muito tempo que não falo e não estou acostumada, haha.
Conclusão, por meio da função acima, você pode escrever rapidamente programas de modelo relacionados. Espero que ajude.