2012-02-19 16 views
0

タイトルに表示される文字数を制限しようとしています。strlenを使用した文字の制限

ここで間違っていることはわかりませんが(私は初心者です)、タイトルは全長で表示され、 '...'は表示されません。

ご迷惑をおかけして申し訳ありません。

<? 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="<[email protected]('option=joomla_component&view=event&id='.$event->id.$itemid)?>" itemprop="url"><?=$event->title?></a> 
    </h1> 
<? endif ?> 
+7

何が問題ですか?なぜ新しいユーザーが何を問題にするのか – dynamic

+2

」タグのすべての行*をラップする必要はありません。コードを完全に読むことができなくなります。 – JJJ

+0

どのようなエラーが表示されますか?あなたが編集したコードは正しいと思われます。 –

答えて

2

出力で$ title-> titleではなく、$ title-> titleを使用してください。

+0

つまり、読み込んだ行に誤った変数を使用しているだけです... itemprop = "url">タイトル... – fred2

+0

はいあなたは正しいですか....私は馬鹿です。$タイトル –

+0

私はばかです。ありがとう! – Sarah

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="<[email protected]('option=joomla_component&view=event&id='.$event->id.$itemid)?>" 
       itemprop="url"> 
       <?= $title; // note the change here ?> 
      </a> 
     </h1> 
    <? endif ?> 
+0

これが受け入れられた答えである理由がわかりません。あなたがコードを見れば、...決して追加されることはありませんが、すべてのタイトルは20文字に切り詰められます。 '$ title = substr($ title、0、20);'行を削除するか、 'if(strlen($ title)> 20)'は絶対に真ではありません。 –

+0

私はもともとsubstrがそこにあったとは思わなかった。私はそれを追加し、彼女は上の行にそれを持っていたことを完全に逃した。それを私が直した。 – phpmeh

+0

おそらく 'substr($ title、0、17)'を 'substr($ title、0、20)'に変更するべきです。 –

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

主な問題は、あなたが$タイトルの変数を変換して表示しているということです$イベント - >タイトル変数。さらに、 "..."を追加するために20のEXACT長の文字列を探していますが、それを20文字以上の文字列に追加する必要があります。

私はそれが助けて欲しい!

関連する問題