CmsType2Test02
構成
$MT_DIR/
|__ plugins/
| |__ CmsType2Test02/
| |__ config.yaml
| |__ lib/
| | |__ CmsType2Test02
| |__ CMS.pm
| |__ tmpl/
| | |__ test2_mode.tmpl
ソース
config.yaml
id: cmstype2test02
key: CmsType2Test02
name: CmsType2Test02
version: 0.00
# アプリケーション
applications:
# CMS管理画面
cms:
# メニュー画面
menus:
# カスタムメニュー
custom_menu:
# 表示名
label: Custom Menu
# 表示順
order: 1000
# リストメニューサブ1
custom_menu:test2:
# 表示名
label: test2
# 表示順
order: 200
# 表示スコープ
view:
- website
- blog
# モード
mode: test2_mode
# メソッド定義
methods:
# "custom_menu:test2"をクリックした場合に呼び出される
test2_mode: $CmsType2Test02::CmsType2Test02::CMS::test2_mode
do_test2: $CmsType2Test02::CmsType2Test02::CMS::do_test2
lib/CmsType2Test01/CMS.pm
package CmsType2Test02::CMS;
use strict;
use MT::FileMgr;
use Data::Dumper;
use Encode qw(decode);
use utf8;
sub test2_mode{
# パラメータ取得
my ($app) = @_;
# 返却用パラメータ定義
my ( %param, %args, %terms );
# パラメータコンテキスト取得
my $q = $app->param;
# ブログID取得
my $blog_id = $q->param('blog_id');
$param{save_success} = $q->param('success');
# テンプレートを設定
$app->load_tmpl('test2_mode.tmpl', \%param );
}
sub do_test2{
# パラメータ取得
my ($app) = @_;
# 返却用パラメータ定義
my ( %param, %args, %terms );
# パラメータコンテキスト取得
my $q = $app->param;
# ブログID取得
my $blog_id = $q->param('blog_id');
# パラメータ取得
my $test2_name = $q->param('test2_name');
my $test2_id = $q->param('test2_id');
my $test2_version = $q->param('test2_version');
my $description = $q->param('description');
my $test2_author_name = $q->param('test2_author_name');
my $test2_author_link = $q->param('test2_author_link');
if($test2_id eq ""){
return $app->redirect(
$app->uri(
mode => 'test2_mode',
args => {
success => 0,
blog_id => $blog_id,
},
)
);
}
# データ編集
my $outdata;
$outdata .= "param01:".$test2_name . "\n";
$outdata .= "param02:".$test2_id . "\n";
$outdata .= "param03:".$test2_version . "\n";
$outdata .= "param04:".$description . "\n";
$outdata .= "param05:".$test2_author_name . "\n";
$outdata .= "param06:".$test2_author_link . "\n";
# 文字数
use bytes();
my $size = bytes::length($outdata);
# 出力
$app->{no_print_body} = 1;
$app->set_header("Content-Disposition" => "attachment; filename=$test2_id" );
$app->set_header("Content-Length" => "$size");
$app->send_http_header("application/octet-stream");
binmode STDOUT, ':encoding(utf8)';
$app->print($outdata);
return $app->redirect(
$app->uri(
mode => 'test2_mode',
args => {
success => 1,
blog_id => $blog_id,
},
)
);
}
sub debug{
my ($data) = @_;
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 1;
my $dump = Dumper($data);
my $file = "/home/httpd/cgi-bin/mt/aaa.txt";
my $fmgr = MT::FileMgr->new('Local');
$fmgr->put_data($dump, $file);
}
1;
tmpl/test2_mode.tmpl
<mt:setvarblock name="page_title"><__trans phrase="Test2"></mt:setvarblock>
<mt:setvar name="export_webpage" value="1">
<mt:setvarblock name="html_head" append="1">
<script type="text/javascript" src="<mt:var name="static_uri">js/tc/client.js"></script>
<script type="text/javascript" src="<mt:var name="static_uri">js/dialog.js"></script>
</mt:setvarblock>
<mt:setvarblock name="system_msg">
<div id="msg-block">
<mt:if name="save_success">
<mtapp:statusmsg
id="saved-theme"
class="success">
<__trans phrase="Test2 Success">
</mtapp:statusmsg>
</mt:if>
</div>
</mt:setvarblock>
<mt:include name="include/header.tmpl">
<form id="webpage_settings" method="post" enctype="multipart/form-data" action="<mt:var name="script_url">">
<input type="hidden" name="__mode" value="do_test2" />
<input type="hidden" name="blog_id" value="<mt:var name="blog_id">" />
<input type="hidden" name="magic_token" value="<mt:var name="magic_token">" />
<fieldset>
<mtapp:setting
id="test2-name-field"
required="1"
label="<__trans phrase="Test2 Name">"
show_hint="1"
hint="<__trans phrase="test2 name">">
<input type="text" name="test2_name" id="test2_name" class="text required" value="<mt:var name="test2_name" escape="html">" />
</mtapp:setting>
<mtapp:setting
id="test2-id-field"
required="1"
label="<__trans phrase="Test2 Basename">"
show_hint="1"
hint="<__trans phrase="Test Basename">">
<input type="text" name="test2_id" id="test2_id" class="text required" value="<mt:var name="test2_id" escape="html">" />
</mtapp:setting>
<mtapp:setting
id="test2-version-field"
required="1"
label="<__trans phrase="Test2 Version">"
show_hint="1"
hint="<__trans phrase="test2 version">">
<input type="text" name="test2_version" id="test2_version" class="text required" value="<mt:var name="test2_version" escape="html">" />
</mtapp:setting>
<mtapp:setting
id="test2-description-field"
label="<__trans phrase="Test2 Description">"
show_hint="1"
hint="<__trans phrase="test2 description">">
<textarea name="description" id="description" class="text low"><mt:var name="description" escape="html"></textarea>
</mtapp:setting>
<mtapp:setting
id="test2-author-name-field"
label="<__trans phrase="Test2 Author">"
show_hint="1"
hint="<__trans phrase="test2 author">">
<input type="text" name="test2_author_name" id="test2_author_name" class="text" value="<mt:var name="test2_author_name" escape="html">" />
</mtapp:setting>
<mtapp:setting
id="test2-author-link-field"
label="<__trans phrase="Test2 Author link">"
show_hint="1"
hint="<__trans phrase="Test2 Author link">">
<input type="text" name="test2_author_link" id="test2_author_link" class="text" value="<mt:var name="test2_author_link" escape="html">" />
</mtapp:setting>
</fieldset>
<mt:setvarblock name="action_buttons">
<button
type="submit"
accesskey="s"
title="<__trans phrase="Test2Action">"
class="export action button primary">
<__trans phrase="Test2 Action"></button>
</mt:setvarblock>
<mt:include name="include/actions_bar.tmpl" bar_position="bottom" hide_pager="1" settings_bar="1">
</form>
<script type="text/javascript">
/* <![CDATA[ */
jQuery.mtCheckbox();
jQuery(function() {
$("button").click(function(){
alert("111");
return false;
});
});
<mt:var name="js_include_footer" />
/* ]]> */
</script>
<!-- フッター -->
<mt:include name="include/footer.tmpl">
結果
独自画面
ダウンロード
最終更新:2012年02月06日 00:03