Как создать новый макет opencart 2.0.*

Тема в разделе "Общие вопросы", создана пользователем Bkmz, 3 сен 2015.

  1. Bkmz

    Bkmz Продвинутый пользователь

    Сообщения:
    440
    Симпатии:
    106
    Например,
    есть макет страницы товара и хочется его дублировать + внести свои изменения, чтобы в дальнейшем отдельно применять к нужному товару.

    что для этого нужно?
    создать клон контроллера product2.php и клон шаблона product2.tpl
    потом внести изменения в контроллер product2.php
    PHP:
                if (file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/product/product2.tpl')) {
                    
    $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/product2.tpl'$data));
                } else {
                    
    $this->response->setOutput($this->load->view('default/template/product/product2.tpl'$data));
                }
    в разделе макеты создать новый макет Product2
    и указать там путь product/product2

    что я ещё упустил? никто не сталкивался с такой задачкой?
     
  2. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    class ControllerProductProduct2 extends Controller {
     
  3. Bkmz

    Bkmz Продвинутый пользователь

    Сообщения:
    440
    Симпатии:
    106
    сделал. добавил новый макет к товару - никаких изменений :))
     
  4. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    так товары у вас где выводятся?? Макет = Контроллер!!!
     
  5. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    То что выше проделали, работать будет только при
    index.php?route=product/product2&product_id=30
     
  6. Bkmz

    Bkmz Продвинутый пользователь

    Сообщения:
    440
    Симпатии:
    106
    добавил к макету Product2 модуль - отображается без проблем.
    а вот product2.tpl (с изменениями) не отображается. отображается дефолтный product.tpl
     
  7. Vlad

    Vlad Эксперт

    Сообщения:
    4.129
    Симпатии:
    999
    Вы видимо не прочитали что написал!
    Смотрите. То что вы создали в админке макет и добавили кнему модули, а потом этот макет выбрали к товару это никак не относится к контроллеру. Это как бы виртуальный макет у вас получился!

    Что бы от выбранного макета, менялся шаблон, нужно как то по другому. Т.е узнаем в контроллере продукта какой макет назначен и на основании этих данных и выбираем нужный шаблон.

    Но зачем столько мороки? Проще в неиспользуемое поле товара писать название шаблона и потом его использовать в коде который выше указали.
     
  8. Bkmz

    Bkmz Продвинутый пользователь

    Сообщения:
    440
    Симпатии:
    106
    а это как? )))
     
  9. Bkmz

    Bkmz Продвинутый пользователь

    Сообщения:
    440
    Симпатии:
    106
    По началу тема с макетами показалась стоящей ))
    нуссс.. попробую вылезти на неиспользуемых полях товаров :)
    спасибо Влад за подсказку!
     
  10. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    1. Создать шаблон tpl
    2. Создать контроллер php
    3. В админ - панели > Создать макет и указать путь до контроллера
     
    bird и Bkmz нравится это.
  11. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    Пример кода взял с темы от Ravilr

    PHP:
    $template 'category.tpl';
    if (
    $category_id == 27) {    $template 'category1.tpl';    }
    if (
    $category_id == 28) {    $template 'category2.tpl';    }
          
    if (
    file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/product/'.$template)) {
        
    $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/product/'.$template$data));
    } else {
        
    $this->response->setOutput($this->load->view('default/template/product/'.$template$data));
    }
     
    bird и Bkmz нравится это.
  12. xPomaHx

    xPomaHx Новичок

    Сообщения:
    7
    Симпатии:
    1
    Блин полдня парился поэтому скажу тут, имя контролера включает пусть например если ControllerinformationOnas значит пусть Controller/information/Onas
     
    kocapb нравится это.
  13. xPomaHx

    xPomaHx Новичок

    Сообщения:
    7
    Симпатии:
    1
    Такой вопрос можно ли как то вручную, исправляя код выполнять 3 пункт?
     
  14. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    Странный вопрос. А у меня вопрос, а зачем?? Ну а так конечно можно... запросом в базу итд итп..
     
  15. xPomaHx

    xPomaHx Новичок

    Сообщения:
    7
    Симпатии:
    1
    Ну например задача сверстать и добавить в магазин несколько страниц, выходит чтобы что то сделать мне нужен полный доступ, а на самом деле это всегда 4 файла вставить в нужное месте, и доступ мне не нужен.
    Кароч имхо движок должен просо парсить папку контрол и создавать автоматом страницы по всем контролам кроме например в папке "Новая папка(2)"
     
  16. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    мне кажется вы уже не в ту степь ушли с вопросом, а точнее в область хотелок. Движок ничего сам не будет создавать, пока программист не сделает нужные контролы, шаблоны и настройки!

    Прошу писать только по теме!!
     
  17. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
  18. bird

    bird Новичок

    Сообщения:
    16
    Симпатии:
    2
    Огромное спасибо за четкий алгоритм действий, все в голове прояснилось
     
  19. bird

    bird Новичок

    Сообщения:
    16
    Симпатии:
    2
    Простите, есть вопрос.
    OpenCart Version 2.1.0.2 (rs.1). Создаю новый макет для категории согласно тому, как Вы написали.
    Создан контроллер, создан tpl, внесены необходимые изменения в код, создан макет. Прописан путь к контроллеру и в нужных категориях подключен новый макет.
    Если задать в адресной строке путь вида: .../index.php?route=productnews/categorynews&path=456 (то есть по ID категории, так посоветовали в одной статье для проверки правильности), то все отлично. Все новое, все чудесно.
    Но если используется путь, прописанный в SEO URL, вида: .../statji-pro-sumki-i-modu то ничего не работает, макет старый.
    Не подскажете, куда копать и в чем может быть причина?
    Заранее благодарю.
     
  20. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    А каким образом прописан url используя модуль?