Bonjour,
je débute en php, et j'aimerai savoir si c'est possible d'adapeter un moteur de recherche présent dans un module de mon phpnuke, sur un autre module...
je m'explique mieux : j'ai actuellement un moteur de recherche petit textarea avec action sur une page, cette page compare le mot de la recherche avec des mots dans des tables.
voilà ça c'est la théorie, donc je pensais juste changer les tables mais cela ne focntionne pas...
help :)
le textarea, enfin le truc qui permet de chercher :)
function SearchForm() {
global $module_name, $query;
echo "<table border='0' cellspacing='0' cellpadding='0' align='center'>\n";
echo "<form action='modules.php?name=$module_name&rop=search&query=$query' method='post'>\n";
echo "<tr><td><font class='content'><input type='text' size='25' name='query' value='$query'> <input type='submit' value='"._tuto_SEARCH."'></td></tr>\n";
echo "</form>\n";
echo "</table>\n";
}
et la c la page search.php
<?
if (!isset($min)) $min=0;
if (!isset($max)) $max=$min+$dl_config['results'];
if(isset($orderby)) { $orderby = convertorderbyin($orderby); } else { $orderby = "title ASC"; }
$query = addslashes($query);
$totalselected = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_nsngd_downloads WHERE (title LIKE '%$query%' OR description LIKE '%$query%') AND active>'0'"));
$the_query = stripslashes($query);
$the_query = str_replace("\'", "'", $the_query);
$pagetitle = "- "._SEARCHRESULTS4.": $the_query";
include("header.php");
tutoriaux_header();
echo "<br>";
if ($query != "") {
title(_SEARCHRESULTS4.": $the_query");
OpenTable();
echo "<table width='100%' bgcolor='$bgcolor2'><tr><td align='center'><font class='storytitle'><b>"._USUBCATEGORIES."</b></font></td></tr></table>";
$crows = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_nsngd_categories WHERE title LIKE '%$query%' AND active>'0' ORDER BY title DESC"));
if ($crows > 0) {
$result2 = $db->sql_query("SELECT * FROM ".$prefix."_nsngd_categories WHERE title LIKE '%$query%' ORDER BY title DESC");
while($cidinfo2 = $db->sql_fetchrow($result2)) {
$numrows = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_nsngd_downloads WHERE cid='".$cidinfo2['cid']."'"));
$cidinfo3 = $db->sql_fetchrow($db->sql_query("SELECT * FROM ".$prefix."_nsngd_categories WHERE cid='".$cidinfo2['cid']."'"));
if ($cidinfo3['parentid'] > 0) $cidinfo3['title'] = getparent($cidinfo3['parentid'], $cidinfo3['title']);
$cidinfo3['title'] = ereg_replace($query, "<b>$query</b>", $cidinfo3['title']);
echo "<strong><big>·</big></strong> <a href='modules.php?name=$module_name&cid=".$cidinfo2['cid']."'>".$cidinfo3['title']."</a> ($numrows)<br>";
}
} else {
echo "<center><font class='option'><b>"._NOMATCHES."</b></font><br><br></center>";
}
CloseTable();
echo"<br>\n";
OpenTable();
echo "<table width='100%' bgcolor='$bgcolor2'><tr><td align='center'><font class='storytitle'><b>"._TUTO."</b></font></td></tr></table>";
$nrows = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_nsngd_downloads WHERE (title LIKE '%$query%' OR description LIKE '%$query%') AND active>'0' ORDER BY $orderby LIMIT $min,".$dl_config['results']));
if ($nrows>0) {
echo "<table border='0' cellpadding='0' cellspacing='4' width='100%'>";
$orderbyTrans = convertorderbytrans($orderby);
echo "<tr><td align='center' colspan='2'><font class='content'>"._SORTDOWNLOADSBY.": ";
echo ""._TITLE." (<a href='modules.php?name=$module_name&op=search&query=$the_query&orderby=titleA'>A</a>\<a href='modules.php?name=$module_name&op=search&query=$the_query&orderby=titleD'>D</a>) ";
echo ""._DATE." (<a href='modules.php?name=$module_name&op=search&query=$the_query&orderby=dateA'>A</a>\<a href='modules.php?name=$module_name&op=search&query=$the_query&orderby=dateD'>D</a>) ";
echo ""._POPULARITY." (<a href='modules.php?name=$module_name&op=search&query=$the_query&orderby=hitsA'>A</a>\<a href='modules.php?name=$module_name&op=search&query=$the_query&orderby=hitsD'>D</a>)";
echo "<br><b>"._RESSORTED.": $orderbyTrans</b></center></td></tr>";
echo "</table>";
pagenums($cid, $query, $orderby, $op, $totalselected, $dl_config['perpage'], $max);
$x = 0;
$a = 0;
$result = $db->sql_query("SELECT lid FROM ".$prefix."_nsngd_downloads WHERE (title LIKE '%$query%' OR description LIKE '%$query%') AND active>'0' ORDER BY $orderby LIMIT $min,".$dl_config['results']);
echo "<table border='0' cellpadding='0' cellspacing='4' width='100%'>";
while(list($lid) = $db->sql_fetchrow($result)) {
if ($a == 0) { echo "<tr>"; }
echo "<td valign='top' width='50%'><font class='content'>";
showresulting($lid);
echo "</font></td>";
$a++;
if ($a == 2) { echo "</tr>"; $a = 0; }
$x++;
}
if ($a ==1) { echo "<td width=\"50%\"> </td></tr>"; } else { echo "</tr>"; }
$orderby = convertorderbyout($orderby);
echo "</table>";
pagenums($cid, $query, $orderby, $op, $totalselected, $dl_config['perpage'], $max);
} else {
echo "<center><font class='option'><b>"._NOMATCHES."</b></font></center><br><br>";
}
}
CloseTable();
include("footer.php");
?>
je voudrais qu'il recherche dans des tables différentes...
#
# Structure de la table `nuke_tuto_cat`
#
CREATE TABLE nuke_tuto_cat (
tid int(10) NOT NULL auto_increment,
categorie varchar(255) NOT NULL default '0',
description text NOT NULL,
weight int(10) NOT NULL default '0',
active int(1) NOT NULL default '0',
PRIMARY KEY (tid),
KEY tid (tid)
) TYPE=MyISAM;
#
# Structure de la table `nuke_tuto_config`
#
CREATE TABLE nuke_tuto_config (
allow_inactivetuto int(2) default NULL
) TYPE=MyISAM;
#
# Contenu de la table `nuke_tuto_config`
#
INSERT INTO nuke_tuto_config (allow_inactivetuto) VALUES (1);
# --------------------------------------------------------
#
# Structure de la table `nuke_tuto_infos`
#
CREATE TABLE nuke_tuto_infos (
did int(11) NOT NULL auto_increment,
cid int(10) NOT NULL default '0',
tid int(10) NOT NULL default '0',
username varchar(255) NOT NULL default '',
comment text NOT NULL,
tuto varchar(255) NOT NULL default '',
counter int(10) NOT NULL default '0',
weight int(10) NOT NULL default '0',
active int(1) NOT NULL default '0',
time date default NULL,
PRIMARY KEY (did),
KEY did (did),
KEY cid (cid),
KEY tid (tid)
) TYPE=MyISAM;
#
# Structure de la table `nuke_tuto_page`
#
CREATE TABLE nuke_tuto_page (
eid int(10) NOT NULL auto_increment,
cid int(10) NOT NULL default '0',
did int(10) NOT NULL default '0',
tid int(10) NOT NULL default '0',
subtitle varchar(255) NOT NULL default '',
page longtext NOT NULL,
weight int(10) NOT NULL default '0',
PRIMARY KEY (eid),
KEY eid (eid),
KEY did (tid)
) TYPE=MyISAM;
#
# Structure de la table `nuke_tuto_souscat`
#
CREATE TABLE nuke_tuto_souscat (
cid int(10) NOT NULL auto_increment,
tid int(10) NOT NULL default '0',
souscat varchar(255) NOT NULL default '',
weight int(10) NOT NULL default '0',
active int(1) NOT NULL default '0',
PRIMARY KEY (cid),
KEY cid (cid),
KEY tid (tid)
) TYPE=MyISAM;
sachant que les categories sont dans nuke_tuto_souscat
et les tutoriaux dans nuke_tuto_infopage
toutes aides est la bienvenu :)
Mon site : http://www.dg.cliranet.com