a-blog cms 公式テーマ「site2018」のXDファイルの配布を開始


この度、a-blog cms 公式テーマの一つである「site2018」のXDファイルを用意しました。

使用用途について

こちらはa-blog cms サンプルサイト内の「会社概要」「製品情報」などの各ページと、1カラムレイアウトの見本となる layout.htmlの計10ページ分のデザインを含んだXDファイルです。

主に公式テーマ「site2018」をベースにしてサイトを制作する際に、次のような用途でご利用いただけます。

  • カスタマイズのシミュレーション
  • サイトパーツのパターン作成
  • デザインコンポーネントの管理
  • プロトタイプの共有

ファイルの仕様について

ファイル内では、site2018のサイトパーツをアセットとして登録し、使用しているモジュールIDやインクルードファイルについてコメントでまとめています。コメント自体もシンボル化しておりますので、デフォルトのものだけでなく、ファイル内で追加したモジュールに対しても同じようにコメントを残すことが可能です。



特に多くの役職が携わる制作プロジェクトでは、デザインスタイルとテンプレート情報を一括して管理することで、作業工程に一貫性が生まれます。デザイナーの方だけでなく、ディレクターの方やエンジニアの方も、情報を共有をする資料の1つとして是非ご活用ください。

ファイルのダウンロードについて

ファイルの詳細情報、ダウンロードは下記リンクよりお願いします。


a-blog cms Ver. 2.9.0 リリース!

Ver. 2.9.0 リリース

Ver. 2.9.0 リリース


いつもお世話になっております。開発の伊藤です。

Ver. 2.9.0 が 2018/10/09 にリリースされました!そこで、新しく追加された機能や変更点などを紹介したいと思います。

最後に変更点一覧を載せてあります。

Ver. 2.8 からのバージョンアップ

機能紹介の前にVer. 2.8からのアップデート方法を紹介しておきます。

Ver. 2.7以下からのバージョンアップはこれまで通り、パッケージをダウンロードして手動でバージョンアップが必要ですが、Ver. 2.8 より管理画面からのアップデート機能が追加されました。

ただデフォルトですと、「パッチバージョン」のみのアップデートになっていますので、Ver. 2.9 にアップデートするためには設定を変更する必要があります。

「管理ページ > コンフィグ > 機能設定」 に移動し、「オンラインアップデート」を「マイナーバージョンも含める」に変更してください。これで管理画面からVer. 2.9 に更新できるようになります。

MySQL 8.0に対応

MySQL 8.0 に対応しました。MySQL 8.0 は 5系からのメジャーバージョンアップで、パフォーマンスもよくなっていますので、是非お使いください。

OpenStreetMapに対応

Ver. 2.8 までは地図を表示する場合、Google Maps か Yahoo!地図に限られていたのですが、両方とも API Key が必要になります。また Google Mapsについては制限が厳しくなり クレジットカード を登録しないと表示できない場合も出てきました。

そこで、Ver. 2.9 ではオープンソースの OpenStreetMapを標準で使えるように改善しました。ユニットはもちろんカスタムフィールドなど、今まで地図を表示していた機能全てでご利用いただけます。


OpenStreetMapによる地図ユニット

OpenStreetMapによる地図ユニット


PC, スマホ, タブレットのプレビュー機能を追加

ログインしたまま、表示側の確認ができる「プレビュー機能」が追加されました。 プレビューは、スマホやタブレットなどの画面サイズを簡単に切り替えることができ、また User Agent のシミュレートも行いますので、「ルール」による設定も反映されるので確認に便利です。

Webに慣れている方は開発者ツールなどでも確認できますが、あまりWebに詳しくない方でも簡単に各デバイスの見え方を確認することができるようになります。


プレビュー機能

プレビュー機能


アクションボックスにあるプレビューボタンを押すことで、どのページでもプレビュー出来ることができます。管理ページ側のエントリーの編集ページでもプレビューボタンがあるので、表側ページに移動しなくてもすぐ確認することができます。


アクションボックスのプレビューボタン

アクションボックスのプレビューボタン


管理画面側編集画面のプレビューボタン

管理画面側編集画面のプレビューボタン

管理画面側編集画面のプレビューボタン


プレビューの共有機能を追加(プロ版以上)

プロ版以上のライセンスになるとプレビュー機能で共有機能が使えるようになります。「プレビューの共有機能」とはまだ 非公開 などの公開されていないページをログインしていない人でも閲覧出来る機能になります。

プレビューページで共有ボタンを押して、「共有URL」を取得することで、共有できるようになります。共有URLはランダムな文字列がついており簡単にわからないようになっています。また「管理ページ > コンフィグ > 機能設定 の プレビュー共有の有効期限」より共有期限を設定することも出来るようになっています。

この機能より、公開前の記事やページを承認機能を使わずに手軽に好きな連絡手段で確認することができるようになります。


共有ボタン

共有ボタン

共有URLの生成

共有URLの生成


静的書き出しでエントリーの差分書き出しに対応(プロ版以上)

Ver. 2.8 よりブログ毎の静的書き出し機能はあったのですが、今回のバージョンでは、エントリーの更新日時をみての差分書き出しに対応しました。いくつか制限はありますが日々の運用ではエントリーの更新が多いという方には喜ばれると思います。

また、フル書き出しとは別のディレクトリに書き出すこともできますので、差分書き出しを行い、手動で公開領域にアップロードといった運用もできるようになると思います。


静的書き出し画面

静的書き出し画面


いくつかの注意点

  • 指定した日時からのエントリー差分データを書き出します
  • 変更されたエントリーが所属するトップ、カテゴリーなどの一覧ページも一緒に書き出されます
  • 画像などのファイル書き出しは、差分のエントリーのものだけになります

ブログ、カテゴリー、ユーザーに位置情報を追加

Ver. 2.7 でエントリーの位置情報に対応しました。Ver. 2.9ではエントリーに追加して以下3つのタイプにも対応しました。

  • ブログ
  • ユーザー
  • カテゴリー

これにより、サイトの設計がしやすくなったと思います。例えば、複数店舗をもつサイトで1店舗を1ブログと設計して、近くの店舗を出すといったことが出来るようになりました。

機能の有効化

管理ページ > コンフィグ > 機能設定の「位置情報」から機能を有効にできます。エントリーについても 管理ページ > コンフィグ > 機能設定からこの場所に移動してますのでご注意ください。

モジュール

以下のモジュールで位置情報を扱うことができるようになります。

位置情報の表示

  • Blog_Field
  • User_Field
  • Category_Field
  • Entry_Field
  • Entry_Body
  • Entry_Summary

位置情報でソート

  • Blog_GeoList
  • User_GeoList
  • Category_GeoList
  • Entry_GeoList

srcset属性のパス補完に対応

a-blog cms ではテーマがドキュメンルートのように扱えるようにパスの書き換えを行なっています。

パス書き換えについて詳しくはこちら

例: themes/example/images/以下に画像がある場合

<img src="/images/sample.png">

ただ srcset の書き換えには対応していませんでしたので、グローバル変数などを使ってカスタマイズしないといけませんでした。

例: themes/example/images/以下に画像がある場合

<img src="/images/sample.png"
     srcset="%{CURRENT_THEMES_DIR}images/sample.png 320w,
             %{CURRENT_THEMES_DIR}images/sample@2x.png 640w"
     sizes="50vw"
>

これを、Ver. 2.9 では srcset の書き換えにも対応し以下のように記述できるようになりました。

<img src="/images/sample.png"
     srcset="/images/sample.png 320w,
             /images/sample@2x.png 640w"
     sizes="50vw"
>

これでより、静的HTMLを書くようにコーディングが出来るようになったと思います!

ユーザー切り替え機能の追加

ユーザーの切り替え機能を追加しました。この機能を使うと、自分以外のユーザーにログインしたまま瞬時に切り替える事が出来るようになります。

ユーザーの切り替えは、管理ページのユーザー一覧からユーザーを選択して切り替えます。


ユーザーの切り替え

ユーザーの切り替え


切り替えが出来る条件(デフォルト設定の場合)

  • ルートブログの管理者権限ユーザーであること
  • 切り替えユーザーは管理者でないこと

設定

設定は「private/config.system.yaml」で行います。


項目 設定値 デフォルト値 説明
switch_user_enable on / off on ユーザー切り替え機能を有効化
switch_user_permission root / all root ユーザー切り替えができる管理者設定(root=ルートブログの管理者のみ, all=全ての管理者)
switch_user_same_level on / off off 管理者ユーザーへの切り替えができるかの設定

フォームのテンプレート内容を管理画面から編集できる機能を追加

フォームで送られるメールの内容は、運用中よく変更される場所だと思います。

ただし、いままではフォームで送信されるメールテンプレートはテンプレートとして用意しないといけませんでした。これをVer. 2.9.0 では、管理ページより内容を編集できるようになったので運用が楽になると思います。

編集画面は、管理ページ > フォーム の該当のフォームの編集画面になります。「自動返信」だけではなく「管理者宛」メールも編集できるようになっています。

テンプレートと編集画面での入力が両方指定されている場合は、編集画面で入力した内容が優先されて利用されます。


フォーム編集画面

フォーム編集画面


extend@beginnerテーマの追加

新しいテーマとして、「extend@beginner」テーマを追加しました。「beginner」テーマは初心者用に最低限の機能で作られているテーマになります。「beginner」テーマはわかりやすい「@include」の機能でテンプレートが分割されているのに対し、今回追加された「extend@beginner」テーマはVer. 2.8 で追加された、「@extends機能」でテンプレートを分割するようになっています。

2つのテーマを見比べると、「@extends機能」を使ったテーマの管理のしやすさがわかると思います。初心者の方の次のステップアップテーマとしてご利用ください。

関連記事を複数もてる機能を追加

Ver. 2.6.0 より エントリーとエントリーを関連させる「関連記事機能」がありましたが1つのフィールドしか設定できませんでした。

例えば、

  • 関連する記事
  • おすすめ記事
  • 一緒によく見られている記事

など関連といっても、いくつかあり1つのフィールドでは足りない場合があります。そこでVer. 2.9では関連機能をパワーアップさせて、複数の関連記事を1つのエントリーに持たせれるようにしました。

設定方法

管理ページ > コンフィグ > 編集設定 の「関連記事グループ」で設定できます。

タイプ・ラベル・モジュールIDを設定できるようになっており、以下のような意味があります。


タイプ 内部で利用する識別子になります。英数字で設定を行います。
ラベル 編集画面に出力されるラベルです。
モジュールID 関連記事を設定する時に候補を表示する「Admin_Entry_Autocomplete」モジュールのモジュールID名を設定します。
ここで設定した名前でモジュールIDを作る事で、設定できる記事を絞り込むことができます。

関連記事設定

関連記事設定


エントリー編集画面

エントリー編集画面


画像ユニットでexif情報をキャプションに追加できる機能を追加

画像ユニットで選択された画像の「exif情報」を読み、写真の情報を自動でキャプションに設定できる機能が追加されました。

画像を選択すると「撮影データをキャプションに追加」というボタンができてくるで、そのボタンを押すと、キャプションに撮影データが入力されます。

デフォルトだと撮影データは以下のようなデータが入力されるようになっています。

  • カメラのモデル
  • 焦点距離
  • 絞り値(F値)
  • シャッタースピード
  • ISO感度
  • 撮影日

撮影データのキャプション追加

撮影データのキャプション追加


取得情報のカスタマイズ

この撮影データは、「js/config.js」の設定を変更することで変更することが可能です。

exif: {
    captionEnable: "on",
    saveData: "off",
    requireField: ['FocalLength'],
    captionFormat: '<%= Model %> (<%= FocalLength %>mm, f/<%= FNumber %>, <%= ExposureTime %>sec, ISO<%= ISOSpeedRatings %>) <%- ACMS.Library.Dayjs( DateTimeOriginal, "YYYY/MM/DD HH:mm") %>',
    dataFormat: 'Model:<%= Model %>__FocalLength:<%= FocalLength %>__FNumber:<%= FNumber %>__ExposureTime:<%= ExposureTime %>__ISOSpeedRatings:<%= ISOSpeedRatings %>__DateTimeOriginal:<%= DateTimeOriginal %>'
},

項目 説明
captionEnable この機能を有効にするかの設定です
saveData 撮影データをユニットに保存するかの設定です
requireField ここで設定したexif情報がないと機能が有効になりません
captionFormat キャプション文字列の設定です
dataFormat データベースに撮影データを保存する場合の、フォーマットです

issetオペレーターを追加

IFブロックなどで利用するオペレータに新しいものが追加されました。今までは空を判定するときは「em」というオペレーターを使っていたのですが、少し使いづらい仕様であったため今回のオペレーターを追加されました。

「em」は "0"も空と判定されるのに対し、「isset」は空文字の時のみ空と判定します。


オペレーター 内容
em 内容が空の場合にtrue(ただし"0"も true と判定)
nem 内容がある場合にtrue(ただし"0"も場合は falseに判定)
isset 内容がある場合にtrue("0"であっても true と判定)
nisset 内容が空の場合にtrue("0"であっても false と判定)

@extends機能で@sectionの入れ子ができるように改良

Ver. 2.8 で追加された「@extends機能」がパワーアップしました。以前までは「@section」は 入れ子 に出来なかったため、カスタマイズがしづらい場面がありました。

例えば、_layout.html で レイアウトを定義するのに @section を使ってしまうとその中で、さらに @sectionは使えません。

@section("main")
<div class="main">
    @section("main-title")
    <h2>タイトル</h2>
    @endsection
    @section("main-body")
    <div class=body">
         ...
    </div>
    @endsection
</div>
@endsection

という事がVer. 2.8では出来ませんでしたが、Ver. 2.9.0ではできるようになりました。これによりより細かな継承を意識したテンプレートが作れるようになりました。

systemテーマに@sectionを追加

「@extends機能」の拡張に合わせて、システムテーマにも「@section」の仕込みを多く行いました。これにより管理ページをカスタマイズするときに、部分的なテンプレートのカスタマイズだけで済み、バージョンアップに強いカスタマイズが行えるようになります。

アクションボックスのカスタマイズ例

「アクションボックス」(エントリー作成・管理ページ・ログアウトボタンなど)をカスタマイズすることは多いと思います。今までは、カスタマイズしているテーマに「themes/system/admin/action.html」をコピーして利用していたと思いますが、カスタマイズする場所以外も全部もってくるため、カスタマイズした所がわかりにくい & バージョンアップ時に「action.html」に変更があった場合、バージョンアップされたテンプレートが反映されない状態でした。

これを「@extends機能」を使ったカスタマイズをしてみます。ここでは、「お知らせ作成」ボタンを新たに追加して「Ping送信」ボタンを削除してみたいと思います。

空の「themes/ご利用のテーマ/admin/action.html」を作成して以下のようにカスタマイズします。

@extends("/admin/_layouts/action.html")

@section("entry-insert")
@parent
<form action="" method="post" class="acms-admin-inline-btn">
	<input type="submit" name="ACMS_POST_2GET" value="<!--T-->お知らせ作成<!--/T-->"  class="acms-admin-btn-admin"/>
	<input type="hidden" name="admin" value="entry-edit" />
	<input type="hidden" name="bid" value="%{BID}" />
	<input type="hidden" name="cid" value="2" />
</form>
@endsection

@section("ping-update")
@endsection

継承の機能を詳しく見てみる

エントリー編集画面の統一オプションを追加

a-blog cmsではエントリーの編集を行う画面が2つあります。1つはページ見たままのレイアウトで編集できる表側の編集ページ、もう1つは管理ページ側の編集ページです。編集ページへの行き方でそれぞれの編集画面が表示されるのですが、慣れた編集画面で毎回編集したいということもあるため、統一できるオプションを追加しました。

管理ページ > コンフィグ > 編集設定の「編集画面」で設定できます。デフォルトは従来の動きになっています。


エントリー編集ページの統一

エントリー編集ページの統一


エントリーの初期ステータスを変更できるオプションを追加

エントリー新規作成時のデフォルトの「エントリーステータス」を設定できるようになりました。いままでは「下書き」がデフォルトだったのですが、承認機能利用時など「公開」にし忘れることも多いため、運用に合わせてデフォルト値を変更していただくと便利です。


エントリーの初期ステータスを設定

エントリーの初期ステータスを設定


CMS-4269 テキストの置換機能をスタンダードに移動

Ver. 2.8 まではプロフェッショナル版以上で利用可能だった「テキストの置換」機能をスタンダード版でも利用できるように変更しました。

使い方

管理ページ > データ修正 の「テキスト置換」に移動します。

置換を行う対象のフィールドを指定します。指定できるフィールドはエントリー情報の以下の3つです。

  • タイトル
  • ユニット
  • カスタムフィールド

次に置換対象の文字列と置換後の文字を指定します。

この状態で一括置換もできますが、「チェック」ボタンを押すことにより、置換対象を自分でチェックしてから置換することもできます。


一括置換設定画面

一括置換設定画面

置換選択画面

置換選択画面


新機能一覧

  • CMS-4180 MySQL 8.0対応
  • CMS-4198 OpenStreetMap対応(ユニット・カスタムフィールド)
  • CMS-4193 PC, スマホ, タブレットのプレビュー機能を追加
  • CMS-4244 プレビューの共有機能を追加(プロ版以上)
  • CMS-4179 静的書き出しでエントリーの差分書き出しに対応(プロ版以上)
  • CMS-4204 ブログ、カテゴリー、ユーザーに位置情報を追加(コンフィグ > 機能設定 で有効化)
  • CMS-3648 srcset属性のパス補完に対応
  • CMS-4194 ユーザー切り替え機能の追加
  • CMS-4142 フォームのテンプレート内容を管理画面から編集できる機能を追加
  • CMS-4190 extend@begginerテーマの追加
  • CMS-4195 関連記事を複数もてる機能を追加(コンフィグ > 編集設定 で追加)
  • CMS-4189 データベース定義を拡張する機能を追加(extension/schema ディレクトリ以下)
  • CMS-4183 画像ユニットでexif情報をキャプションに追加できる機能を追加
  • CMS-4185 issetオペレーターを追加(em: 0 も空と判定, isset: 空文字の時のみ空と判定 )

変更点一覧

  • CMS-4201 @extends機能で@sectionの入れ子ができるように改良
  • CMS-4212 フォーム管理画面のオプション指定のUIを改善
  • CMS-4197 Entry_ArchiveListに年度表示を追加
  • CMS-4206 カスタムフィールドグループの個々のフィールドでバリデーションできるように改良
  • CMS-4174 エントリー管理画面に更新日時と作成日時を表示
  • CMS-4221 フィールドグループをJavaScriptのバリデーションに対応
  • CMS-4125 管理画面側のエントリー編集から承認機能が使用できるように対応
  • CMS-4226 接続元IPアドレスが変わってもセッションが切れないように変更 (config.system.default.yaml : session_remote_addr_check)
  • CMS-4214 フォームのセキュリティアップデート
  • CMS-4268 site2018テーマのお問い合わせフォームのテンプレートをHTMLに変更
  • CMS-4165 承認メールのFromを承認依頼したユーザーのメールアドレスにするオプションを追加
  • CMS-4223 systemテーマに@sectionを追加
  • CMS-4258 管理画面側でのエントリー編集で保存ボタンを画面に固定するように変更
  • CMS-4191 OGPモジュールにエントリ詳細の時にdiscriptionを出力しないオプションを用意
  • CMS-4145 エントリー編集画面の統一オプションを追加
  • CMS-4234 エントリーの初期ステータスを変更できるオプションを追加
  • CMS-4269 テキストの置換機能をスタンダードに移動

修正点一覧

  • CMS-4196 ロール管理下での権限をわかりやすく表示をするように修正
  • CMS-4224 ダイレクト編集で拡張ユニットを追加できるように修正
  • CMS-4239 システム更新のパフォーマンスを改善
  • CMS-4235 動的フォームのセレクト、ラジオの選択肢を入れ替えれるように改善
  • CMS-4241 Touch_EditInplace をログイン状況を考慮するように修正
  • CMS-4209 カスタムフィールドメーカーでフィールドグループのバリデーション対応
  • CMS-4253 メールテンプレートでも@extendsが使用できるように修正
  • CMS-4271 @sectionを検索キーワード指定すると表示が崩れる問題を修正

a-blog cms Ver. 2.8.29 をリリース

本日2018年08月20日にフィックスバージョンのVer. 2.8.29をリリースしました。下記の修正が行われております。

Ver. 2.8.29 修正箇所一覧

  • CMS-4172 Ver. 1系のフォームログが壊れている場合、フォームログが確認できない問題を修正
  • CMS-4131 js-viewingでflex, table, gridは取り除かないように修正
  • CMS-4184 Unit_Listモジュールでカスタムユニット変数&拡張ユニットが使えるように修正
  • CMS-4186 リダイレクトの設定によってはモジュールのダイアログボタンが動作しない問題を修正
  • CMS-4187 iOS端末から更新するとキャッシュがクリアされない場合がある問題を修正
  • CMS-4188 サブドメイン間移動でログインセッションが切れやすい問題を修正(config.server.php DOMAIN_BASEを設定)
  • CMS-4178 ScheduleモジュールでPHPエラーが表示される場合がある問題を修正
  • CMS-4182 php7.2で関連記事が0件の場合Entry_Summaryでphpのエラーが出る問題を修正
  • CMS-4192 各テーマでdiscriptionメタタグでサマリーのtrimを長くなるように修正
  • CMS-4167 システム更新時に config.server.php もバックアップするように修正
  • CMS-4176 静的書き出しでのhttps証明書により書き出しできない場合がある問題の修正
  • CMS-4134 テンプレート書き出しからhtmlフォーマットチェックを除外
  • CMS-4140 Navigationモジュールの子要素属性(attr)変数をスニペットに追加
  • CMS-4199 IE11以下でvalidator.jsが動かない問題を修正
  • CMS-4200 CSVインポートでアップデート判定項目変更機能(プロ版以上)が動作していない問題を修正

修正箇所詳細

以下、修正内容の詳細になります。

CMS-4172 Ver. 1系のフォームログが壊れている場合、フォームログが確認できない問題を修正

Ver. 1系のa-blog cmsを2系にアップデートした時、フォームのログデータが壊れている場合、管理画面から確認できない不具合を修正しました。

CMS-4131 js-viewingでflex, table, gridは取り除かないように修正

js-viewing組み込みJSは、現在いるURLと同じリンクのa要素を外す機能です。 今までは、デフォルトで display属性が「block」「inline-block」の時のみa要素を外さないようにしていましたが、下記のように対象値が増えました。

  • block
  • inline-block
  • flex
  • grid
  • table

CMS-4184 Unit_Listモジュールでカスタムユニット変数&拡張ユニットが使えるように修正

Ver. 2.8.28 までは、ユニットリストではカスタムユニットや拡張されたユニットは表示できませんでした。

  • custom
  • custom_hoge

これを今回の改修で表示できるようにしました。

拡張ユニットの場合は、ユニット表示のテンプレートと同じようにブロックを 「<!-- BEGIN unit:loop -->」内に追記します。

<!-- BEGIN unit:loop -->
<!-- BEGIN unit#custom_hoge -->
...
<!-- END unit#custom_hoge -->
<!-- END unit:loop -->

CMS-4186 リダイレクトの設定によってはモジュールのダイアログボタンが動作しない問題を修正

「index.html」を「/」にリダイレクトしている時、モジュールのダイアログボタンが動作しない問題を修正しました。

CMS-4187 iOS端末から更新するとキャッシュがクリアされない場合がある問題を修正

iOS端末からエントリーを更新した時、大きな画像アップロードがあると、CMSのキャッシュが即時にクリアされない問題を修正しました。

CMS-4188 サブドメイン間移動でログインセッションが切れやすい問題を修正

サブドメイン拡張ライセンスで、ブログ毎にドメインを変更している場合、同時に複数タブを開くとセッションが切れやすい問題がありました。これを以下の設定をすることにより、セッションが切れにくくなるように修正しました。

config.server.php: 4行目付近

define('DOMAIN_BASE', 'example.com');

例えば、以下のようなドメインで運用している場合、基本ドメインとなる「example.com」を 「DOMAIN_BASE」に設定します。

  • www.example.com
  • blog.example.com
  • news.example.com
  • jp.example.com

CMS-4176 静的書き出しでのhttps証明書により書き出しできない場合がある問題の修正

「静的書き出し機能(プロフェッショナル版以上)」で、「自己署名証明書」でのhttps表示時に書き出しが動作しない問題を修正しました。

CMS-4134 テンプレート書き出しからhtmlフォーマットチェックを除外

「テンプレート書き出し機能」で MIMEタイプが「html」と判定された場合、htmlフォーマットをチェックする機能から除外しました。これは、テンプレート書き出しでは部分的なテンプレート書き出しや、html以外の書き出しもあるためです。

CMS-4199 IE11以下でvalidator.jsが動かない問題を修正

IE11以下で、JavaScriptによるフォームのバリデート(チェック)が動作していない問題を修正しました。

CMS-4200 CSVインポートでアップデート判定項目変更機能(プロ版以上)が動作していない問題を修正

「CSVインポート機能」で、プロフェッショナル版以上で動作する、entory_id以外の項目をキーしたエントリー更新ができない状況を修正しました。

以上、Ver. 2.8.29での修正内容になります。

a-blog cms Ver. 2.8.0-beta を公開!

a-blog cms Ver. 2.8.0-beta

a-blog cms Ver. 2.8.0-beta


開発の伊藤です。

大変お待たせしました。 ようやくa-blog cmsの次期バージョンであるa-blog cms Ver. 2.8.0のベータ版をダウンロード出来るようになりました。

Ver. 2.8.0 の目玉機能であるボタン1つでのアップデート機能がありますので、これから開発する案件などでも是非お試しください。

開発版になりますので、すでに運用中のサイトにはインストールしないようお願いします。

新規インストール版

php5.3.3 - php5.5.x 版

ダウンロード

php5.6.x - php7.0.x 版

ダウンロード

php7.1.x - php7.2.x 版

ダウンロード

a-blog cms Ver. 2.8.0-beta.18, 19 をお試しの方

現状 a-blog cms Ver. 2.8.0-beta.18, 19 をご利用の場合は、不具合により自動アップデートが動作しません。

php/ACMS/POST/Update/Exec.php 72行目付近のコメントアウトを外すことでアップデートできるようになります。

            // System Update
            $downloadService->download($dest, $url);
            $placeFileService->exec($new_path, $backup_dir);

a-blog cms Ver. 2.8.0-beta.4 をお試しの方

現状 a-blog cms Ver. 2.8.0-beta.4 をご利用の場合は、不具合により自動アップデートが動作しません。 以下パッチを適応することにより、自動アップデートできるようになりますので、お手数ですが適応お願いいたします。


ファイルを開く

パッチファイル

php/ACMS/POST/Update を パッチファイルのものと置き換えてください。

予定より遅れており申し訳ございません。ただもう少しでリリース出来そうです! Ver. 2.8の変更点をまとめたものも、近いうちに公開したいと思います。

簡単セットアップファイル

Windows XAMPP 版と Mac OS MAMP 版を用意しました。まずは、ローカル環境でお試しください。


ファイルを開く

ablogcms28b_setup_xampp.zip

ファイルを開く

ablogcms28b_setup_mamp.zip

表示しているエントリーと同じフィールドの値をもつ記事一覧を表示する

この記事では、現在いるエントリーと同じカスタムフィールドの値を持つエントリーを表示する方法をご紹介します。

たとえば、{select_item}という変数があったとします。{select_item}では「りんご」「もも」「ぶどう」の中から値が選べるようになっています。記事Aというエントリーが、「りんご」という値を持っていたとき、記事Aの詳細ページに、{select_item}という変数で「りんご」を選択しているエントリーをリストにして一覧することができます。


select_itemが「りんご」だったときの詳細ページの図

select_itemが「りんご」だったときの詳細ページの図


今回はモジュールで出力されるカスタムフィールドの値を使用したいので、モジュールが出力された後にモジュールを実行しなければいけません。実行順序を少し遅らせるためには、ポストインクルードを使います。ポストインクルードについて詳しくはドキュメントをご覧ください。

<!-- BEGIN_MODULE Entry_Field id="current_eid" -->
  <form action="" method="post" class="js-post_include-ready">
    <input type="hidden" value="{select_item}" name="select_item">
    <input type="hidden" value="select_item" name="field[]">
    <input type="hidden" name="tpl" value="include/sub/entryList.html">
    <input type="submit" name="ACMS_POST_2GET" style="display:none;">
   </form>
<!-- END_MODULE Entry_Field -->

1行目と8行目の記述

今回はエントリーの情報を表示したかったため、Entry_Fieldのモジュールを使用しました。

あらかじめ、Entry_Fieldモジュールで、モジュールID名で作成しておきます。ここではモジュールID名を「current_eid」としました。新しく作成したモジュールIDでは、現在いるエントリーの情報を表示できるように、「エントリーID(eid)」のURLコンテキストにチェックをつけておきました。


ポストインクルードで使用するためのモジュールIDの設定

ポストインクルードで使用するためのモジュールIDの設定


5行目の記述

5行目で指定している、include/sub/entryList.html には、とくに特殊な設定は必要なく、通常のモジュールを置いてください。

<input type="hidden" name="tpl" value="include/main/curriculum/this_course_summary.html">

include/sub/entryList.html(通常のモジュール)の例

<!-- BEGIN_MODULE Entry_List id="select_item_list" -->
<div class="acms-margin-bottom-medium">
<!--#include file="/admin/module/setting.html"-->
  <ul class="acms-list-group">
    <!-- BEGIN entry:loop -->
    <li><a href="{url}" class="acms-list-group-item">{title}</a></li>
    <!-- END entry:loop -->
  </ul>
</div>
<!-- END_MODULE Entry_List -->

モジュール設定

entryList.htmlの中に記述したモジュールにはモジュールIDの設定をしておく必要があります。ポストインクルードでフィールドの情報を渡しているため、フィールドのURLコンテキストが有効になった状態になったので、モジュールでもフィールドの情報が表示できるようになりました。Entry_List でフィールドの情報を表示するため、モジュールの設定も「フィールド(field)」のURLコンテキストを有効にしましょう。


表示用のモジュールIDの設定

表示用のモジュールIDの設定


動作の確認

ポストインクルードの記述で値を渡したカスタムフィールドの変数(この記事では「select_item」)と同じカスタムフィールド(この記事ではエントリーのカスタムフィールド)を作成し、値を入力してください。

ポストインクルードを設置したページに戻り、「include/sub/entryList.html」のテンプレートの中身が表示されれば完成です。もし表示されなかった方は手順をもう一度ご確認ください。

ロリポップ/レンタルサーバー‎ で画像がアップロードできない


GMOペパボ の ロリポップ レンタルサーバーサービスで a-blog cms をご利用の場合、画像がアップロードできない場合があることが確認されました。

原因

画像エンジンの Image Magick 周りの問題で、うまくファイルを保存できないことが原因。

対策方法

画像エンジンにGDを使います。 private/config.system.yaml ファイルに以下を追記ください。

image_magick : off

以上になります。 今後ともa-blog cmsをよろしくお願いいたします。

拡張アプリ ハンズオン資料

作成するアプリ

ACMS_Appの基本的な仕組みを使って、エントリーのリストを表示するGETモジュールを作成してみます。 今回は拡張アプリで作ることにより、モジュール専用の管理画面も作ってみたいと思います。

abstract クラスの継承

ACMS_APP を継承したクラス /php/AAPP/Custom.php を作成します。 クラス名は AAPP_ファイル名 に合わせてください。

ACMS_APPabstract(抽象)クラス で メソッドも全て abstract で定義されています。 これを継承して拡張アプリのインストール時などの動作を実装していきます。(DBを専用で使う時などはここでテーブルを用意したり、破棄してください)

今回は特にDBなどは使わないので空っぽの実装にしておきます。

Ver. 2.6.0 新機能体験 ハンズオン資料

こちらはa-blog cms Training Camp 2015 Autumn で開催される「Ver. 2.6.0 新機能体験」のハンズオン資料になります。

Ver. 2.6.0 の テンプレート周りの新機能をここでは紹介したいと思います。実際に触ってみてどういう動きをするか体験してみましょう!

SetTemplate

新しく追加されたテンプレート要素になります。 簡単に説明すると、解決前のテンプレートを変数化して好きに呼び出せる機能です。

  • 解決前のテンプレートを変数にSET
  • <!-- GetTemplate id="hoge --> で取得
  • 解決前なので GetTemplate しないブロックは実行されない

触ってみる

好きなテンプレートを変数化して呼び出して実行してみましょう。

<!-- BEGIN_SetTemplate id="hoge" -->

... 変数化したいテンプレート

<!-- END_SetTemplate -->

<!-- 呼び出し方 -->

<!-- GET_Template id="hoge" -->

動的カスタムフィールド ハンズオン資料

こちらはa-blog cms Training Camp 2015 Autumn で開催される「動的カスタムフィールド」のハンズオン資料になります。

カスタムフィールドをカスタムフィールドで作成する!

a-blog cmsではカスタムフィールドをテンプレートに書くことで簡単に作成することができますが、 チェックボックスの選択肢を変更したい場合などにテンプレートを変更しないといけません。

そこでこのハンズオンでは、動的にカスタムフィールドの選択肢の値を変更できるようにしてみたいと思います。

カスタマイズ

今回はsite2015の物件情報の最寄り駅選択肢を動的化していくので、まずはsite2015テーマをインストールしてください。

カスタムフィールドのメタ情報の準備

まずは、選択肢のカスタムフィールドを作っていきます。今回はブログのカスタムフィールドを利用してみたいと思います。

/themes/site2015/admin/blog/field.html に以下のコードを追加します。