Спасибо за ответы.
Я не думаю, что что-то спутал и т.п. Это не очень корректно ... И что же теперь всем, кто не знает это ядро - к ModX и близко не подходить ?
А, по теме вопроса ?.. По Вашим словам получается, что и этот форум не нужен. Не согласен.
Система делается для всех, а не только для профи.
Пока резюмирую - в ModX не предусмотрен обсчет переходов по внешним гиперссылкам. Но есть частные решения. Т.е. можно самому написать на php программу работы с базой данных, сохранить ее как сниппет и в дальнейшем пользоваться этим сниппетом. А для получения данных из базы надо написать еще один сниппет.
Продолжим.
Может кто-нибудь знает решения по этому вопросу, которые прошли проверку у разработчиков ModX или такие решения, которые они рекомендуют ? Это опять к тем, кто знает английский программистов.
Если нет, давайте вместе найдем лучший вариант. Уверен, многим пригодится.
Есть вариант с Гуглом. Минус - привязка своего сайта к чужому ресурсу. Но, наверно, кому-то понравится.
Про ajax-трекер. Спасибо за разъяснения. К сожалению, здесь мои познания кончаются. Вы не могли бы подробнее ?
Пожалуйста, выкладывайте свои php-решения. Соберем все в одном месте и этот вопрос закроем.
Quote from: PaulRus at Jan 23, 2011, 06:50 AM
Т.е. можно самому написать на php программу работы с базой данных, сохранить ее как сниппет и в дальнейшем пользоваться этим сниппетом. А для получения данных из базы надо написать еще один сниппет.
Кто такое утверждал? Для работы с базой надо использовать API MODx, а свои программы для реализации конкретных функций, да и сниппет писать может и не нужно – я же писал
Quote from: AKots at Jan 22, 2011, 10:53 AM
надо смотреть в репозитории и на форуме, что-то вроде из этой области было.
Ищите…
AKots. Программа на php вписывается в новый сниппет. Этот сниппет задействует возможности ModX, потому что это сниппет ModX и программа будет оперировать понятиями и определениями ModX, в т.ч. потому что будет брать данные, например из параметров конкретной страницы (заголовок, TV и т.д.).
А как иначе ? Можно обойтись без сниппета ? Напишите как на примере, конкретно !
Прошу по теме вопроса - обсчет гиперссылок. Можете помочь, помогите, а нет - не мешайте !
Если у кого-то есть решения вопроса обсчета переходов по гиперссылкам на внешние ресурсы (т.е. на другие сайты с Вашего), напишите их здесь. Пригодится всем.
Пока на форуме нашел вот такое решение от zk. Баннер - это таже гиперссылка на внешний ресурс.
"...Заказчик придумал новую проблему, считать клики по баннерам, ну а баннеры понятное дело просто выводятся с помощью ditto. Делать страничку с редиректом было скучно, соорудил следующую конструкцию:
В шаблоне ditto, добавил к ссылками параметр rel с id ресурса, вот так:
Code:
<a href="..." rel="[+id+]" >...</a>
Написал небольшой код на jquery (Здесь adverts — id контейнера с баннерами, /c.html — адрес страницы со сниппетом ):
Code:
$("#adverts a").each ( function () {
var link = $(this);
link.click(function () {
$.get( ’/c.html’, { id: link.attr(’rel’) }, function() { window.location = link.attr(’href’); } );
return false;
} );
})
А по адресу /c.html вставил такой сниппет:
Code:
<?php
if ((int)$_GET[’id’]>0) {
$docid = $_GET[’id’];
$field = $modx->getTemplateVar(’counter’, ’’, $docid );
$id = $field[’id’];
$counter = $field[’value’];
if ((int)$counter != 0 ) { $counter++; } else { $counter = 1; }
$tvc = $modx->getFullTableName(’site_tmplvar_contentvalues’);
if ($counter == 1) { $sql="INSERT INTO $tvc (tmplvarid, contentid, value) values ($id, $docid, ’$counter’)"; }
else { $sql="UPDATE $tvc SET value=’$counter’ WHERE tmplvarid=$id AND contentid=$docid"; };
$modx->db->query($sql);
}
?>
Теперь у ресурсов с баннерами надо добавить TV с названием counter и значением по умолчанию — 0, в нём будут считаться клики.
Получилось довольно просто и красиво. Защиты от накрутки нет, но можно при желании допилить, возможно сделаю ..."