Concrete CMS(concrete5) カスタマイズ

concrete5の覚書

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でブロックを表示するときのメモ。
などなど、最新の情報はこちらにたくさんあります~

  • この記事を書いた人

ゆず

忘れないように自分の覚書と、誰かも困っているかもしれないので参考になればいいなくらいの軽い備忘録です。
一杯おごる

-Concrete CMS(concrete5), カスタマイズ
-