我试图限制标题中出现的字符数。
不确定我在这里做错了什么(我是新手!),但标题显示全长,并且'...'没有出现。
非常感谢任何帮助!
<? if ($params->get('itemid')) $itemid = '&Itemid='.$params->get('itemid'); else $itemid = ''; ?>
<? $title = $event->title ?>
<? $title = substr($title, 0, 20); ?>
<? if (strlen($title) == 20) $title .= '...' ; ?>
<? if (KRequest::get('get.view', 'string') == 'events' || isset($module)) : ?>
<h1 class="title" itemprop="name">
<a href="<?=@route('option=joomla_component&view=event&id='.$event->id.$itemid)?>" itemprop="url"><?=$event->title?></a>
</h1>
<? endif ?>
答案 0 :(得分:2)
你不应该在输出中使用$ title而不是$ event-&gt; title?
答案 1 :(得分:1)
见2条评论。它应该使它工作。
<?
if ( $params->get('itemid') ) {
$itemid = '&Itemid='. $params->get('itemid');
else
$itemid = '';
$title = $event->title;
if ( strlen( $title ) > 20 ) $title = substr( $title, 0, 17).'...'; // Need to add a substr
if ( KRequest::get('get.view', 'string') == 'events' || isset( $module ) ) : ?>
<h1 class="title" itemprop="name">
<a href="<?=@route('option=joomla_component&view=event&id='.$event->id.$itemid)?>"
itemprop="url">
<?= $title; // note the change here ?>
</a>
</h1>
<? endif ?>
答案 2 :(得分:1)
我不确定这是否会回答你的问题,但也许你应该试试这段代码:
<?php
if ( $params->get( 'itemid' ) ) {
$itemid = '&Itemid='.$params->get('itemid');
} else {
$itemid = '';
}
$title = $event->title;
if ( strlen( $title ) >= 20 ) {
$title = substr( $title, 0, 20 );
$title .= '...';
}
if ( KRequest::get( 'get.view', 'string' ) == 'events' || isset( $module ) ) :
?>
<h1 class="title" itemprop="name">
<a href="<?= @route( 'option=joomla_component&view=event&id=' . $event->id . $itemid ) ?>" itemprop="url"><?= $title ?></a>
</h1>
<?php
endif;
?>
主要问题是您正在转换$ title变量并显示$ event-&gt; title变量。此外,你正在寻找一个EXACT长度为20的字符串来添加“...”,但是你应该将它添加到任何包含20个或更多字符的字符串中。
我希望它有所帮助!