Copyrightの年を自動で更新する

サイトの一番下に書かれている著作権表示。

当サイトでも

Copyright (C) 2014-2015 MODXでWebサイトを作る All Rights Reserved.

と表記しています。

 

この年の表示の「2014」は最初の発行の年で、「-2015」は最終更新日を表示しています。

 

最終更新日を年が変わる度に変更するのは面倒なので、スニペットを使って自動で変更させたいと思います。

 

[エレメント]>[エレメント管理]>[スニペット]>[スニペットの作成]の順にクリックします。

 

[スニペット名]に コピーライト期間 と入力

[スニペットコード]に以下をコピペ

$where = "`published`='1' AND `hidemenu`='0'";
$result = '';

$res = $modx->db->select('min(publishedon) as minDate,max(editedon) as max', 'site_content', $where, 'publishedon ASC');
$cnt = $modx->db->getRecordCount($res);
if($cnt == 1){
  $row = $modx->db->getRow($res);
  $minDate = date("Y",$row['minDate']);
  $maxDate = date("Y",$row['maxDate']);
  if($minDate == $maxDate){
    $result = $minDate;
  }else{
    $result = $minDate."-".$maxDate;
  }
}

return $result;

コピペしたら、[更新]をクリックします。

スニペットコピーライト

 

テンプレートのCopyrightの部分に

Copyright (C) [[コピーライト期間]] [(site_name)] All Rights Reserved. 

と入力します。

 

スニペットコードの解説

記事はMODXのデータベースの[xxx_site_content]というテーブルに保存されています。

(xxxはMODXインストール時のTableプレフィックス

[xxx_site_content]のテーブルから公開日時の最小値(最初の発行の年)と最大値(最終公開日)を取得します。

 

$where = "`published`='1' AND `hidemenu`='0'";

の行は、[公開ステータス]がオン(`published`='1')で[メニューに表示]がオフ(`hidemenu`='0')の抽出条件を設定します。

 

$result = '';

の行は、レコード数が1件もない時のために、結果用変数resultに''を入れておきます。

 

$res = $modx->db->select('min(publishedon) as minDate,max(editedon) as max', 'site_content', $where, 'publishedon ASC');

の行はSQL文です。

 

$cnt = $modx->db->getRecordCount($res);

の行は、取得されたレコード数を変数cntに代入します。

 

if($cnt == 1){
  $row = $modx->db->getRow($res);
  $minDate = date("Y",$row['minDate']);
  $maxDate = date("Y",$row['maxDate']);
  if($minDate == $maxDate){
    $result = $minDate;
  }else{
    $result = $minDate."-".$maxDate;
  }
}

の行は、

レコード数が1件の場合

・最小値の年と最大値の年が同じであれば結果用変数resultに「最小値の年」を代入

・そうでない場合は結果用変数resultに「最小値の年-最大値の年」を代入

レコード数が1件でない場合はなにもしません という意味です。

 

return $result;

の行で結果を返します。

 

補足

wikipediaを見てみるとコピーライトの表示は

  • ©(丸の中にC、丸C、マルシー)の記号 (symbol ©)
  • 著作権者の氏名
  • 最初の発行の年

だけで良いようです。

年の部分も「2014-2015」とする必要はなく、「2014」だけでいいんですね。

 

本来は 

© 2014 ringo

でいいみたいですよ。 (注:「ringo」とは当サイトの管理人です♪)

 

ちなみに「©」をhtmlで書く時は、「©」と書きます。

 

このページの先頭へ