SORU
20 Kasım 2012, Salı


Nasıl OpenCart bir guru olmak?

Bazı apı kendi resmi forumlarında aramalar dışında hiçbir belge var gibi görünüyor. Çalışabilir çerçeve ve Codeıgniter çerçeve ile deneyimim var. Herhangi bir OpenCart ustalar benim ve zaman kısa sürede öğrenmek ustalaşmak için en iyi yol tavsiye edebilir misiniz? Bu büyük bir proje yapmak için erken.

CEVAP
21 Kasım 2012, ÇARŞAMBA


OpenCart 1.5.X geliştirici hızlı yeni başlayanlar için başlangıç rehberi

Bu kılavuz, geliştiriciler PHP, OOP ve MVC mimarisi ile zaten tanıdık yazılır

Aşağıda, arabası Katalog taraf için örnekler göreceksiniz. Admin tarafında ilgili bölümünde belirtilen görüşleri dışında işlev aynıdır


Anlayış Kütüphaneler

Kütüphane tüm işlevsellik Denetleyicisi, Model ve Manzaralı $this->library_name kullanarak erişilebilir. Bunların hepsi /system/library/ klasöründe bulunabilir. Örneğin, mevcut alışveriş sepeti ürünleri erişmek için /system/library/cart.php ve erişilebilir $this->cart->getProducts() kullanılarak yapılabilir Cart sınıf kullanmanız gerekir

Sık kullanılan öğeleri

  • customer.php - Müşteri ile ilgili işlevleri
  • user.php kullanıcı ilgili işlevleri Admin
  • cart.php ile ilgili fonksiyonları Sepeti
  • config.php - Tüm bu ayarları yüklenir
  • url.php - URL oluşturma fonksiyonları

Rota anlayış parametre

OpenCart çerçevesinde sorgu dizesi parametresi route=aaa/bbb/ccc yük için kullanır, ve her sayfa için düzenlemek için ihtiyacınız olan dosyaları bulmak için temel özelliğidir. En route aslında tek kullanım aaa/bbb olacaktır görüldüğü gibi iki bölümden, ancak bazı içeren üç bölümden aaa/bbb/ccc ilk bölüm aaa genellikle ilgili klasörü içinde genel bir klasör gibi denetleyici veya şablon klasörleri. İkinci kısmı ise genellikle ilgili .php .tpl uzantısı olmadan dosya adı ile ilgilidir. Üçüncü kısım anlayış kontrolörleri aşağıda açıklanmıştır


Diller

Diller your-language alt /catalog/language/ klasör içinde saklanır. İçinde, genel metin değerleri kullanılan çeşitli sayfaları saklanır your-language.php dosya içindeki klasörü, yani İngilizce dil Katalog tarafı da bulacaksınız değerleri catalog/language/english/english.php. Belirli bir sayfa metin için, sayfa route (Bu genel durum, ama değil . ihtiyacın olacak ^em>her zamanherhangi bir dil dosyası gibi) belirtebilirsiniz. Örneğin, Arama Sayfası var rota product/search, ve bu nedenle dil belirli bir metin için bu sayfayı bulunabilir catalog/language/english/product/search.php (Dikkat dosya adı ve alt maç rotayı takip ederek .php.

Bir denetleyici dili yüklemek için kullanın

$this->language->load('product/search');

Sonra Dil kitaplık fonksiyonu get belirli bir dil metinleri almak için kullanmak gibi

$some_variable = $this->language->get('heading_title');

Dil değişkenleri dil dosyasında tuşları ve metin değerler dizisi olan 35 ** özel bir değişken kullanılarak atanır. Senin 36 ** buna benzer bir şey bulmak gerekir

$_['heading_title']     = 'Search';

Küresel dil değerleri english/english.php otomatik olarak yüklenen ve $this->language->load yöntemi olmadan kullanılabilir dosya


Anlayış denetleyicileri

Denetleyicileri route göre yüklenir ve oldukça düz ileri anlamak için. Denetleyicileri /catalog/controller/ klasöründe bulunur. Son örnekten devam eden Arama Sayfası Denetleyicisi bu klasör içinde /product/search.php. Rota .php ardından kullanılan tekrar dikkat edin.

Denetleyici dosya açma, Pascal Davası Controller sınıfı ControllerProductSearch adlı uzanan code göreceksiniz. Bu tekrar rotaya özgü, Controller alt adından ve aktifleştirilen uzantısı olmadan dosya adı ile. Bu harf aslında gerekli değildir, ama kolay okunabilirlik için tavsiye edilir. Classnames klasörü ve dosya adını, harf ve sayı dışında herhangi bir değeri olmadığını belirtmekte yarar var. Alt çizgi kaldırılır.

Sınıf içinde yöntemleri. Sınıfta yöntemleri public - private değildir rota üzerinden çalıştırmak için erişilebilir ilan etti. Standart iki parçası bir rota (aaa/bbb yukarıda), varsayılan olarak, index() varsayılan bir yöntem deniyor. Eğer bir rota üçüncü bölümü (ccc yukarıda) kullanılırsa, bu yöntem yerine çalışacak. Örneğin, account/return/insert /catalog/controller/account/return.php dosyası ve sınıf yük, ve insert yöntemini çağırmak için çalışacağız


Anlama Modelleri

OpenCart Model /catalog/model/ klasöründe bulunur ve fonksiyon göre gruplandırılır yol değil, ve bu nedenle üzerinden denetleyicisi onları yüklemeniz gerekir

$this->load->model('xxx/yyy');

Bu alt xxx dosya yyy.php adlı yük olacaktır. Nesne ile kullanmak için kullanılabilir

$this->model_xxx_yyy

ve kontrolörleri ile sadece public yöntemleri çağırabilir. Örneğin, bir görüntüyü yeniden boyutlandırmak için tool/image modeli kullanmak ve aşağıdaki gibi 62 ** yöntemi çağrısı

$this->load->model('tool/image');
$this->model_tool_image->resize('image.png', 300, 200);

Kumanda görüş değişken atama anlayış

Kumanda görüntülemek için değerleri geçmek için, sadece esas anahtar dizisi olan $this->data değişken için veri atamak lazım =>değer çiftleri. Örnek olarak

$this->data['example_var'] = 123;

Görünümünde bu eriştiği bir değişken içine her anahtara dönüştüren bir küçük extract() yöntem biliyorsanız anlaşılması kolay olmalıdır. example_var anahtar $example_var olur ve görünümü gibi erişilebilir


Anlayış temalar

Temalar Katalog tarafı da mevcut, ve temelde şablonları, stil ve tema görüntülerin bir klasör. Tema klasörleri /catalog/view/theme/ klasörü tema adından yerleştirilir. Klasör adı default klasörü dışında bir önemi yok

Admin yan /admin/view/template/ (temalar farklı izin vermiyor gibi yolundan /theme/theme-name/ atlama) kullanır

Tema dosyaları bu klasör içinde template bir klasörde bulunan şablon. Herhangi bir şablon seçili tema için kullanılabilir olmamalı, varsayılan klasör şablonu yerine son çare olarak kullanılır. Bu temalar çok az dosyaları ile oluşturulmuş ve hala tam olarak işlev anlamına gelir. Ayrıca yükseltmeleri yapılmış gibi kod çoğaltılması ve sorunları azaltır


Anlayış görünümler (şablonları)

Dil ve modelleri ile, dosyanın genellikle yolu çok da ilgili görünümü hiç olmak zorunda değil. Katalog tarafta şablonlar genellikle bu durumda varsayılan tema şablonları kullanılacaktır mevcut değil sürece /catalog/view/theme/your-theme/template/ bulundu. Arama Sayfası bizim yukarıdaki örnekte, dosya product/search.tpl. Yolları ile üç parça için, sabit belli bir kural yok ama genellikle aaa/bbb_ccc.tpl. Admin, çoğu sayfa Bu, sayfa öğeleri, ürün Listeleme Sayfası Listeleme gibi catalog/product_list.tpl ve ürün düzenleme formu catalog/product_form.tpl içinde bulunduğu durum ile izleyin. Yine, bu set değil, ama varsayılan standart bir araba

Bu değer şablon dosyası aslında sadece başka bir php dosyası var, ama bir işaret .uzatma Vuk ve aslında denetleyicisi dosyası, bir kontrolör kod şeyler, bu nedenle bütün bir şablon dosyası çalıştırılabilir (gerçi çok gerekli olmadıkça tavsiye)


Veritabanı anlayış nesne

Sorguları kullanarak çalıştırın

$result = $this->db->query("SELECT * FROM `" . DB_PREFIX . "table`");

Adından da anlaşılacağı gibi DB_PREFIX sabit eğer varsa, veritabanı öneki içeren

$result SELECT sorgu için bir nesne, bir kaç özelliklerini içeren dönecektir

$result->row eğer bir veya daha fazla ilişkilendirilebilir bir dizi olarak döndürülür Eğer ilk satır veri içerir

$result->rows satır sonuçlarının bir dizi, döngü için ideal bir foreach kullanarak içerir

$result->num_rows döndürülen sonuç sayısını içerir

Ayrıca $this->db nesne var fazladan birkaç yöntem vardır

$this->db->escape() değeri geçti mysql_real_escape_string() kullanır

$this->db->countAffected satır UPDATE bir sorgu tarafından etkilenen ve sayısını verir

$this->db->getLastId() son otomatik artış kimliği mysql_insert_id() kullanarak verir


Ayrılmış değişkenler anlayış

OpenCart değişkenlerini*, $_POST, $_SESSION, , *, *95$_COOKIE*94 90* *standart VE $_SERVER yerine kullanmak önceden

$_SESSION veri ilişkilendirilebilir bir dizi $_SESSION taklit edilmesi $this->session->data kullanarak düzenlenebilir

Diğer tüm giriş yapılmış $this->request kullanarak ve "" sihirli tırnaklar ile uyumlu/devre dışı, yani etkin . temizlenmiş

$_GET $this->request->get olur

$_POST $this->request->post olur

$_COOKIE $this->request->cookie olur

$_FILES $this->request->files olur

$_REQUEST $this->request->request olur

$_SERVER $this->request->server olur


Özet

Yukarıdaki geliştiriciler için kurşun geçirmez bir rehber olmasa da, umarım bu başlamak için iyi bir başlangıç noktası olarak hizmet verecek

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kylelandry

    kylelandry

    9 AĞUSTOS 2007
  • NLthomas21

    NLthomas21

    20 Mayıs 2008
  • TSE

    TSE

    12 Kasım 2012