Polskie wsparcie PrestaShop

PrestaShop => Konfiguracja => Wątek zaczęty przez: lof w Styczeń 26, 2011, 10:33:45 am

Tytuł: [pomoc] dodanie podstrony CSM do formularza kontaktowego
Wiadomość wysłana 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.
Tytuł: Odp: [pomoc] dodanie podstrony CSM do formularza kontaktowego
Wiadomość wysłana przez: kuras w Styczeń 27, 2011, 10:37:18 am
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}

Tytuł: Odp: [pomoc] dodanie podstrony CSM do formularza kontaktowego
Wiadomość wysłana przez: lof w Styczeń 27, 2011, 10:49:03 am
jeśli działa i nie pokazuje żadnych błędów to pewnie jest ok  ;D
Tytuł: Odp: [pomoc] dodanie podstrony CSM do formularza kontaktowego
Wiadomość wysłana przez: scholl w Styczeń 27, 2011, 04:34:28 pm
dzięku za infor, pewnie się przyda ;]
Tytuł: Odp: [pomoc] dodanie podstrony CSM do formularza kontaktowego
Wiadomość wysłana przez: kendrix w Lipiec 20, 2011, 12:48:34 am
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
Tytuł: Odp: [pomoc] dodanie podstrony CSM do formularza kontaktowego
Wiadomość wysłana przez: d4b w Lipiec 20, 2011, 12:13:08 pm
@kendrix

$allow_php_tag = ustaw na true w \tools\smarty\Smarty.class.php :)
Tytuł: Odp: [pomoc] dodanie podstrony CSM do formularza kontaktowego
Wiadomość wysłana przez: kendrix w Lipiec 20, 2011, 11:50:57 pm
niestety nic to nie zmieniło  :(
Tytuł: Odp: [pomoc] dodanie podstrony CSM do formularza kontaktowego
Wiadomość wysłana przez: 26filip w Wrzesień 09, 2011, 06:49:43 pm
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.