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">
+&nbsp;<b>Mots cl&eacute;s :</b>&nbsp;&nbsp;<input value="{$search_value}" 
name="find" style="width:172px;" maxlength="255" type="text">
+&nbsp;&nbsp;<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' => '&raquo;',
+     'prevImg' => '&laquo;',
+     '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

Reply via email to