[Помогите] Как создать новый макет (схему) на примере руками

Тема в разделе "OpenCart", создана пользователем iv8383, 28 апр 2014.

  1. iv8383

    iv8383

    Регистрация:
    28 апр 2014
    Сообщения:
    3
    Симпатии:
    0
    Как создать новый макет на примере, что и где надо добавить и прописать. Уже битый час добавляю макет, в template создаю папку vibor и в ней vibor.tpl

    Все это прописываю в Дизайн - Схемы - Добавить - в пути пишу vibor/vibor

    В Controller /nutpro.ru/www/catalog/controller/vibor вставляю файлы php : column_left.php, content_bottom.php, content_top.php, footer.php, header.php (все как они же tpl, копируя с home)

    создаю vibor.php :
    PHP:
    <?php
    class ControllerCommonHome extends Controller {
    public function 
    index() {
    $this->document->setTitle($this->config->get('config_title'));
    $this->document->setDescription($this->config->get('config_meta_description')) ;

    $this->data['heading_title'] = $this->config->get('config_title');

    if (
    file_exists(DIR_TEMPLATE $this->config->get('config_template') . '/template/vibor/vibor.tpl')) {
    $this->template $this->config->get('config_template') . '/template/vibor/vibor.tpl';
    } else {
    $this->template 'default/template/vibor/vibor.tpl';
    }

    $this->children = array(
    'common/column_left',
    'common/column_right',
    'common/content_top',
    'common/content_bottom',
    'common/footer',
    'common/header'
    );

    $this->response->setOutput($this->render());
    }
    }
    ?>
    , открываю ссылку в итоге: http://nutpro.ru/ind...ute=vibor/vibor

    и пустота. Что еще нужно сделать.
    Помогите пожалуйста очень хочу в этом разобраться.

    Подозреваю, что нужно где-то добавить класс ControllerViborVibor extends Controller, как class ControllerCommonHome extends Controller у home

    Вопрос 2: где редактировать статьи в коде на ftp - Каталог - Статьи? Именно из-за этого и первый вопрос заинтересовал! Решил блин создать новую страницу всего навсего, которую я отдельно смогу редактировать...

    ПОМОГИТЕ кто действительно знает что делать!!!
     
    Lasted edited by : 29 апр 2014
  2. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    Ты бы описал нормально что конкретнее тебе нужно добиться, начну со второго вопроса, сами статьи по фтп не редактируются, контент статьи хранится в базе это не hostcms. Теперь немного расскажу о схемах, схемы придуманы для того, чтобы выводить модули выборочно по страницам. т.е. то что ты можешь выбрать отдельную схему для товара, вовсе не значит что ты можешь с помощью схемы создать отдельный шаблон и контроллер для этого товара. Скажем так, шаблон страницы это дом, а схема-квартира. смена квартиры не позволяет сменить дом, есть квартира по-умолчанию как у всех, но можно в ней отключить газ (модуль). Я бы мог объяснять с примерами кода, но так наверное понятнее. Я так предполагаю что ты хочешь для одной статьи создать отдельный шаблон. так вот, выбор шаблона происходит в контроллере. Можно сделать привязку по id шаблона вот тут инструкция для страниц категорий, но для инфосистем то же самое по сути http://www.opencartnews.com/tutorials/specific-template-for-category-and-product-page/
     
    NinoZombie нравится это.
  3. iv8383

    iv8383

    Регистрация:
    28 апр 2014
    Сообщения:
    3
    Симпатии:
    0
    мне нужно отдельно редактировать страницы и понять как редактировать отдельные статьи (для этого я так понимаю надо знать где находится доступ к базе о которой вы упомянули). Эта база должна же где-то висеть на самом же хостинге, не в воздухе же она висит.

    как создать свой макет и привязать его к шаблону (допустим шаблон это дом, а схема квартира, обстановка-то в квартире меняться должна).

    а там где вы скинули ссылку http://www.opencartnews.com/tutorials/specific-template-for-category-and-product-page/ мало что понятно, т.к. на англ. языке, а переводчик криво перевел. Что значит можно сделать привязку по id шаблона? для страниц information подобной этой http://nutpro.ru/index.php?route=information/information&information_id=4 ? Можете показать как это сделать на примере? Это даст возможность редактировать шаблон в коде?
    --- Добавлено, 29 апр 2014 ---
    я так понял тут готовый vQmod файл для достижения этого результата? http://www.opencartnews.com/tutorials/specific-template-for-category-and-product-page/
    Если да, то каким образом его реализовать?
     
    Последнее редактирование: 29 апр 2014
  4. cereberlum

    cereberlum

    Регистрация:
    26 май 2013
    Сообщения:
    756
    Симпатии:
    269
    База на своем сервере лежит как правило и взаимодействие с ней происходит через СУБД (систему управления базами данных) mysql, вход на него конечно же есть на хостинге, но вот по фтп доступ к базе не происходит. В целом, база представляет собой структурированные таблицы с данными. Наверное любая современная cms использует базу данных. Некоторые cms все же хранят статические документы в виде файлов, но это скорее исключение чем правило. СайпексДампер позволяет вот тоже общаться с базой, и онто пишет бекапы на фтп, но я управляюсь хорошо с mysql а вот по ссылке на сайпекс можно почитать простым языком что такое б.д.
    Идем дальше тело статьи, то что записывается в админке, лежит в базе, а вот шаблоны лежат на фтп. Мы хотим изменить обстановку в квартире, это что именно? Если речь идет о показе каких-то модулей то схемы подойдут. Для того чтобы создать новую схему достаточно придумать ей название и указать путь. Допустим у тебя есть 2 схемы (информация и имнформация_1) и две статьи статья_1 привязана к схеме "информация" а статья_2 к схеме "информация_1" таким образом можно в первой статье показать слева модуль рекомендуемых товаров, например, а во второй показать что-то другое или ничего не показать (в настройках модулей есть схемы для отображения).
    Если ты хочешь сменить шаблон для статьи т.е. то что не касается модулей а касается непосредственно верстки самой страницы то надо сделать измение в контроллере статей (каталог/контроллер/информатион/информатион) надо найти фрагмент кода отвечающий за выбор шаблона отображения:
    Код:
    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/information.tpl')) {
                    $this->template = $this->config->get('config_template') . '/template/information/information.tpl';
                } else {
                    $this->template = 'default/template/information/information.tpl';
                }
    и немного заменить его как в руководстве по ссылке
    Код:
    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/information_' . $information_id . '.tpl')) {
        $this->template = $this->config->get('config_template') . '/template/information/information_' . $information_id . '.tpl';
    } elseif (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/information.tpl')) {
        $this->template = $this->config->get('config_template') . '/template/information/information.tpl';
    } else {
        $this->template = 'default/template/information/information.tpl';
    }
    теперь ты можешь создать для своей статьи http://nutpro.ru/index.php?route=information/information&information_id=4 собственный макет, как видно из урла id твоей статьи 4, поэтому ты создаешь свой макет по адресу: /catalog/view/theme/nutpro2/template/information/information_4.tpl эта статья будет выводится в этот макет, а при его отсутствии в обычный /catalog/view/theme/nutpro2/template/information/information.tpl
    По-моему, я расписал подробнее некуда, ставь плюсик и удачи.
    И запомни, макет - не равно схема. В схеме указан путь, так вот это путь контроллера, а не макета. Если ты там указываешь непонятно какой контроллер - которого не существует, то в общем ничего и не будет, да и если существует,то тоже ничего не будет.
    Чтобы лучше понять - укажи статье схему категории, хоум или продукта, и посмотри что будет
     
    Последнее редактирование: 29 апр 2014
    iv8383 нравится это.
  5. iv8383

    iv8383

    Регистрация:
    28 апр 2014
    Сообщения:
    3
    Симпатии:
    0
    Спасибо! Кажется я всё понял!
     
  6. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    284
    Симпатии:
    309
    Вот еще в помощь:
     
    HPlus нравится это.
  7. vlavlat

    vlavlat

    Регистрация:
    7 ноя 2012
    Сообщения:
    72
    Симпатии:
    8
    А есть ли решение в виде модуля чтобы из админки можно было назначать макет для товара/категории/... не ковыряя каждый раз контроллер ручками
    клиент создание загадочное, сегодня хочу это категорию с таким выводом а завтра з другим, ну так чисто посмотреть или в голову стукнет
    скажем так я создал несколько заготовок и пусть играется из админки....
     
  8. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    284
    Симпатии:
    309
    ( Макеты для категорий и товаров можно выбирать на вкладке "Дизайн".
     
    HPlus нравится это.
  9. vlavlat

    vlavlat

    Регистрация:
    7 ноя 2012
    Сообщения:
    72
    Симпатии:
    8
    я за последовательность действий...
    1. я создаю свой myspeccategory.tpl который отображает категорию, так как мне нужно (к примеру в обычных категориях выводится доп.описания к товару а в этом случае выводится характеристики списком ну и т.д.)
    2. обычно я в контроллере по id нужные мне категории отлавливаю, создаю список и in_array проверяю
    3. повторюсь, где и как нужно допилить чтобы управлять этим процессом из админки ????

    заранее спасибо
     
  10. halfhope

    halfhope

    Регистрация:
    31 дек 2012
    Сообщения:
    284
    Симпатии:
    309
    Вам нужно создать копию контроллера категории и шаблона(в данном случае шаблон уже создан).
    1. Заходите в "catalog/controller/product" копируйте файл "category.php".
    2. У нового файла меняете название на "myspeccategory.php".
    3. Открываете этот файл, переименовываете название класса на "ControllerProductMySpecCategory". Не закрывайте файл.
    4. Ищите в тексте и заменяете все "category.tpl" на "myspeccategory.tpl"
    5. Далее необходимо объявить новую схему в OpenCart. Это описано в моем блоге, смотрите Шаг3.
    После этого на вкладке "Дизайн" будет доступен выбор альтернативной схемы для категории. По аналогии можно сделать и с товарами.
     
    Zulus, HPlus и seregha нравится это.