Plugin Directory

Changeset 466994


Ignore:
Timestamp:
11/24/2011 11:10:58 AM (14 years ago)
Author:
ekeller
Message:
  • OpenSearchServer client library upgrade.
  • Fixed a bug which add two blank lines in the top of the HTML pages.
Location:
opensearchserver-search/trunk
Files:
10 added
9 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • opensearchserver-search/trunk/index.php

    r396717 r466994  
    11<?php
    22/**
    3 Plugin Name: OpenSearchServer
    4 Plugin URI: http://wordpress.org/extend/plugins/opensearchserver-search/
    5 Description:This Plugin will integrate OpenSearchServer 1.2 as search engine for Wordpress.Go to <a href="plugins.php?page=opensearchserver/index.php">OpenSearchServer Settings</a> for OpenSearchServer Settings,
    6 Author: Naveen.A.N
    7 Requires at least: 3.0.0
    8 Tested up to: 3.1.3
    9 Version:1.0
    10 */
    11 require 'OSS_API.class.php';
    12 require 'misc.lib.php';
    13 require 'OSS_IndexDocument.class.php';
    14 require 'OSS_Results.class.php';
    15 require 'OSS_Paging.class.php';
    16 require 'OSS_Search.class.php';
    17 require 'OSS_SearchTemplate.class.php';
    18 require 'oss_delete.class.php';
     3 Plugin Name: OpenSearchServer
     4 Plugin URI: http://wordpress.org/extend/plugins/opensearchserver-search/
     5 Description:This Plugin will integrate OpenSearchServer 1.2 as search engine for Wordpress.Go to <a href="plugins.php?page=opensearchserver/index.php">OpenSearchServer Settings</a> for OpenSearchServer Settings,
     6 Author: Naveen.A.N
     7 Requires at least: 3.0.0
     8 Tested up to: 3.1.3
     9 Version:1.0.4
     10 */
     11require 'lib/oss_api.class.php';
     12require 'lib/oss_misc.lib.php';
     13require 'lib/oss_indexdocument.class.php';
     14require 'lib/oss_results.class.php';
     15require 'lib/oss_paging.class.php';
     16require 'lib/oss_search.class.php';
     17require 'lib/oss_searchtemplate.class.php';
     18require 'lib/oss_delete.class.php';
    1919require 'search_result.php';
     20
    2021function opensearchserver_install() {
    21  global $wpdb;
    22    $table_name =$wpdb->prefix ."opensearchserver";
    23    $sql ='
     22  global $wpdb;
     23  $table_name =$wpdb->prefix ."opensearchserver";
     24  $sql ='
    2425        CREATE TABLE IF NOT EXISTS ' . $table_name . ' (
    2526          `serverurl` varchar(255) NOT NULL,
     
    2829          `key` varchar(255) NOT NULL,
    2930          `last_indexed` varchar(255) NOT NULL
    30          
     31
    3132        ) ENGINE=InnoDB DEFAULT CHARSET=utf8;';
    32     require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    33     dbDelta($sql);
    34     add_option("opensearchserver_db_version",'1.2');
    35 }
    36  function opensearchserver_form($form) {
    37     $form = '<form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" >
     33  require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
     34  dbDelta($sql);
     35  add_option("opensearchserver_db_version",'1.2');
     36}
     37
     38function opensearchserver_form($form) {
     39  $form = '<form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" >
    3840    <div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label>
    3941    <input type="text" value="' . get_search_query() . '" name="s" id="s" />
     
    4143    </div>
    4244    </form>';
    43     return $form;
    44 }
    45 function configure_OSS($url,$indexname,$username,$key)
    46 {
    47               $ossAPI = new OSS_API($url);
    48               $ossAPI->credential($username,$key);
    49               $ossAPI->createIndex($indexname);
    50          
    51     return true;
    52 }
    53 function setFields_OSS($url,$indexname,$username,$key)
    54 {
    55              
    56               $ossAPI = new OSS_API($url,$indexname);
    57               $ossAPI->credential($username,$key);
    58               $ossAPI->setField('id','','NO','YES','YES','','NO','YES');
    59               $ossAPI->setField('type','','NO','YES','YES','','NO','NO');
    60               $ossAPI->setField('url','','NO','YES','YES','','NO','NO');
    61               $ossAPI->setField('title','TextAnalyzer','compress','YES','positions_offsets','','NO','NO');
    62               $ossAPI->setField('content','TextAnalyzer','compress','YES','positions_offsets','','YES','NO');
    63               $ossAPI->setField('timestamp','','NO','YES','YES','','NO','NO');
    64               $ossAPI->setField('user_name','TextAnalyzer','compress','YES','positions_offsets','','NO','NO');
    65               $ossAPI->setField('user_email','TextAnalyzer','compress','YES','positions_offsets','','NO','NO');
    66               $ossAPI->setField('user_url','','NO','YES','YES','','NO','NO');
    67               $searchTemplate=new OSS_SearchTemplate($url,$indexname);
    68               $searchTemplate->credential($username,$key);
    69               $searchTemplate->createSearchTemplate("search",'
     45  return $form;
     46}
     47
     48function configure_OSS($url,$indexname,$username,$key) {
     49  $ossAPI = new OSSAPI($url);
     50  $ossAPI->credential($username,$key);
     51  if (!$ossAPI->isIndexAvailable($indexname)) {
     52    $ossAPI->createIndex($indexname);
     53  }
     54
     55  return true;
     56}
     57
     58function setFields_OSS($url,$indexname,$username,$key) {
     59  $ossAPI = new OSSAPI($url,$indexname);
     60  $ossAPI->credential($username,$key);
     61  if (!$ossAPI->isIndexAvailable($indexname)) {
     62    $ossAPI->setField('id','','NO','YES','YES','','NO','YES');
     63    $ossAPI->setField('type','','NO','YES','YES','','NO','NO');
     64    $ossAPI->setField('url','','NO','YES','YES','','NO','NO');
     65    $ossAPI->setField('title','TextAnalyzer','compress','YES','positions_offsets','','NO','NO');
     66    $ossAPI->setField('content','TextAnalyzer','compress','YES','positions_offsets','','YES','NO');
     67    $ossAPI->setField('timestamp','','NO','YES','YES','','NO','NO');
     68    $ossAPI->setField('user_name','TextAnalyzer','compress','YES','positions_offsets','','NO','NO');
     69    $ossAPI->setField('user_email','TextAnalyzer','compress','YES','positions_offsets','','NO','NO');
     70    $ossAPI->setField('user_url','','NO','YES','YES','','NO','NO');
     71    $searchTemplate=new OSSSearchTemplate($url,$indexname);
     72    $searchTemplate->credential($username,$key);
     73    $searchTemplate->createSearchTemplate("search",'
    7074                    title:($$)^10 OR title:("$$")^10
    7175                            OR
     
    7579                            OR
    7680                    user_email:($$)^10 OR user_email:("$$")^10
    77                    
    78            
     81
     82
    7983             ',"AND","10","2","ENGLISH");
    80  
    81                $searchTemplate->setSnippetField("search","title");
    82                $searchTemplate->setSnippetField("search","content");
    83                $searchTemplate->setReturnField("search","url");
    84                $searchTemplate->setReturnField("search","user_url");
    85                $searchTemplate->setReturnField("search","type");
    86                $searchTemplate->setSnippetField("search","user_name");
    87                $searchTemplate->setSnippetField("search","user_email");
    88            
    89 }
    90 function delete_document($serverurl,$indexname,$username,$password,$query)
    91 {
    92 
    93         $deleteAPI = new oss_delete($serverurl,$indexname);
    94         $deleteAPI->credential($username,$password);
    95         $deleteAPI->delete($query);
    96 }
    97 function reindex_site($id,$type)
    98 {
    99        
    100         global $wpdb;
    101         $table_name =$wpdb->prefix ."opensearchserver";
    102         $table_name_posts =$wpdb->prefix ."posts";
    103         $table_name_users =$wpdb->prefix ."users";
    104         $result = $wpdb->get_results('SELECT * FROM '.$table_name);
    105        
    106         $ossEnginePath  = configRequestValue('ossEnginePath', $result[0]->serverurl, 'engineURL');
    107         $ossEngineConnectTimeOut = configRequestValue('ossEngineConnectTimeOut', 5, 'engineConnectTimeOut');
    108         $ossEngineIndex = configRequestValue('ossEngineIndex', $result[0]->indexname, 'engineIndex');
    109    
    110         if($id)
    111         {
    112                 $delete='id:'.$type.'_'.$id;
    113                 delete_document($result[0]->serverurl,$result[0]->indexname,$result[0]->username,$result[0]->key,$delete);
    114                 $sql='SELECT * FROM `'.$table_name_posts.'` WHERE `post_status` LIKE '."'".'publish'."'" .' AND `ID` ='.$id;
    115         }else
    116         {
    117             delete_document($result[0]->serverurl,$result[0]->indexname,$result[0]->username,$result[0]->key,'*:*');
    118             $sql='SELECT * FROM `'.$table_name_posts.'` WHERE `post_status` LIKE '."'".'publish'."'";
    119         }
    120         $result_posts = $wpdb->get_results($sql);
    121         $index = new OSS_IndexDocument();
    122         $lang= substr(get_locale(), 0, 2);
    123        
    124         foreach($result_posts as $posts)
    125         {
    126                                 $result_users = $wpdb->get_results('SELECT user_nicename,user_email,user_url FROM `'.$table_name_users.'` WHERE `ID` = '.$posts->post_author);
    127                                 $document = $index->newDocument($lang);
    128                                 $document->newField('id', $posts->post_type.'_'.$posts->ID);
    129                                 $document->newField('type', strip_tags($posts->post_type));
    130                                 $document->newField('title', strip_tags($posts->post_title));
    131                                 $document->newField('content', strip_tags($posts->post_content));
    132                                 $document->newField('url', $posts->guid);
    133                                 $document->newField('timestamp', $posts->post_date_gmt);
    134                                 $document->newField('user_name',$result_users[0]->user_nicename );
    135                                 $document->newField('user_email',$result_users[0]->user_email );
    136                                 $document->newField('user_url',$result_users[0]->user_url);
    137                                 $server = new OSS_API($ossEnginePath, $ossEngineIndex);
    138                                 $server->credential($result[0]->username,$result[0]->key);
    139                             if ($server->update($index,$ossEngineIndex) === false) {
    140                                 $errors[] = 'failedToUpdate';
    141                              }
    142                                 $server->optimize();
    143         }
    144        
    145        
    146 }
    147 function admin_page()
    148 {
    149         global $wpdb;
    150         $table_name =$wpdb->prefix ."opensearchserver";
    151         echo '<div class="wrap"><h2> OpenSearchServer Settings</h2>';
    152          if($_POST['action'] == "Create-index/Save")
    153         {
    154             $wpdb->query('TRUNCATE TABLE `wp_opensearchserver');
    155            
    156             $delay=$_POST['delay'];
    157             $username=$_POST['username'];
    158             $key=$_POST['key'];
    159             $serverurl=$_POST['serverurl'];
    160             $indexname=$_POST['indexname'];
    161             $last_index=date('YmdHis', time());
    162            
    163             $rows_affected = $wpdb->insert( $table_name, array( 'serverurl' =>$serverurl, 'indexname' => $indexname, 'username' => $username, 'key' => $key, 'last_indexed' => $last_index ) );
    164             configure_OSS($serverurl,$indexname,$username,$key);
    165             setFields_OSS($serverurl,$indexname,$username,$key);
    166             echo '<h3 style="color:#3366FF">The Preference saved Successfully.</h3>';
    167         }
    168             if($_POST['action'] == "Reindex-Site")
    169             {
    170                 reindex_site('','');
    171                 echo '<h3 style="color:#3366FF">Re-index finshed Successfully.</h3>';
    172             }
    173         $result = $wpdb->get_results('SELECT * FROM '.$table_name);
    174        
    175         echo '<form id="admin" name="admin" method="post" action="">
     84
     85    $searchTemplate->setSnippetField("search","title");
     86    $searchTemplate->setSnippetField("search","content");
     87    $searchTemplate->setReturnField("search","url");
     88    $searchTemplate->setReturnField("search","user_url");
     89    $searchTemplate->setReturnField("search","type");
     90    $searchTemplate->setSnippetField("search","user_name");
     91    $searchTemplate->setSnippetField("search","user_email");
     92  }
     93}
     94
     95function delete_document($serverurl,$indexname,$username,$password,$query) {
     96  $deleteAPI = new OssDelete($serverurl,$indexname);
     97  $deleteAPI->credential($username,$password);
     98  $deleteAPI->delete($query);
     99}
     100
     101function reindex_site($id,$type) {
     102  global $wpdb;
     103  $table_name =$wpdb->prefix ."opensearchserver";
     104  $table_name_posts =$wpdb->prefix ."posts";
     105  $table_name_users =$wpdb->prefix ."users";
     106  $result = $wpdb->get_results('SELECT * FROM '.$table_name);
     107  $ossEnginePath  = configRequestValue('ossEnginePath', $result[0]->serverurl, 'engineURL');
     108  $ossEngineConnectTimeOut = configRequestValue('ossEngineConnectTimeOut', 5, 'engineConnectTimeOut');
     109  $ossEngineIndex = configRequestValue('ossEngineIndex', $result[0]->indexname, 'engineIndex');
     110
     111  if($id)   {
     112    $delete='id:'.$type.'_'.$id;
     113    delete_document($result[0]->serverurl,$result[0]->indexname,$result[0]->username,$result[0]->key,$delete);
     114    $sql='SELECT * FROM `'.$table_name_posts.'` WHERE `post_status` LIKE '."'".'publish'."'" .' AND `ID` ='.$id;
     115  }else {
     116    delete_document($result[0]->serverurl,$result[0]->indexname,$result[0]->username,$result[0]->key,'*:*');
     117    $sql='SELECT * FROM `'.$table_name_posts.'` WHERE `post_status` LIKE '."'".'publish'."'";
     118  }
     119  $result_posts = $wpdb->get_results($sql);
     120  $index = new OSSIndexDocument();
     121  $lang= substr(get_locale(), 0, 2);
     122  foreach($result_posts as $posts){
     123    $result_users = $wpdb->get_results('SELECT user_nicename,user_email,user_url FROM `'.$table_name_users.'` WHERE `ID` = '.$posts->post_author);
     124    $document = $index->newDocument($lang);
     125    $document->newField('id', $posts->post_type.'_'.$posts->ID);
     126    $document->newField('type', strip_tags($posts->post_type));
     127    $document->newField('title', strip_tags($posts->post_title));
     128    $document->newField('content', strip_tags($posts->post_content));
     129    $document->newField('url', $posts->guid);
     130    $document->newField('timestamp', $posts->post_date_gmt);
     131    $document->newField('user_name',$result_users[0]->user_nicename );
     132    $document->newField('user_email',$result_users[0]->user_email );
     133    $document->newField('user_url',$result_users[0]->user_url);
     134    $server = new OSSAPI($ossEnginePath, $ossEngineIndex);
     135    $server->credential($result[0]->username,$result[0]->key);
     136    if ($server->update($index,$ossEngineIndex) === false) {
     137      $errors[] = 'failedToUpdate';
     138    }
     139    $server->optimize();
     140  }
     141}
     142
     143function admin_page() {
     144  global $wpdb;
     145  $table_name =$wpdb->prefix ."opensearchserver";
     146  echo '<div class="wrap"><h2> OpenSearchServer Settings</h2>';
     147  if($_POST['action'] == "Create-index/Save") {
     148    $wpdb->query('TRUNCATE TABLE `wp_opensearchserver');
     149    $delay=$_POST['delay'];
     150    $username=$_POST['username'];
     151    $key=$_POST['key'];
     152    $serverurl=$_POST['serverurl'];
     153    $indexname=$_POST['indexname'];
     154    $last_index=date('YmdHis', time());
     155    $rows_affected = $wpdb->insert( $table_name, array( 'serverurl' =>$serverurl, 'indexname' => $indexname, 'username' => $username, 'key' => $key, 'last_indexed' => $last_index ) );
     156    configure_OSS($serverurl,$indexname,$username,$key);
     157    setFields_OSS($serverurl,$indexname,$username,$key);
     158    echo '<h3 style="color:#3366FF">The Preference saved Successfully.</h3>';
     159  }
     160  if($_POST['action'] == "Reindex-Site") {
     161    reindex_site('','');
     162    echo '<h3 style="color:#3366FF">Re-index finshed Successfully.</h3>';
     163  }
     164  $result = $wpdb->get_results('SELECT * FROM '.$table_name);
     165
     166  echo '<form id="admin" name="admin" method="post" action="">
    176167                      <input type="hidden" name="opensearchserver" value="true"/>
    177                      
     168
    178169                     OpenSearchServer URL: <br />
    179170                      <input type="text" name="serverurl" id="serverurl" size="50" value="'.$result[0]->serverurl.'"/>
    180                  
    181171                      <br />
    182172                       IndexName :<br />
     
    192182                      <input type="submit" name="action" id="action" value="Create-index/Save" />
    193183                      <input type="submit" name="action" id="action" value="Reindex-Site" />
    194                      
    195184                    </form>';
    196         echo '</div>';
    197 
    198 }
    199 function  opensearchserver_search()
    200 {
    201         if ( stripos($_SERVER['REQUEST_URI'], '/?s=') === FALSE && stripos($_SERVER['REQUEST_URI'], '/search/') === FALSE)
    202         {
    203             return;
    204         }
    205         get_header();
    206         echo '
     185  echo '</div>';
     186
     187}
     188
     189function  opensearchserver_search() {
     190  if ( stripos($_SERVER['REQUEST_URI'], '/?s=') === FALSE && stripos($_SERVER['REQUEST_URI'], '/search/') === FALSE)    {
     191    return;
     192  }
     193  get_header();
     194  echo '
    207195            <form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" >
    208196                <div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label>
     
    211199                </div>
    212200            </form>';
    213         echo '<div>';
    214    
    215         echo get_sidebar();
    216         echo get_search_result_output(get_search_query());
    217         get_footer();
    218         exit;
    219 }
    220 function opensearchserver_admin_actions() { 
    221     add_submenu_page('plugins.php', 'OpenSearchServer Settings', 'OpenSearchServer', 10, __FILE__, 'admin_page');
    222 
     201  echo '<div>';
     202
     203  echo get_sidebar();
     204  echo get_search_result_output(get_search_query());
     205  get_footer();
     206  exit;
     207}
     208
     209function opensearchserver_admin_actions() {
     210  add_submenu_page('plugins.php', 'OpenSearchServer Settings', 'OpenSearchServer', 'edit_plugins', __FILE__, 'admin_page');
     211}
     212
    223213function opensearchserver_update_db_check() {
    224       if (get_site_option('opensearchserver_db_version') != '1.2') {
    225         opensearchserver_install();
    226     }
     214  if (get_site_option('opensearchserver_db_version') != '1.2') {
     215    opensearchserver_install();
     216  }
    227217}
    228218
     
    230220
    231221  if ($post->post_type == 'post' || $post->post_type == 'page'
    232       && $post->post_status == 'publish') {
    233   reindex_site($post->ID,$post->post_type);
    234   }
    235 else
    236     {
    237             global $wpdb;
    238             $table_name =$wpdb->prefix ."opensearchserver";
    239             $result = $wpdb->get_results('SELECT * FROM '.$table_name);
    240             $delete='id:'.$post->post_type.'_'.$post->ID;
    241             delete_document($result[0]->serverurl,$result[0]->indexname,$result[0]->username,$result[0]->key,$delete);
    242     }
    243 }
     222  && $post->post_status == 'publish') {
     223    reindex_site($post->ID,$post->post_type);
     224  }
     225  else {
     226    global $wpdb;
     227    $table_name =$wpdb->prefix ."opensearchserver";
     228    $result = $wpdb->get_results('SELECT * FROM '.$table_name);
     229    $delete='id:'.$post->post_type.'_'.$post->ID;
     230    delete_document($result[0]->serverurl,$result[0]->indexname,$result[0]->username,$result[0]->key,$delete);
     231  }
     232}
     233register_activation_hook(__FILE__,'opensearchserver_install');
     234register_deactivation_hook( __FILE__, 'opensearchserver_uninstall');
    244235add_action('save_post','do_while_posting',10,2);
    245 add_action('plugins_loaded', 'opensearchserver_update_db_check');
    246 add_action('admin_menu', 'opensearchserver_admin_actions'); 
    247 add_action('template_redirect', 'opensearchserver_search'); 
     236add_action('admin_menu', 'opensearchserver_admin_actions');
     237add_action('template_redirect', 'opensearchserver_search');
    248238add_filter( 'get_search_form', 'opensearchserver_form' );
    249239?>
  • opensearchserver-search/trunk/readme.txt

    r396722 r466994  
    44Requires at least: 3.0.1
    55Tested up to: 3.1.3
    6 Stable tag: 1.0.3
     6Stable tag: 1.0.4
    77License: GPLv2 or later
    88
     
    2424
    2525    * WordPress 3.0.0 or higher
    26     * OpenSearchServer 1.2.1 or higher
    2726
    2827= Installing the plugin =
     
    57562. Search provided by OpenSearchServer with facet and filter.
    5857
     58= 1.0.4 =
     59* OpenSearchServer client library upgrade.
     60* Fixed a bug which add two blank lines in the top of the HTML page.
    5961
    6062= 1.0.3 =
  • opensearchserver-search/trunk/search_result.php

    r396717 r466994  
    11<?php
    22function get_search_result_output($query) {
    3         if($query=='')
    4         {
    5         return;
    6         }
     3  if($query==''){
     4    return;
     5  }
     6  $result=getSearchResult($query);
     7  if (isset($result) && $result instanceof SimpleXMLElement) {
     8    $ossResults = new OSSResults($result);
     9    if($ossResults->getResultFound()>0)
     10    {
     11      $resultTime = (float)$result->result['time'] / 1000;
    712
    8         $result=getSearchResult($query);
    9      
    10         if (isset($result) && $result instanceof SimpleXMLElement) {
    11         $ossResults = new OSS_Results($result);
    12         if($ossResults->getResultFound()>0)
    13         {
    14         $resultTime = (float)$result->result['time'] / 1000;
    15              
    16         $cont.=$ossResults->getResultFound().' documents found ('.$resultTime.' seconds)';
    17          
    18         $max = ($ossResults->getResultStart() + $ossResults->getResultRows() > $ossResults->getResultFound()) ? $ossResults->getResultFound() : $ossResults->getResultStart() + $ossResults->getResultRows();
    19         $cont.='<br/><br/>';
    20         $cont .='<table border="0" style="border:none">
     13      $cont=$ossResults->getResultFound().' documents found ('.$resultTime.' seconds)';
     14
     15      $max = ($ossResults->getResultStart() + $ossResults->getResultRows() > $ossResults->getResultFound()) ? $ossResults->getResultFound() : $ossResults->getResultStart() + $ossResults->getResultRows();
     16      $cont.='<br/><br/>';
     17      $cont .='<table border="0" style="border:none">
    2118    <tr>
    2219         <td width="120px" height="5%" style="border:none">
    2320            <div>
    2421            ';
    25                 $cont.='<a href=?s='.$query.'&fq=All>ALL</a><br/>';
    26                 foreach ($ossResults->getFacet('type') as $values)
    27                 {
    28                     $value = $values['name'];
    29                     $cont.='<a href=?s='.$query.'&fq='.$value.'>'.ucfirst($value).'('.$values.')'.'</a><br/>';
    30                    
    31                 }   
    32                        
    33     $cont .=' </div>        </td>
     22      $cont.='<a href=?s='.$query.'&fq=All>ALL</a><br/>';
     23      foreach ($ossResults->getFacet('type') as $values)
     24      {
     25        $value = $values['name'];
     26        $cont.='<a href=?s='.$query.'&fq='.$value.'>'.ucfirst($value).'('.$values.')'.'</a><br/>';
     27
     28      }
     29
     30      $cont .=' </div>        </td>
    3431        <td rowspan="2" style="border:none">
    3532            <div>';
    36    
    37         for ($i = $ossResults->getResultStart(); $i < $max; $i++) {
    38             $category    = stripslashes($ossResults->getField($i, 'type', true));
    39              
    40          
    41      
    42                 $title   = stripslashes($ossResults->getField($i, 'title', true));
    43                 $content = stripslashes($ossResults->getField($i, 'content', true));
    44                 $user = stripslashes($ossResults->getField($i, 'user_name', true));
    45                 $user_url = stripslashes($ossResults->getField($i, 'user_url', true));
    46                 $type = stripslashes($ossResults->getField($i, 'type', true));
    47                 $url = stripslashes($ossResults->getField($i, 'url', false));
    48                 $cont.='<a href="'.$url.'">'.$title.'</a><br/>';
    49                 $cont.=$content.'<br/>';
    50                 $cont.='<a href='.$url.'>'.$url.'</a>&nbsp;&nbsp;&nbsp;&nbsp;'.$type.' by <a href='.$user_url.'>'.$user.'</a><br/><br/>';
    51                
    52         }
    53             $cont.='<div align="right">';
    54             $cont.='<img src="http://www.open-search-server.com/images/oss_logo_62x60.png" /><br/>';
    55             $cont.='<a href="http://www.open-search-server.com/">Enterprise Search Made Yours</a>';
    56             $cont.='</div>';
    57             $ossPaging = new OSS_Paging($result, 'r', 'p');
    58             $pagingArray = array();
    59             if (isset($ossPaging) && $ossPaging->getResultTotal() >= 1) {
    60            
    61                if ($ossPaging->getResultLow() > 0) {
    62                 $label = 'First';
    63                 $url = $ossPaging->getPageBaseURI().'1';
    64                 $pagingArray[] = array('label' => $label, 'url' => $url);
    65                }
    66                if ($ossPaging->getResultPrev() < $ossPaging->getResultCurrentPage()) {
    67                 $label = 'Previous';
    68                 $url = $ossPaging->getPageBaseURI().($ossPaging->getResultPrev() + 1);
    69                 $pagingArray[] = array('label' => $label, 'url' => $url);
    70                }
    71                for ($i = $ossPaging->getResultLow(); $i < $ossPaging->getResultHigh(); $i++) {
    72                 if ($i == $ossPaging->getResultCurrentPage()) {
    73                  $label = $i + 1;
    74                  $url = null;
    75                 } else {
    76                  $label = $i + 1;
    77                  $url = $ossPaging->getPageBaseURI().$label;
    78                  }
    79                 $pagingArray[] = array('label' => $label, 'url' => $url);
    80                
    81                }
    82                if ($ossPaging->getResultNext() > $ossPaging->getResultCurrentPage()) {
    83                 $label = 'Next';
    84                 $url = $ossPaging->getPageBaseURI().($ossPaging->getResultNext() + 1);
    85                 $pagingArray[] = array('label' => $label, 'url' => $url);
    8633
    87                }
    88               }
    89              
    90               foreach($pagingArray as $page)
    91               {
    92                 $cont.='<a href='.$page['url'].'>'.$page['label'].'</a>'.'&nbsp;&nbsp;&nbsp;';
    93               }
    94         }
    95         }
    96             if($ossResults->getResultFound()<=0)
    97             {
    98             $cont.="No result found for keyword ".$query ;
    99             }
    100        
    101        
    102            $cont.='
     34      for ($i = $ossResults->getResultStart(); $i < $max; $i++) {
     35        $category    = stripslashes($ossResults->getField($i, 'type', true));
     36
     37
     38
     39        $title   = stripslashes($ossResults->getField($i, 'title', true));
     40        $content = stripslashes($ossResults->getField($i, 'content', true));
     41        $user = stripslashes($ossResults->getField($i, 'user_name', true));
     42        $user_url = stripslashes($ossResults->getField($i, 'user_url', true));
     43        $type = stripslashes($ossResults->getField($i, 'type', true));
     44        $url = stripslashes($ossResults->getField($i, 'url', false));
     45        $cont.='<a href="'.$url.'">'.$title.'</a><br/>';
     46        $cont.=$content.'<br/>';
     47        $cont.='<a href='.$url.'>'.$url.'</a>&nbsp;&nbsp;&nbsp;&nbsp;';
     48        if($type && $user ) {
     49          $cont.=$type.' by <a href='.$user_url.'>'.$user.'</a><br/><br/>';
     50        }
     51        else
     52        {$cont.="<br/><br/>";
     53        }
     54
     55      }
     56      $ossPaging = new OSSPaging($result, 'r', 'pq');
     57      $pagingArray = array();
     58      if (isset($ossPaging) && $ossPaging->getResultTotal() >= 1) {
     59
     60        if ($ossPaging->getResultLow() > 0) {
     61          $label = 'First';
     62          $url = $ossPaging->getPageBaseURI().'1';
     63          $pagingArray[] = array('label' => $label, 'url' => $url);
     64        }
     65        if ($ossPaging->getResultPrev() < $ossPaging->getResultCurrentPage()) {
     66          $label = 'Previous';
     67          $url = $ossPaging->getPageBaseURI().($ossPaging->getResultPrev() + 1);
     68          $pagingArray[] = array('label' => $label, 'url' => $url);
     69        }
     70        for ($i = $ossPaging->getResultLow(); $i < $ossPaging->getResultHigh(); $i++) {
     71          if ($i == $ossPaging->getResultCurrentPage()) {
     72            $label = $i + 1;
     73            $url = null;
     74          } else {
     75            $label = $i + 1;
     76            $url = $ossPaging->getPageBaseURI().$label;
     77          }
     78          $pagingArray[] = array('label' => $label, 'url' => $url);
     79
     80        }
     81        if ($ossPaging->getResultNext() > $ossPaging->getResultCurrentPage()) {
     82          $label = 'Next';
     83          $url = $ossPaging->getPageBaseURI().($ossPaging->getResultNext() + 1);
     84          $pagingArray[] = array('label' => $label, 'url' => $url);
     85
     86        }
     87      }
     88
     89      foreach($pagingArray as $page)
     90      {
     91        $cont.='<a href='.$page['url'].'>'.$page['label'].'</a>'.'&nbsp;&nbsp;&nbsp;';
     92      }
     93
     94      $cont.='<div align="right">';
     95      $cont.='<img src="http://www.open-search-server.com/images/oss_logo_62x60.png" /><br/>';
     96      $cont.='<a href="http://www.open-search-server.com/">Enterprise Search Made Yours</a>';
     97      $cont.='</div>';
     98    }
     99  }
     100  if($ossResults->getResultFound()<=0) {
     101    $cont ="No result found for keyword ".$query ;
     102    $cont.='<div align="right">';
     103    $cont.='<img src="http://www.open-search-server.com/images/oss_logo_62x60.png" /><br/>';
     104    $cont.='<a href="http://www.open-search-server.com/">Enterprise Search Made Yours</a>';
     105    $cont.='</div>';
     106  }
     107  $cont.='
    103108               </div>      </td>
    104109    </tr>
     
    107112    </tr>
    108113</table>';
    109      
    110        
    111  return $cont;
    112  unset($cont);
     114
     115
     116  return $cont;
     117  unset($cont);
    113118}
    114  function getSearchResult($query)
    115  {
    116         global $wpdb;
    117         $table_name =$wpdb->prefix ."opensearchserver";
    118      if($query)
    119      {
    120             $result = $wpdb->get_results('SELECT * FROM '.$table_name);
    121             $start = isset($_REQUEST['p']) ? $_REQUEST['p'] : null;
    122             $start = isset($start) ? max(0, $start - 1) * 10 : 0;
    123             $escapechars = array('\\', '^', '~', ':', '(', ')', '{', '}', '[', ']' , '&&', '||', '!', '*', '?');
    124             foreach ($escapechars as $escchar) $query = str_replace($escchar, ' ', $query);
    125             $query = trim($query);
    126             $search = new OSS_Search($result[0]->serverurl, $result[0]->indexname, 10, $start);
    127             $search->credential($result[0]->username, $result[0]->key);
    128             $search->facet('type',1);
    129             $filter=$_REQUEST['fq'];
    130             if($filter)
    131             {
    132                 if($filter!='All')
    133                 {
    134                     $search->filter('type:'.$filter);
    135                 }
    136             }           
    137             $result = $search->query($query)->template('search')->execute(5);
    138            
    139        
    140     }
    141     return $result;
    142  }
    143  ?>
     119
     120function getSearchResult($query)
     121{
     122  global $wpdb;
     123  $table_name =$wpdb->prefix ."opensearchserver";
     124  if($query)
     125  {
     126    $result = $wpdb->get_results('SELECT * FROM '.$table_name);
     127    $start = isset($_REQUEST['pq']) ? $_REQUEST['pq'] : null;
     128    $start = isset($start) ? max(0, $start - 1) * 10 : 0;
     129    $escapechars = array('\\', '^', '~', ':', '(', ')', '{', '}', '[', ']' , '&&', '||', '!', '*', '?');
     130    foreach ($escapechars as $escchar) $query = str_replace($escchar, ' ', $query);
     131    $query = trim($query);
     132    $search = new OSSSearch($result[0]->serverurl, $result[0]->indexname, 10, $start);
     133    $search->credential($result[0]->username, $result[0]->key);
     134    $search->facet('type',1);
     135    $filter=isset($_REQUEST['fq']) ? $_REQUEST['fq'] : null;
     136    if($filter)
     137    {
     138      if($filter!='All')
     139      {
     140        $search->filter('type:'.$filter);
     141      }
     142    }
     143    $result = $search->query($query)->template('search')->execute(5);
     144
     145
     146  }
     147  return $result;
     148}
     149?>
Note: See TracChangeset for help on using the changeset viewer.