Başlangıç

Bu dökümantasyonda B2C eticaret sitesi panel entegrasyonu süreçleri anlatılacaktır. Bu süreçlerin anlatılma sebebi hangi modülün nasıl çalıştığı ve mantığının kavranmasıdır. Geliştirme aşamasında panelde fazla değişiklik yapılmasa da genelde az da olsa bazı değişikler olabilir. Bunları yapabilmek için genel yapıya tümüyle hakim olunması gerekmektedir.

Uyarı

Bazı alanların yapısı kurumsal cms ile aynı olduğundan videoların bazıları kurumsal cms dökümantasyonundan alınmıştır.

Gereksinimler

Bu alanda entegrasyon yapılabilmesi için hem sunucu tarafında hemde geliştirici tarafındaki temel gereksinimler açıklanmıştır.

Sunucu:
  • PHP 7.4, PHP 8.0
  • MySQL
  • GD image library (php.ini de açık olmalıdır)
Geliştirici:
  • PHP - Orta Seviye
  • MySQL - Orta Seviye
  • Codeigniter 3 - Orta Seviye (Herhangi bir Php MVC framework biliniyorsa günler içerisinde öğrenilebilir. )
  • Js, Jquery - Orta Seviye
  • Html, Css, Bootstrap - Başlangıç Seviye

Kurulum

Kurulum için kodların bulunduğu .zip dosyası , .sql dosyası ve sunucu ayarlarının uygun olduğu local, yada canlı bir ortam bulunmalıdır.

Kurulum aşaması:

Uyarı

Hem kurulum aşamasında hemde diğer tüm alanlarda kesinlikle Türkçe Karakter kullanılmamalıdır.

  1. Öncelikle zip dosyamızı ana dizin klasörümüze çıkartıyoruz.
  2. Klasörde eksik dosya bulunmadığına emin oluyoruz. (.htaccess vb.)
  3. Daha sonra phpmyadminde yeni veritabanını ismini ve karakter tipi (utf8mb4_turkish_ci) belirleyerek oluşturuyoruz.
  4. Oluşturmuş olduğumuz veritabına .sql dosyamızı import ediyoruz ve bu aşamada hata olmadığına emin oluyoruz
  5. Ana dizin klasörünü editör yada ide yardımıyla açıyoruz ve aşağıdaki düzenlemeleri yapıyoruz.
  6. 								
    // C:\xampp\htdocs\your_folder_name\panel\application\config\config.php
    $config['base_url'] = 'http://localhost/your_folder_name/panel/';
    								
    								
    // C:\xampp\htdocs\your_folder_name\panel\application\config\database.php
    'username' => 'root',             // database kullanıcı adı
    'password' => '',                 // database şifre
    'database' => 'your_db_name',     // database verilen isim
    								
    							
  7. Ana dizinde bulunan .htaccess dosyasını kontrol ediyoruz ve aşağıdaki formatta olduğundan emin oluyoruz.
  8. 								
    //C:\xampp\htdocs\your_folder_name\.htaccess
    
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    
    Options -Indexes
    								
    
    							
  9. Kurulum işlemimiz tamamlanmış olup , aşağıdaki url ile erişim sağlayabiliriz.
  10. 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 İnceleme

Bu alanda öğrendiğimiz bilgileri pekiştirmek için tek videoda genel panel incelemesi anlatılmıştır. Yukarıdan aşağıya olacak şekilde bütün modüller hem tanıtılacak , hemde kod yapısı anlatılacaktı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.