「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
AnotherCustomFieldsプラグイン(MTOS用カスタムフィールド風プラグイン)リリース
先日お知らせしたとおり、MTOS 5.1でカスタムフィールドのような機能を実現する「AnotherCustomFields」というプラグインをリリースします。
1.AnotherCustomFieldsプラグインの概要
AnotherCustomFieldsプラグインは、MTOS 5.1xでカスタムフィールドのようなことができるプラグインです。
フィールド追加の定義をconfig.yamlファイルで書く必要がありますが、その点を除けばMovable Type標準のカスタムフィールドとほぼ同様の動作をします。
また、以前に出していた書籍「MTOS活用テクニック」と比べると、プラグインを自作したり、管理画面のテンプレートをカスタマイズしたりといった作業は不要で、大幅に簡単になっています。
例えば、ブログ記事にサブタイトルのフィールドを追加する場合だと、以下のようなconfig.yamlファイルを書いて、サーバーにアップロードするだけです。
name: EntrySubTitle id: EntrySubTitle description: ブログ記事にサブタイトルの入力欄を追加します author_name: ご自分の名前 version: 1.00 schema_version: 1.00 object_types: entry: subtitle: type: string size: 255 revisioned: 1 acf: type: text label: サブタイトル tag: EntrySubtitle
2.AnotherCustomFieldsプラグインの機能・仕様
AnotherCustomFieldsプラグインの機能・仕様は以下の通りです。
2-1.フィールドを追加できるオブジェクト
以下のオブジェクトにフィールドを追加することができます。
- ブログ記事
- ウェブページ
- カテゴリ
- フォルダ
- ブログ
- ウェブサイト
- ユーザー
ブログ記事/ウェブページの編集画面では、フィールドをドラッグアンドドロップで並べ替えることもできます。
その他のオブジェクトの編集画面では、フィールドのドラッグアンドドロップはできませんが、config.yamlファイルでフィールドの表示順序を指定することができます。
なお、Movable Type標準のカスタムフィールドでは、アイテム(画像等)/コメント/テンプレートにもカスタムフィールドを追加することができます。
一方、AnotherCustomFieldsプラグインではこれらのオブジェクトには対応していません。
なお、Movable Type標準のカスタムフィールドでは、カテゴリごとにブログ記事に表示するカスタムフィールドを切り替えることができます。
一方、AnotherCustomFieldsプラグインでは、この機能には対応していません。
2-2.表示できるフィールドのタイプ
以下のようなタイプのフィールドを表示することができます。
- 1行テキスト入力
- 複数行テキスト入力
- 日本の郵便番号
- 日本の電話番号
- チェックボックス
- セレクト
- ラジオボタン
- 画像
- 動画
- 音声
- ファイル
2-3.Listing Framework対応
Movable Type 5.1のListing Frameworkに対応しています。
AnotherCustomFieldsプラグインで追加したフィールドを、オブジェクト一覧の画面に表示することができます。
また、フィールドの値で絞り込みや並べ替えを行うこともできます。
なお、Listing Framework対応は、別プラグイン(CustomFieldsListing)で行います。
2-4.ブログ記事の検索
テンプレートでブログ記事を出力する際に、SearchEntriesプラグインを使うことで、検索や並べ替えを行うこともできます。
AnotherCustomFieldsプラグインで追加したフィールドも、検索や並べ替えの対象にすることができます。
2-5.Movable Type標準のカスタムフィールドとの互換性
Movable Type標準のカスタムフィールドとは、内部的な実装が異なります。
そのため、データ的な互換性はありません。
また、Movable Type標準のカスタムフィールドでは、カスタムフィールドの種類を増やすプラグインがあります(More Custom Fieldsプラグインなど)。
しかし、それらのプラグインを、AnotherCustomFieldsプラグインに適用することはできません。
3.プラグインのダウンロード
AnotherCustomFieldsプラグイン本体は、以下からダウンロードすることができます。
また、Listing Framework対応は、CustomFieldsListingプラグインによって行います。
CustomFieldsListingプラグインは以下からダウンロードすることができます。
いずれも、ダウンロードしたZipファイルを解凍すると、「plugins」と「mt-static」のフォルダができます。
これらのフォルダを、MTOSのインストール先ディレクトリにアップロードします。
4.サンプルのconfig.yamlファイルとテーマ
プラグインの動作をお試しいただくために、サンプルのconfig.yamlファイルとテーマをご用意しました。
ブログ記事に、サブタイトルと、記事のトップに表示する画像のフィールドを追加するものです。
サンプルは以下からダウンロードすることができます。
AnotherCustomFieldsSample_1_00.zip
Zipファイルを解凍すると、「plugins」と「themes」のフォルダができます。
AnotherCustomFieldsプラグインとCustomFieldsListingをインストールしてあるMTOS環境に、これらのフォルダをアップロードすると、フィールドが追加されます。
また、「デザイン」→「テーマ」メニューを選んで、テーマ一覧で「クラシックブログ(サブタイトル/トップ画像付き) 1.0」を選ぶと、上の画面のように出力されるテーマに切り替えることができます。
なお、Movable Type標準のカスタムフィールドと同様に、ブログ記事にフィールドを追加した直後は、ブログ記事の編集画面にはフィールドは表示されません。
「表示オプション」の部分で、各フィールドのチェックボックスをオンにすると、フィールドが表示されます。
5.プラグインのライセンスと解説書の販売
AnotherCustomFieldsプラグインは、GPLv2ライセンスで無償配布します。
また、AnotherCustomFieldsプラグイン用のCustomFieldsListingプラグインも、GPLv2ライセンスで無償配布します。
MTOS 5.1xにご自由にインストールしてお使いいただくことができます。
AnotherCustomFieldsプラグインの解説書(PDF)は、有償(9,800円)での販売とさせていただきます。
AnotherCustomFieldsプラグイン解説書特設ページでご購入いただくことができます。
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
ご確認をお願い致します。
CustomFieldsListingと
AnotherCustomFieldsの
両方をインストールしましたが
『システムのプラグイン設定 』画面で確認しても
CustomFieldsListing のみ表示されており
AnotherCustomFields が表示されません。
ご確認を頂ければ幸いです。
壱からご確認をお願い致します。への返信
こんにちは。
不具合をご指摘いただき、ありがとうございました。Zipファイルのディレクトリ構造が間違っていましたので、修正しました。
お手数ですが、ファイルを再度ダウンロードしてください。
ご確認をお願い致します。
>お手数ですが、ファイルを再度ダウンロードしてください。
多分、未だ不具合があると思います。
壱
こんにちは。
こちらで確認した限りでは、修正後のZipファイルでは問題は起こっていません。
なお、アップロード後の正しいファイル構成は以下の通りです。
ご確認をお願い致します。
階層に└ AnotherCustomFieldsディレクトリを付加しましたら・・
直りました(^_^;)
今現在上がってるダウンロードファイルはこの階層が修正されておりません。
ローカルで修正されて上げ忘れておられませんか?
ご参考まで。(・∀・)
壱からご確認をお願い致します。への返信
こんにちは。
アップロードしたファイルをこちらで確認した限りでは、正しいディレクトリ構造になっているのですが・・・。
また、Zipファイルを解凍した後、素のMTOSにインストールして、プラグインが正しく認識されることも確認しています。
失礼しました。からご確認をお願い致します。への返信
>また、Zipファイルを解凍した後、素のMTOSにインストールして、プラグインが正しく認識されることも確認しています。
失礼・・Google Chromeだと何度リトライしても最初と同ファイルしかダウンロードされず。。(謎)
Firefoxでリトライして確認しました。
きちんと直っておりました。
失礼しました。(^_^;)
pig
すばらしいプラグインをありがとうございます。
エラーが出てしまったので質問です。
エントリーを投稿するときと、カテゴリを追加するときにメッセージが出ます。(エラー文を記載するとコメント投稿出来なかったので部分的にですが、)
integerが利用できません。
a HASH ref while 「strict refs」として
AnotherCustomFieldsのUtil.pmの19行目
いままでは、書籍「MTOS活用テクニック」を参考にプラグインを作成して項目を追加して、利用できていたのですが、今回のプラグインを両方共追加したら、上記エラーが出たので、「MTOS活用テクニック」を参考に作成したプラグインを削除してみましたが、同様の状況です。
対処方法がございましたら、ご教授いただければと思います。
pig
上記、質問の件ですが、すべてのプラグインを外してからプラグインを一つづつ有効にして、動作を確認したところ、SuperSortを有効にすると上記エラーがおこり、外すと正常に動作しました。
壱からpigへの返信
>pigさん
こんにちは。
不具合を確認できました。修正しましたので、以下からZipファイルをダウンロードして、プラグインをアップロードしなおしてくださいますようお願いします。
http://www.h-fj.com/mt_plugin/AnotherCustomFields_1_00_1.zip
pigからpigへの返信
ダウンロードして動作確認しました。
大丈夫なようでした。ありがとうございました。
shchr
プラグインありがとうございます。基本的なご質問かもしれませんがご回答いただけますでしょうか?フィールド追加用プラグインをアップロード後、mt.cgiで以下のようなエラーが出ました。
Got an error: Error reading /home/URL名/www/home/mtos/plugins/EntryMultiField/config.yaml: Failed to load YAML document from string
宜しくお願い致します
壱からshchrへの返信
>shchrさん
こんにちは。
申し訳ありませんが、こちらでは現象を再現することができませんでした。
EntryMultiFieldのconfig.yamlファイルに、何か手を加えたとかいうことはないでしょうか。
shchrからshchrへの返信
ご返答ありがとうございます。
一応解決いたしましたので、要所を以下に記させて頂きます。
壱様の作成されましたEntryMultiFieldのconfig.yamlファイルを編集したのですが、最終行の改行部分を残したままアップロードしたところ正常に動作いたしました。改行部分を削除すると上記のエラーが出ました。
アップロード後使用したところ正常に動作しましたので、今後活用させて頂きます!
tei
素晴らしいプラグイン、ありがとうございます。
mtos5でのカスタムフィールド風の設定が可能とのことで大変うれしいです。
藤本様のサンプルファイル「AnotherCustomFieldsSample_1_00.zip」を利用してブログ記事にサブタイトルと画像のフィールドを設置する、を試しましたが、画像がアップロードされるものの、登録された様子がありません。
サブタイトルは問題なく表示されます。
これはどのような問題かお分かりになりますでしょうか?
初歩的な質問かもしれませんがお答え頂ければ幸いです。
(なお、藤本様の書籍「MTOS活用テクニック」は手元にありますので、もし解決手段が載っている場合は参照できます)
よろしくお願いいたします。
壱からteiへの返信
>teiさん
こんにちは。
申し訳ありませんが、そちらの環境で動作を追ってみないと、原因は不明です。
teiからteiへの返信
藤本様
返信ありがとうございます。
手順は以下のように行いました。mtはversion 5.11です。
(AnotherCustomFieldsプラグインとCustomFieldsListingも以下の手順でインストール済み)
*AnotherCustomFieldsSample_1_00.zipをダウンロードし、解凍。
*フォルダ内の「EntryFeilds」「classic_blog_with_subtitle_and_topimage」の両フォルダを圧縮。
*両フォルダをレンタルサーバーのロリポップにロリポップFTPを用いてアップロードし解凍(アップロード先フォルダはそれぞれ「/mt/plugins」と「/mt/themes」)。
*mtを再構築。
*新しいブログ(テスト用)を作成、テーマ「クラシックブログ(サブタイトル/トップ画像付き) 1.0」を選択。
*「ブログ記事の作成」からサブタイトル、トップ画像のフィールド追加の確認
*サブタイトルは文字を登録、mtタグの追加で記事への表示までできる。
*トップ画像は画像を選択、アップロードまでできるが、「次へ」を押すと元のページへ戻る。
*アップロードはされているがフィールドには追加されていない状態になる。
初心者のためわかりにくい説明ですみません。
どこか手落ちなどはありますでしょうか?
お答えいただけると幸いです。
よろしくお願いいたします。
壱からteiへの返信
>teiさん
こんにちは。
動作の状況からすると、プラグインのJavaScriptが正しく動作していないと思われます。
ただ、申し訳ありませんが、そちらの環境で動作を見てみないと、どこで不具合が発生しているか分からないです。
teiからteiへの返信
別の方法でアップロードし直したら(個別のフォルダごとではなくまとめてアップロード、サーバー内で解凍、配置)うまく作動しました。
質問に丁寧に答えて頂きありがとうございました。
atsushi
MTOSにてAnotherCustomFieldsとCustomFieldsListingを利用させていただいております。
各プラグインをダウンロード、インストール後、ブログ記事一覧を表示すると下記のエラーメッセージが表示されました。
何か原因は考えられますでしょうか?
Can't locate object method "_langtag_munging" via package "customfieldslisting::L10N"
多言語化が必要かと思い、下記記事を参考に多言語化を行ってみましたが、同様のエラーメッセージが表示されました。
AnotherCustomFieldsプラグイン(多言語対応) - The blog of H.Fujimoto
http://www.h-fj.com/blog/archives/2011/10/26-190714.php
各主バージョンは下記の通りです。
MTOS: 5.12
AnotherCustomFields: 1.01
CustomFieldsListing: 1.11
どうぞよろしくお願いいたします。
壱
>atsushiさん
こんにちは。
_langtag_mangingというサブルーチンは、Locale::MakeTextというモジュールに入っています。
本来なら、Movable Typeに同梱されているLocale::MakeTextモジュールが読み込まれるはずですが、何らかの原因で、他のバージョンのモジュールが読み込まれているか、あるいはモジュールが読み込まれていないことが考えられます。
ただ、申し訳ありませんが、こちらの環境で再現できませんので、そちらの環境で動作を追ってみないとはっきりとした原因は分かりません。
atsushiから壱への返信
> 壱様
早速のお返事ありがとうございます。
> _langtag_mangingというサブルーチンは、Locale::MakeTextというモジュールに入っています。
> 本来なら、Movable Typeに同梱されているLocale::MakeTextモジュールが読み込まれるはずですが、何らかの原因で、他のバージョンのモジュールが読み込まれているか、あるいはモジュールが読み込まれていないことが考えられます。
詳しくご説明いただきありがとうございます。
確認してみたところ、Locale::MakeTextモジュールとその中の_langtag_mangingサブルーチンは入っておりました。
(ナイトリービルド版やMovable Type5のMaketext.pmとも見比べてみましたが、特に違いはありませんでした。)
名前から察するに言語関連のモジュールかと思い、自分なりに原因を探してみたところ、
「L10N.pm」と「L10N」ディレクトリを削除すると、問題なく動作いたしました。
(他のプラグインの「L10N.pm」や「L10N」内の言語設定と見比べてみましたが、特におかしなところはありませんでした。)
今回の私の件では、英語表記でも特に問題ありませんので、
削除した状態にしておきたいと思います。
「こういったケースもある」という一つのご参考になれば幸いでございます。
(私のインストール方法が間違っているだけかもしれませんが…。)
atsushi
度々失礼いたします。
AnotherCustomFieldsの管理画面のチェックボックスのHTMLに間違いがあるのではと思い、ご報告をさせていただきます。
<input type="checkbox">のidが「<mt:var name="field_id">_acf"」なので、その後に続くlabelのforは「<mt:var name="field_id">_acf」になるのではないでしょうか?
既にご存知の不具合でしたら、申し訳ありません。
以下、修正した場合のコードです。
# plugins/AnotherCustomFields/lib/AnotherCustomFields/CMS.pm 25行目
▼修正前
<input type="hidden" name="<mt:var name="field_name" escape="html">" id="<mt:var name="field_name" escape="html">" value="<mt:var name="field_value">" /><input type="checkbox" name="<mt:var name="field_name" escape="html">_acf" value="1" id="<mt:var name="field_id">"<mt:if name="field_value"> checked="checked"</mt:if> class="cb acf_cb" /><mt:if name="check_label"> <label class="hint" for="<mt:var name="field_id">"><mt:var name="check_label" escape="html"></label></mt:if>
▼修正後
<input type="hidden" name="<mt:var name="field_name" escape="html">" id="<mt:var name="field_name" escape="html">" value="<mt:var name="field_value">" /><input type="checkbox" name="<mt:var name="field_name" escape="html">_acf" value="1" id="<mt:var name="field_id">_acf"<mt:if name="field_value"> checked="checked"</mt:if> class="cb acf_cb" /><mt:if name="check_label"> <label class="hint" for="<mt:var name="field_id">_acf"><mt:var name="check_label" escape="html"></label></mt:if>
シマダ
特定のブログのブログ記事にフィールドを追加する、というようなことはできるのでしょうか。
そこら辺のことは解説書に書かれているのかもしれませんが、できるかどうかだけでも知りたいです。
壱
>シマダさん
こんにちは。
>特定のブログのブログ記事にフィールドを追加する、というようなことは
>できるのでしょうか。
できます。
手順は解説書をご参照ください。
なお、厳密に言うと、フィールド自体はすべてのブログのブログ記事に追加されます。
ただ、特定のブログでだけ、追加したフィールドを表示するように設定することが可能です。
シマダ
壱さん
>>特定のブログのブログ記事にフィールドを追加する、というようなことは
>>できるのでしょうか。
>できます。
>手順は解説書をご参照ください。
>
>なお、厳密に言うと、フィールド自体はすべてのブログのブログ記事に追加されます。
>ただ、特定のブログでだけ、追加したフィールドを表示するように設定することが可能です。
すばらしいです!
今後CMSを選ぶときは、MTOS+AnotherCustomFieldsも視野に入れた検討をいたします。
いの
壱さん、初めまして。
先日、解説書を購入させていただいたものです。
ウェブサイトのウェブページの画像フィールドで
下記のエラーが発生してしました。
=======================================
(画像アップロードの画面が立ち上がり…)
エラーが発生しました。
画像のサイズを変更できませんでした: サイズを0x120に変更できませんでした。
=======================================
ウェブサイトのカテゴリの画像フィールドでも
同様のエラーがでます。
ブログのウェブページは正常にアップできます。
MTOSのバージョンは5.12です。
「MultiObjectFields」を修正しております。
どのように対処すればよろしいでしょうか?
壱からいのへの返信
>いのさん
プラグインご利用ありがとうございます。
申し訳ありませんが、こちらでは現象を再現することができませんでした。
そちらの環境でプラグインの動作を追ってみないと、原因は不明です。
いのからいのへの返信
壱さん、迅速なご回答ありがとうございます。
返信おそくなってしまい申し訳ありません。
上記の件、了解いたしました。
こちらもテスト環境ですし、
そこの箇所は修正が頻繁にあるところではないので大丈夫です。
ご参考までに、テスト環境は
エックスサーバー X10プラン
です。
ではでは、また何かありましたら宜しく願いいたします。
やまなか
こんにちは。
昨日解説書を購入させていただいた者です。
解説書通りに設定を行っていたのですが、ブログ記事アーカイブテンプレートの保存/再構築時に「(テンプレートタグ名)は存在しません」とエラーが出てしまいました。
MTOSのバージョンは5.12です。
「EntryMultiField」と「EntryTopImage」を少しだけ修正しました。
ブログ作成画面には各フィールドで値を入力できますし、画像アップロードしたものもサーバーに反映されていました。
ログを見てみると下記のようなものが発生しています。
AnotherCustomFieldsでエラーが発生しました: Can't use string ("integer") as a HASH ref while "strict refs" in use at /plugins/AnotherCustomFields/lib/AnotherCustomFields/Util.pm line 19.
何かこちらの設定でミスをしてしまったのでしょうか?
よろしくお願いいたします。
やまなか
すみません。上記の追記です。
自分がダウンロードしていたのは「AnotherCustomFields_1_00」でした。
「AnotherCustomFields_1_00_1」を入れ直したら治りました。
お騒がせしました・・。
ようどう
壱さん、初めまして。
便利なプラグインのご提供ありがとうございます。
サンプルを元に、同じように自分でconfig.yamlを書いてみました。
うまく動いているのですが、入力するフィールドの初期値が
HASH(0xa0004cc)
となってしまいます。
config.yamlの書き方で、初期値を設定しておく方法はあるのでしょうか。typeはtextです。
ようどうからようどうへの返信
一部、自己レスです。
>HASH(0xa0004cc)
>
>となってしまいます。
>
この原因は config.yaml をutf-8以外で書いてアップしていたための不具合でした。
どのみち初期値の設定方法が分からないので、ご教示ください。
壱
>ようどうさん
こんにちは。
初期値の設定方法はマニュアルに記載してあります。
まる
壱さん。
こんにちは。
先日解説書を購入しこちらのプラグインを快適に使わせていただいております。
質問なのですが、
MT有料版からMTOSへの変更で記事をインポート機能を使って移し替えたいと考えています。
有料版で作ったカスタムフィールドの値を、こちらのプラグインで作ったフィールドに移す方法はありますでしょうか?
AnotherCustomFieldで設定したタグ名と有料版カスタムフィールドのタグの名前は同じにして、有料版からXMLを書き出し、AnotherCustomFieldsを設定し終えたMTOSに
インポートしてみましたが上手くいきませんでした。
記事の量がおおいので、一括変換できる良い方法がありましたら
ご教授宜しくお願いします。
壱
>まるさん
こんにちは。
申し訳ありませんが、現状ではMT標準のカスタムフィールドの値を、このプラグインのフィールドに移す機能はありません。
今後で、商用ライセンス対応版を出す際に、フィールドを移す機能を追加する予定です。
高橋
壱さま
お世話になっております。
複数のブログで、違うフィールドを追加しています。
(blog_id: 2,3 というように)
このとき、例えば
ID:2ブログのみに表示されるフィールドの一部を必須にすると、
ID:3のブログで投稿時、「表示されていない項目」に対して
「〇〇フィールドは入力必須です。」
というエラーメッセージが出て、投稿できません。
ブログIDを指定しても、実際にはデータベースにテーブルが追加されているということで、ブログをまたがって必須・任意を使い分けることは原理的に不可能なのでしょうか?
壱から高橋への返信
>高橋さん
こんにちは。
ご指摘の件は不具合だと思いますので、調査して修正します。
今しばらくお待ちください。
なかじま
壱さま
プラグインをありがとうございます。先日解説書も購入させていただき、導入を試しているのですが、再構築時に「Cannot find column 'フィールド名' for class 'MT::Entry」のエラーが出てしまいました。素人のため、自分では解決をすることが出来ませんでした。対処方法がございましたら、教えていただけますでしょうか。サンプルの.yamlファイルをダウンロードして試してみましたが、同じ症状です。よろしくお願いいたします。
壱からなかじまへの返信
>なかじまさん
こんにちは。
ごく一部のサーバーで、Cannot find columnのエラーが発生することがあるようです。
サーバーのPerlのモジュールのバージョン等が原因のようで、プラグイン側で対処することはできません。
申し訳ありませんが、別のサーバーをお使いいただきますようお願いします。
なかじまからなかじまへの返信
壱さま
早速のご回答をいただきまして、ありがとうございます。
サーバーの方の問題とのこと、了解いたしました。現在ロリポップのレンタルサーバーを使用しておりました。
こちらの都合で、今すぐにサーバーの変更が出来ないのですが、今後の参考に、現段階で動作確認の取れているサーバーのリストなどがあれば、教えていただければ幸いです。
壱からなかじまへの返信
>なかじまさん
こんにちは。
申し訳ありませんが、動作確認が取れているサーバーのリストはありません。
ただ、これまでの経験上、ロリポップではトラブルが多いことは事実です。
かわ
壱様
MTOS用のカスタムフィールドのプラグイン、大変助かっています。ありがとうございます。
主に画像やテキストフィールドで使用しているのですが、フラグ管理でラジオボタンを使用しています。
ところが、ラジオボタンのフィールドの設定が悪いのか、エントリーの変更画面でもチェックした値が反映されていません。
また、その値を参照した記述を行っているテンプレート側でも正しい内容が出力されていません。
新規のエントリー登録画面ではdefault:設定が反映されるのですが、登録後はいずれのラジオボタンも未選択となってしまっています。
これは、config.yamlの設定が間違っているか、あるいはサーバの環境によるものでしょうか?
ご教授いただければと思います。よろしくお願い致します。
さか
エントリー投稿時に、
Failed to execute INSERT INTO mt_entry (entry_allow_comments, entry_allow_pings, entry_atom_id, entry_author_id, entry_authored_on, entry_basename, entry_blog_id, entry_category_id, entry_class, entry_comment_count, entry_convert_breaks, entry_created_by, entry_created_on, entry_dataarea, entry_excerpt, entry_keywords, entry_modified_by, entry_modified_on, entry_ping_count, entry_pinged_urls, entry_status, entry_tangent_cache, entry_template_id, entry_text, entry_text_more, entry_title, entry_to_ping_urls, entry_week_number, entry_current_revision) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) with allow_comments, allow_pings, atom_id, author_id, authored_on, basename, blog_id, category_id, class, comment_count, convert_breaks, created_by, created_on, dataarea,
excerpt, keywords, modified_by, modified_on, ping_count, pinged_urls, status, tangent_cache, template_id, text, text_more, title, to_ping_urls, week_number, current_revision: DBD::mysql::st execute failed: Unknown column 'entry_dataarea' in 'field list'
というようなエラーが表示されるのですが・・・。
壱
>さかさん
こんにちは。
一部のサーバーで、フィールドの追加がうまくできないことがあります。
詳しい原因ははっきりしていませんが、MySQLのバージョンや、Perlのモジュール(DBIやDBD::mysqlなど)のバージョンによるものだと思われます。
なお、phpMyAdminを使って、mt_entryテーブルにentry_dataareaフィールドを自力で追加すれば、動作するようになる可能性があります。
菊池
日付型を使用したいと思い、config.yamlを下記の用に設定しました。
testdate:
type: datetime
revisioned: 1
acf:
type: datetime
label: テスト日付
tag: testDate
上記の設定だと時間部分を埋めないとエラーとなり
testdate:
type: datetime
revisioned: 1
acf:
type: date
label: テスト日付
tag: testDate
上記のように変更するとNULLを受け付けてくれません。
表示できるフィールドタイプに日付は入っていませんが、その下の画像ファイルには日付入力がありましたので質問させていただきました。
壱から菊池への返信
>菊池さん
こんにちは。
不具合を確認しました。
修正しますので今しばらくおまちください。
鈴木
初めまして。
質問ですが、当プラグインで投稿したものもMTのバックアップの対象に入るのでしょうか?
ご教授くださいますと助かります。
よろしくお願いいたします。
壱から鈴木への返信
>鈴木さん
こんにちは。
バックアップと復元の際には、このプラグインで追加したフィールドも処理されます。
ただし、インポートとエクスポートの機能には対応していません。
山崎
初めまして。
カスタムフィールド風プラグイン使用させていただいていますが、とても素晴らしいプラグインですね。
ありがとうございます。
さて、表記の件についてなのですが、
現在さくらのマネージドサーバー上のMTOS5.14で最新版の1.12を使用させていただいています。
特に動作にも問題なく使用させていただいているのですが、
画像フィールドを使用し、既に投稿済みの画像を削除したい場合、
画像フィールド下の「画像削除」のリンクからですと画像の削除が出来ないように思います。
これは私の環境に依存するものであればやむを得ないかと思うのですが、ご確認頂けないでしょうか。
壱
>山崎さん
こんにちは。
ご質問の件ですが、「画像の削除」は、そのフィールドと画像とのリンクを切ることです。画像そのものをサーバーから削除することではありません。
リンクも切れない(削除後にブログ記事を保存して、再度そのブログ記事を開くと、画像が復活する)という動作だと不具合ですが、そうなっているということでしょうか。
なお、この不具合は1.11で修正済みで、1.12でも不具合が発生しないことを確認しました。
アイハラ
初めまして。
MT商用版のカスタムフィールド追加作業は、
ブラウザベースで1つ1つ追加するので作業が面倒なのですが、
こちらですとconfigファイルで一気に作業できるので非常に楽です。
ありがとうございます。
さて、質問なのですが、
画像フィールドを追加して記事の書き込みを行った後、
該当記事を再編集しようとすると、
画像フィールドにアップしたはずの画像がフィルされておらず、
改めて画像をアップし直さないといけない現象が頻発しています。
(再現する場合と再現しない場合があり、非常に不安定です)
また、そちらでご提供のサンプルconfig.yamlファイルでも
同様の不具合が再現する場合がありました。
MTOSのバージョンは5.14-ja、
MySQLのバージョンは5.0.82-community-log、
です。ご確認よろしくお願いします。
壱からアイハラへの返信
>アイハラさん
こんにちは。
ご質問の件ですが、申し訳ありませんがこちらでは現象を再現することができませんでした。
現象からして、JavaScriptがエラーを起こしているように思います。画像を選択した際に、JavaScriptのエラーは発生していないでしょうか。
また、お使いのWebブラウザは何でしょうか?また、Webブラウザを変えても同様の動作が起こるでしょうか。
kitazawa
こんにちは。
既出の問題で恐縮ですが、No1さんと同じ状態で困っております。
>>CustomFieldsListingと
>>AnotherCustomFieldsの
>>両方をインストールしましたが
>>『システムのプラグイン設定 』画面で確認しても
>>CustomFieldsListing のみ表示されており
>>AnotherCustomFields が表示されません。
ダウンロードさせていただいたのはCustomFieldsListing、
AnotherCustomFieldsともに "_1_20" です。
MTOSのバージョンは5.14-ja。アップするディレクトリにつきましてはサイトに記述されている通りにやっているかと思います。
サーバはドメインキーパー、lolipopの2つで試してみましたが両方とも同じです。
また、最終的にはGoogleMapsCustomFieldsを使ってカスタムフィールドに入力した住所にマーカーをつけていって、投稿する度にマーカーが増えていくということをやりたいのですが、こちもプラグインの画面に表示されません。
ご教授の程よろしくお願いいたします。
壱からkitazawaへの返信
>kitazawaさん
こんにちは。
「システムの」プラグイン設定の画面ではなく、ブログやウェブサイトのプラグイン設定の画面を見ているのではないでしょうか。
管理画面左上のMovable Typeのロゴの下にあるメニューをクリックし、「システム」を選んでシステムメニューに切り替えてから、「ツール」→「プラグイン」を選んでください。
ちなみに、ブログ/ウェブサイトのプラグイン一覧には、ブログ/ウェブサイトごとの設定があるプラグインのみ表示されます。
CustomFieldsListingプラグインにはブログ/ウェブサイトごとの設定がありますが、AnotherCustomFieldsプラグインにはブログ/ウェブサイトごとの設定はありません。
プラグインを正しくアップロードしていて、かつシステムのプラグイン一覧を見ているにも関わらず、AnotherCustomFieldsプラグインが表示されないとなると、申し訳ありませんが原因不明です。
なお、ロリポップではフィールドが追加されないことがあるそうですので、ロリポップでのご利用はお勧めしません。
みーこ
プラグインをロリポップで使用しています。
サーバー環境は変更できなかったので、試しにphpmyadminを使用してフィールドを自力で追加してみました。値の入力・反映はできるようになりましたが、管理画面のカスタムフィールドを空白にして記事をアップした場合、作成後そのフィールドに自動的に「0」が入力されてしまいます。
フィールドになにも入力がされていない場合は、空白のまま値が入らないようにしたいのですが、どうしたらよろしいでしょうか?
(ちなみに、phpmyadminの設定は種別:VARCHAR、初期値:NULL、NULL:許可 です)
サポート外のご質問かもしれないのですが、できればご教示いただければ幸いです。どうぞよろしくお願い致します。
壱からみーこへの返信
>みーこさん
こんにちは。
ご質問の件ですが、config.yamlのフィールドのデータ型の行を「integer」か「float」にされているのだと思います。
現状の仕様では、integerかfloatのフィールドで、何も入力しないでオブジェクトを保存した時には、値を自動的に0に置換するようにしています。
0に置換しないようにするには、プラグインを数か所修正する必要があります。
今後のバージョンアップの際に、空白のまま保存する機能を追加したいと思います。
なお、phpMyAdminでデータの種別をVARCHARにされたとのことですが、数値を保存するのであれば、VARCHARではありません。
config.yamlのデータ型の行を「integer」にするなら、phpMyAdminでは「INT」を選びます。また、データがの行を「float」にするなら、phpMyAdminでは「FLOAT」を選びます。
みーこからみーこへの返信
お返事ありがとうございます!
typeはphpmyadminの種別とリンクしているのですね(…という認識でよいのでしょうか)
>現状の仕様では、integerかfloatのフィールドで、何も入力しないでオブジェクトを保存した時には、値を自動的に0に置換するようにしています。
たとえばなんですが、textのフィールドは値が入っていない場合は空白になったりしますか?
もし空白になるフィールドがあれば教えていただきたいです。
あと追加なんですが、type:stringのフィールドの場合、phpmyadminの種別はどう指定するのでしょうか?
お答え頂けますとうれしいです。
壱
>みーこさん
こんにちは。
>たとえばなんですが、textのフィールドは値が入っていない場合は空白になったりしますか?
データ型として「string」か「text」を指定したフィールドでは、入力欄を空欄にして保存すれば、フィールドの値は空の文字列になります。
ただし、文字として値を保存することになりますので、フィールドの値で並べ替える場合、数値としての並べ替えと順序が異なります。
例えば、「10」と「2」だと、数値として並べ替える場合は10の方が大きいですが、文字として並べ替えると「2」の方が大きいと判断します。
>type:stringのフィールドの場合、phpmyadminの種別はどう指定するのでしょうか?
「VARCHAR」にあたります。
また、typeをstringにする場合、config.yamlに「size:長さ」の行も指定しますが、これはphpMyAdminでは「長さ」の欄にあたります。
mwave
こんにちは。説明書を拝見したのですが、わからないのでご教示ください。
ブログ記事に追加したフィールドを最初から画面に表示させたい場合にはどうしたらいいのでしょうか。
ユーザーを追加するたびに、表示オプションでチェックを入れなければいけないので、最初からチェックが入った状態にしたいのです。
よろしくお願いいたします。
壱からmwaveへの返信
>mwaveさん
こんにちは。
アルファサードの野田様が配布されている「EntryPrefsFixer」というプラグインを使うと、ご希望に近いことを行うことができます。
http://junnama.alfasado.net/online/2010/05/movable_type_9.html
管理者ユーザーが表示オプションを変更すると、その他の全てのユーザーの表示オプションも一括して変更されるというプラグインです。
また、管理者以外のユーザーは、表示オプションを操作することができなくなります。
mwaveからmwaveへの返信
壱様
希望どおりの動きになりました。
ありがとうございました。
ICO
こんにちは。
とても便利なプラグインなので導入しようとし、試しに『AnotherCustomFieldsSample_1_00.zip』を入れてみたのですが、サブタイトルと画像を投稿しようとしたところ、『DBD::SQLite::db prepare failed: table mt_entry has no column named entry_subtitle(1)』と出てしまいました。
どういった原因が考えられますでしょうか?
よろしければ教えてくださいませ。よろしくお願いいたします。
壱
>ICOさん
こんにちは。
申し訳ありませんが、Movable Type 5.0以降はSQLiteには対応していませんので、MySQLでお使いください。
ICOから壱への返信
早速ご回答いただき、ありがとうございます。
SQLiteは非対応なのですね。承知いたしました。
ちなみに『MTOS活用テクニック―カスタムフィールドで本格的なCMS機能を実現!』に書かれていることもMySQLが前提でしょうか?
こちらで質問して良いことでなければ申し訳ございません。
よろしくお願いいたします。
jose
はじめまして、藤本さん。
現在AnotherCustomFieldsプラグインの解説書購入を検討しているのですが、機能と掲載内容についてお尋ねさせてください。
MultiBlogで複数のブログを管理しているのですが、各ブログ毎にフィールドを分けることは可能でしょうか?
Blog_Aには価格、商品画像フィールド
Blog_Bにはリード文、
といった具合にブログ毎に表示するフィールドを切り替えたいです。
また、そうした解説等が解説書に記載されているかも合わせてお答え頂けると非常に助かります。
現在、藤本さんの書かれた【MTOS活用テクニック】を利用させて頂いているのですが、サイトのリニューアルに伴いこちらのプラグインを利用させていただこうと考えております。
お手数ですがお答え頂けると助かります。
よろしくお願い致します。
壱からjoseへの返信
>joseさん
こんにちは。
ブログごとにフィールドを分けることも可能です(厳密にいうと、フィールド自体はシステム全体に追加されますが、ブログごとに管理画面に表示するかどうかを指定することができます)。
もちろん、解説書にもその手順を記載しています。
ご検討よろしくお願いいたします。
さっさ
MTOS5.2.2での利用を考えております
ご説明に「AnotherCustomFieldsプラグインは、MTOS 5.1xでカスタムフィールドのようなことができるプラグインです。」
とありますが 5.1x以降という事でよろしいのでしょうか?
壱からさっさへの返信
>さっささん
こんにちは。
AnotherCustomFieldsプラグインは、MTOS5.2.2でもご利用いただくことができます。
ぜひお試しください。
さっさからさっさへの返信
ご回答頂きましてありがとうございます
設定等難しそうですが頑張ってみます
あんぽ
こんにちは、画像フィールドについて教えてください。
画像フィールドを追加してアップロードをしたのですが、記事編集画面に画像が表示しません。
「No.6」さんと同じ現象だと思われます。
各ブラウザ(FF、IE、safari、chrome)で確認したのですがすべて画像が表示しません。
サーバはさくらを使用しています。
別の案件で同じことを設置したのですが、そちらは問題なくアップロードできました。こちらのサーバはXサーバです。
何か原因がわかりますでしょうか。
お手数ですがよろしくお願いいたします。
壱からあんぽへの返信
>あんぽさん
こんにちは。
具体的な原因はそちらのサーバーを見てみないと分かりませんが、どのブラウザでも動作しないとなると、当プラグインのJavaScriptのファイルが正しくアップロードされていないか、あるいは他のJavaScriptとの関係でエラーが起こっている状況ではないかと思います。
かれん
いつもお世話になっております。
大変素晴らしいプラグインに感謝しております。
(もちろん解説書も購入させていだたきました)
さて、ひとつ質問なのですが、
チェックボックス型のフィールドを追加して、チェックの入った記事だけを
トップページに呼び出したいと思ったのですが、
<mt:Entries field:customfield="1">のような使い方は出来ないようですね。
こちらのプラグインを使って似たようなことをする方法はありますでしょうか。
とりあえずはタグで対応しましたが、
自分以外のあまり知識の無い方に更新していただくことを考えると、
やはりチェックボックスの方が楽だと思うので…。
壱からかれんへの返信
>かれんさん
こんにちは。
<mt:Entries field:customfield="1">のように書くことはできませんが、SearchEntriesプラグインと組み合わせて以下のように書くことで、チェックがオンになっている記事だけを読み込むことができます。
みや
ローカル環境でのみですが、ブログ/ウェブサイトのフィールドを追加するとブログ一覧画面で以下のエラーが表示されます。
Can't locate object method "_langtag_munging" via package "customfieldslisting::L10N"
ブログ用のフィールドでは問題なく動きました。
原因分かりますでしょうか?
よろしくお願いします。
AnotherCustomFields 1.21
XAMPP 1.8.2
MTOS 5.2.7
壱
>みやさん
こんにちは。
12番のコメントと同じ状況だと思います。
XAMPP 1.8.2ということですが、OSは何でしょうか?
ちなみに、WindowsにXAMPP 1.8.2をインストールすると、MT自体のインストールができませんでした。
なお、ローカルサーバーでテストしたいということであれば、先日公開したMTOSインストール済みVagrant環境をお試しください。
http://www.h-fj.com/blog/archives/2013/08/06-114046.php
http://www.h-fj.com/blog/archives/2013/08/08-095454.php
http://www.h-fj.com/blog/archives/2013/08/09-091652.php
みやから壱への返信
壱様
返信ありがとうございます。
osはxpです。
上記のページを参考にVagrantで試してみます。
ありがとうございました。
ochi
SearchEntriesプラグインで未公開記事(draft)を設定し、プレビューを見た場合、AnotherCustomFieldsのデータが表示されないようです。対処法はありますか?
壱からochiへの返信
>ochiさん
表示されなかったときの状況をもっと詳しくお知らせください。
なお、こちらで以下の状況で動作を確認しましたが、AnotherCustomFieldsプラグインのフィールドも表示されました。
・インデックステンプレートに以下のMTSearchConditionsタグのブロックを入れました。
・上記のブロックの後にMTEntriesタグのブロックを入れて、その中でAnotherCustomFieldsプラグインで追加したフィールドを出力するようにしました。
・このインデックステンプレートをプレビューしました。
kogure
有益なプラグイン開発ありがとうございます。
>>テンプレートでブログ記事を出力する際に、SearchEntriesプラグインを使うことで、検索や並べ替えを行うこともできます。
>>AnotherCustomFieldsプラグインで追加したフィールドも、検索や並べ替えの対象にすることができます。
という記載があったので、一点質問なのですが、AnotherCustomFieldsで作成した項目を、SearchEntriesで検索したいのですが、
たとえば以下のような記載の場合、AnotherCustomFieldsの項目をどうやって指定するのでしょうか?
▼以下の場合だとタイトルを検索する例ですが、「title」部分の指定を変えるのでしょうか?
<$mt:GetQueryParamsToVars$>
<mt:SearchConditions>
<mt:If name="qp_title">
<$mt:SearchConditionLike field="title" values="$qp_title"$>
</mt:If>
</mt:SearchConditions>
基本的な質問ですみません。
asuka
いつもお世話になっております。
同一ブログ内のブログ記事とウェブページに別々のフィールドを追加しました。
その時点では問題なかったのですが、ウェブページに必須フィールドを追加したら、そのフィールドが表示されていないブログ記事を保存時に「○○フィールドは入力必須です」というエラーがでてしまいました。
表示されていないだけで、実際はブログ記事とウェブページのどちらにもフィールドが追加されているために、必須設定がひっかかってしまうのでしょうか?
対処方法などありましたら教えていただけませんでしょうか。
どうぞよろしくお願いいたします。
壱からasukaへの返信
>asukaさん
こんにちは。
ご指摘の件を修正しますので、今しばらくお待ちください。