Home » ブログ
検索・リンク
ブログ  ブログ以外
最近の記事
Amazon

2009 年 5 月 のアーカイブ

2009 年 5 月 28 日

MODxで動的に画像を作成する。

MODxでスニペットを呼び出して動的画像(imagepngを使用)を作成しようと思った。
うまくいかない。
php単独だとうまくいく
ソースは以下(よくWebで紹介されているもの:ここ参考


<?php
    //出力文字の取得
    $setstring = "aaaa";
    //画像の作成
    $img = imagecreate(100, 20);
    //色の作成(背景色)
    $backcol = imagecolorallocate($img, 160, 160, 160);
    //背景色を塗る
    imagefilledrectangle($img, 0, 0, 200, 80, $backcol);
    //色の作成(文字)
    $col = imagecolorallocate($img, 255, 255, 255);
    //文字を書く
    imagestring($img, 2, 10, 4, $setstring, $col);
    //画像出力
    header("Content-type: image/png");
    header("Cache-control: no-cache");
    imagepng($img);
    //画像の消去(メモリの解放)
    imagedestroy($img);
?>

こいつをそのままスニペット(imagecreate)化して

<img title="TEST" src="[!imagecreate!]" alt="TEST" width="100" height="20" />

というコンテンツを作成したが表示されない。
以前、javascriptで同じように処理を作成した時はうまくいったのに…
あることに気づいた。スニペットが先に処理されているのを忘れていた。
ということで、コンテンツを2つ作成して順次処理させればOKだ。

<img title="TEST" src="/modx/imagecreatedummy.html" alt="TEST" width="100" height="20" />

imagecreatedummy.htmlの内容

[!imagecreate!]

phpのソースを作成して呼び出せばもちろんOKなのだが...
(それじゃMODxのスニペット化の意味がないか。処理は同じだが...)

2009 年 5 月 10 日

MODxで動的ページを静的HTMLファイルに出力する。

MODx(0961p2)で動的ページを静的ページとしてファイル出力している。
フリーソフトのWeb巡回ソフトで動的ページを出力していたのだが、内部コンテンツの変換(特にリンク関係)に不満があった。
出力されたhtmlファイルに対して、変換補正やファイル名の変更が必要だ。
Web巡回出力と変換補正(perlを使用)で膨大な時間を費やす。
そこで、MODxのエクスポート機能を使用してみた。巡回ソフトのようにページャーで作成された「次へ」リンクページは出力されない(当然か)し、出力が遅い。
topでプロセスを見る。

ソースは見ていないが、1ドキュメント単位にhttpdへパケットが送信されているようだ。
(Web巡回ソフトと基本的に同じ動きだ。)
結局、自前でスニペットを作成してhtmlファイル出力することにした。
ポイントは以下。

  1. document.parser.class.inc.phpのexecuteParserのコピーexecuteParserAを作成する。
  2. document.parser.class.inc.phpのprepareResponseのコピーprepareResponseAを作成する。
  3. document.parser.class.inc.phpのoutputContentのコピーoutputContentAを作成する。
  4. executeParserAのprepareResponseの呼出をprepareResponseAにする。
  5. prepareResponseAのoutputContentの呼出をoutputContentAにする。
  6. outputContentAの最後あたり
    echo $this->documentOutput

    をコメントにし、

    $docout = $this->documentOutput;

    のようにしてprepareResponseAへreturnする。後は、prepareResponseA、executeParserAでも同様だ。(必要に応じて不要部分を削除したほうが良い)

  7. 動的出力スニペット
  8. $_REQUESTにアクセスページ(alias)やパラメータを設定する。
  9. $_GETも$_REQUESTと同様に必要に応じて値を設定。
  10. executeParserAを呼出し、取得したページを出力する。

httpdへ再リクエストしないようにしたら、巡回ソフトの出力時間の約1/5の時間で終了するようになった。
最新のMODxのバージョンではエクスポート機能が改善されているかもしれない。
(まだ、最新もインストールしていない)

※MODxの記事を公開すると海外からのクラッカー攻撃が増えるので悲しいかな今回もコメントとトラックバックを中止します。

2009 年 5 月 4 日

firefoxでphpMyAdminのログイン画面が真っ白

phpMyAdminで作業をしていたら突然、画面がハング。(http://localhost/phpMyAdmin/)
原因がわからず、再度ログインするも画面が真っ白。OSを再起動しても同じだ。
環境はfedora10(x86_64)でfirefox3.0.10
mysqlはコマンドから操作できるので、mysqlはおかしくない。
ハングしたユーザと違うユーザでgnomeにログインして画面を開くときちんと表示される。
これはキャッシュかなと思い、キャッシュクリアしてもだめだ。
urlを127.0.0.1や内部アドレスにすると表示がOKだ。firefox以外のブラウザ表示はOKだ。
原因はクッキー。firefoxの設定でlocalのクッキーを削除。

localのphpMyAdminのクッキーを削除したら見事表示されるようになった。
どうしたんだfirefox。
※未だに突然のfirefoxのプロセスダウンに悩まされている。仕事になんねや!

△ページトップ

Google
ページ
最近のブログ
アーカイブ
カテゴリー
最近のコメント
最近のトラックバック
    No Responses.