0

カテゴリーページの商品説明で困っているので、ヒントをいただければ幸いです。

説明のすべてのテキストが見苦しい方法でマージされたため、catalog/controller/product/category.php (および specials.php と search.php) を変更して、HTML タグを含めました。

'description' => utf8_substr(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'), 0, 100) . '..',

それ以外の

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',

最初は、すべてが私が望んでいたように見えました。しかし、あるケースでは、指定された文字制限が HTML タグ内で正確に発生し、レイアウト全体がクラッシュします。説明は「</」で終わっています

もちろん、テキストの長さを変更すると、すべて問題ありませんでしたが、顧客に文字数を数えるように頼むことはほとんどできません.

HTMLタグ内の改行を防ぐことはできますか? または、フォーマットを処理するためのより良い方法はありますか? 拡張機能の推奨事項はありますか?

前もってありがとう、ダグマー

4

1 に答える 1

0

次のメソッドを Url クラス内に配置し、次の方法で呼び出します。

$this->url->truncate($description, 150);

// truncate method
public function truncate ($string, $limit = 145, $break = ".", $pad = ".") {
    // return with no change if string is shorter than $limit
    if (strlen ($string) <= $limit) return $string;

    // is $break present between $limit and the end of the string?
    if (false !== ($breakpoint = strpos($string, $break, $limit))):
        if ($breakpoint < strlen($string) - 1):
            $string = substr($string, 0, $breakpoint) . $pad;
        endif;
    endif;

    return $string;
}

設定された制限の後、一定期間後にのみ壊れます。

かなりうまくいきます。

于 2013-08-14T14:22:13.450 に答える