Kurulum işlemimiz tamamlanmış olup , aşağıdaki url ile erişim sağlayabiliriz.
http://localhost/your_folder_name/panel/
Uyarı
Dökümantasyonda verilen linkler local ortama göre verilecektir. Canlı sunucuda geliştirme yapılacak
ise bu hususa dikkat edilmelidir.
Genel Klasör Yapısı
Klasör yapısı, Codeigniter 3 Framework ile çoğunlukla aynıdır. Anlatım videosu aşağıdadır.
Veritabanı
Sizlere verilen database dosyasında birçok database tablosu bulunmaktadır. Ancak bu tablolar her proje
için müşteri talepleri doğrultusunda yeterli olmayabilir . O yüzden mevcut tabloların duruma düzenlenmesi
yada yenilerinin eklenmesi gerekir. Database hazırlanırken dikkat edilmesi gereken hususlar aşağıda
listelenmiştir.
Lütfen öncelikle database tablolarını inceleyim. İsimlendirme gibi hususlara dikkat edelim.
Çoklu dilli projelerde örnek olarak ; baslik, baslik_en, baslik_ru gibi sütün isimleri kullanalım
Tabloya eklediğimiz sütünlarda anlaşılması güç olabilecek olanlara açıklama yazalım.
Tablolardaki sütünların veri tipleri esneklik açısından TEXT NULL , VARCHAR(255) NULL olarak
ayarlanmıştır.
Ne işe yaradından emin olmadığınız tabloları kesinlikle silmeyiniz.
Panel Geliştirme
Yönetim panelimizde birden fazla kullacı giriş yaparak işlem yapabilir. Her kullanıcının bir yetki
grubu vardır. O yetki grubunun vermiş olduğu izinler neticesinde düzenleme yapabilirler. Ayrıca panelde
yapılan işlemler basit bir log yapısı ile kayıt altına alınmaktadır. Modüllerde MVC yapısı mevcuttur.
Dolayısıyla her modülün model , view, controller klasörlerinde dosyaları bulunmaktadır.
Uyarı
Panel geliştirmesi elinizdeki projeye göre farklılıklar gösterir. Mevcut modüllerde düzenleme yada yenisini ekleme gibi çalışmalar yapacaksınız. Dolayısıyla panelin çalışma mantığına ve kod yapısına hakim olmanız gerekmektedir.
Genel MVC Yapısı
Modüllerde MVC yapısı mevcuttur. Dolayısıyla her modülün model , view, controller klasörlerinde dosyaları
bulunmaktadır.
Model Yapısı
Model dosyalarımız hem dosya adında hemde class isminde büyük harfle başlamalıdır. Model dosyalarımız
çağırırken model olduğu anlaşılması açısından isminin yanına örnekte olduğu gibi _model eki eklenmelidir.
Yönetim panelinde kullanılan modellerin içindeki methodlar genellikle aynıdır. get(), get_all(), add(),
update(), delete() metodları örnekte göründüğü gibidir. Crud işlemlerimizi daha etkili olarak
yapabilmemizi sağlamaktadırlar.
// Örnek Model
//C:\xampp\htdocs\your_folder_name\panel\application\models\Blog_model.php
class Blog_model extends CI_Model
{
public $tableName = "blog"; // ilgili veritabını tablosunun adı
public function __construct(){
parent::__construct();
}
public function get($where = array()){
return $this->db->where($where)->get($this->tableName)->row();
}
/** Tüm Kayıtları bana getirecek olan metot.. */
public function get_all($where = array(), $order = "id ASC"){
return $this->db->where($where)->order_by($order)->get($this->tableName)->result();
}
public function add($data = array()){
return $this->db->insert($this->tableName, $data);
}
public function update($where = array(), $data = array()){
return $this->db->where($where)->update($this->tableName, $data);
}
public function delete($where = array()){
return $this->db->where($where)->delete($this->tableName);
}
}
Controller Yapısı
Controller dosyalarımız crud , view a veri gönderme vb. işlemlerimizi yapmaya yararlarlar. Panelimizde
çeşitli controller yapıları mevcuttur. Controller içinde bulunan metod fonksiyonları yardımıyla
istediğimiz her türlü işlemi yapabilmekteyiz.
View Yapısı
View klasörmüzde panelin temasında ki frontend kodları ile backend yapısının uyum halinde çalışmasını sağlamaktadır. Her modülün view da bir karşılığı bulunmaktadır. Viewda controllerdan gelen veriler işlenir. Ve crud yapılmasına olanak sağlar.
Helper Yapısı
Proje genelinde fonksiyonel işlemlerimizi yapmamızı sağlayan butün fonksiyonlarımızı barındırdığımız dosyadır. Projenin hemen hemen her yerinden fonksiyonlara erişim imkanı sağlar.
// Örnek Helperlar
// C:\xampp\htdocs\your_folder_name\panel\application\helpers\tools_helper.php
function get_title()
{
$t = &get_instance(); // bu yöntemle $this çağrılmış olur.
$qq = $t->db->select("*")->get("site_ayarlari")->row(); // Veritabanına erişerek sorguda yazılabilir
return !empty($qq) ? $qq->panel_title : "";
}
function get_readable_date($date)
{
setlocale(LC_ALL, 'tr_TR.UTF-8');
return strftime('%e %B %Y', strtotime($date));
}
Genel Yetki Yapısı
Proje genelinde fonksiyonel işlemlerimizi yapmamızı sağlayan butün fonksiyonlarımızı barındırdığımız dosyadır. Projenin hemen hemen her yerinden fonksiyonlara erişim imkanı sağlar.
İşlem kayıtları
Yönetim panelinde yapılan aksiyonel işlemler ve login işlemlerinin geçmişini tutar. Anlatım videosu aşağıdadır.
Ana Ekran
Yönetim panelinde giriş yapıldığında karşımıza çıkan sayfadır. Kısayollar ve grafik bulunmaktadır. Anlatım videosu aşağıdadır.
Tanım Yönetimi
Bu alanda sitemizde bulunan bazı sabit içeriklerin düzenlenmesi için gerekli olan moduller bulunmaktadır.
Genel Tanımlar
Sabit Tanımlar
SEO Tanımlar
Form Tanımları
E-posta Şablonları
Uyarı
Tanımlarda ki yapı elinizdeki projenin gereksinimlerine ve arayüzüne göre değişkenlik göstermektedir. Kendi projenize uygun olacak ve bütün içerikler düzenlenecek bir şekilde entegrasyon yapılmalıdır.
Form Yönetimi
Bu alanda veritabanımızda bulunan form verilerinin ve ebülten verilerinin tutulduğu alandır. Anlatım videosu aşağıdadır.
Header & Footer
Bu alanda sitede tarafında ki header menu ve footer menu alanları dinamik bir şekilde düzenlenmektedir. Anlatım videosu aşağıdadır.
Genel Ayarlar
Bu alanda site tarafında ki bazı ayarlamalın olduğu modüller bulunmaktadır.Anlatım videosu aşağıdadır.
Genel Panel Tanıtımı
Bu alanda öğrendiğimiz bilgileri pekitirmek için tek videoda genel panel tanıtımı anlatılmıştır. Anlatım videosu aşağıdadır.
Uygulama Videoları
Bu alanda doğrudan canlı kodlama videoları bulunmaktadır. Bu videolar sayesinde daha hızlı ve sağlıklı bir şekilde entegrasyon yapabilirsiniz.
Uyarı
Uygulama videolarını izlemeden önce , dökümanı sırasıyla bitirmenizi ve code review yapmanız önerilir.
Yeni bir dinamik modül ekleme (Müşteri Yorumları)
Bu alanda dinamik modüllere örnek olabilicek bir Müşteri Yorumları geliştirmesi yapılmıştır. Bu videoyu izledikten sonra benzer modülleri rahatlıkla geliştirebileceksiniz.
Yeni bir statik sayfa ekleme
Bu alanda statik sayfa modüllerine örnek olabilicek bir Tarihçemiz geliştirmesi yapılmıştır. Bu videoyu izledikten sonra benzer modülleri rahatlıkla geliştirebileceksiniz.
Yeni bir galeri modülü (Referanslar dropzone)
Bu alanda dopzone galeri tipi modüllere örnek olabilicek bir Referanslar geliştirmesi yapılmıştır. Bu videoyu izledikten sonra benzer modülleri rahatlıkla geliştirebileceksiniz.