[ Index ] |
|
Code source de SPIP Agora 1.4 |
1 <?php 2 /***************************************************** 3 * This file is part of Agora, web based content management system. 4 * 5 * Agora is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; version 2 of the License. 8 * 9 * Agora is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details (file "COPYING"). 13 * 14 * Copyright © Arnaud Martin, Antoine Pitrou et Philippe Rivière. 15 * List of authors detailed in "copyright_fr.html" file. 16 * E-mail : agora@sig.premier-ministre.gouv.fr 17 * Web site : http://www.agora.gouv.fr 18 *****************************************************/ 19 require_once dirname(__FILE__). "/DBWrapper.php"; 20 21 class DBSearchWrapper extends DBWrapper { 22 function &factory ($dbParameters, $dbOptions = null) { 23 if (file_exists( 24 dirname( 25 __FILE__). "/" . $dbParameters->_dbEngine . "/DBSearchWrapper_" . $dbParameters->_dbEngine . ".php") 26 == false) { 27 include_once (dirname(__FILE__). "/common/DBSearchWrapper_common.php"); 28 $classname = "DBSearchWrapper_common"; 29 } 30 else { 31 include_once (dirname( 32 __FILE__). "/" . $dbParameters->_dbEngine . "/DBSearchWrapper_" . $dbParameters->_dbEngine . ".php"); 33 $classname = "DBSearchWrapper_" . $dbParameters->_dbEngine; 34 } 35 36 if (!class_exists($classname)) { 37 return PEAR::raiseError("Cannot instanciate class $classname", null, null, null, null, null, false); 38 } 39 40 $obj = &new $classname; 41 $result = $obj->setDbParameters($dbParameters); 42 43 if ($dbOptions != null) { 44 $obj->setDbOptions($dbOptions); 45 } 46 47 if (PEAR::isError($result)) { 48 return $result; 49 } 50 else { 51 return $obj; 52 } 53 } 54 55 function query ($query) { 56 $db = $this->_getDB(); 57 58 if (DB::isError($db)) { 59 return PEAR::raiseError("[" . get_class($this). " DBSearchWrapper : query] " . $db->getMessage(). "", null, 60 null, null, 61 null, null, 62 false); 63 } 64 65 if (ereg("<!spipDATE_COURANTEspip!>", $query)) { 66 $maDate = new Date(); 67 $query = ereg_replace("<!spipDATE_COURANTEspip!>", $maDate->getDate(DATE_FORMAT_ISO), $query); 68 } 69 70 //echo "\n\n<br>requete >> " . $query . '<br>'; 71 $dbResult = $db->query($query); 72 73 if (DB::isError($dbResult)) { 74 return PEAR::raiseError("[" . get_class($this). " DBSearchWrapper : query] " . $dbResult->getMessage(). "", 75 null, 76 null, 77 null, 78 null, 79 null, 80 false); 81 } 82 83 if (eregi("SELECT (.*) FROM (.*) WHERE (.*)", $query, $params)) { 84 $champs = explode(",", $params[1]); 85 $champs2 = explode(" AS ", $champs[0]); 86 $champs3 = explode(".", $champs2[0]); 87 //En attendant d'avoir une vraie grammaire pour virer ces cochonneries 88 $champs3[1] = str_replace(')', '', $champs3[1]); 89 90 $id_object = $champs3[1]; 91 92 $champs = explode(",", $params[2]); 93 $champs2 = explode(" ", $champs[0]); 94 $table = $champs2[0]; 95 } 96 97 while ($row = $dbResult->fetchRow()) { 98 $query 99 = "SELECT $table.*, " . $row['points']. " points from $table WHERE $id_object=" . $row['id_object']. ""; 100 101 $this->_dbResult = $db->query($query); 102 $dbResult2 = $this->_dbResult; 103 104 if (DB::isError($this->_dbResult)) { 105 return PEAR::raiseError("[" . get_class($this). " DBSearchWrapper : query] " . $dbResult2->getMessage(). "", null, null, null, null, null, false); 106 } 107 $this->_rowsBuilder(); 108 } 109 110 $this->_limitRows(); 111 } 112 } 113 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sat Feb 24 14:40:03 2007 | par Balluche grâce à PHPXref 0.7 |