Právě je 25 dub 2024 08:48

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 28 srp 2012 22:00 

Registrován:
29 kvě 2012 15:37
Příspěvky:
29
Předem zdravím všechny odborníky a chtěl bych požádat o radu.
Klient si namyslel, že by chtěl měnit text v pravém sidebaru podle toho co je zobrazeno u prostřed. Tak nějak bych dal všechno dohromady v php, ale chtěl jsem to udělat trochu user friendly že by si ten text vytvořil v CMS a já bych jen to dané CMS načetl. No a tady sem narazil na problém. Bohužel dřívější způsob http://www.prestashop.com/forums/topic/79566-solved-include-a-cms-page-into-the-template/ mi nefunguje na verzi 1.4.9 a ani po 4 hodinovém pátrání na googlu jsem nic nenašel. Nevěděl by náhodou někdo jak na to??
Předem dík za odpověď.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 30 srp 2012 11:26 
C4 podpora
C4 podpora

Registrován:
01 lis 2011 15:02
Příspěvky:
746
Dobrý den.

Podařilo se mi dostat CMS obsah do pravého sloupce těmito úpravami:
V souboru /classes/FrontController.php najděte úsek
Kód:
   }

   /* Display a maintenance page if shop is closed */
   protected function displayMaintenancePage()
a před něj (tedy technicky vzato na konec public function init()) vložte
Kód:
global $cookie;
$cms = new CMS(2, (int)$cookie->id_lang);
if (Validate::isLoadedObject($cms))
   $smarty->assign('content', $cms->content);
Umístění je důležité, protože pokud byl uvedený kód na začátku funkce init, nefungoval. Zřejmě to má souvislost s řádky 126-128, tedy
Kód:
      /* attribute id_lang is often needed, so we create a constant for performance reasons */
      if (!defined('_USER_ID_LANG_'))
         define('_USER_ID_LANG_', (int)$cookie->id_lang);


Dále v souboru /themes/prestashop/footer.tpl najděte {$HOOK_RIGHT_COLUMN} a před něj vložte
Kód:
{$content}


A protože se upravuje i TPL soubor, je na závěr ještě nutno v Administrace > Preferences > Performance změnit Nucená kompilace na ANO a Cache na NE, uložit, úpravu vyzkoušet a tyto 2 volby zase nastavit zpět.

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 30 srp 2012 21:05 

Registrován:
29 kvě 2012 15:37
Příspěvky:
29
Dobrý den pane Adamec,
předem mockrát děkuji že se s tím vůbec zabýváte. Ještě musím opravit že mám verzi 1.4.7.3 (měl jsem problém s češtinou při přechodu na 1.4.9 a pak už tam bylo provedeno tolik úprav že nechci aktualizovat abych se s tím nemusel dělat znovu), ale myslím že to na to vliv nemá. Bohužel mě to nejde. Jakmile ten kód vložím kamkoliv do FrontController.php stránky mi hodí chybu serveru.
Zkoušel jsem ho dát i přímo do funkce displayFooter, ale stále chyba serveru.

Kód:
public function displayFooter()
   {

      if (!self::$initialized)
         $this->init();

      self::$smarty->assign(array(
         'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn', array('cart' => self::$cart)),
         'HOOK_FOOTER' => Module::hookExec('footer'),
         'content_only' => (int)(Tools::getValue('content_only'))));

    global $cookie;
    $cms = new CMS(38, (int)$cookie->id_lang);
    if (Validate::isLoadedObject($cms))
   $smarty->assign('content', $cms->content);

      self::$smarty->display(_PS_THEME_DIR_.'footer.tpl');


Jestli Vás už nic nenapadne tak tam ten text asi vložím přímo do kódu.
Ještě jednou děkuji.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 31 srp 2012 11:30 
C4 podpora
C4 podpora

Registrován:
01 lis 2011 15:02
Příspěvky:
746
Dobrý den.

Verzi 1.4.7.3 sice nemám k dispozici, rozdíly mezi verzemi ale nebývají příliš zásadní, takže úprava testovaná u mě na 1.4.8.2 by Vám podle mého názoru měla bez potíží fungovat.
Vyzkoušel jsem navíc úpravu i tak, jak jste ji vkládal Vy, tedy
Kód:
global $cookie;
$cms = new CMS(2, (int)$cookie->id_lang);
if (Validate::isLoadedObject($cms))
   $smarty->assign('content', $cms->content);
jsem vložil mezi řádky
Kód:
         Tools::displayError();
   }
Po úprave i souboru footer.tpl, jak bylo uvedeno výše, se změna projeví.

Zkuste provést úpravu znovu, opatrně. Domnívám se, že při provádění jste musel zavléci do kódu nějakou druhotnou chybu.
Jaké je vlastně přesné znění chyby, kterou prohlížeč vrací, o jaký prolížeč jde a na jaké adrese je shop umístěn?

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 31 srp 2012 13:36 

Registrován:
29 kvě 2012 15:37
Příspěvky:
29
Dobrý den pane Adamec,
taky si myslím že ve verzi to už není. Zkoušel jsem to už několikrát stejným způsobem (akorát tím jak jsem uváděl) i před tím než jste mi psal a myslel jsem si že je to právě verzí systému, ale teď už fakt nevím.

Moje úprava footer.tpl
Kód:
<!-- Right -->
   <div id="right_column" class="column">
          {$content}
   {$HOOK_RIGHT_COLUMN}
   </div>


A úprava FrontController.php
Kód:
public function displayFooter()
   {

   if (!self::$initialized)
      $this->init();

   self::$smarty->assign(array(
'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn', array('cart' => self::$cart)),
   'HOOK_FOOTER' => Module::hookExec('footer'),
   'content_only' => (int)(Tools::getValue('content_only'))));
   self::$smarty->display(_PS_THEME_DIR_.'footer.tpl');

    global $cookie;
     $cms = new CMS(38, (int)$cookie->id_lang);
     if (Validate::isLoadedObject($cms))
     $smarty->assign('content', $cms->content);

//live edit
      if (Tools::isSubmit('live_edit') AND $ad = Tools::getValue('ad') AND   (Tools::getValue('liveToken') == sha1(Tools::getValue('ad')._COOKIE_KEY_)))
   {
      self::$smarty->assign(array('ad' => $ad, 'live_edit' => true));
      self::$smarty->display(_PS_ALL_THEMES_DIR_.'live_edit.tpl');
    }
   else
      Tools::displayError();
}


Chyba prohlížečů (Chrome,Explorer) je klasika Chyba protokolu HTTP 500 (Internal Server Error) adresa provina.cz


Přílohy:
chyba_serveru_e.jpg
chyba_serveru_e.jpg [ 30.93 KiB | Zobrazeno 2407 krát ]
chyba_serveru.jpg
chyba_serveru.jpg [ 47.31 KiB | Zobrazeno 2407 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 01 zář 2012 07:12 

Registrován:
29 kvě 2012 15:37
Příspěvky:
29
Jo ještě jsem zapomněl dodat že běžné věci co se týče chyby http 500 jsem samozřejmě dělal. (změna oprávnění složky classes i samotného souboru FrontController.php, znovu vytvoření .htaccess. S časovým limitem nic neudělám, ale poněvadž ta chyba vyskočí hned tak v tom to asi taky nebude.)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 05 zář 2012 06:22 
C4 podpora
C4 podpora

Registrován:
01 lis 2011 15:02
Příspěvky:
746
Dobrý den.

Funkce displayFooter vypadá v mojí verzi shodně, takže to je podivné.
Zkuste ještě umístit blok
Kód:
global $cookie;
$cms = new CMS(2, (int)$cookie->id_lang);
if (Validate::isLoadedObject($cms))
   $smarty->assign('content', $cms->content);
na samý konec funkce, jako jsem to udělal já.

Pokud toto nepomůže, podívejte se do logu v administraci Vašeho webu na poslední záznamy, k jakým chybám došlo.

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 05 zář 2012 17:22 

Registrován:
29 kvě 2012 15:37
Příspěvky:
29
Tak už se do toho začínám zamotávat pane Adamec.
Zjistil jsem že v logu nemám vůbec žádný záznam. Takže teď už ani nevím proč shop neloguje.
Nic méně jsem si povolil zobrazování chyb v config.inc.php a když dám kód do funkce displayFooter tak se mu nelíbil řádek
Kód:
 $smarty->assign('content', $cms->content);

ale vložením self:: na začátek už chybu nezobrazuje, ale nenačte ani CMS.
Pokud vložím kód kamkoliv jinam (třeba podle Vás za funkci init) do FrontController.php nelíbí se mu již první řádek, což už fakt nevím proč.
Sice bych rád zjistil kde je chyba, ale už to asi vzdám a nechci Vás s tím ani zdržovat.
Jenom jestli náhodou nevíte proč by shop nelogoval. Nebyl aktualizovaný aby ztratil záznamy. Je to čistá instalace a záznam tam není ani jeden.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 10 zář 2012 11:36 
C4 podpora
C4 podpora

Registrován:
01 lis 2011 15:02
Příspěvky:
746
Dobrý den.

Že by v logu nebyl vůbec žádný záznam je prakticky nemožné. Určitě jste se díval na log Vaší domény a ne třeba PrestaShopu? Přihlášení do administrace webu je na této adrese.

_________________
Adam Chyský
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PrestaShop - Načtení obsahu CMS
PříspěvekNapsal: 13 kvě 2014 14:35 
C4 zákazník

Registrován:
20 led 2012 01:15
Příspěvky:
19
Nechci vytvářet nové téma, můj dotaz se týká podobného problému.

Existuje nějaký "jednoduchý" způsob, případně modul, který by umožňoval načíst obsah konkrétní stránky CMS v popisu produktu (Prestashop 1.5.6.2)? Konkrétní důvod proč to chci: V CMS mám stránku Doprava a platba. Chci informace z této stránky uvádět u většiny produktů (ne u všech) právě v popisu produktu. Pokud např. pošta zdraží stačilo by editovat cenu v tomto článku což by se promítlo i v popisech produktů.


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ů: 11 ]  Přejít na stránku 1, 2  Další

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 1 návštěvní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

Seznam všech partnerů

PrestaShop Hosting
Návody pro C4

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