Dans le développement d'un système de contenu, cela implique le processus de séparation du contenu et de la forme, c'est-à-dire le processus de personnalisation des modèles de page en fonction des utilisateurs, puis de leur remplacement par un contenu pertinent. Ceci est fondamentalement différent de nombreux systèmes de gestion de contenu de site entier à l’extérieur. Il existe de nombreux systèmes de gestion de contenu qui se ressemblent quel que soit le nombre de personnes qui les utilisent, car les pages ne peuvent pas être personnalisées et les utilisateurs qui ne connaissent pas la programmation ne peuvent pas les modifier. Je ne pense pas qu'un site Web comme celui-là, qui ne remplit que quelques paramètres et sort, ait beaucoup d'avenir. Parce que tout le monde se ressemble et que tout le monde sait comment renseigner ces paramètres.
Par exemple, si vous regardez les sites suivants, penseriez-vous qu’il s’agit d’un ensemble de programmes ?
www.blueidea.com
http://pages.blueidea.com
http://digi.blueidea.com
http://dsp.blueidea.com
http://www.dcshooter.com
Si je vous dis qu'il s'agit tous d'un programme et que les webmasters concernés ne conçoivent que différents modèles pour afficher la page, vous découvrirez l'excellence de ce système.
Bien sûr, en raison de la nature haut de gamme de ce système, il n'est actuellement pas disponible pour les utilisateurs ordinaires, j'ai donc développé mon propre système de gestion de contenu, Kiss Content Management System.
Pour fournir aux utilisateurs un système de modèles, il doit tout d'abord exister un système de marquage simple et facile à comprendre. Jetez un œil au code suivant pour voir s’il est facile à comprendre :
<tag:loop channelid=1 pagesize=10 />channelid est l'ID d'une colonne dans la base de données
la taille de la page correspond au nombre de documents à répertorier
le titre est la longueur du titre
type est un type de colonne de liste, et NEW ici est défini sur le dernier document
colonne est le nombre de colonnes à afficher
L'introduction ci-dessus vise à le vulgariser auprès des personnes qui ne connaissent pas la programmation ou ne comprennent pas le système de contenu, et à faire la publicité de mon système de gestion de contenu, et ce que je veux dire, c'est le module de modèle de système de gestion de contenu utilisé par Blue Site idéal, Bien plus solide que le mien.
C'est maintenant au tour du programmeur, les autres n'ont pas besoin de baisser les yeux.
Alors comment lire leurs valeurs ?
La fonction suivante est la dernière et est utilisée pour analyser le contenu de tous les modèles
Copiez le code comme suit :'[Fonction] Balise de modèle personnalisé
Function ProcessCustomTags(ByVal sContent)
Dim objRegEx, Match, Matches
'Créer une expression régulière
Set objRegEx = New RegExp
'Rechercher du contenu
objRegEx.Pattern = <tag:.*/>
' Ignorer case
objRegEx.IgnoreCase = True
'Recherche globale
objRegEx.Global = True
'Exécutez la recherche sur le chaîne de contenu qui nous a été transmise
Set Matches = objRegEx.Execute(sContent)
'Parcourez les correspondances trouvées
pour chaque correspondance dans les correspondances
'Remplacez chaque correspondance par le HTML approprié de notre fonction ParseTag
sContent = Replace(sContent, Match.Value, ParseTag (Match.Value))
Next
'Détruire l'
ensemble d'objets Matches = rien
défini objRegEx = rien
'Valeur renvoyée
ProcessCustomTags = sContent
End La fonction
utilise des expressions régulières dans le code ci-dessus. Si vous n'en savez pas grand-chose, veuillez vous référer aux informations pertinentes, je n'entrerai pas dans les détails ici.
Alors comment obtenir la valeur du paramètre, c'est aussi une fonction :
copiez le code dans la zone de copie de code comme suit :'[Fonction] Obtenez le nom du paramètre de la balise du modèle
' tel que : <tag:loop channelid=1 pagesize= 10 />function GetAttribute(ByVal strAttribute, ByVal strTag)
Dim objRegEx, Matches
'Créer une expression régulière
Set objRegEx = New RegExp
'Rechercher le contenu (le nom de l'attribut suivi de guillemets doubles, etc.)
objRegEx.Pattern = lCase(strAttribute) & =[0-9a-zA-Z]*
'Ignorer la casse
objRegEx.IgnoreCase = True
'Recherche globale
objRegEx.Global = True
'Exécuter la recherche
Définir les correspondances = objRegEx.Execute(strTag)
'S'il y a une correspondance Renvoyez ensuite une valeur, sinon renvoyez une valeur nulle
si Matches.Count > 0 alors
GetAttribute = Split(Matches(0).Value,)(1)
else
GetAttribute =
end if
'Détruire l'
ensemble d'objets Matches = rien
défini objRegEx = rien
de fin de fonction
OK, alors comment analyser le contenu comme <tagloop :> ci-dessus ?
Ce qui suit est une fonction :
copiez le code comme suit :'[Fonction] Analyser et remplacer la fonction de contenu de balise de modèle correspondante
ParseTag(ByVal strTag)
dim arrResult, ClassName, arrAttributes, sTemp, i, objClass
'Si la balise est vide, quittez la fonction
si len(strTag) = 0 alors quittez la fonction
'Partager la correspondance sur le caractère deux-points (:)
arrResult = Split(strTag, :)
'Partager la seconde élément du tableau résultant sur le caractère espace, pour
'récupérer le nom de la classe
ClassName = Split(arrResult(1), )(0)
'Utilisez une instruction select case pour déterminer à quelle classe nous avons affaire
'et donc quelles propriétés remplir, etc.
sélectionnez le cas uCase(ClassName)
'C'est une classe en boucle, alors instanciez-en une et obtenez ses propriétés
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 )
'Détruisez notre
ensemble d'objets de classe objClass = rien
fin sélectionnez
fin
La boucle au-dessus de
la fonction
est une classe, je n’entrerai donc pas dans les détails ici.Parce que je n’ai pas parlé depuis longtemps et je n’y suis pas habitué, haha.
Conclusion, grâce à la fonction ci-dessus, vous pouvez écrire rapidement des programmes modèles associés. J'espère que ça aide.