しつこくkcfinderねただ~

バージョン2.51が最新なので使っていたのですが、どうもPHP5.3以上を対称にしているようです。
こことかの情報でいけるかと思ったが、あまかった。
全然なおらないです。

サーバーのPHPは5.1なのです。仕方ないのでバージョンダウンしました。
2.0まで。

今度も結果オーらいですね。

またまた kcfinder ネタだ~

大塚商会のアルファメールサーバーでのこと。

サーバーブラウザーボタンでブラウズできて、ピクチャーも選択できました。
え?! 画像が×マーク。何故?!!!

アドレスを見ると正しいパスが設定されています。なのにリンク切れ。
そこでいろいろ調べまわったんですが、例えば、別場所のimagesフォルダーなんかを
手で指定してやると表示されるんです。
どういうこっちゃ。

結局何が違うかというと、.htaccessファイルがあるかないかでした。
kcfinder って、upload フォルダに勝手に作りますよね。
どうも、アルファメールサーバーではこれがあるとダメなようです。
削除すると表示できるので、間違いないと思われます。

/core/uploader.php の末尾にあった関数を、

protected function get_htaccess() {
return “\n”;
}

という風に改行だけにしてやったら表示できるようになりました。

これが正しいやり方かどうかわからないですが、結果オーライと云う事で。

ほかの方法があれば教えていただきたい。
では。

kcfinder で、サーバーブラウザーが起動しない

サーバーブラウザボタンは表示されるし、アップロードボタンも表示しました。
アップロードは正常にできます。フォルダも指定の通りです。
しかし、サーバーブラウザボタンを押すと、途中まで表示して固まります。
いろいろ調べてもそれらしい記述はなし。困ってしまったのですが、ふとサーバーがsakuraだったことに思い当たりました。
sakuraって、フォルダーのパーミッションが755でないとサーバーインターナルエラーになるんです。
まぁ、そんなエラーが出てるわけでもないが、気になったので設定を見直しました。
主なフォルダーを設定しなおしたんですが、それでも駄目で、思い悩んだのでした。
結局全部設定できていないのに気が付いて、とにかく全部のフォルダを設定しなおしました。
ピンポン!!動きました。

教訓:sakuraのフォルダには気をつけろ。

 

MT5で、携帯対応の詳細検索を行う・・・その4

問題は、DivPages で作られるリンクなんです。数字から文字列に変換された後に実行されるので、URLの後ろには文字列(URLエンコードされている)が並びます。で、GETの文字列オーバーですね。
これを又、数字に戻してやればいいのですが、どうやって?

mt-realtime-rebuild.php を調べていると、最終的に fsockopen を使って、パラメータを渡しているんですが、受け取ったレスポンスは無視して、予め用意しておいたファイル名のファイルをinclude して終わっています。
中身を見てみると、PHPコードが含まれている結果のソースファイルでした。
include してPHPを実行するので、include する前に変換すれば何とかなるんじゃないかと思いました。

[php toolbar=”false”]
$buffa = file_get_contents($fname);
for($i=0; $i<76; $i++) {
$buffa = str_replace($data[0][$i], $data[1][$i], $buffa);
}
file_put_contents($fname, $buffa);
include($fname);
[/php]

UTF-8 でURLエンコードした文字列と数字の対比した配列を用意して、上のコードを追加しました。
mt-realtime-rebuild.php がこういう構造になっていなかったら無理な話だったのですが、ラッキーでした。これでうまく行きました。

以上で、携帯対応の詳細検索を行うための忘備録として終わりです。

MT5で、携帯対応の詳細検索を行う・・・その3

SearchEntries と DivPages の組み合わせでは、分割されたページのリンクがGETの形で実現されます。
そのため、チェック項目が多いとその分GETデータが多くなります。PCでは大丈夫だったのですが、携帯ではエラーになってしまいました。
そんなわけで、肝心の携帯で検索が機能しない羽目になったのです。

カスタムフィールドのオプション部分は一種類しかなく、Valueと表示部分の区別がありません。
そのため、Valueに表示部分の文字列が全部入るので、たくさんチェックするとかなり長い文字列になってしまうんです。
オプションを短い数字とかにすればいいと思ったのですが、エントリー画面にはそのまま数字が表示されて具合が悪いのです。エントリー画面の改造は、そこまでのスキルがなく断念。

結局、また途中で変換する方法を選んだのでした。
mt-realtime-rebuild.php を調べてみると、POSTにも対応しているようでしたが、DivPages を使用するので使えません。でも、私がこの手前でやっている変換と同じようなルーチンです。Shift_JIS から UTF-8 への変換はこの中で行えばいいということが判りました。
そのついでに、数字で送られてきたチェックの内容を、もとの文字列に変換してやればOKです。
とりあえず、変換用の配列変数を組み込みました。
これでValueを数字に変えたフォームから携帯で検索できるようになりました。

ただし、分割ページのリンクでエラーになります。
つづく

MT5で、携帯対応の詳細検索を行う・・・その2

いいね。

PCでうまくいったので、携帯対応をすることになった。

これもプラグインのお世話になる。
ケータイキット for MTを導入しました。

ところが、携帯ではShift-JISが基本なので、フォームの内容がShift-JISで送られてきてエラーになってしまいました。
仕方がないので、途中で文字エンコーディングを変換することにしました。
[php toolbar=”false”]
$url = ‘http://www.hogehoge.com/mt5/mt-realtime-rebuild
.php?dmy=0’;
while(list($key, $val) = each($_GET)) {  
if($key==”check1″)  $val=implode(“,”,$_GET[“check1″]);  
if($key==”check2”)  $val=implode(“,”,$_GET[“check2″]);  
if($key==”check3”)  $val=implode(“,”,$_GET[“check3″]);  
$url.=”&”.$key.”=”.urlencode(mb_convert_encoding
(mb_convert_kana($val, “KV”, “SJIS”), “UTF-8”, “SJIS”)); }
header(‘Location: ‘. $url);
[/php]

PCのチェックではこの方法で問題なく動いていたのでした。
しかし世の中、それほど甘くはなかったのです。
つづく。

MT5で、携帯対応の詳細検索を行う・・・その1

MT5で詳細検索するにはプラグインのお世話になるしかない。
自分で作れればいいのだが・・・それほどのスキルはない。
まず、カスタムフィールドが必須なので、MT5を選択。
チェックボックスのグループ化が必要だったので、ここでプラグインを1つ導入。
More Custom Fieldsプラグイン
それでもって、藤本さん作のSearchEntriesを導入。
それに伴い、必要なプラグインも一緒に導入しました。
さらに、ページ分割が必要になりDivPagesも追加しました。
以上でPC向けには詳細検索ができるようになったのです。

プルダウンが4種類。選択肢が10~13ぐらい。
オプションの内容が漢字で40文字あったりします。
グループチェックボックスが3種類。
選択肢が7~8個。漢字で12文字ぐらい。
フリーワード用のテキストボックスが1つ。
以上のような組み合わせで検索を行います。

対象データは数百というオーダーなのでスピード的には問題ないですね。
携帯まで行けなかった・・・つづく