読者です 読者をやめる 読者になる 読者になる

元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

Ruby on Rails 4.2 のActiveRecordでMovable TypeのデータをQueryInterfaceとかArelとかで扱ってみた

この記事はMovable Type Advent Calendar 2015 - Adventar20日目の記事のはずでした。忘れてました。ごめんなさい。 ふと思い立って現段階の最新のRailsでMTのデータを扱う実験をしてみました。 Railsで非RailsなDBを扱うサンプルにもなるかも。 サンプルコ…

Movable Type で特定のMT::Objectサブクラスのコールバックを無理矢理仕込む

こんな感じで無理矢理フックを仕込むことができる。 callbacks: init_app: $yourplugin::YourPlugin::Plugin::cb_init_app lib/YourPlugin/Plugin.pm package YourPlugin::Plugin; use strict; use warnings; # Registering callbacks sub cb_init_app { my …

Movable Type を使いこなすためのテクニックや知見を紹介するブログを作りました

今日で31歳のタケユー・ウェブ竹内です。 きりもいいので、予てより考えていたMovable Type マニアックスというブログをはじめることにしました。 これまでも備忘録としてごちゃ混ぜにこのブログに残していましたが、先日ナナエフのマネタイズ部で敷田さんの…

MailMug がユーザによるメルマガ購読登録・解除に対応

MailMugにメルマガ購読登録・解除フォームを付けました。 takeyuweb/mt-plugin-MailMuggithub.com 利用者が自分でメールアドレスの登録・解除を行えます。 自分で登録したユーザに対して適用するロールは変更できます。(デフォルトは メールマガジン購読者…

Movable Type メールマガジンプラグイン MailMug がメルマガ送信用SMTPサーバの設定に対応

このアップデートにより、Amazon SESなどのクラウドメール配信サービスを利用できるようになり、一層安定的に配信できるようになります。

Movable Type メールマガジンプラグイン MailMug

昨年末よりちょこちょこ作っていた Movable Type で本格的なメールマガジンを運用するためのプラグイン「[MailMug](https://github.com/takeyuweb/mt-plugin-MailMug)(メールマグ)」のアルファ版を公開しました。

KetaiPostで記事テンプレートをカスタマイズする

KetaiPostでは、メールを受け付けたときに記事本文に設定されるHTMLをMovable Typeテンプレートでカスタマイズできます。 これにより著作権表示を消したり好みのレイアウト、CSSクラスなどを設定できます。

MTクラウドでKetaiPostを使ってメール投稿を使う手順まとめ(Gmail)

この記事は移動しました。 MTクラウドでKetaiPostを使ってメール投稿を使う手順まとめ(Gmail)mt.maniax.xyz

MovableTypeの記事一覧を表示した時点で任意のフィルタをあてたいとか言われた

後出しですし納期もないのでやっつけで。 参考 記事一覧ページのフィルタをMTAppjQueryで指定してみる 記事一覧ページのフィルタをMTAppjQueryで指定してみる | bit part blog /** * http://qiita.com/ma_me/items/03aaebb5dc440b380244 を元に decodeURICom…

MTDDC Meetup TOKYO 2014 で登壇しました

MTのセッションはどちらかというとライトなセッションで、プログラマ目線では物足りない印象のものが多いと感じていたので、あえて敬遠されそうなネタでお話しさせて頂きました。 スライドでは発表しきれなかった内容について、ブログで紹介させて頂きたいと…

MovableTypeで記事公開時に処理したいとき

MailMugで、記事公開時にメルマガ配信ジョブ登録したかった。 公開時処理? 記事保存時 新規作成で公開 ステータスを公開に変更 一括編集 ステータスを公開に変更 指定日時公開 それぞれのコールバックについて。

MovableTypeでジョブキューによる非同期処理を行いたい

たとえばメルマガ配信は大変時間のかかる処理。 ただでさえSMTPが遅い上に大量にある コールバック内で送信までやるべきでない 中断した場合再開できる必要がある そこでジョブキュー。MovableTypeは標準でこの仕組みを備えている。

MTDDC Meetup TOKYO 2014 で登壇させて頂く運びになりました。

MTユーザはデザイナー及びコーダ多め?な気がするので、おそらくかなりマニアックなセッションということになるのでは?と思ってます。

「【MT東京-06】Movable TypeプラグインカタログVol.1」 で話してきた

「【MT東京-06】Movable TypeプラグインカタログVol.1」 で話してきた・・・まぁ単なるLTなんですけども。

レンタルサーバに置いてる(MTな)webサイトでamazon cloud frontを使ってみた話

MT東京のLTで話したスライド。 レンタルサーバに置いてる(MTな)webサイトでamazon cloud frontを使ってみた話 from Takeuchi Yuichi

ブログ記事を複製するには

高機能ブログ記事エクスポート&インポートプラグイン「Packer」でブログ記事の複製ができるようになりました。

MT::Object で外部結合(OUTER JOIN)

MT::Objectで外部結合をする方法について。

VideoTranscoderのインストール

VideoTranscoderプラグインの詳細についてはこちらです。 動画変換プラグイン VideoTranscoder for MovableType

動画変換プラグイン VideoTranscoder for MovableType

Amazon ElasticTranscoderを利用し、MovableTypeにアイテム動画変換機能を提供します。

アクションの結果の返し方によって、post_runコールバックの実行順が変わって嵌まったメモ

世界で今の僕ぐらいしか困ってないメモ。 build_pageしてテンプレートを処理して返すアクション(メソッド)と、テンプレート自体を返すアクションでは、template_param等のページ加工用コールバックと、post_runコールバックの実行順が変わる。 コールバッ…

MTの記事を"GitHub Flavored Markdown"(GFM)で書けるようにする

MTの記事作成画面で"GitHub Flavored Markdown"書式をサポートするプラグイン

MT::Objectでは精度仕様・桁数を指定したfloatは使えない

loat(9,6) で指定できそうでできない

MovableType AWS版 + S3 + CloudFront に移行しました

## 後日談(2014.8.6) やってみてわかったんですが、rsyncだとS3への反映が遅いのと、設定間違えて更新頻度上がりすぎて課金地獄というリスクもあり、ちょっと使い勝手悪かったです。 いまだと、CloudFrontは配信元のExiresを優先してくれたり、HostなどのH…

Movable Type for AWS(AMI)(Amazon Linux AMI 2013.09) yumエラー対策

Movable Type for AWS(AMI)は2014/5/7現在、Amazon Linux AMI 2013.09 版がベースです。 そしてこのAMIでは、不整合を防ぐためyumでのperl関連パッケージのアップデートが禁止されています。 /etc/yum.conf # PUT YOUR REPOS HERE OR IN separate files na…

RHEL6(CentOS6)のPerlでMTを動かすとき、MTEntriesのcategoryモディファイアで中国語を含むAND/ORを行うとエラー

こんなエラーが。 category属性でエラーがありました: (新闻 OR 其他) AND common 5.8.8 ・・・ エラーなし 5.10.1 ・・・ エラー(MT5.2 / MT6どちらでも) 5.14.2 ・・・ エラーなし というわけで、どうやらPerlのバグっぽい。正規表現(パターンマッチ演算子)でこ…

ウェブサイトのブログ記事及び、カスタムフィールド(画像型等含む)のエクスポート&インポートに対応しました

ブログ記事インポート・エクスポートプラグイン for MovableType「EntryExporter」の名前かぶりが酷いので、「Packer」に改名すると共に、バージョン1.0として、MT6対応とカスタムフィールドまわりを強化しました。 Packer:ブログ記事インポート・エクスポ…

ブログ間で記事をコピーするには

[Packerプラグイン](http://blog.takeyu-web.com/mt/myplugins/entryexporter/)を使えば簡単です。 ## インストール GitHub上で公開されているので、ZIPダウンロードして展開します。 https://github.com/uzuki05/mt-plugin-entryexporter/archive/master.zi…

「ブログ記事がないカテゴリアーカイブが出力されない(MT5.2.2)」問題を回避するプラグイン

事情によりMT6にできない&この動作が問題になっている案件があったので、[藤本さんの記事](http://www.h-fj.com/blog/archives/2012/12/23-152551.php)をそのままプラグインに起こした。 [mt-plugin-BuildAllCategoryArchive](https://github.com/uzuki05/m…

EntryExporterプラグインバグ修正(version 0.9)

ブログ記事・ウェブページのバックアップ&コピーに便利なEntryExporterプラグインの不具合を修正しました。 ↓ブログで取り挙げて頂けてました! MT ブログのエキスポートとインポートに良さそうなプラグイン | PROVAI.ciao 「ブログ記事インポート・エクス…

MT::Mailで添付ファイル付きメールを送信する

MT::Mail自体には添付ファイル付のメールを組み立てる機能はないが、自分でヘッダーやBodyを作成してパラメータとして渡すことで、送信することはできる。 確認環境 MovableType 6.0 MIME::Entity (MIME-tools) MT5でも動くと思う・・・たぶん・・・ サンプルコー…

Data API + Location プラグインでAndroid地図アプリを作ってみる

いまさらですがMovableType Data APIとLocationプラグインのサンプルとして、かんたんなAndroid地図アプリを作成してみました。 機能としては以下のような基本的な検索&更新があります。 地図表示範囲内の記事データを取得してGoogle Maps Android API v2上…

MT::Object での GROUP BY 集計関数の利用方法

微妙に痒いところに手が届かないものの、MT::Object->(count|max|avg|sum)_group_byというのがひっそりとある。 使い方は共通してこんなかんじ。hogeのところは便宜読み替えのこと。 my $group_iter = MT::Foo->hoge_group_by( $terms, { %args, group => […

MTのデータベース中の文字列を一括置換するスクリプト

SQLだとこんなかんじで・・・ UPDATE mt_entry SET entry_text=REPLACE(entry_text, "http://takeyu-web.com/", "/") WHERE entry_text IS NOT NULL; カスタムフィールド(複数行テキスト)だったらこんな感じで・・・ UPDATE mt_entry_meta SET entry_meta_vclob=…

MTのデータベースで任意のSQLを実行して結果を取得する

MT::Object->driver()を使う。 my $sql = "SELECT * FROM mt_entry WHERE entry_id = ?"; my @bind_values = ( 100 ); require MT::Object; my $driver = MT::Object->driver; my $dbh = $driver->rw_handle; my $sth = $dbh->prepare( $sql ); die $dbh->er…

MTプラグインで拡張したカラムにインデックスを貼ったりデフォルト値を設定したりするには

MTプラグインを作成する際、既存のオブジェクト(記事 MT::Entry とか)に、プラグイン独自の属性を追加する場合がある。 このとき、config.yamlでこんな風にするのが基本。 object_types: entry: myid: integer 追加したカラムにインデックスを貼ったり、デ…

Locationプラグインで矩形領域内の記事のDataAPI検索に対応しました

記事に位置情報を設定してData APIで検索できるMovableTypeプラグイン「Location」をアップデートしました。 追加したパラメータは以下の通りです。 パラメータ 種類 デフォルト 説明 sw_lat float 矩形領域の南西端の緯度(WGS84) sw_lng float 矩形領域の…

Dreamweaver風チェックアウト機構を実現する Checkoutプラグイン

Movable Type Advent Calendar 2013 2日目の記事のネタのためにプラグイン作りました。 会社など複数人で更新を行っていると、自分がこれから編集する記事は他の人が編集中ではないのか、また自分が編集した内容を他の人が上書きしてしまわないか、不安にな…

MT6のAMIを試しに起動して設定などを観察したメモ

※はじめてのEC2みたいな手順紹介はやりません。そんなのググったらすぐですから。 AWS Marketplace で Movable Type 6 の販売を開始 | Movable Typ アマゾン ウェブ サービス(以下、AWS)の AWS Marketplace にて、Movable Type 6 の販売を開始しました。Mo…

sixapart ProNet に登録しました

これまでProNet SOHOに登録していましたが、このたびProNetに移行しました。 http://www.sixapart.jp/pronet/partner/index.html#chuugoku 岡山県唯一のProNet加盟事業者ですwやったねw MovableType および PowerCMS によるWebサイト構築でお困りのことがあ…

Packer:ブログ記事インポート・エクスポートプラグイン for MovableType

ブログ記事/ウェブページ単位のインポート・エクスポート機能を提供します。MT標準のブログ記事エクスポートと違い、エクスポートする記事を個別に選択できるほか、写真などのブログ記事アイテムも同時にコピーできる点が優れています。

HTML Importerプラグイン for Movable Type

自分用に作ったものを公開。 自分用なので決して一般向けでなく、わかる人向け。まぁ使われることはないだろうけど、一応・・・ uzuki05 / mt-plugin-htmlimporter

MovableTypeのダッシュボードウィジェットを動的に追加する

ダッシュボードウィジェットを追加するには、プラグインのレジストリの以下ようなエントリを追加すれば良い。 applications: cms: widgets: sample: label: Sample Widget template: widget/sample.tmpl condition: |+ sub { 1 } handler: |+ sub { my ( $ap…

MovableTypeのダッシュボードウィジェットをプラグインから強制的に表示したり非表示にしたりする

ダッシュボードの表示・非表示設定は何処に入っているのか?ステータス切り替えアクションを追ってみた。 MT::App::update_widget_prefs を見ると、 $user->widgets であることがわかった。MT::Authorのwidgetsは 'widgets' => 'hash meta', のように定義さ…

MT::Object->search_by_meta() でカスタムフィールド以外での検索条件を追加する

MovableTypeでサイトを構築していると、カスタムフィールドを使ってあれやこれや結構ややこしいことをしたくなります。(JOINまみれになるのであんまりよくないのですが・・・) その場合、プラグインを作ったりするのですが、カスタムフィールドで検索するのに…

MovableType で.php書き出しをしてPC/スマホ/ガラケーの出し分けをする

DynamicMTMLとか使えない・使いたくないケースで。単にPHPでUAの判別してるだけです。 ただしPHPだけではプレビューできないので、拙作のmt-plugin-httpuseragentと組み合わせてます。 案件で使ってるので問題があれば修正。 UserAgent判定PHP テンプレート…

ダッシュボードの「サイト情報」に独自のグラフを追加する

MovableType 6.0 の新機能に「Site Stats」というものがありますね。 MTDDCの時「実はPlaggableでプラグインからグラフデータを追加することもできる」と聞いていたので、気になっていました。 Mtddc2013: Movable Type 6 Overview from Yuji Takayama …

プラグイン設定の入力チェックを行う方法メモ

必要になったので調べてみたメモ。

記事に設定されたカテゴリのうち、あるカテゴリの子または子孫に属するもののみを表示する

たとえば、製品情報をMTのブログ記事で管理していて、カテゴリで製品の「分類」や「事業部」などを保持している場合に、ブログ記事アーカイブ中でその製品を管轄する「事業部」を表示したくなったときなど。(えらく具体的な例だ) カスタムフィールドで保持…

ブログ記事に位置情報を設定してData APIで検索できるMovableTypeプラグイン「Location」作りました。

こないだMTDDC2013に参加して、Data APIはプラグインで拡張できるということを知ったので「いいこと聞いた!」と試してみた。エンドポイント自体を追加することもできるみたいですが、記事検索の範疇であれば既存のlistEntriesを拡張した方がわかりやすいの…

MTDDC 2013に行ってきたので無駄にしないように記録しておく。

8/3 MTDDC 2013にいってきた。※写真使用に問題があればご指摘ください。 国鉄カラーのキハ47で出発。(朝5時)