エントリー

freoのエントリーとページの管理画面の状態のカスタマイズ

デフォルトのfreoのエントリーとページの管理画面の状態の欄では、

  • 承認が"未承認"なら ⇒「未承認」
  • 状態が"公開"なら ⇒「公開」
  • 状態が"未公開"なら ⇒「未公開」
  • 状態が"予約公開"なら ⇒「予約公開」

となっていますが、公開終了日時を指定していたり、予約公開の場合は、実際に公開されているかどうかは、作業欄に「確認」のリンクがあるかないかで判断しなくてはなりません。

これを管理画面にわかりやすく表示されるようカスタマイズしてみました。

  • 承認が"未承認"なら ⇒「未承認」…①
  • 状態が"未公開"なら ⇒「未公開」…②
  • 状態が"公開"、公開終了が"指定する"、既に公開終了日を過ぎていたら ⇒「公開終了」…③
  • 状態が"公開"、公開終了が"指定する"、公開終了日の当日なら ⇒「何時:何分:何秒公開終了予定」…④
  • 状態が"公開"、公開終了が"指定する"、公開終了日の当日でないなら ⇒「何年/何月/何日公開終了予定」…⑤
  • 状態が"公開"、公開終了が"指定しない"なら ⇒「公開」…⑥
  • 状態が"予約公開"、公開日を過ぎており、公開終了が"指定する"、既に公開終了日を過ぎていたら ⇒「公開終了」…⑦
  • 状態が"予約公開"、公開日を過ぎており、公開終了が"指定する"、公開終了日の当日なら ⇒「何時:何分:何秒公開終了予定」…⑧
  • 状態が"予約公開"、公開日を過ぎており、公開終了が"指定する"、公開終了日の当日でないなら ⇒「何年/何月/何日公開終了予定」…⑨
  • 状態が"予約公開"、公開日を過ぎており、公開終了が"指定しない"なら ⇒「公開中」…⑩
  • 状態が"予約公開"、公開日がまだ来てないなら ⇒「予約公開」…⑪

すると管理画面の表示(エントリーの丸数字は上記の条件に合わせています)で
ファイル 64-1.jpg
だった部分が
ファイル 64-2.jpg
になります。

エントリー管理の場合

templates/internals/admin/entry.html の94行目あたりにある

<td><!--{if $entry.approved == 'no'}-->未承認<!--{elseif $entry.status == 'publish'}-->公開<!--{elseif $entry.status == 'private'}-->未公開<!--{elseif $entry.status == 'future'}-->予約公開<!--{/if}--></td>

の部分を、

<td><!--{if $entry.approved == 'no'}-->未承認<!--{elseif $entry.status == 'private'}-->未公開<!--{elseif $entry.status == 'publish'}--><!--{if $entry.close}--><!--{if $entry.close|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}-->公開終了<!--{else}--><!--{if $entry.close|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$entry.close|date_format:'%H:%M:%S'}<br><!--{else}-->{$entry.close|date_format:'%Y/%m/%d'}<br><!--{/if}-->公開終了予定<!--{/if}--><!--{else}-->公開<!--{/if}--><!--{elseif $entry.status == 'future'}--><!--{if $entry.datetime|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}--><!--{if $entry.close}--><!--{if $entry.close|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}-->公開終了<!--{else}--><!--{if $entry.close|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$entry.close|date_format:'%H:%M:%S'}<br><!--{else}-->{$entry.close|date_format:'%Y/%m/%d'}<br><!--{/if}-->公開終了予定<!--{/if}--><!--{else}-->公開中<!--{/if}--><!--{else}-->予約公開<!--{/if}--><!--{/if}--></td>

に変更(緑字赤字に)します。

ページ管理の場合

templates/internals/admin/page.html の99行目あたりにある

<td><!--{if $page.approved == 'no'}-->未承認<!--{elseif $page.status == 'publish'}-->公開<!--{elseif $page.status == 'private'}-->未公開<!--{elseif $page.status == 'future'}-->予約公開<!--{/if}--></td>

の部分を、

<td><!--{if $page.approved == 'no'}-->未承認<!--{elseif $page.status == 'private'}-->未公開<!--{elseif $page.status == 'publish'}--><!--{if $page.close}--><!--{if $page.close|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}-->公開終了<!--{else}--><!--{if $page.close|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$page.close|date_format:'%H:%M:%S'}<br><!--{else}-->{$page.close|date_format:'%Y/%m/%d'}<br><!--{/if}-->公開終了予定<!--{/if}--><!--{else}-->公開<!--{/if}--><!--{elseif $page.status == 'future'}--><!--{if $page.datetime|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}--><!--{if $page.close}--><!--{if $page.close|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}-->公開終了<!--{else}--><!--{if $page.close|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$page.close|date_format:'%H:%M:%S'}<br><!--{else}-->{$page.close|date_format:'%Y/%m/%d'}<br><!--{/if}-->公開終了予定<!--{/if}--><!--{else}-->公開中<!--{/if}--><!--{else}-->予約公開<!--{/if}--><!--{/if}--></td>

に変更(緑字赤字に)します。

【テンプレートの条件分岐の解説(エントリーの場合)】
ファイル 64-3.jpg

<!--{if $entry.approved == 'no'}-->未承認
//①承認が"未承認"なら ⇒「未承認」
<!--{elseif $entry.status == 'private'}-->未公開
//②状態が"未公開"なら ⇒「未公開」
<!--{elseif $entry.status == 'publish'}-->
//状態が"公開"なら
  <!--{if $entry.close}-->
  //公開終了が"指定する"なら
    <!--{if $entry.close|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}-->公開終了
    //③既に公開終了日を過ぎていたら ⇒「公開終了」
    <!--{else}-->
    //公開終了日がまだ過ぎていないなら
      <!--{if $entry.close|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$entry.close|date_format:'%H:%M:%S'}<br>
      //④公開終了日の当日なら ⇒「何時:何分:何秒」<改行>
      <!--{else}-->{$entry.close|date_format:'%Y/%m/%d'}<br><!--{/if}-->
      //⑤公開終了日の当日でないなら ⇒「何年/何月/何日」<改行>(条件終わり)
    公開終了予定<!--{/if}-->
    //「公開終了予定」(条件終わり)
  <!--{else}-->公開<!--{/if}-->
  //⑥公開終了が"指定しない"なら ⇒「公開」(条件終わり)
<!--{elseif $entry.status == 'future'}-->
//状態が"予約公開"なら
  <!--{if $entry.datetime|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}-->
  //既に公開日を過ぎていたら
    <!--{if $entry.close}-->
    //公開終了が"指定する"なら
      <!--{if $entry.close|date_format:'%Y%m%d%H%M%S' <= $smarty.now|date_format:'%Y%m%d%H%M%S'}-->公開終了
      //⑦既に公開終了日を過ぎていたら ⇒「公開終了」
      <!--{else}-->
      //公開終了日がまだ過ぎていないなら
        <!--{if $entry.close|date_format:'%Y%m%d' == $smarty.now|date_format:'%Y%m%d'}-->{$entry.close|date_format:'%H:%M:%S'}<br>
        //⑧公開終了日の当日なら ⇒「何時:何分:何秒」<改行>
        <!--{else}-->{$entry.close|date_format:'%Y/%m/%d'}<br><!--{/if}-->
        //⑨公開終了日の当日でないなら ⇒「何年/何月/何日」<改行>(条件終わり)
        公開終了予定<!--{/if}-->
        //⇒「公開終了予定」(条件終わり)
    <!--{else}-->公開中<!--{/if}-->
    //⑩公開終了が"指定しない"なら ⇒「公開中」(条件終わり)
  <!--{else}-->予約公開<!--{/if}-->
  //⑪公開日がまだ来てないなら ⇒「予約公開」(条件終わり)
<!--{/if}-->
//(条件終わり)

※もっときめ細かくしようとするとさらに条件分岐が複雑になるのでこのへんで...(^^ゞ

ページ移動

関連エントリー

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
  • 一旦登録したコメントは、あとで編集できませんのでご注意下さい。
登録フォーム

基本的には「全体に公開」されますが、内容によっては管理人の方で公開を制限する場合がありますので、その旨ご了承下さい。

ユーティリティ

2024年04月

- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 - - - -

キーワード検索

キーワード検索フォーム

ユーザー

  • cccのアバター

新着画像

ブログパーツ

Twitter

Twilogを見る

Feed