Home > MovableType
MovableType Archive
[MT][plugin]MT4.1でカスタムフィールドに入力した値を扱うプラグインの作り方がわかってきた。
- 2008-03-05 (水)
- MovableType
まだまとめて書けるようなレベルではないですが
いまのしごとが落ち着いたら書きますね。
基本としては
$entry = $ctx->stash(’entry’);
とかでとってきたエントリーから
$meta = $entry->meta(’customfields’);
とかしてカスタムフィールド部分を一括でとってきて
$hoge = $meta->{hoge};
でhogeのところに「ベースネーム」で設定したフィールド名を入れてやるとさくっと取れます。
そうしたらもうカスタムフィールドでチェックボックスに印つけたエントリだけ抽出とか
他にも複数ブログで同じような内容のカスタムフィールドつかってポータルブログに混ぜて出したいときなんか
やりたい放題ですね。
またじっくりまとめます
今回はこの本のプラグイン開発の項目にべったりお世話になりました。
古い本ですが そもそも Perl すらまともに触ってなかった自分でもプラグインが作れるようになりましたので 基本の内容としては非常にためになりました。
Popularity: 61% [?]
[MobavleType][plugin]プラグインの作り方勉強シリーズPart1.
- 2008-02-28 (木)
- プラグイン | MovableType
ちょっとMovableTypeで作りたいプラグインが出てきましたので勉強します
perl未経験なので そのレベルからのスタートです
10年前に買ったはずのらくだ本はどこにいった
まずはこちら
Entry Category Entries このプラグインを教材にさせていただいて テキストに書き込みしながら勉強していく様子をライブ感覚で記事にします
sub entries {
#コンテキストと引数となんか
my ($ctx, $args, $cond) = @_;
#コンテキストの中のentryを$entryに取得する。取得できなければエントリがないエラー
my $entry = $ctx->stash('entry')
or return $ctx->_no_entry_error('MT' . $ctx->stash('tag'));
#このエントリーのカテゴリーを取得する
my $cat = $entry->category or return '';
#引数「カテゴリー」に上で取ったカテゴリーをセットする
$args->{category} = MT->version_number > 3.2 ? ['OR',[$cat]] : ['OR',$cat];
#_hdlr_entriesに戻す(_hdlr_entriesとは?)
MT::Template::Context::_hdlr_entries(@_);
#_hdlr_entriesはMT/Template/ContextHandler.pmの中にあった
#中を見る限り MTEntriesの本体なのかなあ
#@_というのはperlの特殊変数で 普通に配列を示す[@]を[_]につけているもの
#つまり[_]という名前の配列というイメージか
#$_[0] とかいう感じで中身を取り出せるそうな
#つまり $_[0] = $ctx $_[1] = $args $_[2] = $cond ということかなあ
#$cond は条件式らしいですがよくわかりません なにが入ってくるんだろうか
}
しかしMovableTypeのプラグイン開発教本みたいのってまったく出てませんね
Popularity: 49% [?]
[MT4][SQLite][PostgreSQL]テストサーバはSQLite、本番環境はPostgreSQL。
- 2008-01-29 (火)
- MovableType
MT4でサイト構築してて、本番環境の情報が分からないまま突貫的に開発を進め、後で知らされてみればDBが違ったとかありますよね。あるあるー。
ということで今日はそのあたりで苦労しましたのでメモを残しておきます。
http://as-is.net/blog/archives/001023.html
こちらのMT Database Converterが使えればよかったのですがMT4に対応していなかったもので。
1.テスト環境でSQLiteのダンプを取る
$ pg_dump [database] > [filename].sql
$ sqlite [databasefile].db > [filename].sql
2.本番サーバにMT4を普通にインストールする
PostgreSQLで動くよう設定します。
DBには初期データのみが入っている状態になります。
3.本番サーバのPostgreSQLDBにアクセスし、
mtdb=# DELETE FROM mt_entry;
などして全テーブルを空っぽにします。
mt_entry_id などの末尾に「_id」がついているやつは連番管理テーブルみたいなのでDELETEできないようです。
4.テスト環境のSQLiteダンプデータを手作業で編集する。
SQL文で出力されているダンプデータをテキストエディタで開き、
「CREATE TABLE」系を削除。
あと「CREATE INDEX」も削除します。
「INSERT ~」のみ残すようなイメージです。
5.このダンプデータをインポートします。
$ psql [database] < [filename].sql
エラー無く終われば完了です。
6.確認
MTにログインできればOKです。
あとは画像やらプラグインやら、FTP経由で送り込んで移行完了になるとおもいます。
Popularity: 47% [?]
[MT4][Tips]エントリのソート順(created_on)の意味合いが変わっていた。
- 2007-11-30 (金)
- MovableType
MTEntriesでsort_by=”created_on” とした上でエントリの公開日を操作してエントリのソートを実現したり、というのはCMS的用途ではよくあることかと思いますが、MT4で同じことしようとしたら上手くいかなかったのでメモっておきます。
まず、created_on とは本当にエントリが新規作成されたタイミングの日付であるらしい。DBの中身を見ると mt_entry の entry_created_on 。
で、エントリーの日付を公開日時に自動変更するプラグイン(MT4用)というのを入れてみたんですがなぜか上手く動かない様子。DB内が書き換わる様子もなし。
で、直感的ではありますが、DB内の公開日らしいカラム[entry_authored_on] がありましたのでこれかなと見当をつけて、sort_by=”authored_on” としましたら公開日でソートされましたのでめでたしめでたし。
これでエントリから公開日の秒単位をいじって並べ替え、みたいなことができるようになりました。
追記)
http://www.yamasita.jp/linkstation/2007/09/070929_post_49.html
デフォルト値が公開日なだけなのかなぁ
authored_onが無効になってて単純にデフォルト値になってるだけとかいう可能性も。
もっとentry_id とか別の項目でも試してみなければ
ソース見たら早いんでしょうけども
Popularity: 42% [?]
mt-rebuildがうまくいかない。
- 2006-09-21 (木)
- MovableType
MovableTypeのはなし
kotonohaLinkプラグインが好きで
ちょくちょく使っているのですが
(StoryEditorから大変お世話になっております)
キーワード一覧CSVからkotonohaLink.datを生成して
同時にmt-rebuild.pl -all で自動再構築してキーワードリンクを一気に更新
という段取りのはずがどうもうまくいかなくて
普通に管理画面から再構築するとキーワードにリンクが表示されるんですが
mt-rebuild.pl から再構築するとさっぱり
グローバルフィルタってそんな仕組みやったっけ?
どのタイミングで反映されてるんやろか
ちょっと要調査
MT/WeblogPublisher.pm に rebuild 部分があったけども
どこをどうやったら mt-rebuild.pl を改造できるもんかもう一つはっきりしない
perl も使えるようになった方がええんやろなぁ
Popularity: 26% [?]
Home > MovableType
- Search
- Feeds
- Meta



