我只需要将主页中的文章标题(特色文章)放在一行中。因此,需要标题不超过 26 个字符。剩余的字符将被删除并替换为 ...
我怎样才能做到这一点?
只需子串以确保足够的长度。我不知道 Joomla,但 C# 等价物是:
private string FormatForTitle(string input)
{
if (input.Length <= 26)
{
return input;
}
// Trim
return input.Substring(0, 23) + "...";
}
移植到 PHP 应该不难。
FooThis 是通过插件实现的。以下应该做的工作 - 请。压缩这些文件并使用扩展名安装。
foo.xml:
<?xml version="1.0" encoding="utf-8"?>
<extension type="plugin" version="1.6" method="upgrade" group="content">
<name>Content - foo</name>
<creationDate>2013-05-30</creationDate>
<version>1.0</version>
<releaseDate>2013-06-07 07:08:00</releaseDate>
<releaseType>First public release!</releaseType>
<author>Michael Baas</author>
<authorEmail>mb@mbaas.de</authorEmail>
<authorUrl>mbaas.de</authorUrl>
<copyright>(c) 2013 Michael Baas</copyright>
<description>Limit length of featured article-titles - demo</description>
<files>
<filename plugin="foo">foo.php</filename>
</files>
</extension>
foo.php
<?php
class plgContentFoo extends JPlugin
{
public function onContentPrepare($context,$article,$params,$limitstart)
{
$view = JRequest::getCmd( 'view');
// echo "view=$view";
$fp = $in_array($view,array("Frontpagecategory","addmore"));
if ($fp && 26<strlen($article->title)) {
$article->title = trim(substr($article->title,0,23)) . "...";
return true;
}
}
}
?>
如果它对您不起作用,则可能是您在首页上有不同的视图。在这种情况下,请。从 "// echo "view=$view";" 中删除注释 并将以下行中的“addmore”替换为查看首页时显示的结果。(但要小心:“Frontpagearticle”意味着您正在查看首页上的单个文章,我假设在这种情况下您不会想要修剪......)
此处还描述了检测用户是否正在查看首页的“常用”方法:http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page 但该方法的问题在于,它还查看了 fp 上的一篇文章会导致这些语句返回“TRUE”,我认为这是错误的,因为用户当时没有查看首页......
然而,话虽如此,在某些情况下我的代码也可能会失败,并且需要与我链接到的文章中的方法(检查菜单)结合使用......
<script type="text/javascript">
//<![CDATA[
$(".PopularPosts .post-title a").each(function(){
if($(this).text().length>10)
{$(this).text($(this).text().substr(0, 10)+'...');}
});
//]]>
</script>