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

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

Добрый день уважаемые посетители,

как вы наверное знаете последние версии 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 и тогда все просто будут завидовать уникальным возможностям вашего портала.

Комментарии

fsn

fsn

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

<!--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> ?
спасибо
celsoft

celsoft

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

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

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

Slamer

23 ноября 2006 16:57 Клиенты
0
умниЦа wink
fsn

fsn

23 ноября 2006 17:42 Посетители
0
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 ", это я неправильно сделал ? или так и должно быть?
BlackM

BlackM

23 ноября 2006 19:52 Посетители
0
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>';

и должно заработать
fsn

fsn

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

celsoft

23 ноября 2006 20:35 Администраторы
0
Для обсуждения того или иного кода есть форум поддержки. Не думаю что комментарии подходящее место для решения своих проблем.
GURU

GURU

25 ноября 2006 00:24 Посетители
0
В примере можно показать а то я так и не понял для чего он ?
o_romka

o_romka

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

d-view

5 декабря 2006 07:52 Посетители
0
Вопрос celsoft'у..

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

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

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

celsoft

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

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

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

d-view

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

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

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

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

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

celsoft

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

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

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

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

d-view

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

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

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

celsoft

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

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

[sql]

16 февраля 2007 07:41 Посетители
0
А как бы вот такой код изменить не могу понять.
<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>
celsoft

celsoft

16 февраля 2007 13:38 Администраторы
0
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>
papeion

papeion

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

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

ss174

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

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

celsoft

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

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

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

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Календарь
«    Октябрь 2017    »
ПнВтСрЧтПтСбВс
 1
2345678
9101112131415
16171819202122
23242526272829
3031 
Опрос на сайте
Совершаете ли вы покупки в интернет?

Популярные новости
Архив новостей
Сентябрь 2017 (2)
Август 2017 (5)
Июль 2017 (1)
Июнь 2017 (1)
Апрель 2017 (3)
Март 2017 (2)