Drupal 7 & Webform - добавяне на цели на Google и Yandex

Задача: да добавите код за проследяване на показателите на Yandex и/или целите на Google Analytics към бутона за изпращане на уеб формата.

Решение: в template.php вмъкваме следния код:

Ако трябва да окачите събитие не на onclick, а на onsubmit (изпращане) на формуляра, тогава кодът се преобразува в:

THEMENAME се заменя с името на темата, ID с номера на уеб формуляра, foobar с вашите стойности.

Коментари

Добър ден. При добавяне

Добър ден. Когато добавяте цел към бутон, необходимо ли е да посочите идентификатора на конкретен бутон, ако има няколко от тях във формата? Например бутоните "изчисти" и "изпрати".

Първоначално сте във функция

Първоначално посочвате ['submit'] във функцията - това е бутонът за изпращане. Освен това в обичайния случай не е необходимо да се уточнява нищо. Ако нямате ['submit'] или е преназначено от някой/нещо, тогава трябва да потърсите специално тази форма (през dsm например).

Когато поставяте този код

Когато поставите този код, сайтът спира да се показва, каква може да е причината?

Може да има много причини -

Може да има много причини - включете php извеждане на грешки / погледнете логовете. В зависимост от грешката ще стане ясно какъв е проблемът.

Отговор разбира се

Отговорът разбира се е пространствен, не дава разбиране за това каква може да е причината. Ако няма функция в кода, името на theme_form_alter. сайтът работи и няма промени, щом добавя името на темата - сайтът не се показва.

Отговорът е почти същият

Отговорът е приблизително същият като въпроса. Причините може да са различни. Без да се види спецификата на грешката, е невъзможно да се разбере нещо със сигурност.

Не разбирам как да видя грешката

Не разбирам как да видя грешка, ако сайта не се показва?

Ако видите празно бяло

Ако видите празно бялоекран - това означава, че сте деактивирали извеждането на php грешка. Трябва да го активирате. В зависимост от настройките и възможностите на хостинга това става по различни начини.

Тук https://www.drupal.org/node/158043 можете да прочетете как да активирате показването на грешки. Или се свържете с поддръжката, за да го накарате да го направи вместо вас.

Вторият вариант е да погледнете error.log на вашия сайт в момента, когато имате бял екран, грешките трябва да бъдат записани в лога. Обикновено дневникът е достъпен в контролния панел на хостинга и/или чрез ftp.

Ти си просто моят герой.

Ти си просто моят герой. Единственият, който посочи, че е необходимо да се промени template.php, не разбирам noob. Благодаря ти.

Добър ден. нуждая се

Добър ден. Трябва да окача целите на Yandex и Google на всички формуляри. Опитвам тази функция THEMENAME_form_alter(&$form, $form_state, $form_id) $form['#attributes']['onsubmit'] = "yaCounterNNNNN.reachGoal('foobar');"; $form['#attributes']['onsubmit'] = "gtag('send', 'pageview', '/virtual/foobar');"; > Не работи. Кажете ми какво правя погрешно? Благодаря ти.

Паднаха пари?

Паднаха пари? Какво точно „не работи“? Показва ли се кодът в тага на формуляра? Ако да, тогава всичко работи.

p.s. по-правилно е да проверите формуляра, че това е уеб формуляр, а не нещо друго, за да няма фалшиви положителни резултати.

Да, наистина, в етикета

Да, наистина, кодът се появява в тага на формуляра. Но само от Google, вероятно защото е регистриран на втория ред. Как да направя така, че Yandex и Google да са едновременно? И как да проверя дали това е уеб формуляр? Благодаря ти.

Към двата изхода - всички

За да се показват и двете, трябва да напишете всички параметри и за Google, и за Yandex в един ред, в противен случай ги презаписвате. Като това:

Точно :) Благодаря. А

Точно :) Благодаря. И кажете ми още как да добавя проверка, че това е уеб формуляр? Благодаря ти.