NP_Amazon で、作者名が表示できる時だけ作者名を表示させ、不要な場合は作者の行は非表示にして詰めるように変更してみました。なお、日付がでてないものは商品データに日付が入ってないものなので、今回の変更では考慮していません。
書籍やCDは、最初に作者名が表示されます。
ゲームやDVD等は作者名は表示させず(余計な空行はなくしています)、最初に会社名を表示させています。なお、一部のDVDでは作者名が存在している商品もあるようでしたが、そういう場合は表示させていません。
なお書籍であっても作者名が空の場合(ゲーム系書籍や、雑誌など)は、余分に一行空かないようにしています。
プログラムソースの変更箇所を、以下に記載します。
テンプレートの表示判定用に、作者フラグを用意しています。データを取得する時に Catalog が Book か CD の場合かつ author にデータがある場合のみ(つまり文字数が ZERO でなければ)作者フラグに1をセットさせます。
208行あたり $product[edit] = $this->canEdit()?'<a href="'.$CONF[ActionURL] . '?action=plugin&name=Amazon&type=edit&asbncode='.$product[asbncode].'" target="_blank">edit</a>':''; //2009/12/19 upd-s by takehana //$this->getTemplate($template); $authorflg = 0; if($product[catalog] == "Book" or $product[catalog] == "Music") { if( strlen($product[author]) != 0) { $authorflg = 1; } } $this->getTemplate($template,$authorflg); //2009/12/19 upd-e by takehana $out = TEMPLATE::fill($this->template_asbn,$product);;
314行あたり $product[edit] = $this->canEdit()?'<a href="'.$CONF[ActionURL] . '?action=plugin&name=Amazon&type=edit&asbncode='.$product[asbncode].'" target="_blank">edit</a>':''; //2009/12/19 upd-s by takehana //$this->getTemplate($template); $authorflg = 0; if($product[catalog] == "Book" or $product[catalog] == "Music") { if( strlen($product[author]) != 0) { $authorflg = 1; } } $this->getTemplate($template,$authorflg); //2009/12/19 upd-e by takehana $out = TEMPLATE::fill($this->template_asbn,$product);;
テンプレートを表示する時に、関数の引数に作者フラグを追加して、処理内の判定に利用しました。
735行あたり //2009/12/19 upd-1 by takehana //function getTemplate($template) { function getTemplate($template,$authorflg) {
759行あたりのテンプレート内容を下記に変更 default: //default template $this->template_asbn = '<DIV class=amz>'; $this->template_asbn .= '<%showimg%>'; $this->template_asbn .= '<%showtitle%><br />'; $this->template_asbn .= '<br />'; if($authorflg == 1){ $this->template_asbn .= '<%author%><br />'; } $this->template_asbn .= '<%manufacturer%><br />'; $this->template_asbn .= '<%media%><br />'; $this->template_asbn .= '<%releasedate%><br />'; $this->template_asbn .= '<%edit%><BR class=amzend>'; $this->template_asbn .= '</div>';
上記のテンプレート部分は独自のCSS用クラスなどを記載していますので、ご自身のデザインにあわせて変更されてください。
コメント