【问题标题】:using php tags inside opencart html module在 opencart html 模块中使用 php 标签
【发布时间】:2020-07-15 11:31:27
【问题描述】:

我需要在 opencart 上的 html 模块中调用一些 php 变量,但是当我使用 <?php ?> 时,我的页面呈现为 <!--?php ?-->

有没有办法使用 opencart 2.x 的默认 HTML 模块来做到这一点

【问题讨论】:

    标签: php module opencart opencart2.x opencart-module


    【解决方案1】:

    更新

    <!--?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 渲染。

    catalog/view/theme/default(或 YOUR_THEME)/template/extentsion/module/html.tpl

    在末尾添加

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

    【讨论】:

    • 我使用的是默认模块(模块/html),控制器是php,我放置他的页面也是php,这还不足以让他假设php标签吗?
    • 那些 php &lt;?php ?&gt;。您要在哪个字段中插入它?
    • 我明白了。 CKeditor 发表此评论,刚刚经过测试。有一种方法可以在标准 HTML 模块中再添加一个字段,但不需要 CKeditor。你同意吗?如果你愿意,我可以描述这个过程
    • 我想我会改用 javascript,它只是我需要的一个 var,不需要为此做太多开发,无论如何,谢谢
    • 用 PHP 支持添加自定义字段的过程更新了答案,请参阅
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多