­čĺ│ 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>