2015年8月アーカイブ

uehatsu (2015年8月26日 17:04)

ちょっと案件で分からない事があったのでMT Liveにお邪魔しています。MT Liveとは「シックス・アパートのエンジニアや、Movable Type に詳しい人たちが、コワーキングスペースに集まります。MTについてちょっと質問したい、実際に画面見せたり、話したりしながら教えてもらいたい、という方はぜひお立ち寄りください。(Facebookのイベントページより)」というイベント。毎月第2・第4水曜日にやってます、もしよろしければ。

MT Live 紹介ページ(シックス・アパート ブログ)

で、今日聞きたかったことは「Movable Typeであるオブジェクトを保存する時に、そのオブジェクトに紐付けられているカスタムフィールドが画像であった場合、その画像にたいしてゴニョゴニョする」というもの。

まず自分でやって失敗した方法がこちら。

1. pre_saveかpost_saveでフック

2. $obj->meta()でmeta情報のhashを取得

3. meta情報のhashからカスタムフィールドのbasenameを取得(hashのkeyが"field.hogehoge")となる

4. MT::Metaのmetadata_by_nameでmeta情報を取得

my $field = "field." . $meta_basename;
my $class = MT->model('entry');
my $meta = MT::Meta->metadata_by_name( $class, $field );

5. meta情報のtypeを取得

my $type = $meta->{type};

ただしこれでtypeをとると"vclob"とだけ返ってきて画像かどうかはわからない。残念。

で、今日MT Liveで高山さんに聞いたところ4.以降をこうすると良いと聞く。

4. CustomFields::Field からカスタムフィールド情報を取得

my ($field_obj) = MT->model('field')->search({
blog_id => $blog_id,
basename => $meta_basename,
});

5. カスタムフィールド情報のtypeを取得

my $type = $field_obj->type();

これで$typeに"image"が格納されていたら、このカスタムフィールドは画像!!

自分で悩んでいたら解決できませんでした。

結論:MT Liveで疑問を解決!!

皆さんも是非!!!

Movable Type 6 本格活用ガイドブック (Web Designing BOOKS)
Movable Type 6 本格活用ガイドブック (Web Designing BOOKS) 藤本 壱 柳谷 真志 奥脇 知宏 シックス・アパート株式会社

マイナビ 2013-11-30
売り上げランキング : 133328


Amazonで詳しく見る
by G-Tools
uehatsu (2015年8月20日 22:45)

もういい加減毎回調べるのは面倒なのでメモw

1. Gmailの二段階認証用のアプリ パスワードを取得する

 a) 以下のURLにアクセス。

 https://security.google.com/settings/security/apppasswords

 b) 「端末を選択」プルダウン>「その他(名前を入力)」を選択

 c) アプリ パスワードの名前を入力(例えば"postfix pass")

 d) 「お使いのデバイスのアプリ パスワード」と出てきた12桁の英字をメモ

2. GmailのSMTP Authに必要なCyrus SASLライブラリ(cyrus-sasl-plain)をインストール

$ sudo yum install cyrus-sasl-plain

3. パスワード用ファイル(/etc/postfix/gmailpass)を作成

[smtp.gmail.com]:587 foobar@gmail.com:(アプリ パスワード)

4. gmailpass.dbファイルの作成

$ sudo postmap /etc/postfix/gmailpass

5. gmailpassファイルの削除

$ sudo rm /etc/postfix/gmailpass

6. /etc/postfix/main.cf に以下の行を追加

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmailpass
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_tls_CApath = /etc/ssl/certs/ca-certificates.crt

7. postfix の再起動

$ sudo service postfix restart

これでメールが送れるようになります。

CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu) CentOS7で作るネットワークサーバ構築ガイド (Network server construction gu)
サーバ構築研究会

秀和システム 2015-03-25
売り上げランキング : 5352

Amazonで詳しく見る
by G-Tools

Who is uehatsu?

uehatsu

アーカイブ

Facebook page