TopMovable Typeカスタマイズ管理画面 > 2005年2月
2005年2月18日

ファイルのアップロードで上書きを有効にする

February 18,2005 11:59 PM
Tag:[]
Permalink

Movable Type ではFTPツールを利用せずに、管理メニューの「ファイルのアップロード」からファイルをアップロードすることができです。ただしデフォルト状態で /tmp が存在しない環境ではファイルの上書きができない(アップロード画面でエラーとなります)ため、やや不便に感じます。
上書き可能にするためには /tmp ディレクトリを作成するか、あるいは mt.cfg の TempDir を有効にし、アップロードしたファイルを一時保存するためのディレクトリを設定します。後者の場合の設定方法は下記の通りです。

変更前

# When processing uploaded files, if Movable Type notices that the file you
# uploaded already exists, it will allow you to overwrite the original file,
# by first asking for your confirmation. To do this, MT needs to write the
# uploaded data to a temporary file. That temporary file is stored in the
# directory specified by the TempDir setting; the value defaults to /tmp.
#
# TempDir /tmp/
#

変更後

# When processing uploaded files, if Movable Type notices that the file you
# uploaded already exists, it will allow you to overwrite the original file,
# by first asking for your confirmation. To do this, MT needs to write the
# uploaded data to a temporary file. That temporary file is stored in the
# directory specified by the TempDir setting; the value defaults to /tmp.
#
TempDir /~/tmp/
#

"~"の部分にはファイルを一時保存するtmp ディレクトリまでの絶対パスを記述します(試していませんが相対パスも有効かもしれません)。また配置するための tmp ディレクトリも予め作成しておきます。例えばローカル・サイト・パス配下に tmp というディレクトリを作成し、そこを参照するようにするのが良いのではないでしょうか。

なお上書きされる場合は「上書きしますか」という確認画面が表示されるので、そこで「いいえ」を選択すれば誤って上書きされることはありません。

2005.02.19 追記
Linux や UNIX のレンタルサーバの場合、システムデフォルトで /tmp が存在するので、本設定は不要と思われます。

Comments [4] | Trackbacks [0]
2005年2月16日

テンプレートの保存・再構築を同時に行うボタンを追加

February 16,2005 11:50 AM
Tag:[]
Permalink
保存&再構築ボタンの追加デフォルトの管理画面で修正したテンプレートを表示に反映させるには、一旦保存した後「再構築」ボタンをクリックしなければならないのですが、このボタンを追加することでテンプレートの保存・再構築を同時に行えるようになります。*1
これで再構築した結果が素早く確認できるようになります。精神衛生的にも良いでしょう。

参考サイトは下記です。ありがとうございました。

Magic WhiteMTでSaveとRebuildを同時に行うボタンを追加 MovalogSave & Rebuild(オリジナル)

ここでは上記のカスタマイズ内容からの差分のみを掲載しておきます。差分は「保存&再構築」ボタンを画像のように一番左へ配置したことと、フォームボタンおよびメッセージの日本語表示です。下記に示す該当のファイルに赤字部分を削除し、青字部分をそれぞれ追加してください。
なお対象となるテンプレートは「インデックス・テンプレート(メインページ・スタイルシート等)」です。

lib/MT/App/CMS.pm

764行目付近

       :
    $param{rebuild_me} = defined $obj->rebuild_me ?
        $obj->rebuild_me : 1;
    $param{sr} = 1 if($q->param('sr')) ;
} elsif ($type eq 'blog') {
       :

1177行目付近

sub save_object {
    my $sr = 0;
    my $app = shift;
    my $q = $app->{query};
    my $type = $q->param('_type');
    my $id = $q->param('id');
       :

1340行目付近

       :
    $obj->text($text);
    ## Save and Rebuild
    if($q->param('sr')){
        $sr = 1;
        $app->rebuild_indexes( BlogID => $obj->blog_id, Template => $obj, Force => 1 )
        or return;
    } 
} elsif ($type eq 'blog') {
    if ($q->param('cfg_screen')) {
       :

1550行目付近

       :
    } else {
        return $app->redirect($app->uri .
            '?__mode=view&_type=' . $type . '&id=' . $obj->id .
            '&blog_id=' . $blog_id . '&saved=1');
        if($sr == 1){
            return $app->redirect($app->uri .
                '?__mode=view&_type=' . $type . '&id=' . $obj->id .
                '&blog_id=' . $blog_id . '&sr=1');
            $sr = 0;
        } else {
            return $app->redirect($app->uri .
                '?__mode=view&_type=' . $type . '&id=' . $obj->id .
                '&blog_id=' . $blog_id . '&saved=1');
        }
    }
}
 
sub list_objects {
       :

tmpl/cms/edit_template.tmpl

45行目付近

<TMPL_IF NAME=SR>
<div class="message">
<MT_TRANS phrase="Your template changes have been saved and your template has been rebuilt.">
</div>
</TMPL_IF>
<form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>">
<input type="hidden" name="id" value="<TMPL_VAR NAME=ID>" />
<input type="hidden" name="blog_id" value="<TMPL_VAR NAME=BLOG_ID>" />
<input type="hidden" name="type" value="<TMPL_VAR NAME=TYPE>" />
<input type="hidden" name="__mode" value="save" />
<input type="hidden" name="_type" value="template" />

tmpl/cms/edit_template.tmpl(フォームボタンの配置場所変更)

130行目付近

<TMPL_UNLESS NAME=NEW_OBJECT>
<TMPL_UNLESS NAME=BUILD_DYNAMIC>
<TMPL_IF NAME=HAS_REBUILD>
<input type="submit" name="sr" value="<MT_TRANS phrase="Save & Rebuild">" />
</TMPL_IF>
</TMPL_UNLESS>
</TMPL_UNLESS>
<input type="submit" value="<MT_TRANS phrase="Save">" />
<TMPL_UNLESS NAME=NEW_OBJECT>
<TMPL_UNLESS NAME=BUILD_DYNAMIC>
<TMPL_IF NAME=HAS_REBUILD>
<input type="button" onclick="doRebuildOne(<TMPL_VAR NAME=ID>)" value="<MT_TRANS phrase="Rebuild">" />
</TMPL_IF>
</TMPL_UNLESS>
</TMPL_UNLESS>

lib/MT/L10N/ja.pm(フォームボタン・メッセージの日本語化)

523行目付近


'Your template changes have been saved.' => '変更したテンプレートを保存しました。',
'Your template changes have been saved and your template has been rebuilt.' => '変更したテンプレートを保存・再構築しました。',

541行目付近

'Rebuild' => '再構築',
'Save & Rebuild' => '保存&再構築',

*1:スタイルシートについては再構築不要なカスタマイズが公開されています(下記)が、本カスタマイズで同様の効果が得られます。

Magic Whiteスタイルシートの変更簡単に
ARTIFACT ―人工事実―MTでのスタイルシート変更を楽に
the girlie matterslink that stylesheet(オリジナル)

2005.02.17 追記
インデックステンプレート以外のテンプレート編集画面で「保存&再構築」ボタンが表示される不具合を修正、および typo修正(いずれも tmpl/cms/edit_template.tmpl)。

2005.08.11 追記
元記事のカスタマイズ内容を追加しました。本記事のみで全てのカスタマイズを行うことができます。

Comments [26] | Trackbacks [12]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3