Вставка php в статью

Тема в разделе "Общие вопросы", создана пользователем Эдди, 17 янв 2016.

  1. Эдди

    Эдди Активный пользователь

    Сообщения:
    290
    Симпатии:
    3
    Добрый день!
    Искал по форуму. Есть похожие темы, но своей не нашел.
    На странице Доставки хочу реализовать через API интеграцию с логистической компанией (калькулятор стоимости доставки). А там нужен php-код. Если вставлять напрямую на страницу, он комментируется и, ессно, не работает.
    Делать ссылку на другую страницу - не айс для пользователей.

    OpenCart "чистый". Версия 2. Никакие модули не добавлял. Если буду править, буду править код.

    ПомоЖите, пожалуйста.
     
  2. Metallikus

    Metallikus Новичок

    Сообщения:
    16
    Симпатии:
    5
    1) Нужно скопировать /catalog/view/theme/default/template/information/information.tpl в /catalog/view/theme/default/template/information/shipping.tpl
    2) Вставить в него нужный код в нужном месте.
    3) В файле /catalog/controller/information/information.php в 48 строке заменить кусок кода:
    Было
    Код:
                if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/error/not_found.tpl')) {
                    $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/error/not_found.tpl', $data));
                } else {
                    $this->response->setOutput($this->load->view('default/template/error/not_found.tpl', $data));
                }
    
    Стало
    Код:
                $template = 'information.tpl';
                if ($information_id == 71) {    $template = 'shipping.tpl';    }
        
                if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/'.$template)) {
                    $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/information/'.$template, $data));
                } else {
                    $this->response->setOutput($this->load->view('default/template/information/'.$template, $data));
                }
    
    Число 71 в строке if ($information_id == 71) { $template = 'shipping.tpl'; } заменить на ID статьи "Доставка"
     
    Ален нравится это.
  3. Эдди

    Эдди Активный пользователь

    Сообщения:
    290
    Симпатии:
    3
    Спасибо. Черт. Неужели без этого никак?
    Так не хочется исходные файлы трогать.
    Вот, думаю, новая версия выйдет.
    И мне ковырять все по новой?
    Но других ответов, как править исходник, похоже, не существует.
     
  4. Эдди

    Эдди Активный пользователь

    Сообщения:
    290
    Симпатии:
    3
    Metallikus Если сделаю, как ты пишешь, то смогу любой свой php-код вставлять?
    Надеюсь, ограничений нет.
    НЕНАВИЖУ классы... :(
     
  5. Metallikus

    Metallikus Новичок

    Сообщения:
    16
    Симпатии:
    5
    Любой код из /catalog/view/theme/default/template/information/shipping.tpl будет работать в статье.
    >>НЕНАВИЖУ классы...
    [искромётный юмор]Школа достала?[/искромётный юмор]
     
    Эдди нравится это.
  6. Ален

    Ален Эксперт

    Сообщения:
    2.055
    Симпатии:
    634
  7. Эдди

    Эдди Активный пользователь

    Сообщения:
    290
    Симпатии:
    3
  8. Night_Pilgrim

    Night_Pilgrim Новичок

    Сообщения:
    11
    Симпатии:
    0
    А есть какое-нибудь решение, позволяющее в нескольких статьях прописывать php-код?
     
  9. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.565
    Симпатии:
    428
    Тот случай когда ты не знаешь PHP и тупа копи пейст как в примере :D
     
  10. Night_Pilgrim

    Night_Pilgrim Новичок

    Сообщения:
    11
    Симпатии:
    0
    юмор оценил конечно, но скажем, у меня есть блок который должен отображаться в одном ряду статей, а есть другой блок, который касается другого ряда и видимо да, действительно придётся копипэйстом, как в примере
     
  11. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.565
    Симпатии:
    428
    1. Делать это статикой.
    2. В HTML редактор PHP не зальешь.

    Один из вариантов.

    Создать в контроллере information метод: ajax() или что то в этом роде, дать ему TPL файл, оформить как полагается и подгрузить его в нужное место. Подгрузить с помощью Fetch или Ajax, как раз таки javascript можно запихнуть в HTML редактор.
     
    Последнее редактирование: 25 июл 2017
  12. Эдди

    Эдди Активный пользователь

    Сообщения:
    290
    Симпатии:
    3
    Это да.

    3. Сделать модуль и писать php код скока хош.
     
  13. Night_Pilgrim

    Night_Pilgrim Новичок

    Сообщения:
    11
    Симпатии:
    0
    у меня другой доп-модуль за статьи отвечающий, поэтому редактировать пришлось другой файл (но с той же сутью), есть "общее меню", а есть два раздела статей у которых есть "своё меню" причём у каждого раздел отдельно от другого и чтобы всякий раз не редактировать каждую статью, после добавления новой мне нужно было как-то интегрировать через php

    банального include menu.php с содержащихся в нём $_SERVER['REQUEST_URI'] мне оказалось достаточно для решения моих задач.

    З.ы. меню нужно было внутри самой статьи, так что модуль "не подойдёт".
     
  14. vikaharkov

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

    Сообщения:
    478
    Симпатии:
    61
    Извините, не нашла в поиске ответа на свой немного похожий вопрос, и решила задать его тут (близкая тема)
    (и поиск этого форума через Яндекс не работает у меня - я с Украины, а Яндекс тут заблокирован, может поэтому)

    Как в Статью вставить функционал сообщений-отзывов (ну, как под картинкой с товаром сообщения)

    Для чего:
    - у меня Доставка расписана на странице в Статьях
    - возможно, клиент чем-то недоволен, но при этом готов подсказать, но писать через почту не станет
    - а если это легко сделать под самим описанием условий доставки - то кто-то напишет и будет мне всем польза
     
  15. mars1an

    mars1an Специалист

    Сообщения:
    621
    Симпатии:
    499
  16. vikaharkov

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

    Сообщения:
    478
    Симпатии:
    61
    Марс, благодарю, прочитала. Но там же недоделано всё. Я вот думала, что может быть можно просто ручками кусок какого кода перенести куда, шоб оно работало также, как на страницах с товаром.

    Потыкала, попробовала менять чего-то в review.tpl, - не-а, ничего не получилось пока
     
  17. Chukcha

    Chukcha Специалист

    Сообщения:
    2.872
    Симпатии:
    664
    Обратно пишу вам, разлюбезная Катерина Матвеевна, поскольку выдалась свободная минутка. (с)

    1. можно заюзать, так называемые шорткоды
    2. можно прикрутить какую-нибудь систему вопрос-ответ в ввиде модуля
    3. можно...

    Простите великодушно, небольшая заминка. Докончу в следующий раз. (с)