ok gente io mi sono un pò perso in quella guida...
ho creato tutte le classi necessarie cercando di modificarle in base alle mie esigenze:
ora ho un problema... cosa devo richiamare e come creo il form php???
Codice PHP:
<?php
class Search {
var $results = array(),
$getcommentsnumber = false;
function DoSearch($qstr, $db){
$str = $qstr->ToString();
$result = $db->ExecuteQuery(sprintf("
SELECT *,
MATCH(nome, categoria, descrizione, geo) AGAINST('%s' IN BOOLEAN MODE) as score
FROM articoli, riviste
WHERE buzz_user AND MATCH(nome, categoria, descrizione, geo) AGAINST('%s' IN BOOLEAN MODE)
ORDER BY score DESC",
$str, $str));
$data = $db->FetchResult($result);
foreach($data as $article){
$res = new Result($data['aid'], $data['magazine'], $data['date'], $data['title'], $data['author'], $data['score']);
if($this->getcommentsnumber){
$res->GetCommentsNumber(&$db);
}
$this->results[] = $res;
}
}
function GetResults(){
return $this->results;
}
}
// classe database
class Database {
var $conn = NULL;
function Database (){
$conn=&JFactory::getDBO();
}
function ExecuteQuery($query){
return mysql_query($query, $this->conn)
or die("ERRORE MYSQL: ".mysql_error());
}
function FetchResult($result){
$data = array();
while($tmp = mysql_fetch_assoc($result))
$data[] = $tmp;
return $data;
}
function Close(){
mysql_close($this->conn);
}
}
// classe result
class Result {
var $userid = "";
var $nome = "";
var $logo = "";
var $categoria = "";
var $descrizione = "";
var $località = "";
var $web = "";
var $email = "";
var $telefono = "";
var $articlepagepath = "articolo.php";
function Result($r_userid, $r_nome, $r_logo, $r_categoria, $r_descrizione, $r_geo, $r_web, $r_email, $r_telefono){
$userid = $r_userid;
$nome = $r_nome;
$logo = $r_logo;
$categoria = $r_categoria;
$descrizione = $r_descrizione;
$geo = $r_geo;
$geo= explode (':', $r_geo);
$geo_citta=$geo[0];
$geo_provincia=$geo[1];
$geo_regione=$geo[2];
$localita=$geo_citta.', ('.$geo_provincia.'), '.$geo_regione;
$web = $r_web;
$email = $r_email;
$telefono = $r_telefono;
}
function Display(){
$report='<div class="azienda">
[img]'.$this->logo.'[/img]
<spam class="nome">[url="'.JURI::base().'index.php?option=com_buzz&view=pagina&userid='.$this->userid.'"]'.$this->nome.'[/url]</spam>
<spam class="categoria">'.$this->categoria.'</spam>
<spam class="descrizione">'.$this->descrizione.'</spam>
<spam class="localita">'.$this->localita.'</spam>
<spam class="web">'.$this->web.'</spam>
<spam class="email">'.$this->email.'</spam>
<spam class="telefono">'.$this->telefono.'</spam>
</div>';
return $report;
}
}
// classe query string
class QueryString {
var $string = "";
var $all = array();
var $any = array();
var $none = array();
var $bad = array();
var $passed = array();
function QueryString(){
$nargs = func_num_args();
if($nargs > 0){
$arg = func_get_arg(0);
$this->string = $this->CleanString($arg);
}
}
function CleanString($str){
$str = addslashes($str);
}
function CleanWord($word){
if(preg_match("[a-zA-Z0-9_", $word)){
return $word;
}else{
$this->passed[] = $word;
return NULL;
}
}
function AddBadWord($word){
$word = $this->CleanWord($word);
if(!is_null($word)) $this->bad[] = $word;
}
function AddBadWords($words){
if(!is_array($words)){
$words = explode(" ", $words);
}
foreach($words as $word){
$this->AddBadWord($word);
}
}
function AddAnyWord($word){
$word = $this->CleanWord($word);
if(!is_null($word)) $this->any[] = $word;
}
function AddAnyWords($words){
if(!is_array($words)){
$words = explode(" ", $words);
}
foreach($words as $word){
$this->AddAnyWord($word);
}
}
function AddAllWord($word){
$word = $this->CleanWord($word);
if(!is_null($word)) $this->all[] = $word;
}
function AddAllWords($words){
if(!is_array($words)){
$words = explode(" ", $words);
}
foreach($words as $word){
$this->AddAllWord($word);
}
}
function AddNoneWord($word){
$word = $this->CleanWord($word);
if(!is_null($word)) $this->none[] = $word;
}
function AddNoneWords($words){
if(!is_array($words)){
$words = explode(" ", $words);
}
foreach($words as $word){
$this->AddNoneWord($word);
}
}
function ToString(){
return ($this->string != "") ? $this->string : $this->BuildString();
}
function BuilString(){
$values = array(
"+" => &$this->all,
"-" => &$this->none,
" " => &$this->any,
"~" => &$this->bad);
$tmp = array();
foreach($values as $operator => $words)
if(count($words) > 0)
$tmp[] = $operator."(".implode(" ", $words).")";
return implode(" ", $tmp);
}
}