php - 在opencart html模块中使用php标签
问题描述
我需要在 opencart 上的 html 模块中调用一些 php 变量,但是当我使用<?php ?>
我的页面时呈现为<!--?php ?-->
.
有没有办法使用 opencart 2.x 的默认 HTML 模块来做到这一点
解决方案
更新
<!--?php ?-->
此评论由 CKEDITOR 引起。但即使没有编辑器,PHP 也不会在客户端的标准 OpenCart 中运行。这是一个如何在 HTML 模块中处理自定义 PHP 的方法。
在具有 PHP 支持的 OpenCart HTML 模块中添加额外字段。
admin/view/template/extension/module/html.tpl,找到
<div class="form-group">
<label class="col-sm-2 control-label" for="input-description<?php echo $language['language_id']; ?>"><?php echo $entry_description; ?></label>
<div class="col-sm-10">
<textarea name="module_description[<?php echo $language['language_id']; ?>][description]" placeholder="<?php echo $entry_description; ?>" id="input-description<?php echo $language['language_id']; ?>" data-lang="<?php echo $lang; ?>" class="form-control summernote"><?php echo isset($module_description[$language['language_id']]['description']) ? $module_description[$language['language_id']]['description'] : ''; ?></textarea>
</div>
</div>
之后添加
<div class="form-group">
<label class="col-sm-2 control-label" for="input-description2<?php echo $language['language_id']; ?>"><?php echo $entry_description; ?> 2</label>
<div class="col-sm-10">
<textarea name="module_description[<?php echo $language['language_id']; ?>][description2]" placeholder="<?php echo $entry_description; ?> 2" id="input-description2<?php echo $language['language_id']; ?>" data-lang="<?php echo $lang; ?>" class="form-control" style="min-height: 400px;"><?php echo isset($module_description[$language['language_id']]['description2']) ? $module_description[$language['language_id']]['description2'] : ''; ?></textarea>
</div>
</div>
这将是第二个描述的字段。
目录/控制器/扩展/模块/html.php,找到
$data['html'] = html_entity_decode($setting['module_description'][$this->config->get('config_language_id')]['description'], ENT_QUOTES, 'UTF-8');
之后添加
$data['html2'] = html_entity_decode($setting['module_description'][$this->config->get('config_language_id')]['description2'], ENT_QUOTES, 'UTF-8');
if (preg_match('|<\?php.+?\?>|isu', $data['html2'])) {
ob_start();
@eval('?>' . $data['html2']);
$data['html2'] = ob_get_contents();
ob_end_clean();
}
这将添加第二个字段并使用 PHP 渲染。
目录/视图/主题/默认(或 YOUR_THEME)/模板/扩展/模块/html.tpl
在最后添加
<?php if($html2) { ?>
<?php echo $html2; ?>
<?php } ?>
推荐阅读
- python-3.x - AWS Greengrass V2 hello_world.py 中的语法错误
- css - 当我尝试在我的 Django 项目中收集静态时,我得到 Post-processing staticfiles\static\css\style.css failed
- flutter - 如何将图标对齐到容器的右上角
- javascript - 按钮单击后在下拉菜单中获取第一个选项
- android - kotlin.io.NoSuchFileException: .txt 文件退出时源文件不存在
- android - 如何将彩色图像添加到项目 android studio
- telegram-bot - JobQueue.run_repeating 在 Telegram 中运行没有命令处理程序的函数
- reactjs - Chart.js 折线图 y 轴不是从 0 开始
- python - 我应该如何使用熊猫转置日期列?
- php - Docker 容器(PHP + MongoDB 扩展 + `phpdotenv`)mongodb/mongodb 1.9.0-alpha1 需要 ext-mongodb ^1.10.0 -> 您的系统中缺少它