Получение информации о поисковой системе с которой пришёл пользователь и запросе — различия между версиями
Davidov (обсуждение | вклад) м (переименовал «При отправке письма через модуль "Обратная связь" добавлять информацию о поисковой системе и поисковом запросе» в «[[Получ) |
Davidov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | Рассмотрим на примере добавления данной информации в письма модуля "Обратная связь". | ||
Для реализации поставленной задачи можно написать кастомный макрос, который будет получать адрес страницы, с которой пришёл пользователь, проверять с какого поисковика он пришёл и по какому запросу. | Для реализации поставленной задачи можно написать кастомный макрос, который будет получать адрес страницы, с которой пришёл пользователь, проверять с какого поисковика он пришёл и по какому запросу. | ||
Макрос может иметь следующий вид: | Макрос может иметь следующий вид: |
Версия 11:14, 15 мая 2012
Рассмотрим на примере добавления данной информации в письма модуля "Обратная связь". Для реализации поставленной задачи можно написать кастомный макрос, который будет получать адрес страницы, с которой пришёл пользователь, проверять с какого поисковика он пришёл и по какому запросу. Макрос может иметь следующий вид:
public function searchAndWords($template = "default"){
list($template_block, $template_block_empty, $template_line) = def_module::loadTemplates($template, "stat_block");
$block_arr = Array();
$referer =getSession("http_referer");
if (stristr($referer, 'yandex')) {
$pos=strpos($referer, 'text=')+5;
$pos2=strpos($referer, '&');
$l=$pos2-$pos;
$search = substr($referer, $pos,$l);
$search = urldecode($search);
$crawler = 'Yandex';
}
if (stristr($referer, 'google')) {
$pos=strpos($referer, 'q=')+2;
$pos2=strpos($referer, '&');
$l=$pos2-$pos;
$search = substr($referer, $pos,$l);
$search = urldecode($search);
$crawler = 'Google';
}
$block_arr['crawler']=$crawler;
$block_arr['wordquery']=$search;
$block_arr['http_referer']=$referer;
return def_module::parseTemplate($template_block, $block_arr);
}
Код макроса нужно поместить в файл ~/classes/modules/custom.php после строчки //TODO: Write your own macroses here. TPL вариант макроса %custom searchAndWords()%, в XSLT макрос будет вызываться через udata://custom/searchAndWords/. Макрос в TPL будет работать с шаблонами в директории ~/tpls/, шаблон он принимает в качестве параметра, по умолчанию будет вызван шаблон default.tpl, который может иметь следующее содержимое:
<?php
$FORMS = Array();
$FORMS['stat_block'] = <<<STAT_BLOCK
<h3>Комментарии</h3>
%crawler%
%wordquery%
%http_referer%
STAT_BLOCK;
?>
crawler содержит в себе поисковик (на данном примеры рассмотрены основы разбора Google и Yandex), wordquery содержит поисковый запрос, http_referer страницу, с которой пришёл пользователь. Данный макрос можно разместить в шаблоне письма обратной связи, тогда эта информация будет отправлена получателю.