ショートカット機能

コンフィグやモジュールIDの設定画面へのショートカットが管理画面のダッシュボードに表示されるようになり、よく変更するコンフィグを登録しておくと便利に運用することができます。

権限の付与

通常、モジュールIDやコンフィグ設定は、管理者権限がないと編集が出来ません。 しかしショートカット機能を使うと、投稿者や編集者においても編集権限を付与することができます。

管理者権限で作成済みの項目について、編集範囲をカスタマイズしたい場合にご利用ください。

ショートカットによって権限付与ができる機能

  • 任意のカテゴリー
  • 任意のブログ
  • 任意のスケジュール
  • カート
  • 任意のコンフィグ管理
  • 任意のモジュールID
  • テンプレート書出し管理

さらに詳細な権限のカスタマイズをしたい場合は、プロフェッショナル・エンタープライズ版ライセンスに含まれるロール機能をご利用ください。

ショートカットの作成

ショートカットに登録できるのは、コンフィグとモジュールIDのコンフィグになります。 ショートカットに追加したいコンフィグに移動し、画面右上の「ショートカットに追加」ボタンを押します。


ショートカットに追加ボタン

ショートカットに追加ボタン


「ショートカットに追加」ボタンを押すと、以下のような画面に移動するので、設定を行い作成をします。

  • ショートカット名(任意の名前)
  • 対象ユーザー(編集権限を与えるユーザー権限を設定)

設定後「作成」ボタンを押してショートカットを作成します。


ショートカット設定画面

ショートカット設定画面


ショートカットの利用

先ほど設定した権限以上のユーザーでログインし、管理ページに移動してみます。ダッシュボードにショートカットが追加されていることが確認できると思います。このコンフィグは管理者でなくても変更できるようになっています。


編集者のダッシュボード

編集者のダッシュボード


ショートカットの管理

管理者でログインすると 管理ページ > ショートカット というメニューがあり、いままで登録したショートカットの管理をすることができるようになっています。

  • ショートカットの並び順の変更
  • ショートカット名・権限の変更
  • ショートカットの削除

ショートカット管理画面

ショートカット管理画面

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

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

たとえば、{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」のテンプレートの中身が表示されれば完成です。もし表示されなかった方は手順をもう一度ご確認ください。

httpsのリンクを書き換える

a-blog cmsでは、httpとhttpsのリンクを自動で書き換える機能が標準で実装されています。

この機能は、相対パスでリンクしているナビゲーションのリンク先を、通常のhttpのページでは設定しているリンクのみhttpsとし、お問い合わせフォーム等のhttpsで運用したいページでは、設定していないリンク先を任意にhttpsではなくhttpとすることができます。

テンプレートの記述方法

以下のようにリンク先のURLをhttpsとしたいリンクに関してはrel属性に"https"と記述してください。

<a href="/contact/" rel="https">お問い合わせ</a>

config.js内での該当部分

//------------------------------
// link https disabler, enabler
linkHttpsDisablerMark   : 'a:not([rel*="https"])', // 暗号化を利用したhttps通信時に通常のリンクがhttps://になってしまうものをhttp://に書き換えます。
// a:not([rel*="https"]) というセレクタが設定されている場合はrel属性に"https"と指定されているリンクは書き換えを行わずにhttps://のままになります。
linkHttpsEnablerMark    : 'a[rel*="https"]', // 通常のhttp通信時にセレクタに該当するアンカーをhttps://から始まるURLに書き換えます。
linkHttpsNoRewriteMark  : '.js-link_no_rewrite',

該当部分の解説

linkHttpsDisablerMark : 'a:not([rel*="https"])

https で表示されているページ内でのリンクのrel属性にhttpsという文字列が含まれていない場合、そのリンクはhttpから始まるリンクとなります。

linkHttpsEnablerMark : 'a[rel*="https"]'

httpで表示されているページ内でのリンクのrel属性にhttpsという文字列が含まれている場合、そのリンクはhttpsから始まるリンクとなります。

linkHttpsNoRewriteMark : '.js-link_no_rewrite'

このクラスを振る事により、この書き換え機能を無効にできます。