a-blog cmsで管理ページの削除ボタンを無効化する
a-blog cmsの管理ページ「ブログ」「カテゴリー」「ユーザー」の詳細画面は、青い「保存」ボタンのすぐ横に赤い「削除」ボタンがあります。
このボタンが「押してしまいそうで怖い」と言われたので(一応、onclickで警告は出ますが)、根幹の設定に関わる親ブログのブログ・カテゴリーの削除操作を禁止してみました。
a-blog cmsの重要な機能を封印するので、取り扱いには注意してください。
管理ページのhead要素について
管理ページのhead要素テンプレートは /themes/system/include/head/ 以下にあります。これを利用中のテーマの同じ階層に複製・編集すれば良いのですが、バージョンアップ後もコアのCSS・JSに影響を出ないよう編集するのが難しいです。
唯一問題が起きても大丈夫そうなのが、「ブログのキーカラー」のCSSを呼び出している以下のファイルです。
/themes/system/include/head/blog-color.html
ここにコードを追記することにします。
CSSを追加する
以下のとおりa-blog cmsのIFブロックとCSSを追加してください。
<!-- BEGIN_IF [%{BID}/eq/1] -->
<style>
/* 管理ページ内でサイトの根幹に関わる設定の削除を禁止する */
.acms-admin-form input[name^="ACMS_"][name*="Blog_Delete:"],
.acms-admin-form input[name^="ACMS_"][name*="Category_Delete:"] {
position: relative;
background: #ccc none;
color: #333;
border-color: #999;
opacity: .5;
pointer-events : none;
}
</style>
<!-- END_IF -->
まず、IFブロックで封印するのはルートのブログのみとしました。
さらにフォームのボタン内のname属性を解析し、「ACMS_」ではじまり「Blog_Delete:」「Category_Delete:」を含むボタンを無効化しています。
pointer-eventsはIE11以降とモダンブラウザで有効になり、CSS側でクリックイベントを禁止します。
補足
「JavaScriptでonclick禁止とdisabled付与をすればいいのでは?」と突っ込まれそうなのですが、blog-color.htmlテンプレートはacms.jsの呼び出しよりも前に書かれているため、ACMSオブジェクトを利用することができません。
管理画面にも、head要素末尾に安全に自作テンプレートを追加できるようになればいいなと思います。
Author And Source
この問題について(a-blog cmsで管理ページの削除ボタンを無効化する), 我々は、より多くの情報をここで見つけました https://qiita.com/webbingstudio@github/items/82eff458df1bcba17746著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .