カスタムレイアウトプリセットをテーマに追加するについて
お聞きしたいことがあります。
・使用サーバーはmamp
・使用PC mac マーベリックス
・使用concrete5 バージョン 5.7.5.3
bootstrapのブロックをテーマ化したく、下記サイトをみているのですが教えていただけないでしょうか。
http://concrete5-japan.org/index.php?cID=12431
page_theme.phpに
public function getThemeAreaLayoutPresets(){
$presets = array(
array(
'handle' => 'title_up_down_parallax',(任意で名前つけています)
'name' => 'title up down parallax',(任意で名前つけています)
'container' => '',
'container' => '<div class="row"></div>',
'columns' => array(
’<h1 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;">ABOUT</h1>’
),
)
);
return $presets;
}
にしています。
defultには
<div class="container">
<div class="row">
<?php
$a = new Area('title up down parallax');
$a->display($c);
?>
</div>
</div>
としています。
そして最後に、編集画面でページタイトルを挿入しています。
カスタムテンプレートでクラス名がでてきません。
これだけではダメなのでしょうか?
どうぞ、よろしくお願いいたします。
Re: カスタムレイアウトプリセットをテーマに追加するについて
申し訳ありません。
やってみたんですけど、わからないです。
ちょっと質問を変更したいのです。
デザインカスタムテンプレートについて、
クラス名を手入力しないでする方法でお聞きしたいことがあります。
たとえば、
フッターラベルを
DJ Kazu All Right Reserved.
にしたいとします。
footer.phpに
<p class="footer-label">
<?php
$a = new Area('footer label');(エリア名)
$a->display($c);
?>
</p>
とします。
page_theme.phpに
public function getThemeAreaClasses(){
return array(
'Page Footer' => array('footer-label'),(ふりたいクラス名)
);
}
とかきました。
これでクラス名を手入力せず、view.phpなどつくらず、選択ができるのかと思ったんですが選択できません。
その方法を教えていただけないでしょうか。
お手数おかlけしますが、よろしくお願いいたします。
Re: カスタムレイアウトプリセットをテーマに追加するについて
カスタムクラスとカスタムテンプレートは別のものです。
カスタムクラスとはブロックまたはエリアをそのクラスで囲むことができます。
カスタムテンプレートとは、ブロックの見た目を変えるためhtmlコードなどを変更するためのものです。
カスタムクラスを設定したいのだと思いますが、
footer.php で、すでにfooter-labelクラスをつけているのでカスタムクラスは必要ないように思いますが
「エリア」「ブロック」どちらのカスタムクラスなのか、もう少し情報もらえると助かります。
Re: カスタムレイアウトプリセットをテーマに追加するについて
いえいえ、こちらがわかってないだけです。
申し訳ありません。
なるほど、違いはわかりました。
質問の内容は
フッタータイトルを変えたいに変更します。
フッターのタイトル、pタグの部分を
footer.phpに
<p class="footer-label">
<?php
$a = new Area('footer label');(エリア名)
$a->display($c);
?>
</p>
にすることで、管理画面で記事をドラッグしてフッタータイトルを入力してクラスを手打ちすればstaticのように反映されます。
このクラスを手打ちではなくカスタムクラスで選択ができるようにしたいです。
そして、
page_theme.phpに
public function getThemeAreaClasses(){
return array(
'Page Footer' => array('footer-label'),(ふりたいクラス名)
);
}
を追加しました。記述が間違っているかもしれません。
これでクラス名を手入力せず、view.phpなどつくらず、選択ができるのかと思ったんですが選択できませんでした。
カスタムクラスで選択してできるように記述を含めて教えていただけないでしょうか。
pタグだからできないのでしょうか。
お手数おかけしますがよろしくお願いいたします。
Re: カスタムレイアウトプリセットをテーマに追加するについて
カスタムクラスを表示するには下記のとおり修正が必要です。
return array('Page Footer' =>array('footer-label'));
↓
retrun array('footer label'=>array('footer-label'));
Page Footer と書かれている部分はエリア名に合わせないといけないです。
ただし、エリアのカスタムクラスはdivタグのみだったと思います。
ですので、このカスタムクラスをつけたとしたら下記のようなhtmlが吐きだされると思います。
<p class="footer-label">
<div class="footer-label">
<p>○○株式会社</p> ←記事ブロックで追加した内容
</div>
</p>
できれば、最終的にどのようなhtmlを吐き出したいか記入してもらえれば助かります。
Re: Re: カスタムレイアウトプリセットをテーマに追加するについて
つぎはカスタムテンプレートをみていただけないでしょうか。
http://concrete5-japan.org/index.php?cID=12431
ここをみています。
page_theme.phpに
public function getThemeAreaLayoutPresets(){
$presets = array(
array(
'handle' => 'title_up_down_parallax',
'name' => 'title up down parallax',
'container' => '<div class="row"></div>',
'columns' => array(
'<div class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;">ABOUT</div>'
),
)
);
return $presets;
}
にこのようにかきました。
default.phpに
<div class="section-pt2" id="firstattck">
<div class="container">
<div class="row">
<?php
$a = new Area('title up down parallax');
$a->display($c);
?>
</div>
</div>
</div>
にこのようにかきました。
編集画面でページタイトルにしています。
ただ、ここがABOUTではくHOMEという名前になって困っています。
また記述したらカスタムテンプレートで選択できないのですが、どこが間違っているか教えていただけないでしょうか。
何回も申し訳ありません。
Re: カスタムレイアウトプリセットをテーマに追加するについて
レイアウトの追加は、こちらのドキュメントを参考にしてください
http://concrete5-japan.org/help/5-7/using-concrete5-7/in-page-editing/block-areas/add-layout/
acliss
Re: カスタムレイアウトプリセットをテーマに追加するについて
getThemeAreaClasses()です
getThemeAreaLayoutPresets()はレイアウト機能のプリセットなので上記で設定してください。
下記の情報が参考になるかと思います。
http://acliss.secret.jp/private-blog/acliss-blog/2015/12/12/elemental%E3%81%AEpage_theme/