Page 1 of 1

Pár rad pro začátečníka

Posted: Wed Sep 04, 2013 8:08 pm
by lepil112
Zdravím všechny čtenáře fóra,

s opencard jsem nedávno začal a potřeboval bych poradit v těchto záležitostech.

1. potřeboval bych přepsat u zboží položku Model na něco jiném a případě jak přidat více položek jako je model. Nebo udělat to, aby se atributy zboží zobrazovali hned pod dostupností a neřadili se do specifikace.
2. zobrazení zboží z podkategorií v nadřazené kategorii. Asi to bude lepší, když to uvedu na příkladu prodejce počítačů. Kliknu na rubriku PC komponenty, kde se mi zobrazí všechny komponenty ze všech podkategorií, a když zúžím výběr (vyberu podkategorii) tak zůstanou třeba jen grafické karty. Původně jsem to myslel tak, že Jeden produkt vložím do hlavní kategorie a i do podkategorie. To sice funguje, ale pak nesedí počty zboží v kategorii. Přidám sice jenom jedno zboží, ale jak to dám do kategorie i podkategie, tak to ukazuje 2 zboží v kategorii.
3. recenze se nemusí schvalovat, ale v případě potřeby je smažu
4. potom by jsem chtěl nějaký způsobem udělat obdobný box jako je doporučujeme, akorát by se produkty řadili podle data, kdy mají vyjít (například předprodej DVD)
5. odkazy přidat ke srovnání úplně odstranit a přidat do seznamu přání vyřešit třeba nějakou jednoduchou ikonkou nebo nějak jinak elegantně.
6. jak je zobrazení zboží do seznamu nebo mřížky, tak by mi vyhovovala ještě varianta pouze do řádku (bez náhledu obrázku, pouze název zboží, cena a dát do košíku)

Vím, že něco jsou blbosti, bez kterých se dá žít. Ovšem body 1 a 2 mě docela trápí a nevím, jak si s nimi poradit. :( Používám verzi systému 1.5.5.1 a základní vzhled. Za každou reakci na jakýkoliv bod moc děkuji. :)

Re: Pár rad pro začátečníka

Posted: Thu Sep 05, 2013 6:59 am
by hawkey
Nepište prosím "Opencard" - system se jmenuje "Opencart"
Už tak je hloupé, že tato předražené pražská karta se jmenuje podobně a netřeba to ještě komolit.

K vašim dotazům. Kromě bodu 3, který se nastavuje v administraci, jsou to všechno věci, které nelze v Opencartu standardně udělat. Nevím, jakou pomoc přesně čekáte, jestli jste schopen i sám programovat nebo jakou pomoc čekáte. Buď hledejte v databázi modulů (něco bude možná i zdarma) nebo si budete muset někoho najmout, aby to pro vás udělal. Předpokládám, že úplně zadarmo vám nikdo shop podle vašich představ neudělá.

Já rád pomůžu, vysvětlím, opravím chybu, ale vy byste chtěl mít z opensource systému hodinky s vodotryskem, stavět e-shopy na zakázku zadarmo nezvládám :)

Re: Pár rad pro začátečníka

Posted: Thu Sep 05, 2013 6:33 pm
by lepil112
hawkey wrote:Já rád pomůžu, vysvětlím, opravím chybu, ale vy byste chtěl mít z opensource systému hodinky s vodotryskem, stavět e-shopy na zakázku zadarmo nezvládám :)
Já taky nechci po nikom, aby mi stavěl e-shop zadarmo, ale (jak píšu v první větě) poradit, Myslel jsem, jestli se někdo z uvedených věcí nesetkal a nedoporučil mi nějaké vlákno třeba v jiném jazyce, popřípadě přímo modul.

Jestli se tedy můžu vrátit k tématu. Pro přidání stejného pole jako Model jsem našel tento návod:
http://forum.opencart.com/viewtopic.php?f=22&t=36625
Zkoušel ho někdo a myslíte, že bude fungovat na mé verzi 1.5.5.1?

Re: Pár rad pro začátečníka

Posted: Thu Sep 05, 2013 8:05 pm
by hawkey
Ano, tohle bude fungovat, když to uděláte správně.

Re: Pár rad pro začátečníka

Posted: Sat Sep 07, 2013 3:37 am
by lepil112
1.jpg

snímek z databáze (bod 1) - 1.jpg (325.91 KiB) Viewed 4392 times

Udělat správně, podle mě to správně dělám, ale bohužel mi to nejde, tak někde chybu dělat musím. Zkusím vám popsat co a jak provádím, třeba někdo přijde na to, co dělám špatně.

1. přidal jsme nový sloupec v databázi příkazem:

Code: Select all

ALTER TABLE  `product` ADD  `Table Name` VARCHAR( 255 ) NOT NULL AFTER  `model` ;
2. admin/controller/catalog/product.php
na 707 řádek jsem vložil:

Code: Select all

if (isset($this->request->post['Table Name'])) {
            $this->data['Table Name'] = $this->request->post['Table Name'];
       } elseif (isset($product_info)) {
         $this->data['Table Name'] = $product_info['Table Name'];
      } else {
            $this->data['Table Name'] = '';
       }
a na řádek 521 toto:

Code: Select all

$this->data['entry_table name'] = $this->language->get('entry_table name');
3. admin/view/template/catalog/product_form.tpl (ke stažení moje verze zde: http://truckgame.cz/product_form.tpl)
když jsem pod:

Code: Select all

        <div id="tab-data">
          <table class="form">
vložil toto:

Code: Select all

            <tr>
              <td><?php echo $entry_Table name; ?></td>
              <td><input type="text" name="Table name" value="<?php echo $Table name; ?>" /></td>
              </td>
            </tr>
při editaci zboží mi vyběhla tato chyba:

Code: Select all

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /data/web/virtuals/17808/virtual/www/subdom/shop3/admin/view/template/catalog/product_form.tpl on line 58
4. admin/language/english/catalog/product.php
jsem hned nad model vložil

Code: Select all

$_['entry_Table Name']              = 'Descripton of field:';
5.admin/model/catalog/product.php. (ke stažení moje verze zde: http://truckgame.cz/product.rar)
na 3 a 4 řádku jsem vložil toto:

Code: Select all

public function addProduct($data) {
      $this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', artist = '" . $this->db->escape($data['artist']) . "', bioLink = '" . $this->db->escape($data['bioLink']) . "', relatedCategory = '" . $this->db->escape($data['relatedCategory']) . "', upc = '" . $this->db->escape($data['upc']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");
a na 120 a 121 toto:

Code: Select all

public function editProduct($product_id, $data) {
      $this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', sku = '" . $this->db->escape($data['sku']) . "', artist = '" . $this->db->escape($data['artist']) . "', bioLink = '" . $this->db->escape($data['bioLink']) . "', relatedCategory = '" . $this->db->escape($data['relatedCategory']) . "', upc = '" . $this->db->escape($data['upc']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . (int)$data['tax_class_id'] . "', sort_order = '" . (int)$data['sort_order'] . "', date_modified = NOW() WHERE product_id = '" . (int)$product_id . "'");
Jak už jsem psal dříve, vycházím z tohoto návodu http://forum.opencart.com/viewtopic.php?f=22&t=36625, používám verzi 1.5.5.1 v s původním vzhledem a anglickým jazykem. Vím, že je to jenom půlka návodu, ale chybu mi tu hlásí už teď.

EDIT: table name jsem nahradil jiným výrazem a vložil ho do databáze. Editoval jsem produkt a vložil něco do nového pole, přesto mi to vyhodilo tuto chybu:

Code: Select all

Notice: Undefined index: artist in /data/web/virtuals/17808/virtual/www/subdom/shop3/admin/model/catalog/product.php on line 121Notice: Undefined index: bioLink in /data/web/virtuals/17808/virtual/www/subdom/shop3/admin/model/catalog/product.php on line 121Notice: Undefined index: relatedCategory in /data/web/virtuals/17808/virtual/www/subdom/shop3/admin/model/catalog/product.php on line 121Notice: Error: Unknown column 'artist' in 'field list'
Error No: 1054
UPDATE product SET model = 'Product 15', sku = '', sku = '', artist = '', bioLink = '', relatedCategory = '', upc = '', location = '', quantity = '990', minimum = '2', subtract = '1', stock_status_id = '5', date_available = '2009-02-04', manufacturer_id = '8', shipping = '1', price = '100', points = '400', weight = '12.5', weight_class_id = '1', length = '1', width = '2', height = '3', length_class_id = '1', status = '1', tax_class_id = '9', sort_order = '0', date_modified = NOW() WHERE product_id = '42' in /data/web/virtuals/17808/virtual/www/subdom/shop3/system/database/mysql.php on line 50

Re: Pár rad pro začátečníka

Posted: Sat Sep 07, 2013 5:28 am
by CZechBoY

Code: Select all

ALTER TABLE  `product` ADD  `Table Name` VARCHAR( 255 ) NOT NULL AFTER  `model` ;
změň na

Code: Select all

ALTER TABLE  `product` ADD  `model2` VARCHAR( 255 ) NOT NULL AFTER  `model` ;
přičemž model2 je nový sloupec

Re: Pár rad pro začátečníka

Posted: Sun Sep 08, 2013 1:06 am
by lepil112
Za Table Name jsem zkoušel dát jinou jednoslovnou frázi a tím se zbavil potíže, která vznikla při upravení souboru product_form.tp. Ovšem teď se do zboží dostanu, i k jeho editaci, ale jakmile něco vložím do nového pole a uložím, vyběhne mi tato chyba.

Code: Select all

Notice: Undefined index: artist in /data/web/virtuals/17808/virtual/www/subdom/shop3/admin/model/catalog/product.php on line 121Notice: Undefined index: bioLink in /data/web/virtuals/17808/virtual/www/subdom/shop3/admin/model/catalog/product.php on line 121Notice: Undefined index: relatedCategory in /data/web/virtuals/17808/virtual/www/subdom/shop3/admin/model/catalog/product.php on line 121Notice: Error: Unknown column 'artist' in 'field list'
Error No: 1054
UPDATE product SET model = 'Product 15', sku = '', sku = '', artist = '', bioLink = '', relatedCategory = '', upc = '', location = '', quantity = '990', minimum = '2', subtract = '1', stock_status_id = '5', date_available = '2009-02-04', manufacturer_id = '8', shipping = '1', price = '100', points = '400', weight = '12.5', weight_class_id = '1', length = '1', width = '2', height = '3', length_class_id = '1', status = '1', tax_class_id = '9', sort_order = '0', date_modified = NOW() WHERE product_id = '42' in /data/web/virtuals/17808/virtual/www/subdom/shop3/system/database/mysql.php on line 50

Re: Pár rad pro začátečníka

Posted: Sun Sep 08, 2013 1:15 am
by CZechBoY
chtělo by to poslat kody controlleru a modelu, takhle se nedá poznat kde je chyba

Re: Pár rad pro začátečníka

Posted: Sun Sep 08, 2013 1:36 am
by lepil112
Dobře, soubory jsou v přílohách, snad jsou to ty správný.

Re: Pár rad pro začátečníka

Posted: Sun Sep 08, 2013 7:20 am
by CZechBoY
eh
myslel jsem soubory catalog/controller/product/product.php a catalog/model/catalog/product.php
prostě ty, které upravujete

Re: Pár rad pro začátečníka

Posted: Sat Sep 14, 2013 1:19 am
by lepil112
Všechny soubory, co jsem upravoval, jsem sem dal k dispozici ke stažení už v prvním mým příspěvku.
2. admin/controller/catalog/product.php -
http://forum.opencart.com/download/file.php?id=18143

3. admin/view/template/catalog/product_form.tpl (ke stažení moje verze zde: http://truckgame.cz/product_form.tpl)

4. admin/language/english/catalog/product.php - http://forum.opencart.com/download/file.php?id=18144

5. admin/model/catalog/product.php - http://truckgame.cz/product.rar

Re: Pár rad pro začátečníka

Posted: Sat Sep 14, 2013 2:38 am
by CZechBoY
je potřeba tam napsat jméno textového pole + předvyplnit hodnotu
nějak takle: