ブログ - a-blog cms

ablogcms

a-blog cms

a-blog cmsでトップページをエントリーにしている時に「エントリー作成」のボタンを非表示にする

課題

サイトのトップページの時のみ「エントリー作成」を非表示にしたい

条件

  • サイトのトップページ自体を、エントリーにて作成している
  • トップページへの表示方法には「エントリーコードを空にする」を利用している

解決方法

  • サイトを表示しているテンプレートに以下のようなコードを追加する
<!-- BEGIN_IF [%{BID}/eq/1/_and_/%{CID}/em/_and_/%{ECD}/em/] --><style> #adminBox form:nth-of-type(2){ display:none; } </style><!-- END_IF -->

説明

If文内では、以下を指定をしている

  • BID(ブログID)は1
  • CID(カテゴリID)は空
  • ECD(エントリーコード)は空

こうすることで

  • ルートブログで
  • トップページ用表示しているエントリー

ということを表現した

つまづいた点

  • 最初は
    %{VIEW}
    を使い、返り値が「top」であれば、というif文を想定していた
  • しかし上記のような運用例では、たとえブログトップの表示でも「entry」を返してしまった
  • そのためにブログトップを別表現で実装した

補足

  • 今回は単純にボタンを非表示にすれば良いため、CSSで実装した
  • action.htmlは今後アップデートで更新される可能性があるためこのような実装にした
  • action.htmlの継承を@extendと@sectionで上書きする方法も考えたが、if文より先にextendが実行されるようで、思ったようにならなかった。
  • 上記で実装するにはaction内@section("entry-insert")をもう一度記載する必要が出るようで、そのコードをメンテナンスするコストが出るのは意味がないため、ひとまず表面的な実装を優先した

今回の実装については、もう少し上手なやり方があるような気がする。


お困りごとをお聞かせください。

a-blog cmsについてのご相談、ご依頼など。
頂いた内容については、3営業日以内の返信を心がけております。

他社作成のa-blog cms修正、コーディング済htmlへのa-blog cms導入もOK。
小さなことから、お気になさらずお気軽にご相談ください。

  • 必須

    詳細を入力してください。

  • 必須

    お名前を入力してください。

  • 必須

    メールアドレスを入力してください。

    正しいメールアドレスを入力してください。



関連タグ

この記事をシェアする

その他のa-blog cms一覧