FlatPress.info

Information & blog

美人時計プラグインの詳細説明

このプラグインを作成するにあたり、既存プラグインのソースを参考に、またネット上に多数存在する WordPress の「プラグインの作り方」を参考にしました。言語ファイル(説明文に相当する)とスタイルファイルのディレクトリの位置については、解凍したソースをご覧ください。この位置構成は既存プラグインを参考に、同様の配置になっています。

  • function plugin_bijinclock_widget() {} 部分が、ウィジェットとして登録されます。
  • if (class_exists('AdminPanelAction')){ 以降は、デフォルトとして"tokyo"を設定値に保存し、内部変数を用意して入力(クリック)」された変更値を保存(かつ、確認)している部分です。
  • 冒頭のコメント行については必須であって、WordPress の入門説明を参考にすれば意味が分かります。
  • biginclock-toppage

ソースの全体

plugin.bijinclock.php

<?php
/*
Plugin Name: Bijin Clock
Version: 1.0
Plugin URI: http://flatpress.info/
Type: Widget
Description: "Bigin" clock FYI: http://www.bijint.com/en/
Author: Flatpress.info
Author URI: http://flatpress.info
*/

function plugin_bijinclock_widget() {
        $lang = lang_load('plugin:bijinclock');
        $widget = array();
        $widget['subject'] = $lang['plugin']['bijinclock']['subject'];
        include 'drawbijinclock.php';
        $h=plugin_geturl('bijinclock').'res/css/bijinclock.css';
        echo '<link rel="stylesheet" type="text/css" href="'.$h."\" />\n";
        return $widget;
}
register_widget('bijinclock', 'bijinclock', 'plugin_bijinclock_widget');

if (class_exists('AdminPanelAction')){
        class admin_plugin_bijinclock extends AdminPanelAction {
                function setup() {
                        $this->smarty->assign('admin_resource', "plugin:bijinclock/admin.plugin.bijinclock");
                        $bc_config = plugin_getoptions('bijinclock');
                        if(!$bc_config['localtime']) {
                                $localtime = "tokyo";
                                plugin_addoption('bijinclock', 'localtime', $localtime);
                                plugin_saveoptions('bijinclock');
                        }
                }
                function main() {
                        $bc_config = plugin_getoptions('bijinclock');
                        $this->smarty->assign('bc_config', $bc_config);
                }
                function onsubmit() {
                        if ($_POST['bc-localtime']){
                                $localtime = $_POST['bc-localtime'];
                                plugin_addoption('bijinclock', 'localtime', $localtime);
                                plugin_saveoptions('bijinclock');
                                $this->smarty->assign('success', 1);
                        } else {
                                $this->smarty->assign('success', -1);
                        }
                        return 2;
                }
        }
        admin_addpanelaction('plugin', 'bijinclock', true);
}
?>

描画ルーチン

drawbijinclock.php

「美人時計」の描画ルーチンは、同オリジナルサイトで指示される内容をコピーしたに過ぎません。ただ、「ローカル時計」の選択設定については、fp-content/config/settings.conf.php に保存しておいた値を利用しています。

<?php
global $fp_config;
$widget['content'] = '
<div id="bijin_clock">
<div class="bijin_blog_part" data-width="180" data-bcid="' .
$fp_config['plugins']['bijinclock']['localtime']
. '"></div>
<script type="text/javascript">
        (function(d, s, id) {
                var js, fjs = d.getElementsByTagName(s)[0];
                if (d.getElementById(id)) return;
                js = d.createElement(s);
                js.id = id;
                js.async = true;
                js.src = "http://blogparts.bijint.com/blogparts/js/script.js";
                fjs.parentNode.insertBefore(js, fjs);
        }
        (document, "script", "bijint-widget"));
</script>
</div>';
?>

 

スタイルファイル

スタイルファイルは、表示される「美人時計」の位置合わせのために用意しました。ご存じのように FireBug(Firefox)を利用するのが便利なところですね。

bijinclock.css

#column #bijin_clock {
    height: 260px;
    margin: 0px;
}

#column #bijin_clock p, #column #bijin_clock div {
    margin: 0px;
}

#column #widget-bijinclock {
    margin-top: 0px;
}

#widget-bijinclock h4 {
 display:none;
}

言語ファイル(説明文)

lang.ja-jp.php

言語ファイルの設定値において、「ローカル時計」の選択の説明をしています。また、プラグインの表示名もここで設定しています。

<?php

$lang['admin']['plugin']['bijinclock'] = array(
        'discription' => 'ローカル美人時計',
        'area' => '
                2011全国(2011jp)<br>
                北海道(hokkaido)<br>
                青森(aomori)<br>
                岩手(iwate)<br>
                宮城(sendai)<br>
                秋田(akita)<br>
                茨城(ibaraki)<br>
                栃木(tochigi)<br>
                群馬(gunma)<br>
                埼玉(saitama)<br>
                千葉(chiba)<br>
                東京(tokyo)<br>
                神奈川(kanagawa)<br>
                新潟(niigata)<br>
                金沢(kanazawa)<br>
                福井(fukui)<br>
                長野(nagano)<br>
                静岡(shizuoka)<br>
                愛知(nagoya)<br>
                京都(kyoto)<br>
                大阪(osaka)<br>
                神戸(kobe)<br>
                奈良(nara)<br>
                岡山(okayama)<br>
                広島(hiroshima)<br>
                山口(yamaguchi)<br>
                香川(kagawa)<br>
                福岡(fukuoka)<br>
                佐賀(saga)<br>
                長崎(nagasaki)<br>
                熊本(kumamoto)<br>
                鹿児島(kagoshima)<br>
                沖縄(okinawa)<br>
                Thai(thailand)<br>
                テレビ朝日(tv-asahi)<br>
                美魔女(bimajo)<br>
                サーキット(cc)<br>
                花嫁(hanayome)<br>
                キッズ(kids)<br>',
        'submit' => 'Save',
        'msgs' => array(
                1 => 'successful saved.',
                -1 => 'not saved.'
        )
);


$lang['plugin']['bijinclock'] = array(
        'subject'       => 'Bijin Clock',
        );

?>

コンフィグレーションの様子

fp-content/config/settings.conf.php

設定値の保存はこのファイルに書き込まれます。以下に関係する部分を提示しましたが、

global $fp_config;

$fp_config['plugins']['bijinclock']['localtime']

として設定された内容を参照できます。

    ),
    'bbcode' =>
    array (
      'escape-html' => true,
      'comments' => false,
      'editor' => true,
      'url-maxlen' => 40,
    ),
    'bijinclock' =>
    array (
      'localtime' => 'thailand',
    ),
  ),
);

 

 

FlatPess 記事

Copyright c  flatpress.info 2015. All Rights Reserved.