Links
Comment on page
💳

OpenCart

Model View Controller Yapısı

MVC hakkında bilgi sahibi olmak istersen buraya tıklayabilirsin.
  • Lazım ise veri tabanında [name] adı verilen sütun oluşturulur.
    • MySQL sorgu örneği için buraya tıklayın.
[Name] bir değişken ismidir. Örn: product_info
  • Model dizinindeki gerekli veri tabanı metodlarını güncelleme
    • add*, edit* metodlarındaki mySQL sorguları (Insert, Update) güncellenir
    • Dosya ve dizin yolları:
      • ...\webadmin\model
      • ...\model
      • ...\webadmin\model dizin dosya adı.php
  • Controller dizinindeki uygun dosyadan model yüklenir.
    • Model yüklenir. Kod örneği için buraya tıklayabilirsin.
    • Veri modelden alınır. Kod örneği için buraya tıklayabilirsin.
    • View'a veriyi gönderme: Kod örneği için buraya tıklayabilirsin.
    • Dosya ve dizin yolları:
      • ...\webadmin\controller
      • ...\controller
      • ...\webadmin\controller dizin dosya adı.php
        $data değikeni içindeki veriler view'a iletilir.
  • View dizinindeki TPL uzantılı dosya üzerinde görsel düzenleme yapılır.
    • Dosya ve dizin yolları:
      • ...\webadmin\view
      • ...\view
      • ...\webadmin\view dizin dosya adı.tpl

Modeli yükleme

$this->load->model('catalog/manufacturer');

Veriyi modelden alma

$[veri adı] = $this->[model]->[get metodu]();

Veriyi view'a gönderme

CSS dosyaları

  • Örnek dizin: ...\catalog\view\asset\style\
  • Tam dizin: C:\xampp\htdocs\ecommerce2\catalog\view\asset\style\custom.scss

Ana sayfaya satır ekleme

  • Lazım ise veri tabanında [name] adı verilen sütun oluşturulur.
    • MySQL sorgu örneği için buraya tıklayın.
  • View için değişken oluşturma. Kaynak kod örneği için buraya tıklayabilirsin.
    • View kısmında $[veri ismi] olarak kullanabilirsin.

Form / List Ekleme

  • Veri tabanında [name] adı verilen sütun oluşturulur.
    • MySQL sorgu örneği için buraya tıklayın.
    [Name] bir değişken ismidir. Örn: product_info
  • Model dizinindeki gerekli veri tabanı metodlarını güncelleme
    MySQL üzerindeki verileri sorgular yardımıyla projeye ekleyen yapıdır.
    • add*, edit* metodlarındaki mySQL sorguları (Insert, Update) güncellenir
    • Örnek Yol: webadmin\model
    • Örn: C:\xampp\htdocs\ecommerce2\webadmin\model\sale\special_promotions.php
  • Controller dizinindeki Uygun dosyanın getForm / getList metodunda entry değişkenlerini ve verileri oluşturma
    Veriler $data değişkeni ile .tpl uzantılı dosyaya aktarılır.
    • Entry eklenir. Kaynak kodu için buraya tıklayabilirsin.
    • Veri oluşturma. Kaynak kod için buraya tıklayabilirsin.
    • Örnek Yol: webadmin\controller
    • Örn: C:\xampp\htdocs\ecommerce2\webadmin\controller\sale\special_promotions.php
  • Languages dizinindeki PHP uzantılı dil dosyası üzerinde değişken oluşturulur.
    Dillere özgü metinler oluşturmak adına kullanılır.
    • Örnek Yol: webadmin\language\turkish
    • Örn: ecommerce2\webadmin\language\turkish\sale\special_promotions.php
  • View template dizinindeki .tpl uzantılı dosya üzerinde görsel düzenleme yapılır.
    Front-end kısmıdır.
    • tr satırı kopyalanıp, name değerleri entry_[name] yapısı ile alınır
    • Örn: ecommerce2\webadmin\view\template\sale\special_promotions_form.tpl

Form için entry ekleme

$this->data['entry_[name]'] = $this->language->get('entry_[name]');

Form verisi oluşturma

if (isset($this->request->post['[name]'])) { $this->data['[name]'] = $this->request->post['[name]'];} elseif (!empty($special_promotion)) { $this->data['[name]'] = $[değişken]['[name]'];} else { $this->data['[name]'] = 0; }
  • [değişken] Model ile alınan mySQL verilerini tutan değişken
    Tablo değişkeni için $special_promotion veya $order_info örnek olabilir.
  • [name] MySQL sütun ismi
    Sütun ismi için $product_info örnek olabilir.
Veri oluşturulmazsa TLP (front-end) kısmında görmez.

Filtreleme

$results = $this->model_sale_order->getOrders($data);
  • Model dizinindeki gerekli veri tabanı metodlarını güncelleme
    MySQL üzerindeki verileri sorgular yardımıyla projeye ekleyen yapıdır.
    • get*s, getTotal*s metodlarındaki mySQL sorguları güncellenir. Kaynak kodu için buraya tıklayabilirsin.
      $data değişkeninin kullanıldığı alanlar güncellenir.
    • Örnek Yol: webadmin\model
    • Örn: C:\xampp\htdocs\ecommerce2\webadmin\model\sale\order.php
  • Controller dizinindeki Uygun dosyanın getList metodunda filtreleme değişkenlerini (filters) ve verileri oluşturma
    Veriler $data değişkeni ile .tpl uzantılı dosyaya aktarılır.
    • Filtreleme değişkeni (filter) eklenir. Kaynak kodu için buraya tıklayabilirsin.
    • Veri (data) oluşturma. Kaynak kod için buraya tıklayabilirsin.
    • Örnek Yol: webadmin\controller
    • Örn: C:\xampp\htdocs\ecommerce2\webadmin\controller\sale\order.php
  • View kısmında filtre ekleme alanı oluştulur. Kaynak kod için buraya tıklayabilirsin.
    • Filtreleme butonunun js kısmındaki filter() metodunda güncelleme yapılır. Kaynak kod için buraya tıklayabilirsin.

Filtre Alanı Ekleme

<?php<select name="filter_[names]"> <?php foreach ($[names] as $[name]) { ?> <?php if ($[name]['[name_id]'] == $[name_id]) { ?> <option value="<?php echo $[name][[name_id]]; ?>" selected="selected"><?php echo $[name]['name']; ?></option> <?php } else { ?> <option value="<?php echo $[name][[name_id]]; ?>"><?php echo $[name]['name']; ?></option> <?php } ?> <?php } ?></select>

Filtreleme değişkeni oluşturma

if (isset($this->request->get['[filter_name]'])) { $[filter_[name]] = $this->request->get['filter_name'];} else { $filter_store_id = null;}
  • [name] MySQL sütununua eş değer değişken ismidir.

Filtreleme verisini oluşturma

$data = array( 'filter_[name]' => $filter_[name];);
  • [name] MySQL sütununua eş değer değişken ismidir.
Data verisinde birden fazla değişken olabilir. Örn:
$data = array( 'filter_store_id' => $filter_store_id, 'filter_store_name' => $filter_store_name, 'filter_order_id' => $filter_order_id, 'filter_customer' => $filter_customer, 'filter_order_status_id' => $filter_order_status_id, 'filter_total' => $filter_total, 'filter_date_added' => $filter_date_added, 'filter_date_modified' => $filter_date_modified, 'filter_payment_method' => $filter_payment_method, 'filter_[name]' => $filter_[name], 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $this->config->get('config_admin_limit'), 'limit' => $this->config->get('config_admin_limit'));

Filtreleme URL'i oluşturma

if (isset($this->request->get['filter_[name]'])) { $url .= '&filter_[name]=' . $this->request->get['filter_[name]'];}
Her $url = ''; aşaması için üstteki yapılır.
$this->data['filter_[name]'] = $filter_[name];
  • [name] MySQL sütununua eş değer değişken ismidir.

Filtreleme Sorgusu

if (!empty($data['filter_[name]'])) { $sql .= " AND [tablo].[name] = '" . $this->db->escape($data['filter_[name]']) . "'";}

Filtreleme filter() metodu

var filter_[name] = $('select[name=\'filter_[name]\']').val();​if (filter_[name]) { url += '&filter_[name]=' + encodeURIComponent(filter_[name]);}
  • [name] MySQL sütununua eş değer değişken ismidir.

Karma Kodlar

MySQL Kodları

SELECT [ID], [Sütun] FROM [Tablo] WHERE [ID] = [Sayı];UPDATE [Tablo] SET [Sütun] = [Değişken Tipine Uygun Değer] WHERE [ID] = [Sayı];INSERT INTO [Tablo] VALUES ([Sütun1 Değeri], [Sütun2 Değeri]);​CREATE TABLE IF NOT EXISTS [Tablo] ( [ID Sütunu] [Değişken Tipi] DEFAULT [Varsayılan Değer] PRIMARY KEY, [Sütun] [Değişken Tipi]);​ALTER TABLE [Tablo] ADD COLUMN [Sütun] [Değişken Tipi] DEFAULT [Varsayılan Değeri] AFTER [Önceki Sütun];ALTER TABLE [Tablo] DROP COLUMN [Sütun];ALTER TABLE `cookplus_order` ADD COLUMN `cancel_status_id` int(1) DEFAULT '0';

Checkbox kodu

OpenCard form verisine checkbox ekleme yapısı
<tr> <td><?php echo $entry_[name]; ?></td> <td> <input type="checkbox" name="[name]" value="1" <?php if($[name]) echo 'checked="checked"'; ?> /> </td></tr>
name Değişken ismi

Controller'da view için değişken oluşturma kodu

$[veri ismi] = $this->model_catalog_manufacturer->getManufacturers();​foreach ($[veri ismi] as $[veri parçası]) { $this->data['[veri ismi]'][$[veri parçası]['[özellik1]']] = array( '[özellik2]' => $[veri parçası]['[özellik]'], '[özellik3]' => $[veri parçası]['[özellik]'] );}

Selection box kodu

<?php<select name="filter_[names]"> <?php foreach ($[names] as $[name]) { ?> <?php if ($[name]['[name_id]'] == $[name_id]) { ?> <option value="<?php echo $[name][[name_id]]; ?>" selected="selected"><?php echo $[name]['name']; ?></option> <?php } else { ?> <option value="<?php echo $[name][[name_id]]; ?>"><?php echo $[name]['name']; ?></option> <?php } ?> <?php } ?></select>
2023 © Yunus Emre AK