新カスタムレイアウトプリセットについて
皆様にお聞きしたい事があります。
カスタムレイアウトプリセットですが、下記のサイトを見てやったんですがうまくいきません。
アドバイスいただけないでしょうか。
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: 新カスタムレイアウトプリセットについて
自己解決しました。
page_theme.phpの記述が間違っておりました。
use Concrete\Core\Area\Layout\Preset\Provider\ThemeProviderInterface;
class PageTheme extends Theme implements ThemeProviderInterface {}
これが原因でした。
今回は長々と本当にアドバイスいただきありがとうございます。
今後ともお手数をおかけしますが、よろしくお願いいたします。
Re: 新カスタムレイアウトプリセットについて
レイアウトプリセットできたんですけど、質問があります。
htmlをブロック化してはきだしてくれるのはとても助かるんですが、これってtitle1だったらtitle1用でつくってtitle2だったらtitle2用でつくらないとダメなんでしょうか?
ブロックの文言だけかえるだけなのに何個も創らないといけなのかなと思いました。
創らないとダメならダメでいいんですが、そんなことはないんじゃないかなと思って書き込みました。
Re: 新カスタムレイアウトプリセットについて
というサイトをみていただけないでしょうか?
そこのsvg下にtitleがあります。aboutとfavoritとdiaryです。
ここをレイアウトプリセットにしています。
記事ブロックにしています。
aboutにしたらfavoritとdiary部分もaboutになります。
そこでpage_themeに動きはいっしょなのにtitleをかえたいだけのパターンをつくって増やしています。
効率的でないので疑問に思って書き込みしました。
うまく伝わればいいんですがよろしくお願いします。
Re: 新カスタムレイアウトプリセットについて
Re: 新カスタムレイアウトプリセットについて
ページ名と同じではないようなので、ページ属性を使ってやるといいと思います。
ページ属性で テキスト→ ID: parallax_title で作成
<h1 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;"><?php echo h($c->getAttribute('parallax_tile'))?></h1>
のようなイメージです。このタイトルに関しては、文字の変更はあっても、同じ文言を同じページで2回使うことはないでしょうから、レイアウト機能を使う必要はないと思います。
その下の画像や文章に関しては2列3行で作られていますが、今後増減する可能性があると思うので、レイアウト機能を使うメリットはあると思います。
Re: 新カスタムレイアウトプリセットについて
ページテンプレート?カスタムテンプレートではないのでしょうか?
そこでお聞きしたいことがるのですが、カスタムテンプレートならview.phpをつくらなければならないと思うのですがどの部品からコピーしてきたらよろしいでしょうか。
もしくは最初から作成するのでしょうか?
blocks→任意名→templates→任意名.php(view.php)
中身は
<?php defined('C5_EXECUTE') or die("Access Denied.");
<h1 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;"><?php echo h($c->getAttribute('parallax_tile'))?></h1>
<?php }
でいいのでしょうか。
もしくはこの記述はどこへ書くのでしょうか。
今回新しく作成するview.phpにだと思うのですが。
<h1 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;"><?php echo h($c->getAttribute('parallax_tile'))?></h1>
ページ属性で テキスト→ ID: parallax_title で作成
とありますがハンドルでよろしかったでしょうか。
タイトルは任意名でいいと思います。
わかっていなくてお手数ばかりおかけしますが、よろしくお願いいたします。
Re: Re: 新カスタムレイアウトプリセットについて
themesフォルダ内のdefault.php などの事です。
http://github.com/concrete5/concrete5/tree/develop/web/concrete/themes/elemental
今回作成されようとしているサイトでは、下記の語句の意味を理解する必要があります。あくまでも僕が作るとすればという前提ですが。。
・テーマ
・ページテンプレート
・ページタイプ
・カスタムテンプレート
・レイアウト機能
・カスタムレイアウトプリセット
・エリアのカスタムクラス
・ブロックのカスタムクラス
・ページ属性
上記はすべて違うものです。それぞれがどのような特徴を持っていて、どのように作用するのか、を理解する必要があります。分からない語句はありますか?
Re: 新カスタムレイアウトプリセットについて
申し訳ありません。
ほぼ、わかってないと思います。
自己解釈です。
・テーマ
創りたいテーマ
・ページテンプレート
全幅や左サイトみたいなページのカタチ
default.phpやleft_sidebar.phpなど
・ページタイプ
わかりません。
・カスタムテンプレート
autonaviでグローバルメニューなどをつくるときに使う。
blocksのフォルダにveiw.phpを作成して見た目をかえる(カスタムする)
・レイアウト機能
2カラムや3カラムとレイアウトを作成できる
・カスタムレイアウトプリセット
ブロックをhtml化にして表示できる
同じモノを繰り返し表示できる
page_theme.phpで設定する
・エリアのカスタムクラス
エリアをクラス指定できる
page_theme.phpで設定する
・ブロックのカスタムクラス
ブロックまたはエリアをクラス指定できる
page_theme.phpで設定する
・ページ属性
わかりません。
私の場合はサイトを創っていきながら各機能を覚えたほうがいいと思ってやっています。
お手数ばかりおかけして申し訳ありません。
Re: Re: 新カスタムレイアウトプリセットについて
「ページテンプレート・ページタイプ」は非常に関係が密なものです。
「ページテンプレート」はテーマ内に直接ファイルを設置するエリアやレイアウトなどを書いたファイルのことです)
「ページタイプ」はページの種類です。「ニュース記事用」「お知らせ記事用」など用途によってを分別します。管理画面で設定します。
「ページ属性」は、そのページに引っ付けられているデータです。商品一覧ページを作るときなどに重宝します。実際にあるものだと「オートナビから省く」などがこれにあたります。
さて、本題の「カスタムレイアウトプリセット」ですが、
あくまで想定されているのグリッドシステムの設定です。
デフォルトのレイアウト機能は、2カラムで追加したとき、真ん中で分かれます。
デフォルトのbootstrapでいうと <col-md-6><col-md-6>。それを<col-md-4><col-md-8>などにするのをバーのドラッグで設定するのではなく、追加したときにこれを設定してやろうというものです。
ですのでグリッドシステム用のhtmlタグを吐き出すことを想定しています。その機能を応用して今回のようなものに使えるのは、僕が勉強になりました。
上記のようなことを想定されていることから中のコンテンツ(画像や文章など)はブロックなど他の機能で作るほうが効率がいいかと思います。
Re: 新カスタムレイアウトプリセットについて
追記したモノはメモっておきます。
ただ知っていたとしても、いまいちわかってないんですよ。
あとどこのファイルに書いたりして使うとかもわかっていません。
調べてもどれが正解なのかもわからないんですよ。
カスタムレイアウトプリセットは苦労しました。
送っていただいたgitのページをみると書いてあるというオチでした。
本題ですが、
ページ属性で テキスト→ ID: parallax_title で作成
<h1 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;"><?php echo h($c->getAttribute('parallax_tile'))?></h1>
の続きでやり方を教えてください。
今はトップページだけでもカスタムレイアウトプリセットを5カ所使うので5カ所も記述しています。
about、favorite、diaryは使い回したいんですけども。
できないシステムなら現状のままでもいいんですが。
どうぞよろしくお願いします。
Re: 新カスタムレイアウトプリセットについて
追記したモノはメモっておきます。
ただ知っていたとしても、いまいちわかってないんですよ。
あとどこのファイルに書いたりして使うとかもわかっていません。
調べてもどれが正解なのかもわからないんですよ。
カスタムレイアウトプリセットは苦労しました。
送っていただいたgitのページをみると書いてあるというオチでした。
本題ですが、
ページ属性で テキスト→ ID: parallax_title で作成
<h1 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;"><?php echo h($c->getAttribute('parallax_tile'))?></h1>
の続きでやり方を教えてください。
今はトップページだけでもカスタムレイアウトプリセットを5カ所使うので5カ所も記述しています。
about、favorite、diaryは使い回したいんですけども。
できないシステムなら現状のままでもいいんですが。
どうぞよろしくお願いします。
Re: 新カスタムレイアウトプリセットについて
追記したモノはメモっておきます。
ただ知っていたとしても、いまいちわかってないんですよ。
あとどこのファイルに書いたりして使うとかもわかっていません。
調べてもどれが正解なのかもわからないんですよ。
カスタムレイアウトプリセットは苦労しました。
送っていただいたgitのページをみると書いてあるというオチでした。
本題ですが、
ページ属性で テキスト→ ID: parallax_title で作成
<h1 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;"><?php echo h($c->getAttribute('parallax_tile'))?></h1>
の続きでやり方を教えてください。
今はトップページだけでもカスタムレイアウトプリセットを5カ所使うので5カ所も記述しています。
about、favorite、diaryは使い回したいんですけども。
できないシステムなら現状のままでもいいんですが。
どうぞよろしくお願いします。
Re: Re: 新カスタムレイアウトプリセットについて
トップページにあるabout favorite diary ですね。
どのように運用するかに寄りますが、
ページタイトルブロックでカスタムテンプレートを使ってはどうでしょうか?
ページタイトルブロックで[カスタムタイトル]にaboutと入力し「ページ名を入力した・・・・」にチェックを入れて保存
次に
application/blocks/page_title/templates/parallax_title.phpを作成し下記を入力して保存。
<?php defined('C5_EXECUTE') or die("Access Denied."); ?>
<h1 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;"><?php echo h($title)?></h1>
ページに戻り、先ほど設置したページタイトルブロックにカスタムテンプレートを当てる。
これでどうでしょうか?
Re: 新カスタムレイアウトプリセットについて
できました!
書いてあるとおりに作成してあててみました。
タイトルの名前をかえた複製もできました。
ありがとうございます。
ちなみにABOUTの下にあるサブタイトルやその下の左右からくるコメントのパララックスはカスタムテンプレートをつかって他のブロック方法でできないでしょうか?
ページタイトルはタイトルなので改行とかできないですよね。
1.サブタイトルのパララックスは記事ブロックとかでできたりしないでしょうか。
2.サブタイトルの左右からくるコメントのパララックスは記事ブロックでできないでしょうか。
3.下層ページ(aboutおよびschedule)にある左が画像で右がコメントのパララックスはできないでしょうか。
ちなみにコアのblocksのcontentのview.phpをつかってタイトルで教えていただいた記述でサブタイトルを試してみましたが記事ブロックでカスタムテンプレートの設定はできませんでした。そう甘くはなかったですww
できなければカスタムレイアウトプリセットを使うつもりです。
どうぞよろしくお願いします。
Re: 新カスタムレイアウトプリセットについて
二行になるサブタイトルは
コアのblocksのcontentのview.phpをコピーしてapplication/blocks/comment_block(任意名)/templates/parallax_up_down_subtitle.php(view.php)にしました。
記述は
<?php defined('C5_EXECUTE') or die("Access Denied."); ?>
<h2 class="title" data-0-center-top="transform:translate(0,0px); opacity:1;" data-300-center-top="transform:translate(0,100px); opacity:0;"><?php echo h($title)?></h2>
で試しました。
ブロックは記事ブロックにしました。
見事に動きませんでした。
1はカスタムレイアウトプリセットと記事ブロックにしています。
htmlブロックはhtmlコードを貼付けるので今回はパスしておきます。
2と3はちょっと難しいと思いますがやってみます。
Re: Re: 新カスタムレイアウトプリセットについて
記事ブロックではカスタムテンプレートではなく、カスタムクラスを使う方が運用上いいと思います。
記事ブロックのカスタムクラスの設定は
page_theme.phpのgetThemeEditorClasses()です。
http://concrete5-japan.org/help/5-7/developer/designing-for-concrete5/advanced-css-and-javascript-usage/adding-custom-css-classes-to-blocks-areas-and-the-editor/...
acliss
Re: 新カスタムレイアウトプリセットについて
に関して
レイアウト機能を使用したときに使われるものです。
レイアウト機能とはエリアをよこに分割するための機能です。
カスタムテンプレートはブロックの見た目を変えるときに使いますので、全く別のものです。
getThemeAreaLayoutPresets()は
通常レイアウト機能を使用したときに、5:5の割合で分割されるものを
それを、3:7にしたり、7:3にしたりするために使われるものです。
それを応用する、ということでしょうか?あくまで、htmlタグのみを受け付ける仕様になっていると思います。たぶんです。。。
あと具体的にどのようなことを表現しようとされているのかによって何が最適か変わるので、そのあたり書き込まれると、アドバイス受けやすいと思います。