Changeset 466994
- Timestamp:
- 11/24/2011 11:10:58 AM (14 years ago)
- Location:
- opensearchserver-search/trunk
- Files:
-
- 10 added
- 9 deleted
- 3 edited
-
OSS_API.class.php (deleted)
-
OSS_Exceptions.class.php (deleted)
-
OSS_IndexDocument.class.php (deleted)
-
OSS_Paging.class.php (deleted)
-
OSS_Results.class.php (deleted)
-
OSS_Search.class.php (deleted)
-
OSS_SearchTemplate.class.php (deleted)
-
index.php (modified) (7 diffs)
-
lib (added)
-
lib/oss_api.class.php (added)
-
lib/oss_delete.class.php (added)
-
lib/oss_exception.class.php (added)
-
lib/oss_indexdocument.class.php (added)
-
lib/oss_misc.lib.php (added)
-
lib/oss_paging.class.php (added)
-
lib/oss_results.class.php (added)
-
lib/oss_search.class.php (added)
-
lib/oss_searchtemplate.class.php (added)
-
misc.lib.php (deleted)
-
oss_delete.class.php (deleted)
-
readme.txt (modified) (3 diffs)
-
search_result.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
opensearchserver-search/trunk/index.php
r396717 r466994 1 1 <?php 2 2 /** 3 Plugin Name: OpenSearchServer4 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.N7 Requires at least: 3.0.08 Tested up to: 3.1.39 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 */ 11 require 'lib/oss_api.class.php'; 12 require 'lib/oss_misc.lib.php'; 13 require 'lib/oss_indexdocument.class.php'; 14 require 'lib/oss_results.class.php'; 15 require 'lib/oss_paging.class.php'; 16 require 'lib/oss_search.class.php'; 17 require 'lib/oss_searchtemplate.class.php'; 18 require 'lib/oss_delete.class.php'; 19 19 require 'search_result.php'; 20 20 21 function opensearchserver_install() { 21 global $wpdb;22 $table_name =$wpdb->prefix ."opensearchserver";23 $sql ='22 global $wpdb; 23 $table_name =$wpdb->prefix ."opensearchserver"; 24 $sql =' 24 25 CREATE TABLE IF NOT EXISTS ' . $table_name . ' ( 25 26 `serverurl` varchar(255) NOT NULL, … … 28 29 `key` varchar(255) NOT NULL, 29 30 `last_indexed` varchar(255) NOT NULL 30 31 31 32 ) 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 38 function opensearchserver_form($form) { 39 $form = '<form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" > 38 40 <div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label> 39 41 <input type="text" value="' . get_search_query() . '" name="s" id="s" /> … … 41 43 </div> 42 44 </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 48 function 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 58 function 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",' 70 74 title:($$)^10 OR title:("$$")^10 71 75 OR … … 75 79 OR 76 80 user_email:($$)^10 OR user_email:("$$")^10 77 78 81 82 79 83 ',"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 95 function delete_document($serverurl,$indexname,$username,$password,$query) { 96 $deleteAPI = new OssDelete($serverurl,$indexname); 97 $deleteAPI->credential($username,$password); 98 $deleteAPI->delete($query); 99 } 100 101 function 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 143 function 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=""> 176 167 <input type="hidden" name="opensearchserver" value="true"/> 177 168 178 169 OpenSearchServer URL: <br /> 179 170 <input type="text" name="serverurl" id="serverurl" size="50" value="'.$result[0]->serverurl.'"/> 180 181 171 <br /> 182 172 IndexName :<br /> … … 192 182 <input type="submit" name="action" id="action" value="Create-index/Save" /> 193 183 <input type="submit" name="action" id="action" value="Reindex-Site" /> 194 195 184 </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 189 function opensearchserver_search() { 190 if ( stripos($_SERVER['REQUEST_URI'], '/?s=') === FALSE && stripos($_SERVER['REQUEST_URI'], '/search/') === FALSE) { 191 return; 192 } 193 get_header(); 194 echo ' 207 195 <form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" > 208 196 <div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label> … … 211 199 </div> 212 200 </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 209 function opensearchserver_admin_actions() { 210 add_submenu_page('plugins.php', 'OpenSearchServer Settings', 'OpenSearchServer', 'edit_plugins', __FILE__, 'admin_page'); 211 } 212 223 213 function 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 } 227 217 } 228 218 … … 230 220 231 221 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 } 233 register_activation_hook(__FILE__,'opensearchserver_install'); 234 register_deactivation_hook( __FILE__, 'opensearchserver_uninstall'); 244 235 add_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'); 236 add_action('admin_menu', 'opensearchserver_admin_actions'); 237 add_action('template_redirect', 'opensearchserver_search'); 248 238 add_filter( 'get_search_form', 'opensearchserver_form' ); 249 239 ?> -
opensearchserver-search/trunk/readme.txt
r396722 r466994 4 4 Requires at least: 3.0.1 5 5 Tested up to: 3.1.3 6 Stable tag: 1.0. 36 Stable tag: 1.0.4 7 7 License: GPLv2 or later 8 8 … … 24 24 25 25 * WordPress 3.0.0 or higher 26 * OpenSearchServer 1.2.1 or higher27 26 28 27 = Installing the plugin = … … 57 56 2. Search provided by OpenSearchServer with facet and filter. 58 57 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. 59 61 60 62 = 1.0.3 = -
opensearchserver-search/trunk/search_result.php
r396717 r466994 1 1 <?php 2 2 function 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; 7 12 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"> 21 18 <tr> 22 19 <td width="120px" height="5%" style="border:none"> 23 20 <div> 24 21 '; 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> 34 31 <td rowspan="2" style="border:none"> 35 32 <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> '.$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);86 33 87 } 88 } 89 90 foreach($pagingArray as $page) 91 { 92 $cont.='<a href='.$page['url'].'>'.$page['label'].'</a>'.' '; 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> '; 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>'.' '; 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.=' 103 108 </div> </td> 104 109 </tr> … … 107 112 </tr> 108 113 </table>'; 109 110 111 return $cont;112 unset($cont);114 115 116 return $cont; 117 unset($cont); 113 118 } 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 120 function 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.