Creați un raport personalizat în OpenCart

Indiferent de ce afacere aveți de-a face, este întotdeauna important să aveți instrumente care să vă ajute să analizați statisticile globale ale întâmplărilor de zi cu zi. Desigur, vă ajută și să construiți strategii suplimentare pentru afacerea dvs. doar în cazul în care lucrurile nu sunt pe drumul cel bun.

Astăzi vom discuta despre instrumente de raportare în contextul OpenCart. Veți găsi o mulțime de rapoarte utile în centrul propriu-zis. Există patru categorii principale care trebuie să fie precise - Vânzări, Produse, Clienți și Marketing - și fiecare dintre acestea oferă mai multe opțiuni pentru vizualizarea informațiilor în diferite contexte.

În exemplul nostru, vom crea un raport care să afișeze toate produsele care sunt vizionate, dar care nu au fost încă achiziționate. Desigur, este un caz de utilizare simplu, dar ați putea merge mai departe și creați unul mai complex ca pe cerințele dumneavoastră.

Presupun că utilizați cea mai recentă versiune OpenCart și sunteți familiarizați cu procesul de dezvoltare a modulelor de bază în OpenCart, deoarece vom accentua mai degrabă generarea de rapoarte decât pașii de bază pentru modulul de dezvoltare. Dacă doriți să explorați dezvoltarea modulelor de bază în OpenCart, există un articol frumos pe această temă.

Setarea fișierelor din back-end

Să enumerăm fișierele care trebuie implementate pentru raportul nostru personalizat:

  • admin / controler / raport / product_custom.php: Este fișierul principal al controlerului care este folosit pentru a încărca datele modelului și pentru a configura variabilele.
  • admin / modelul / raport / product_custom.php: Este un fișier model care este folosit pentru a configura interogări SQL pentru a prelua datele din baza de date.
  • admin / vizualizare / șablon / raport / product_custom.tpl: Este un fișier de vizualizare care conține logica de prezentare.
  • admin / limba / engleză / raport / product_custom.php: Este un fișier de limbă.

Controlerul

Continuați și creați un fișier admin / controler / raport / product_custom.php cu următorul conținut.

a sarcinii> Limba ( 'raport / product_custom'); $ This-> pe documente> SetTitle ($ this-> language-> get ( 'Senzori si')); dacă isset ($ this-> request-> get ['page'])) $ page = $ this-> request-> get ['pagina'];  altceva $ page = 1;  $ url = "; if ($ this-> request-> get ['page'])) $ url = '& page ='. $ data ['breadcrumbs'] = array (); $ data ['breadcrumbs']] = array ('text' => $ this-> language-> get ('text_home'), 'href' -> url-> link ('common / dashboard', 'token ='. $ this-> session-> data ['token'], 'SSL')) 'text' '> $ this-> language-> get' ('title_title'), 'href' => $ this-> url-> link ('report / product_custom', 'token = > data ['token'] $ url, 'SSL')); $ this-> load-> model ('report / product_custom'); $ data ['products'] = array 'start' => ($ pagină - 1) * $ this-> config-> get ('config_limit_admin'), 'limit' => $ this-> config-> get ('config_limit_admin')) $ product_total = ($ filter_data); foreach (rezultatele $ ca $ rezultat) $ data ['products'] [] = array ('$ results_products' ($ filter_data) nume '=> $ rezultat [' nume '],' model '=> $ rezultat [' model '],' vizualizat '=> $ rezultat [' vizualizat '],);  $ data ['title_title'] = $ this-> language-> get ('title_title'); $ data ['text_list'] = $ acest-> limbă-> obține ('text_list'); $ data ['text_no_results'] = $ acest-> limbă-> primi ('text_no_results'); $ date ['text_confirm'] = $ acest-> limbă-> obține ('text_confirm'); $ date ['nume_cuplu'] = $ this-> language-> get ('nume_pagină'); $ date ['column_model'] = $ acest-> limbă-> obține ('column_model'); $ date ['column_viewed'] = $ acest-> limbă-> primi ('column_viewed'); $ date ['entry_date_start'] = $ acest-> limbă-> get ('entry_date_start'); $ data ['entry_date_end'] = $ acest-> limbă-> primi ('entry_date_end'); $ date ['token'] = $ această-> sesiune-> date ['token']; $ url = "; $ pagination = new Pagination (); $ pagination-> total = $ product_total; $ pagination-> page = $ page; $ pagination-> limit = $ this-> config-> get ('config_limit_admin') ; $ pagination-> url = $ this-> url-> link ('report / product_custom'; 'token ='. $ this-> session-> data ['token' '$ Data [' results '] = sprintf ($ this-> language-> get (' text_pagination '), ($ product_total ) * ($ $ - 1) * $ this-> config-> get ('config_limit_admin') + 1: 0, ))> ($ product_total - $ this-> config-> get ('config_limit_admin'))) $ $ product_total: (($ page - 1) $ this-> config-> get (config_limit_admin)), $ product_total, ceil ($ product_total / $ this-> config-> get ('config_limit_admin')); $ data ['header' > data ('common_header'); $ data ['column_left'] = $ this-> load-> controller ('common / column_left'); $ data ['footer'] = $ this-> load -> regulator ( 'c COMUNĂ / subsol "); $ this-> response-> setOutput ($ this-> load-> view ('report / product_custom.tpl', $ date)); 

Cel mai important lucru pe care trebuie să-l reținem este că l-am plasat sub directorul "raport", care este locul potrivit pentru toate fișierele legate de raport.

În afară de asta, este ceva destul de obișnuit al controlorului - încărcăm limbajul și modelul corespunzător în metoda index și apoi setăm variabilele. În final, ne-am desemnat product_custom.tpl ca fișierul șablon principal care este responsabil pentru rezultatul principal al raportului.

Modelul

Mai departe, să setăm fișierul modelului la admin / modelul / raport / product_custom.php.

config-> get ('config_language_id'). "" AND p.viewed> 0 ȘI ISNULL (op.product_id) ORDER BY p.viewed DESC "; dacă ($ date ['start']) || isset ($ data ['limit'])) dacă ($ date ['start'] < 0)  $data['start'] = 0;  if ($data['limit'] < 1)  $data['limit'] = 20;  $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];  $query = $this->DB> interogare ($ sql); returnează $ interogare-> rânduri;  funcția publică getTotalCustomProducts ($ data) $ sql = "SELECT count (*) ca valoare totală FROM". DB_PREFIX. "product p LEFT JOIN". DB_PREFIX. "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "comanda_product op ON p.product_id = op.product_id WHERE pd.language_id = '". (int) $ this-> config-> get ('config_language_id'). "" AND p.viewed> 0 ȘI ISNULL (op.product_id) "; $ interogare = $ this-> db-> interogare ($ sql); returnați $ query-> row ['total']; 

Există două metode în fișierul nostru model - getCustomProducts preia înregistrările corespunzătoare din baza de date, în timp ce getTotalCustomProducts returnează numărul total de înregistrări utilizate de componenta de paginare din controler.

Privelistea

Apoi, fișierul de vizualizare ar trebui să fie situat la admin / vizualizare / șablon / raport / product_custom.tpl.

 

  • „>

Va afișa lista de produse într-un mod tabular frumos și, bineînțeles, este receptiv deoarece bootstrap-ul se află acum în centrul!

Fișierul lingvistic

La final, să creăm un fișier de limbă la admin / limba / engleză / raport / product_custom.php.

Deci, asta e în ceea ce privește configurarea fișierelor.

Acordarea permisiunii pentru raportul personalizat

Deși am terminat cu modulul nostru de rapoarte personalizate, nu veți avea acces la el încă. Aceasta se datorează faptului că este considerată o nouă resursă și că grupului de utilizatori ai administratorului ar trebui să li se permită accesarea acestei resurse. Prin urmare, să mergem mai departe și să acordăm permisiunea pentru această resursă grupului de utilizatori de administratori.

Navigheaza catre Sistem> Utilizatori> Grup de utilizatori și editați Administrator grup de utilizatori. Sub Permisiune de acces drop-down box, verificați Raportul / product_custom și salvați grupul.

Acum, ar trebui să aveți acces la această resursă.

Cum să accesăm raportul nostru în back-end

Va trebui să modificăm admin / vizualizare / template / comun / menu.tpl pentru a include link-ul nostru de raport personalizat. Din motive de simplitate, o vom modifica direct, dar vă recomandăm să obțineți același lucru folosind extensia OCMOD. Vă permite să modificați fișierele de bază utilizând un sistem de căutare / înlocuire bazat pe XML.

Acum, deschideți admin / vizualizare / template / comun / menu.tpl fișier și căutați următoarea linie.

  • „>
  • După acea linie, adăugați următoarea linie.

  • "> Raport personalizat
  • Acum ar trebui să puteți vedea link-ul nostru sub Rapoarte> Produse. Faceți clic pe acesta pentru a vedea raportul personalizat minunat!

    Acesta afișează toate produsele care sunt vizualizate și nu au fost achiziționate încă. Deci, asta este în ceea ce privește crearea de raport personalizat; Sper că nu a fost prea mult dintr-o dată. Dar, oricum, ați avut ideea și ați putea să o extindeți ușor conform cerințelor dvs..

    Concluzie

    Astăzi, am discutat cum să creați un raport personalizat în OpenCart. Am trecut prin procesul complet de instalare a fișierelor necesare, iar în ultima parte a articolului am demonstrat cum să accesăm raportul din back-end.

    Dacă sunteți în căutarea unor instrumente OpenCart suplimentare, utilitare, extensii și așa mai departe, pe care le puteți folosi în propriile proiecte sau pentru educația proprie, nu uitați să vedeți ce avem la dispoziție pe piață.

    Sper că ți-a plăcut totul până acum și rămâi acordat pentru mai mult pe OpenCart. În cazul întrebărilor și sugestiilor, puteți să mă contactați prin Twitter sau să utilizați feedul de comentarii de mai jos.

    Cod