a-blog cmsのファイルアイコンにFont Awesomeを使ってみる

※当ページのリンクには広告が含まれています

これは「a-blog cms Advent Calendar 2015」の11日目の記事です。

a-blog cmsでPDFファイルを掲載する際、通常は上の図の左側のように、ファイルアイコンの画像の下にキャプションが出るようになっています。

今回は、このアイコンをFont Awesomeに変更する方法をご紹介します。

include/unit.htmlをテーマフォルダに複製

system/include/unit.htmlをコピーして、テーマフォルダの中に複製します。 その複製したファイルに対して変更を行っていきます。

unit.htmlのファイルユニット部分を書き換え

ファイルユニット部分を以下のように書き換えます。

書き換え前(37行目あたり)

<!-- ファイル -->
<div class="column-file-{align}">
	<a href="%{HTTP_ROOT}{path}"><img class="columnIcon" src="%{ROOT_DIR}{icon}" alt="ファイルイメージ" width="{x}" height="{y}" /></a><!-- BEGIN caption:veil -->
	<p class="caption">{caption}</p><!-- END caption:veil -->
</div><!-- END unit#file --><!-- BEGIN unit#map -->

書き換え後

<!-- ファイル -->
<div class="column-file-{align}">
	<a href="%{HTTP_ROOT}{path}" class="fileicon fileicon--{icon}[split('/', 4)|trim4ext('.gif')]">{caption}{icon}</a>
</div><!-- END unit#file --><!-- BEGIN unit#map -->

{icon}の変数が

themes/system/images/fileicon/docx.gif

のように、ファイルアイコンのパスを出力しています。 これを、クラス名になるように校正オプションを使用して以下のように変更します。

{icon}[split('/', 4)|trim4ext('.gif')]

こうすることで「docx」等の拡張子を省いたファイル名が取得できるので、これをクラス名にできます。 出力されるHTMLは、以下のようになります。

class="fileicon fileicon--docx"

CSSの設定

各拡張子のクラスに対して、Font Awesomeが使えるようにCSS設定を行います。 事前にFont Awesomeが使用できるよう設定している前提で進めていきます。

.fileicon {
	padding-left: 10px;
	padding-right: 10px;
}

.fileicon:before {
	font-family: FontAwesome;
	display: inline-block;
	padding-right: 3px;
}

.fileicon--docx:before {
	content: "\f1c2";
}

.fileicon--xlsx:before {
	content: "\f1c3";
}

.fileicon--pptx:before {
	content: "\f1c4";
}

.fileicon--pdf:before {
	content: "\f1c1";
}

.fileicon--zip:before {
	content: "\f1c6";
}

Word、Excel、PowerPoint、PDF、ZIPファイルに対応するCSSです。

これで、ファイルユニットをアップした際にファイル種類に応じたFont Awesomeのアイコンが表示されるようになります。 今回はFont Awesomeを使用しましたが、もちろん任意の画像を使用することも可能です。

もうちょっとカスタマイズ:ボタン形式とテキスト形式の2パターンのデザインから選べるようにする

今までのカスタマイズでは、ファイルをアップするとテキスト形式で表示されていました。 実際に使用する場面になると、マニュアルダウンロードや申込書ダウンロードなど、ボタンのようなデザインにして目立たせたい場合も出てくると思います。そういった時に、テキスト形式とボタン形式の2パターンのデザインを選択できるようにします。



config.system.yaml を修正する

private/config.system.yaml に以下の設定を追加します。

# ファイル
column_file_attr  : [, '1']
column_file_attr_label  :[テキスト, ボタン]

include/unit.html を修正する

先ほど変更したunit.htmlを、以下のように書き換えます。

<!-- ファイル -->
<div class="column-file-{align}">
	<a href="%{HTTP_ROOT}{path}" class="fileicon fileicon--{icon}[split('/', 4)|trim4ext('.gif')] type{attr}">{caption}</a>
</div><!-- END unit#file --><!-- BEGIN unit#map -->

aタグクラス指定の最後に

type{attr}

を追加しました。

CSS設定

出力されるクラス名は以下のようになります。

「テキスト」を選択:type
「ボタン」を選択:type1

なので、「type1」のクラスに対して、ボタンのデザインになるようにCSSを設定します。

デザインの切替方法

テキスト形式かボタン形式かを選択するには、ファイルユニット上部の「属性」で選択することができます。



これで、必要に応じてテキスト形式とボタン形式のデザインを切り替えられるようになりました。

今回は、構成オプションやconfig.system.yamlなどを使用して、ユニット表示をカスタマイズする方法をご紹介しました。構成オプションは、a-blog cmsで出力される変数に対して様々な文字操作ができるので、使い方を覚えておくと便利です。


関連記事

この記事のハッシュタグ から関連する記事を表示しています。

a-blog cmsで、PR付きの検索結果を実装する

a-blog cmsでサイト構築時・公開時に確認しておきたいチェックリスト 2018年版

カレンダー表示の月送りをページ遷移せずに実装

a-blog cmsで、特定のファイルを会員限定で閲覧できる機能を作ってみました

a-blog cms Training Camp 2016 OKINAWA に参加しました

a-blog cms Training Camp 2015 Springに参加しました!

レスポンシブと最適化のいいとこどりができる?a-blog cmsでできる、マルチデバイス対応

Webridge Meeting SP17 で a-blog cmsのマルチデバイス対応についてお話しました

a-blog cmsでサイトを作成した際の、制作時・公開時・納品後のチェックリスト

a-blog cms 勉強会 in 高松 2012/07

ウェブ解析士マスター /上級SNSマネージャー/ a-blog cmsエバンジェリスト

香川県生まれ。1998年からウェブ制作に取り組む。制作会社にて企業・ECサイトのデザイン、ディレクション、CMS構築等を担当後、2015年7月に独立。

デジタルマーケティング・ウェブコンサルティング、UI、UX設計を主軸に戦略から考えるウェブサイト設計・構築を行う。

趣味は和太鼓演奏。香川県三豊市で活動する「和太鼓集団 響屋」メンバー。実家の桃農家も手伝う兼業農家。

最新記事

カテゴリー

アーカイブ

ハッシュタグ

【初心者向けから応用まで】
GA4を学ぶならこの本がオススメ