Polskie wsparcie PrestaShop
PrestaShop => Konfiguracja => Wątek zaczęty przez: lof w Styczeń 26, 2011, 10:33:45 am
-
często soosby którym zakładam sklep chcą aby razem z formularzem kontaktowym była treść i najlepiej aby bła edytowalna z panelu.. a więc jak to zrobić w prosty sposób.
otwieramy plik contact-form.php
i dopisujemy po linijce
$email = Tools::safeOutput(Tools::getValue('from', ((isset($cookie) AND isset($cookie->email) AND Validate::isEmail($cookie->email)) ? $cookie->email : '')));
poniższy kod
//will be initialized bellow...
if(intval(Configuration::get('PS_REWRITING_SETTINGS')) === 1)
$rewrited_url = null;
#include(dirname(__FILE__).'/header.php');
$rewrited_url = $link->getCmsLink($cms, $cms->link_rewrite);
$id_cms = 7;
$cms = new CMS(intval($id_cms), intval($cookie->id_lang));
$smarty->assign(array(
'errors' => $errors,
'email' => $email,
'cms' => $cms,
'content_only' => intval(Tools::getValue('content_only'))
));
gdzie $id_cms = 7; to nasze strone CMS o ID 7 - podane ID jest w liscie stron wpanelu.
teraz szukamy pliku: contact-form.tpl
i dodajemy:
<div style="margin-top:10px;margin-bottom:10px;">
{$cms->content}
</div>
w dowolnym miejscu gdzie chcemy wyświetlić zawartość naszej strony CMS w formularzu.
-
Ja to robię na inny sposób, według mnie prościej ale może niezbyt poprawnie programistycznie.
Wrzucam poniższy kod do pliku tpl w którym ma być treść z CMS'a
{php}
$base_dir_ssl = $this->get_template_vars('base_dir_ssl');
include($base_dir_ssl.'cms.php?id_cms=XXX&content_only=1');
{/php}
-
jeśli działa i nie pokazuje żadnych błędów to pewnie jest ok ;D
-
dzięku za infor, pewnie się przyda ;]
-
witam
wiem, że trochę odgrzewam ten wątek ale mam pytanie do kuras
czy mógłbyś napisać w jakiej wersji PS u ciebie to działa?
ja próbowałem pod wersją 1.4 i nic mi nie wychodzi.
pozdrawiam
-
@kendrix
$allow_php_tag = ustaw na true w \tools\smarty\Smarty.class.php :)
-
niestety nic to nie zmieniło :(
-
To powinno zadziałać: (wersja testowa 1.4.2.5)
Plik: controllers\ContactController.php
Po linijce: parent::preProcess();
Wstawiamy: $this->cms = new CMS(XXX, self::$cookie->id_lang);
Po linijce: parent::process();
Wstawiamy: self::$smarty->assign(array(
'cms' => $this->cms,
'content_only' => (int)(Tools::getValue('content_only')),
'path' => ((isset($this->cms->id_cms_category) AND $this->cms->id_cms_category) ?
Tools::getFullPath((int)($this->cms->id_cms_category), $this->cms->meta_title, 'CMS') :
Tools::getFullPath(1, $this->cms->meta_title, 'CMS'))
));
I na końcu w pliku contact-form.tpl wstawiamy:
<div class="rte{if $content_only} content_only{/if}">
{$cms->content}
</div>
Oczywiście w miejsce XXX należy wstawić ID strony CMS.