Автор Тема: Создание собственной страницы в Prestashop  (Прочитано 1710 раз)

24 Июня 2014, 11:35:51
  • Ветеран
  • *****
  • Сообщений: 105576
  • Репутация: +39546/-0
    • Просмотр профиля
    • Webstudio UwK
Для того чтобы использовать функции prestashop на своей страницы нужно:

1. Создать страницу в корне сайта mypage.php
<?php
require(dirname(__FILE__).'/config/config.inc.php');

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

2. Создать свой конроллер /controllers/front/MyPageController.php
<?php

class MyPageControllerCore extends FrontController
{
  public 
$php_self 'mypage';
  
  public function 
initContent()
  {
    
parent::initContent();

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

3. Создать шаблон страницы /themes/ваша_тема/mypage.tpl
<h1>{l s='My page'}</h1>
4. В "Панель администратора > Настройки > SEO и URL" добавить вашу страницу
Страница: mypage
ЧПУ: mypage
Cоздание интернет сайтов Webstudio UwK
24 Июня 2014, 15:42:24
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 971
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
26 Июня 2014, 23:49:28
Ответ #2
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для того чтобы использовать функции prestashop на своей страницы нужно...
Виталий, спасибо огромное за факт существования этой материала, он мне очень помог!
И если Вам не трудно подскажите пожалуйста, как на этой своей странице, функцией залогинить мембера по его "id_customer" чтобы куки для доступа в кабинет выдались? Заранее  Вас благодарю.
27 Июня 2014, 11:07:59
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 32995
  • Репутация: +26759/-0
    • Просмотр профиля
Для работы с пользователями класс Customer.php
Для куки - Cookie.php
public function isLogged($withGuest = false)
27 Июня 2014, 14:22:31
Ответ #4
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
через функцию
isLogged()
можно, как я понимаю только проверить, залогине ли пользователь или нет.
Я же ищу её аналог, которому можно скормить id пользователя и он будет полноценно авторизован, уверен, что это реализовано, просто, к сожалению, не могу эту функцию никак найти  :(
27 Июня 2014, 15:57:42
Ответ #5
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всё, спасибо всем за помощь, разобрался. Готовой функции не нашел,пришлось свою написать. Дёргните меня, если кому -нибудь она понадобится.
26 Августа 2014, 13:31:24
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 162
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите пожалуйста как мне решить проблему. На черновой версии магазина всё работает отлично. Заливаю файлы на работающий сайт отображается пустая страница (без заголовка и какой либо информации). Как Вы думаете в чём может быть проблема?
26 Августа 2014, 14:07:44
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 13276
  • Репутация: +14555/-0
  • Сообщество PrestaShop
    • Просмотр профиля
30 Ноября 2015, 16:56:56
Ответ #8
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите почему у меня выдает ошибку 500? Вроде все как надо делаю(
30 Ноября 2015, 17:00:57
Ответ #9
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 20842
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Ноября 2015, 20:24:24
Ответ #10
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
30 Ноября 2015, 20:34:00
Ответ #11
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Новый вопрос назрел) Как мне теперь на созданной странице избавится от всех стандартных элементов шаблона, меню горизонтальное, поиск и других элементов, чтоб полностью все свое напечатать. Очень надо ребят
30 Ноября 2015, 20:54:28
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если избавлятся нужно на всех страницах смс, тогда в Модули > Расположение блоков зайти во все модули и устновить не показывать для cms.php.
Если только для одной, то нужно создавать отдельный шаблон для этой страницы.   
30 Ноября 2015, 21:00:46
Ответ #13
  • Новичок
  • *
  • Сообщений: 16
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Т.е. я должен создать новый шаблон и в нем создать страницу? Или для страниц можно шаблоны применять?
30 Ноября 2015, 21:09:47
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 763
  • Репутация: +6/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Два варианта,
1. Создать свой контроллер и шаблон
http://doc.prestashop.com/display/PS16/Developer+Guide

2. Изменить шаблон cms.tpl, добавить в нем
{if isset($cms) && ($cms->id == 'id страницы')}
    {include file="./mycms.tpl"}
и сделать новый шаблон mycms.tpl