Создание яндекс острова к форме с токеном

Главные вкладки

Аватар пользователя Tiosteel Tiosteel 27 сентября 2013 в 9:21

Добрый день, поставили задачу сделать яндекс остров к определенной форме. Сайт, спасибо КО, на Drupal, который я не знаю вообще.

Проблема, соответственно, в том, что к форме, сгенерированной модулем webforms прибит токен.

Какие могут быть варианты решения?

яндекс острова, судя по тому, что я увидел в апи, умеют подгружать значения в поля из JSON ответа по указанному урлу, но, как оказалось, если в bitrix sessID хранились соответственно в сессии (и отдать токен можно было одним новым файлом с двумя строчками кода), то здесь токены хранятся где-то еще.

Нужно какое-то простое и не очень костыльное решение, чтобы и токен не убирать (я все равно не знаю, как это сделать только для одной формы), и из яндекса форма обрабатывалась.

Самое костыльное, и оно же самое крайнее решение - обработать яндекс форму простым скриптом, не имеющим ничего общего с Drupal, но не хочется доходить до этого.

Комментарии

Аватар пользователя drupby drupby 28 сентября 2013 в 2:27

"Tiosteel" wrote:
Добрый день, поставили задачу сделать яндекс остров к определенной форме. Сайт, спасибо КО, на Drupal, который я не знаю вообще.

если вы не работаете с друпалом , то почему взялись за выполнение данной задачи - совершенно не понятно
в таком случае задачи перенаправляются на аутсорс
Вам надо писать в раздел Поиск специалистов и работы

Аватар пользователя Tiosteel Tiosteel 28 сентября 2013 в 11:13

"drupby" wrote:
если вы не работаете с друпалом , то почему взялись за выполнение данной задачи - совершенно не понятно
в таком случае задачи перенаправляются на аутсорс

потому, что за несколько месяцев работы в текущей конторе я перевидал уже штук 20 разных цмсок, один раз даже делал задачу по сайту на perl, который я не знаю вообще, и ничего, вывозил как-то, зачастую без всяких костылей

конкретно эта задача то тривиальна, нужная форма легко нашлась в админке, нужный остров клепается минут 15-20, и весь вопрос в том, _как программно отрубить проверку токена при определенном условии_? либо как сделать трехстрочный скрипт, который отдаст этот токен JSONом? либо какой-то третий адекватный вариант, если он существует.

если для этого надо в совершенстве знать всю систему - я пошел писать дрянной костыль, но я не понимаю, неужели подобная элементарщина здесь настолько трудна?

"theСанитар" wrote:
Они так хотят отдать Яндексу свой контент?

не контент, а форму заявки
и даже если бы речь шла про контент, если это способно повысить конверсию - конечно, хотят

Аватар пользователя Andruxa Andruxa 28 сентября 2013 в 12:11

"Tiosteel" wrote:
Проблема, соответственно, в том, что к форме, сгенерированной модулем webforms прибит токен.

нет, не в этом

Form API помещает копию формы в кешформ перед её отправкой клиенту
соответственно - при сабмите проверяется, есть ли эта форма в кеше и их идентичность

лишь после прохождения такой валидации, форма будет обработана друпалом - такова логика его ядра

вам надо либо передавать в остров форму, сгенерённую ядром друпала,
либо делать прокладку, которая будет обрабатывать сабмит формы острова и передавать значения в друпал

м.б. это пригодится

Аватар пользователя Tiosteel Tiosteel 28 сентября 2013 в 12:34

"Andruxa" wrote:
вам надо либо передавать в остров форму, сгенерённую ядром друпала

понятно, спасибо, если попросят допилить, попробую этот вариант, а пока хватило топорной "прокладки" в виде яваскрипта, который в случае перехода пользователя с острова заполнил форму значениями, и сразу же сабмитнул ее

второй вариант я точно не вывезу, а на первый не уверен, что мне дадут времени
учитывая, что костыль не потребовал изменения исходников (js и проверка были добавлены в анонс формы через админку), результат мне скорее нравится, чем нет