Ajax Search Lite - Version 4.5.5

Version Description

  • New menu: Compatibility Options
  • Compatibility allowing to force case sensitive, insensitive, UTF8 and UNICODE queries
  • Excerpt search fixed
  • CSS fixes, including a placeholder fix
  • A new escaping method, supporting more characters
Download this release

Release Info

Developer wpdreams
Plugin Icon 128x128 Ajax Search Lite
Version 4.5.5
Comparing to
See all releases

Code changes from version 4.5.4 to 4.5.5

ajax-search-lite.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Ajax Search Lite
4
  Plugin URI: http://wp-dreams.com
5
  Description: The lite version of the most powerful ajax powered search engine for WordPress.
6
- Version: 4.5.4
7
  Author: Ernest Marcinko
8
  Author URI: http://wp-dreams.com
9
  Text Domain: ajax-search-lite
@@ -19,9 +19,10 @@ define('ASL_INCLUDES_PATH', plugin_dir_path(__FILE__)."/includes/");
19
  define('ASL_TT_CACHE_PATH', plugin_dir_path(__FILE__)."/includes/cache/");
20
  define('ASL_DIR', 'ajax-search-lite');
21
  define('ASL_URL', plugin_dir_url(__FILE__));
22
- define('ASL_CURRENT_VERSION', 4540);
23
- define('ASL_CURR_VER_STRING', "4.5.4");
24
  define('ASL_DEBUG', 0);
 
25
 
26
  global $asl_admin_pages;
27
  global $asl_debug_data;
@@ -29,6 +30,7 @@ global $asl_debug_data;
29
  $asl_admin_pages = array(
30
  "ajax-search-lite/backend/settings.php",
31
  "ajax-search-lite/backend/analytics.php",
 
32
  "ajax-search-lite/backend/performance_options.php",
33
  "ajax-search-lite/backend/help_and_support.php"
34
  );
3
  Plugin Name: Ajax Search Lite
4
  Plugin URI: http://wp-dreams.com
5
  Description: The lite version of the most powerful ajax powered search engine for WordPress.
6
+ Version: 4.5.5
7
  Author: Ernest Marcinko
8
  Author URI: http://wp-dreams.com
9
  Text Domain: ajax-search-lite
19
  define('ASL_TT_CACHE_PATH', plugin_dir_path(__FILE__)."/includes/cache/");
20
  define('ASL_DIR', 'ajax-search-lite');
21
  define('ASL_URL', plugin_dir_url(__FILE__));
22
+ define('ASL_CURRENT_VERSION', 4550);
23
+ define('ASL_CURR_VER_STRING', "4.5.5");
24
  define('ASL_DEBUG', 0);
25
+ define('ASL_DEMO', get_option('wd_asl_demo', 0) );
26
 
27
  global $asl_admin_pages;
28
  global $asl_debug_data;
30
  $asl_admin_pages = array(
31
  "ajax-search-lite/backend/settings.php",
32
  "ajax-search-lite/backend/analytics.php",
33
+ "ajax-search-lite/backend/compatibility.php",
34
  "ajax-search-lite/backend/performance_options.php",
35
  "ajax-search-lite/backend/help_and_support.php"
36
  );
backend/compatibility.php ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* Prevent direct access */
3
+ defined('ABSPATH') or die("You can't access this file directly.");
4
+
5
+ $com_options = get_option('asl_compatibility');
6
+
7
+ if (ASL_DEMO) $_POST = null;
8
+ ?>
9
+
10
+ <div id="wpdreams" class='wpdreams wrap'>
11
+ <div class="wpdreams-box">
12
+
13
+ <?php ob_start(); ?>
14
+
15
+ <div tabid="1">
16
+ <fieldset>
17
+ <legend>Database Compatibility</legend>
18
+
19
+ <p class='infoMsg'>
20
+ If you are experiencing issues with accent(diacritic) or case sensitiveness, you can force the search to try these tweaks.<br>
21
+ <i>The search works according to your database collation settings</i>, so please be aware that <b>this is not an effective way</b> of fixing database collation issues.<br>
22
+ If you have case/diacritic issues then please read the <a href="http://dev.mysql.com/doc/refman/5.0/en/charset-syntax.html" target="_blank">MySql manual on collations</a> or consult a <b>database expert</b> - those issues should be treated on database level!
23
+ </p>
24
+ <div class="item">
25
+ <?php
26
+ $o = new wpdreamsCustomSelect("db_force_case", "Force case", array(
27
+ 'selects'=> array(
28
+ array('option' => 'None', 'value' => 'none'),
29
+ array('option' => 'Sensitivity', 'value' => 'sensitivity'),
30
+ array('option' => 'InSensitivity', 'value' => 'insensitivity')
31
+ ),
32
+ 'value'=>wpdreams_setval_or_getoption($com_options, 'db_force_case', 'asl_compatibility_def')
33
+ )
34
+ );
35
+ $params[$o->getName()] = $o->getData();
36
+ ?>
37
+ </div>
38
+ <div class="item">
39
+ <?php $o = new wpdreamsYesNo("db_force_unicode", "Force unicode search",
40
+ wpdreams_setval_or_getoption($com_options, 'db_force_unicode', 'asl_compatibility_def')
41
+ ); ?>
42
+ <p class='descMsg'>Will try to force unicode character conversion on the search phrase.</p>
43
+ </div>
44
+ <div class="item">
45
+ <?php $o = new wpdreamsYesNo("db_force_utf8_like", "Force utf8 on LIKE operations",
46
+ wpdreams_setval_or_getoption($com_options, 'db_force_utf8_like', 'asl_compatibility_def')
47
+ ); ?>
48
+ <p class='descMsg'>Will try to force utf8 conversion on all LIKE operations in the WHERE and HAVING clauses.</p>
49
+ </div>
50
+
51
+ </fieldset>
52
+ </div>
53
+
54
+ <?php $_r = ob_get_clean(); ?>
55
+
56
+
57
+ <?php
58
+
59
+ // Compatibility stuff
60
+ $updated = false;
61
+ if ( isset($_POST) && isset($_POST['asl_compatibility']) ) {
62
+ $values = array(
63
+ // CSS and JS
64
+ // Query options
65
+ "db_force_case" => $_POST['db_force_case'],
66
+ "db_force_unicode" => $_POST['db_force_unicode'],
67
+ "db_force_utf8_like" => $_POST['db_force_utf8_like']
68
+ );
69
+ update_option('asl_compatibility', $values);
70
+ $updated = true;
71
+ }
72
+
73
+ ?>
74
+
75
+ <div class='wpdreams-slider'>
76
+
77
+ <?php if ($updated): ?>
78
+ <div class='successMsg'>Search compatibility settings successfuly updated!</div><?php endif; ?>
79
+
80
+ <?php if (ASL_DEMO): ?>
81
+ <p class="infoMsg">DEMO MODE ENABLED - Please note, that these options are read-only</p>
82
+ <?php endif; ?>
83
+
84
+ <ul id="tabs" class='tabs'>
85
+ <li><a tabid="1" class='current multisite'>Database compatibility</a></li>
86
+ </ul>
87
+
88
+ <div id="content" class='tabscontent'>
89
+
90
+ <!-- Compatibility form -->
91
+ <form name='compatibility' method='post'>
92
+
93
+ <?php print $_r; ?>
94
+
95
+ <div class="item">
96
+ <input type='submit' class='submit' value='Save options'/>
97
+ </div>
98
+ <input type='hidden' name='asl_compatibility' value='1'/>
99
+ </form>
100
+
101
+ </div>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ <script>
106
+ // Simulate a click on the first element to initialize the tabs
107
+ jQuery(function ($) {
108
+ $('.tabs a[tabid=1]').click();
109
+ });
110
+
111
+ </script>
backend/settings/assets/tabs.js CHANGED
@@ -1,18 +1,48 @@
1
- (function($){
2
- $(document).ready(function() {
3
- $('.tabs a').click(function(e){
4
- e.preventDefault();
5
- var tid = $(this).attr('tabid');
6
- var tabsContent = $(this).parent().parent().next();
7
- tabsContent.children().each(function(){
8
- $(this).hide();
9
- if ($(this).attr('tabid')==tid) {
10
- $(this).fadeIn();
11
- }
12
- });
13
- $('a', $(this).parent().parent()).removeClass('current');
14
- $(this).addClass('current');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  });
16
-
17
- });
18
  })(jQuery)
1
+ (function ($) {
2
+ $(document).ready(function () {
3
+ $('.tabs a').click(function (e) {
4
+ e.preventDefault();
5
+ var tid = $(this).attr('tabid');
6
+ var tabsContent = $(this).parent().parent().next();
7
+
8
+ tabsContent.children().each(function () {
9
+
10
+ // Form nested tabs
11
+ if ($(this).is('form')) {
12
+
13
+ // Hackidy-hack. Yea, hide this form, later if this is the active one we show it..
14
+ // .. so the non-hidden content of the form is not present on other tabs
15
+ // .. whatever man, STOP QUESTIONING MY METHODS
16
+ $(this).hide();
17
+ $form = $(this);
18
+
19
+ // This is should be done with a recursive call, but meh...
20
+ $(this).children().each(function () {
21
+ // Only apply to nodes with the tabid attribute
22
+ if ($(this).is('[tabid]')) {
23
+ $(this).hide();
24
+ if ($(this).attr('tabid') == tid) {
25
+ $form.fadeIn();
26
+ $(this).fadeIn();
27
+ }
28
+ }
29
+ });
30
+ return;
31
+ }
32
+
33
+ // Only apply to nodes with the tabid attribute
34
+ if ($(this).is('[tabid]')) {
35
+ $(this).hide();
36
+ if ($(this).attr('tabid') == tid) {
37
+ $(this).fadeIn();
38
+ }
39
+ }
40
+
41
+ });
42
+
43
+ $('a', $(this).parent().parent()).removeClass('current');
44
+ $(this).addClass('current');
45
+ });
46
+
47
  });
 
 
48
  })(jQuery)
backend/settings/default_options.php CHANGED
@@ -21,6 +21,11 @@ $options['asl_performance_def']['use_custom_ajax_handler'] = 0;
21
  $options['asl_performance_def']['image_cropping'] = 0;
22
  $options['asl_performance_def']['load_in_footer'] = 1;
23
 
 
 
 
 
 
24
 
25
  /* Default new search options */
26
 
@@ -215,10 +220,26 @@ $options['asl_defaults']['wpml_compatibility'] = 1;
215
  /* Save the defaul options if not exist */
216
  $_asl_ver = get_option('asl_version');
217
 
218
- // Reset the debug information on update
219
- if ($_asl_ver != ASL_CURRENT_VERSION)
 
 
220
  $asl_debug_data->destroy();
221
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
222
  // Update the default options if not exist/newer version available/debug mode is on
223
  foreach($options as $key=>$value) {
224
  if (get_option($key) === false || $_asl_ver != ASL_CURRENT_VERSION || ASL_DEBUG == 1) {
@@ -229,6 +250,4 @@ $options['asl_defaults']['wpml_compatibility'] = 1;
229
  if (get_option('asl_options')===false || ASL_DEBUG == 1)
230
  update_option('asl_options', $options['asl_defaults']);
231
 
232
- update_option('asl_version', ASL_CURRENT_VERSION);
233
-
234
- ?>
21
  $options['asl_performance_def']['image_cropping'] = 0;
22
  $options['asl_performance_def']['load_in_footer'] = 1;
23
 
24
+ /* Compatibility defaults */
25
+ $options['asl_compatibility_def']['db_force_case'] = 'none';
26
+ $options['asl_compatibility_def']['db_force_unicode'] = 0;
27
+ $options['asl_compatibility_def']['db_force_utf8_like'] = 0;
28
+
29
 
30
  /* Default new search options */
31
 
220
  /* Save the defaul options if not exist */
221
  $_asl_ver = get_option('asl_version');
222
 
223
+ // Is this after an update?
224
+ if ($_asl_ver != ASL_CURRENT_VERSION) {
225
+
226
+ // Reset the debug data
227
  $asl_debug_data->destroy();
228
 
229
+ // Compatibility options set?
230
+ if ( get_option('asl_compatibility')===false || ASL_DEBUG == 1 )
231
+ update_option('asl_compatibility', $options['asl_compatibility_def']);
232
+
233
+ // Analytics options set?
234
+ if ( get_option('asl_analytics')===false || ASL_DEBUG == 1 )
235
+ update_option('asl_analytics', $options['asl_analytics_def']);
236
+
237
+ // Performance options set?
238
+ if ( get_option('asl_performance')===false || ASL_DEBUG == 1 )
239
+ update_option('asl_performance', $options['asl_performance_def']);
240
+
241
+ }
242
+
243
  // Update the default options if not exist/newer version available/debug mode is on
244
  foreach($options as $key=>$value) {
245
  if (get_option($key) === false || $_asl_ver != ASL_CURRENT_VERSION || ASL_DEBUG == 1) {
250
  if (get_option('asl_options')===false || ASL_DEBUG == 1)
251
  update_option('asl_options', $options['asl_defaults']);
252
 
253
+ update_option('asl_version', ASL_CURRENT_VERSION);
 
 
backend/settings/types.inc.php CHANGED
@@ -58,9 +58,9 @@ if (!function_exists("admin_scriptsV04")) {
58
  wp_enqueue_media(); // For image uploader.
59
  wp_enqueue_script('thickbox', false, array('jquery'));
60
 
61
- wp_register_script('wpdreams-others', plugin_dir_url(__FILE__) . '/assets/others.js', array(
62
  'jquery'
63
- ));
64
  wp_enqueue_script('jquery-ui-core');
65
  wp_enqueue_script('jquery-ui-slider', array('jquery'));
66
  wp_enqueue_script('jquery-ui-tabs', array('jquery'));
@@ -68,9 +68,9 @@ if (!function_exists("admin_scriptsV04")) {
68
  wp_enqueue_script('jquery-ui-draggable', array('jquery'));
69
  wp_enqueue_script('jquery-ui-datepicker', array('jquery'));
70
 
71
- wp_register_script('wpdreams-tabs', plugin_dir_url(__FILE__) . '/assets/tabs.js', array(
72
  'jquery'
73
- ));
74
  wp_enqueue_script('wpdreams-tabs');
75
 
76
  wp_register_script('wpdreams-upload', plugin_dir_url(__FILE__) . '/assets/upload.js', array(
@@ -94,7 +94,7 @@ if (!function_exists("admin_scriptsV04")) {
94
 
95
  if (!function_exists("admin_stylesV04")) {
96
  function admin_stylesV04() {
97
- wp_register_style('wpdreams-style', plugin_dir_url(__FILE__) . '/assets/style.css', array('wpdreams-tabs'));
98
  wp_enqueue_style('wpdreams-style');
99
  wp_enqueue_style('thickbox');
100
  wp_register_style('wpdreams-jqueryui', 'https://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css');
58
  wp_enqueue_media(); // For image uploader.
59
  wp_enqueue_script('thickbox', false, array('jquery'));
60
 
61
+ wp_register_script('wpdreams-others', plugin_dir_url(__FILE__) . 'assets/others.js', array(
62
  'jquery'
63
+ ), ASL_CURR_VER_STRING);
64
  wp_enqueue_script('jquery-ui-core');
65
  wp_enqueue_script('jquery-ui-slider', array('jquery'));
66
  wp_enqueue_script('jquery-ui-tabs', array('jquery'));
68
  wp_enqueue_script('jquery-ui-draggable', array('jquery'));
69
  wp_enqueue_script('jquery-ui-datepicker', array('jquery'));
70
 
71
+ wp_register_script('wpdreams-tabs', plugin_dir_url(__FILE__) . 'assets/tabs.js', array(
72
  'jquery'
73
+ ), ASL_CURR_VER_STRING);
74
  wp_enqueue_script('wpdreams-tabs');
75
 
76
  wp_register_script('wpdreams-upload', plugin_dir_url(__FILE__) . '/assets/upload.js', array(
94
 
95
  if (!function_exists("admin_stylesV04")) {
96
  function admin_stylesV04() {
97
+ wp_register_style('wpdreams-style', plugin_dir_url(__FILE__) . '/assets/style.css', array('wpdreams-tabs'), ASL_CURR_VER_STRING);
98
  wp_enqueue_style('wpdreams-style');
99
  wp_enqueue_style('thickbox');
100
  wp_register_style('wpdreams-jqueryui', 'https://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css');
css/style-classic-blue.css CHANGED
@@ -11,6 +11,7 @@ div[id*="ajaxsearchlite"] {
11
  box-shadow: 0px 10px 18px -13px #000000;
12
  }
13
 
 
14
  div[id*="ajaxsearchlite"] .probox {
15
  margin: 4px;
16
  height: 28px;
@@ -21,21 +22,23 @@ div[id*="ajaxsearchlite"] .probox {
21
  box-shadow: 1px 0px 6px -3px rgb(181, 181, 181) inset;
22
  }
23
 
 
24
  div[id*="ajaxsearchlite"] .probox div.proinput {
25
  font-weight: normal;
26
  font-family: Open Sans;
27
  color: rgb(0, 0, 0) !important;
28
  font-size: 12px;
29
- line-height: 28px !important;
30
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
31
  }
32
 
 
33
  div[id*="ajaxsearchlite"] .probox div.proinput input {
34
  font-weight: normal;
35
  font-family: Open Sans;
36
  color: rgb(0, 0, 0) !important;
37
  font-size: 12px;
38
- line-height: 28px !important;
39
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
  border: 0;
41
  box-shadow: none;
@@ -261,20 +264,20 @@ div[id*="ajaxsearchliteres"] .results .item p.desc {
261
 
262
  div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
263
  background: #fff; /* rgba fallback */
264
- background: rgba(rgb(255, 255, 255), 0.9);
265
  filter: "alpha(opacity=90)";
266
  -ms-filter: "alpha(opacity=90)"; /* old ie */
267
  }
268
 
269
  div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
270
- background: rgba(rgb(255, 255, 255), 0.95);
271
  filter: "alpha(opacity=95)";
272
  -ms-filter: "alpha(opacity=95)"; /* old ie */
273
  }
274
 
275
  div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
276
  div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
277
- background: rgba(rgb(255, 255, 255), 1);
278
  filter: "alpha(opacity=100)";
279
  -ms-filter: "alpha(opacity=100)"; /* old ie */
280
  }
@@ -314,7 +317,7 @@ div[id*="ajaxsearchliteres"] span.highlighted {
314
 
315
  div[id*="ajaxsearchlitesettings"].searchsettings {
316
  background-color: rgb(109, 204, 237);
317
- background: background-image: linear-gradient(185deg, rgb(109, 204, 237), rgb(104, 174, 199));
318
  background-image: -webkit-linear-gradient(185deg, rgb(109, 204, 237), rgb(104, 174, 199));
319
  background-image: -moz-linear-gradient(185deg, rgb(109, 204, 237), rgb(104, 174, 199));
320
  background-image: -o-linear-gradient(185deg, rgb(109, 204, 237), rgb(104, 174, 199));
11
  box-shadow: 0px 10px 18px -13px #000000;
12
  }
13
 
14
+ #ajaxsearchlite1 .probox,
15
  div[id*="ajaxsearchlite"] .probox {
16
  margin: 4px;
17
  height: 28px;
22
  box-shadow: 1px 0px 6px -3px rgb(181, 181, 181) inset;
23
  }
24
 
25
+ #ajaxsearchlite1 .probox .proinput,
26
  div[id*="ajaxsearchlite"] .probox div.proinput {
27
  font-weight: normal;
28
  font-family: Open Sans;
29
  color: rgb(0, 0, 0) !important;
30
  font-size: 12px;
31
+ line-height: normal !important;
32
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
33
  }
34
 
35
+ #ajaxsearchlite1 .probox .proinput input,
36
  div[id*="ajaxsearchlite"] .probox div.proinput input {
37
  font-weight: normal;
38
  font-family: Open Sans;
39
  color: rgb(0, 0, 0) !important;
40
  font-size: 12px;
41
+ line-height: normal !important;
42
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
43
  border: 0;
44
  box-shadow: none;
264
 
265
  div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar {
266
  background: #fff; /* rgba fallback */
267
+ background: rgba(255, 255, 255, 0.9);
268
  filter: "alpha(opacity=90)";
269
  -ms-filter: "alpha(opacity=90)"; /* old ie */
270
  }
271
 
272
  div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar {
273
+ background: rgba(255, 255, 255, 0.95);
274
  filter: "alpha(opacity=95)";
275
  -ms-filter: "alpha(opacity=95)"; /* old ie */
276
  }
277
 
278
  div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,
279
  div[id*="ajaxsearchliteres"] .mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar {
280
+ background: rgba(255, 255, 255, 1);
281
  filter: "alpha(opacity=100)";
282
  -ms-filter: "alpha(opacity=100)"; /* old ie */
283
  }
317
 
318
  div[id*="ajaxsearchlitesettings"].searchsettings {
319
  background-color: rgb(109, 204, 237);
320
+ background-image: linear-gradient(185deg, rgb(109, 204, 237), rgb(104, 174, 199));
321
  background-image: -webkit-linear-gradient(185deg, rgb(109, 204, 237), rgb(104, 174, 199));
322
  background-image: -moz-linear-gradient(185deg, rgb(109, 204, 237), rgb(104, 174, 199));
323
  background-image: -o-linear-gradient(185deg, rgb(109, 204, 237), rgb(104, 174, 199));
css/style-curvy-black.css CHANGED
@@ -10,6 +10,7 @@ div[id*="ajaxsearchlite"] {
10
  box-shadow: none;
11
  }
12
 
 
13
  div[id*="ajaxsearchlite"] .probox {
14
  margin: 0px;
15
  padding: 8px;
@@ -21,21 +22,23 @@ div[id*="ajaxsearchlite"] .probox {
21
  border-radius: 30px;
22
  }
23
 
 
24
  div[id*="ajaxsearchlite"] .probox .proinput {
25
  font-weight: normal;
26
  font-family: Open Sans;
27
  color: rgb(0, 0, 0) !important;
28
  font-size: 12px;
29
- line-height: 15px;
30
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
31
  }
32
 
 
33
  div[id*="ajaxsearchlite"] .probox .proinput input {
34
  font-weight: normal;
35
  font-family: Open Sans;
36
  color: rgb(0, 0, 0) !important;
37
  font-size: 12px;
38
- line-height: 28px !important;
39
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
  border: 0;
41
  box-shadow: none;
@@ -79,7 +82,7 @@ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
79
  font-family: Open Sans;
80
  color: rgb(0, 0, 0);
81
  font-size: 12px;
82
- line-height: 15px;
83
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
84
  }
85
 
@@ -156,7 +159,7 @@ div[id*="ajaxsearchliteres"].vertical {
156
  border-radius: 3px;
157
  border: 0px solid rgb(181, 181, 181);
158
  border-radius: 0px 0px 0px 0px;
159
- box-shadow: 0px 0px 9px -7px #000000 inset;
160
  visibility: hidden;
161
  display: none;
162
  }
10
  box-shadow: none;
11
  }
12
 
13
+ #ajaxsearchlite1 .probox,
14
  div[id*="ajaxsearchlite"] .probox {
15
  margin: 0px;
16
  padding: 8px;
22
  border-radius: 30px;
23
  }
24
 
25
+ #ajaxsearchlite1 .probox .proinput,
26
  div[id*="ajaxsearchlite"] .probox .proinput {
27
  font-weight: normal;
28
  font-family: Open Sans;
29
  color: rgb(0, 0, 0) !important;
30
  font-size: 12px;
31
+ line-height: normal !important;
32
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
33
  }
34
 
35
+ #ajaxsearchlite1 .probox .proinput input,
36
  div[id*="ajaxsearchlite"] .probox .proinput input {
37
  font-weight: normal;
38
  font-family: Open Sans;
39
  color: rgb(0, 0, 0) !important;
40
  font-size: 12px;
41
+ line-height: normal !important;
42
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
43
  border: 0;
44
  box-shadow: none;
82
  font-family: Open Sans;
83
  color: rgb(0, 0, 0);
84
  font-size: 12px;
85
+ line-height: normal !important;
86
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
87
  }
88
 
159
  border-radius: 3px;
160
  border: 0px solid rgb(181, 181, 181);
161
  border-radius: 0px 0px 0px 0px;
162
+ box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.3);
163
  visibility: hidden;
164
  display: none;
165
  }
css/style-curvy-blue.css CHANGED
@@ -10,6 +10,7 @@ div[id*="ajaxsearchlite"] {
10
  box-shadow: none;
11
  }
12
 
 
13
  div[id*="ajaxsearchlite"] .probox {
14
  margin: 0px;
15
  padding: 8px;
@@ -21,29 +22,28 @@ div[id*="ajaxsearchlite"] .probox {
21
  border-radius: 30px;
22
  }
23
 
 
24
  div[id*="ajaxsearchlite"] .probox .proinput {
25
  font-weight: normal;
26
  font-family: Open Sans;
27
  color: rgb(0, 0, 0) !important;
28
  font-size: 12px;
29
- line-height: 15px;
30
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
31
  }
32
 
 
33
  div[id*="ajaxsearchlite"] .probox .proinput input {
34
  font-weight: normal;
35
  font-family: Open Sans;
36
  color: rgb(0, 0, 0) !important;
37
  font-size: 12px;
38
- line-height: 28px !important;
39
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
  border: 0;
41
  box-shadow: none;
42
  }
43
 
44
- div[id*="ajaxsearchlite"].asl_msie .probox .proinput input {
45
- line-height: 24px !important;
46
- }
47
 
48
  /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
49
  div[id*="ajaxsearchlite"] .probox .proinput input::-webkit-input-placeholder {
@@ -72,6 +72,7 @@ div[id*="ajaxsearchlite"] .probox .proinput input:-moz-placeholder {
72
  font-family: Open Sans;
73
  color: rgba(0, 0, 0, 0.6) !important;
74
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
 
75
  }
76
 
77
  div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
@@ -156,7 +157,7 @@ div[id*="ajaxsearchliteres"].vertical {
156
  border-radius: 3px;
157
  border: 0px solid rgb(181, 181, 181);
158
  border-radius: 0px 0px 0px 0px;
159
- box-shadow: 0px 0px 9px -7px #000000 inset;
160
  visibility: hidden;
161
  display: none;
162
  }
10
  box-shadow: none;
11
  }
12
 
13
+ #ajaxsearchlite1 .probox,
14
  div[id*="ajaxsearchlite"] .probox {
15
  margin: 0px;
16
  padding: 8px;
22
  border-radius: 30px;
23
  }
24
 
25
+ #ajaxsearchlite1 .probox .proinput,
26
  div[id*="ajaxsearchlite"] .probox .proinput {
27
  font-weight: normal;
28
  font-family: Open Sans;
29
  color: rgb(0, 0, 0) !important;
30
  font-size: 12px;
31
+ line-height: normal !important;
32
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
33
  }
34
 
35
+ #ajaxsearchlite1 .probox .proinput input,
36
  div[id*="ajaxsearchlite"] .probox .proinput input {
37
  font-weight: normal;
38
  font-family: Open Sans;
39
  color: rgb(0, 0, 0) !important;
40
  font-size: 12px;
41
+ line-height: normal !important;
42
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
43
  border: 0;
44
  box-shadow: none;
45
  }
46
 
 
 
 
47
 
48
  /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
49
  div[id*="ajaxsearchlite"] .probox .proinput input::-webkit-input-placeholder {
72
  font-family: Open Sans;
73
  color: rgba(0, 0, 0, 0.6) !important;
74
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
75
+ line-height: normal !important;
76
  }
77
 
78
  div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
157
  border-radius: 3px;
158
  border: 0px solid rgb(181, 181, 181);
159
  border-radius: 0px 0px 0px 0px;
160
+ box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.3);
161
  visibility: hidden;
162
  display: none;
163
  }
css/style-curvy-red.css CHANGED
@@ -10,6 +10,7 @@ div[id*="ajaxsearchlite"] {
10
  box-shadow: none;
11
  }
12
 
 
13
  div[id*="ajaxsearchlite"] .probox {
14
  margin: 0px;
15
  padding: 8px;
@@ -21,21 +22,23 @@ div[id*="ajaxsearchlite"] .probox {
21
  border-radius: 30px;
22
  }
23
 
 
24
  div[id*="ajaxsearchlite"] .probox .proinput {
25
  font-weight: normal;
26
  font-family: Open Sans;
27
  color: rgb(0, 0, 0) !important;
28
  font-size: 12px;
29
- line-height: 15px;
30
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
31
  }
32
 
 
33
  div[id*="ajaxsearchlite"] .probox .proinput input {
34
  font-weight: normal;
35
  font-family: Open Sans;
36
  color: rgb(0, 0, 0) !important;
37
  font-size: 12px;
38
- line-height: 28px !important;
39
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
  border: 0;
41
  box-shadow: none;
@@ -79,7 +82,7 @@ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
79
  font-family: Open Sans;
80
  color: rgb(0, 0, 0);
81
  font-size: 12px;
82
- line-height: 15px;
83
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
84
  }
85
 
@@ -156,7 +159,7 @@ div[id*="ajaxsearchliteres"].vertical {
156
  border-radius: 3px;
157
  border: 0px solid rgb(181, 181, 181);
158
  border-radius: 0px 0px 0px 0px;
159
- box-shadow: 0px 0px 9px -7px #000000 inset;
160
  visibility: hidden;
161
  display: none;
162
  }
10
  box-shadow: none;
11
  }
12
 
13
+ #ajaxsearchlite1 .probox,
14
  div[id*="ajaxsearchlite"] .probox {
15
  margin: 0px;
16
  padding: 8px;
22
  border-radius: 30px;
23
  }
24
 
25
+ #ajaxsearchlite1 .probox .proinput,
26
  div[id*="ajaxsearchlite"] .probox .proinput {
27
  font-weight: normal;
28
  font-family: Open Sans;
29
  color: rgb(0, 0, 0) !important;
30
  font-size: 12px;
31
+ line-height: normal !important;
32
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
33
  }
34
 
35
+ #ajaxsearchlite1 .probox .proinput input,
36
  div[id*="ajaxsearchlite"] .probox .proinput input {
37
  font-weight: normal;
38
  font-family: Open Sans;
39
  color: rgb(0, 0, 0) !important;
40
  font-size: 12px;
41
+ line-height: normal !important;
42
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
43
  border: 0;
44
  box-shadow: none;
82
  font-family: Open Sans;
83
  color: rgb(0, 0, 0);
84
  font-size: 12px;
85
+ line-height: normal !important;
86
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
87
  }
88
 
159
  border-radius: 3px;
160
  border: 0px solid rgb(181, 181, 181);
161
  border-radius: 0px 0px 0px 0px;
162
+ box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.3);
163
  visibility: hidden;
164
  display: none;
165
  }
css/style-simple-blue.css CHANGED
@@ -15,6 +15,7 @@ div[id*="ajaxsearchlite"] {
15
  box-shadow: 0px 0px 0px 0px #000000;
16
  }
17
 
 
18
  div[id*="ajaxsearchlite"] .probox {
19
  margin: 0px;
20
  height: 34px;
@@ -30,24 +31,27 @@ div[id*="ajaxsearchlite"] .probox {
30
  box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
31
  }
32
 
 
33
  div[id*="ajaxsearchlite"] .probox .proinput {
34
  font-weight: normal;
35
  font-family: Open Sans;
36
  color: rgb(255, 255, 255) !important;
37
  font-size: 12px;
38
- line-height: 15px;
39
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
  }
41
 
 
42
  div[id*="ajaxsearchlite"] .probox .proinput input {
43
  font-weight: normal;
44
  font-family: Open Sans;
45
  color: rgb(255, 255, 255) !important;
46
  font-size: 12px;
47
- line-height: 15px;
48
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
49
  border: 0;
50
  box-shadow: none;
 
51
  }
52
 
53
  /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
@@ -84,7 +88,7 @@ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
84
  font-family: Open Sans;
85
  color: rgb(255, 255, 255);
86
  font-size: 12px;
87
- line-height: 15px;
88
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
89
  /* Must match box height */
90
  margin-top: -34px !important;
15
  box-shadow: 0px 0px 0px 0px #000000;
16
  }
17
 
18
+ #ajaxsearchlite1 .probox,
19
  div[id*="ajaxsearchlite"] .probox {
20
  margin: 0px;
21
  height: 34px;
31
  box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
32
  }
33
 
34
+ #ajaxsearchlite1 .probox .proinput,
35
  div[id*="ajaxsearchlite"] .probox .proinput {
36
  font-weight: normal;
37
  font-family: Open Sans;
38
  color: rgb(255, 255, 255) !important;
39
  font-size: 12px;
40
+ line-height: normal !important;
41
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
42
  }
43
 
44
+ #ajaxsearchlite1 .probox .proinput input,
45
  div[id*="ajaxsearchlite"] .probox .proinput input {
46
  font-weight: normal;
47
  font-family: Open Sans;
48
  color: rgb(255, 255, 255) !important;
49
  font-size: 12px;
50
+ line-height: normal !important;
51
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
52
  border: 0;
53
  box-shadow: none;
54
+ height: 34px;
55
  }
56
 
57
  /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
88
  font-family: Open Sans;
89
  color: rgb(255, 255, 255);
90
  font-size: 12px;
91
+ line-height: normal !important;
92
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
93
  /* Must match box height */
94
  margin-top: -34px !important;
css/style-simple-grey.css CHANGED
@@ -16,6 +16,7 @@ div[id*="ajaxsearchlite"] {
16
  box-shadow: 0px 0px 0px 0px #000000;
17
  }
18
 
 
19
  div[id*="ajaxsearchlite"] .probox {
20
  margin: 0px;
21
  height: 34px;
@@ -31,24 +32,27 @@ div[id*="ajaxsearchlite"] .probox {
31
  box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
32
  }
33
 
 
34
  div[id*="ajaxsearchlite"] .probox .proinput {
35
  font-weight: normal;
36
  font-family: Open Sans;
37
  color: rgb(255, 255, 255) !important;
38
  font-size: 12px;
39
- line-height: 15px;
40
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
41
  }
42
 
 
43
  div[id*="ajaxsearchlite"] .probox .proinput input {
44
  font-weight: normal;
45
  font-family: Open Sans;
46
  color: rgb(255, 255, 255) !important;
47
  font-size: 12px;
48
- line-height: 15px;
49
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
50
  border: 0;
51
  box-shadow: none;
 
52
  }
53
 
54
  /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
@@ -85,7 +89,7 @@ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
85
  font-family: Open Sans;
86
  color: rgb(255, 255, 255);
87
  font-size: 12px;
88
- line-height: 15px;
89
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
90
  /* Must match box height */
91
  margin-top: -34px !important;
16
  box-shadow: 0px 0px 0px 0px #000000;
17
  }
18
 
19
+ #ajaxsearchlite1 .probox,
20
  div[id*="ajaxsearchlite"] .probox {
21
  margin: 0px;
22
  height: 34px;
32
  box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
33
  }
34
 
35
+ #ajaxsearchlite1 .probox .proinput,
36
  div[id*="ajaxsearchlite"] .probox .proinput {
37
  font-weight: normal;
38
  font-family: Open Sans;
39
  color: rgb(255, 255, 255) !important;
40
  font-size: 12px;
41
+ line-height: normal !important;
42
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
43
  }
44
 
45
+ #ajaxsearchlite1 .probox .proinput input,
46
  div[id*="ajaxsearchlite"] .probox .proinput input {
47
  font-weight: normal;
48
  font-family: Open Sans;
49
  color: rgb(255, 255, 255) !important;
50
  font-size: 12px;
51
+ line-height: normal !important;
52
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
53
  border: 0;
54
  box-shadow: none;
55
+ height: 34px;
56
  }
57
 
58
  /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
89
  font-family: Open Sans;
90
  color: rgb(255, 255, 255);
91
  font-size: 12px;
92
+ line-height: normal !important;
93
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
94
  /* Must match box height */
95
  margin-top: -34px !important;
css/style-simple-red.css CHANGED
@@ -15,6 +15,7 @@ div[id*="ajaxsearchlite"] {
15
  box-shadow: 0px 0px 0px 0px #000000;
16
  }
17
 
 
18
  div[id*="ajaxsearchlite"] .probox {
19
  margin: 0px;
20
  height: 34px;
@@ -30,24 +31,27 @@ div[id*="ajaxsearchlite"] .probox {
30
  box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
31
  }
32
 
 
33
  div[id*="ajaxsearchlite"] .probox .proinput {
34
  font-weight: normal;
35
  font-family: Open Sans;
36
  color: rgb(255, 255, 255) !important;
37
  font-size: 12px;
38
- line-height: 15px;
39
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
40
  }
41
 
 
42
  div[id*="ajaxsearchlite"] .probox .proinput input {
43
  font-weight: normal;
44
  font-family: Open Sans;
45
  color: rgb(255, 255, 255) !important;
46
  font-size: 12px;
47
- line-height: 15px;
48
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
49
  border: 0;
50
  box-shadow: none;
 
51
  }
52
 
53
  /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
@@ -84,7 +88,7 @@ div[id*="ajaxsearchlite"] .probox .proinput input.autocomplete {
84
  font-family: Open Sans;
85
  color: rgb(255, 255, 255);
86
  font-size: 12px;
87
- line-height: 15px;
88
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
89
  /* Must match box height */
90
  margin-top: -34px !important;
15
  box-shadow: 0px 0px 0px 0px #000000;
16
  }
17
 
18
+ #ajaxsearchlite1 .probox,
19
  div[id*="ajaxsearchlite"] .probox {
20
  margin: 0px;
21
  height: 34px;
31
  box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
32
  }
33
 
34
+ #ajaxsearchlite1 .probox .proinput,
35
  div[id*="ajaxsearchlite"] .probox .proinput {
36
  font-weight: normal;
37
  font-family: Open Sans;
38
  color: rgb(255, 255, 255) !important;
39
  font-size: 12px;
40
+ line-height: normal !important;
41
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
42
  }
43
 
44
+ #ajaxsearchlite1 .probox .proinput input,
45
  div[id*="ajaxsearchlite"] .probox .proinput input {
46
  font-weight: normal;
47
  font-family: Open Sans;
48
  color: rgb(255, 255, 255) !important;
49
  font-size: 12px;
50
+ line-height: normal !important;
51
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
52
  border: 0;
53
  box-shadow: none;
54
+ height: 34px;
55
  }
56
 
57
  /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
88
  font-family: Open Sans;
89
  color: rgb(255, 255, 255);
90
  font-size: 12px;
91
+ line-height: normal !important;
92
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
93
  /* Must match box height */
94
  margin-top: -34px !important;
css/style-underline.css CHANGED
@@ -10,6 +10,7 @@ div[id*="ajaxsearchlite"] {
10
  box-shadow: 0px 1px 0px 0px #e4e4e4;
11
  }
12
 
 
13
  div[id*="ajaxsearchlite"] .probox {
14
  margin: 0px;
15
  height: 28px;
@@ -19,21 +20,23 @@ div[id*="ajaxsearchlite"] .probox {
19
  box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
20
  }
21
 
 
22
  div[id*="ajaxsearchlite"] .probox .proinput {
23
  font-weight: normal;
24
  font-family: Open Sans;
25
  color: rgb(0, 0, 0) !important;
26
  font-size: 12px;
27
- line-height: 15px;
28
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
29
  }
30
 
 
31
  div[id*="ajaxsearchlite"] .probox .proinput input {
32
  font-weight: normal;
33
  font-family: Open Sans;
34
  color: rgb(0, 0, 0) !important;
35
  font-size: 12px;
36
- line-height: 28px !important;
37
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
38
  border: 0;
39
  box-shadow: none;
@@ -154,7 +157,7 @@ div[id*="ajaxsearchliteres"].vertical {
154
  border-radius: 3px;
155
  border: 0px solid rgb(181, 181, 181);
156
  border-radius: 0px 0px 0px 0px;
157
- box-shadow: 0px 0px 9px -7px #000000 inset;
158
  visibility: hidden;
159
  display: none;
160
  }
10
  box-shadow: 0px 1px 0px 0px #e4e4e4;
11
  }
12
 
13
+ #ajaxsearchlite1 .probox,
14
  div[id*="ajaxsearchlite"] .probox {
15
  margin: 0px;
16
  height: 28px;
20
  box-shadow: 0px 0px 0px 0px rgb(181, 181, 181) inset;
21
  }
22
 
23
+ #ajaxsearchlite1 .probox .proinput,
24
  div[id*="ajaxsearchlite"] .probox .proinput {
25
  font-weight: normal;
26
  font-family: Open Sans;
27
  color: rgb(0, 0, 0) !important;
28
  font-size: 12px;
29
+ line-height: normal !important;
30
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
31
  }
32
 
33
+ #ajaxsearchlite1 .probox .proinput input,
34
  div[id*="ajaxsearchlite"] .probox .proinput input {
35
  font-weight: normal;
36
  font-family: Open Sans;
37
  color: rgb(0, 0, 0) !important;
38
  font-size: 12px;
39
+ line-height: normal !important;
40
  text-shadow: 0px 0px 0px rgba(255, 255, 255, 0);
41
  border: 0;
42
  box-shadow: none;
157
  border-radius: 3px;
158
  border: 0px solid rgb(181, 181, 181);
159
  border-radius: 0px 0px 0px 0px;
160
+ box-shadow: 0px 0px 3px -1px rgba(0, 0, 0, 0.3);
161
  visibility: hidden;
162
  display: none;
163
  }
css/style.basic.css CHANGED
@@ -52,7 +52,7 @@ div[id*='ajaxsearchlite'] input[type="search"]::-webkit-search-results-decoratio
52
  }
53
 
54
  .hiddend {
55
- display: none !important;
56
  }
57
 
58
  div[id*='ajaxsearchlite'] textarea:focus,
@@ -86,7 +86,7 @@ div[id*='ajaxsearchlite'] .probox {
86
  div[id*='ajaxsearchlite'] .probox .proinput {
87
  width: auto;
88
  height: 100%;
89
- margin: 2px 0px 0px 10px;
90
  padding: 0 5px;
91
  float: left;
92
  box-shadow: none;
@@ -98,7 +98,7 @@ div[id*='ajaxsearchlite'] .probox .proinput {
98
  }
99
 
100
  div[id*='ajaxsearchlite'] .probox .proinput input {
101
- height: 100%;
102
  border: 0px;
103
  background: transparent;
104
  width: 100%;
@@ -106,12 +106,25 @@ div[id*='ajaxsearchlite'] .probox .proinput input {
106
  margin: -1px;
107
  padding: 0;
108
  left: 0;
109
- line-height: 34px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  }
111
 
112
- /* Of course MSIE has issues.. */
113
- div[id*='ajaxsearchlite'].asl_msie .probox .proinput input {
114
- line-height: 30px !important;
115
  }
116
 
117
  /* A fix for aggresive theme CSS rules */
@@ -142,7 +155,7 @@ div[id*='ajaxsearchlite'] .probox .proinput input.autocomplete {
142
  background: transparent;
143
  width: 100%;
144
  box-shadow: none;
145
- margin: -1px;
146
  margin-top: -28px !important;
147
  padding: 0;
148
  left: 0;
@@ -150,10 +163,6 @@ div[id*='ajaxsearchlite'] .probox .proinput input.autocomplete {
150
  z-index: 9;
151
  }
152
 
153
- div[id*='ajaxsearchlite'].asl_msie .probox .proinput input.autocomplete {
154
- margin-top: 0px !important;
155
- }
156
-
157
  div[id*='ajaxsearchlite'] .probox .proinput.iepaddingfix {
158
  padding-top: 0;
159
  }
52
  }
53
 
54
  .hiddend {
55
+ display: none;
56
  }
57
 
58
  div[id*='ajaxsearchlite'] textarea:focus,
86
  div[id*='ajaxsearchlite'] .probox .proinput {
87
  width: auto;
88
  height: 100%;
89
+ margin: 0px 0px 0px 10px;
90
  padding: 0 5px;
91
  float: left;
92
  box-shadow: none;
98
  }
99
 
100
  div[id*='ajaxsearchlite'] .probox .proinput input {
101
+ height: 28px;
102
  border: 0px;
103
  background: transparent;
104
  width: 100%;
106
  margin: -1px;
107
  padding: 0;
108
  left: 0;
109
+ line-height: normal !important;
110
+ display: block;
111
+ }
112
+
113
+ /* EACH PLACEHOLDER MUST HAVE A DIFFERENT RULE TO WORK */
114
+ div[id*="ajaxsearchlite"] .probox .proinput input::-webkit-input-placeholder {
115
+ opacity: 0.85;
116
+ }
117
+
118
+ div[id*="ajaxsearchlite"] .probox .proinput input::-moz-placeholder {
119
+ opacity: 0.85;
120
+ }
121
+
122
+ div[id*="ajaxsearchlite"] .probox .proinput input:-ms-input-placeholder {
123
+ opacity: 0.85;
124
  }
125
 
126
+ div[id*="ajaxsearchlite"] .probox .proinput input:-moz-placeholder {
127
+ opacity: 0.85;
 
128
  }
129
 
130
  /* A fix for aggresive theme CSS rules */
155
  background: transparent;
156
  width: 100%;
157
  box-shadow: none;
158
+ margin: 0;
159
  margin-top: -28px !important;
160
  padding: 0;
161
  left: 0;
163
  z-index: 9;
164
  }
165
 
 
 
 
 
166
  div[id*='ajaxsearchlite'] .probox .proinput.iepaddingfix {
167
  padding-top: 0;
168
  }
includes/asl_init.class.php CHANGED
@@ -27,6 +27,13 @@ class aslInit {
27
  'manage_options',
28
  ASL_DIR.'/backend/analytics.php'
29
  );
 
 
 
 
 
 
 
30
  add_submenu_page(
31
  ASL_DIR.'/backend/settings.php',
32
  __("Ajax Search Lite", 'ajax-search-lite'),
27
  'manage_options',
28
  ASL_DIR.'/backend/analytics.php'
29
  );
30
+ add_submenu_page(
31
+ ASL_DIR.'/backend/settings.php',
32
+ __("Ajax Search Lite", 'ajax-search-lite'),
33
+ __("Compatibility Options", 'ajax-search-lite'),
34
+ 'manage_options',
35
+ ASL_DIR.'/backend/compatibility.php'
36
+ );
37
  add_submenu_page(
38
  ASL_DIR.'/backend/settings.php',
39
  __("Ajax Search Lite", 'ajax-search-lite'),
includes/search.class.php CHANGED
@@ -157,33 +157,38 @@ if (!class_exists('wpdreams_search')) {
157
 
158
  }
159
 
160
- /**
161
- * Performs a full escape
162
- *
163
- * @uses wd_mysql_escape_mimic()
164
- * @param $string
165
- * @return array|mixed
166
- */
167
- protected function escape( $string ) {
168
- global $wpdb;
169
-
170
- // recursively go through if it is an array
171
- if ( is_array($string) ) {
172
- foreach ($string as $k => $v) {
173
- $string[$k] = $this->escape($v);
174
- }
175
- return $string;
176
- }
177
-
178
- if ( is_float( $string ) )
179
- return $string;
180
-
181
- // Escape support for WP < 4.0
182
- if ( method_exists( $wpdb, 'esc_like' ) )
183
- return esc_sql( $wpdb->esc_like($string) );
184
-
185
- return esc_sql( wd_mysql_escape_mimic($string) );
186
- }
 
 
 
 
 
187
 
188
  /**
189
  * Converts a string to number, array of strings to array of numbers
157
 
158
  }
159
 
160
+ /**
161
+ * Performs a full escape
162
+ *
163
+ * @uses wd_mysql_escape_mimic()
164
+ * @param $string
165
+ * @return array|mixed
166
+ */
167
+ protected function escape( $string ) {
168
+ global $wpdb;
169
+
170
+ // recursively go through if it is an array
171
+ if ( is_array($string) ) {
172
+ foreach ($string as $k => $v) {
173
+ $string[$k] = $this->escape($v);
174
+ }
175
+ return $string;
176
+ }
177
+
178
+ if ( is_float( $string ) )
179
+ return $string;
180
+
181
+ // Extra escape for 4.0 >=
182
+ if ( method_exists( $wpdb, 'esc_like' ) )
183
+ return esc_sql( $wpdb->esc_like( $string ) );
184
+
185
+ // Escape support for WP < 4.0
186
+ if ( function_exists( 'like_escape' ) )
187
+ return esc_sql( like_escape($string) );
188
+
189
+ // Okay, what? Not one function is present, use the one we have
190
+ return wd_mysql_escape_mimic($string);
191
+ }
192
 
193
  /**
194
  * Converts a string to number, array of strings to array of numbers
includes/search_content.class.php CHANGED
@@ -10,8 +10,9 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
10
  global $q_config;
11
  global $asl_debug_data;
12
 
13
- $options = $this->options;
14
- $searchData = $this->searchData;
 
15
 
16
  $parts = array();
17
  $relevance_parts = array();
@@ -22,11 +23,51 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
22
  $term_join = "";
23
  $postmeta_join = "";
24
 
25
- $s = $this->s; // full keyword
26
- $_s = $this->_s; // array of keywords
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
- $_si = implode( '|', $_s ); // imploded phrase for regexp
29
- $_si = $_si != '' ? $_si : $s;
 
 
 
30
 
31
  $q_config['language'] = $options['qtranslate_lang'];
32
 
@@ -55,17 +96,24 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
55
  $words = $options['set_exactonly'] == 1 ? array( $s ) : $_s;
56
  //$parts[] = "(lower($wpdb->posts.post_title) REGEXP '$words')";
57
 
58
- $op = 'OR';
59
- if ( count( $_s ) > 0 ) {
60
- $_like = implode( "%' " . $op . " $wpdb->posts.post_title LIKE '%", $words );
61
- } else {
62
- $_like = $s;
63
- }
64
- $parts[] = "( $wpdb->posts.post_title LIKE '%" . $_like . "%' )";
65
 
66
- $relevance_parts[] = "(case when
67
- ($wpdb->posts.post_title REGEXP '$s')
68
  then 10 else 0 end)";
 
 
 
 
 
 
 
69
  }
70
  /*---------------------------------------------------------------*/
71
 
@@ -75,16 +123,21 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
75
  //$parts[] = "(lower($wpdb->posts.post_content) REGEXP '$words')";
76
 
77
  $op = 'OR';
78
- if ( count( $_s ) > 0 ) {
79
- $_like = implode( "%' " . $op . " $wpdb->posts.post_content LIKE '%", $words );
80
- } else {
81
- $_like = $s;
82
- }
83
- $parts[] = "( $wpdb->posts.post_content LIKE '%" . $_like . "%' )";
84
 
85
- $relevance_parts[] = "(case when
86
- ($wpdb->posts.post_content REGEXP '$s')
87
- then 7 else 0 end)";
 
 
 
 
 
88
  }
89
  /*---------------------------------------------------------------*/
90
 
@@ -93,16 +146,21 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
93
  $words = $options['set_exactonly'] == 1 ? array( $s ) : $_s;
94
  //$parts[] = "(lower($wpdb->posts.post_excerpt) REGEXP '$words')";
95
 
96
- $op = 'OR';
97
- if ( count( $_s ) > 0 ) {
98
- $_like = implode( "%' " . $op . " $wpdb->posts.post_excerpt LIKE '%", $words );
99
- } else {
100
- $_like = $s;
101
- }
102
- $parts[] = "( $wpdb->posts.post_excerpt LIKE '%" . $_like . "%' )";
103
 
104
- $relevance_parts[] = "(case when
105
- ($wpdb->posts.post_excerpt REGEXP '$s')
 
 
 
 
 
106
  then 7 else 0 end)";
107
  }
108
  /*---------------------------------------------------------------*/
@@ -113,15 +171,15 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
113
  //$parts[] = "(lower($wpdb->terms.name) REGEXP '$words')";
114
 
115
  $op = 'OR';
116
- if ( count( $_s ) > 0 ) {
117
- $_like = implode( "%' " . $op . " $wpdb->terms.name LIKE '%", $words );
118
- } else {
119
- $_like = $s;
120
- }
121
- $parts[] = "( $wpdb->terms.name LIKE '%" . $_like . "%' )";
122
 
123
- $relevance_parts[] = "(case when
124
- ($wpdb->terms.name REGEXP '$s')
125
  then 5 else 0 end)";
126
  }
127
  /*---------------------------------------------------------------*/
@@ -130,12 +188,19 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
130
  if ( isset( $searchData['selected-customfields'] ) ) {
131
  $selected_customfields = $searchData['selected-customfields'];
132
  if ( is_array( $selected_customfields ) && count( $selected_customfields ) > 0 ) {
133
- $words = $options['set_exactonly'] == 1 ? $s : $_si;
 
 
134
  foreach ( $selected_customfields as $cfield ) {
135
- $parts[] = "($wpdb->postmeta.meta_key='$cfield' AND
136
- $wpdb->postmeta.meta_value REGEXP '$words')";
 
 
 
 
137
  }
138
  $postmeta_join = "LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID";
 
139
  }
140
  }
141
  /*---------------------------------------------------------------*/
@@ -350,19 +415,42 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
350
 
351
 
352
  /*------------------------- WPML filter -------------------------*/
353
- $wpml_query = "(1)";
354
- if ( isset($options['wpml_lang'])
355
- && w_isset_def($searchData['wpml_compatibility'], 1) == 1
356
- )
357
- $wpml_query = "
 
 
 
 
 
 
 
 
358
  EXISTS (
359
  SELECT DISTINCT(wpml.element_id)
360
  FROM " . $wpdb->base_prefix . "icl_translations as wpml
361
  WHERE
362
  $wpdb->posts.ID = wpml.element_id AND
363
- wpml.language_code = '" . $this->escape($options['wpml_lang']) . "' AND
364
  wpml.element_type LIKE 'post_%'
365
  )";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
  /*---------------------------------------------------------------*/
367
 
368
  /*--------------------- Other Query stuff -----------------------*/
@@ -406,7 +494,7 @@ if ( ! class_exists( 'wpdreams_searchContent' ) ) {
406
  AND $term_query
407
  AND $like_query
408
  AND $exclude_posts
409
- AND $wpml_query
410
  GROUP BY
411
  $wpdb->posts.ID
412
  ";
10
  global $q_config;
11
  global $asl_debug_data;
12
 
13
+ $options = $this->options;
14
+ $comp_options = get_option( 'asl_compatibility' );
15
+ $searchData = $this->searchData;
16
 
17
  $parts = array();
18
  $relevance_parts = array();
23
  $term_join = "";
24
  $postmeta_join = "";
25
 
26
+ // Prefixes and suffixes
27
+ $pre_field = '';
28
+ $suf_field = '';
29
+ $pre_like = '';
30
+ $suf_like = '';
31
+
32
+ /**
33
+ * On forced case sensitivity: Let's add BINARY keyword before the LIKE
34
+ * On forced case in-sensitivity: Append the lower() function around each field
35
+ */
36
+ if ( w_isset_def( $comp_options['db_force_case'], 'none' ) == 'sensitivity' ) {
37
+ $pre_like = 'BINARY ';
38
+ } else if ( w_isset_def( $comp_options['db_force_case'], 'none' ) == 'insensitivity' ) {
39
+ if ( function_exists( 'mb_convert_case' ) ) {
40
+ $this->s = mb_convert_case( $this->s, MB_CASE_LOWER, "UTF-8" );
41
+ } else {
42
+ $this->s = strtoupper( $this->s );
43
+ } // if no mb_ functions :(
44
+ $this->_s = array_unique( explode( " ", $this->s ) );
45
+
46
+ $pre_field .= 'lower(';
47
+ $suf_field .= ')';
48
+ }
49
+
50
+ /**
51
+ * Check if utf8 is forced on LIKE
52
+ */
53
+ if ( w_isset_def( $comp_options['db_force_utf8_like'], 0 ) == 1 ) {
54
+ $pre_like .= '_utf8';
55
+ }
56
+
57
+ /**
58
+ * Check if unicode is forced on LIKE, but only apply if utf8 is not
59
+ */
60
+ if ( w_isset_def( $comp_options['db_force_unicode'], 0 ) == 1
61
+ && w_isset_def( $comp_options['db_force_utf8_like'], 0 ) == 0
62
+ ) {
63
+ $pre_like .= 'N';
64
+ }
65
 
66
+ $s = $this->s; // full keyword
67
+ $_s = $this->_s; // array of keywords
68
+
69
+ $_si = implode( '|', $_s ); // imploded phrase for regexp
70
+ $_si = $_si != '' ? $_si : $s;
71
 
72
  $q_config['language'] = $options['qtranslate_lang'];
73
 
96
  $words = $options['set_exactonly'] == 1 ? array( $s ) : $_s;
97
  //$parts[] = "(lower($wpdb->posts.post_title) REGEXP '$words')";
98
 
99
+ $op = 'OR';
100
+ if ( count( $_s ) > 0 ) {
101
+ $_like = implode( "%'$suf_like " . $op . " " . $pre_field . $wpdb->posts . ".post_title" . $suf_field . " LIKE $pre_like'%", $words );
102
+ } else {
103
+ $_like = $s;
104
+ }
105
+ $parts[] = "( " . $pre_field . $wpdb->posts . ".post_title" . $suf_field . " LIKE $pre_like'%" . $_like . "%'$suf_like )";
106
 
107
+ $relevance_parts[] = "(case when
108
+ (" . $pre_field . $wpdb->posts . ".post_title" . $suf_field . " LIKE '%$s%')
109
  then 10 else 0 end)";
110
+
111
+ // The first word relevance is higher
112
+ if ( count( $_s ) > 0 ) {
113
+ $relevance_parts[] = "(case when
114
+ (" . $pre_field . $wpdb->posts . ".post_title" . $suf_field . " LIKE '%" . $_s[0] . "%')
115
+ then 10 else 0 end)";
116
+ }
117
  }
118
  /*---------------------------------------------------------------*/
119
 
123
  //$parts[] = "(lower($wpdb->posts.post_content) REGEXP '$words')";
124
 
125
  $op = 'OR';
126
+ if ( count( $_s ) > 0 ) {
127
+ $_like = implode( "%'$suf_like " . $op . " " . $pre_field . $wpdb->posts . ".post_content" . $suf_field . " LIKE $pre_like'%", $words );
128
+ } else {
129
+ $_like = $s;
130
+ }
131
+ $parts[] = "( " . $pre_field . $wpdb->posts . ".post_content" . $suf_field . " LIKE $pre_like'%" . $_like . "%'$suf_like )";
132
 
133
+ if ( count( $_s ) > 0 ) {
134
+ $relevance_parts[] = "(case when
135
+ (" . $pre_field . $wpdb->posts . ".post_content" . $suf_field . " LIKE '%" . $_s[0] . "%')
136
+ then 8 else 0 end)";
137
+ }
138
+ $relevance_parts[] = "(case when
139
+ (" . $pre_field . $wpdb->posts . ".post_content" . $suf_field . " LIKE '%$s%')
140
+ then 8 else 0 end)";
141
  }
142
  /*---------------------------------------------------------------*/
143
 
146
  $words = $options['set_exactonly'] == 1 ? array( $s ) : $_s;
147
  //$parts[] = "(lower($wpdb->posts.post_excerpt) REGEXP '$words')";
148
 
149
+ $op = 'OR';
150
+ if ( count( $_s ) > 0 ) {
151
+ $_like = implode( "%'$suf_like " . $op . " " . $pre_field . $wpdb->posts . ".post_excerpt" . $suf_field . " LIKE $pre_like'%", $words );
152
+ } else {
153
+ $_like = $s;
154
+ }
155
+ $parts[] = "( " . $pre_field . $wpdb->posts . ".post_excerpt" . $suf_field . " LIKE $pre_like'%" . $_like . "%'$suf_like )";
156
 
157
+ if ( count( $_s ) > 0 ) {
158
+ $relevance_parts[] = "(case when
159
+ (" . $pre_field . $wpdb->posts . ".post_excerpt" . $suf_field . " LIKE '%" . $_s[0] . "%')
160
+ then 7 else 0 end)";
161
+ }
162
+ $relevance_parts[] = "(case when
163
+ (" . $pre_field . $wpdb->posts . ".post_excerpt" . $suf_field . " LIKE '%$s%')
164
  then 7 else 0 end)";
165
  }
166
  /*---------------------------------------------------------------*/
171
  //$parts[] = "(lower($wpdb->terms.name) REGEXP '$words')";
172
 
173
  $op = 'OR';
174
+ if ( count( $_s ) > 0 ) {
175
+ $_like = implode( "%'$suf_like " . $op . " " . $pre_field . $wpdb->terms . ".name" . $suf_field . " LIKE $pre_like'%", $words );
176
+ } else {
177
+ $_like = $s;
178
+ }
179
+ $parts[] = "( " . $pre_field . $wpdb->terms . ".name" . $suf_field . " LIKE $pre_like'%" . $_like . "%'$suf_like )";
180
 
181
+ $relevance_parts[] = "(case when
182
+ (" . $pre_field . $wpdb->terms . ".name" . $suf_field . " = '$s')
183
  then 5 else 0 end)";
184
  }
185
  /*---------------------------------------------------------------*/
188
  if ( isset( $searchData['selected-customfields'] ) ) {
189
  $selected_customfields = $searchData['selected-customfields'];
190
  if ( is_array( $selected_customfields ) && count( $selected_customfields ) > 0 ) {
191
+ $words = $options['set_exactonly'] == 1 ? array( $s ) : $_s;
192
+ $op = 'OR';
193
+
194
  foreach ( $selected_customfields as $cfield ) {
195
+ if ( count( $_s ) > 0 ) {
196
+ $_like = implode( "%'$suf_like " . $op . " " . $pre_field . $wpdb->postmeta . ".meta_value" . $suf_field . " LIKE $pre_like'%", $words );
197
+ } else {
198
+ $_like = $s;
199
+ }
200
+ $parts[] = "( $wpdb->postmeta.meta_key='$cfield' AND " . $pre_field . $wpdb->postmeta . ".meta_value" . $suf_field . " LIKE $pre_like'%" . $_like . "%'$suf_like )";
201
  }
202
  $postmeta_join = "LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID";
203
+
204
  }
205
  }
206
  /*---------------------------------------------------------------*/
415
 
416
 
417
  /*------------------------- WPML filter -------------------------*/
418
+ $wpml_query = "(1)";
419
+ if ( isset( $options['wpml_lang'] )
420
+ && w_isset_def( $searchData['wpml_compatibility'], 1 ) == 1
421
+ ) {
422
+ global $sitepress;
423
+ $site_lang_selected = false;
424
+
425
+ // Let us get the default site language if possible
426
+ if ( is_object($sitepress) && method_exists($sitepress, 'get_default_language') ) {
427
+ $site_lang_selected = $sitepress->get_default_language() == $options['wpml_lang'] ? true : false;
428
+ }
429
+
430
+ $wpml_query = "
431
  EXISTS (
432
  SELECT DISTINCT(wpml.element_id)
433
  FROM " . $wpdb->base_prefix . "icl_translations as wpml
434
  WHERE
435
  $wpdb->posts.ID = wpml.element_id AND
436
+ wpml.language_code = '" . $this->escape( $options['wpml_lang'] ) . "' AND
437
  wpml.element_type LIKE 'post_%'
438
  )";
439
+
440
+ // For missing translations..
441
+ // If the site language is used, the translation can be non-existent
442
+ if ($site_lang_selected) {
443
+ $wpml_query = "
444
+ NOT EXISTS (
445
+ SELECT DISTINCT(wpml.element_id)
446
+ FROM " . $wpdb->base_prefix . "icl_translations as wpml
447
+ WHERE
448
+ $wpdb->posts.ID = wpml.element_id AND
449
+ wpml.element_type LIKE 'post_%'
450
+ ) OR
451
+ " . $wpml_query;
452
+ }
453
+ }
454
  /*---------------------------------------------------------------*/
455
 
456
  /*--------------------- Other Query stuff -----------------------*/
494
  AND $term_query
495
  AND $like_query
496
  AND $exclude_posts
497
+ AND ( $wpml_query )
498
  GROUP BY
499
  $wpdb->posts.ID
500
  ";
includes/views/asl.shortcode.php CHANGED
@@ -2,7 +2,7 @@
2
  $id = self::$instanceCount;
3
  $real_id = self::$instanceCount;
4
  ?>
5
- <div id='ajaxsearchlite<?php echo self::$instanceCount; ?>'>
6
  <div class="probox">
7
 
8
  <?php do_action('asl_layout_before_magnifier', $id); ?>
@@ -79,7 +79,7 @@
79
  </div>
80
  </div>
81
 
82
- <div id='ajaxsearchlitesettings<?php echo $id; ?>' class="searchsettings">
83
  <form name='options'>
84
 
85
  <?php do_action('asl_layout_settings_before_first_item', $id); ?>
@@ -124,6 +124,12 @@
124
  <?php echo $style['searchincontenttext']; ?>
125
  </div>
126
 
 
 
 
 
 
 
127
  <div class="option<?php echo(($style['showsearchinposts'] != 1) ? " hiddend" : ""); ?>">
128
  <input type="checkbox" value="None" id="set_inposts<?php echo $id; ?>"
129
  name="set_inposts" <?php echo(($style['searchinposts'] == 1) ? 'checked="checked"' : ''); ?>/>
@@ -240,7 +246,7 @@
240
  </form>
241
  </div>
242
 
243
- <div id='ajaxsearchliteres<?php echo $id; ?>' class='<?php echo $style['resultstype']; ?>'>
244
 
245
  <?php do_action('asl_layout_before_results', $id); ?>
246
 
@@ -285,7 +291,7 @@
285
  $ana_options = get_option('asl_analytics');
286
  $scope = "asljQuery";
287
  ?>
288
- <div class="asl_init_data" style="display:none !important;" id="asl_init_id_<?php echo $id; ?>">
289
  {
290
  "homeurl": "<?php echo home_url('/'); ?>",
291
  "resultstype": "vertical",
2
  $id = self::$instanceCount;
3
  $real_id = self::$instanceCount;
4
  ?>
5
+ <div id='ajaxsearchlite<?php echo self::$instanceCount; ?>' class="wpdreams_asl_container">
6
  <div class="probox">
7
 
8
  <?php do_action('asl_layout_before_magnifier', $id); ?>
79
  </div>
80
  </div>
81
 
82
+ <div id='ajaxsearchlitesettings<?php echo $id; ?>' class="searchsettings wpdreams_asl_settings">
83
  <form name='options'>
84
 
85
  <?php do_action('asl_layout_settings_before_first_item', $id); ?>
124
  <?php echo $style['searchincontenttext']; ?>
125
  </div>
126
 
127
+ <div class="option hiddend">
128
+ <input type="checkbox" value="None" id="set_inexcerpt<?php echo $id; ?>"
129
+ name="set_inexcerpt" <?php echo(($style['searchinexcerpt'] == 1) ? 'checked="checked"' : ''); ?>/>
130
+ <label for="set_inexcerpt<?php echo $id; ?>"></label>
131
+ </div>
132
+
133
  <div class="option<?php echo(($style['showsearchinposts'] != 1) ? " hiddend" : ""); ?>">
134
  <input type="checkbox" value="None" id="set_inposts<?php echo $id; ?>"
135
  name="set_inposts" <?php echo(($style['searchinposts'] == 1) ? 'checked="checked"' : ''); ?>/>
246
  </form>
247
  </div>
248
 
249
+ <div id='ajaxsearchliteres<?php echo $id; ?>' class='<?php echo $style['resultstype']; ?> wpdreams_asl_results'>
250
 
251
  <?php do_action('asl_layout_before_results', $id); ?>
252
 
291
  $ana_options = get_option('asl_analytics');
292
  $scope = "asljQuery";
293
  ?>
294
+ <div class="asl_init_data wpdreams_asl_data_ct" style="display:none !important;" id="asl_init_id_<?php echo $id; ?>">
295
  {
296
  "homeurl": "<?php echo home_url('/'); ?>",
297
  "resultstype": "vertical",
js/nomin-scoped/jquery.ajaxsearchlite.js CHANGED
@@ -360,6 +360,15 @@
360
  $this.keycode = e.which;
361
  $this.ktype = e.type;
362
  }
 
 
 
 
 
 
 
 
 
363
  // Ignore arrows
364
  if ($this.keycode >= 37 && $this.keycode <= 40) return;
365
  if ($(this).hasClass('orig') && $this.ktype == 'click') return;
@@ -532,6 +541,7 @@
532
  success: function(data) {
533
  if (data[1].length > 0) {
534
  response = data[1][0][0].replace(/(<([^>]+)>)/ig,"");
 
535
  response = response.substr(val.length);
536
  $this.n.textAutocomplete.val(val + response);
537
  }
@@ -1370,7 +1380,7 @@
1370
  resize: function () {
1371
  var $this = this;
1372
 
1373
- if (detectIE()) {
1374
  $this.n.proinput.css({
1375
  width: ($this.n.probox.width() - 8 - ($this.n.proinput.outerWidth(false) - $this.n.proinput.width()) - $this.n.proloading.outerWidth(true) - $this.n.prosettings.outerWidth(true) - $this.n.promagnifier.outerWidth(true) - 10)
1376
  });
360
  $this.keycode = e.which;
361
  $this.ktype = e.type;
362
  }
363
+
364
+ if ($this.n.text.val().length < $this.o.charcount) {
365
+ $this.n.proloading.css('display', 'none');
366
+ $this.hideResults();
367
+ if ($this.post != null) $this.post.abort();
368
+ clearTimeout(t);
369
+ return;
370
+ }
371
+
372
  // Ignore arrows
373
  if ($this.keycode >= 37 && $this.keycode <= 40) return;
374
  if ($(this).hasClass('orig') && $this.ktype == 'click') return;
541
  success: function(data) {
542
  if (data[1].length > 0) {
543
  response = data[1][0][0].replace(/(<([^>]+)>)/ig,"");
544
+ response = $('<textarea />').html(response).text();
545
  response = response.substr(val.length);
546
  $this.n.textAutocomplete.val(val + response);
547
  }
1380
  resize: function () {
1381
  var $this = this;
1382
 
1383
+ if (detectIE() && 0) {
1384
  $this.n.proinput.css({
1385
  width: ($this.n.probox.width() - 8 - ($this.n.proinput.outerWidth(false) - $this.n.proinput.width()) - $this.n.proloading.outerWidth(true) - $this.n.prosettings.outerWidth(true) - $this.n.promagnifier.outerWidth(true) - 10)
1386
  });
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: wpdreams
3
  Donate link: http://wp-dreams.com
4
  Tags: search, better wordpress search, search plugin, relevance search, widget, Post, ajax search, search filter, wp ajax search, custom fields search, better search, ajax search plugin, wp search, wp search plugin, filter, relevant search plugin, wordpress search, live search, shortcode, google, autocomplete, suggest, woocommerce, woocommerce search, product, product search, custom search, ajax, suggest, autosuggest, autocomplete, search autocomplete, live, plugin, sidebar, product tag search, woocommerce tag search, WooCommerce Plugin, shop, search by sku, relevant search, highlight, term, image
5
  Requires at least: 3.5
6
- Tested up to: 4.3
7
- Stable tag: 4.5.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -108,6 +108,13 @@ and will let you know what to do.
108
 
109
  == Changelog ==
110
 
 
 
 
 
 
 
 
111
  = 4.5.4 =
112
  * Autocomplete and Keyword suggestions introduced
113
  * Keyboard navigation fixes
3
  Donate link: http://wp-dreams.com
4
  Tags: search, better wordpress search, search plugin, relevance search, widget, Post, ajax search, search filter, wp ajax search, custom fields search, better search, ajax search plugin, wp search, wp search plugin, filter, relevant search plugin, wordpress search, live search, shortcode, google, autocomplete, suggest, woocommerce, woocommerce search, product, product search, custom search, ajax, suggest, autosuggest, autocomplete, search autocomplete, live, plugin, sidebar, product tag search, woocommerce tag search, WooCommerce Plugin, shop, search by sku, relevant search, highlight, term, image
5
  Requires at least: 3.5
6
+ Tested up to: 4.4
7
+ Stable tag: 4.5.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
108
 
109
  == Changelog ==
110
 
111
+ = 4.5.5 =
112
+ * New menu: Compatibility Options
113
+ * Compatibility allowing to force case sensitive, insensitive, UTF8 and UNICODE queries
114
+ * Excerpt search fixed
115
+ * CSS fixes, including a placeholder fix
116
+ * A new escaping method, supporting more characters
117
+
118
  = 4.5.4 =
119
  * Autocomplete and Keyword suggestions introduced
120
  * Keyboard navigation fixes
search.php CHANGED
@@ -20,7 +20,8 @@ function ajaxsearchlite_search() {
20
  $s = $_POST['aslp'];
21
  $s = apply_filters('asl_search_phrase_before_cleaning', $s);
22
 
23
- $s = strtolower(trim($s));
 
24
  $s = preg_replace('/\s+/', ' ', $s);
25
 
26
  $s = apply_filters('asl_search_phrase_after_cleaning', $s);
20
  $s = $_POST['aslp'];
21
  $s = apply_filters('asl_search_phrase_before_cleaning', $s);
22
 
23
+ $s = stripcslashes($s);
24
+ $s = trim($s);
25
  $s = preg_replace('/\s+/', ' ', $s);
26
 
27
  $s = apply_filters('asl_search_phrase_after_cleaning', $s);