EC-CUBE 2.x

商品名などで長くなったテキストを省略する方法

by TheVOS posted Apr 10, 2019
?

ショートカット

Prev前へ 書き込み

Next次へ 書き込み

大きく 小さく 上へ 下へ コメントへ 印刷 添付
?

ショートカット

Prev前へ 書き込み

Next次へ 書き込み

大きく 小さく 上へ 下へ コメントへ 印刷 添付
Extra Form
原文出所 https://www.nxworld.net/cms/ec-omitting-text.html
EC-CUBE 2.X:商品名などで長くなったテキストを省略する方法

引き続きEC-CUBEの備忘録です。
商品のタイトルや紹介文が指定した文字数以上になったときに「...」などを表示して、見栄えを揃える方法です。
jQueryを使うとかCSSのtext-overflowなんかでも同じ事はできますが、Smartyを使って実装するものになります。

※EC-CUBEのバージョンはVersion 2.12.3になります。

一部の商品の文字が長くて、バランスが悪くなる...

画像はデフォルトのテンプレートで登録されているサンプル商品の「アイスクリーム」のタイトルと説明文を長くしたものです。
見栄えを気にしないのであればこのままでも良いですが、他の商品とのバランスも考えてタイトル、商品説明文をそれぞれ2行で収まるぐらいの文字数になるよう設定し、更に省略された部分は「…」を表示させるようにします。

今回サンプルとして変更するこの部分は「おすすめ商品」というブロックで表示されているので、管理画面の「デザイン管理 → PC → ブロック設定 → おすすめ商品」からテンプレートを変更します。
FTPなどの場合は/data/Smarty/templates/default/frontparts/bloc/内のrecommend.tplが該当ファイルになります。

recommend.tpl

<div class="productContents">
  <h3>
    <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->"><!--{$arrProduct.name|h}--></a>
  </h3>
  <p class="sale_price">
    <!--{$smarty.const.SALE_PRICE_TITLE}-->(税込): <span class="price"><!--{$arrProduct.price02_min_inctax|number_format}--> 円</span>
  </p>
  <p class="mini comment"><!--{$arrProduct.comment|h|nl2br}--></p>
</div>

上記はコードの一部を抜き出したもので、h3がタイトルを出力している部分、p class="mini comment"が紹介文を出力している部分になります。
これをそれぞれ下記のように変更します。

recommend.tpl

<div class="productContents">
  <h3>
    <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->"><!--{$arrProduct.name|mb_substr:0:20|h}--><!--{if $arrProduct.name|mb_strlen > 20}-->...<!--{/if}--></a>
  </h3>
  <p class="sale_price">
    <!--{$smarty.const.SALE_PRICE_TITLE}-->(税込): <span class="price"><!--{$arrProduct.price02_min_inctax|number_format}--> 円</span>
  </p>
  <p class="mini comment"><!--{$arrProduct.comment|mb_substr:0:30|h|nl2br}--><!--{if $arrProduct.comment|mb_strlen > 30}-->...<!--{/if}--></p>
</div>

上記コードに変更(ハイライト部分が変更箇所)することで、タイトルは最大文字数が20文字でそれ以上は「…」を表示、商品説明は最大文字数が30文字でそれ以上は「…」が表示されるようになり、見栄えを確認すると以下のようになります。

長すぎるテキストを省略して、「...」を表示

文字数を変更する場合はそれぞれ数値を任意のものに変更し、省略時に表示したいテキストもifの部分で変更ができます。
今回はトップページに表示されている「おすすめ商品」をサンプルにしましたが、Smartyであれば商品一覧などの他のテンプレートでも実装できます。

Facebook [ja]コメント 


  1. EC-CUBE 4를 설치했을 때 설정 한 데이터베이스 암호는 어디에 저장되는 것입니까?

    EC-CUBE 4를 설치했을 때 설정 한 데이터베이스 암호는 어디에 저장되는 것입니까?

    설치 한 디렉토리에 .env라는 파일이 있습니다. 거기에 DATABASE_URL라는 항목이 있습니다. 「 DATABASE_URL = mysql://사용자 이름:암호@호스트 이름/데이터베이스 이름 」 형식으로 저장되어 있습니다.
    Date2019.11.14 CategoryEC-CUBE 4.x Views578
    Read More
  2. EC-CUBE에서 모든 페이지에서 로그인 체크하기

    EC-CUBE에서 모든 페이지에서 로그인 체크하기

    EC-CUBE는 Ver 2.12.6 환경입니다. 지정 방법 EC-CUBE는 로그인 판정 결과를 tpl_login라는 변수로 설정하고 일부 페이지가 기본적으로 존재합니다. 예를 들어, 아래와 같이 소스를 grep하면 tpl_login에 값을 설정하는 부분을 찾을 수 있습니다. 1 2 3 4 5 6 ...
    Date2019.11.11 CategoryEC-CUBE 2.x Views685
    Read More
  3. EC CUBEで商品ごとに支払い方法を簡単に分ける

    EC CUBEで支払い方法を分けるのに大きなカスタマイズが必要だと思っていましたが、 以下の設定で簡単に振り分けが出来ましたのでご紹介します。 まずEC CUBE管理画面にログインし、システムデータ>マスターデータに進みます。 マスターデータから「mtb_produc...
    Date2019.10.28 CategoryEC-CUBE 2.x Views867
    Read More
  4. EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法

    EC-CUBE:SC_FormParamクラスによるパラメーターチェック方法

    今お仕事で関わっているEC-CUBEですが、ネット上にはまだまだ情報が少ないです。 例えばプラグイン作成でオリジナルフォームを作っても、SC_FormParamクラスを使って、どうやってチェックしたらいいのか調べてもなかなか出て来ません。 そこで私が独自で調べた...
    Date2019.10.03 CategoryEC-CUBE 2.x Views287
    Read More
  5. デフォルトのtitleを任意のものに変更する方法

    EC-CUBE 3.Xでデフォルトでtitle部分に表示されるものを任意で削除・変更したり、あらかじめ用意されているページのページ名(テンプレート名)を任意のものに変更する方法です。 ※紹介している内容はEC-CUBEのVersion 3.0.10で動作確認したもので、デフォルト...
    Date2019.04.10 CategoryEC-CUBE 3.x Views410
    Read More
  6. titleの並びや区切り記号を変更する方法

    EC-CUBE 3.Xは、デフォルトのテンプレートだとtitle表示が「ショップ名 / ページ名」という形になっていますが、それを任意の並びにしたり区切り記号を変更したりする方法です。 ※紹介している内容はEC-CUBEのVersion 3.0.10で動作確認したもので、デフォルト...
    Date2019.04.10 CategoryEC-CUBE 3.x Views352
    Read More
  7. 商品数や階層に関係なく全カテゴリーを表示させる方法

    EC-CUBEの備忘録。 デフォルトのテンプレートだとサイドに表示されている商品カテゴリーですが、商品登録がない場合はカテゴリー名が表示されず、商品が登録されていたとしても親カテゴリーのページでなければ子カテゴリー名は表示されないようになっています...
    Date2019.04.10 CategoryEC-CUBE 2.x Views609
    Read More
  8. 商品名などで長くなったテキストを省略する方法

    引き続きEC-CUBEの備忘録です。 商品のタイトルや紹介文が指定した文字数以上になったときに「...」などを表示して、見栄えを揃える方法です。 jQueryを使うとかCSSのtext-overflowなんかでも同じ事はできますが、Smartyを使って実装するものになります。 ※EC-...
    Date2019.04.10 CategoryEC-CUBE 2.x Views215
    Read More
  9. サイトデザインをPCで統一させる方法

    EC-CUBEはもともとスマートフォンやモバイル用のテンプレートが用意されており、それぞれのデバイスで閲覧すると各テンプレートに振り分けらるようになっているのですが、それを無効にする方法です。 この機能自体は良いと思うのですが、例えばモバイルまで手...
    Date2019.04.10 CategoryEC-CUBE 2.x Views224
    Read More
  10. 商品ステータスを変更・追加する方法

    EC-CUBE自体をまだあまり触ったこともなければ、そんなに頻繁に使わないのもあって、しばらくすると簡単なことでもいろいろと忘れてしまうので備忘録。 デフォルトだと「NEW」とか「残りわずか」などで登録されている商品ステータスを任意のものに変更・追加す...
    Date2019.04.10 CategoryEC-CUBE 2.x Views235
    Read More
  11. 新規作成したページURLから「user_data」を消す方法とURLを出力するテンプレートタグ

    EC-CUBE 3.Xではもともと用意されているページを利用するだけでなくオリジナルで新規ページを追加することもできるのですが、その場合作成したページのURLに「user_data」が付与されています。 この「user_data」という部分をURLから消す方法とそれに関連して...
    Date2019.04.10 CategoryEC-CUBE 3.x Views1556
    Read More
  12. 페이스북위젯 삽입하기

    페이스북 위젯을 삽입하는 방법을 알아보겠습니다. 1. 페이스북 위젯을 설정하는 곳으로 갑니다. ( https://developers.facebook.com/docs/plugins/page-plugin ) 2. 원하는 위젯모양을 만듭니다. 밑의 이미지를 보시면 쉽게 이해가 되실꺼예요. 3. 설정이 끝...
    Date2018.12.15 Categoryヒント&ノウハウ共有 Views172
    Read More
  13. 구글 캘린더 합치기

    구글 캘린더로 일정관리를 하는 사람이라면 한번쯤 여러개로 나눠진 캘린더를 하나로 합쳐야 할 때가 생깁니다. 저같은 경우는 처음에 일정관리에 심취해서 캘린더 수를 아주 자세하게 여러개로 나눠 놨었죠. 그러나 최근에서야 단순함의 미학과 효율성에 눈을...
    Date2018.12.12 Categoryヒント&ノウハウ共有 Views766
    Read More
Board Pagination Prev 1 Next
/ 1