 
			
				13.07.2016, 21:17
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.07.2016 
					
					
					
						Сообщений: 78
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Убрать влияние регистра autocompleter.js + Joomla + K2
			 
			
		
		
		
		Здравствуйте. Есть сайт на cms Joomla с компонентом JA K2 Filter. Фильтр подключает autocompleter.js. 
 
Если в поле "адреса" начать вводить улицу, к примеру "Вокза...", то он должен выводить подсказки, что он собственно и делает. 
 
Но есть влияние регистра. К примеру если написать "вок..." он уже не найдет, потому что у меня везде с большой буквы слово "Вок...". 
 
Я могу в админке все названия заносить заглавными буквами, но вдруг пользователь будет искать маленькими буквами, и у него не будет подсказок. 
 
Можно ли сделать чтобы регистр не был чувствителен? 
 
Если нужны еще какие-либо данные, с радостью их предоставлю. 
Отблагодарю за помощь материально. 
 
Подсказки выводятся большими буквами, я применил к ним css: text-transform: uppercase; 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Leon2110, 14.07.2016 в 09:16.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2016, 22:23
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Leon2110, 
 строка 445 файл autocompleter.js 
data[this.options.postVar] = this.queryValue.toUpperCase(); 
 
добавить красное ... а лучше бы сервер отдавал независимо от регистра 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2016, 22:45
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.07.2016 
					
					
					
						Сообщений: 78
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Работает, но похоже только для первой буквы. Если начать "Э" или "э" работает, но если ввести второй символ, хоть большой хоть маленький уже подсказки нет. 
В модуле фильтра, эта часть написана так:
 
public function getTextfield($fieldname, $field){
		$html = $this->getMultiLevelField($fieldname, $field);
		if($html) {
			return $html;
		}
		$input = JFactory::getApplication()->input;
		$selected_values = $input->get($fieldname."_txt",'', 'STRING');
		
		$values = json_decode($field->value);
		if($values && $this->params->get('auto_complete', 0)){
			JHtml::script('com_finder/autocompleter.js', false, true);
		}
		$html = '';
		foreach ($values as $f)
        {
           	if($selected_values){
           		$f->value = $selected_values;
           	} else {
				//do not use default value for search form
				$f->value = '';
			}
           	$id = "auto_".$this->module->id."_".$fieldname."_txt";
        	$html .= "\n\t<input type=\"text\" class=\"exfield exgroup{$field->group}\" name=\"{$fieldname}_txt\" id=\"".$id."\" value=\"{$f->value}\" placeholder=\"{$field->name}\" />";
			if($this->params->get('auto_complete', 0)==1){
				$url = 'index.php?option=com_jak2filter&view=suggestions&m_id='.$this->module->id.'&xf_id='.$field->id.'&tmpl=component';
				
				$html .= '<script type="text/javascript">
							var completer_' . $this->module->id . '_' . $fieldname.' = new Autocompleter.Request.JSON(
								document.id(\''.$id.'\'), 
								\''.$url.'\', 
								{\'minLength\': 1, \'postVar\': \''.$id.'\'}
							); ';
							
				$html .= '</script>';	
							
			}
        }
        
	     return $html;
	}
Внизу переменная $html .= '<script..., я поставил там minLength\': 1 - это кол-во символов до подсказки.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Leon2110, 13.07.2016 в 22:58.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2016, 23:12
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Leon2110,
  
data[this.options.postVar] = this.queryValue.toLowerCase().replace(/^(.)/, function(a) {
    return a.toUpperCase()
});
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				13.07.2016, 23:16
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.07.2016 
					
					
					
						Сообщений: 78
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Большое спасибо, работает) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				14.07.2016, 01:29
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Rise,
    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				14.07.2016, 09:22
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.07.2016 
					
					
					
						Сообщений: 78
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Rise
			 
		
	 | 
 
	| 
		Leon2110, а если так "ЭНгельса"?
	 | 
 
	
 
 Работает теперь по всякому) Регистр перестал влиять) Магия js    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				14.07.2016, 11:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.07.2016 
					
					
					
						Сообщений: 78
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Я временно забирал файл autocompleter.js, посмотрите сейчас) 
Есть небольшие ошибки в К2, к примеру я создал материал с адресом "Островского...", на сайте он ищется нормально, после зашел в редактирование материала и поменял адрес на "Костровского..." и теперь в поиск попадают оба этих варианта и ведут они на один и тот же материал.  
Но уже уже не проблемы js, похоже К2 не стирает предыдущее значение из базы, а добавляет еще одно. Это уже сам покапаюсь как исправить. 
 
Похоже нужно еще лезть в базу смотреть, удалил материалы с улицами рогозина и прочие. А они в выпадающий список все равно попадают, и при поиске выдает что нет результатов. Правильно выдает нет, я же удалил их, но в базе где-то остались значения похоже) 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Leon2110, 14.07.2016 в 11:21.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				14.07.2016, 11:34
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.07.2016 
					
					
					
						Сообщений: 78
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Вообще интересно становится)) Удалил все материалы, а в поиске остались все подсказки всех улиц) 
 
Все, теперь проблема окончательно решена, в админке, в настройках фильтра есть кнопка "обновить индексы", эта функция ставит все на места. 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Leon2110, 14.07.2016 в 11:37.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				14.07.2016, 11:41
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Leon2110, 
изменения бывает кеш не показывает, обнулять нужно, чтоб увидеть изменения. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |