Теперь осталось все это реализовать в духе времени... В идеале - в виде модуля... Может кто подскажет, где можно посмотреть примеры кода реализации какого-нибудь простенького модуля, с созданием таблиц на ядре D7? В мануале как-то все скудно...
Реализуется функционал поиска авиабилетов и номеров в отелях средствами API определенного посредника. То, что я хочу сохранять - это так называемые статические данные, которые обновляются достаточно редко. В целом они небольшого объема, но один запрос выдает около 40 МБ данных в формате json. Это справочник городов. В принципе, каждый поиск пользователя будет сопровождаться запросом к этим данным. Вся проблема в команде json_decode( этих данных ) - это очень ресурсоемкая операция и я хочу выполнять ее по расписанию ночью, раз в две-три недели и парсить все это в таблицы. json_decode выдает массив около 90000 элементов... Если каждый раз при запросе каждого пользователя будет лопатится такой объем - это фигово... Вот я и думаю как это кешировать... При каждом поиске пользователя, например при поиске авиабилетов, генерится выдача, где присутствуют некие города, информацию по которым можно извлечь из вышеуказанных статичных данных по ID города, но вся фигня в том, что список городов это массив, где ключ массива - это не ID города, а просто порядковый номер элемента массива, а ID города находится в самом элементе. Элемент - это ассоциативный массив, где один из элементов - ID города. Т.е. чтобы извлечь инфу по городу - нужно переберать весь массив. Стоит ли сохранять данный массив (90000 элементов) как элементы отдельного инфоблока? Наверное все-таки нужно городить отдельные таблицы...
Есть проект, в котором используется API стороннего партнера и через этот API предоставляется информация, которая обновляется примерно через две недели - месяц (не столь важно). Рекомендуется хранить эту инфу в кеше, у себя. Данная инфа предоставляется в формате json и если ее декодировать ( json_decode ), то получается массив примерно в 85000 - 90000 записей. У меня вопрос: стоит ли для этой инфы создавать инфоблоки и раз в две недели делать запрос к API и программно обновлять записи этого инфоблока? Или лучше записывать в файл?
Добрый день! Не знаю, знакома ли данная тема участникам, если знакома, то супер! Пытаюсь реализовать поиск авиабилетов и отелей на сайте. Вот пример авиапоиска: https://www.aviasales.ru/
Алгоритм вкратце: На экране выводится форма с полями "Откуда", "Куда", "Даты" и еще несколько полей типа количества человек и т.д. При нажатии кнопки "Поиск" форма отправляется, сервер делает запрос агенству, которое в свою очередь отдает мне ответ с одним параметром: search_id. Далее, на странице я вывожу сообщение, что поиск запущен и с определенной периодичностью отправляю на сервер ajax-запрос с этим search_id, сервер в свою очередь шлет запрос с этим search_id агенству и то, по мере сбора предложений от разных "Продавцов", выдает мне постепенно предложения, которые я показываю пользователю. Один нюанс: все показанные предложения действительны в течении 15 минут, после этого времени они становятся не актуальны и поиск нужно запускать заново, но то, что агрегировано поиском, по идее, нужно хранить 15 минут (т.е. кешировать), т.к. пользователь может применить какой-то фильтр и предложения придется у пользователя обновить (из кеша).
Так вот, я не могу для себя решить, как реализовывать этот алгоритм в битриксе? По идее, нужно реализовать в виде компонента, например использовать bitrix:form.result.new (допиленный)... Но тут появляются сомнения... 1. Мне, во первых, не нужно сохранять результаты отправки формы (зачем?) 2. Я не пойму, пригодится ли здесь основное преимущество компонента - кеш? Ведь кеш нужен только одному челу и то на 15 минут. Тут у меня такой вопрос: после того, как человек "уйдет", что станет с этим кешем (даже если время его жизни будет 15 минут), он останется в системе или как-то будет удален битриксом по истечении 15 минут? (Я догадываюсь, что кеш в битриксе либо удаляется вручную, либо обновляется при повторном обращении... После 15 минут человек совершит новый поиск, с новым search_id и для этого запроса будет сформирован новый кеш... А старый останется?)
Помогите еще не совсем опытному пользователю решить эти вопросы... На данный момент все реализовано без всяких компонентов и с самопильным кешем...
Проблема в том, что в административной панели не отображается структура сайта. А точнее так...
В левой панели, "Структура сайта - Файлы и папки" и далее - структура папок отображается, но в правой панели, где я должен видеть и папки и файлы, всегда пусто, точнее таблица со всеми контролами отображается, а внутри таблицы написано "- Нет данных -"
Как мне исправить такое некорректное поведение?
ПС: данный сайт достался в наследство и что с ним делали до этого, я не знаю, но на лицо данный косяк.
Если я выбираю пункт меню "Массаж", то активными становятся два пункта меню: "Главная" и "Массаж". Это нежелательно. Если я к путям припишу названия файлов, например /v2/massage/index.php, то подсвечиваться будет только один пункт меню. Можно ли реализовать подсвечивание только одного пункта при использовании только путей "/v2/massage/"?
Создал инфоблок со свойствами. Одно из свойств - строка, и в каждом элементе туда заносится url-адрес. При выводе этого свойства в шаблоне компонента через $arItem["DISPLAY_PROPERTIES"]["URL"]["DISPLAY_VALUE"], замечаю, что DISPLAY_VALUE - это не изначальная строка, а строка, преобразованная в элемент <a href="VALUE">VALUE</a>
Почему так происходит? Можно ли это отменить? В чем различие VALUE и DISPLAY_VALUE и что правильнее применять?
Странно, в теоретической части я кажется ни разу не встречал, что простой компонент может использовать шаблон комплексного компонента, зарытого в такие глубины... Полдня сегодня потратил, чтобы докопаться до этого.
На странице сайта подключаю стандартный компонент bitrix.news, в шаблон сайта кладу копию шаблона компонента и модифицирую его, но изменений не происходит (даже при сбросе кэша). Делаю модификации в родных шаблонах компонента - изменений нет. Подозреваю, что грузится какой-то иной шаблон, но какой - понять не могу. Можно ли какими-то средствами узнать, какой шаблон загружается?
Нет, как раз шаблон-то по условию применяется, это видно в отладчике (в каждом шаблоне генерится строка в комментах с названием шаблона). Выдается header.php и footer.php из шаблона, а между ними, вместо пустоты (пока) - главное меню. Откуда оно - понять не могу.
Делаю каталог товаров для инет-магазина. В настройках инфоблока прописаны URL-и для инфоблока, раздела и детального просмотра: #SITE_DIR#/catalog/?BLOCK_ID=#IBLOCK_ID# #SITE_DIR#/catalog/?SECTION_ID=#SECTION_ID# #SITE_DIR#/catalog/?ID=#ELEMENT_ID#
В структуре директорий папки "catalog" нет. В настройках сайта прописал условие для применения шаблона: для файла или папки "/catalog/" - применять нужный шаблон, в котором хочу реализовать вывод элементов каталога.
При вызове в браузере страницы каталога (т.е. www.site.ru/catalog/SECTION_ID=2) в теле страницы (т.е. между header.php и footer.php) выводится главное меню. Я не пойму, почему оно выводится и как отключить его.
Выбираю Инфоблоки - Импорт - CSV, выбираю сам файл (в файле разделитель - знак табуляции), тип и сам инфоблок. Далее выбираю "с разделителями", "табуляция" и т.д. Вот выдержка из файла:
A0GG1BNTTN1075 NT-TN1075 SEINE NT-TN1075 G&G Тонер-картридж для Brother HL-1110R/1112R, DCP-1510R/1512R, MFC-1810R/1815R 02 78 0 1046 1046 A0GG1B A0GG1BNTTN2075 NT-TN2075 SEINE NT-TN2075 G&G Тонер картридж для Brother HL-2030R/2040R/2070NR, FAX-2825R/2920R 02 156 13 1628 1628 A0GG1B A0GG1BNTTN2090 NT-TN2090 SEINE NT-TN2090 G&G Тонер картридж для Brother HL-2132 02 307 18 1267 1267 A0GG1B
Там "NT-TN1075 G&G Тонер-картридж для Brother HL-1110R/1112R, DCP-1510R/1512R, MFC-1810R/1815R" - это одно поле с пробелами, но импортируется оно следующим образом:
"NT-TN1075 G&G "
т.е. включен первый и второй пробел, все остальное обрезано.