首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PS 1.7产品功能中的HTML

PS 1.7产品功能中的HTML
EN

Stack Overflow用户
提问于 2018-10-11 06:59:05
回答 2查看 828关注 0票数 0

Prestashop 1.7.4.1

我只想为特性添加两个新字段,但这似乎更复杂,我已经尝试了这个Prestashop custom field,但它不适用于我的版本,即使在PS文档中进行覆盖。我的主要目标是有一个标题,图标和描述,允许HTML在产品功能中。

但是对于一个简单的任务来说,这似乎太多了,所以我想知道如何才能启用WYSIWYG文本区域,我已经设法将输入从文本类型更改为文本区域:

代码语言:javascript
复制
array(
                    'type' => 'textarea',
                    'label' => $this->trans('Value', array(), 'Admin.Global'),
                    'name' => 'value',
                    'lang' => true,
                    'size' => 255,
                    'hint' => $this->trans('Invalid characters:', array(), 'Admin.Notifications.Info').' <>;=#{}',
                    'required' => true
                ),

因此,问题是,如何在产品功能中启用HTML编辑器。

我是PrestaShop的新手,我在论坛上读过,但我找不到关于这个实现的帮助。

提前谢谢你。

2018年10月10日6:56 (格林尼治标准时间5)更新

我修复了HTML部分,现在是验证的问题,它仍然阻止所有的html标签…

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-11 08:55:38

将这个添加到您的字段数组中:,这样您就可以激活TinyMce编辑器的功能输入值,如果我没有记错的话,在这个函数上:initFormFeatureValue(),在相同的函数上查找Tools::safeOutput(Tools::getValue('back', ''));,并在);之前添加true检查是否有效。

更新

在文件夹classes中打开FeaturesValue.php,在行53中查找

代码语言:javascript
复制
'value' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'required' => true, 'size' => 255),`

将其替换为:

代码语言:javascript
复制
'value' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml', 'required' => true, 'size' => 255),

然后,在您的第三方product-details.tpl中查找:

代码语言:javascript
复制
  {block name='product_features'}
    {if $product.grouped_features}
      <section class="product-features">
        <p class="h6">{l s='Data sheet' d='Shop.Theme.Catalog'}</p>
        <dl class="data-sheet">
          {foreach from=$product.grouped_features item=feature}
            <dt class="name">{$feature.name}</dt>
            <dd class="value">{$feature.value|escape:'htmlall'|nl2br nofilter}</dd>
          {/foreach}
        </dl>
      </section>
    {/if}
  {/block}

将其替换为:

代码语言:javascript
复制
{block name='product_features'}
  {if $product.grouped_features}
     <section class="product-features">
        <p class="h6">{l s='Data sheet' d='Shop.Theme.Catalog'}</p>
        <dl class="data-sheet">
          {foreach from=$product.grouped_features item=feature}
             <dt class="name">{$feature.name}</dt>
             <dd class="value">{$feature.value nofilter}</dd>
          {/foreach}
        </dl>
     </section>
  {/if}
{/block}

在此块中,您只需将{$feature.value|escape:'htmlall'|nl2br nofilter}更改为{$feature.value nofilter},仅此而已……

我希望它能工作,请记住,当在产品编辑/新添加一个新功能时,你只能从你拥有的东西中选择,我的意思是,如果你在编辑产品时想要一个自定义值,功能自定义值的输入仍然是type text,但我希望你有一个更好的想法来改变其余的。

票数 1
EN

Stack Overflow用户

发布于 2018-10-11 08:10:52

PrestaShop在tpl文件上使用超文本标记语言转义:

代码语言:javascript
复制
<td>{$feature.name|escape:'html':'UTF-8'}</td>
<td>{$feature.value|escape:'html':'UTF-8'}</td>

您必须将其更改为显示HTML (针对您的主题):

代码语言:javascript
复制
<td>{$feature.name}</td>
<td>{$feature.value}</td>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52749893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档