💳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>

Last updated

© 2024 ~ Yunus Emre Ak ~ yEmreAk