2011年2月23日

php化mt-search.cgiの不具合の続き

先日、php化mt-search.cgiの不具合の為のphpスクリプトを他のサイトにならって修正しました。

でも、タグクラウドに関しては、

<a href="http://blog.hanpahanpa.net/mt/mt-phpincgi.php
?tag=チュートハンパ
&amp;requrl=http://blog.hanpahanpa.net/mt/mt-search.cgi
&amp;IncludeBlogs=1">

っていうソースになってしい、そのままだと、

Another HTML-lint gatewayでhtmlの文法チェックを掛けるとがっつりエラーが出てしまいます。

ですので、

<a href="http://blog.hanpahanpa.net/mt/mt-phpincgi.php
?tag=%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%8F%E3%83%B3%E3%83%91
&amp;requrl=http://blog.hanpahanpa.net/mt/mt-search.cgi
&amp;IncludeBlogs=1">

ってな具合にurlencodeする必要があります。

これくらいの知識ならなんとかありますので、

<a href="<$mt:CGIPath$>mt-phpincgi.php
?tag=<$mt:TagName$>
&amp;requrl=<mt:CGIPath /><mt:SearchScript />
&amp;IncludeBlogs=<mt:blogID />"><mt:tagName /></a>

ってなっているところを、

<a href="<$mt:CGIPath$>mt-phpincgi.php
?tag=<?php echo(urlencode("<$mt:TagName$>")); ?>
&amp;requrl=<mt:CGIPath /><mt:SearchScript />
&amp;IncludeBlogs=<mt:blogID />"><mt:tagName /></a>

ってな具合に修正しました。

テキスト版アクセスカウンタ

php化も無事終わり、アクセスカウンタを再設置したのはいいけど、どうも動いていない...。

ipアドレスで重複チェックしているところだと思うけど、原因不明。

とりあえず、また調べることにして、しばらく放置。

2011年2月22日

デザイン改造 その7

続いて取り組みたいのはマンスリーアーカイブのツリー化。
でも、その前にやはりmt-search.cgiの不具合を解消し、アクセスカウンタであったり組み込んだphpスクリプトを正常に動くようにさせなければ!

ということで、google先生にお伺いしましたところ、The blog of H.Fujimotoさんのコメント/検索関連テンプレートのPHP化(その1)という記事がヒットしました。

難しいことは分からないので、手順どおりスクリプトをダウンロードし、変更箇所を指示通りに変更。
で、検索ボタンをクリックしたら、無事表示!となるところが、全く何も表示されない???
phpは少しだけ、perlは全く分からない私にはThe blog of H.Fujimotoさんのスクリプトの意味が全然分からず、原因も全く分かりませんでした...。

それでも少ない知識の中でスクリプトを読んでみると、どうやら/cgitmp/というフォルダにテンポラリファイルを作成し、最終的にそれをincludeすることで画面に表示させているらしい、ということが分かりました(誰でもわかるんでしょうけどね...)で、そのテンポラリファイルをダウンロードし、中身を確認してみると、ちゃんとソースが作成されている。
のに何故?と思っていたら、以前のphp化の記事のところで、

<MTUnless name="system_template">
<? php echo('
</MTUnless>
<?xml version="1.0" encoding="utf-8"?>
<MTUnless name="system_template">
'); ? >
</MTUnless>

に変更して、ヘッダーに<?phpを表示させないようにするスクリプトを組み込んでいた為、拡張子がphpファイルなのに、一行目が
<?xml version="1.0" encoding="utf-8"?>
だった為、サーバー側でうまく表示できていなかったようです。

で、そこを通常通り

<?php echo('<?xml version="1.0" encoding="utf-8"?>'); ?>

に戻して、<?php echo・・・と表示させるように変更すると、無事表示されるようになりました。
で、晴れてアクセスカウンタ復活です。

2011年2月20日

デザイン改造 その3

今回はデザイン改造というよりも機能の追加。

カレンダーを表示させせたいと思います。

いつもお世話になっている小粋空間さんにmt4にajaxカレンダーを表示させるという記事がありますので、いつものようにそのまま活用させていただきます。

今回はAjax 月送りカレンダー(MT4版)ってのを試してみます。

全ては小粋空間さんの記事のとおりなので、手順通り進めれば何事もなかったかのようにちゃんとカレンダーが表示されました。

さすがですね。

それと、今回はアクセスカウンタを追加しました。

画像タイプのアクセスカウンタだとフリーのものも出回っているので、案外簡単に設置できるのですが、個人的に画像タイプのアクセスカウンタは好きではありません。

結局、phpで適当なスクリプトを組んで設置することにしました。

悪戦苦闘の末、なんとか完成しました。

と思っていたのですが、やはり落とし穴が...。

mt-search.cgiで検索結果を表示させると、アクセスカウンタのphpスクリプトがそのまま表示されてしまう!?

シロートの私には対処方法は今のところ分かりません。

とりあえずの対処法は、アクセスカウンタを消す!ことしかできませんので、とりあえず設置を取りやめ、google先生と相談中です、トホホ。

2011年2月19日

php化

引き続き、mt4の修正を行っています。
最終的に、php化しなければいけないので、早い段階でphp化してしまいます。
作業自体はそれほど難しい物ではないので、テンプレートの必要個所を変更し、XML宣言の修正を行い、再構築。で、いらないファイルを削除して完成!

のはずでしたが、タグクラウドはサイト内検索などのmt-comment.cgi・mt-search.cgiを使用すると、画面がおかしくなります。ページのソースを確認すると、
<?php echo '<?xml version="1.0" encoding="UTF-8"?>' ?>
となってしまっています。
もちろん、画面上に'?>といったゴミが残ってしまいます。
今まであまり気にしたことが無かったのですが、気になります。

で、いつもの小粋空間さんに関連記事が載っていましたので、

<MTUnless name="system_template">
<? php echo('
</MTUnless>
<?xml version="1.0" encoding="utf-8"?>
<MTUnless name="system_template">
'); ? >
</MTUnless>

と変更し、無事php化が完了しました。