concrete5の変数?コード?どうやらスニペットというらしいぞ?がなかなか見当たらないので個人的なメモ。
随時増やしたりする予定
共通
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でブロックを表示するときのメモ。
などなど、最新の情報はこちらにたくさんあります~