ограничить количество символов, используя strlen - PullRequest
0 голосов
/ 19 февраля 2012

Я пытаюсь ограничить количество символов в названии.

Не уверен, что я здесь делаю не так (я новичок!), Но название отображается во всю длину, а «...» не появляется.

Любая помощь высоко ценится!

<? 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 ?>

Ответы [ 3 ]

2 голосов
/ 19 февраля 2012

Разве вы не должны использовать $ title, а не $ event-> title в вашем выводе?

1 голос
/ 20 февраля 2012

Я не уверен, что это ответит на ваш вопрос, но, возможно, вам стоит попробовать этот код:

<?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-> title. Кроме того, вы ищете строки ТОЧНОЙ длины 20, чтобы добавить «...», но вы должны добавить его к любой строке с 20 или более символами.

Надеюсь, это помогло!

1 голос
/ 19 февраля 2012

См. 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 ?>
...