Merhaba, bugün size opencart 2 versiyonu için Opencart Random Bildirim bildirim nasıl yapılır konusunu aktarmaya paylaşmaktayım. Amacımız Opencart sitemizde ürünlerimiz ile alakalı olarak mesaj göstermedir.
Kodlamaya geçmeden önce
Bu kısımda dikkat etmeniz gereken en önemli kural işlemlere başlamadan önce muhakkak yedek almanızdır. Aşağıda paylaştığım kodlar kullandığınız versiyona, eklentiye ve temaya göre değişiklik gösterebilmektedir. Olası hata almanız durumunda geriye dönebilmek en önemli gerekliliktir.
Nasıl uygularım ?
Aşağıdaki adımları izleyerek bir ftp bağlantı program, dosya düzenleme aracına ( filezilla, cyberduck) ve veritabanınıza ulaşmanız gereklidir. Dilerseniz online olarak bu işlemleri yapmadan çalışan yapınızı kendi bilgisayarınıza indirerek düzenleme yapabilirsiniz. Önemli kısım veritabanı farkı olmaması için veritabanını canlı sisteme bağlı olması veya belirli tablolarınızı değiştirmek olsun.
Kodlamaya geçelim
Aşağıdaki adımlar hangi dizindeki dosyalarda neleri değiştireceğiniz ile alakalı. Daha önce bir düzenleme işlemi yapmadıysanız kesinlikle direk olarak kodlara müdahale etmeyiniz.
Admin > View > Template > Catalog > product_form.twig
<li><a href="#tab-product-notify" data-toggle="tab">{{ tab_product_notify }}</a></li>
Admin > Language > %Lang% > tr-tr.php
$_['tab_product_notify'] = 'Kampanya Notify';
Database Query
-- --------------------------------------------------------
--
-- Table structure for table `oc_product_notify`
--
CREATE TABLE `oc_product_notify` (
`product_notify_id` bigint(20) NOT NULL,
`product_id` bigint(20) NOT NULL,
`text` text NOT NULL,
`language_id` int(11) NOT NULL,
`start_date` date NOT NULL DEFAULT '0000-00-00',
`end_date` date NOT NULL DEFAULT '0000-00-00'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
COMMIT;
ALTER TABLE `oc_product_notify` CHANGE `product_notify_id` `product_notify_id` BIGINT(20) NOT NULL AUTO_INCREMENT, add PRIMARY KEY (`product_notify_id`);
Admin > Model > Catalog > Product.php
### public function editProduct(){}
$this->cache->delete('product'); ## öncesine
// notify
$this->productNotify((array)$data['product_notify'], (int)$product_id);
### public function addProduct(){}
$this->cache->delete('product'); ## öncesine
// notify
$this->productNotify((array)$data['product_notify'], (int)$product_id);
Dosyanıza eklemeniz gereken kodumuz
public function productNotify($notify = array(), $product_id)
{
foreach ($notify as $key => $item) {
$sql = "SELECT * FROM `" . DB_PREFIX . "product_notify` WHERE product_notify_id=" . (int)$key;
$query = $this->db->query($sql);
if (count($query->rows) > 0) {
$upSql = "UPDATE `" . DB_PREFIX . "product_notify` SET text='" . (string)$item . "' WHERE product_notify_id=" . (int)$key;
$this->db->query($upSql);
} else {
$insertSql = "INSERT INTO `" . DB_PREFIX . "product_notify`(product_id,text,language_id) VALUE('" . (int)$product_id . "','" . (string)$item . "','" . (int)$this->config->get('config_language_id') . "')";
$this->db->query($insertSql);
}
}
}
Admin > View > Template > Catalog > product_form.twig
## <div class="tab-pane" id="tab-design"></div> sonrasına
<div class="tab-pane" id="tab-product-notify">
<div class="table-responsive">
<div class="table-responsive">
<table id="notify" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<td class="text-left">{{ entry_additional_notify }}</td>
<td></td>
</tr>
</thead>
<tbody>
{% set notify_row = 0 %}
{% for notify in product_nofity %}
<tr id="notify-row{{ notify.product_notify_id }}">
<td class="text-right">
<input type="text"
name="product_notify[{{ notify.product_notify_id }}]"
value="{{ notify.text }}"
class="form-control"/>
</td>
<td class="text-left">
<button type="button"
onclick="$('#notify-row{{ notify.product_notify_id }}').remove();"
data-toggle="tooltip" title="{{ button_remove }}"
class="btn btn-danger"><i class="fa fa-minus-circle"></i>
</button>
</td>
</tr>
{% set notify_row = notify.product_notify_id + 1 %}
{% endfor %}
</tbody>
<tfoot>
<tr>
<td></td>
<td class="text-left">
<button type="button" onclick="addNotify();" data-toggle="tooltip"
title="{{ button_image_add }}" class="btn btn-primary"><i
class="fa fa-plus-circle"></i></button>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
## script
<script type="text/javascript"><!--
var notify_row = {{ notify_row }};
function addNotify() {
html = '<tr id="notify-row' + notify_row + '">';
html += ' <td class="text-right"><input type="text" name="product_notify[]" value="" class="form-control" /></td>';
html += ' <td class="text-left"><button type="button" onclick="$(\'#notify-row' + notify_row + '\').remove();" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>';
html += '</tr>';
$('#notify tbody').append(html);
notify_row++;
}
//--></script>
Admin > Controller > Catalog > Product.php
### getForm
### $this->load->model('design/layout'); Öncesine alttakini ekleyin
// productNotify
if (isset($this->request->post['product_layout'])) {
$data['product_notify'] = $this->request->post['product_nofity'];
} elseif (isset($this->request->get['product_id'])) {
$data['product_nofity'] = $this->model_catalog_product->getProductNotify($this->request->get['product_id']);
} else {
$data['product_nofity'] = array();
}
Sonuç olarak
Yukarıda paylaşmış olduğum kodları, kendinize göre revize ederek Opencart Random Bildirim uygulamasını kendi web sitenize uyarlayabilirsin.
Dilerseniz daha farklı uygulamalar ve projeleriniz için iletişime geçebilir fiyat teklifi isteyebilirsiniz.
Opencart Random Bildirim konumuzda Opencart, bir çevrimiçi alışveriş yönetim sistemidir. PHP tabanlı olarak MySQL veritabanı HTML bileşenlerini kullanmaktadır. Farklı diller ve para birimleri için destek sağlanmaktadır. GNU Genel Kamu Lisansı altında ücretsiz olarak mevcuttur. Mayıs 2016 itibarıyla 342.000 web sitesi OpenCart kullanmaktadır.
Opencart Kolay kurulumunun yanı sıra geniş tema ve eklenti desteği dolayısıyla en çok kullanılan e-ticaret altyapılarından birisidir. Basit bir hosting hesabı üzerinde dahi çalıştırabileceğiniz hafif bir yapıda kodlanmıştır.