Создание собственной страницы в Prestashop

Автор Виталий, 24 июня 2014, 11:35:51

« назад - далее »

Vladislav111


Daniil

Для Prestashop 1.7 нужно создавать шаблон в папке templates вашей темы, и в контроллере должно быть так $this->setTemplate('mypage');

Anque

Цитата: Daniil от 01 марта 2017, 17:56:43
Для Prestashop 1.7 нужно создавать шаблон в папке templates вашей темы, и в контроллере должно быть так $this->setTemplate('mypage');
подтверждаю!

Anque

столкнулся с такой проблемой:

debug включен, а у самой папки выставлена директива "только для чтения" и не снимается :О
винда лагает?

Миколас

Виндовские права доступа не для файлов веб сервера. Доступ к файлам в настройках сервера.

Anque

не подскажете, где в OpenServer'e такое сделать?

Anque

как вообще это произошло?
собсно, я по этому гайду добавлял себе страничку "о магазине". выполнил все 4 пункта, но по созданному урлу я получал ошибку, касающуюся отсутствия якобы созданного мною контролерра.
потом удалил созданные мною файлы, ребутнул сервер, почистил кеш и получил вот такое теперь - когда жму "добавить страницу" получаю ошибку про overrides-папку

Anque

крч проблема решилась.
судя по всему, трабл был таки в вин10.
у меня из корня просто пропала папка override и перенеслась в pdf, плюс перестала быть возможной для любых действий над ней.
решил взятием с дампа)

Anque

запилил страницы. вопрос, а как сделать, чтобы их можно было редачить в админке?

Миколас

Для админки свой контроллер нужен. Опять делай тоже самое для админки, контроллер+шаблон.

Anque

так-с, поподробнее, пожалуйста. я запутался.
1. создал в controllers/admin/AdminAboutController.php:
<?php

class AdminAboutControllerCore extends AdminController
{
 public
$php_self = 'about';
 
 public function
initContent()
 {
   
parent::initContent();

   
$this->setTemplate(_PS_THEME_DIR_.'about.tpl');
 }
}

2. создал в /admin/about.php:
<?php
require(dirname(__FILE__).'/config/config.inc.php');

Tools::displayFileAsDeprecated();
Tools::redirect('index.php?controller=about'.($_REQUEST ? '&'.http_build_query($_REQUEST, '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently');

3. создал в admin/template/about.tpl
в админке не нашел, где я могу редачить контент своей страницы

mAgency

<?php

class AdminMyModuleController extends ModuleAdminController
{
   public function
__construct()
   {
       
$this->bootstrap  = true;
     
       
parent::__construct();

       
//data to the grid of the "view" action
       
$this->fields_list = [
           
'id_mymodule_class'       => [
               
'title' => $this->l('ID'),
               
'type'  => 'text',
               
'align' => 'center',
               
'class' => 'fixed-width-xs',
           ],
         ...

       
//fields to add/edit form
       
$this->fields_form = [
           
'legend' => [
               
'title' => $this->l('General Information'),
           ],
           
'input'  => [
               
'name'   => [
                   
'type'     => 'text',
                   
'label'    => $this->l('Name'),
                   
'name'     => 'name',
                   
'required' => true,
                   
'lang' => true
               
],
               ...
           
'submit' => [
               
'title' => $this->l('Save'),
           ],
       ];
   }

   public function
initContent()
   {
       
parent::initContent();
   }
}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Anque

#27
module? я не создавал модуль, у меня лишь созданы кастомные страницы, как в сообщении топикстартера.
яннп.

Anque

попробовал сделать вот так в cms.tpl:
{if isset($cms) && ($cms->id == '6')}
    {include file="./header.tpl"}
    {include file="./about.tpl"}
    {include file="./footer.tpl"}
..

если инклюдить страницу, созданную по примеру топикстартера, то всё ОК.
но ведь так контент берется из шаблона, а мне нужно из админки, поэтому сделал так:
{if isset($cms) && ($cms->id == '6')}
    {include file="./header.tpl"}
    {$cms->content}
    {include file="./footer.tpl"}

и по итогу получил cms-хедер какой-то со своими стилями, и вывел по итогу лишь контент из админки, без стилей и т.п.

Anque

решил просто: вывел содержимое $cms->content непосредственно в инклюдируемом шаблоне)