Jump to content
Stepanboy777

Как можно отключить комментирование php кода в модуле HTML Содержимое

Recommended Posts

Доброго дня

 

требуется вывести php код через стандартный модуль  "HTML Содержимое"

но код автоматически комментируется и не исполняется, как можно это исправить самостоятельно?

 

Заранее благодарю

Share this post


Link to post
Share on other sites
40 минут назад, Stepanboy777 сказал:

Доброго дня

 

требуется вывести php код через стандартный модуль  "HTML Содержимое"

но код автоматически комментируется и не исполняется, как можно это исправить самостоятельно?

 

Заранее благодарю


встройте код в нужное место

Share this post


Link to post
Share on other sites

Вы имеете ввиду, если php-код ввести прямо в редакторе текста? https://ibb.co/hXR5Gyy

Код должен демонстрироваться или исполняться?

 

Если код писать прямо в редакторе текста в админке, он в таком случае является текстом. И чтобы он отработал, нужно использовать функцию eval(). И  в таком случае надо прописать превращение текста в код в файле catalog/controller/extension/module/html.php. Но этот код надо еще и найти среди текста. А это будет не очень легко и просто в случае вот такой конструкции:

<?php for ($i = 1; $i <= 5; $i++) { ?>
<?php if ($product['rating'] < $i) { ?>
<span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span>
<?php } else { ?>
<span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span>
<?php } ?>
<?php } ?>

 

Если же php-код чисто для вывода чего-либо, то тут лучше уже шорткоды какие-то написать, что ли

 

И тогда в тексте можно использовать что-то вроде [social_buttons]. Потом найти это среди текста, и заменить нужной конструкцией. Замену опять же нужно прописать в контроллере этого модуля.

Share this post


Link to post
Share on other sites

php код должен исполняться, притом, только на некоторых страницах, 

 

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

 

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

 

 

 

Share this post


Link to post
Share on other sites
18 минут назад, Stepanboy777 сказал:

php код должен исполняться, притом, только на некоторых страницах, 

 

Сделайте для каждой категории доп поле: "Отображать эту хрень?" Да | Нет

Для этого надо задеть контроллер, модель и вьюшку + новое поле в базе

 

Потом в catalog/controller/product/category.php

Где-то после

if ($category_info) {

  // добавляем вот эту строку

  $data['show_some_block'] = $category_info['show_some_block'];

 

Ну и во вьюшке catalog/view/theme/default/template/product/category.tpl (или другой шаблон)
 

if ($show_some_block) {

  // todo...

  // Выполняем этот злосчастный php-код, который нужно

}

 

Хотя, вполне может быть, что в контроллере


 

if ($category_info['show_some_block']) {

  $data['some_block'] = $this->load->controller('extension/module/some_block.php');

} else {

  $data['some_block'] = false;

}

 

+ во вьюшке уже:

<?php if ($some_block) { echo $some_block; } ?>

 

Share this post


Link to post
Share on other sites

для вывода кода php можно изменить конфиги у текстового редактора

но вашу задачу этим не решить

Share this post


Link to post
Share on other sites
1 минуту назад, alena967 сказал:

можно изменить конфиги у текстового редактора для вывода кода php 

 

Да? Даже не знал))

Но, это же надо тогда вручную вводить один и тот же код php на определенное кол-во страниц?

Share this post


Link to post
Share on other sites
1 минуту назад, alena967 сказал:

можно изменить конфиги у текстового редактора для вывода кода php

 

 

вы знаете как сделать это

5 минут назад, SergeTkach сказал:

Сделайте для каждой категории доп поле: "Отображать эту хрень?" Да | Нет

Для этого надо задеть контроллер, модель и вьюшку + новое поле в базе

 

не самый просто вариант конечно

Share this post


Link to post
Share on other sites

Представляете, что там наворотят менеджеры магазина, если дать им редактировать php-код в админке, вместо тыканья галочки?

Share this post


Link to post
Share on other sites
1 минуту назад, SergeTkach сказал:

Но, это же надо тогда вручную вводить один и тот же код php на определенное кол-во страниц?

конечно вручную

логичнее- в контролере категории поставить условие и при выполнении оного выводить желаемое

но мы с вами не знаем уровень ТС

Share this post


Link to post
Share on other sites
6 минут назад, alena967 сказал:

но мы с вами не знаем уровень ТС

Если для Топик Стартера написать модификатор для этой цели - это сложно, то самое время попробовать и понять, что это не так сложно )))

 

Share this post


Link to post
Share on other sites
5 минут назад, Stepanboy777 сказал:

 

вы знаете как сделать это 

погуглите по запросу

Вставка PHP кода через CKeditor/summernote

 

Share this post


Link to post
Share on other sites

Ну вот вставится php-код в редактор. И сохранится в базу. И что дальше?

Где здесь есть обработка php-кода, чтобы он не просто отобразился на странице, но и отработал бы?

 

<?php
class ControllerExtensionModuleHTML extends Controller {
	public function index($setting) {
		if (isset($setting['module_description'][$this->config->get('config_language_id')])) {
			$data['heading_title'] = html_entity_decode($setting['module_description'][$this->config->get('config_language_id')]['title'], ENT_QUOTES, 'UTF-8');
			$data['html'] = html_entity_decode($setting['module_description'][$this->config->get('config_language_id')]['description'], ENT_QUOTES, 'UTF-8');

			return $this->load->view('extension/module/html', $data);
		}
	}
}

 

Share this post


Link to post
Share on other sites
30 минут назад, SergeTkach сказал:

Если для Топик Стартера написать модификатор для этой цели - это сложно, то самое время попробовать и понять, что это не так сложно )))

 

 

я попробовал, согласно вашей схеме, но появились ошибки, Notice: Undefined index, Notice: Undefined variable: show_some_block

 

если не трудно, подскажите как вывести через текстовый редактор? если там как вы написали можно это сделать только настроив конфиг. у меня summernote

Edited by Stepanboy777

Share this post


Link to post
Share on other sites

я добавил только это, можно что-то еще надо?

 

 

Снимок экрана 2019-02-05 в 17.07.21.png

Share this post


Link to post
Share on other sites

 

6 минут назад, Stepanboy777 сказал:

 

я попробовал, согласно вашей схеме, но появились ошибки, Notice: Undefined index, Notice: Undefined variable: show_some_block

  

если не трудно, подскажите как вывести через текстовый редактор? если там как вы написали можно это сделать только настроив конфиг. у меня summernote

 

Это не я писал. Это @alena967 писала.

Share this post


Link to post
Share on other sites

я как на скрине сделал, это же вы уже написали?)) что не так, почему ошибка, не подскажете?

Share this post


Link to post
Share on other sites
2 минуты назад, Stepanboy777 сказал:

я добавил только это, можно что-то еще надо? 

 

 

А в базе данных в таблице oc_category Вы создали поле с аналогичным именем `show_some_block`?

 

---

И уже скажите нам, что именно должно выполняться? Можете нам хотя бы "псевдокодом" набросать?

Share this post


Link to post
Share on other sites

создал, 

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

Share this post


Link to post
Share on other sites

то есть

 

в определенной категории, назовем ее category_1

 

надо сначала вывести подкатегории картинками, потом сам товар из всех подкатегорий. 

но в других категориях должно быть по-другому

Share this post


Link to post
Share on other sites

Ок. И что, есть категории которые нужно выводить картинками, а есть, которые нужно выводить списком? На основе чего принимается решение?

 

Share this post


Link to post
Share on other sites

можно проще

 

мне важно вставить php код в нужное мне место в шаблоне категорий, не важно как, посредством модуля html или руками

но чтобы он выполнился при каком-то условии, например, названии категории или ее id или еще как-то чтобы я мог это легко прописать

 

 

Share this post


Link to post
Share on other sites
6 минут назад, Stepanboy777 сказал:

не важно как, посредством модуля html или руками

 

6 минут назад, Stepanboy777 сказал:

чтобы я мог это легко прописать

 

Тогда пропишите условие прямо в котроллере. Если условие выполняется, то

 Сценарий 1:

   Ставим метку $flag = true;

   Готовим фотки

 

Иначе

Сценарий 2:

  Ставим метку $flag = false;

 

---

А в шаблоне в месте, где выводится список категорий, проверяйте и вписываете:

 

if ($flag) {

  // Выводим в виде фоток

} else {

  // Выводим в виде исходного списка

}

Share this post


Link to post
Share on other sites

извините, я просто не программист, вас не затруднит написать пошагово, если можно? что и как и где? заранее благодарю

ну, и людям тоже пригодится я так думаю

Share this post


Link to post
Share on other sites

:o

То, к чему мы пришли - называется не "помогите мне", а "сделайте за меня". И, обычно, когда за Вас что-то делают, то получают за это деньги.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.