Author: rado
Date: Mon Jun 4 14:01:02 2007
New Revision: 498
URL: http://svn.gna.org/viewcvs/phplinker?rev=498&view=rev
Log:
#177
search keywords in url and url_description
Added:
trunk/www/lib/search.php
Modified:
trunk/smarty/default/templates/index.tpl
trunk/www/includes/start.php
trunk/www/index.php
Modified: trunk/smarty/default/templates/index.tpl
URL:
http://svn.gna.org/viewcvs/phplinker/trunk/smarty/default/templates/index.tpl?rev=498&r1=497&r2=498&view=diff
==============================================================================
--- trunk/smarty/default/templates/index.tpl (original)
+++ trunk/smarty/default/templates/index.tpl Mon Jun 4 14:01:02 2007
@@ -20,10 +20,30 @@
<div id="left">
<table cellpadding="0" cellspacing="0" border="0" width="776" align="center">
<tr>
+ <td valign="top" width="100%">
+<table border="0" cellspacing="0" cellpadding="5" width="100%">
+<tr valign='top'><td><h1>Recherche</h1>
+<form method="get">
+ <b>Mots clés :</b> <input value="{$search_value}"
name="find" style="width:172px;" maxlength="255" type="text">
+ <input type="submit" value="Rechercher">
+</form>
+</td> </tr>
+</table>
+</td>
+</table>
+</div>
+</td>
+</tr>
+
+<tr>
+ <td valign="top" class="corp_de_page" width="100%">
+<div id="left">
+<table cellpadding="0" cellspacing="0" border="0" width="776" align="center">
+<tr>
<td valign="top" class="corp_de_page" width="100%">
<table border="0" cellspacing="0" cellpadding="5" width="100%">
<tr><h1>{$pub_selection}</h1>
- <td align="left" colspan="2"> <h1>L'annuaire de sites</h1>
+ <td align="left" colspan="2"> <h1>{$subtitle}</h1>
<br clear="all" />
{$navbars}
</td>
@@ -56,9 +76,18 @@
<td><a href="{$urls[url].link_url}/" target="blank"
class="bleunsU"><strong>{$urls[url].link_url}</strong></a><br>{$urls[url].link_description}<br/><br/></td>
</tr>
{/section}
+
+ {section name=run_increment loop=$myData}
+ {$myData[run_increment]}
+ {/section}
+<tr><td>
+<table border="0" cellspacing="0" cellpadding="5" width="75%" align="center">
+<tr>
+ <td align="center">{$link}<b><span style="font-size:12px;">{$nbr} site(s)
trouvé(s)</span><b></td>
+ </tr>
</table>
-</div>
-<div id="right">
+</td></tr>
+</table>
</div>
</td>
</tr>
Modified: trunk/www/includes/start.php
URL:
http://svn.gna.org/viewcvs/phplinker/trunk/www/includes/start.php?rev=498&r1=497&r2=498&view=diff
==============================================================================
--- trunk/www/includes/start.php (original)
+++ trunk/www/includes/start.php Mon Jun 4 14:01:02 2007
@@ -38,6 +38,7 @@
require(dirname(__FILE__)."/../lib/url.php");
require(dirname(__FILE__)."/../lib/log.php");
require(dirname(__FILE__)."/../lib/htaccess.php");
+require(dirname(__FILE__)."/../lib/search.php");
require(dirname(__FILE__)."/../lib/sql_config.php");
require(dirname(__FILE__)."/../lib/xajax/xajax.inc.php");
require(dirname(__FILE__)."/../lib/tag_xajax.php");
Modified: trunk/www/index.php
URL:
http://svn.gna.org/viewcvs/phplinker/trunk/www/index.php?rev=498&r1=497&r2=498&view=diff
==============================================================================
--- trunk/www/index.php (original)
+++ trunk/www/index.php Mon Jun 4 14:01:02 2007
@@ -33,75 +33,145 @@
$navbars='';
$pub_selection = '';
$link_pub='';
-if (isset($_GET['cat'])){
- $navbars = linker_navbars($_GET['cat']) ;
- $titles = linker_titles($_GET['cat']) ;
- $titles= preg_replace('/- $/','',$titles);
- $metas = preg_replace('/ - /',',',$titles);
- $metas = preg_replace('/ $/','',$metas);
- $headers[] ="<META NAME=\"Description\" CONTENT=\"Annuaire,Pages
Perso,".$metas."\">";
- $headers[]="<META NAME=\"Keywords\" CONTENT=\"Annuaire,Pages
Perso,".$metas."\">";
- $result=sql_query('die', __FILE__, __LINE__, __FUNCTION__, "SELECT id, name
FROM category WHERE id_parent=".$_GET['cat']. " AND visible = '1'" );
-$title= "- ".$titles ;
+// search
+if(isset($_GET['find'])){
+ require($linker_config['linker_php_pager']);
+ $keywords='+'.str_replace(' ',' +',$_GET['find']);
+ $qryCount = mysql_query("SELECT count(*) as nb FROM url WHERE state
='moderated' AND MATCH(url, description) AGAINST ('".$keywords."' IN BOOLEAN
MODE)") or die(mysql_error());
+ if ($fetched = mysql_fetch_array($qryCount))
+ $nb = $fetched['nb'];
-foreach(linker_get_urls_by_category_id($_GET['cat']) as $url){
- $urls[]=array(
- 'link_url'=>$url['url'],
- 'link_description'=>$url['description']
- );
-}
- $pub_selection = linker_pub($_GET["cat"]);
+ $page = (isset($_GET['page'])) ? $_GET['page'] : 1;
// la valeur 'page' ici doit être eq à la valeur de params['urlVar']
+ $pPage = (isset($_GET['setPerPage'])) ? $_GET['setPerPage'] : 10;
// la valeur 10 ici doit être eq à la valeur de params['perPage']
+ $debut = $page * $pPage - $pPage;
+ $res_search=mysql_query("SELECT url,description FROM url WHERE state
='moderated' AND MATCH(url, description) AGAINST ('".$keywords."' IN BOOLEAN
MODE) LIMIT ".$debut.",".$pPage);
+ $numtrouve=mysql_numrows($res_search);
+ $myData=array();
+ $t = 0;
+ $Counter = 0;
+ while($nb != $t){
+ if($t >= $debut && $t < ($debut+$pPage) && $Counter < $pPage){
+ $url =
linker_keywords_presentation($_GET['find'],mysql_result($res_search,$Counter,"url"));
+ $url_descriptions =
linker_keywords_presentation($_GET['find'],mysql_result($res_search,$Counter,"description"));
+ $myData[]="<tr>
+<td><a href=\"\" target=\"blank\"
class=\"bleunsU\">$url</a><br/>$url_descriptions<br><br></td>
+</tr>
+";
+ $Counter++;
+ }else{
+ $myData[]="";
+ }
+ $t++;
+ }
+ // Initialisation de la variable $param avec les valeurs par défaut
+ $params = array(
+ 'itemData' => $myData, // Les données à afficher
+ 'perPage' => 10, // Nombre de ligne par page par défaut
+ 'delta' => 10, // Nombre de numero de pages à afficher
directement sur les liens de saut de page
+ 'append' => true,
+ 'clearIfVoid' => true,
+ 'urlVar' => 'page',
+ 'useSessions' => false,
+ 'closeSession' => false,
+ 'mode' => 'Jumping',
+ 'nextImg' => '»',
+ 'prevImg' => '«',
+ 'linkClass' => 'pager',
+ 'curPageLinkClassName' => 'currpage'
+
+ );
+ $pager = & Pager::factory($params);
+ $page_data = $pager->getPageData(0);
+ $links = $pager->getLinks();
+ $selectBox = $pager->getPerPageSelectBox();
+ $link = $links['all'];
+ linker_tpl("myData" , $myData);
+ linker_tpl("nbr" ,$nb);
+ linker_tpl("selectBox" , $selectBox);
+ linker_tpl("page_data" , $page_data);
+ linker_tpl("links" , $links);
+ linker_tpl("link" , $link);
+
+ $subtitle = _("Resultat de vos recherches");
+ $title = _("Resultat des recherches pour : ").$_GET['find'];
+ $headers[] ="<META NAME=\"Description\" CONTENT=\"Annuaire,Pages
Perso,".$_GET['find']."\">";
+ $headers[]="<META NAME=\"Keywords\" CONTENT=\"Annuaire,Pages
Perso,".$_GET['find']."\">";
}else{
- $result=sql_query('die', __FILE__, __LINE__, __FUNCTION__,
+ if (isset($_GET['cat'])){
+ $navbars = linker_navbars($_GET['cat']) ;
+ $titles = linker_titles($_GET['cat']) ;
+ $titles= preg_replace('/- $/','',$titles);
+ $metas = preg_replace('/ - /',',',$titles);
+ $metas = preg_replace('/ $/','',$metas);
+ $headers[] ="<META NAME=\"Description\" CONTENT=\"Annuaire,Pages
Perso,".$metas."\">";
+ $headers[]="<META NAME=\"Keywords\" CONTENT=\"Annuaire,Pages
Perso,".$metas."\">";
+
+ $result=sql_query('die', __FILE__, __LINE__, __FUNCTION__, "SELECT id,
name FROM category WHERE id_parent=".$_GET['cat']. " AND visible = '1'" );
+ $title= "- ".$titles ;
+
+ foreach(linker_get_urls_by_category_id($_GET['cat']) as $url){
+ $urls[]=array(
+ 'link_url'=>$url['url'],
+ 'link_description'=>$url['description']
+ );
+ }
+ $pub_selection = linker_pub($_GET["cat"]);
+ }else{
+ $result=sql_query('die', __FILE__, __LINE__, __FUNCTION__,
"SELECT id, name FROM category WHERE id_parent=0 AND
visible = '1'" );
-$title="";
- $headers[] ="<META NAME=\"Description\" CONTENT=\"Annuaire, Pages Perso\">";
- $headers[] = "<META NAME=\"Keywords\" CONTENT=\"Annuaire, Pages Perso\">";
-}
-$tree=linker_get_categories_tree_array();
+ $title="";
+ $headers[] ="<META NAME=\"Description\" CONTENT=\"Annuaire, Pages
Perso\">";
+ $headers[] = "<META NAME=\"Keywords\" CONTENT=\"Annuaire, Pages Perso\">";
+ }
+ $tree=linker_get_categories_tree_array();
-$parents=array();
-$iter=0;
-while(list($id,$name)=mysql_fetch_array($result)){
- $array_children=array();
- $array_children=linker_get_category_children($id,$tree,$array_children,0);
- $names='';
+ $parents=array();
+ $iter=0;
+ while(list($id,$name)=mysql_fetch_array($result)){
+ $array_children=array();
+ $array_children=linker_get_category_children($id,$tree,$array_children,0);
+ $names='';
- $i=0;
- foreach($array_children as $child){
- $names.=$child['name']. ', ';
- $i++;
- if($i==3)
- break;
- }
- $names=preg_replace('/, $/','...',$names);
- if (isset($_GET['cat'])){
- $parents[]=array(
+ $i=0;
+ foreach($array_children as $child){
+ $names.=$child['name']. ', ';
+ $i++;
+ if($i==3)
+ break;
+ }
+ $names=preg_replace('/, $/','...',$names);
+ if (isset($_GET['cat'])){
+ $parents[]=array(
'id' => $id,
'link'=>linker_remove_accents($name),
'nbr'=>" (".linker_total_url($id).")",
'name' => htmlentities(utf8_decode($name)),
'iter' => $iter,
);
- }else{
- $parents[]=array(
+ }else{
+ $parents[]=array(
'id' => $id,
'link'=>linker_remove_accents($name),
'name' => htmlentities(utf8_decode($name)),
'sons' => $names,
'iter' => $iter,
);
+ }
+
+ $iter=($iter==1)?0:1;
}
+ $subtitle = _("L'annuaire des sites");
+ }
- $iter=($iter==1)?0:1;
- }
$serv ="";
$serv = str_replace("/www/index.php","/smarty/",$_SERVER['SCRIPT_FILENAME']);
$menu_droite= $serv .
$linker_config['linker_smarty_template']."/templates/MenuDroit.tpl";
+linker_tpl("search_value",$_GET['find']);
+linker_tpl("subtitle",$subtitle);
linker_tpl("menu_droite",$menu_droite);
linker_tpl("server_name",$server_name);
linker_tpl("navbars" , $navbars);
Added: trunk/www/lib/search.php
URL:
http://svn.gna.org/viewcvs/phplinker/trunk/www/lib/search.php?rev=498&view=auto
==============================================================================
--- trunk/www/lib/search.php (added)
+++ trunk/www/lib/search.php Mon Jun 4 14:01:02 2007
@@ -1,0 +1,39 @@
+<?php
+/*
+ This file is part of PHPLinker.
+
+ PHPLinker is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ PHPLinker 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.
+
+ You should have received a copy of the GNU General Public License
+ along with PHPLinker; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+ /**
+ * @version $Id: log.php 310 2007-04-16 13:12:03Z kiambala $
+ * @copyright Copyright (c) by ISVTEC
+ * @license GPL v2
+ */
+?>
+<?php
+
+function linker_split_keywords($keys){
+ $keywords = preg_split("/[\s,+ ]+/", $keys);
+ return $keywords;
+}
+
+function linker_keywords_presentation($keys,$str){
+ foreach(linker_split_keywords($keys) as $key){
+ $str = str_replace($key,"<b>".$key."</b>",$str);
+ }
+ return $str;
+}
+
+?>
_______________________________________________
PHPLinker-commits mailing list
[email protected]
https://mail.gna.org/listinfo/phplinker-commits