【不具合】Ver. 2.11.13 〜 2.11.18 をお使いで、バージョン管理機能、承認機能を利用されている方へ

問題の内容

Ver. 2.11.13 〜 2.11.18 をお使いで、バージョン管理機能、承認機能を利用されている場合、エントリの(バージョン指定された)編集画面でカテゴリが選択 できない(カテゴリ選択UIが表示されない)問題が判明しております。

対象

a-blog cms Ver. 2.11.13 〜 2.11.18 の場合

対応策

a-blog cms Ver. 2.11.19 以上にアップデートを行う。

お手数ですが当てはまる場合ご対応をお願いいたします。

この度はご迷惑をお掛けしてしまい申し訳ございません。
今後ともa-blog cmsをよろしくお願いいたします。

config.server.php


定義名 説明 初期値
DOMAIN システムの基本ドメイン。インストール時に設定されます 'localhost'
DOMAIN_BASE サブドメイン利用時のサブドメインを除いたドメインを指定 ''
DB_TYPE 使用するRDBMSの種類。現状 MySQL のみがサポートされます 'mysql'
DB_HOST データベースのホスト。インストール時に設定されます ''
DB_NAME データベースの名前。インストール時に設定されます ''
DB_USER データベースのユーザー。インストール時に設定されます ''
DB_PASS データベースのパスワード。インストール時に設定されます ''
DB_PORT データベースのポート。通常は変更しません ''
DB_CHARSET データベースの文字コード。インストール時に設定されます ''
DB_CONNECTION_CHARSET データベースへの接続文字コードを指定します。何も指定しない場合は、utf-8が利用されます。
絵文字などを利用する場合は、utf8mb4を指定ください。(データベース側もutf8mb4に変更)
null
DB_PREFIX a-blog cmsによって作成されるテーブルの接頭辞。インストール時に設定されます ''
DB_SLOW_QUERY_TIME ベンチマークモード時にスロウクエリを表示する基準タイムを設定します 0.3
GETTEXT_TYPE どのようなに国際化するかのオプション。 fix(固定)|auto(ブラウザ設定)|user(ユーザのカスタムフィールドによって) 'auto'
GETTEXT_APPLICATION_RANGE どのページで国際化をするかの設定。admin(管理ページのみ)|login(ログイン時のみ)|all(すべてのページ) 'all'
GETTEXT_DEFAULT_LOCALE デフォルトロケール値 'ja_JP'
GETTEXT_DOMAIN 国際化時のドメイン 'messages'
GETTEXT_PATH 国際化ファイルのディレクトリ名 'lang'
SSL_ENABLE ONで管理ページでSSL/TLS有効になります 0(1:ON / 0:OFF)
TRUSTED_PROXY_LIST X-Forwarded-ForなどのHTTPヘッダーは簡単に偽装可能なため、ここに信頼できるプロキシのIPアドレスを列挙することで、接続元IPアドレスを特定するための、X-Forwarded-For HTTPヘッダーから信頼できる接続元IPアドレスを特定できるようになります ''
PROXY_IP_HEADER リバースプロキシが入っている時、ここで設定されているHTTPヘッダーを元に接続元IPアドレスを特定します HTTP_X_FORWARDED_FOR
FULLTIME_SSL_ENABLE ONでサイト全体がSSL/TLS有効になります。※有効にする際はSSL_ENABLEもONにする必要があります 0(1:ON / 0:OFF)
COOKIE_SECURE Cookieでセキュア属性を設定するかどうか設定します 0(1:ON / 0:OFF)
COOKIE_HTTPONLY CookieでHTTP ONLY属性を設定するかどうか設定します 1(1:ON / 0:OFF)
COOKIE_SAME_SITE CookieのSameSite属性を設定します 'Lax'
HOOK_ENABLE ONでフック機能が有効になります 0(1:ON / 0:OFF)
RESOLVE_PATH テンプレート上のリンクやリソースの場所を自動で補完します 1(1:ON / 0:OFF)
URL_SUFFIX_SLASH ONでシステムが生成するURLの末尾にスラッシュ( / )が付きます 1(1:ON / 0:OFF)
SESSION_NAME a-blog cms のセッション名 'sid'
REWRITE_FORCE mod_rewrite機能が有効でない場合にも強制的にmod_rewrite用のURLを出力します 1(1:ON / 0:OFF)
MAX_PUBLISHES 同時に生成出来る動的なページのページ数です。キャッシュされているページは除外します。動的に生成しなければならないページのリクエストがこの数を超えると503ページが返されます。この数をむやみに上げすぎるとサーバに負担がかかります。サーバのパフォーマンスにあわせて調整してください 3
MAX_EXECUTION_TIME プログラムの最大実行時間(秒) 30
DEFAULT_TIMEZONE デフォルトのタイムゾーンを設定します Asia/Tokyo
PHP_SESSION_USE_DB PHPネイティブセッションでDBハンドラを使用するかどうかの設定 0(1:ON / 0:OFF)
THEMES_DIR テーマディレクトリの場所 'themes/'
ARCHIVES_DIR アーカイブディレクトリの場所 'archives/'
REVISON_ARCHIVES_DIR バージョン管理で使用するアーカイブディレクトリの場所 'archives_rev/'
MEDIA_LIBRARY_DIR メディア管理で使用するアーカイブディレクトリの場所 'media/'
ARCHIVES_CACHE_SERVER 画像などのURLをここで設定したものに書き換え。(CDNなどで利用) ''
PHP_DIR プログラム(PHP)ディレクトリの場所 'php/'
JS_DIR プログラム(Javascript)ディレクトリの場所 'js/'
IMAGES_DIR システムイメージディレクトリの場所 'images/'
CONFIG_FILE コンフィグの設定ファイルの場所。拡張する場合はこのファイルを編集 'private/config.sysytem.yaml'
CONFIG_DEFAULT_FILE コンフィグのデフォルト値が格納された設定ファイルの場所 'private/config.sysytem.default.yaml'
MIME_TYPES_FILE MIMEタイプの定義ファイルの場所 'private/mime.types'
REWRITE_PATH_EXTENSION リンクの書き換えを行う、拡張子を設定 'pdf|doc|docx|ppt|pptx|xls|xlsx|lzh|zip|rar'
ERROR_LOG_FILE エラーログの出力先を設定。空の場合はOSのシステムログを使用 ''
BID_SEGMENT ブログID 'bid'
AID_SEGMENT エイリアスID 'aid'
UID_SEGMENT ユーザーID 'uid'
CID_SEGMENT カテゴリーID 'cid'
EID_SEGMENT エントリーID 'eid'
UTID_SEGMENT ユニットID 'utid'
CMID_SEGMENT コメントID 'cmid'
TBID_SEGMENT トラックバックID 'tbid'
KEYWORD_SEGMENT キーワード 'keyword'
TAG_SEGMENT タグ 'tag'
FIELD_SEGMENT フィールド 'field'
ORDER_SEGMENT 並び順 'order'
ALT_SEGMENT オルタネイト 'alt'
TPL_SEGMENT テンプレート 'tpl'
PAGE_SEGMENT ページ 'page'
PROXY_SEGMENT プロキシー 'proxy'
TRACKBACK_SEGMENT トラックバック 'trackback'
SPAN_SEGMENT スパン(期間) 'span'
ADMIN_SEGMENT 管理ページ 'admin'
MEDIA_FILE_SEGMENT メディアファイルのダウンロード 'media-download'
LOGIN_SEGMENT 管理ログインページ 'login'
ADMIN_RESET_PASSWORD_SEGMENT 管理ユーザーのパスワード再設定ページ 'admin-reset-password'
ADMIN_RESET_PASSWORD_AUTH_SEGMENT 管理ユーザーの新パスワード入力ページ 'admin-reset-password-auth'
ADMIN_TFA_RECOVERY_SEGMENT 管理ユーザーの2段階認証解除ページ 'admin-tfa-recovery'
SIGNIN_SEGMENT サインインページ 'signin'
SIGNUP_SEGMENT 会員登録ページ 'signup'
RESET_PASSWORD_SEGMENT 一般ユーザーのパスワード再設定ページ 'reset-password'
RESET_PASSWORD_AUTH_SEGMENT 一般ユーザーの新パスワード入力ページ 'reset-password-auth'
TFA_RECOVERY_SEGMENT 一般ユーザーの2段階認証解除ページ 'tfa-recovery'
PROFILE_UPDATE_SEGMENT プロフィール更新ページ(ログイン後) 'mypage/update-profile'
PASSWORD_UPDATE_SEGMENT パスワード変更ページ(ログイン後) 'mypage/update-password'
EMAIL_UPDATE_SEGMENT メールアドレス変更ページ(ログイン後) 'mypage/update-email'
TFA_UPDATE_SEGMENT 2段階認証設定ページ(ログイン後) 'mypage/update-tfa'
WITHDRAWAL_SEGMENT 退会ページ(ログイン後) 'mypage/withdrawal'
LIMIT_SEGMENT 表示の上限件数(未使用) 'limit'
DOMAIN_SEGMENT ドメイン 'domain'
IOS_APP_UA iOSアプリのユーザーエージェント(未使用) 'acms_iOS_app'
API_SEGMENT REST API  'api'
DEBUG_MODE デバッグモード。ONの間は各種エラーメッセージが表示されます。サイト公開中はOFFに設定してください。 1(1:ON / 0:OFF)
BENCHMARK_MODE ベンチマークモード。ONの間はモジュール実行時間などのベンチマーク情報が表示されます。サイト公開中はOFFに設定してください。 0(1:ON / 0:OFF)

モジュールID名に「ctx」が含まれているとctx指定が読み込めなくなる

ID名「test_module_ctx」でモジュール作成している画面


システムの仕様上、モジュールID名に「ctx」を含ませるとテンプレートでのctx指定が読み込めなくなりますのでご注意ください。

NG

<!-- BEGIN_MODULE *** id="test_module_ctx" ctx="bid/1/cid/6" -->
<!-- END_MODULE *** -->

OK

<!-- BEGIN_MODULE *** id="test_module" ctx="bid/1/cid/6" -->
<!-- END_MODULE *** -->

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

フォームオプション

validator ( v )

フィールドを検証する設定項目です。”validator#required” は “v#required” と省略することができます。

次の例では、”mailaddress” という名前のカスタムフィールドを追加し、正しいメールアドレスであることをチェックします。

例:正しいメールアドレスが入力されているかのチェック

<input name="mailaddress" type="text" value="" />
<input type="hidden" name="field[]" value="mailaddress" />
<input type="hidden" name="mailaddress:validator#email" />
required フィールドに「入力が必須である」という属性を指定します。 ソース
例)<input type="hidden" name="filedname:v#required" />
minlength フィールドに文字数の下限を指定します。
maxlength フィールドに文字数の上限を指定します。 ソース
例)<input type="hidden" name="filedname:v#maxlength" value="20" />
min フィールドが数値の時、数値の下限を指定します。
max フィールドが数値の時、数値の上限を指定します。
regex フィールドの内容が "正規表現にマッチ" するかどうかをチェックします。 ソース
例)<input type="hidden" name="tel:v#regex" value="\d\{2,4\}-\d\{2,4\}-\d\{4\}" />
digits フィールドの内容が "数値" かどうかをチェックします。
email フィールドの内容が "正しいメールアドレス" かどうかをチェックします。
url フィールドの内容が "正しいURL" かどうかをチェックします。
equalTo フィールドの内容が "指定された別のフィールド" と同じかどうかをチェックします。(ソースはパスワードの再確認フォームの例です) ソース
例)<input name="password" type="text" value="" />
<input type="hidden" name="field[]" value="password" />
<input name="password2" type="text" value="" />
<input type="hidden" name="field[]" value="password2" />
<input type="hidden" name="password2:v#equalTo" value="password" />
dates フィールドの内容が"日付系の校正オプションを適用可能な形式"かどうかチェックします。
適用可能な形式:
(月と日が1桁の場合、2桁目の0は必須ではありません)
1985-08-26、1985/08/26、1985.08.26、s60.8/26、h21.5.11
katakana フィールドの内容が"カタカナ"かどうかチェックします。
"カタカナ" 以外はエラーとなる仕様のため、スペースなどが入力された場合もエラーとみなします。
hiragana フィールドの内容が"ひらがな"かどうかチェックします。
"ひらがな" 以外はエラーとなる仕様のため、スペースなどが入力された場合もエラーとみなします。
times 時間系の校正オプションを適用可能な形式かチェック
all_maxChecked チェックボックス等の選択数の上限を指定します。
all_minChecked チェックボックス等の選択数の下限を指定します。
all_justChecked チェックボックス等の選択数を指定します。
duplication 過去に送信されたメールアドレスかどうかをチェックします。こちらの設定はテンプレートではなく、フォーム設定で、設定する必要があります。
filesize ファイルサイズをチェックします。KBで指定。 ソース
例)<input type="hidden" name="pdf:v#filesize" value="500" />
password コンフィグで設定したパスワードポリシーに違反していないかをチェックします。

converter ( c )

指定されたフィールドを任意の形式に変換します。これは、変換に指定できるオプションPHPのmb_convert_kana関数に依存します。mb_convert_kana関数の仕様にならい、複数のオプションを指定することもできます。詳細は、上記のリファレンスをご確認ください。

次の例ではaddressという名前のカスタムフィールドを追加し、送信時に入力内容の全角英数を半角英数に変換しています。

例:送信時に入力内容の全角英数を半角英数に変換する

<input name="address" type="text" value="" />
<input type="hidden" name="field[]" value="address" />
<input type="hidden" name="address:c" value="a" />
オプション 意味
r 「全角」英字を「半角」に変換します。
R 「半角」英字を「全角」に変換します。
n 「全角」数字を「半角」に変換します。
N 「半角」数字を「全角」に変換します。
a 「全角」英数字を「半角」に変換します。
A 「半角」英数字を「全角」に変換します。
s 「全角」スペースを「半角」に変換します(U+3000 -> U+0020)。
S 「半角」スペースを「全角」に変換します(U+0020 -> U+3000)。
k 「全角カタカナ」を「半角カタカナ」に変換します。
K 「半角カタカナ」を「全角カタカナ」に変換します。
h 「全角ひらがな」を「半角カタカナ」に変換します。
H 「半角カタカナ」を「全角ひらがな」に変換します。
c 「全角カタカナ」を「全角ひらがな」に変換します。
C 「全角ひらがな」を「全角カタカナ」に変換します。
V 濁点付きの文字を一文字に変換します。"K", "H" と共に使用します。

a-blog cms zoom up 2020/09 が開催されました


a-blog cmsでは、9月8日に「a-blog cms zoom up 2020/09」を開催いたしました。

a-blog cms zoom upは、a-blog cmsのユーザーの皆様と開発者がZoomに参加し、a-blog cmsの活用方法や、利用した感想などを発表する、オンラインのイベントです。

今回は以下2つのセッションと、パネルディスカッションを行いました。

  • 「a-blog cms のパフォーマンスチューニングについて」 有限会社アップルップル 伊藤 淳 さん
  • 「ナレッジ共有にも使えちゃうa-blog cms」 株式会社ルーコ 鈴木 孝明さん
  • 「a-blog cms を利用するディレクターさんのパネルディスカッション」ONiWA株式会社 稲葉 智宏 さん / 株式会社Gazi工房 原 一宣 さん / 株式会社テリムクリ 山田 恵理子 さん / 株式会社ルーコ 鈴木 孝明さん

a-blog cms を利用するディレクターさんのパネルディスカッションの要約

a-blog cms を利用するディレクターさんを集め、パネルディスカッションはが開かれました。ファシリテーターはONiWA株式会社 稲葉 智宏 さんにお願いしました。

パネルディスカッションの内容は各パネラーに許可をいただき、内容を元に要約したものを掲載しております。

まずはそれぞれのパネラーの働き方からご紹介します。

株式会社Gazi工房 原 一宣さんの働きかた

原さんは山形県でディレクターとして活躍されています。

  • 実装は社員の赤井さんが担当している
  • 原さんは営業も行っている
  • 二人体制で頑張っている

株式会社テリムクリ 山田 恵理子さんの働きかた

山田さんは香川県でディレクターとして活躍されている方です。

  • 社内に営業の方が別でいるので、山田さん自体は営業はしてない
  • プロジェクトもキツくないので、ほどほどに働くことができる
  • 実際にはマーケティングや、UI/UXを考えてウェブサイトのワイヤーを書くのが主な仕事
  • お客さんは継続と新規の両方

株式会社ルーコ 鈴木 孝明さんの働きかた

鈴木さんは愛知県でディレクターとして活躍されています。

  • 軌道に載せたいときや結果を出したいときに自分でテンプレートを書いている
  • 実はプロジェクト管理は苦手
  • まずはクライアントに小さく成功してもらい、その後から素敵なデザイナーさんをアサインするワークフローを実施している
  • 7つ、8つが定期のお客さん、他は新規のお客さんや相談のみのお客さん

クライアントへの対応

コロナ渦に入った今、どのようにクライアントとコミュニケーションをしているのかという話題になりました。

既存のクライアントはSlackに移行し、新規のお客様は電話での対応を行っている方がいらっしゃる中、Slackが使えるレベルに到達するのも難しいので電話で当然だと思うようにしている方もいらっしゃいました。既存のお客様に合わせて対応手段を変更されているようです。

また、コミュニケーション手段により、サービス化するようにしている方もいらっしゃいました。たとえば遠くても実際に訪問して打ち合わせを望むクライアントもいれば、なんとか自分で動いて対応してくれる人もいるので、運用規模やお客さんに合わせてサービス化して対応しているそうです。

社内にディレクターを増やしたいけど難しい

社内にディレクターを増やすためにどうしているのかという話題になりました。ディレクターは、デザイナーやエンジニアとは異なり、技術的な知識は体系化されていない職種なのでどうやって求人や教育をしているのでしょうか。

人を育てるのは難しいかもしれないという意見や、そもそも定義がわからないといった意見も。お話を聞いている中で、ディレクターの方々のお仕事を定義するのは難しそうな印象を筆者も受けました。

そんな中で、ディレクターの仕事について話し合っていただきました。

  • ディレクターに必要なスキル:「Web制作のしくみ、マーケティングの流れ、リソース管理ができる、見積もりができる」(山田さん)
  • コストパフォーマンスが高い仕事はネーミングを設定すること。例えば、なにも考えていないサービスに対して、名前をつけて、広告をするのがコストパフォーマンスを出す。普段お客さんがやってることで利益を出すのが無理がない。(鈴木さん)
  • ゴールを設定する。達成方法はWebには拘らず、チラシ作成なども提案する。Webに固執することはない(山田さん)
  • やめたほうがいいことはちゃんと止めることが仕事(坂本さん)→なのでお客さんの立場をちゃんと考えることが大事(稲葉さん)

ディレクターをやっていてよかったこと

今まで、ディレクターという職種はなんだか大変そうな印象を受ける中で、最後はディレクターをやっていてよかったことについてお答えいただきました。

  • クライアントからダイレクトで感謝を伝えてもらえる
  • いろいろな業界のことに詳しくなれる
  • 様々な業界について詳しくなれるので、転職しやすそう(稲葉さん)
  • クライアントのサイトを制作した際に結婚式場の競合調査をしていたので、自信が結婚するときにすでにデータを洗い出していて、結婚式場がすぐに決まり、自分の生活が豊かになった(山田さん)
  • サイトが役立つものになって、デザインを当てられるときになったらとても嬉しい。つまり、最初が成功して、次につながったときによろこびを感じる。(鈴木さん)

パネルディスカッションのまとめ

このパネルディスカッションを通して、会社によってもディレクターという職種が担う範囲が異なることや、デザイナーやエンジニアでは味わえないよかったことなど、さまざまなことがわかりました。パネラーの皆様、この度は貴重なお話をありがとうございました!

次回の a-blog cms zoom up について

次回の a-blog cms zoom up は10月13日(火)に行います。
現在登壇者を募集中です。ご興味ある方はDoorkeeperのお問い合わせからご連絡ください。