­čĺ│ OpenCart

PHP dilini baz alan E-Ticaret uygulamas─▒d─▒r

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

$this->data['[name]'];

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

// special_promotion i├žin ├Ârnek kod par├žas─▒
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; // Default value
}
  • [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>