Drupal 7 & Webform - додавання цілей Google та Яндекс
Завдання: додати на кнопку відправлення вебформи код відстеження цілей Яндекс метрики та/або Google Analytics.
Рішення: в template.php вставляємо наступний код:
Якщо потрібно повісити подію не на onclick, а на onsubmit (відправлення) форми, то код перетворюється на:
THEMENAME замінюємо на ім'я теми, ID на номер веб-форми, foobar на ваші значення.
Коментарі
Добридень. При додаванні
Добридень. При додаванні мети на кнопку потрібно прописувати id конкретної кнопки, якщо їх у формі кілька? Наприклад, кнопки "очистити" та "надіслати".
Ви спочатку у функції
Ви спочатку у функції вказуєте ['submit'] – це кнопка відправки. Додатково нічого не потрібно вказувати в звичайному випадку. Якщо ж у вас немає ['submit'] або вона кимось/чимось перепризначена, потрібно конкретно для цієї форми дивитися (через dsm, наприклад).
При вставці цього коду
При вставці цього коду перестає відображатись сайт, у чому може бути причина?
Причин може бути багато -
Причин може бути багато – включайте виведення помилок php/дивіться логи. Залежно від помилки буде зрозуміло, у чому проблема.
Відповідь звичайно
Відповідь звичайно просторова, яка не дає розуміння в чому може бути причина. Якщо код відсутній функція назва теми_form_alter. сайт працює і жодних змін не відбувається, як тільки додаю назву теми – сайт не відображається.
Відповідь приблизно така сама,
Відповідь приблизно така сама, як і питання. Причини можуть бути різні. Не бачачи конкретики помилки нічого точно зрозуміти не можна.
Не розумію як побачити помилку
Не розумію як побачити помилку, якщо немає відображення сайту?
Якщо ви бачите порожній білий
Якщо ви бачите порожній білийекран - отже у вас вимкнено виведення помилок php. Вам потрібно його увімкнути. Залежно від налаштувань та можливостей хостингу це робиться по-різному.
Ось тут можна почитати про те, як включити показ помилок. Або звертайтеся до саппорту, щоб вони вам це зробили.
Другий варіант - подивитися error.log вашого сайту в той момент, коли у вас відображається білий екран, в лог повинні писати помилки. Зазвичай лог доступний в панелі управління хостингу та/або фтп.
Ви просто мій герой.
Ви просто мій герой. Єдиний хто вказав, що міняти треба template.php, мені ж нубу незрозуміло. Спасибі вам.
Добридень. Мені необхідно
Добридень. Мені необхідно на всі форми повісити цілі Яндекса та Гугла. Спробую так function THEMENAME_form_alter(&$form, $form_state, $form_id) $form['#attributes']['onsubmit'] = "yaCounterNNNNN.reachGoal('foobar');"; $form['#attributes']['onsubmit'] = "gtag('send', 'pageview', '/virtual/foobar');"; > Не працює. Підкажіть, що роблю не так? Дякую.
Кеш скидали?
Кеш скидали? Що саме "не працює"? У тезі form код з'являється? Якщо так, то все працює.
p.s. більш правильно перевіряти форму, що це саме вебформа, а не ще щось, щоб помилкових спрацьовувань не було.
Так, дійсно, у тезі
Так, дійсно, у тезі form з'являється код. Але тільки від гугла, мабуть, бо він другим рядком прописаний. Як зробити, щоб одночасно і яндекс і гугл був? І як перевірити, що це саме вебформа? Дякую.
Щоб обидва виводилися – усі
Щоб обидва виводилися - всі параметри і для гугла, і для яндексу в одному рядку потрібно писати, а так ви їх перезаписуєте. Приблизно так:
Точно :) Дякую. А
Точно :) Дякую. А підкажіть ще, як додати перевірку на те, що це вебформа? Дякую.