繁体   English   中英

drupal 7从rss视图字段中删除样式标签

[英]drupal 7 remove style tag form rss view field

我有两个视图,基本上它们在做同一件事(列出节点的内容)。但是一个视图是在页面上显示内容,另一个视图是在rss文件中导出相同的内容。 问题是一个名为“ description”的字段是文本,用户可以放置一些样式,因此它可能包含css标记“”。 尽管rss视图将在描述字段内容中导出“ ....”标记,但在第一个视图上显示样式绝对好。 并且应该从rss文件中删除此样式标签。 我试图使用管理界面来剥离html标签,并且它不起作用,我已经将描述字段模板作为主题,并使用reg_replace删除了样式标签,但它也无法正常工作,因此我尝试遍历内容并删除样式标签。 但是Drupal输出错误“限制执行”,因为该字段包含太多内容(我可以增加本地执行时间,并且可以正常工作,但不建议在生产环境中使用)。 由于字段内容可以包含一个长文本项,是否有另一种方法可以从rss视图中删除样式标签?

// views-view-field--VIEWNAME-feed--views-data-export-1--field-th-paragraphs.tpl.php

<?php
// get position of styling tag
$pos = strpos($output, 'text/css');
$endpos = strpos($output, '</style>');
// iterate at least one time to remove css
do
{
// check if description has css tag
if($pos > 0)
{
    // the closing tag of the css maybe cut off
    if($endpos > 0)
        $length = $endpos - $pos;
    else
        $length = $endpos - strlen($newoutput);
    // repeat process until removing all css tags
    $newoutput = substr_replace($newoutput, '', ($pos - 13), ($length 
    + 20));
    $pos = strpos($newoutput, 'text/css');
    $endpos = strpos($newoutput, '</style>');
}
else{
    print $output;
}
} 
while( $pos > 0);
print($output);
?>

打开视图,转到字段设置,在“重写结果”下,您可以选择:剥离HTML标签

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM