We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 22845
    • 5 Posts
    Спасибо за ответы.
    Я не думаю, что что-то спутал и т.п. Это не очень корректно ... И что же теперь всем, кто не знает это ядро - к ModX и близко не подходить ?
    А, по теме вопроса ?.. По Вашим словам получается, что и этот форум не нужен. Не согласен.
    Система делается для всех, а не только для профи.
    Пока резюмирую - в ModX не предусмотрен обсчет переходов по внешним гиперссылкам. Но есть частные решения. Т.е. можно самому написать на php программу работы с базой данных, сохранить ее как сниппет и в дальнейшем пользоваться этим сниппетом. А для получения данных из базы надо написать еще один сниппет.
    Продолжим.
    Может кто-нибудь знает решения по этому вопросу, которые прошли проверку у разработчиков ModX или такие решения, которые они рекомендуют ? Это опять к тем, кто знает английский программистов.
    Если нет, давайте вместе найдем лучший вариант. Уверен, многим пригодится.
    Есть вариант с Гуглом. Минус - привязка своего сайта к чужому ресурсу. Но, наверно, кому-то понравится.
    Про ajax-трекер. Спасибо за разъяснения. К сожалению, здесь мои познания кончаются. Вы не могли бы подробнее ?
    Пожалуйста, выкладывайте свои php-решения. Соберем все в одном месте и этот вопрос закроем.
      • 785
      • 2,113 Posts
      Quote from: PaulRus at Jan 23, 2011, 06:50 AM

      Т.е. можно самому написать на php программу работы с базой данных, сохранить ее как сниппет и в дальнейшем пользоваться этим сниппетом. А для получения данных из базы надо написать еще один сниппет.
      Кто такое утверждал? Для работы с базой надо использовать API MODx, а свои программы для реализации конкретных функций, да и сниппет писать может и не нужно – я же писал
      Quote from: AKots at Jan 22, 2011, 10:53 AM

      надо смотреть в репозитории и на форуме, что-то вроде из этой области было.
      Ищите…
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 22845
        • 5 Posts
        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, в нём будут считаться клики.
        Получилось довольно просто и красиво. Защиты от накрутки нет, но можно при желании допилить, возможно сделаю ..."