Právě je 21 črc 2017 02:31

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 
Autor Zpráva
 Předmět příspěvku: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 08 črc 2017 12:30 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
456
Dobrý deň,

Potreboval by som pridať v administrácii -> katalóg -> produkty .. STĹPEC "Viditeľnosť:" (spolu aj s filtrom) - ktorá sa nastavuje pri produkte v záložke "Informácie", kde sú možnosti tejto viditeľnosti nasledovné:
- všade
- katalóg
- ...
- nikde

Prosím môžete poradiť ako nato?

Ďakujem za skorú odpoveď :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 11 črc 2017 14:44 
C4 zákazník

Registrován:
15 srp 2016 13:22
Příspěvky:
26
Zdravím nějak přeně nechápu co chcete. Vy chcete pouze přesunout blok obsahující: Aktivováno, Viditelnost, Volby, Podmínka (myslím jakoby celý blok) do nového sloupce vlevo uproduktu jo? Takže vytvořit nový slouper a tam pouze přesunout tyto věci?? Nebo máte na mysli něco jiného?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 11 črc 2017 17:25 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
456
Prikadám screenshot :).


Přílohy:
visibility.png
visibility.png [ 158.24 KiB | Zobrazeno 122 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 12 črc 2017 14:21 
C4 zákazník

Registrován:
15 srp 2016 13:22
Příspěvky:
26
Tak to mám pro vás celkem jednoduché řešení.

Jedná se ale o zásah do zrojových kódu aplikace takže doporučuji předem udělat zálohu.

Pokud si netroufáte na úpravu zdrojového kódu kontaktujte nás na adrese info@profi-prestashop.cz

A jdeme na to.

Krok 1: Otevřít soubor (ideálně v PSpad editoru) controllers/admin/AdminProductsController.php

Krok 2: Jelikož je pole VISIBILITY nejednoznačné (výskyt i v jiných tabulkách) musíme si nejprve definovat jiný název. V našem případe my_visibility a potom v definici pole místo podmínky použijeme náš název my_visibility (Název si zvolte jakýkoli - hlavně takový, který jste ještě nikdy nepoužili)

takže nalezneme řákdy:
Kód:
$this->_select .= 'shop.`name` AS `shopname`, a.`id_shop_default`, ';
        $this->_select .= $alias_image.'.`id_image` AS `id_image`, cl.`name` AS `name_category`, '.$alias.'.`price`, 0 AS `price_final`, a.`is_virtual`, pd.`nb_downloadable`, sav.`quantity` AS `sav_quantity`, '.$alias.'.`active`, IF(sav.`quantity`<=0, 1, 0) AS `badge_danger`';
cca kolem řádku 185.

Před tyto řákdy vložíme řádek kde si nadefinujeme náš originální název

Kód:
$this->_select .= $alias.'.`visibility` AS my_visibility, ';


Celkově to bude tedy vypadat takto:

Kód:
$this->_select .= $alias.'.`visibility` AS my_visibility, ';
        $this->_select .= 'shop.`name` AS `shopname`, a.`id_shop_default`, ';
        $this->_select .= $alias_image.'.`id_image` AS `id_image`, cl.`name` AS `name_category`, '.$alias.'.`price`, 0 AS `price_final`, a.`is_virtual`, pd.`nb_downloadable`, sav.`quantity` AS `sav_quantity`, '.$alias.'.`active`, IF(sav.`quantity`<=0, 1, 0) AS `badge_danger`';


Krok 3: Teď už jen musíme vložit pole "Viditelnost" kam právě chceme. Já chci tento sloupec hned za slouper s kódem zboží (reference). Takže najdeme řádky:

Kód:
$this->fields_list['reference'] = array(
            'title' => $this->l('Reference'),
            'align' => 'left',
        );


a za tyto řákdy vložíme naše pole s visibility respektive my_visibility:

Kód:
$this->fields_list['my_visibility'] = array(
        'title' => $this->l('Visibility'),
        'align' => 'left',
        );


Krok 4: Uložíme na ftp a pro jistotu překompilujte šablony a vymažte mezipaměť.

S přáním hezkého dne Majkis


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 12 črc 2017 15:38 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
456
Ďakujem, cením si Vašu odpoveď, mám však ešte 2 problémy.

1) Potrebujem aby polia z DB ktoré sú vo visibility: none / catalog / .. aby boli preložené tak ako sú v administrácii
2) Ešte by som chcel aby sa dalo cez tento stĺpec dali dať filtrovať produkty.

Ďakujem :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 17 črc 2017 19:57 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
456
Prikladám kód pre pridanie stĺpca + filtrovanie.

Stále hladám riešenie ako preložiť "none, catalog, both" . viete poradiť?

Kód:
$this->_select .= $alias.'.`visibility` AS my_visibility, ';


Kód:
$this->fields_list['my_visibility'] = array(
        'title' => $this->l('Visibility'),
        'align' => 'left',
            'class' => 'fixed-width-xs',
            'align' => center,
            'havingFilter' => true,
            'filter_key' => 'my_visibility'
        );


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 17 črc 2017 22:46 
C4 zákazník

Registrován:
15 srp 2016 13:22
Příspěvky:
26
Zdravím. Omlouvám se za neúčast. Nenacházel jsem se v ČR.

1) Vaši druhou část kódu bych upravil takto
Kód:
$this->fields_list['my_visibility'] = array(
        'title' => $this->l('Visibility'),
        'align' => 'left',
        'havingFilter' => true,
        'filter_key' => 'my_visibility'
        );


odstraněním " 'align' => center, " se vyhnete chybě v administraci jelikož už jsme jednou řadili vlevo.
odstraněním " 'class' => 'fixed-width-xs', " zrušíte editaci nechtěných titlů v backoffice (pokud to nebyl záměr).

2) Co se týče přejmenování tak mě teď v rychlosti napadá jediná věc.
A to změnit všechny proměnné tohoto názvu na název vámi požadovaný a přepsat je v tabulkách databáze na nové názvy

zde jsou všchny soubry kde se tyto názvy polí nachází:

a) classes/Product.php
Kód:
'visibility' =>                array('type' => self::TYPE_STRING, 'shop' => true, 'validate' => 'isProductVisibility', 'values' => array('both', 'catalog', 'search', 'none'), 'default' => 'both'),
           


b) classes/Validate.php

Kód:
    public static function isProductVisibility($s)
    {
        return preg_match('/^both|catalog|search|none$/i', $s);
    }


c) admin_dir/themes/default/template/controllers/products/Informations.tpl

Kód:
      <div class="col-lg-3">
         <select name="visibility" id="visibility">
            <option value="both" {if $product->visibility == 'both'}selected="selected"{/if} >{l s='Everywhere'}</option>
            <option value="catalog" {if $product->visibility == 'catalog'}selected="selected"{/if} >{l s='Catalog only'}</option>
            <option value="search" {if $product->visibility == 'search'}selected="selected"{/if} >{l s='Search only'}</option>
            <option value="none" {if $product->visibility == 'none'}selected="selected"{/if}>{l s='Nowhere'}</option>
         </select>
      </div>



Bohužel to teď nemám jak vyzkoušet. Jsem zatím nacestách.

Nezapomeňte pro jistotu vše předem zálohovat. Hlavně si ještě budete muset stáhnout tabulky kde se tyto výrazy vyskytují a nahratit je svými názvy a potom nahrát zpět.

Není to úplně optimální řešení, ale snad vám to pomůže.

S přáním hezkého dne Majkis (info@profi-prestashop.cz)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 18 črc 2017 14:56 
C4 zákazník
Uživatelský avatar

Registrován:
06 čer 2014 19:28
Příspěvky:
456
Ďakujem, priznám sa neskúšal som Vaše riešenie, zdalo sa mi moc komplikované.

Dostal som odpoveď na zahr. fóre a stačí v controllery len pridať:

Kód:
$this->fields_list['my_visibility'] = array(
        'title' => $this->l('Visibility'),
        'align' => 'left',         
            'havingFilter' => true,
            'filter_key' => 'my_visibility',
            'callback' => 'my_visibility_function'
        );

a ešte
Kód:
   public static function my_visibility_function($my_visibility_function)
    {
        if ($my_visibility_function == 'both')
            return '<span style="background-color : #0b9819; color : #ffffff; border-radius : 4px/4px">&nbsp;všade&nbsp;</span>';
        elseif ($my_visibility_function  == 'catalog')
            return '<span style="background-color : #009adf; color : #ffffff; border-radius : 4px/4px">&nbsp;katalóg&nbsp;</span>';
        elseif ($my_visibility_function  == 'search')
            return '<span style="background-color : #0020df; color : #ffffff; border-radius : 4px/4px">&nbsp;vyhľadávanie&nbsp;</span>';
        else
            return '<span style="background-color : #6c6c6c; color : #ffffff; border-radius : 4px/4px">&nbsp;nikde&nbsp;</span>';
    }

Má to jediný háčik, ak chcem filtrovať "Viditeľnosť" je potrebné zadávať presnú frázu z DB čiže "none", "catalog" atď.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Pridanie stĺpca "Viditeľnosť:" v katalógu prod.
PříspěvekNapsal: 18 črc 2017 15:16 
C4 zákazník

Registrován:
15 srp 2016 13:22
Příspěvky:
26
Právě, že toto řešení jsem našel také ale kvůli te filtraci jsem vám ho ani neuváděl. Právě zkouším to mé původní řešení a dám vám zpět vazbu jak to funguje a zdali není potřeba ještě něco doladit.

S přáním hezkého dne - Majkis


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PrestaShop partneři
PrestaShop Hosting
Návody pro C4

© 2009-2012 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz