Blog

concrete5の各属性タイプの情報を表示するコード集

Posted by admin at 18:14 日時 2014/07/01

<?php foreach ($pages as $page): ?>  <?php  /* この記事のサンプルコードはページリストブロックの     foreach 文の間に記載することを想定しています */  ?>  <?php endforeach; ?>

ページリストブロックではなく、テーマなどで現在のページの情報を表示したい場合は、先に次のコードを記載しておくことで同じように書けます。

<?php $page = Page::getCurrentPage(); ?>

<?php  /*   * テキストタイプ属性   */  $text = $page->getAttribute('text');  // getAttributeの引数には、属性のハンドルを指定します。    // そのまま出力可能  echo h($text);    /*   * テキストエリアタイプ属性   */  $textarea = $page->getAttribute('textarea');    // そのまま出力可能  echo h($textarea);    // 改行をbrタグに変換  echo nl2br(h($textarea));    /*   * チェックボックスタイプ属性   */  $checkbox = $page->getAttribute('checkbox');    // そのまま出力可能  echo h($checkbox); // 1 or 0    if ($checkbox) {  	echo 'チェックされている時';  } else {  	echo 'チェックされていない時';  }    /*   * 日付/時刻タイプ属性   */  $date_time = $page->getAttribute('date_time');    // そのまま出力可能  echo h($date_time); // 2014-07-01 17:30:00    // 書式を指定  $dh = Loader::helper('date');  echo $dh->date('Y年n月j日', strtotime($date_time));    /*   * 画像/ファイルタイプ属性   * 画像をimgタグで表示   */  $image = $page->getAttribute('image');    // 画像はechoが使えません  // echo $image;    // 画像ヘルパーの読み込み  $ih = Loader::helper('image');  // サムネイルの取得。引数はファイルオブジェクト、横幅、高さ、切り抜くかどうか  $thumbnail = $ih->getThumbnail($image, 400, 300, false);  if ($thumbnail) {  	?>  	<img src="<?php echo $thumbnail->src ?>" width="<?php echo $thumbnail->width ?>" height="<?php echo $thumbnail->height ?>" alt="" />  	<?php  } else {  	echo '画像が選択されていません。';  }    /*   * 画像/ファイルタイプ属性   * ファイルダウンロードリンクを表示   */  $file = $page->getAttribute('file');    // ファイルはechoが使えません  // echo $file;    // Fileオブジェクトかどうか検査  if ($file instanceof File) {  	  	// ファイルの閲覧権限のチェック  	$fp = new Permissions($file);  	if ($fp->canViewFile()) {  		  		// 通常ダウンロードリンク(ブラウザで表示できるファイルはブラウザで表示)  		?>  		<a href="<?php echo View::url('/download_file', $file->getFileID(), $c->getCollectionID()) ?>"><?php echo h($file->getTitle()) ?></a>  		<?php  		  		// 強制ダウンロードリンク(ブラウザで表示できるファイルでも表示しない)  		?>  		<a href="<?php echo View::url('/download_file', 'force', $file->getFileID(), $c->getCollectionID()) ?>"><?php echo h($file->getTitle()) ?></a>  		<?php  	} else {  		echo 'ファイルの閲覧権限がありません。';  	}  } else {  	echo 'ファイルが選択されていません。';  }    /*   * 数字タイプ属性   */  $number = $page->getAttribute('number');    // そのまま出力可能  echo h($number);    /*   * 評価タイプ属性   */  $rating = $page->getAttribute('rating');    // そのまま出力すると、100点満点の数字で表示される  echo h($rating);    // 星マークで表示(例:★★★☆☆)  $rh = Loader::helper('rating');  echo $rh->outputDisplay($rating);    /*   * 選択タイプ属性   */  $select = $page->getAttribute('select');    // そのまま出力も可能。  // 複数の項目が選択されている場合は、改行区切りで表示される  echo $select;    // 選択項目をいったん配列にしてから表示する例  // 選択タイプ属性のオブジェクトかどうかを検査  if ($select instanceof SelectAttributeTypeOptionList) {  	$options = array();  	$list = $select->getOptions();  	foreach ($list as $l) {  		$options[] = h($l->getSelectAttributeOptionDisplayValue());  	}  	echo implode(', ', $options); // カンマ区切りで結合  }    ?>

注意:画面に値を出力する際は基本的にセキュリティのため h() 関数を使いましょう。


Share this entry

Blog Entry Topics