Bei der Entwicklung von Inhaltssystemen handelt es sich um den Prozess der Trennung von Inhalt und Form, d. h. um den Prozess, Seitenvorlagen basierend auf den Benutzern anzupassen und sie dann durch relevante Inhalte zu ersetzen. Dies unterscheidet sich grundlegend von vielen externen Content-Management-Systemen für die gesamte Website. Es gibt viele Content-Management-Systeme, die gleich aussehen, egal wie viele Leute sie nutzen, weil die Seiten nicht angepasst werden können und Benutzer, die keine Programmierkenntnisse haben, sie nicht ändern können. Ich glaube nicht, dass eine Website wie diese, die nur ein paar Parameter ausfüllt und dann herauskommt, viel Zukunft hat. Weil jeder gleich aussieht und jeder weiß, wie man diese Parameter ausfüllt.
Wenn Sie sich beispielsweise die folgenden Websites ansehen, würden Sie dann denken, dass es sich dabei um eine Reihe von Programmen handelt?
www.blueidea.com
http://pages.blueidea.com
http://digi.blueidea.com
http://dsp.blueidea.com
http://www.dcshooter.com
Wenn ich Ihnen sage, dass sie alle ein Programm sind und die entsprechenden Webmaster nur unterschiedliche Vorlagen entwerfen, um die Seitenanzeige zu erhalten, werden Sie die Exzellenz dieses Systems erkennen.
Aufgrund des High-End-Charakters dieses Systems ist es derzeit natürlich nicht für normale Benutzer verfügbar. Deshalb habe ich mein eigenes Content-Management-System entwickelt, das Kiss-Content-Management-System.
Um den Benutzern ein Vorlagensystem zur Verfügung zu stellen, muss zunächst ein einfaches und leicht verständliches Markierungssystem vorhanden sein. Schauen Sie sich den folgenden Code an, um zu sehen, ob er leicht zu verstehen ist:
<tag:loopchannelid=1 pagesize=10 />channelid ist die ID einer Spalte in der Datenbank
Die Seitengröße gibt an, wie viele Dokumente aufgelistet werden sollen
Titel ist die Länge des Titels
Typ ist ein Listenspaltentyp und NEW wird hier auf das neueste Dokument gesetzt
Spalte gibt an, wie viele Spalten angezeigt werden sollen
Die obige Einführung dient dazu, sie für Leute bekannt zu machen, die keine Programmierkenntnisse haben oder das Inhaltssystem nicht verstehen, und um für mein Content-Management-System zu werben, und was ich sagen möchte, ist das von Blue verwendete Content-Management-System-Vorlagenmodul Idealer Standort, viel stärker als meiner.
Jetzt ist der Programmierer an der Reihe, andere müssen nicht nach unten schauen.
Wie sind ihre Werte zu lesen?
Die folgende Funktion ist die letzte und wird verwendet, um den Inhalt aller Vorlagen zu analysieren
Kopieren Sie den Code wie folgt:'[Funktion] Benutzerdefiniertes Vorlagen-Tag
Function ProcessCustomTags(ByVal sContent)
Dim objRegEx, Match, Matches
'Regulären Ausdruck erstellen
Set objRegEx = New RegExp
'Inhalt finden
objRegEx.Pattern = <tag:.*/>
' Ignorieren case
objRegEx.IgnoreCase = True
'Globale Suche
objRegEx.Global = True
'Führen Sie die Suche gegen die aus Inhaltszeichenfolge, die uns übergeben wurde
Set Matches = objRegEx.Execute(sContent)
'Durchlaufen Sie die gefundenen Übereinstimmungen
für jede Übereinstimmung in Übereinstimmungen
'Ersetzen Sie jede Übereinstimmung durch den entsprechenden HTML-Code aus unserer ParseTag-Funktion
sContent = Ersetzen(sContent, Match.Value, ParseTag (Match.Value))
Weiter
'Zerstöre den Objektsatz
Matches = Nothing
Set objRegEx = Nothing
'Rückgabewert
ProcessCustomTags = sContent
End Die Funktion
verwendet im obigen Code reguläre Ausdrücke. Wenn Sie nicht viel darüber wissen, lesen Sie bitte die entsprechenden Informationen.
So erhalten Sie den Parameterwert, es ist auch eine Funktion:
Kopieren Sie den Code wie folgt in das Codekopierfeld:„[Funktion] Rufen Sie den Parameternamen des Vorlagen-Tags ab
“, z. B.: <tag:loopchannelid=1pagesize= 10 />function GetAttribute(ByVal strAttribute, ByVal strTag)
Dim objRegEx, Matches
'Erstellen Sie einen regulären Ausdruck.
Set objRegEx = New RegExp
'Inhalt suchen (den Attributnamen gefolgt von doppelten Anführungszeichen usw.)
objRegEx.Pattern = lCase(strAttribute) & =[0-9a-zA-Z]*
'Groß-/Kleinschreibung ignorieren
objRegEx.IgnoreCase = True
'Globale Suche
objRegEx.Global = True
'Suche ausführen
Set Matches = objRegEx.Execute(strTag)
'Wenn es eine Übereinstimmung gibt Dann einen Wert zurückgeben, andernfalls einen Nullwert zurückgeben,
wenn Matches.Count > 0, dann
GetAttribute = Split(Matches(0).Value,)(1)
else
GetAttribute =
end if
'Destroy the object
set Matches = Nothing
set objRegEx = Nothing
end function
OK, wie analysiert man dann den Inhalt wie <tagloop:> oben?
Das Folgende ist eine Funktion:
Kopieren Sie den Code wie folgt:'[Funktion] Analysieren und ersetzen Sie den Inhalt des entsprechenden Vorlagen-Tags.
Funktion ParseTag(ByVal strTag)
dim arrResult, ClassName, arrAttributes, sTemp, i, objClass
'Wenn das Tag leer ist, beenden Sie es die Funktion
, wenn len(strTag) = 0, dann Funktion beenden
'Teilen Sie die Übereinstimmung anhand des Doppelpunkts auf (:)
arrResult = Split(strTag, :)
'Teilen Sie die Sekunde auf Element des resultierenden Arrays auf dem Leerzeichen, um
den Namen der Klasse abzurufen
.ClassName = Split(arrResult(1), )(0)
'Verwenden Sie eine Select-Case-Anweisung, um herauszufinden, mit welcher Klasse wir es zu tun haben
' und daher welche Eigenschaften gefüllt werden sollen usw.
select case uCase(ClassName)
'Es ist eine Schleifenklasse, also instanziieren Sie eine und rufen Sie ihre Eigenschaften ab.
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 )
'Zerstöre unser Klassenobjekt
set objClass = Nothing
end select
end
Die Schleife über
der Funktion
ist eine Klasse, daher werde ich hier nicht auf Details eingehen.Weil ich schon lange nicht gesprochen habe und es nicht gewohnt bin, haha.
Fazit: Mit der obigen Funktion können Sie schnell verwandte Vorlagenprogramme schreiben. Hoffe es hilft.