该article元素的规范说:
该
article元素表示页面的组件,该组件由文档、页面、应用程序或站点中的自包含组合组成,并且旨在可独立分发或可重用,例如在联合组织中。这可以是论坛帖子、杂志或报纸文章、博客条目、用户提交的评论、交互式小部件或小工具或任何其他独立的内容项。
因此,如果我正在构建一个网站,在其主页上有可点击的卡片并引导您进入文章页面,那么在语义上,如果这张卡片是 asection或article元素,会更好吗?
我有一个页面,列出新闻文章.为了减少页面的长度,我只想显示一个预告片(文章的前200个单词/ 600个字母),然后显示一个"更多..."链接,当点击时,将扩展其余部分jQuery/Javascript方式的文章.现在,我已经弄明白了,甚至在一些粘贴页面上找到了以下帮助方法,这将确保新闻文章(字符串)不会在一个单词的中间被切断:
def shorten (string, count = 30)
if string.length >= count
shortened = string[0, count]
splitted = shortened.split(/\s/)
words = splitted.length
splitted[0, words-1].join(" ") + ' ...'
else
string
end
end
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我从数据库中获取的新闻文章正文是HTML格式.所以,如果我运气不好,上面的帮助器会在html标签的中间切断我的文章字符串并在那里插入"more ..."字符串(例如在""之间),这将破坏我在页面上的html .
有什么方法可以解决这个问题,还是有插件可以用来从HTML字符串生成摘录/预告片?
我有一个Ajax处理程序脚本,我在其中加载$nodeId并在默认(完整)视图中输出结果:
$node = node_load($input);
$prerendered_node = node_view( $node, 'default' );
...
Run Code Online (Sandbox Code Playgroud)
现在我需要显示预告片(摘要或修剪).
到目前为止我试过这个,没有成功(摘要内容填写):
1.
$item = $node->body['en'][0];
$output = field_view_value('node', $node, 'body', $item, 'Teaser');
echo $output; (blank)
2. echo $node->body['eng']['0']['summary']; (blank)
Run Code Online (Sandbox Code Playgroud)
这个问题的解决方案但不起作用:
3. $output = truncate_utf8(strip_tags($node->body['eng']['0']['summary']),200,true,true);
echo $output; (blank)
Run Code Online (Sandbox Code Playgroud)
好奇的是var_dump($node->body['eng']['0'])显示和包含value(正文)summary,clean_summary和其他元素的数组,并且summary具有填充的必要值.但是在示例2中我无法直接访问它,它显示为空白.
提示,好吗?
谢谢.