Kendi İçerik Yönetimimizi (CMS) Yazalım, bölüm 1
Zaman içerisinde parçalara bölünmüş olarak ele alacağım bu yapı ile ister amatör, ister profesyonel amaçlı kullanabileceğiniz bir içerik yönetim sistemine sahip olacaksınız. Ünlü bir çin atasözünde belirtildiği gibi, balık tutmayı göstermek, balığı tutup vermekten daha iyidir; yapının temellerini atmak ve omurgasını inşa etmek için temel metodları ele alacağım; binanın nasıl duracağını, işleyişi ve korunmasını, güzelleştirilmesini size bırakacağım.
Web üzerinde yayıncılık için son zamanlarda kullanımı basit birçok araç çıkmaya başladı. İçerik yayınlamak özellikle blog furyasıyla tam anlamıyla birkaç tıkla halledilebilir bir fikir paylaşım biçimi oldu. Düşüncelerin, yemek tariflerinin, spesifik yazıların ve teknik bilgilerin derlenmesini ve paylaşımını kolaylaştıran bu yazılımların tek amacı var; ardışık gelen içerikleri yayınlamak ve arşivlemek. İsviçre çakısı gibi kullanışlı gözüküp her vad ettiği görevi göstermelik yerine getiren bu yazılımları amaçları dışında kullanmak gereksiz bir çaba. Yer yer bazı ticari sitelerin bile blog araçlarıyla yapıldığını gördükçe kandırılan müşterilerin web tasarımcı kitlesi hakkındaki fikirlerini düşünmeden edemiyorum.
İyi ve genişleyebilir bir içerik sistemini kurmak için genişlemeye açık bir yapıya ihtiyaç var. Başlarda yaptığım hatalardan biri fazla modüler düşünerek her amaca yönelik fazlasıyla geniş olabilen bir yapı kurmaya çalışmak oldu. Modül ya da plugin olarak adlandırılan sistem, her ne kadar modülerliği sağlasa da kolaylıkla amacın dışına taşabiliyor. Şurasını da modüler yapayım, bu da bir plugin olsun diye diye, kurduğunuz sistem kolaylıkla bir sistem kaynakları oburu olabiliyor. Bu yüzden sunacağım yapı, bir isviçre çakısı olmayacak. Amacımız burada temel işlevine yönelik iyi bir sistem kurmak. Tabii ki modern arabirimlerde kullanılan çoğu araç ve metodu da ele alacağız; içeriğin organizasyonu için etiket ya da hiyerarşik yapı, verinin güvenliği için temel bazı fonksiyonlar, veritabanının düzeni ve optimizasyonu, içeriğin sunumu ve yapının SEO uyumlu pratik bir şekilde hazırlanması. Ele alacağım yaklaşımlar belki işi bilenlere gereksiz gibi gelebilir, ama açıkçası mobillik, erişilebilirlik, içerik, sunum ve fonksiyonalitenin ayrıştırılması gibi daha taze yaklaşımlar savunduğum fikirler ve kuracağım CMS de bunları ön planda tutuyor olacak. Ne demişler, her yiğidin yoğurt yiyişi farklıdır. Opensource library kullanımına açığım ve abartıya kaçmadan birtakım temel fonksiyonlarımı düzgün kodlanmış library’lerden kullanmayı tercih edeceğim; zaten keşfedilmiş toprakları yeni baştan keşfetmeye gerek yok.
İlk ele alacağım konu, sistemin belkemiğini oluşturan santral sistemi. Sistemin tüm bağlantıları, kullanıcının her durumda ne tür sayfalar göreceği bu santralden tanımlanır. Hemen arkasından ele alacağım link jeneratörü, tüm site içindeki linklerin sadece tanımlanmış biçimde yapılmasını sağlar. Her içeriğin gerçekten beklediğiniz gibi olmasına dikkat ederek XSS gibi saldırı biçimlerinden kurtulabilirsiniz. CMS’in dil seçeneklerini genişleyebilir tutmak isteğindeyim; bu şekilde profesyonel ihtiyaca yönelik temel bir yaklaşımı da oturtabiliriz. Karakter seti farklılıkları ve veri alışverişinin de standartlara oturtulmasını savunduğum için tüm yapıyı UTF-8 üzerine kuracağım. Bunun avantajı, sonradan gösterim biriminin değiştirilerek Flash ya da farklı platformlarda problemsiz çalışması. Veritabanında MySQL kullanacağımızdan temel SQL cümlelerimizi oluşturmak ve bununla ilgili fonksiyonlarınızı bir araya getirmek de arkasından ele alınacak konu. Programın devamını da bu yazı ilerledikçe tanımlayacağım. Ama kısaca aklıma gelenler arasında mod_rewrite ile akılda kalıcı linklerin oluşturulması, etiketleme ve gruplama sistemi, dosya ekleme, css/xhtml sunum, üyelik sistemi…
August 31st, 2006 at 3:35 pm
Benim gibi bir amatörün çok şey öğrenebileceği güzel bir konu. Devamını dörtgözle bekleyeceğim.
May 18th, 2007 at 12:22 pm
Çalışmalarını sabırsızlıkla bekliyorum. Şimdiden teşekkurler.