お知らせ

フリーランスのための青色申告ガイドブック2012年1月11日

フリーランスのための青色申告ガイドブック」を発売しました。
青色申告にしてみたいが、やり方がよく分からないフリーランスの方のための解説書です。
会計ソフトの「やよいの青色申告」を使って、簿記の知識がなくても帳簿付けができるように工夫しました。
PDFによる販売で、当サイトでのみ購入できます(書店では購入できません)

他にも多数書籍を執筆しています。
こちらもぜひご覧ください。

ほぼ指定日投稿(JavaScript版V2.10)

| コメント(31) | トラックバック(8)

Movable Typeには「指定日投稿」の機能があり、指定した日時に自動的にエントリーを投稿することができます。
ただし、そのためには指定日投稿のスクリプトを定期的に実行する必要があります。
cronを使えないサーバーだと、スクリプトを定期的に自動実行することができません。

この問題を解決するために、「ほぼ指定日投稿」(JavaScript版)というプラグイン公開していました。
ブログに誰かがアクセスしてきたときに、指定日投稿の処理を行うというものです。
このプラグインを若干改良し、以前のバージョンよりも、幾分簡単に設定できるようにしました。

なお、既存のバージョンをお使いの方は、バージョンアップするとテンプレートの書き換え等が必要になりますので、既存のバージョンをそのままお使いください。

1.プラグインのダウンロード

まず、以下のアドレスからプラグインのファイルをダウンロードします。

RunPeriodicTasks_2_10.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ファイルを解凍すると、「plugins」と「mt-static」の2つのフォルダができます。
これらのフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。

2.初期設定

このプラグインを使うブログで、初期設定を行います。
ブログのプラグイン設定のページを開き、RunPeriodicTasksプラグインの設定を開きます。
そして、以下の各項目を設定します。

設定項目内容
スケジュールタスクを実行しているときに表示するHTML指定日投稿の処理が行われている間に、ブログのページに表示する内容を指定します。
スケジュールタスクが実行されたときに表示するHTML指定日投稿の処理が終わったときに、ブログのページに表示する内容を指定します。
スケジュールタスクがスキップされたときに表示するHTML指定日投稿は、15分に1回だけ行うようになっています。前回の実行から15分たっていない場合は、ここで指定したHTMLがブログのページに表示されます。
Ajaxを使用通常はオンにしておきます。
ただし、ブログのドメインとMTのドメインが異なる場合は、Ajaxを使うことができませんので、その場合はオフにします。
Ajaxを使えない例:ブログのドメインが「blog.sample.com」で、MTのドメインが「www.sample.com」の場合

初期設定が終わったら、「変更を保存」のボタンをクリックします。
なお、設定を全く変えない場合も、変更を保存する必要があります。

↓初期設定
runperiodictasks.png

3.テンプレートの書き換え

次に、指定日投稿を起動するためのタグを、テンプレートに追加します。
メインページやブログ記事など、アクセスが多いページのテンプレートで、以下のタグを追加します。

<$MTRunPeriodicTasksJS$>

このタグを追加した位置に、指定日投稿の結果(手順2.で設定したHTML)が表示されるようになります。

テンプレートの書き換えが終わったら、そのテンプレートを再構築します。
これでこのプラグインが動作するようになります。

なお、Ajaxを使わない場合、このタグの位置でCGIにアクセスし、CGIの結果が返ってくるまでページの読み込みが止まります。
そのため、ページの先頭の方にこのタグを入れると、ページの表示が重くなったように見えます。
Ajaxを使わない場合は、MTRunPeriodicTasksJSタグはテンプレートのなるべく最後の方に追加するようにします。

4.指定日投稿の結果を画像で表示する

「mt-static」→「plugins」→「RunPeriodicTasks」→「images」ディレクトリに、指定日投稿の結果を表す画像もアップロードされます。
手順2.で、これらの画像を表示するように設定しても良いでしょう。

5.ライセンス

このプラグインはMITライセンスで公開します。
商用版MTおよびMTOSでお使いいただくことができます。

Facebook連携

当記事について「いいね」や「送信」を行っていただけると幸いです。


この記事についてウォールに投稿

トラックバック(8)

トラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/1315.

にちじしてい 続きを読む

MTOSに携帯から、メールを使って記事を投稿するために、Mooberというプラグ... 続きを読む

これまでに導入したMT4のプラグインやカスタマイズ、そしてブログパーツです。 紹... 続きを読む

日々思いつること - モブログに挑戦。 (2009年1月 3日 22:54)

テスト中。 ※追記・・・携帯から投稿できたので一応成功と言うことで。... 続きを読む

cronの使えないサーバーでも、 ほぼ指定日投稿(JavaScript版)(Ru... 続きを読む

Clear Planet - 明白惑星 - - [MT]ほぼ指定日投稿 (2009年7月22日 08:33)

前回気になっていた、ほぼ指定日投稿を導入してみましたが、どうもうまく動作しないです。困りました>_<どうにか導入することが出来ました!原因はとても簡易的な... 続きを読む

中野サウダーヂ座 - MooberとRunPeriodicTasks (2009年11月22日 02:37)

新しくメール投稿用に導入したMooberとRunPeriodicTasksについて。 続きを読む

cronの使えないサーバーでも、 ほぼ指定日投稿(JavaScript版)(RunPeriodicTasks) というプラグインを使用すると、 指定日投稿... 続きを読む

コメント(スレッド12件,コメント31件)

コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。

No.1 寺山 銀 : 公開されません

いつも様々なプラグインを使わせていただいております。
今回も便利なものをありがとうございます。

早速設置させていただいたのですが、時間が来ても公開になりません。

プラグインは使用可になっており、設定の保存も行いました。
タグ自体はインデックスページの最終(フッタの前)に設置しました。
が、何か間違っているのでしょうか?
MT4.1でPHP化、ダイナミックパブリッシングも使用しています。

No.2  : Re:公開されません

>寺山 銀さん
こんにちは。

MTの指定日投稿の処理に不具合があるようです。
MT4.1をお使いであれば、MT_DIR/lib/MT/WeblogPublisher.pmの1930行目付近に、以下の赤字の行を追加してみてください。




    $changed++;
    $total_changed++;
}
$blog->touch;
$blog->save;

if ($changed) {
    my %rebuilt_okay;
    my $rebuilt;



No.3 寺山 銀 : やはり公開されません

お世話になります。
ご指摘の箇所を修正してみましたが、やはり公開されませんでした。

ところで、説明文で
「ファイルを解凍すると、「plugins」と「mt-static」の2つのフォルダができます。
これらのフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。」
とありますが、これまでの例を見ると「mt-static」はMovable Typeの「mt-static」フォルダにアップロードしていたと思うのですが、今回はどちらもMovable Typeの「plugins」ディレクトリアップロードして間違いないのでしょうか?

No.4  : 壱

>寺山 銀さん
こんにちは。

記事の間違いをご指摘いただき、ありがとうございます。
「plugins」「mt-static」のフォルダは、Movable Typeのインストール先ディレクトリにアップロードします。

No.5 寺山 銀 : やはり無理でした

訂正箇所を修正し、設定通りにし直したのですが、やはり公開されませんでした。
すっごく基本的な質問だと思いますが、自分でアクセスした場合ももちろんその対象となるのですよね?
新しい記事を書いて、公開時間から15分ほど待って読み込みをしますが、公開されなかったもので・・・
他に使っているプラグインのせいでしょうか?

No.6 寺山 銀 : おそらく

おそらくですが、うまくいったようです。
昨晩は公開されました。昨々晩はダメだったのですが・・・?
また、おかしな事があれば、書き込みにまいります。
ありがとうございます。

No.7 にしさき : エラーがでてしまいます。

どうもはじめまして、にしさきです。
こちらのプラグインを使わせていただきまして、設定通り設定してみたのですが、
タグを埋め込んだページにアクセスすると、

「Smarty error: [in mt:194 line 75]: syntax error: unrecognized tag 'mtrunperiodictasksjs' (Smarty_Compiler.class.php, line 580) 」

というエラーがでて、タグを埋め込んだ部分が表示されなくなってしまいます。
MT4.1です、なにか原因は考えられますでしょうか、お知恵を拝借いただければ幸いです。

No.8  : Re:エラーがでてしまいます。

>にしさきさん
プラグインご利用ありがとうございます。

ご質問の件ですが、申し訳ありませんが、このプラグインはMT標準のダイナミックパブリッシングには対応していません。
お書きになったエラーメッセージは、MT標準のダイナミックパブリッシングが出しているものです。

拙作の「Perl版ダイナミックパブリッシング」となら併用することができます。

http://www.h-fj.com/blog/archives/2007/07/06-095902.php

ただし、その場合もMTの本体を一部書き換える必要があります。
Movable Typeのインストール先→「lib」ディレクトリ→「MT」ディレクトリにある「WeblogPublisher.pl」というファイルで、1942行目にある「$rebuilt++;」
の行の後に、以下の2行を追加してください。

$blog->touch;
$blog->save;

No.9 にしさき : (無題)

壱様
ご丁寧な返信どうもありがとうございました。
無事解決する事が出来ました。
すばらしいツールに感謝感謝です。
ブログ簡単パワーアップ Movable Type4 スーパーカスタマイズテクニック
予約させていただきました!

No.10 のぶおパパ : お尋ねします

RunPeriodicTasksプラグイン、便利に使わせてもらっております。
Mooberという別の作者さんのプラグインで、携帯のメールから記事を起こすためにRunPeriodicTasksプラグインを使っております。
普段はテンプレートに埋め込まずに、http://うちのサーバ/mt/plugins/RunPeriodicTasks/mt-run-periodic-tasks.cgi?blog_id=1 というアドレスを携帯から参照することで、起動させていました。
MTOS4.12までは、それでMooberのメール取得が起動して記事ができたのですが、MTOS4.2にあげてからうまくいきません。
サーバのコンソールで、mtディレクトリの中の./tools/run-periodic-tasksを実行した場合には、記事メールが取得されて記事ができるのですが・・・
原因がMooberプラグイン側なのかRunPeriodicTasksプラグイン側なのかわからないのですけども。

No.11  : Re:お尋ねします

>のぶおパパさん
こんにちは。プラグインご利用ありがとうございます。

ご質問の件ですが、plugins/RunPeriodicTasks/lib/RunPeriodicTasks.pmの54行目を以下のように書き換えて、動作を試してみてください。

書き換え前
$app->run_tasks;

書き換え後
system "cd ../..; perl ./tools/run-periodic-tasks";

No.12 のぶおパパ : 動きました!

ご指摘の個所を修正して、無事動くようになりました。
早速の対応、ありがとうございました。

No.13 tanぽ☆ : (無題)

RunPeriodicTasksプラグインを利用させて頂いています。

痒いところに手が届く素晴らしいプログラムを
有難う御座います。m(_ _)m

デフォルト設定ですと15分おきに実行されるようですが、
こちらを60分おきに変更したいと考えています。

色々とソースを見させて頂いた所

RunPeriodicTask.pl

内にある33行目の

['rpt_interval', { Default => '15' }],

を15から60に変更すれば良いのかと思いましたが
この変更のみでは60分おきの実行になりませんでした。

$MTRunPeriodicTasksJS$>

を利用せずに

script type="text/javascript" src="plugins/RunPeriodicTasks/mt-run-periodic-tasks.cgi?blog_id=">

というソースで呼び出しているのですがそのせいでしょうか・・・?
色々と模索しましたが手仕舞いになってしまいまして(汗)

何かヒントをご教授頂ければと思いますm(_ _)m

No.14  : (無題)

>tanぽ☆さん
こんにちは。

ご質問の件ですが、システムメニューのプラグインでRunPeriodicTasksプラグインの設定を開き、「タスクの実行間隔」の欄に「60」を入力して、設定を保存してください。

No.15 tanぽ☆ : (無題)

>壱さん
早々のご返答有難う御座いました。
システムメニューからとダッシュボードからの設定項目は
違うのですね(汗)

知らなかったです^^;

無事に時間設定の方が完了致しました。
有難う御座いましたm(_ _)m

No.16 なんでかな? : (無題)


タグを挿入した箇所が以下のようなタグに入れ替わります。

<div id="fj_realtime_rebuild_ajax"><p>
<__trans phrase="run-periodic-tasks script is running..."></p></div>

本来、プラグインの設定で設定したタグに置き換わるはずだと思うのですが、
どうしてこのようなことになるのでしょうか。
解消方法がありましたら教えてください。

No.17  : (無題)

>なんでかな?さん
こんにちは。

ご質問の件ですが、手順2の初期設定を行って、「変更を保存」ボタンをクリックしてください。

No.18 なんでかな? : (無題)

ありがとうございます。
>設定を全く変えない場合も、変更を保存する必要があります。
との記載がありましたね。
お手数をおかけしました。

No.19 ゆうき : ご質問です・・・

レンタルサーバの仕様で日時指定ができず困っていたのですが、すばらしいプラグインで感動しました。
ただ、手順どおりにやってみたのですが、どうしてもうまくいかず、タグを埋め込んだ部分に以下のエラーが出てしまいます。。
Got an error: syntax error at ../../lib/MT/Util.pm line 14, near "our @EXPORT_OK " BEGIN not safe after errors--compilation aborted at ../../lib/MT/Util.pm line 33. BEGIN failed--compilation aborted at ../../lib/MT.pm line 13.

MTのバージョンは4.2です。
何か原因はお分かりになりますでしょうか・・?

No.20  : Re:ご質問です・・・

>ゆうきさん
こんにちは。

「Util.pm」はMTのシステムのファイルで、「syntax error」は文法エラーです。
しかし、Util.pmに文法エラーがあることは考えられません。

プラグインのアップロードに何か問題があって、それがUtil.pmのエラーを引き起こしているのではないかと思いますが、申し訳ありませんがはっきりとした原因は不明です。

No.24 PhotoPierre : jQuaryのlightboxと衝突する件

「Ajaxを使用」を使用にチェックがあると、
jQuaryのlightboxとどこかで衝突しているようで
lightboxの表示が無効になります。

「Ajaxを使用」にチェックしなければ問題無いようです。

prototype版の方はわかりません。

No.25  : Re:jQuaryのlightboxと衝突する件

>PhotoPierreさん
こんにちは。

Ajaxの処理にprototype.jsを使っているので、それがjQueryとバッティングしているのではないかと思います。
MT5向けにプラグインをバージョンアップする際に、prototype.jsからjQueryへの変更を考えたいと思います。

No.26 よよよ : うまく動きません

すばらしいプラグインのご提供ありがとうございます。
ですが、私の環境ではどうもうまく動いてくれません。

HTMLソースを確認するとタグを埋め込んだ場所には
以下のように表示され、動作しているようですが・・・。
肝心の指定日投稿がされていません。

<div id="fj_realtime_rebuild_ajax"><p>スクリプトを実行中です...</p></div>
<script type="text/javascript">
//<![CDATA[
if (typeof Prototype == 'undefined') {
document.write('<script type="text\/javascript" src="http://www.yocean.com/x/mt/mt-static/plugins/RunPeriodicTasks/js/prototype.js"><\/script>');
}
var FJRunPediodicTasks = { cgipath : 'http://www.yocean.com/x/mt/plugins/RunPeriodicTasks/mt-run-periodic-tasks.cgi', blog_id : 8, tag_id : 'fj_realtime_rebuild_ajax' };
//]]>
</script>
<script type="text/javascript" src="http://www.yocean.com/x/mt/mt-static/plugins/RunPeriodicTasks/js/run_periodic_tasks.js"></script>

解決策が分かりましたら教えていただけると幸いです。

No.27  : Re:うまく動きません

>よよよさん
こんにちは。

ブログのドメイン(http://math.yocean.com)と、MTのドメイン(http://www.yocean.com)が異なることが、動作しない原因です。
これはAjaxの仕様です。
本記事の「2.初期設定」の手順に従って、Ajaxを使わない設定にしてください。

No.28 よよよ : (無題)

なるほど。そういうことでしたか。
AJAXを使えないのは残念ですが、CGIで対応してみます。
また分からないことがあったらお伺いさせてください。
ありがとうございました。

No.29 よよよ : (無題)

AJAXのチェックボックスを外して、
CGIにしてみましたが、やはり指定日投稿されません。
直接以下のURLを叩いたら、指定日投稿されました。
タグからCGIをうまく呼び出せていないのでしょうか??

http://www.yocean.com/x/mt/plugins/RunPeriodicTasks/mt-run-periodic-tasks.cgi?blog_id=8

No.30  : (無題)

>よよよさん
こんにちは。

そちらのページを拝見した限りでは、CGIの呼び出しはできているようでした。
それでも指定日投稿がうまくいっていないとなると、申し訳ありませんが原因は不明です。

No.31 よよよ : (無題)

すいません。
ちゃんと指定日投稿ができるようになりました。
ありがとうございました。

No.32 入門者 : webサイトでも利用できますでしょうか?

ブログでのプラグイン初期設定について解説されておりますが、webサイトでも利用できますでしょうか?

是非利用させて頂きたいと思っておりますが、webサイトの場合のプラグイン初期設定方法がわからず、困っております。

お知恵をお借りできれば幸いです。

No.33  : Re:webサイトでも利用できますでしょうか?

>入門者さん
こんにちは。

「webサイト」ということは、Movable Type 5で使いたいということでしょうか。
そうであれば、Movable Type 5用のプラグインをお使いください。

http://www.h-fj.com/blog/mt5plgdoc/runperiodictasks.php

コメントする


Facebookでコメント

試験的にFacebookのコメントフォームを設置しました。