Mar*_*que 7 tags drupal drupal-views content-management-system
我有一个Drupal视图,应该使用flash输出视频播放器.我正在尝试输出一个可以调用flash影片的脚本.问题是Views应用了某种过滤器来剥离我的<script>标签,即开始和结束标签.我正在寻找一个解决方案(视图中的一些设置将禁用该过滤器),但似乎无法找到答案.其他HTML标签可以工作,但似乎脚本标签被剥离,可能出于某些安全原因.
我选择了重写字段输出的选项,我正确使用了标签
视图还从我的标签中剥离样式属性.例如:
<h3 style="border-bottom: solid 1px #ffcc99;">Some text here</h3>
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
<h3>Some text here</h3>
Run Code Online (Sandbox Code Playgroud)
这有解决方案吗?谢谢.
开始编辑
我粘贴在我正在使用的代码下面.
<div class="bloco-filme">
[title]
<div class="field-imagem">
[field_imagem_fid]
<script type='text/javascript' src='sites/default/files/js/swfobject.js'></script>
<div id='mediaspace[nid]'>Se você estiver visualizando esta mensagem, significa o Flash Player não está instalado em sua máquina. Para assistir ao vídeo é preciso instalar o Flash player</div>
<script type='text/javascript'>
var so = new SWFObject('sites/default/files/plugins/jqplayer/player.swf','mpl','205','undefined','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addParam('wmode','transparent');
so.addVariable('file','[field_video_fid]');
so.addVariable('quality','false');
so.write('mediaspace[nid]');
</script>
[field_video_fid]
</div>
<div class="field-resumo">
<p>[body]</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
再次编辑
上面的代码已经发布在我的视图中.我创建了一个视图来处理这个问题.这是我观点的FIELDS区域:
字段节点:Nid节点:Título(标题,它在pt-br中)节点:链接"editar"(编辑)节点:链接"apagar"(删除)Conteúdo:Imagem缩略图图像Conteúdo:视频URL do arquivo(视频文件URL )节点:Corpo(Body)
我已禁用上面所有字段的显示,并已将所有代码打包在Body字段中.在那里,我选择了我想要重写字段输出的选项.
小智 5
kiamlaluno确定了基本问题,但要解决它,你将不得不使用一个字段模板,这将避免使用视图使用的过滤系统.第42组有一个很好的指南,可以引导您完成视图主题的基础知识,因此我将简单介绍这些细节并讨论您的具体案例.
首先,您需要确定要重写的字段:我相信您使用字段配置执行此操作,但不清楚您要重写哪个字段.我将假设它是身体领域.浏览Group 42的指南,为主题中的body字段创建一个新的模板文件.
在新模板文件中,使用以下代码:
<div class="bloco-filme">
<?php print $view->field['title']->render($row) ?>
<div class="field-imagem">
<?php print $view->field['field_imagem_fid']->render($row) ?>
<script type='text/javascript' src='sites/default/files/js/swfobject.js'></script>
<div id="mediaspace<?php print $view->field['nid']->render($row) ?>">Se você estiver visualizando esta mensagem, significa o Flash Player não está instalado em sua máquina. Para assistir ao vídeo é preciso instalar o Flash player</div>
<script type='text/javascript'>
var so = new SWFObject('sites/default/files/plugins/jqplayer/player.swf','mpl','205','undefined','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addParam('wmode','transparent');
so.addVariable('file','<?php print $view->field["field_video_fid"]->render($row) ?>');
so.addVariable('quality','false');
so.write('mediaspace<?php print $view->field["nid"]->render($row) ?>');
</script>
<?php print $view->field['field_video_fid']->render($row) ?>
</div>
<div class="field-resumo">
<p><?php print $output ?></p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
保存新的模板文件,现在正文字段将替换为正确的输出.在编辑视图时,只需确保模板中引用的所有字段都位于" 字段"列表中的正文字段之前.
你可以看到这主要是带有几个PHP位的HTML.像这样的代码:
<?php print $view->field['title']->render($row) ?>
Run Code Online (Sandbox Code Playgroud)
输出除当前字段之外的字段的内容(即,当您要引用除Body之外的字段时,使用此代码).它引用同一行并查找字段的值.
像这样的代码:
<?php print $output ?>
Run Code Online (Sandbox Code Playgroud)
输出当前字段的值,在本例中为Body.
| 归档时间: |
|
| 查看次数: |
8139 次 |
| 最近记录: |