我的某个网站上的管理员和编辑希望在网页上添加一些javascript嵌入,例如twitter,facebook,Instagram或其他任何内容。我认为设置extended_valid_elements以在tinyMCE的html编辑器中允许脚本标记真的很容易,但它显然不起作用。
我已将此添加到我的配置
HtmlEditorConfig::get('cms')->setOption(
'extended_valid_elements',
'script[charset|defer|language|src|type|async]'
);
我已经检查过它是否已经传递到我的dom中的ssTinyMCEconfig变量。
到目前为止一切顺利。但是当我尝试将一个简单的脚本发布到我的HTML编辑器中时,它会将其删除。有谁知道如何解决这个问题?
谢谢!
答案 0 :(得分:3)
我们可以通过简单的$db
向TextareaField
添加一个文本变量来管理自定义脚本,而不是通过TinyMCE编辑器管理自定义脚本。
以下代码适用于SilverStripe 3.4:
class Page extends SiteTree {
private static $db = array(
'CustomScript' => 'Text'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.CustomScript',
TextareaField::create('CustomScript', 'Custom Script')
->setRows(30)
->addExtraClass('code')
->setAttribute('spellcheck', 'false'));
return $fields;
}
}
这是CMS的一些自定义css,使脚本输入字段显示带有等宽字体的文本。
<强> mysite的/ CSS / cms.css 强>
.field.code textarea {
max-width: 100%;
font-family: "Courier New", Courier, monospace;
color: #000000;
background: #ffffff;
}
我们在config.yml
文件中使用以下代码在cms中启用自定义css:
<强> mysite的/ _config / config.yml 强>
LeftAndMain:
extra_requirements_css:
- 'mysite/css/cms.css'
在head标记中的Page.ss
模板中,或在body标记的底部,或者我们是否需要自定义脚本,我们将以下内容加载自定义脚本:
<% if $CustomScript %>
$CustomScript.RAW
<% end_if %>
如果我们需要网站范围的自定义脚本,我们也可以通过扩展SiteConfig
来将此字段添加到“设置”标签中:
<强> mysite的/代码/扩展/ CustomSiteConfig.php 强>
class CustomSiteConfig extends DataExtension {
private static $db = array(
'CustomScript' => 'Text'
);
public function updateCMSFields(FieldList $fields) {
$fields->addFieldToTab('Root.CustomScript',
TextareaField::create('CustomScript', 'Custom Script')
->setRows(30)
->addExtraClass('code')
->setAttribute('spellcheck', 'false'));
}
}
我们在SiteConfig
文件中启用此config.yml
扩展程序:
<强> mysite的/ _config / config.yml 强>
SiteConfig:
extensions:
- CustomSiteConfig
在head标记的Page.ss
模板中,或在body标记的底部,我们将以下内容加载到网站范围的自定义脚本中:
<% if $SiteConfig.CustomScript %>
$SiteConfig.CustomScript.RAW
<% end_if %>
答案 1 :(得分:1)
我能够通过简单地在我的标题中包含相关的脚本链接来解决Twitter嵌入的问题。这嵌入了我粘贴到TimyMCE中的twitter-tweet blockquote
代码。