Потребовалось реализовать штуку, которая будет работать как привязка к элементам с автозаполнением в админке, только в пользовательской части сайта.
Т.е. вводим что-то в текстовый инпут и нам уже выдаются похожие варианты из базы.
Мысль такая - если такое реализовано в админке - то значит где - то этот код есть. Было решено найти его. Достаточно было открыть консоль и посмотреть куда улетает AJAX запрос в админке
скрипт оказался таким -
окей, думаю я, теперь достаточно скормить нужные GET-параметры этому скрипту. Копирую компонент в свое пространство имен, затем отправляю запрос
скрипт отрабатывает, но...ничего не возвращает.
Пришлось дебажить. обрыв скрипта происходит в файле
в функции
на строчке
очень странно. как вывод буферизации может валить скрипт? смотрю callback-функцию EndBufferContent, но вижу, что я в нее даже не попадаю.
распечатываю $APPLICATION и вижу такую строку
я сижу под админом. как может быть неверный логин и пароль?
Т.е. вводим что-то в текстовый инпут и нам уже выдаются похожие варианты из базы.
Мысль такая - если такое реализовано в админке - то значит где - то этот код есть. Было решено найти его. Достаточно было открыть консоль и посмотреть куда улетает AJAX запрос в админке
скрипт оказался таким -
| Код |
|---|
/bitrix/components/bitrix/main.lookup.input/templates/iblockedit/ajax.php |
окей, думаю я, теперь достаточно скормить нужные GET-параметры этому скрипту. Копирую компонент в свое пространство имен, затем отправляю запрос
| Код |
|---|
$(document).ready(function(){
$('#ajaxGames').on('keyup',function(){
var search = $('#ajaxGames').val();
var iblock_id = $('#ajaxGamesIblock').val();
var mode = 'SEARCH';
var type = 'ELEMENT';
var admin = 'Y';
var lang = 'ru';
var site = 'ru';
$.ajax({
url: "/bitrix/components/interrao-sport/main.lookup.input/templates/iblockedit/ajax.php",
type: "GET",
data: {IBLOCK_ID:iblock_id, MODE:mode, TYPE:type, admin:admin, lang:lang, search:search, site:site}
}).done(function(){
});
});
}); |
скрипт отрабатывает, но...ничего не возвращает.
Пришлось дебажить. обрыв скрипта происходит в файле
| Код |
|---|
/bitrix/modules/main/classes/general/main.php |
| Код |
|---|
public static function PrologActions() |
на строчке
| Код |
|---|
ob_start(array(&$APPLICATION, "EndBufferContent")); |
очень странно. как вывод буферизации может валить скрипт? смотрю callback-функцию EndBufferContent, но вижу, что я в нее даже не попадаю.
распечатываю $APPLICATION и вижу такую строку
| Код |
|---|
[ERROR_STACK] => Array ( [0] => CApplicationException Object ( [msg] => Неверный логин или пароль. [id] => ) |
я сижу под админом. как может быть неверный логин и пароль?