+
+ public function decode_search_query($search_query)
+ {
+ $search_query = urldecode($search_query);
+
+ $search_query = str_replace('_AST_', '*', $search_query);
+ $search_query = str_replace('_AND_', '+', $search_query);
+ $search_query = str_replace('_GT_', '>', $search_query);
+ $search_query = str_replace('_LT_', '<', $search_query);
+ $search_query = str_replace('_PO_', '(', $search_query);
+ $search_query = str_replace('_PC_', ')', $search_query);
+ $search_query = str_replace('_LOW_', '~', $search_query);
+ $search_query = str_replace('_QUO_', '"', $search_query);
+
+ return $search_query;
+ }
+
+ public function encode_search_query($search_query)
+ {
+ $search_query = str_replace('*', '_AST_', $search_query);
+ $search_query = str_replace('+', '_AND_', $search_query);
+ $search_query = str_replace('>', '_GT_', $search_query);
+ $search_query = str_replace('<', '_LT_', $search_query);
+ $search_query = str_replace('(', '_PO_', $search_query);
+ $search_query = str_replace(')', '_PC_', $search_query);
+ $search_query = str_replace('~', '_LOW_', $search_query);
+ $search_query = str_replace('"', '_QUO_', $search_query);
+
+ $search_query = urlencode($search_query);
+
+ return $search_query;
+ }
+
+ /**
+ * Return TRUE if it contains any special caracter from an advanced search
+ * query.
+ * @param string $search_query
+ * @return boolean
+ */
+ public function is_advanced_search_query($search_query)
+ {
+ return (preg_match('/\*|\+|\-|>|\<|\(|\)|~|"/', $search_query) == 0
+ ? FALSE : TRUE);
+ }