Dalam pengembangan sistem konten melibatkan proses pemisahan konten dan bentuk, yaitu proses penyesuaian templat halaman berdasarkan pengguna dan kemudian menggantinya dengan konten yang relevan. Ini pada dasarnya berbeda dari banyak sistem pengelolaan konten seluruh situs di luar. Ada banyak sistem manajemen konten yang terlihat sama tidak peduli berapa banyak orang yang menggunakannya, karena halaman tidak dapat dikustomisasi dan pengguna yang tidak mengetahui pemrograman tidak dapat memodifikasinya. Saya rasa situs web seperti itu, yang hanya mengisi beberapa parameter dan keluar, tidak memiliki banyak masa depan. Karena semua orang terlihat sama dan semua orang tahu cara mengisi parameter tersebut.
Misalnya, jika Anda melihat situs-situs berikut, apakah menurut Anda situs-situs tersebut merupakan sekumpulan program?
www.blueidea.com
http://pages.blueidea.com
http://digi.blueidea.com
http://dsp.blueidea.com
http://www.dcshooter.com
Jika saya memberi tahu Anda bahwa semuanya adalah sebuah program, dan webmaster terkait hanya mendesain templat yang berbeda untuk mendapatkan tampilan halaman, Anda akan menemukan keunggulan sistem ini.
Tentu saja, karena sifat sistem ini yang canggih, saat ini sistem ini tidak tersedia untuk pengguna biasa, jadi saya mengembangkan sistem manajemen konten saya sendiri, sistem manajemen konten ciuman.
Untuk menyediakan sistem templat kepada pengguna, pertama-tama, harus ada sistem penandaan yang sederhana dan mudah dipahami. Lihatlah kode berikut untuk melihat apakah mudah dimengerti:
<tag:loop channelid=1 pagesize=10 />channelid adalah ID kolom dalam database
ukuran halaman adalah berapa banyak dokumen yang akan dicantumkan
title adalah panjang judul
type adalah tipe kolom daftar, dan NEW di sini disetel ke dokumen terbaru
kolom adalah berapa banyak kolom yang akan ditampilkan
Pengenalan di atas adalah untuk mempopulerkannya kepada orang-orang yang tidak tahu pemrograman atau tidak memahami sistem konten, dan untuk mengiklankan sistem manajemen konten saya, dan yang ingin saya katakan adalah, modul template sistem manajemen konten yang digunakan oleh Blue Situs ideal, Jauh lebih kuat dari situs saya.
Sekarang giliran programmer, yang lain tidak perlu melihat ke bawah.
Jadi bagaimana cara membaca nilai-nilai mereka?
Fungsi berikut ini adalah yang terakhir dan digunakan untuk mengurai isi semua template
Salin kode sebagai berikut:'[Fungsi] Tag templat khusus
Fungsi ProcessCustomTags(ByVal sContent)
Redupkan objRegEx, Cocokkan, Cocokkan
'Buat ekspresi reguler
Set objRegEx = New RegExp
'Temukan konten
objRegEx.Pattern = <tag:.*/>
' Abaikan case
objRegEx.IgnoreCase = True
'Pencarian global
objRegEx.Global = True
'Jalankan pencarian terhadap string konten yang telah kita lewati
Set Matches = objRegEx.Execute(sContent)
'Ulangi kecocokan yang ditemukan
Untuk Setiap Kecocokan dalam Kecocokan
'Ganti setiap kecocokan dengan HTML yang sesuai dari fungsi ParseTag kami
sContent = Ganti(sContent, Match.Value, ParseTag (Match.Value))
Selanjutnya
'Hancurkan kumpulan objek
Matches = tidak ada
set objRegEx = tidak ada
'Kembalikan nilai
ProcessCustomTags = sContent
End Fungsi
menggunakan ekspresi reguler pada kode di atas. Jika Anda tidak tahu banyak tentangnya, silakan merujuk ke informasi yang relevan. Saya tidak akan membahas detailnya di sini.
Jadi cara mendapatkan nilai parameternya juga ada fungsinya :
salin kode yang ada di copy box kode sebagai berikut:'[Fungsi] Dapatkan nama parameter dari tag template
' seperti: <tag:loop channelid=1 pagesize= 10 />function GetAttribute(ByVal strAttribute, ByVal strTag)
Redupkan objRegEx, Cocok
'Buat ekspresi reguler
Set objRegEx = RegExp baru
'Temukan konten (nama atribut diikuti dengan tanda kutip ganda, dll)
objRegEx.Pattern = lCase(strAttribute) & =[0-9a-zA-Z]*
'Abaikan case
objRegEx.IgnoreCase = True
'Pencarian global
objRegEx.Global = True
'Jalankan pencarian
Set Matches = objRegEx.Execute(strTag)
'Jika ada kecocokan Kemudian kembalikan nilai, jika tidak, kembalikan nilai nol
jika Matches.Count > 0 maka
GetAttribute = Split(Matches(0).Value,)(1)
else
GetAttribute =
end if
'Hancurkan kumpulan objek
Matches = Nothing
set objRegEx = Nothing
end function
OK, lalu bagaimana cara mengurai konten seperti <tagloop:> di atas?
Berikut fungsinya:
salin kode sebagai berikut:'[Fungsi] Parsing dan ganti
fungsi konten tag template yang sesuai ParseTag(ByVal strTag)
dim arrResult, ClassName, arrAttributes, sTemp, i, objClass
'Jika tag kosong, keluar fungsi
jika len(strTag) = 0 lalu keluar dari fungsi
'Pisahkan kecocokan pada karakter titik dua (:)
arrResult = Split(strTag, :)
'Pisahkan yang kedua item dari array yang dihasilkan pada karakter spasi, untuk
'mengambil nama kelas
ClassName = Split(arrResult(1), )(0)
'Gunakan pernyataan kasus pilihan untuk menentukan kelas mana yang sedang kita hadapi
'dan oleh karena itu properti mana yang akan diisi dll
pilih case uCase(ClassName)
'Ini adalah kelas loop, jadi buat instance satu dan dapatkan propertinya
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 )
'Hancurkan kumpulan objek kelas kita
objClass = tidak ada
akhir pilih
akhir
Perulangan di atas
fungsinya
adalah sebuah kelas, jadi saya tidak akan membahas detailnya di sini.Soalnya aku sudah lama tidak ngobrol dan belum terbiasa, haha.
Kesimpulannya, melalui fungsi di atas, Anda dapat dengan cepat menulis program template terkait. Semoga ini bisa membantu.