- LSsearch :
authorBenjamin Renard <brenard@easter-eggs.com>
Sun, 14 Feb 2010 17:45:39 +0000 (18:45 +0100)
committerBenjamin Renard <brenard@easter-eggs.com>
Sun, 14 Feb 2010 17:45:39 +0000 (18:45 +0100)
  - Added formIsSubmited() method and use it in setParamsFormPostData() method
  - Added redirectWhenOnlyOneResult() method
- View :
  - Used LSsearch::redirectWhenOnlyOneResult() to redirect the user on object view page when the search return only on result

public_html/includes/class/class.LSsearch.php
public_html/view.php

index e575a25..8f8703d 100644 (file)
@@ -496,6 +496,15 @@ class LSsearch {
   }
 
   /**
+   * Return true only if the form is submited
+   * 
+   * @retval boolean True only if the is submited
+   **/
+  private function formIsSubmited() {
+    return isset($_REQUEST['LSsearch_submit']);
+  }
+
+  /**
    * Define search parameters by reading Post Data ($_REQUEST)
    * 
    * @retval void
@@ -503,7 +512,7 @@ class LSsearch {
   public function setParamsFormPostData() {
     $data = $_REQUEST;
     
-    if (isset($data['LSsearch_submit'])) {
+    if (self::formIsSubmited()) {
       // Recursive 
       if (is_null($data['recursive'])) {
         $data['recursive']=false;
@@ -1020,6 +1029,18 @@ class LSsearch {
   }
   
   /**
+   * Redirect user to object view if the search have only one result
+   * 
+   * @retval boolean True only if user have been redirected
+   **/
+  function redirectWhenOnlyOneResult() {
+    if ($this -> total == 1 && $this -> result && self::formIsSubmited()) {
+      LSsession :: redirect('view.php?LSobject='.$this -> LSobject.'&dn='.$this -> result['list'][0]['dn']);
+    }
+    return;
+  }
+  
+  /**
    * Run the sort if it's enabled and if the result is not in the cache
    * 
    * @retval boolean True on success or false
index 0d06d32..97d4559 100644 (file)
@@ -137,6 +137,9 @@ if(LSsession :: startLSsession()) {
           $GLOBALS['Smarty']->assign('LSview_actions',$LSview_actions);
           
           $LSsearch -> run();
+          
+          $LSsearch -> redirectWhenOnlyOneResult();
+          
           $page=(int)$_REQUEST['page'];
           $page = $LSsearch -> getPage($page);
           $GLOBALS['Smarty']->assign('page',$page);