Добрый день, поставили задачу сделать яндекс остров к определенной форме. Сайт, спасибо КО, на Drupal, который я не знаю вообще.
Проблема, соответственно, в том, что к форме, сгенерированной модулем webforms прибит токен.
Какие могут быть варианты решения?
яндекс острова, судя по тому, что я увидел в апи, умеют подгружать значения в поля из JSON ответа по указанному урлу, но, как оказалось, если в bitrix sessID хранились соответственно в сессии (и отдать токен можно было одним новым файлом с двумя строчками кода), то здесь токены хранятся где-то еще.
Нужно какое-то простое и не очень костыльное решение, чтобы и токен не убирать (я все равно не знаю, как это сделать только для одной формы), и из яндекса форма обрабатывалась.
Самое костыльное, и оно же самое крайнее решение - обработать яндекс форму простым скриптом, не имеющим ничего общего с Drupal, но не хочется доходить до этого.
Комментарии
Они так хотят отдать Яндексу свой контент?
если вы не работаете с друпалом , то почему взялись за выполнение данной задачи - совершенно не понятно
в таком случае задачи перенаправляются на аутсорс
Вам надо писать в раздел Поиск специалистов и работы
потому, что за несколько месяцев работы в текущей конторе я перевидал уже штук 20 разных цмсок, один раз даже делал задачу по сайту на perl, который я не знаю вообще, и ничего, вывозил как-то, зачастую без всяких костылей
конкретно эта задача то тривиальна, нужная форма легко нашлась в админке, нужный остров клепается минут 15-20, и весь вопрос в том, _как программно отрубить проверку токена при определенном условии_? либо как сделать трехстрочный скрипт, который отдаст этот токен JSONом? либо какой-то третий адекватный вариант, если он существует.
если для этого надо в совершенстве знать всю систему - я пошел писать дрянной костыль, но я не понимаю, неужели подобная элементарщина здесь настолько трудна?
не контент, а форму заявки
и даже если бы речь шла про контент, если это способно повысить конверсию - конечно, хотят
нет, не в этом
Form API помещает копию формы в кешформ перед её отправкой клиенту
соответственно - при сабмите проверяется, есть ли эта форма в кеше и их идентичность
лишь после прохождения такой валидации, форма будет обработана друпалом - такова логика его ядра
вам надо либо передавать в остров форму, сгенерённую ядром друпала,
либо делать прокладку, которая будет обрабатывать сабмит формы острова и передавать значения в друпал
м.б. это пригодится
понятно, спасибо, если попросят допилить, попробую этот вариант, а пока хватило топорной "прокладки" в виде яваскрипта, который в случае перехода пользователя с острова заполнил форму значениями, и сразу же сабмитнул ее
второй вариант я точно не вывезу, а на первый не уверен, что мне дадут времени
учитывая, что костыль не потребовал изменения исходников (js и проверка были добавлены в анонс формы через админку), результат мне скорее нравится, чем нет