編集画面

目次

テーブルの編集

テーブルユニットにも採用されているテーブルの編集のユーザーインターフェースです(Ver.2.7.0 より)。
カスタマイズ次第でブログやカテゴリー、エントリーのカスタムフィールドとしても利用可能です。


テーブル見出しとテーブルの内容それぞれがグラフィカルに入力できるようになっている

テーブル編集UIのイメージ


使い方

js/config.js に設定されている「aTableMark, aTableDestMark, aTableFieldMark」に設定されているクラスを利用して以下のようなHTMLを記述します。 IFブロックのELSEの中には初期値のテーブルを好きに記述することができます。

<div class="js-editable-table-field" style="background-color:#ddd;padding:10px;">
  <div class="js-editable-table">
    <!-- BEGIN_IF [{table}[delnl]/nem] -->
    {table}[raw]
    <!-- ELSE -->
    <table>
      <tr>
        <th>サンプル</th>
        <th>サンプル</th>
      </tr>
      <tr>
        <td>サンプル</td>
        <td>サンプル</td>
      </tr>
    </table>
    <!-- END_IF -->
    <input type="hidden" class="js-editable-table-dest" value="{table}" name="table">
    <input type="hidden" name="field[]" value="table">
  </div>
</div>

デフォルトの設定

この機能の設定は、/js/config.jsの以下の箇所にあります。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。詳しくは「組み込みJSについて:設定を編集する」を参照してください。

aTableMark: '[class^=js-editable-table]',
// エントリーの編集画面でユニットにこのクラスを指定することでテーブルユニットとして動作します。
aTableDestMark: '.js-editable-table-dest',
// テーブルで入力されたHTMLの結果をvalueとして格納することができます。
aTableFieldMark: '.js-editable-table-field',
/*
カスタムフィールドなどでテーブル編集用のUIを表示するには上の
aTableMarkで指定された要素をさらにこのセレクターで囲ってあげる必要があります
*/
aTableConf: {
  align: {
		default: 'acms-cell-text-left',
		// セルにデフォルトで付与されたクラス
		left: 'acms-cell-text-left',
		// 左寄せを設定した際に実際にセルに付与されるクラス
		center: 'acms-cell-text-center',
		// 中央寄せを設定した際に実際に付与されるクラス
		right: 'acms-cell-text-right'
		// 右寄せを指定した際に実際に付与されるクラス
  },
  btn: {
		group: 'acms-admin-btn-group acms-admin-btn-group-inline',
		//テーブル編集UIのボタングループに付与されるクラス
		item: 'acms-admin-btn',
		//テーブル編集UIのボタンに付与されるクラス
		itemActive: 'acms-admin-btn acms-admin-btn-active'
		//テーブル編集UIのボタンがアクティブの際に付与されるクラス
  },
  icon: {
		alignLeft: 'acms-admin-icon-text-left',
		//左寄せアイコンに付与されるクラス
		alignCenter: 'acms-admin-icon-text-center',
		//中央寄せアイコンに付与されるクラス
		alignRight: 'acms-admin-icon-text-right',
		//右寄せアイコンに付与されるクラス
		undo: 'acms-admin-icon-undo',
		//undoアイコンに付与されるクラス
		merge: 'acms-admin-icon-merge',
		//mergeアイコンに付与されるクラス
		split: 'acms-admin-icon-split',
		//分割アイコンに付与されるクラス
		source: 'acms-admin-icon acms-admin-icon-source',
		//ソースアイコンに付与されるクラス
	td: '',
	//tdアイコンに付与されるクラス
	th: ''
	//thアイコンに付与されるクラス
  }
},
aTableSelector: [
	/*
		右寄せ、左寄せ、中央寄せ以外に付与したいクラスがある場合にここに値を追加できます
		label: セレクターに表示される内容, value: 選択時にセルに付与されるクラス
	*/
  { label: ACMS.i18n('a_table.not_newline'), value: 'acms-cell-text-nowrap acms-admin-cell-text-nowrap' },
  { label: ACMS.i18n('a_table.bold'), value: 'acms-cell-text-bold acms-admin-cell-text-bold' },
  { label: ACMS.i18n('a_table.top_alignment'), value: 'acms-cell-text-top acms-admin-cell-text-top' },
  { label: ACMS.i18n('a_table.center_alignment'), value: 'acms-cell-text-middle acms-admin-cell-text-middle' },
  { label: ACMS.i18n('a_table.bottom_alignment'), value: 'acms-cell-text-bottom acms-admin-cell-text-bottom' }
]

アラートのメッセージを閉じる

a-blog cmsでは、管理画面で使用されているアラート(.acms-alert)を閉じる機能が実装されています。(Ver. 2.0.0より)

デモ

acms-alert
.acms-alert-info
.acms-alert-danger
<div class="acms-alert acms-alert-icon">
  <button 
    type="button"
    class="js-acms-alert-close acms-alert-icon-after"
    aria-label="アラートを閉じる"
  >
    ×
  </button>
  acms-alert
</div>
<div class="acms-alert acms-alert-info acms-alert-icon">
  <button 
    type="button"
    class="js-acms-alert-close acms-alert-icon-after"
    aria-label="アラートを閉じる"
  >
    ×
  </button>
  .acms-alert-info
</div>
<div class="acms-alert acms-alert-danger acms-alert-icon">
  <button 
    type="button"
    class="js-acms-alert-close acms-alert-icon-after"
    aria-label="アラートを閉じる"
  >
    ×
  </button>
  .acms-alert-danger
</div>

デフォルトの設定

この機能の設定は、/js/config.jsの以下の箇所にあります。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。詳しくは「組み込みJSについて:設定を編集する」を参照してください。

  //------------------
  // acms alert close
  acmsAlertCloseMark: '.js-acms-alert-close',
  acmsAlertCloseConfig: {
    target: '.acms-admin-alert, .acms-alert'
  },
  acmsAlertCloseArray: [
    //    {
    //        'mark'    : '',
    //        'config'  : {}
    //    }
  ],


acmsAlertCloseMark 閉じるボタン
acmsAlertCloseConfig 押された時に非表示にする内容

設定のカスタマイズ

config.jsのデフォルトの設定からカスタマイズする場合、別途作成したJSファイルに下記のように記述します。

ACMS.Ready(function(){
  ACMS.Config.acmsAlertCloseMark = '.js-sample-alert-closed';
  ACMS.Config.acmsAlertCloseConfig = {
    target  : '.js-sample-alert'
  };
  ACMS.Config.acmsAlertCloseArray = [
  //    {
  //        'mark'    : '',
  //        'config'  : {}
  //    }
  ],
});

acmsAlertCloseArrayでは配列を渡せるようになっており、複数の設定を指定したいときに使います。
configにはacmsAlertCloseConfigの設定を指定できます。

class属性を.js-close-alertにし、targetの項目を追加する場合には以下のように記述します。

ACMS.Ready(function(){
  ACMS.Config.acmsAlertCloseArray.push({
    mark: '.js-close-alert',
    config: {
      target: 'js-alert'
    }
  });
});

モジュールID編集画面のモーダル

a-blog cmsでは、モジュールID編集モーダルを表示する機能が実装されています。(Ver. 1.6.0より)

Ver. 1.7.0より、モーダルをより簡単に実装するテンプレートがsystemテーマの中に入っています
設置箇所:themes/system/admin/module/setting.html



デフォルト設定

この機能の設定は、/js/config.jsの以下の箇所にあります。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。詳しくは「組み込みJSについて:設定を編集する」を参照してください。

  moduleManagementMark: '.js-module_management',


moduleManagementMark モジュールID編集モーダルを表示するボタン要素につけるクラス名

使い方

使い方

moduleManagementMark で設定したクラスを、モジュールID編集モーダルを表示する場合にクリックする要素に指定します。

編集したいモジュールID のモジュールIDを data-mid 属性に、ブログIDを、data-bid 属性に指定することで、モジュールID編集モーダル機能を実装することができます。

マウスオーバー時に表示されるウインドウをカスタマイズする場合以下のテンプレートを編集してください。

themes/system/admin/module/setting.html

<!-- BEGIN_MODULE Touch_NotPreview -->
<!-- BEGIN_MODULE Touch_SessionWithAdministration -->
<!-- BEGIN module_setting -->
<!-- BEGIN_IF [{admin_module_mid}/nem] -->
<p class="{{class|default('acms-admin-module-edit')}}"><a href="#" class="js-module_management" data-bid="{admin_module_bid}" data-mid="{admin_module_mid}"><!--T-->モジュール<!--/T--></a></p>
<!-- ELSE -->
<p class="{{class|default('acms-admin-module-edit')}}"><a href="{admin_module_url}" class="js-dialog-btn js-link_no_rewrite"><!--T--><!--$1-->{admin_module_name}<!--/$1--> を編集<!--/T--></a></p>
<!-- END_IF -->
<!-- END module_setting -->
<!-- END_MODULE Touch_SessionWithAdministration -->
<!-- END_MODULE Touch_NotPreview -->

モジュールID編集画面へのモーダルを設置する

モジュールのスニペットには、標準でモジュール設定画面へのリンクが記述してあります。旧バージョンからのアップデートや昔に作成したサイトをベースに構築する場合は個別にモジュール設定画面へのリンクを設置してください。

通常のモジュールの記述

<!-- BEGIN_MODULE Entry_List -->
<div>
  <ul>
    <!-- BEGIN entry:loop -->
    <li><a href="{url}">{title}</a></li>
    <!-- END entry:loop -->
  </ul>
</div>
<!-- END_MODULE Entry_List -->

モーダルを設置した記述

3行目が追加されています。BEGINブロックとENDブロックの間にインクルード文を挿入します。 親の要素に相対した位置に表示されるためインクルード文をdiv要素で囲んでおくと(2行目と9行目)、マウスをホバーした際にモジュールの右上に編集ボタンが表示されます。

<!-- BEGIN_MODULE Entry_List -->
<div>
@include("/admin/module/setting.html")
  <ul>
    <!-- BEGIN entry:loop -->
    <li><a href="{url}">{title}</a></li>
    <!-- END entry:loop -->
  </ul>
</div>
<!-- END_MODULE Entry_List -->

エントリーの自動保存

動作環境

HTML5の「Web Storage」が利用できるブラウザのみで動作します。



ブラウザ 対応バージョン
Internet Explorer 8以降
Firefox 3.6以降
Google Chrome 8以降
Safari 5以降
Opera 11以降

設定項目

基本的には、デフォルトでこの機能はONになっています。 設定は、/js/config.jsの以下の箇所にあります。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。

//--------------
// web storage
webStorage          : 'on',
webStorageType      : 'local', // local or session
webStorageCapacity  : 'one', // one or limitless
webStorageInterval  : 2000,


項目 説明
webStorage on/off 自動保存機能を使うかどうか設定します。
webStorageType local/session ストレージタイプの設定をします。
webStorageCapacity one/limitless エントリーの保存数を設定します。
webStorageInterval 数値 保存する間隔を設定します。

webStorage

ローカルとセッションがあり、タイプによって保存される期間が異なってきます。



local 永続的
session ウィンドウやタブを閉じるまで

webStorageCapacity

one/limitlessを設定できます。oneの場合は、一つのエントリーのみ保存します。limitlessの場合は、エントリー毎に自動保存を行うことができます。

webStorageInterval

保存する間隔をミリ秒で指定します。

WYSIWYGエディタ

2023年09月14日以降にリリースされるバージョンより、WYSIWYGエディタで利用しているライブラリが「CKEditor」から「Trumbowyg」に変更されました。

詳しくは、リリースノートをご確認ください。

a-blog cmsでは、任意の入力フィールドをWYSIWYGエディタにする設定が標準で実装されています。(Ver. 1.2.1より)

この機能を使用するとカスタムフィールドやお問い合わせフォームなどの任意の入力フィールドでWYSIWYGエディタを使用することができます。

a-blog cms では、WYSIWYGエディタに Trumbowygというライブラリを使用しています。

デモ

デフォルトの設定

この機能の設定は、/js/config.jsの以下の箇所にあります。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。詳しくは「組み込みJSについて:設定を編集する」を参照してください。

  //-------------------
  // WYSIWYG Editor (trumbowyg)
  // @link https://alex-d.github.io/Trumbowyg/
  wysiwygMark: 'textarea.js-wysiwyg,textarea.js-ckeditor,textarea.js-emoditor',
  wysiwygConfig:
  {
    lang: 'ja',
    // resetCss: true,
    autogrow: true,
    tagsToRemove: ['script'],
    btns: [
      ['viewHTML'],
      ['undo', 'redo'], // Only supported in Blink browsers
      ['formatting'],
      ['fontsize'],
      ['lineheight'],
      ['strong', 'em', 'del'],
      // ['superscript', 'subscript'],
      ['foreColor', 'backColor'],
      ['link'],
      ['justifyLeft', 'justifyCenter', 'justifyRight'],
      ['unorderedList', 'orderedList'],
      ['horizontalRule'],
      ['table', 'tableCellBackgroundColor', 'tableBorderColor'],
      ['removeformat'],
      ['fullscreen'],
    ],
    tagClasses: {
      // table: 'class-name',
    },
  },


wysiwygMark WYSIWYGエディタを適用する入力フィールドのセレクタを指定します。
wysiwygConfig WYSIWYGエディタのオプションを設定できます。Trumbowyg のオプションがそのまま設定できます。詳細は Trumbowyg のドキュメントを参照してください。

使い方

textarea要素に .js-wysiwyg を適用します。

<textarea name="textarea" class="js-wysiwyg"></textarea>

文字数カウント

a-blog cmsでは、入力欄の文字数をカウントする機能が実装されています。(Ver. 2.0.0より)

デモ

0 / 10

デフォルト設定

この機能の設定は、/js/config.jsの以下の箇所にあります。設定を変更する場合は、適用しているテーマ内にJavaScriptファイルを別途作成してください。詳しくは「組み込みJSについて:設定を編集する」を参照してください。

//-----------
// input count up
countupMark     : '.js-countup',
countupMarkOver : 'acms-admin-text-danger',


countupMark 入力欄のクラス名
countupMarkOver 文字数が指定値を超えた場合に付与されるクラス名

設定のカスタマイズ

config.jsのデフォルトの設定からカスタマイズする場合、JSファイルに下記のように記述します。

ACMS.Ready(function(){
  ACMS.Config.countupMark = '.js-countup-sample';
  ACMS.Config.countupMarkOver = 'countover';
});

HTMLとCSSの編集

HTML

「data-label-target」でカウント数のラベルを指定します。また「data-max」で制限文字数を指定できます。

<textarea name="demo_area" title="" cols="20" class="acms-form-width-3quarters js-countup" data-label-target=".js-countup-demo_area" data-max="10"></textarea>
<p><span class="js-countup-demo_area">0</span> / <span>10</span></p>

CSS

countupMarkOverで指定したクラスを設定します

.countover {
    color: #990000;
}

モーダルダイアログ

任意のページ(HTML)をモーダルダイアログで表示します。

主にモジュールIDやブログ、カテゴリーを閲覧ページ上からモーダルダイアログで編集するために利用されています。

デフォルトの設定

この機能の設定は、/js/config.jsの以下の箇所にあります。

  dialogBtnMark: '.js-dialog-btn',
  dialogTitleMark: '.js-dialog-title',
  dialogBodyMark: '.js-dialog-body',

設定の詳細は以下になります。



設定項目 説明
dialogBtnMark モーダルダイアログを表示するボタン要素をセレクター形式で設定します。
dialogTitleMark モーダルダイアログのタイトルとして表示される要素をセレクター形式で設定します。
dialogBodyMark モーダルダイアログの本文として表示される要素をセレクター形式で設定します。

使い方

dialogBtnMark で指定した要素の href 属性で任意のページ(HTML)を指定することで、実装できます。

例として、ブログフィールドモジュール内で以下のテンプレートを読み込むことで管理者ユーザーの場合、モーダルダイアログでブログを編集する機能を実装しています。

<!-- BEGIN_MODULE Touch_SessionWithAdministration -->
<p class="acms-admin-module-edit acms-admin-module-edit">
  <!-- BEGIN module_setting -->
  <a href="/bid/{id}/admin/blog_edit/#acms_custom" class="js-dialog-btn js-link_no_rewrite">編集する</a>
  <!-- END module_setting -->
</p>
<!-- END_MODULE Touch_SessionWithAdministration -->