Главная страница / Советы / Использование счетчиков
ноябрь 23 2006

Использование счетчиков

celsoft 23 ноября 2006 Советы 36 342
Добрый день уважаемые посетители,

как вы наверное знаете последние версии DataLife Engine поддерживают включение навигации по страницам при помощи технологии AJAX. Но многие отказываются от этой возможности по причине того что страница не обновляется и резко падают показания счетчиков и число хостов совпадает с числом хитов, также теряется статиcтика по посещениям страниц. Это связано с тем что все счетчики использую для вывода javascript кода функцию document.write которая несовместима с технологией AJAX т.к. выводит информацию в текущую позицию документа, а при использовании AJAX документ уже в браузере. На самом деле использование счетчиков возможно, но тут необходимы небольшие знания javascript чтобы сделать счетчики совместимыми с технологией AJAX, в данной статье я постараюсь объяснить вам как это можно сделать

Итак возмем для примера простой счетчик:
<script Language="javascript">
<!--
Nnv=navigator;Nna=Nnv.appName;Nd=document;Nd.cookie="b=b";Nc=0;if(Nd.cookie)Nc=1;
Nn=(Nna.substring(0,2)=="Mi")?0:1;Ns=screen;Npx=(Nn==0)?Ns.colorDepth:Ns.pixelDepth;
str='<img src="http://warlog.info:8081/126;'+Ns.width+'x'+Ns.height+';'+Npx+';'+Nc+';';
str=str+escape(Nd.referrer)+';'+Math.random()+'" width="88" height="31" border="0">';
document.write("<a target=_blank href=http://warlog.info/cgi-bin/cshow>"+str+"</a>");
// -->
</script>

Этот код мы получили после регистрации на сайте, и теперь нам необходимо вставить его на все страницы своего сайта.

Открываем файл шаблона main.tpl и добавляем в нужном нам месте где будет стоять счетчик следующий код:
<div id="dle-counter"><script Language="javascript">
<!--
Nnv=navigator;Nna=Nnv.appName;Nd=document;Nd.cookie="b=b";Nc=0;if(Nd.cookie)Nc=1;
Nn=(Nna.substring(0,2)=="Mi")?0:1;Ns=screen;Npx=(Nn==0)?Ns.colorDepth:Ns.pixelDepth;
str='<img src="http://warlog.info:8081/126;'+Ns.width+'x'+Ns.height+';'+Npx+';'+Nc+';';
str=str+escape(Nd.referrer)+';'+Math.random()+'" width="88" height="31" border="0">';
document.write("<a target=_blank href=http://warlog.info/cgi-bin/cshow>"+str+"</a>");
// -->
</script></div>

где
<div id="dle-counter"></div>

это просто идентификатор места где расположен счетчик чтобы мы его могли в дальнейшем найти на странице.

Теперь отрываем файл engine/ajax/pages.php и именно этот файл отвечает за вывод страниц при помощи AJAX и в самом низу перед:
?>

Добавляем следующий код:
echo <<<HTML
<script Language="javascript">
<!--
Nnv=navigator;Nna=Nnv.appName;Nd=document;Nd.cookie="b=b";Nc=0;if(Nd.cookie)Nc=1;
Nn=(Nna.substring(0,2)=="Mi")?0:1;Ns=screen;Npx=(Nn==0)?Ns.colorDepth:Ns.pixelDepth;
str='<img src="http://warlog.info:8081/126;'+Ns.width+'x'+Ns.height+';'+Npx+';'+Nc+';';
str=str+escape(Nd.referrer)+';'+Math.random()+'" width="88" height="31" border="0">';
document.getElementById('dle-counter').innerHTML = "<a target=_blank href=http://warlog.info/cgi-bin/cshow>"+str+"</a>";
// -->
</script>
HTML;

Что мы сделали, а сделали мы простое: Мы заменили функцию document.write(""); в счетчике на document.getElementById('dle-counter').innerHTML = ""; чтобы выводить счетчик не в текущую позицию документа, а именно туда, куда мы указали. В данном случае dle-counter.

Ну вот и все дамы и господа, все достаточно просто, главное это немного внимательности и немного знания javascript и тогда все просто будут завидовать уникальным возможностям вашего портала.

Комментарии

  1. fsn (Посетители)

    23 ноября 2006 15:21 3 комментария
    А если счётчик не использует ява скрипты, то тогда как быть?
    к примеру вот такой

    <!--Top-->
    <a href="http://www.bla_bla/top/?id=12345" target="_blank" ><img border=0 width=88 height=31
    src="http://www.bla.com/top/logo/index.php?id=6851" alt="BLAbla Top. "></a>
    <!--Top-->

    и ещё, вот это метка для всех счётчиков одинаковая? или там надо менять внутри переменную?
    <div id="dle-counter"></div> ?
    спасибо
  2. celsoft (Администраторы)

    23 ноября 2006 15:57 3 443 комментария
    Цитата: fsn
    А если счётчик не использует ява скрипты, то тогда как быть?

    неважно использует счетчик скрипты или нет, на примере я написал как обновить информацию в нужном месте. В любом случае вам будут необходимы знания JavaScript, потому что AJAX написан на JavaScript и оперировать с ним можно только через JavaScript. Счетчик который не использует JavaScript можно элементарно добавить в шаблоны сделав картинку размером в 1 пиксель и не мучаться
    Цитата: fsn
    и ещё, вот это метка для всех счётчиков одинаковая? или там надо менять внутри переменную?
    <div id="dle-counter"></div> ?

    Приведенный пример использует один счетчик если счетчиков несколько вам решать использовать одну метку или нет, можно использовать одну обновляя там информацию о всех счетчиков, либо использовать каждый по отдельности.
  3. Slamer (Клиенты)

    23 ноября 2006 16:57 14 комментариев
    умниЦа wink
  4. fsn (Посетители)

    23 ноября 2006 17:42 3 комментария
    celsoft,
    к примеру у меня 3 счётчика, то в main.tpl мне нужно перед каждым ставить метку,"<div id="dle-counter"></div>" и в аякс добавить эти 3 счётчика,но переделав скрипт, так? или поставить одну метку только в mait.tpl , а в аякс поместить 3 переделанных?

    _____________________________________________________________________________
    вот у меня был такой код

    <script type="text/javascript"><!--
    document.write('<a href="http://click.kmindex.ru/?uid=12345" target=_top><img '+
    'src="http://counting.kmindex.ru/10.gif?uid=12345&r='+escape(document.referrer)+
    '&'+Math.random()+'" width=88 height=31 border=0 alt=KMindex></a>')
    //--></script>


    я переделал на такой

    echo <<<HTML
    <script type="text/javascript"><!--
    document.getElementById('dle-counter').innerHTML = "<a href="http://click.kmindex.ru/?uid=12345" target=_top><img '+
    'src="http://counting.kmindex.ru/10.gif?uid=123456&r='+escape(document.referrer)+
    '&'+Math.random()+'" width=88 height=31 border=0 alt=KMindex></a>";
    //--></script>
    HTML;

    но при переходе внизу страницы пишет" Error on page ", это я неправильно сделал ? или так и должно быть?
  5. BlackM (Посетители)

    23 ноября 2006 19:52 1 комментарий
    2 fsn
    document.getElementById('dle-counter').innerHTML = "<
    меняй на
    document.getElementById('dle-counter').innerHTML = '<
    и
    '&'+Math.random()+'" width=88 height=31 border=0 alt=KMindex></a>";
    на
    '&'+Math.random()+'" width=88 height=31 border=0 alt=KMindex></a>';

    и должно заработать
  6. fsn (Посетители)

    23 ноября 2006 20:10 3 комментария
    BlackM,
    спасибо, теперь заработало=),
    а вот этот вопрос как?
    к примеру у меня 3 счётчика, то в main.tpl мне нужно перед каждым ставить метку,"<div id="dle-counter"></div>" и в аякс добавить эти 3 счётчика,но переделав скрипт, так? или поставить одну метку только в mait.tpl , а в аякс поместить 3 переделанных?
  7. celsoft (Администраторы)

    23 ноября 2006 20:35 3 443 комментария
    Для обсуждения того или иного кода есть форум поддержки. Не думаю что комментарии подходящее место для решения своих проблем.
  8. GURU (Посетители)

    25 ноября 2006 00:24 20 комментариев
    В примере можно показать а то я так и не понял для чего он ?
  9. o_romka (Клиенты)

    1 декабря 2006 18:40 7 комментариев
    я поступил проще при регистрации счетчика LiveInternet выбрал вариант из двух строк, где 1-я строка это картинка где отображается результат, а 2-я строка сам счетчик.
    На главную страницу вывел все две строки, а в полную новость добавил лишь вторую.
  10. d-view (Посетители)

    5 декабря 2006 07:52 37 комментариев
    Вопрос celsoft'у..

    Интересует следующее..

    Теоретически топ новостей зависит от числа просмотров, числа коментов и рейтинга (средний бал и количество проголосовавших).. Такие вещи как переходы на страницу с новостью и ссылки на нее думаю можно не включать, так как движок врядли их учитывает..
    Хотя если честно, то иногда возникает подозрение, что в топ новостей выхватываются первые попавшиеся новости.. Но дело сейчас не об этом, так как меня интересует следующее..
    Если включить аякс, то включенный в движок счетчик просмотра не будет работать.. Значит ли это, что при включенном аяксе топ новостей не будет отображать реальный рейтинг новостей?! smile

    P.s.: На оф.форуме Вы заявили, что не собираетесь переписывать счетчик для работы при включенном аяксе..
  11. celsoft (Администраторы)

    5 декабря 2006 11:01 3 443 комментария
    Цитата: d-view
    Если включить аякс, то включенный в движок счетчик просмотра не будет работать.. Значит ли это, что при включенном аяксе топ новостей не будет отображать реальный рейтинг новостей?!

    почему не будет, будет работать что ему мешает? Он же не графический элемент, который находится на сервере, счетчик ведет подсчет средствами PHP.
    Цитата: d-view
    На оф.форуме Вы заявили, что не собираетесь переписывать счетчик для работы при включенном аяксе..

    непонял, где это я заявил, дайте ссылку на тему.
  12. d-view (Посетители)

    5 декабря 2006 12:23 37 комментариев
    Цитата: celsoft
    непонял, где это я заявил, дайте ссылку на тему.

    Пост №8 в этой теме..
    http://forum.dle-news.ru/index.php?showtopic=29410
    Там как раз обсуждается проблема счетчиков..
    Цитата: celsoft
    нет, я не буду делать счетчиков

    Возможно я сейчас спрошу глупость, так как совершенно не разбираюсь в программировании, но у меня возникает резонный вопрос..

    Цитата: celsoft
    почему не будет, будет работать что ему мешает? Он же не графический элемент, который находится на сервере, счетчик ведет подсчет средствами PHP.

    Почему нельзя выводить количество просмотров новости, используя тот же счетчик, который ведет подсчеты для топа новостей?! Неужели это нельзя реализовать в движке?
  13. celsoft (Администраторы)

    5 декабря 2006 13:12 3 443 комментария
    Цитата: d-view
    Пост №8 в этой теме..
    http://forum.dle-news.ru/index.php?showtopic=29410
    Там как раз обсуждается проблема счетчиков..

    Цитата: d-view
    Почему нельзя выводить количество просмотров новости, используя тот же счетчик, который ведет подсчеты для топа новостей?! Неужели это нельзя реализовать в движке?

    Вы путаете понятия, сторонние счетчики собирающие статистику посещений сайта, это одно, внутренний счетчик просмотра новостей это абсолютно другое. Все что встроено в скрипт работает без сбоев, независимо от того влючен AJAX или нет. И нигде не написано что счетчик просмотра новостей нельзя использовать и выводить.

    Для сторонних счетчиков и предназначена написанная здесь статья. И то не для всех, а только для тех что используют для вывода JavaScript
  14. d-view (Посетители)

    5 декабря 2006 13:55 37 комментариев
    Цитата: celsoft
    Вы путаете понятия, сторонние счетчики собирающие статистику посещений сайта, это одно, внутренний счетчик просмотра новостей это абсолютно другое. Все что встроено в скрипт работает без сбоев, независимо от того влючен AJAX или нет. И нигде не написано что счетчик просмотра новостей нельзя использовать и выводить.

    Для сторонних счетчиков и предназначена написанная здесь статья. И то не для всех, а только для тех что используют для вывода JavaScript

    Тогда я ничего не пойму..
    Количество просмотров выводится тегом {views}.. Это вывод с встроенного или стороннего счетчика?! Наверно все-таки с встроенного..
    А на сколько я знаю, если включить AJAX, то он просто не будет учитывать просмотры или выдавать разное количество просмотров в полной и краткой новостях.. (проверялось неоднократно мною и моими друзьями на различных сайтах, установленных в нете и локалке..)
    И как вас понимать?!
  15. celsoft (Администраторы)

    5 декабря 2006 17:55 3 443 комментария
    Цитата: d-view
    А на сколько я знаю, если включить AJAX, то он просто не будет учитывать просмотры или выдавать разное количество просмотров в полной и краткой новостях.. (проверялось неоднократно мною и моими друзьями на различных сайтах, установленных в нете и локалке..)

    плохо знаете, счетчик все считает без каких либо проблем, если он включен в настройках. Я бы мог вам это продемонстрировать если вы предоставили ссылку на сайт, но вы не ее не предоставите, т.к. пользуетесь нелегельной копией, я это тоже 100% знаю, так что если у вас и неработает, то это не проблема легальных копий скрипта. Также я знаю почему не совпадают значения, но это уже другая история
  16. [sql] (Посетители)

    16 февраля 2007 07:41 20 комментариев
    А как бы вот такой код изменить не могу понять.
    <span style="margin:0;padding:0" id="tbec"><script type="text/javascript">//<![CDATA[ setTimeout(function(){var s=document.createElement("SCRIPT");s.type="text/javascript";s.src="http://tbe.tom.ru/?a=host.ru/&js=1&c=8&s=8831";document.documentElement.firstChild.appendChild(s);},1) //]]></script></span><noscript>+<a href="http://tbe.tom.ru"><img src="http://tbe.tom.ru/?a=host.ru/&c=8&s=8831" alt="TBE" title="place hosts/hits users_online" style="border:0" /></a></noscript>
  17. celsoft (Администраторы)

    16 февраля 2007 13:38 3 443 комментария
    echo <<<HTML
    <script Language="JavaScript">
    <!--
    document.getElementById('dle-counter').innerHTML = '<a href="http://tbe.tom.ru"><img src="http://tbe.tom.ru/?a=host.ru/&c=8&s=8831" alt="TBE" title="place hosts/hits users_online" style="border:0" /></a>';
    // -->
    </script>
  18. papeion (Посетители)

    29 августа 2007 12:09 3 комментария
    AJAX влияет только на счётчики? Или ещё на что-нибудь? Я заметил что на адрес в браузере влияет. И подозреваю, что будет влиять на скрипты контекстной рекламы, например Бегуна и Яндекса. На подгрузку баннеро, например линкз.ру.

    Общим-то AJAX вещь интересная, но инфы по нему у вас маловато. Наверное поэтому его нечасто используют.
    Я ещё серьёзно им не занялся, но хотелось бы уже заранее кое-что пробить.
    Привет всем!
  19. ss174 (Посетители)

    4 ноября 2015 21:14 2 комментария
    версия dle 10.6
    файл шаблона main.tpl внёс код счётчика

    файл engine/ajax/pages.php - отсутствует в данной версии
  20. celsoft (Администраторы)

    5 ноября 2015 04:50 3 443 комментария
    Цитата: ss174
    версия dle 10.6
    файл шаблона main.tpl внёс код счётчика

    файл engine/ajax/pages.php - отсутствует в данной версии

    Эта статья от 2006 года и совершенно неактуальна в современных реалиях. На 10.6 ничего делать не нужно.

Информация

Комментирование публикаций доступно только пользователям имеющим действующую лицензию на скрипт. Если вы уже приобретали скрипт, то вам необходимо зайти на сайт под своим клиентским аккаунтом.

Календарь

«    Ноябрь 2020    »
ПнВтСрЧтПтСбВс
 1
2345678
9101112131415
16171819202122
23242526272829
30 

Опрос на сайте

Совершаете ли вы покупки в интернет?