ile

PHP ile içerik yönetim sistemi – 6 Veriyi html’ye çeviren PHP dosyaları

10667_front_11-1

Kalan işlerimizi gözden geçirelim.

  1. Uygulama için konfigürasyon dosyası yazmak. Veritabanı bilgileri, saat dilimi gibi bilgileri tutsun.
  2. Veritabanı işlemlerini yapan sınıflarımız şimdilik oldukları gibi kalsınlar.
  3. Veri giren ve gösteren, düzenleyen formlarımızı tutan sayfalarımızı oluşturalım.
  4. Ama bu adımdan önce gereksiz kullanıcı girişlerini önlemek için oturum açalım. Kullanıcılar sınıfını oluşturalım. Bunun için admin bölümü sayfalarını oluşturalım.
  5. En son olarak tüm programımızı yönetecek olan dosyalarımızı oluşturup sınıflarımızı bitirelim.

Lego gibi minik minik parçaları birleştireceğiz. Bu parçaları oluştururken dikkat etmemiz gereken şey, daha sonra farklı projelerimzde de bu parçaları alıp kullanabiliyor olmamız. Bu yazıda ihtiyaç duyacağımız sayfa ve formları oluşturacağız. İçerik yönetim sistemi sayfaları nelerden oluşur peki?

Konuya veri açısından bakarsak 2 çeşit sayfamız var. Birincisi bilgi girişi yaptığımız sayfalar, ikincisi bilgi çıkışı yaptığımız sayfalar.

Konuya kullanıcı açısından bakarsak, herkese açık olan sayfalar ve yöneticiler için olan admin paneli. Örneğin herkese açık olan sayfaların içinde, bilgi girişi yapılan hangi sayfalar var? Kullanıcı yorumları, puanlama, beğenme gibi bilgi girişleri. Herkese açık sayfalarda bilgi çıkışı, kullanıcıların yazıları okudukları sayflardır. Admin panelinde bilgi çıkışı, yapılan sayfalar, verilerin listelendiği ve görüntülendiği sayflar. Admin panelinde bilgi girişi yapılan sayfalar ise, yazı ekleme, düzenleme gibi değişiklikleri yaptığımız sayfalardır.

Tüm Kullanıcılar Yöneticiler
 Veri girişi  Yorum, beğenme, puanlama  Yazı ekleme, düzenleme, listeleme
 Veri çıkışı  Herkese açık yazıları görme, listeleme  Tüm yazıları ve yayınlanmamış yazıları görme, listeleme

Devam edelim; içerik yönetim sistemindeki kullanıcıya veri gösteren php sayfamızın bileşenleri neler? Tabii ki ham veri, ve bunu göstermemizi sağlayan html kodları. Diğer tüm sayfalarda olduğu gibi yazı başlığı sayfa logosu gibi şeyler. Html serisinde bunları en ince detayıyla anlattığım için konunun php ve içerik yönetim sistemini ilgilendiren kısmını yazacağım. Önce ana sayfada tüm girdilerin başlık ve özetlerini gösterdiğimiz bir index.php dosyası oluşturalım. Sayfamızda önce bütün yazıların başlıklarını gösterelim ve ilk cümleyi özetleyelim.

Burada yaptığımız, $posts değişkeni içinde gelen girdiler dizisini, okunur bir html dosyası haline getirmek. Önce bu mantığı iyi anlayalım ve en küçük parçalardan ilerleyelim. Daha sonra projemizi, lego gibi minik parçalardan birleştireceğiz. Foreach döngüsüyüle, her bir girdi dizisi elemanını alıp başlığını gösterdik. İçeriğin ilk 40 karakterini özet olarak gösterdik. Devamını oku linki yerleştirdik. Küçük bir şekilde girdinin yazıldığı tarihi de görüntüledik.

Tek bir makaleyi göstereceğimiz sayfayı kodlayalım.

Bunun önceki dosyadan pek bir farkı yok. Burdaki fark, sadece tek bir girdinin sayfaya geliyor olması. Yazı eklediğimiz sayfayı oluşturalım. Bir forma sahip olmak zorundayız. Add.php adlı dosyamız olsun.

Şimdilik formların ve linklerin gittikleri yerleri önemsemeyin. Doğrudan, başlık ve yazı girdiğimiz formumuzu oluşturduk. Dikkat ederseniz, kategorileri sistemden otomatik olarak çektik. Burada dinamik bir form oluşturmuş olduk.

Son olarak sayfamızı düzenleyeceğimiz sayfa:

Aslında edit sayfasından bir farkı yok, burada sadece girdinin eski değerlerini formun içine çektik. Ayrıca dikkat ederseniz, yazı hangi kategoride ise, form açılırken o kategorinin otomatik olarak seçilmesini sağladık.

Girdi eklediğimiz, düzenlediğimiz sayfalar da bu kadar. Diğer sınıflar için de aynı kodları yazacağız. Daha sonraki yazılarda admin ve ziyaretçi şemasını oluşturacağız. Kategori sayfalarını ve kullanıcı işlemlerini yapacak ve oturum açacağız. Daha sonra da projemizin legolarını birleştirecek ve bitireceğiz. OOP olarak projemizi tamamlayıp bitirdiğimizde, MVC yapısına (Model, View, Controller) (model, görüntü, kontrolcü) büyük bir adım atmış olacağız.

Projemizin şimdilik çalışmayan son hali burada:

https://github.com/mtkocak/merakli/tree/9defa4b18e71df9ff88c2376cc39baaa2ce1b50d

Yorumla

Yorum

  1. Hocam ya şunları nasıl dosyalıyacaz, nerde, ne isimlerle, okuma özürlümüyüm yoksa bn, bulamadım bitürlü…