T3-時計にして、日本語でも表示させる

lib.php の render_instance を変更して時計を表示させてみる。既にインストールされているプラグインなので、乱暴だがサーバ上のファイルを直接書き換えてしまえば、試すのも簡単。

時計にする

lib.php の render_instance() を下記のように変更

lib.php

   public static function render_instance(BlockInstance $instance, $editing=false) {
      $result= sprintf("It is %s now",date("Y/m/d H:i:s"));
       return $result;
   }

date("Y/m/d H:i:s");は、UNIXコマンドの新しいdateのように、書式指定子を使って日付をフォーマットして文字列として返す。ここではこの結果を直接関数の戻り値としている。

これで時計が出るようになった。

maharapg-t3-20170903-061540.png

言語ファイルを使う

上記の例は、メッセージに使う文言をプログラムの中に埋め込んでいる。Maharaでは、そのような文言をプログラムとは別の「言語ファイル」に保存しておき、そこから取り出して使うようにしている。言語ファイルを切り替えれば、英語表示や日本語表示を切り替えることができる。

Blocktype プラグインでは、lang ディレクトリ以下に言語名を示すディレクトリを作成、その中に blocktype.simpleclock.php という名前のファイルを作成する。PHPプログラムからlangファイルに定義しているデータを取り出すには get_string 関数を使う。

lib.php

   public static function render_instance(BlockInstance $instance, $editing=false) {
     $result=get_string('clockstring','blocktype.simpleclock',date("Y/m/d H:i:s"));
     return $result;
   }

get_stringは、ここでは lang/en.utf8/blocktype.simpleclock.php から clockstring というキーのついた文字列を取りだす。取り出した文字に書式指定子がある場合には、それに当てはめる値として、3番目以降の引数を順次使う。

lang/en.utf8/blocktype.simpleclock.php

一行追加する。

<?php
/**
   (略)
 */

defined('INTERNAL') || die();

$string['title'] = 'SimpleClock';
$string['description'] = 'Show current date/time on your view.';

$string['clockstring'] = 'It is %s now.';
?>

これで完成。

lang/ja.utf8/blocktype.simpleclock.php

日本語の言語ファイルを追加する。

<?php
/**
* @package    mahara
* @subpackage blocktype-simpleclock
* @author     Takahiro Sumiya
* @license    http://www.gnu.org/copyleft/gpl.html GNU GPL
* @copyright  For copyright information on Mahara, please see the README file distributed with this software.
 */

defined('INTERNAL') || die();

$string['title'] = 'SimpleClock';
$string['description'] = '現在の日付と時刻を表示します。';

$string['clockstring'] = 'ただいまの時刻は %s です。';
?>

これで日本語で表示できるようになった。ユーザ設定で言語を切り替えると英語に変わる。

maharapg-t3-20170903-062642.png

ここまでのファイルをまとめたものがこちら:filesimpleclock-v2-t3.zip


添付ファイル: filesimpleclock-v2-t3.zip 3件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-09-04 (月) 03:46:54 (20d)