【PluXmlカスタム】投稿画像がない場合はNo Imageを表示する

投稿者:footfoot 投稿日: コメント:コメントなし

PluXmlは投稿記事の画像がない場合にNo Image画像を表示するplxShow(表示の関数)がなかったので、PHPを編集して実装しました。やったことを書いときます。

※ カスタムしたバーションはPluXml 5.5です。

1. class.plx.show.phpに関数を追加

plxShow(何かを表示する関数)はcore/lib/class.plx.show.phpに書かれてるので、このファイルに関数を追加しました。

artThumbnail(525行目)が投稿記事の画像を表示する関数なので、それをコピーしてelseの中をNO IMAGE画像のHTMLに変えたのが下のソースコード。

関数名は"artThumbNoimg"にしました。

	/**
	 * if Article Thumbnail else "NO IMAGE"
	 *
	 * @param	format	format d'affichage (variables: #img_url, #img_alt, #img_title)
	 * @scope	home,categorie,article,tags,archives
	 **/
	public function artThumbNoimg($format='<img class="art_thumbnail" src="#img_url" alt="#img_alt" title="#img_title" />', $echo=true) {

		$imgUrl = $this->plxMotor->plxRecord_arts->f('thumbnail');
		if($imgUrl) {
			$row = str_replace('#img_url', $this->plxMotor->urlRewrite($imgUrl), $format);
			$row = str_replace('#img_title', plxUtils::strCheck($this->plxMotor->plxRecord_arts->f('thumbnail_title')), $row);
			$row = str_replace('#img_alt', $this->plxMotor->plxRecord_arts->f('thumbnail_alt'), $row);
			if($echo)
				echo $row;
			else
				return $row;
		} else {
			echo '<img class="art_thumbnail" src="./data/medias/no-image.png" alt="NO IMAGE" />';
		}

	}

2. テーマのPHPに追加した関数を記述

追加した関数が使えるのはhome,categorie,article,tags,archivesです。このブログではarticle(個別記事)以外のリスト表示してるページ全部で使ってます。

<?php $plxShow->artThumbNoimg(); ?>

3. no-image画像をアップロード

no-image画像のURLは./data/medias/no-image.pngにしてるので、管理画面のメディアでno-image.pngをアップロードすればいいです。classはart_thumbnailにしてサムネイルと同じCSSが適用されるようにしてます。

画像はGIMPで適当に作りました。

NO IMAGE画像

で完了。この記事も画像がないのでこの個別ページ以外ではNO IMAGEが表示されてると思います。

カテゴリ : PluXml

コメントを書く

5番目のアルファベットを入力してください yessbi?