T1-最小限の実装

ブロックに時計を表示するサンプルをつくってみる。ブロック名は SimpleClock としよう。

まずは、必要最小限のファイルを揃える。画面には、伝統的なとりあえず出力である "Hello World" を表示させてみる。

以下の4つのファイルを正しいフォルダ構成で作成する。スラッシュで終わっているのはフォルダ。

simpleclock/
 +-- thumb.png
 +-- version.php
 +-- lib.php
 +-- lang/
      +-- en.utf8/
           +-- blocktype.simpleclock.php

上から順に。

thumb.png

ページ編集時に、ドラッグ&ドロップするアイコン。「Mahara1.5以降用のプラグインアイコン」からブランクのアイコンをダウンロードし、適当なアイコンにする。

maharapg-t1-1-20121210-072126.png

version.php

リリース日やリリース番号を定義する。

<?php
/**
 * Mahara: Electronic portfolio, weblog, resume builder and social networking
 * Copyright (C) 2006-2009 Catalyst IT Ltd and others; see:
 *                         http://wiki.mahara.org/Contributors
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * @package    mahara
 * @subpackage blocktype-sympleclock
 * @author    Takahiro Sumiya
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL
 * @copyright  (C) 2012 Takahiro Sumiya
 *
 */

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

$config = new StdClass;
$config->version = 2012121000;
$config->release = '1.0.0';

?>

lib.php

このファイルがプラグインの本体。通常のブロックタイプのプラグインは、SystemBlockType の拡張クラスとして定義する。クラス内で最低限実装しなくてはならないメソッドはここにあげた四つ。他にもいろいろなメソッドを実装することで、プラグインの動作をきめることができる。実装可能なメソッドの一覧はこちらへ。

<?php
/**
 * Mahara: Electronic portfolio, weblog, resume builder and social networking
   (Copyright表示略)
 */

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

class PluginBlocktypeSimpleClock extends SystemBlocktype {


    public static function get_title() {
        return get_string('title', 'blocktype.simpleclock');
    }

    public static function get_description() {
        return get_string('description', 'blocktype.simpleclock');
    }

    public static function get_categories() {
        return array('general');
    }

    public static function render_instance(BlockInstance $instance, $editing=false) {
        $result='Hello World!';

        return $result;
    }

}

?>

get_title() と get_description() で返す文字列が、ページ編集画面でのこのブロックプラグインの名前と説明文になる。これらは利用者の言語環境で切り替わるようにlangファイル(次の項で定義)から読み込む。

プラグインのカテゴリ(ページ編集画面でどのタブから選ぶか)は「一般」とするので 'general' を返す。array で返しているが、二つ以上の要素を入れて返すとインストール時エラーになる。

render_instance() がこのクラスのキモ。ここでブロック内に表示するためのHTMLコードを生成して返す。ここでは、”Hello World!" という文字列だけをかえすようにしている。

lang/en.utf8/blocktype.simpleclock.php

langファイル(言語ファイル)。プラグインで使用する文言を定義する。

<?php
/**
 * Mahara: Electronic portfolio, weblog, resume builder and social networking
   (Copyright表示略)
 */

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

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

管理者でのプラグインインストール

上記で作ったファイルをまとめたものがこちら。

  1. Maharaサーバの $mahararoot/blocktype の下に SimpleClock 以下を保存する。
  2. admin で Mahara へログイン
  3. 「サイト管理/拡張機能/プラグイン管理」
  4. 左の「プラグインタイプ:blocktype」の一番下に未インストールのものとして simpleclock が表示されているはず。「インストール」をクリックする
    maharapg-t1-2-20121210-080738.png

このようになったら成功。

maharapg-t1-2-20121210-081903.png

ページへの配置

管理者のままでもよいけれど、一般ユーザでページに配置してみると、うまくいっている ^^

maharapg-t1-3-20121210-082234.png

添付ファイル: filesimpleclock-t1.zip 264件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-01-19 (土) 06:42:43 (1708d)