BlogTop > plugins Archive

plugins Archive

1 of 3

Next Page >

すべてのページ

今月のいらんことしい(2015年6月)

今月(2015年6月)、サイトのカスタマイズした点をまとめたエントリです。

  • AccessRankingGA プラグインを、Google OAuth 2.0に対応できるように修正した
  • AccessRankingGA テンプレートタグの出力するページ(.json ファイル)の再構築方法を変更した
  • カテゴリー mt4 をサイドバーで表示しない
  • カテゴリー mt6 を新設
  • Trackback のCGI へポストに関する.htaccessの設定みなおし
  • 利用していないプラグインを plaginsディレクトリから削除

OAuth 対応は、以下に詳細ページを用意しました

特定カテゴリーのリストからの除外は、運用のしやすさから、カテゴリラベルでフィルターをかけるのが一般ですが、カテゴリーIDで指定すれば、あとからのラベル変更でも一意なものとして機能します。

mt4カテゴリーは、バージョン4は製品ライフサイクル終了からだいぶたっているので、カテゴリーリストから除外するとしました。

以下はカテゴリーID 1をリストから除外する例

<MTTopLevelCategories>
<mt:Unless tag="CategoryID" eq="1">
...
</mt:Unless>
</MTTopLevelCategories>

mt6のカテゴリーを追加しました。今のところ、タグにmt6を付けてあるものにカテゴリーを与えましたが、徐々に設定していく予定。

先日、以下の記事にて再構築ツールを紹介しましたが、

これにより、対象のファイルを MovableTypeのrun-periodic-task スクリプトから切り離してcron 実行できるようになりました。

AccessRankingGA(のテンプレートタグが生成するファイル) は www-rebuilder経由の再構築にするので、テンプレートの再構築オプションでは「手動」にしておきました。

具体的にプラグイン名は挙げませんが、不要となったプラグイン(長い間使ってなくかつ無効としていたもの・コア機能として統合されているものなど)を削除しました。

今月のカスタマイズは以上です。以下に過去のカスタマイズ記録リストがあります

MT:Plugin:RegexList:リスト作成に便利なRegular Expression拡張プラグイン

Movable Typeのテンプレートの置換を拡張したRegexListプラグインについてです

RegexList はRick Bychowsk (Hiranyaloka)氏(http://hiranyaloka.com)によりリリースされたプラグインです。

この記事のタイトルでは、「リスト作成」とかつけてしまいましたが、正確には Regex でマッチ(サーチ?)したものを配列にpushしてくれるといった動作のプラグインのようです。

ダウンロード

Downloads のところより入手可能です。

ファイル展開後のRegexListをpluginsディレクトリに収めます。

動作確認

使ってみないことにはご紹介というわけにもいかないので、とりあえずインデックステンプレートでカスタムテンプレートを組んで動作を確認してみました。

当方がが試したのは、MTOS-5.14-ja 上で、特に外部の依存モジュールはないようなので、ローカルで設置したMTOSのみで確認を行いました。

基本的な書式は、regex_replace のように、regex_list="","","" 3つ目の値に区切りとなる文字列のマッチパターンを書きます。

グローバルフィルターなので、任意のテンプレートタグに付与して使うことが出来ます。

プラグインの詳細は、README.markdown に記載されています。これを参考にサンプルを作りました。

1. カンマ区切りな文字列からリストを生成する

<mt:Setvar name="test1" value="apple,bannana,melon,kiwifruit">
<$mt:Var name="test1" regex_list="/(.+)/","$1","/([^,]+)/" setvar="thelist1"$>
<$mt:var name="thelist1"$>

<ul>
<mt:Loop name="thelist1">
<li><mt:Var name="__value__"></li>
</mt:Loop>

2. \u \l \U \L プレフィックスをつかった置換

\u \l がそれぞれ upper-case と lower-case。

大文字のほうの\U \Lですが、小文字のほうとの違いは、キャプチャされている文字全部に(\Eがつけられる前まで)その影響がおよびます。

以上を踏まえて、文字列を先頭1文字を大文字、以降を小文字に整形して出力するものが以下のテンプレートです。

<mt:Setvar name="test2" value="aPple,baNNnana,Melon,kiWiFruit">
<$mt:Var name="test2" regex_list="/(.)(.+)/","\u$1\L$2\E","/([^,]+)/" setvar="thelist2"$>
<ul>
<mt:Loop name="thelist2">
<li><mt:Var name="__value__"></li>
</mt:Loop>
</ul>

3. キー、ハッシュ風の記法からページ内リンクリストを生成

「フラグメント」: 「タイトル」, 「フラグメント」: 「タイトル」
といったルールのテキストを変数にセットしておいて、これを元にして、ページ内リンクを生成するというテンプレートです。

<mt:SetVars>
internal=t2:Title2, t3:Title3, t4:Title4, t5:Title5
</mt:SetVars>

<$mt:Var name="internal" regex_list="/(?:[\s]+)?(.+):[\s+]?(.+)/","<a href="#$1">$2</a>","/([^,]+)/" setvar="thelist3"$>

<ul>
<mt:Loop name="thelist3">
<li><mt:Var name="__value__"></li>
</mt:Loop>
</ul>

まとめ

もう少し複雑な例とか思いついたのですが、当方のスキルがいっぱいいっぱいなのでこの辺で。

RegexList をうまく活用すると標準のテンプレートタグのみでは複雑に組まなくてはならない場合を解決できることがあります。

なお、このプラグインはどの値を push したかをブログのログに記録するようになっています。ログはブログのツール>ログ からみられます。

MT:カスタムボタン:公開日の秒数を切り上げ0に設定してフォームに投げるボタン

久々のCustom Editor Button用追加ボタンです。投稿日のフォームへ秒数を00にして切り上げた状態のものをセットします。

最近公開時間の秒数を00にそろえるというのが自分のマイブームとなっています(何をやってるんだか)。ようするにきっちりと揃えたいというだけなのです。前は現在時刻をフォームにいれるボタンを使っていましたが、秒数だけ修正するのに面倒になってきたのでボタンを作ることにしました。

config.yamlファイル

name: PublishDateSetZeroSecondsButton
id: PublishDateSetZeroSecondsButton
key: PublishDateSetZeroSecondsButton
author_link: http://www.markdiary.com/
author_name: maRk
description: utility button for Custom Editor Button2 plugins
version: 0.1
#
# require Custom Editor Button 2 Plugin https://github.com/aklaswad/mt-plugin-custom-editor-button-2/
#
buttons:
    util_curtime2:
        title: Publish Date would set as zero seconds to Current Time
        image: images/now0.png
        code: |
            function ceb_util_curtime2 (text, args) {
                function zp(num) {
                    if(num < 10){num = '0' + num;}
                    return num;
                }
                var now = new Date();
                    if (zp(now.getMinutes()) < 59 ){
                        var date = '' + now.getFullYear() + '-' + zp(now.getMonth() + 1) + '-' + zp(now.getDate());
                        var time = zp(now.getHours()) + ':' + zp(now.getMinutes() + 1) + ':00';
                        document.entry_form.authored_on_date.value = date;
                        document.entry_form.authored_on_time.value = time;
                    } else if (zp(now.getHours()) != 23 && zp(now.getMinutes()) == 59) {
                        var time = zp(now.getHours()+1) + ':' +'00:00';
                        document.entry_form.authored_on_time.value = time;
                    } else { var time = zp(now.getHours()) + ':' + zp(now.getMinutes()) + ':00';
                      alert('wait few minutes');
                }
                return undefined;
            }

config.yamlは、PublishDateSetZeroSecondsButtonフォルダにいれてpluginsディレクトリへ。now0.pngは適当な画像を/mt-static/plugins/PublishDateSetZeroSecondsButton/images/.にいれるとします。

* Custom Editor Button 2プラグインが必要です

jQuery For MTプラグインをいれてみました

Movable Type 4 の管理画面に jQueryをつかえるようにするための、jQuery For MTプラグインを使ってみることにしました。

MTのアップデートの際にAltTemplateをアップするのを忘れてて動いてないなあ、とか実際にやってまして。プラグインならば、いつもアップデートのときに、旧MTディレクトリからごっそりコピーしてくるのでそういった凡ミスはほぼないってことです。

プラグインは以下からダウンロードできるようです。

以下、Movable Type 4系での話として進めていきたいと思います。

これまで、管理画面でjQueryを使うのに、AltTemplateを使っていました。これを、jQuery For MTに移行する手順は以下のとおりです。

  1. プラグインを入手する
  2. 展開してpluginsフォルダ以下はシステムのplugins以下に、mt-static/plugins以下の「jQueryForMT」をシステムのmt-static/plugins以下にそれぞれアップロードする(ダウンロードページの詳細のとおり)
  3. user.jsに、alt-tmplディレクトリ以下にある、AltTemplateファイル(.tmplのファイルなど)に記載されている、JavaScriptのコードを入れる
  4. 編集後、user.jsをアップする
  5. alt-tmplディレクトリ以下を削除する(他に使用する代替テンプレートがある場合は当該ファイルのみ削除しあとは残しておく)

それと一点だけ気づいた点ですが、jQueryのプラグインなどを利用したいときに、user.jsにプラグインのコードを貼るのもあれなので、動的に.jsファイルを呼び出すようにuser.jsに書くようにしました。AltTemplateでは、<script src='path/to/hogehoge.js'></script>みたいに直接HTMLで書けるわけで、こういったところはAltTemplateとの違いでしょうか。

もっともプラグインのplファイル弄ればなんとかなりそうですけれども(というか、そんなにコテコテにカスタマイズしてどうする、とかなんとか)。

追記:メモです。システムメニューでjQueryを使わないという都合ができた(個人の環境によるものです)ので、plファイルの出力関連のコードに以下のタグに包含するとしました。

  • <mt:unless name="system_overview_nav"></mt:unless>

TemplateShelfプラグインの「All Templates」の選択がワナらしいので

  • Posted by: maRk
  • mt4 | mt5 | plugins
  • はてなブックマークに追加

Movale TypeのTemplateShelfプラグインですがAll Templatesを選択時にテンプレートの数が多いと動作が重くなるとのことなので使えないようにする改造とグローバルテンプレートのIDについてです

Movable Type 5で「TemplateShelfプラグイン」が動作できるとの情報がWolaWolaさまにて紹介されています。不具合の修正や改造方法も掲載されていますので参考になります。

ヴァージョンを4.2にしてから動作しなくなったので放置してしまったのですが、4.2以降でも動作するようにヴァージョンアップされていたようですね。さっそく使ってみましたところ4.261においても動作することを確認しました。

さて、「All Templates」を選択した際に動作が重いとのことです(JSON形式のデータの書き出しか読み込みで時間がかかるのか??)。すべてのテンプレートのショートカットを表示させたい場面は滅多にありませんので要らないものは使わなくて済むように以下のように変更してみました。なお以下のカスタマイズはMovable Type 4.261にて確認をおこないました

<option value="" disabled="disabled"><__trans phrase="All Templates"></option>

template_shelf.tmplファイルのoption要素で当該の箇所にdisabled属性を追加して選択できないようにしています。

余談ではありますが、書いておきますとoption要素のdisabled属性がIE6では選択不可にならなかったとおもいます。その前にIE自体でこのプラグインが動かないですので。。(参考:「Template Shelf」プラグインがIE6では動かない? - ElectricBrain Standard)上記はワタくシがやった方法ですから、その部分を削除するなり、コメントにするなりお好みの方法でよろしいかと。

それと、グローバルテンプレート時の振り分け(blog_id=0のパラメタが機能していない件の対処)についてなのですが、実はモーダルボックスでグローバルテンプレートの表示を試してみると(MT4.261の場合です)、コチラのほうはいちおう表示されているんですね、これが。

ソースを見るとどうやらtmpl.idの値が求めているものそのものらしいです。で、問題の箇所は以下のように変更してみました。createRow()関数の箇所でmt:var name="blog_id"の部分をtmpl.blog_idに置き換えます。そういう意味とは違うようでしたら御免なさい。

?__mode=view&amp;_type=template&amp;blog_id='+ tmpl.blog_id + '&id=' + tmpl.id + '">'

改造後はいつもの如しで、MTシステムディレクトリ/plugins/TemplateShelf/tmpl以下にアップロードして管理ページから確認して終了です。これで「むきょー!」の仲間入りですね。

MT:PubSubHubbubプラグインについて

Movable Typeのプラグイン、PubSubHubbubの紹介と導入について書きます。

「PubSubHubbub」って何?といわれてもよくわかってなかったりしますが、RSSの更新情報の反映をRSSリーダーなどでの時差を解消しようとするものです。

説明不足でアレなので、PubSubHubbubについては、以下のページを参考リンクとして示します。

追記:livedoor reader については、記事投稿のときのPing送信先に、http://rpc.reader.livedoor.com/ping を指定されたほうが早いとおもわれます。

PubSubHubbubプラグイン

PubSubHubbubプラグインは、miyagawa(Tatsuhiko Miyagawa)氏の提供するMovable Type用プラグインです。Movable Type4以降で利用可能のようです。プラグインの入手は以下からダウンロードすることができます。

導入について

ダウンロードしたファイルを解凍し、フォルダごとMTシステムのディレクトリのpluginsディレクトリ内にアップロードします。アップロード後に、プラグインの設定画面にて設定をおこないます。なおプラグインはブログ単位で設定をおこなうようになっています。

以下のキャプチャはMT5.0ベータ1によるものです。

mt_pubsubhubbub-01.gif

設定画面にて、pingを打つ先のURLを入力して、設定を完了します。今のところ、「http://pubsubhubbub.appspot.com/」が利用可能のようです。

設定が済んだら、「最新記事のフィード(feed_recent)」(atom.xml)テンプレートの<link rel="self" ... />以下に<$mt:PubSubHubbubLinks$>を埋め込み、保存・再構築をおこないます。

mt_pubsubhubbub-02.gif

再構築後のフィードのソースを見ると、<link rel="hub" href="..." />というコードが追加されています。 W3C Feed Validation Service で確認すると、Recommendationsとして、「Unregistered link relationship」が指摘されるのですが、御愛嬌ということで。

あとは、記事を更新するのみです。以上です。

Continue reading

RenameLabel Pluginを使って編集画面のラベルを漢字表記にしてみた

エムロジック放課後プロジェクト提供のRenameLabel Pluginは、Movable Typeの編集画面のフィールド名を任意の名称に変更するためのプラグインです。ためしにこれを使って漢字のラベルにしてみました。

プラグインを入手する

プラグインは、エムロジック放課後プロジェクト(エムロジック株式会社)さまの以下のページからダウンロードできます。

説明のHTMLファイル等も同梱されていましたので、導入方法などはそちらを参考にします。

ラベル表記を変更する

プラグインが導入できますと、ブログのプラグイン設定の画面にRenameLabel Pluginが表示されているはずですので、そこから「設定のタブ」を表示させると、設定画面が表示されます。

利用の状況に応じて適切なラベル名を付ける、というのがこのプラグインの本来の目的なのですが、今回は昨今の漢字ブームにあやかって(?)ラベルを漢字にしてみました。漢字訳ですが、かなりテキトーです。漢字訳については、いちおう以下のサイト等を利用しています。#ネタですいません(汗;

スクリーンショットを示します。

rename_fieldlabel_conf.gif

管理画面は以下のようになりました。ちょっとやばいカンジです。

rename_fieldlabel.gif

Click to Enlarge

今回ためした件のラベルとその値の対応は以下のファイルとなってます。訳はコチラのイメージとかによるので、妥当ではないとおもいます。「トラックバック/言及通知」とか。

Download

ActionStreams関連のドキュメント・リファレンスが追加されている

  • Posted by: maRk
  • mt4 | plugins
  • はてなブックマークに追加

Movable Type 4.25でバンドルされているActionStreams(アクションストリーム)プラグイン関連の情報がmovabletype.jpにあがってきているようです。

最近ほとんどかまうことのなくなってきたActionStreamsなのですが、movabletype.jpを見ますと、このプラグインの関連情報やタグリファレンスなどが追加されています。一寸だけピックアップします。詳細は、アクションストリームのドキュメントをご参照ください。

タグリファレンス

ドキュメント

Index of all entries

BlogTop > plugins Archive

Feeds
Elsewhere

Action Streams

logo

Comment powered by DISQUS

Return to page top