「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
カテゴリ/フォルダ/ブログ記事/ウェブページを並べ替えるプラグイン(SuperSort)の使い方
カテゴリ/フォルダ/ブログ記事/ウェブページを並べ替えるプラグイン(SuperSort)の使い方をまとめたページです。
1.ダウンロード
以下のリンクをクリックすると、プラグインのファイルをダウンロードすることができます。
- Movable Type 4.2用
SuperSort_1_00.zip - Movable Type 5.0x用
SuperSort_1_10rc2.zip - Movable Type 5.1x/5.2x用
SuperSort_1_20b2.zip
2.使い方
このプラグインの使い方は、以下の各ページを参照してください。
- その1・概要とインストール
- その2・並び順の初期化
- その3・カテゴリ等の並べ替え方
- その4・並び順に沿ってカテゴリ等を出力するテンプレートタグの書き方
- その5・並び順で前後のブログ記事やカテゴリなどを出力するテンプレートタグの書き方
- その6・並び順の番号を出力するテンプレートタグの書き方
- その7・ブログ記事/ウェブページの作成/編集/削除時の動作
- その8・カテゴリ/フォルダの作成/編集/削除時の動作
- その9・連番の振り直し
- その10・ブログ記事のページに同一カテゴリ記事一覧を出力する
- その11・カテゴリアーカイブにサブカテゴリの記事も出力する
- RC1版の追加機能(1)・ユーザーインターフェースの改良
- RC1版の追加機能(2)・offset/lastnモディファイアの追加、MTSortedTopLevelCategoriesタグ等の追加
- RC2版の追加機能・categoryモディファイア等の追加
3.ライセンス
SuperSortプラグインは、以下のライセンスでご提供します。
3-1.商用ライセンスのMTと組み合わせる場合
商用ライセンスのMovable Typeと組み合わせる場合は、有償とさせていただきます。
料金は、導入先のMovable Type1件につき3,000円とします。
お振込み方法等の詳細につきましては、メールフォームからお問い合わせいただきますようお願いします。
なお、アカデミックライセンスと組み合わせる場合は、無償とさせていただきます。
3-2.個人無償ライセンスのMTと組み合わせる場合
個人無償ライセンスと組み合わせる場合は、無償でご利用いただくことができます。
ただし、以下に従ってご利用いただきますようお願いします。
- 改変・再配布は自由に行っていただいてかまいません。
ただし、ソースコード中のクレジットは残しておいてください。 - 無料でご利用いただくことができます。
ただし、プラグインの開発やサポートのご支援のために、ドネーションをご検討いただければ幸いです。 - 当プラグインは無保証で提供します。
3-3.MTOSと組み合わせる場合
- GPLv2に従います。
- 無料でご利用いただくことができます。
ただし、プラグインの開発やサポートのご支援のために、ドネーションをご検討いただければ幸いです。
daizi
正式版のリリースおめでとうございます。
ベータ版から使わせていただいていました。プラグインを追加した当初は順調に稼動していたのですが、何かのタイミングでエラーが発生するようになりました。
カテゴリの並び順を変更しようとすると「カテゴリの並び順の保存に失敗しました。」というエラーや
再構築の際に
タグでエラーがありました: categoriesの並べ替えでエラーが発生しました: Cannot find column 'order_number' for class 'MT::Category' /public_html/blog/mt/plugins/SuperSort/lib/SortCatFld.pm line 6
というエラーが発生します。
ウィジェット>カテゴリアーカイブ>
のように記述しています。
長文失礼いたしました。
ご回答いただけると幸いでございます。
宜しくお願い致します。
壱
>daiziさん
こんにちは。
ご質問の件ですが、何らかの原因で、データベースのmt_categoryテーブルのcategory_order_numberフィールドがなくなってしまったのではないかと思います。
phpMyAdminを使うことができるのであれば、MTのデータベースのmt_categoryテーブルに、手作業で「category_order_number」フィールドを追加してみてください。
なお、フィールドの種類は「INT」で、長さは「11」、デフォルト値は「NULL」で、「NULL」のチェックはオンにします。それ以外の項目は空欄のままにします。
daiziから壱への返信
返信をいただきありがとうござます。
>phpMyAdminを使うことができるのであれば、MTのデータベースのmt_categoryテーブルに、手作業で「category_order_number」フィールドを追加してみてください。
さきほど確認しましたが、「category_order_number」フィールドは存在しているようでした。
一度削除し、指定していただいた内容でフィールドを追加しましたが同じエラーが表示されます。
なぜでしょうか…。わかりません。
壱から壱への返信
>daiziさん
こんにちは。
申し訳ありませんが、そちらのサーバーで動作を追ってみないと、原因は分からなさそうです。
ちなみに、このプラグインではテーブルにフィールドを追加しますが、そのような動作をするプラグインは、環境等の原因で、サーバーによっては動作しないことがあります。
これまでにも何度か同様の現象の報告を受けています。
ただ、テーブルにフィールドを追加する処理は、MTの内部で行われていますので、プラグイン側での対処ができないのが現状です。
E110
正式版リリースされていたとは知りませんでした(笑)
早速ですが、1つ要望があります。
sort_methodモディファイアをmt:categoriesブロックタグで使えるようにして欲しいです。
カテゴリ別の検索ボックスを設置しているのですが、mt:categoriesブロックタグで使えない為、並べ替えが出来ません。
http://www.materializing.net/archives/2008/07/23004337.php
よろしくお願いします。
壱
>E110さん
こんにちは。
そちらのページを拝見しましたが、mt:Categoriesブロックタグの部分を以下のように変えれば、ご希望の動作になると思います。
ちなみに、MTCategoriesタグにsort_methodモディファイアを付けるには、MT本体のソースを書き換える必要があります。
E110から壱への返信
ご指摘の通りにソースを修正したら成功しました!
ありがとうございました。
俊彦
SuperSortプラグインをMTOSで利用させていただいております。
ありがとうございます。
ところで、先日新たに設置したMTOSにSuperSortプラグインを導入したところ、いったんは正常に動作したものの翌日になると動作しなくなって(並べ替えられなくなって)しまいました。
うっかり間違えてRC版を導入していたので、いったん削除してあらためて正式版を導入しましたが、変わりません。
なんとか再度正常に動作させたいのですが、プラグインを削除し再アップロードではダメでしょうか。
ちなみに同一サーバーの別ドメインでは、SuperSortがなんら問題なく動作しています。
ですから、サーバーとのマッチングといった問題ではないように思えます。
お手数をおかけして恐縮ですが、ご教示いただければ幸いです。
壱から俊彦への返信
>俊彦さん
こんにちは。
申し訳ありませんが、いただいた状況だけだと、動作しなくなった原因は不明です。
俊彦から俊彦への返信
さっそくのお返事ありがとうございます。
どのような情報をお伝えすれば、原因を特定できそうですか?
お教えいただければ、可能なかぎり調べてお伝えします。
また、繰り返しになりますがプラグインがうまく動作しないため削除→再インストールをおこなっても変化がないのは、なぜでしょうか。
なにか他にも削除すべきものがあるのであれば、お教えください。
以上、宜しくお願い致します。
壱から俊彦への返信
>俊彦さん
こんにちは。
このプラグインは、データベースのテーブルにフィールドを追加しています。
そのため、プラグインのインストールをやり直すには、プラグインのファイルを削除するだけではだめで、フィールドを削除してテーブルを元に戻す必要があります。
このプラグインを削除する手順は、以下のようになります。
1.アップロードしたファイルをすべて削除します。
2.phpMyAdmin等を使って、MTのデータベースを操作できる状態にします。
3.mt_entryテーブルからentry_order_numberフィールドを削除します。
4.mt_categoryテーブルからcategory_order_numberフィールドを削除します。
5.mt_placementテーブルからplacement_order_numberフィールドを削除します。
6.mt_configテーブルにレコードが1つだけあると思いますので、そのレコードを編集する状態にします。
7.config_dataフィールドの値の中に以下のような部分がありますので、それを削除して、レコードを保存します。
PluginSchemaVersion super_sort=1.00
なお、プラグインが動作しない原因を調べるには、おそらくそちらのサーバーにログインしてデバッグすることが必要です。
俊彦から俊彦への返信
このたびは、ご丁寧にお教えいただきまことにありがとうございました。
ただ、お教えいただいた削除方法は全データの削除が前提となっているため、あれこれカスタマイズしている身としては厳しいです。
また、お教えいただいたデータベースの操作も、残念ながら現時点での私には技術的なハードルが高すぎました。
そこで、このページに書かれている「remove_html="1"」を追記する方法で、ひとまず並び替えを行いました。
スマートな方法ではないかもしれませんが、同様の事象でお悩みの方がいらっしゃいましたら参考になさってください。
http://archive.mag2.com/0000169548/20080514100937000.html
匿名
いつも、お世話になっております。
さて、早速ですが、同一階層にフォルダとウェブページが存在した場合に、フォルダとウェブページも並び替える手段はないでしょうか?
壱から匿名への返信
>匿名さん
こんにちは。
申し訳ありませんが、フォルダとウェブページを混在させて並べ替える機能はありません。
匿名から匿名への返信
早速のご返信ありがとうございます!
了解いたしました。
MI
SuperSortプラグインを導入させていただきました。
大変便利なプラグインで、非常に重宝しております。
1点、並び替え画面にて不可解な現象が発生しておりまして、
こちらについて一度見解をいただけないかと思い、コメントいたしました。
●導入したプラグインのバージョン
ver 1.00
●現象の発生手順
1.空のカテゴリを2つ用意する
2.片方の空のカテゴリをクリックし、中身がロードされた状態にする(フォルダの開いたアイコン)
3.ロードされた状態のカテゴリに、もう片方の空のカテゴリをドラッグする
4.3でドラッグしたカテゴリが消えてしまう
その状態で保存した場合、並び替えは正常に行えております。
ただ、3でドラッグしたカテゴリが空ではなく、
サブカテゴリやエントリーを持っていた場合もそのまま消えてしまうため、
一度保存をしないとその後の操作に少々戸惑います。
また、エントリーをドラッグした場合は、正しく子として表示されます。
●発生を確認したMT
・MTOS 4.31
・MovableType 4.261
ローカル、またサーバー上で確認をしているのですが、
一度ご確認いただけませんでしょうか?
どうぞよろしくお願いいたします。
footbrain
いつもお世話になってます。
Movable Type Pro version 4.33-jaで、カテゴリーを指定してブログ記事を保存しようとすると、loadingが延々と続いたあげくエラーが発生し、保存終了時の画面に戻ってこないというトラブルに見舞われました。この時「変更を保存しました。 」と表示はありません。
カテゴリーを指定しない場合はエラーは発生しないので、試しにSuperSortを無効にしてみたところ、エラーは解消し、カテゴリーを指定しても保存することができました。
このトラブルの原因はどこにあるのでしょうか?
何か考えられる事はありますか?
壱からfootbrainへの返信
>footbrainさん
こんにちは。
こちらでMT4.33環境で試してみましたが、問題なく動作しました。
申し訳ありませんが、そちらの環境で動作を追ってみないと、原因は分からないです。
footbrainからfootbrainへの返信
返信ありがとうございます。
>こちらでMT4.33環境で試してみましたが、問題なく動作しました。
そうでしたか。お手数をお掛けして申し訳ありませんでした。
こちらでも、組み合わせるプラグインを変えて再度テストしてみたのですが、
公開保存は、正常に動作しています。
未公開保存の場合、保存はできているのですが、タイムアウトでもしているようで、数分経過しても「新しいブログ記事を作成」画面に戻ってくる事ができずにエラーになっているようでした。
footbrainからfootbrainへの返信
>壱さん
MT4.34にアップグレードしたところ、既存の問題は解消され、正常に動作しています。
MT4.33に問題があったようですね。
お手数をお掛けしました。
ロン
いつもお世話になっております。
SuperSortで1つ質問があります。
こちらで配布されているプラグインではないのですが、記事で設定したタグが他の記事と重複した場合に関連記事として出力できるタグ機能拡張のプラグインを使用しています。
ttp://code.google.com/p/ogawa/wiki/TagSupplementals_Plugin
しかし、例え同じタグが設定されていても、属するカテゴリが同じでなかった場合は関連記事として出力されないので困っているのですが、これはSuperSortと併用しているのが原因という可能性はありますでしょうか。
他所様のプラグインの話も混ざっており大変恐縮なのですが、ご教授いただけると助かります。
宜しくお願い致します。
壱からロンへの返信
>ロンさん
こんにちは。
こちらで試してみた限りでは、SuperSortプラグインが入っている環境でも、TagSupplementalsプラグインでの関連記事表示を問題なく行うことができました。
ちなみに、MySQLの文字コードの関係で、「同じタグが正しく認識されない」という現象が起こることがあります。
以下の記事を参照してみてください。
http://www.apstars.com/blog/211movable_type4/mt4_20.php
ロンからロンへの返信
ご返答ありがとうございます。
ご提示頂いた情報を参照してみたのですが、MySQLの文字コードは元々UNICODE(UTF-8)でしたので問題なさそうでした。
そこからタグ一覧ページを見ていた所、同じタグ名をつけたつもりが一文字だけ大文字になっている事に気づきました…
まさかこの大文字・小文字の違いで別のタグと認識されているのではと思い、修正してみると無事に関連記事として出力されました。
完全に私のミスで、さらに他所様のプラグインの話にも関わらずわざわざ検証までしていただいて本当にありがとうございました。
これからタグを記述する際は、全て小文字に統一するように注意します。
ではこれからもブログの更新楽しみにしています!
スパークジャパン 磯谷
藤本様
お世話になります。
スパークジャパンの磯谷です。
弊社で2度ほど利用した、MTプラグイン機能であるSuper Sortを使わせていただきたいとおもいます。
つきましては、発注手続きをお願いします。
よろしくお願いします。
でぷ
いつも大変お世話になっております。
只今自社サイト開発用にMT5.02環境でver1.10rc2を試用させていただいています。
フォルダとウェブページの並べ替え画面で複数フォルダを同時に展開しようと一度にクリックすると、展開後のサブフォルダ・ウェブページの構成が正しく表示されないようです。
一つずつフォルダ展開するようにすれば済むのですが、どうしても同時展開したがるユーザーもいるため少々困っています。
何か回避方法はございますでしょうか?
ワイコード
いつも大変お世話になっております。
素晴らしいプラグインの数々および書籍等ありがたく利用させていただいております。
さて、当方MTOS5.03にて10rc2を利用させていただいておりますが、モジュール共有のところで少し引っかかってしまいました。
ウェブサイトのフッターナビ部分モジュールの共有にて
というモジュールを子ブログのテンプレートからから呼び出したところ「カテゴリ別ブログ記事リスト」テンプレートだけが言うことを聞いてくれず表示されませんでした。その他の「メインページ」および「ブログ記事」に関しては特に問題ありませんでしたので呼び出し方に問題は無さそうなのですが…。
また、
に戻したところ子ブログの「カテゴリ別ブログ記事リスト」でも問題なく表示されましたので何か問題があるのかなと思いご報告させていただきました。テンプレートは完全にカスタムですのでそのあたり何か気がつかない部分もあるかと思いますが、もし解決方法等があれば教えていただけないでしょうか?
説明不足の部分が多々あるかと存じますが、補足させていただきますので何卒よろしくお願いいたします。
壱からワイコードへの返信
>ワイコードさん
こんにちは。
以下を試してみてください。
1.拙作のForceIndexContextプラグインをインストールします。
http://www.h-fj.com/blog/mt5plgdoc/forceindexcontext.php
2.モジュールの先頭に「<mt:ForceIndexContext>」のタグを追加します。
3.モジュールの最後に「</mt:ForceIndexContext>」のタグを追加します。
なお、MTSortedPagesタグは、tagsモディファイアには対応していません。
ワイコードからワイコードへの返信
返信ありがとうございます。
ForceIndexContextプラグイン試させて頂きました。
ばっちり問題なく表示されました。ありがとうございます。
>なお、MTSortedPagesタグは、tagsモディファイアには対応していません。
やっぱりそうですよね。すみません。
MTIfでかわしました…。
今後とも何卒よろしくお願いいたします。
ありがとうございました。
junior908
juniorと申します。SuperSortをインストールしたのですが、
ブログ記事の編集⇒確認⇒ブログ記事の保存 の順で操作すると、
以下のように(PostgreSQLのログです)データベースエラーとなります。
解決できるとありがたいのですが、調べてみてはいただけませんで
しょうか。
2010-09-14 21:19:58 JST(mt4%mt4mnt)ERROR: 22P02: invalid input syntax for integer: ""
2010-09-14 21:19:58 JST(mt4%mt4mnt)LOCATION: pg_atoi, numutils.c:54
2010-09-14 21:19:58 JST(mt4%mt4mnt)STATEMENT: INSERT INTO mt_entry
(entry_id, 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_excerpt, entry_keywords, entry_modified_by, entry_modified_on, entry_order_number, 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)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $2
8, $29)
○環境は
MTOS 4.261
SuperSort 1.00
PostgreSQL 8.3.3, 8.3.11, 8.4.4
shiftjisでpublish
○プログ記事の編集画面から、確認を経ないで保存することはできます。
○PostgreSQLでは、integer型のカラムに ""(長さ0の文字列) は設定できません。
perl, DBD::Pgの場合、undef であれば NULLとして保存されるようです。
例えば SQLiteだと、データ型の厳密な取り扱いをしないので insert, updateとも
""で問題なかったのだと思います。MySQLは経験が乏しく分かりません。
ごろ
プラグイン:SuperSort 1.10b1
Movable Type Pro version 5.031
サーバ:さくらインターネットスタンダード/heteml
サイドメニューの「カテゴリとブログ記事の並び替え」をクリックすると、「カテゴリとブログ記事の並び替え」ページに移動するのですが、「変更を保存」ボタンが2つ表示されるだけで、並び替えのツリーが表示されません。当方、サーバーを2つもっていますが、どちらも同じ状態です。
ブラウザのエラーコンソールをのぞくと、以下のエラーが出ます。
TypeError: Result of expression '$('#root_ctx > li')' [null] is not an object.
JSのエラーのようですが、様々なブラウザを利用しても解決しませんでした。
お手数おかけ致しますが、解決法等ございましたら、ご教授いただけると幸いです。
よろしくお願い致します。
壱からごろへの返信
>ごろさん
こんにちは。
この記事の情報が古いままで、ご迷惑をおかけしました。
現在はバージョン1.10rc2になっていますので、そちらをお使いください。
http://www.h-fj.com/mt_plugin/SuperSort_1_10rc2.zip
八木明子
いつも役にたつ情報やプラグインをありがとうございます!!
SuperSortの導入を検討中なのですが、
「カテゴリとブログ記事の並べ替え」画面が
↓このような画面になり、一覧が表示されません。
http://a-form.sakura.ne.jp/temp/2010-11-17_142915.png
MT 5.03 Pro
SuperSort 1.10b1
ブラウザ IE8, Opera
[ブログ記事とカテゴリの並べ替えを許可する]にチェックを入れてあります。「カテゴリとブログ記事の並び順の初期化」も試してみましたが変化なしです。フォルダについても同様の現象でした。
原因や対処方法などアドバイスいただければ幸いです。
お忙しい所恐縮ですが、どうぞよろしくお願いいたします:pp_01.gif:
壱から八木明子への返信
>八木明子様
お世話になっております。
ダウンロードのリンクが古いままでご迷惑をおかけしました。
以下から新しいバージョンをダウンロードしてください。
http://www.h-fj.com/mt_plugin/SuperSort_1_10rc2.zip
八木明子から八木明子への返信
壱さん、
バージョンアップしたら無事解決しました!
早々のお返事ありがとうございますm(__)m
みのる
素晴らしいプラグインと書籍、その他ホームページの情報等ありがたく利用させていただいております。
本当にありがとうございます。
特に、SuperSort はMTをCMSとして使いこなすのに、欠くことができないプラグインの一つです。
早速でございますが、SuperSort は1つのブログ記事を複数カテゴリーに登録した場合には対応していないのでしょうか。
どれか一つのカテゴリーの並び順は保存されるのですが、他のカテゴリーの並び順は保存されていないようです。
複数カテゴリーに対応した仕様であれば、大変ありがたいのですが…
壱からみのるへの返信
>みのるさん
こんにちは。
ご質問の件ですが、ブログ記事を複数のカテゴリに割り当てた場合でも、カテゴリ毎に並び順を保存することができるように作ってあります。
保存できていないとすれば、何らかの問題が発生していると思われます。
みのるからみのるへの返信
早速返信していただけまして恐縮です。
複数カテゴリに対応しているとのことで、私の環境の問題ですね。
安心しました。
ありがとうございます!!!
みのる
藤本 様
昨日、SuperSortの複数カテゴリの使用の可否につきまして、ご連絡させていただいた「みのる」です。
その後、動作を確認してみましたところ、次のようなときに、並べ替えが保存されないことがわかりましたので、ご連絡させていただきました。
(並べ替えが保存されない場合)
********************************************************
1つのブログ記事に複数カテゴリを割り当てる。
→
「SuperSort」のカテゴリとブログ記事の並べ替えの管理画面で、割り当てたカテゴリーごとでブログ記事の並び順を指定して、「変更を保存」ボタンをクリックして、保存する。
※この時点では、並び順は保存されています。
→
しかし、その後、すぐに再構築はしないで、同管理画面のコマンド「ブログ記事の編集」でブログ記事を呼び出したうえ、保存する。
→
再度、カテゴリとブログ記事の並べ替えの管理画面に戻ると、変更したブログ記事の並び順が元に戻っている。
※ただし、複数カテゴリのうち、一つだけは並び替えが保存されている。
これに対して、管理画面で、割り当てたカテゴリーごとでブログ記事の並び順を指定して、「変更を保存」ボタンをクリックして保存したあと、すぐに再構築すれば、すべての複数カテゴリで並び替えが保存されている。
しかし、この場合でもあっても、その後、そのブログ記事を再度呼び出して個別に「保存」をかけると、並べ替えが失われ、並び順が元に戻っている。
********************************************************
以上、再現性がありますので、単にPCの環境の問題ではないような気もしましので、ご報告させていただきました。
お時間があれば、ご検討していただけると幸いでございます。
みのる
藤本 様
たびたび申し訳ございません。
「みのる」です。
先ほどのコメントにつきまして、長くなりましたので、簡単にまとめなおしてみました。
要は、管理画面で並べ替えを保存した後、ブログ記事を更新・編集するなどのため個別に(複数カテゴリに登録した)ブログ記事を「保存」すると、並べ替えが失われる、ということだと思います。
※ただ、この現象は再現性はあるのですが、1つのPC環境でしか試していません。
壱からみのるへの返信
>みのるさん
こんにちは。
現在外出中なのですぐには調べられませんが、いただいた現象から、原因はだいたい予測がつきました。
修正までいましばらくお待ちください。
みのる
藤本様
お忙しいのに恐縮です。
「原因が予測がつく」とのこと。
もし、「修正」していただけるのであれば、また理想的なCMSに近づきます。
本当にうれしいです:pp_01.gif:
足を向けて寝れません。ほんとに…
壱からみのるへの返信
>みのるさん
こんにちは。
No.24で書いたことは間違いでした(予測したことに対する対処は、すでに実装済みでした)。
申し訳ありません。
ただ、プラグインの不具合かどうかを探っていたときに、プラグインではなく、MT側の不具合と思しき現象によって、並び順が正しく保存されない事例を、偶然にも見つけました。
もしかすると、そちらでも同じ現象が起こっているのかも知れません。
以下の手順で、その現象が起こっているかどうかを確かめてみてください。
1.phpMyAdminにログインします。
2.MTのデータが入っているデータベースを操作する状態にします。
3.「SQL」のタブを開きます。
4.以下のSQLを実行します。
SELECT *
FROM `mt_placement`
WHERE `placement_order_number` IS NULL
5.4.の結果でレコードが1件でも見つかれば、こちらで起こっているのと同じ現象が起こっています。この場合は、以下のSQLでデータベースを修正すれば問題が解決するはずです。
ただし、データベースからレコードを削除する処理なので、SQLを実行する前に、絶対にデータベースをバックアップしておいて、万が一の事態に備えてください。
DELETE FROM `mt_placement` WHERE `placement_order_number` IS NULL
6.4.の結果でレコードが見つからない場合は、申し訳ありませんが原因不明です。
みのる
藤本 様
この度は大変お手間を取らせてしまいました。
申し訳ございません。
また、手順までご丁寧に示していただき、本当にありがとうございます。
遅くなりましたが、結果をご報告させていただきます。
結論から言いますと、残念ながら現象は改善できませんでした。
藤本様のご指摘のとおり、「mt_placement」テーブルで、「placement_order_number」フィールドの値がヌルのレコードは200件以上ありました。
しかし、テーブルのバックアップをとったあと、placement_order_number」フィールドの値がヌルのレコードをすべて削除してみたのですが、個別にブログ記事を保存すると、やはり、並べ替えが元に戻っています。
藤本様の今日の「Movable TypeのORMは、left joinに対応…」云々の記事を読みながら、これが関係しているのかなとも思いながら、MTをヴァージョンアップ(私は、少々古いのですが、4.1のヴァージョンを使用しています)したら、エラー回避できていることに期待をかけてみます。
最後に、この度は本当にありがとうございました。
みのる
藤本 様
いつも大変お世話になっております。
このたびMovable Type 5.1の標準機能として並び替え機能がついたとのことで、これでやっとMTも本格的なCMSになってきたと喜んでいたのですが、並び替えができるのはカテゴリまでだったのですね。
やはり、まだまだ藤本様のSuperSort は欠かせないツールですね。
そこで、早速、お伺いしたいことがあります。
たとえば、MT4では、各ブログ記事のフッターで、「←前のページ |現在のカテゴリ| 次のページ→」といったようなナビゲーションを表示させるために、次のようなコードを書いていましたが、問題なく動いていました。
<MTSortedEntryPrevious>
<a style="text-decoration:none" href="<$MTEntryPermalink$>"><img src="/image/naviprev.gif" alt="" border="0" /></a>
</MTSortedEntryPrevious>
<MTEntryCategories>
| <a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel$></a> |
</MTEntryCategories>
<MTSortedEntryNext>
<a style="text-decoration:none" href="<$MTEntryPermalink$>"><img src="image/navinext.gif" alt="" border="0" /></a>
</MTSortedEntryNext>
しかし、MT5.1とSuperSort_1_20b1.zipの組み合わせで、上記と同じコードを書くと、「<mtEntryCategories>タグでエラーがありました: <mtCategoryArchiveLink>タグでエラーがありました: <$MTCategoryArchiveLink$>タグを不正なコンテキストで利用しようとしました。」というエラーが発生してしまいます。
つまり、、「<mtEntryCategories>タグと<$MTCategoryArchiveLink$>タグの組み合わせで使用できないのです。
そこで、<mtEntryCategories>の代わりに、<MTSortedEntryCategories>
を使用すると、エラーは発生しないのですが、この部分は無視されて、<$MTCategoryArchiveLink$>タグを出力することができません。
お忙しいとは存じますが、何卒ご教授のほど、お願い申し上げます。
壱
>みのるさん
こんにちは。
申し訳ありませんが、こちらでは現象を再現することができませんでした。
また、MTEntryCategoriesタグのブロックの中でMTCategoryLabelタグが使えないというのも、起こらないはずのことです。
そちらの環境で動作を追ってみないと、原因をつかむことはできないと思います。
みのるから壱への返信
早速のご回答ありがとうございます。
「環境」のせいなのでしょうか、MTSortedEntryNext とかMTSortedEntryPrevious、あるいはMTParentCategories タグでは何ら問題はありません。
しかし、MTEntryCategoriesタグで、MTCategoryArchiveLink とか MTCategoryLabel など、現在のブログ記事に関するカテゴリーのタグを使用しようとすると、エラーが出て使えません。
>>みのるさん
>こんにちは。
>申し訳ありませんが、こちらでは現象を再現することができませんでした。
>また、MTEntryCategoriesタグのブロックの中でMTCategoryLabelタグが使えないというのも、起こらないはずのことです。
>そちらの環境で動作を追ってみないと、原因をつかむことはできないと思います。
みのるから壱への返信
お手数をおかけします。
並び順の初期化等、藤本様のホームページに記載していた手順を全て踏んでおります。
ただ、今、MTEntryCategoriesタグを使用する場合に、type="primary"という属性を指定してあげると(つまり、<MTEntryCategories>ではなくて、<MTEntryCategories type="primary">とする)、エラーが発生しなくなり、正常に作動するようになりました。
こうした対処が私の環境だけの問題なのかは不明ですが、一応問題は解決できたようです。
お手数をおかけいたしました。
ありがとうございました。
MTが真のCMSになるには、藤本様のSuperSortは不可欠です。
今後とも、日本のIT業界のため、ご活躍のほどお願い申し上げます。
しかし、そもそも、シックス・アパート社は、カテゴリーの並び替えに対処したくらいなら、なぜ、ブログ記事の並び替えにも対処しないのでしょう。
これが一番私は不思議です。
いわゆるブログ(日記)から汎用的なCMSへと脱皮するには、カテゴリーやページの並び替え機能は必須の機能だと思われるのですが…
>>みのるさん
>こんにちは。
>申し訳ありませんが、こちらでは現象を再現することができませんでした。
>また、MTEntryCategoriesタグのブロックの中でMTCategoryLabelタグが使えないというのも、起こらないはずのことです。
>そちらの環境で動作を追ってみないと、原因をつかむことはできないと思います。
t-yama
藤本様
いつもお世話になります。
お忙しいところ誠に恐縮ではございますが、ご質問させてください。
現在、1つのサイトを複数のブログから運用しております。
他のブログにあるカテゴリーを呼び出しての並び替えには対応しておりますでしょうか?
具体的には、下記のソースの場合に
・各ブログ内でのカテゴリーの出力順番
・各ブログの出力順番
■ブログid 4のインデックステンプレートで使う場合
---------------------------------------------
<mt:SortedTopLevelCategories include_blogs="6,12,15">
<MTEntries tag="○○">
<mt:Entrytitle>
</MTEntries>
</mt:SortedTopLevelCategories>
---------------------------------------------
の並び替えは可能でしょうか?
何卒宜しくお願いいたします。
壱
>t-yamaさん
こんにちは。
ご質問の件ですが、複数のブログにまたがる並べ替えには対応していません。
いただいた例だと、例えばID=6/ID=12/ID=15の各ブログの先頭のカテゴリを、どのように並べれば良いかを、プログラム的に決めることができません。
t-yama
>藤本様
早速の御回答ありがとうございます。
並び替えに対応していないということで、承知いたしました。
>ID=6/ID=12/ID=15の各ブログの先頭のカテゴリを、
>どのように並べれば良いかを、プログラム的に決めることができません。
これは、6、12、15のどれを先頭に持ってくるのかを決めることができないということですか?
ID=6 の中での順番を決めて、ID=4のテンプレートで出力することはできますか?
たびたびのご質問で誠に恐縮ですが、宜しくお願いいたします。
松山
現在、supersortプラグインを使用させていただいております。
今回、エックスサーバーに移転しましたところ、エントリーの保存時に下記のエラーが出るようになりました。
ブログ記事を保存できませんでした: Cannot find column 'order_number' for class 'MT::Placement' at /home/mland/novelty-net.com/public_html/mt/plugins/SuperSort/lib/SuperSort/Util.pm line 56
デバッグモード
Request completed in 0.218 seconds.
Scalar value @entries[0] better written as $entries[0] at /home/mland/novelty-net.com/public_html/mt/plugins/SuperSort/lib/SuperSort/Util.pm line 49.
Use of uninitialized value in concatenation (.) or string at lib/MT/App.pm line 2451.
以前は、チカッパサーバーを利用しておりました。
phpmyadminでのテーブルを作り直したり、プラグインを入れ直したりしてもだめでした。
また、下記サイトを参考にCategory.pmを書き換えると、エラーは出なくなりますが、構築中で止まってしまいます。
http://iakane.com/blog/archives/2010/01/phpmyadmin/
サーバーとの問題でしょうか?
壱から松山への返信
>松山さん
こんにちは。
「Cannot find column 'order_number' for class 'MT::Placement'」のエラーが出る件は、これまでにも何度か報告をいただいています。
しかし、ごく一部の環境で起こる現象で、こちらで再現ができないので、原因をつかめていません。
おそらく、サーバーにインストールされているPerlのモジュールのバージョンや、MySQLのバージョンなどが関係しているものと思われます。
松山から松山への返信
ご連絡ありがとうございます。
再度、バージョンなどを見直してみたいと思います。
お忙しい中にご連絡ありがとうございます。
上田
お世話になります。
MTOS5.13JにSupersort1.20b1をインストールしたのですが「カテゴリとブログ記事の並べ替え」や「フォルダとウェブページの並べ替え」ページに「変更を保存」ボタンが2つ表示されるのみで、カテゴリやフォルダ、ページなどのリストが一切表示されない状態です。
ブラウザはIE8、GoogleChrome、Safari等で試してみましたが、いずれも同じ症状が再現されました。
何か考えられる原因などありましたらアドバイス頂けますでしょうか。
どうぞよろしくお願いいたします。
上田から上田への返信
初歩的なミスでした。mt-staticのpluginsにsupersortをインストールしていませんでした。お騒がせいたしました。
上田
お世話になります。
上のNo11のコメントで質問させて頂いて、後に初歩的なミスであることに気がついて自己解決したため今回も単純なミスや勘違いなのでは?と少々自信がないのですが・・・
MTOS5.13JにSupersort1.20b1をインストールして使用しており、1点だけ想定した結果が得られない状況です。
状況はカテゴリアーカイブ内にウェブページの一覧を出力するためにMTSortedpagesを使用しているのですが、ウェブページの一覧が出力されません。当該箇所をMTPagesに変更すると一覧が出力されるのですが、どうしても原因がわかりません。
大変お手数ですが、考えられる原因などありましたらアドバイスいただけますでしょうか。
どうぞよろしくお願いいたします。
壱
>上田さん
こんにちは。
カテゴリアーカイブテンプレート内で、フォルダに属さないウェブページの一覧を出力したい場合は、MTSortedPagesタグに「root="1"」のモディファイアを付加してください。
また、フォルダに属するウェブページの一覧を出力したい場合は、MTTopLevelFoldersタグのブロックの中でMTSortedPagesタグを使うか、もしくはMTSortedPagesタグに「folder="フォルダ名"」のモディファイアを付加してください。
上田から壱への返信
壱さま
お世話になります。
早速のご回答ありがとうございました。
「root="1"」のモディファイア追加で無事に解決することができました。
助かりました。ひと安心です。
本当にいつもありがとうございます。
cotenthe
Supersortを便利に利用させて頂いております
Movable Type 5.1x用をMT5.12で利用しているのですが
フォルダを開くとエントリー一覧が表示されるはずが
'leaf' は Null またはオブジェクトではありません。
がステータスバーのエラーで表示されエントリー一覧が表示されません。
何か分かりますでしょうか?
壱からcotentheへの返信
>cotentheさん
こんにちは。
1.20b2にバージョンアップしてみてください。
http://www.h-fj.com/mt_plugin/SuperSort_1_20b2.zip
cotentheからcotentheへの返信
1.20b2にアップデートしたのですが同じエラーが出てしまいました
Firebugで確認すると
mt.cgi?__mode=fjss_sort_order&blog_id=119&type=category
の1005行目
if (o[i].leaf == 'true') {
の行でエラーになっているようです
for(var i = 0, len = o.length; i if (o[i].leaf == 'true') {
o[i].leaf = true;
}
壱からcotentheへの返信
>cotentheさん
こんにちは。
申し訳ありませんが、こちらでは現象を再現することができませんでした。