トピック このトピックは解決済みです
TOPIC 複数のカスタマイズを行った場合
Posted by 陸奥謳歌
at 2009/11/25(水) 10:22
分類: 新規設置トラブル | AmigoDatabaseバージョン: ver9.85

カスタマイズの公開や質問のご回答、ご苦労様です。

今回、気になったのはImage::Magickを利用した画像のリサイズ化
と画像を任意で横表示するカスタマイズを行う場合、database.cgi
のsub s { &Lrequire('./lib/db-s.cgi'); &Search }を変更する
場合、変更方法がカスタマイズによって違うのですが、どのように
すれば良いのでしょうか?

[Image::Magick]
sub s  { &Lrequire('./lib/db-image.cgi'); &Lrequire('./lib/db-s.cgi'); &Search }
[横表示化]
sub s  { &Lrequire('./lib/db-wideview.cgi'); &Lrequire('./lib/db-s.cgi'); &Search }

二つを同時に記載する方法でも良いのでしょうか?
sub s  { &Lrequire('./lib/db-image.cgi'); &Lrequire('./lib/db-s.cgi'); &Search }
sub s  { &Lrequire('./lib/db-wideview.cgi'); &Lrequire('./lib/db-s.cgi'); &Search }

編集: 2009/12/03(木) 01:20
トピック このトピックは解決済みです
レス表示 古い順 新しい順 | 3件のレス 1-3 表示中
RES レスメッセージ
Posted by Bear
at 2009/11/26(木) 13:22
Re:複数のカスタマイズを行った場合
こんにちは。

> 二つを同時に記載する方法でも良いのでしょうか?
> sub s  { &Lrequire('./lib/db-image.cgi'); &Lrequire('./lib/db-s.cgi'); &Search }
> sub s  { &Lrequire('./lib/db-wideview.cgi'); &Lrequire('./lib/db-s.cgi'); &Search }
AmigoDatabaseはコマンドの呼び出しを一つのサブルーチンへまとめています。
例えば上記の sub s { 〜 } は「cmd=s」パラメータの場合の呼び出しですね。このように sub s { 〜 } で一つのサブルーチンですでので sサブルーチン を二つ書くことは望ましくありません。
また、sサブルーチン内部の &Lrequire(); はそれぞれのファイルを読み込むためのものです。それぞれファイルを読込、最後に&Searchサブルーチンを実行するようになっています。

ですので、次のように記述します。
sub s  {
  &Lrequire('./lib/db-wideview.cgi');
  &Lrequire('./lib/db-image.cgi');
  &Lrequire('./lib/db-s.cgi');
  &Search
}
ここでは改行を入れて記述しましたが、AmigoDatabaseのように
sub s  { &Lrequire('./lib/db-wideview.cgi'); &Lrequire('./lib/db-image.cgi'); &Lrequire('./lib/db-s.cgi'); &Search }
一行でまとめても問題ありません。
Posted by 陸奥謳歌
at 2009/11/27(金) 01:30
Re:複数のカスタマイズを行った場合
丁寧にご説明して頂きありがとうございます。
database.cgiのカスタマイズ部分をご指摘して頂いた文法に変更し
検索結果のデータを横に表示させるようにしたのですが、サムネイル画像が正常に表示されません。

image::magickのサムネイル導入にともない、wide-default.htmlに
my%IMG = &ThImageGet;
を追加したら部分的に表示されなくなってしまいます。

対処方法を教えて頂けないでしょうか?
Posted by Bear
at 2009/11/28(土) 13:29
Re:複数のカスタマイズを行った場合
こんにちは。

> image::magickのサムネイル導入にともない、wide-default.htmlに
> my%IMG = &ThImageGet;
を追加したら部分的に表示されなくなってしまいます。

ご確認したいのですが、wide-default.htmlは検索結果表示用のテンプレートHTMLかと存じますが、こちらに「my%IMG = &ThImageGet;」を書きこまれたのでしょうか?
もしそうであればこの追加は削除して下さい。

横表示カスタマイズにサムネイル表示を取り入れる場合は、横表示用ライブラリdb-wideview.cgiの"1データ当たりの表示用サブルーチンWide_Default"などに「my%IMG = &ThImageGet;」を追記して下さい。
sub Wide_Default {
  my%IMG = &ThImageGet;
  print <<EOM;
Access: 1,219,920
 
ソーシャルブックマーク: Yahoo!ブックマーク Google Bookmarks はてなブックマーク Livedoorクリップ @niftyクリップ FC2ブックマーク Buzzurl Delicious トピックイット newsing it!