a-sap08「a-blog cmsとmovable type」
TRANSCRIPT
MTな人のa-blog cms講座
• 主な仕様の違い(15分)
• ablogcms.ioでのハンズオン
•記事とページを分けてみる
•記事一覧の表示条件を変えてみる
•エクスポートとインポートをしてみる etc…
• 質疑応答(15分)
1. エントリーの扱い
• a-blog cmsには「投稿タイプ」の概念がない
• 「記事/カテゴリー」「ウェブページ/フォルダ」の区分もない
• すべて「ブログ/記事/カテゴリー」で賄う
サイトマップをしっかり書くインクルード・条件分岐を使いこなす
2. ファイルの書き出し
• 基本的に、すべて動的生成
• Ajaxによるインクルードを簡単に実装
• 安定したキャッシュ機能(プラグインの心配がないので)
• スタティック・パブリッシングはできない
ただし、手動+ファイル指定でのパブリッシュはできる
3. パーマリンクの操作
• URLコンテキスト=「URLから内容を自動的に判断して表示するよ」
• カスタムフィールド検索も簡単にできる
• 反面、パーマリンクの操作はできない
tagなどの予約語を任意名に変えるなどはできる
気持ち悪いと言われた URLがこちらになります
http://example.com/entry.html/tag/タグ2/
http://example.com/hoge.html/tpl↩︎/fuga.html/
4. 表示条件の絞り込み
• Movable Typeはタグに直接条件を書く
• a-blog cmsは「識別ID」のみを書き管理画面で設定する=モジュールID
これにより、MTやWordPressより 細やかな設定ができる
<!-- BEGIN_MODULE Entry_Summary id=“top_summary” -->
5. テーマ
• ウェブサイトと同じ階層構造
• WordPressのような「子テーマ」も作れる
• 修正内容は即時に反映される(公開後の修正に注意)
• インクルード方法はすべてPHPMovable Typeのような静的変換はできない
6. エントリーのサムネイル
• 一度に複数種類を生成できる
•OGP用/メインビジュアル用/一覧用
• 縦横比を維持or いっぱいに広げて、はみ出しをトリミングor 全体を収めて背景色を単色で埋める
ユニットは必須ではない
• 実は、ユニットは任意で止められる
• 使用できるユニットをテキストだけにするとMTと同じ操作感(えええええ)
• 全文検索を利用しない場合は投稿画面をすべてカスタムフィールドで作ることもできる
新しいカテゴリーを作る
• カテゴリーをふたつ作る(投稿用、ページ用)
• 移動しやすいようにメニューに追加する
• それぞれに一件ずつエントリーを書く
• どちらも日付がないウェブページ風になる(Simple2016の初期状態)
子テーマを作る
• SFTPでサーバーに接続
• /themes/ へ移動
• asap08@simple2016という空のディレクトリを作る
• 管理ページ「コンフィグ>テーマ」で「asap08@simple2016」をテーマにする
投稿用のレイアウトを変える
• SFTPで接続
• /themes/simple2016/ へ移動
• 「news」ディレクトリを複製し/themes/asap08@simple2016/ へ移動
• 投稿カテゴリーのコードと同じディレクトリ名にする
ページ用を1カラムにしてみる
• /themes/simple2016/ へ移動
• 「index.html」「entry.html」を複製し/themes/asap08@simple2016/ へ移動
• ページカテゴリーのコードと同じディレクトリを作って入れる
• 1カラムに書き直す
一覧を出している場所を探す
• SFTPで接続
• /themes/asap08@simple2016/↩︎(記事用)/index.html を開く
• 記事一覧を読み込んでいるインクルードのファイル名を調べる
モジュールIDを変える
• さっき調べたファイル名と同じファイルをsimple2016からコピーする
• 先頭にEntry_Summaryの開始タグがあるのでid属性を任意に書き換える
• 前のIDは控えておいてください
様々なインポート
• ablogcms.ioではできない
•システムの復元/ブログ単位のバックアップと復元
• ablogcms.ioでもできる
•システムのバックアップ
•MT・WPの記事フォーマットのインポート
•CSVインポート ←これをやりましょう
←これをやりましょう
CSVインポート
• 500件分のCSVデータを用意しました
•タイトル/カテゴリー/見出し中/平文)
•チェックボックス
•単一行テキスト
•マルチチェックボックス
https://github.com/webbingstudio/acms_inport_test_500
コンフィグの複製
• できたての子ブログは設定が初期状態(/private/config.yamlを読み込んでいる)
• 親ブログ内の「ブログ」へ移動
• 作ったばかりのブログにチェックを入れ親ブログの設定を複製
• simple2016の設定が複製される
ふたつめの子テーマを作る
• SFTPでサーバーに接続
• /themes/ へ移動
• asap08news@simple2016という空のディレクトリを作る
• 管理ページ「コンフィグ>テーマ」で「asap08news@simple2016」をテーマにする
親テーマとの分割
• /themes/simple2016/ へ移動
• 「news」ディレクトリを複製
• コピーの方だけ残し、元のディレクトリを/themes/asap08news@simple2016/ へ移動
• 中のhtmlファイルをディレクトリから出す(親テーマの基本テンプレートを上書きしたことになる)
グローバルナビの書き換え
• %{BLOG_URL}と%{HOME_URL}の違い
•%{BLOG_URL}・・・現在のブログURL
•%{HOME_URL}・・・最上層のブログURL
• グローバルナビ右上「モジュール」をクリック
• 子ブログからでもリンクが切れないように書き換え
フィールドモジュール
• a-blog cmsには「カスタムフィールドを呼び出す」タグがある
• もちろんここにもモジュールIDを指定できる
• モジュールIDの条件によって違うエントリー・ブログのカスタムフィールド情報を取得できる
モジュールIDを確認
• SFTPでサーバーに接続
• /themes/simple2016/ へ移動
• /include/header.html を開く
• ロゴ・サイトタイトルが以下のタグで囲まれているのを確認
<!-- BEGIN_MODULE Blog_Field id="global" -->
モジュールIDを作成する
• 親ブログの管理ページ「モジュールID」
• モジュールIDの新規作成
•「ブログフィールド」モジュールを選択
•IDを「global」に、名前は任意
•表示条件の「ブログ」に「1」を指定
• 親と同じ情報に戻っているのを確認
なぜこうなる?解説
• a-blog cmsの公式テーマはマルチブログに関連する情報にははじめから「global」というIDが付与されている
• しかし、インストール直後は該当するモジュールIDは作成されていないため初期設定=現在のブログの情報を表示する
• モジュールIDを作成することで挙動が変化する
なぜこうなる?補足
• IDは「global」でなくても構いません
• モジュールIDを作成してからテンプレートにIDを書く順番でも構いません
• a-blog cmsは、最上層のブログIDは必ず「1」になります