concrete5の覚書

      2016/09/29

concrete5の変数?コード?どうやらスニペットというらしいぞ?がなかなか見当たらないので個人的なメモ。
随時増やしたりする予定

5.7関連いろいろ覚書はこちら

共通

concrete5を設置したURL(ホーム?)を取得

<?php echo DIR_REL?>

サイト名を取得

<?php echo SITE?>

meta Description(説明)部分を表示

<?php echo $c->getCollectionDescription(); ?>

現在のページ名を取得(ページ名がホームなら「ホーム」と表示される)

<?php echo $c->getCollectionName(); ?>

現在のページ名を取得(ページ名がホームなら「ホーム」と表示される)※htmlentitle エンコード

<?php echo h($c->getCollectionName()); ?>

現在のページIDを取得

<?php echo $c->getCollectionID(); ?>

テーマ関連

テーマファイルの先頭に必ず入れる

<?php defined('C5_EXECUTE') or die(_("Access Denied.")); ?>

サイト共通のエリア

		<?php
			$a = new GlobalArea('エリア名');
			$a->display();
		?>

サイト部分的なエリア

		<?php
			$a = new Area('エリア名');
			$a->display();
		?>

テーマフォルダ名取得

<?php echo $this->getThemePath(); ?>

ページタイプのハンドルを取得

<?php echo $c->getCollectionTypeHandle(); ?>

ユーザー名取得

<?php echo $userName; ?>

属性取得

<?php echo $c->getAttribute('属性ハンドル名'); ?>

●htmlとの合わせ技の場合はこちら($aaaの箇所はお好きな感じで)

<?php
	$aaa = $c->getAttribute('属性ハンドル名');
	if (!empty($aaa)) {
		echo '<span>' .$aaa. '</span>';
	}
?>

●改行を反映させる場合はこちら

<?php echo nl2br($c->getAttribute('属性ハンドル名')); ?>

●改行を反映させる場合はこちら ※htmlentitle エンコード

<?php echo nl2br(h($c->getAttribute('属性ハンドル名'))); ?>

●属性で指定した画像を表示する

<img src="<?php echo ($c->getAttribute('属性ハンドル名')->getVersion()->getRelativePath());?>" alt="" />

●もし属性ハンドル名の内容があれば表示

<?php if ( $c->getAttribute('属性ハンドル名') ) : ?>
<?php echo ($c->getAttribute('属性ハンドル名')->getVersion()->getRelativePath());?>
<?php endif; ?>

●属性で日付を選択したとき日時を表示

<?php $date = date('Y年m月d日H時i分', strtotime($c->getAttribute('属性ハンドル名')));
 echo $date ;
 ?>

ユーザー属性取得

<?php
$c = Page::getCurrentPage();
$vo = $c->getVersionObject();
if (is_object($vo)) {
$uID = $vo->getVersionAuthorUserID();
$ui = UserInfo::getByID($uID);
$a = $ui->getAttribute('ユーザー属性ハンドル名');
echo $a;
}
?>

Groupオブジェクトの取得(参考:グループいろいろ(5.6))

$group = Group::getByID($groupID)

●グループ内のメンバーを表示

$members = $group->getGroupMembers(グループ名)

画像ブロックの情報を取得する

画像ブロックのカスタムテンプレート用

$im = Loader::helper('image');
$f = File::getByID($fID); 
$fv = $f->getApprovedVersion();
$path = $fv->getURL(); 
$linkURL = $controller->getLinkURL();
$title = $fv->getTitle();
$width= $maxWidth;
$height = $maxHeight;

画像ブロックの情報を取得してページリストで表示する

ページリストブロックに画像ブロックの画像をいれたかったので、まず該当ブロックがはいっているエリア情報を取得(Main)、それからブロックハンドル(image)を引っぱってくるメモ。

$blocks = $page->getBlocks('Main');
foreach($blocks as $b){
	if($b->btHandle == 'image'){
	$b->display();
	}
}

※検索結果ブロックでページ属性を表示させる場合は

$page = Page::getByID($r->getID());

が必要(検索結果ブロックでページ属性を表示させたいより)

参考

これだけ知っていればconcrete5テーマが作れる!PHPコード15
メモ:concrete5 現在のページや親ページの情報、属性
【完全保存版】 concrete5 テーマスニペット集
concrete5の各属性タイプの情報を表示するコード集
知っておくと便利なconcrete5デザインカスタマイズ小ネタ集
C5 Cheat Sheet
concrete5でブロックを表示するときのメモ。
などなど、最新の情報はこちらにたくさんあります~

 - concrete5, カスタマイズ