|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
|
Aiuto Php/MySql
Ciao,
stò tentando di capire come poter modificare questo script (è solo un blocco di MdPro) in modo da fargli visualizzare solo le recensioni appartenenti ad una determinata categoria (il blocco è per un modulo chiamato ProdReview ma questo non dovrebbe influire...) In teoria è una cosa semplicissima ma non conoscendo bene l'sql avrei bisogno di una mano.... Da quello che ho capito utilizzando PhpMyAdmin nel mio db ho una tabella chiamata ita_prodreviews dove ci sono tutti gli album e i demo recensiti messi in ordine di data....e c'è un campo chiamato pn_category che puà assumere il valore 0 o 1 (1 se si tratta di un demo, 0 se si tratta di un album). Come posso dirgli di visualizzare solo le recensioni dei demo per esempio? Così facendo potrei installare due blocchi distinti uno per gli album e l'altro per i demo così da dividere in 2 box distinti le recensioni dei demo da quelle degli album <?php // $Id: top10.php,v 1.4 2003/04/27 19:47:52 sybalsky Exp $ // ---------------------------------------------------------------------- // POST-NUKE Content Management System // Copyright (C) 2001 by the Post-Nuke Development Team. // http://www.postnuke.com/ // ---------------------------------------------------------------------- // Based on: // PHP-NUKE Web Portal System - http://phpnuke.org/ // Thatware - http://thatware.org/ // ---------------------------------------------------------------------- // LICENSE // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License (GPL) // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // To read the license please visit http://www.gnu.org/copyleft/gpl.html // ---------------------------------------------------------------------- // Original Author of file: Jim McDonald // Purpose of file: Show top10 items in prodreviews // ---------------------------------------------------------------------- $GLOBALS['ModName'] = "ProdReviews"; include_once( 'modules/ProdReviews/pr-util.php'); /** * initialise block */ function prodreviews_top10block_init() { // Security pnSecAddSchema('ProdReviews:Top10block:', 'Block title::'); } /** * get information on block */ function prodreviews_top10block_info() { // Values return array('text_type' => 'Top-10', 'module' => 'ProdReviews', 'text_type_long' => 'Show top-10 reviews', 'allow_multiple' => true, 'form_content' => false, 'form_refresh' => false, 'show_preview' => true); } /** * display block */ function prodreviews_top10block_display($blockinfo) { // Security check if (!pnSecAuthAction(0, 'ProdReviews:Top10block:', "$blockinfo[title]::", ACCESS_READ)) { return; } // Get variables from content block $vars = pnBlockVarsFromContent($blockinfo['content']); // Defaults if (empty($vars['numitems'])) { $vars['numitems'] = 10; } // $header = $blockinfo['title']; if ( empty($vars['source']) ) { $vars['source'] = 'recent'; } // Database information pnModDBInfoLoad('ProdReviews'); list($dbconn) = pnDBGetConn(); $pntable =pnDBGetTables(); $prodreviewstable = $pntable['prodreviews']; $prodreviewscolumn = &$pntable['prodreviews_column']; // Query switch ($vars['source']) { case 'recent': $sql = "SELECT $prodreviewscolumn[id], $prodreviewscolumn[title], $prodreviewscolumn[score], $prodreviewscolumn[date], $prodreviewscolumn[cover] FROM $prodreviewstable ORDER by $prodreviewscolumn[date] desc"; break; case 'most-read': $sql = "SELECT $prodreviewscolumn[id], $prodreviewscolumn[title], $prodreviewscolumn[score], $prodreviewscolumn[date], $prodreviewscolumn[cover] FROM $prodreviewstable ORDER by $prodreviewscolumn[hits] desc"; break; case 'helpful': $sql = "SELECT $prodreviewscolumn[id], $prodreviewscolumn[title], $prodreviewscolumn[score], $prodreviewscolumn[date], $prodreviewscolumn[cover] ifnull($prodreviewscolumn[useful]/$prodreviewscolumn[scorers], -1) as xx FROM $prodreviewstable ORDER by xx desc"; break; case 'best-rated': $sql = "SELECT $prodreviewscolumn[id], $prodreviewscolumn[title], $prodreviewscolumn[score], $prodreviewscolumn[date], $prodreviewscolumn[cover] FROM $prodreviewstable ORDER by $prodreviewscolumn[score] desc"; break; case 'recent-comment': $prcomtable = $pntable['prodreviews_comments']; $prcomcols = &$pntable['prodreviews_comments_column']; $sql = "SELECT DISTINCT $prodreviewscolumn[id], $prodreviewscolumn[title], $prodreviewscolumn[score], $prodreviewscolumn[date], $prodreviewscolumn[cover] FROM $prodreviewstable LEFT JOIN $prcomtable ON $prodreviewscolumn[id]=$prcomcols[rid] ORDER by $prcomcols[date] desc"; break; } $result = $dbconn->SelectLimit($sql, $vars['numitems']); if ($dbconn->ErrorNo() != 0) { error_log("Error selecting top-10 items: " . $dbconn->ErrorMsg()); return; } if ($result->EOF) { // No items to show, so don't show the block. return; } // Create output object $output = new pnHTML(); $output->SetInputMode(_PNH_VERBATIMINPUT); $output->SetInputMode(_PNH_PARSEINPUT); // Display each item, permissions permitting for (; !$result->EOF; $result->MoveNext()) { list($tid, $name, $score, $date, $cover) = $result->fields; $output->SetInputMode(_PNH_VERBATIMINPUT); $output->Text("<div class=\"table\"><center>"); $output->SetInputMode(_PNH_PARSEINPUT); if (pnSecAuthAction(0, 'ProdReviews::', "$name::$tid", ACCESS_OVERVIEW)) { if (pnSecAuthAction(0, 'ProdReviews::', "$name::$tid", ACCESS_READ)) { $output->URL(pnModURL('ProdReviews', 'user', 'showcontent', array('id' => $tid)), $name); } else { $output->Text($name); } $output->SetInputMode(_PNH_VERBATIMINPUT); switch ( $vars['additional'] ) { case 'score': $output->Text("<br><br><img src=modules/ProdReviews/images/".$cover." alt=\"cover\" width=\"100\" height=\"100\" /><br><br>".display_score($score)."<hr noshade /></center></div>"); break; case 'date': $output->Text(" <span class=\"pn-sub\">(".date(_TOP10ADDFMT, strtotime($date)).")</span>"); break; default: break; } $output->SetInputMode(_PNH_PARSEINPUT); $output->Linebreak(); } } $date = date("Y-m-d H:i:s", time()); // Populate block info and pass to theme $blockinfo['content'] = $output->GetOutput(); return themesideblock($blockinfo); } /** * modify block settings */ function prodreviews_top10block_modify($blockinfo) { // Create output object $output = new pnHTML(); // Get current content $vars = pnBlockVarsFromContent($blockinfo['content']); // Defaults if (empty($vars['numitems'])) { $vars['numitems'] = 10; } if (empty( $vars['source'] ) ) { $vars['source'] = 'recent'; // default source is most-recent reviews. } if (empty( $vars['additional'] ) ) { $vars['additional'] = 'None'; // default is to show only title. } // Create row $row = array(); // Top how-many items $row2 = array(); // Top what-kind-of items $row3 = array(); // Additional field(s??) to show $output->SetOutputMode(_PNH_RETURNOUTPUT); $row[] = $output->Text(_NUMITEMS); $row[] = $output->FormText('numitems', pnVarPrepForDisplay($vars['numitems']), 5, 5); $row2[] = $output->Text(_TOP10SELECTHOW); $row2[] = $output->FormSelectMultiple('source', array(array('id'=>'recent', 'name'=>_TOP10SELRECENT), array('id'=> 'most-read', 'name'=>_TOP10SELHITS), array('id'=>'helpful', 'name'=>_TOP10SELHELP), array('id'=>'best-rated', 'name'=> _TOP10SELRATED), array('id'=>'recent-comment', 'name'=> _TOP10SELCOMM)), 0, 0, $vars['source'] ); $row3[] = $output->Text(_TOP10ADDITIONALFIELDS); $row3[] = $output->FormSelectMultiple('additional', array(array('id'=>'None', 'name'=>_TOP10ADDNONE), array('id'=> 'score', 'name'=>_TOP10ADDSCORE), array('id'=>'date', 'name'=>_TOP10ADDDATE)), 0, 0, $vars['additional'] ); $output->SetOutputMode(_PNH_KEEPOUTPUT); // Add row $output->SetInputMode(_PNH_VERBATIMINPUT); $output->TableAddRow($row, 'left'); $output->TableAddRow($row2, 'left'); $output->TableAddRow($row3, 'left'); $output->SetInputMode(_PNH_PARSEINPUT); // Return output return $output->GetOutput(); } /** * update block settings */ function prodreviews_top10block_update($blockinfo) { $vars['numitems'] = pnVarCleanFromInput('numitems'); $vars['source'] = pnVarCleanFromInput('source'); $vars['additional'] = pnVarCleanFromInput('additional'); $blockinfo['content'] = pnBlockVarsToContent($vars); return $blockinfo; } ?> |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: May 2004
Messaggi: 75
|
Basta che modifichi il tuo codice dove fa le select mysql aggiungendo:
... WHERE pn_category='0'.... ex con il tuo codice: case 'most-read': $sql = "SELECT $prodreviewscolumn[id], $prodreviewscolumn[title], $prodreviewscolumn[score], $prodreviewscolumn[date], $prodreviewscolumn[cover] FROM $prodreviewstable WHERE pn_category='0' ORDER by $prodreviewscolumn[hits] desc"; Ciao, McK |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:11.



















