Убираем счетчики и прочее с глаз долой.

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

Спасибо Romelyus надеюсь он не против =)

итак открываем index.php и в самый конец добовляем:

<style type="text/css">
#stats_bg { padding:0 0 20px 40px; color:#999; font:12px/18px "Trebuchet MS", Arial, Helvetica, sans-serif; background:transparent; }
#stats_bg #stats_toggle { font-size:14px; color:#999; text-decoration:none; }
#stats_bg #stats_status { font-size:12px; }
#stats_bg #stats_content { height:90px; padding-top:15px; }
</style>



<script type="text/javascript">
//<![CDATA[
        window.addEvent('domready', function() {
                var start = Cookie.read('stats_start') || '0px';
                var status = {'true': '↑','false': '↓'};
                var statSlider = new Fx.Slide('stats_content');

                if (start == '-105px') {
                        statSlider.open = false;
                }
                $('stats_content').setStyle('margin-top', start);
                $('stats_status').set('html', status[statSlider.open]);
                $('stats_toggle').addEvent('click', function(e) {
                        e.stop();
                        statSlider.toggle();
                });
                statSlider.addEvent('complete', function() {
                        $('stats_status').set('html', status[statSlider.open]);
                        new Fx.Scroll(window).toBottom();
                        start = $('stats_content').getStyle('margin-top');
                        Cookie.write('stats_start', start, {
                                domain: '<?php echo(SYS_COOKIE_HOST);?>',
                                path: '<?php echo(SYS_COOKIE_PATH);?>',
                                duration: 30
                        });
                });
        });
//]]>
</script>

<div id="stats_bg">
        <a id="stats_toggle" href="#">Статистика и счетчики <span id="stats_status"></span></a>
        <div id="stats_content">
                Коды счетчиков и прочих кнопочек что обычно вешают в футер...
        </div>
</div>




24 комментария

avatar
Ох, это же на кой столько счетчиков нужно? :-)
  • Carw
  • +1
avatar
ну в рейтингах бывает полезно участвовать. с них ходят.
бгг поглядел на скрин понял что у меня два ливинтернета висят зачемто…
avatar
Если ходят, то полезно конечно. :-)
avatar
А зачем в индекс.пхп? Можно же просто в футер записать это все.
avatar
а скрипт вынести в other.js, что б кешировался
avatar
ну как вариат можно и так =)
avatar
это не вариант. это правильно так
avatar
да и стили убрать к стилям. это быстрохак придуманый и сделаный за три минуты =)
будет минутка распишу как унести все в правильные места.
avatar
о, стилей я и не заметил. да, стили в цсс, полюбому.
быстрохак это хорошо конечно =) но лучше если оно соответствует стандартам
avatar
Кстати, если не оставлять в index.php и не переносить в футер, возникает проблема в работе RSS. Ко всем XML добавляется код стиля, скрипта и самих счетчиков, а это недопустимо. Так, что всем рекомендую сделать все правильно, как подсказали выше.
avatar
Спасибо большое — очень приятное дополнение. Всё вынес по нужным местам )))
avatar
распиши куда выносил в личку а я добавлю в шапку со спасибой =) нету времени совсем расписать. а люди мучаюцо
avatar
в общем как то так:

В конец вашего css файла шаблона (templates/skin/шаблон/css/style.css)

#stats_bg { padding:0 0 20px 40px; color:#999; font:12px/18px "Trebuchet MS", Arial, Helvetica, sans-serif; background:transparent; }
#stats_bg #stats_toggle { font-size:14px; color:#999; text-decoration:none; }
#stats_bg #stats_status { font-size:12px; }
#stats_bg #stats_content { height:90px; padding-top:15px; }


Далее выносим скрипт, открываем файл (templates/skin/шаблон/js/other.js) и добавляем в конец файла следующий код:


//<![CDATA[
        window.addEvent('domready', function() {
                var start = Cookie.read('stats_start') || '0px';
                var status = {'true': '↑','false': '↓'};
                var statSlider = new Fx.Slide('stats_content');

                if (start == '-105px') {
                        statSlider.open = false;
                }
                $('stats_content').setStyle('margin-top', start);
                $('stats_status').set('html', status[statSlider.open]);
                $('stats_toggle').addEvent('click', function(e) {
                        e.stop();
                        statSlider.toggle();
                });
                statSlider.addEvent('complete', function() {
                        $('stats_status').set('html', status[statSlider.open]);
                        new Fx.Scroll(window).toBottom();
                        start = $('stats_content').getStyle('margin-top');
                        Cookie.write('stats_start', start, {
                                domain: '<?php echo(SYS_COOKIE_HOST);?>',
                                path: '<?php echo(SYS_COOKIE_PATH);?>',
                                duration: 30
                        });
                });
        });
//]]>


Далее открываем index.php и в конце перед <?php } ?> добавляем:

<div id="stats_bg">
        <a id="stats_toggle" href="#">Статистика и счетчики <span id="stats_status"></span></a>
        <div id="stats_content">
                Коды счетчиков и прочих кнопочек что обычно вешают в футер...
        </div>
</div>
avatar
Далее открываем index.php и в конце перед <?php } ?> добавляем:

Статистика и счетчики
Коды счетчиков и прочих кнопочек что обычно вешают в футер…


А когда гостем заходишь статистика идёт, в смысле счётчики работают?
avatar
Что-то не то с этим кодом:
//<![CDATA[
        window.addEvent('domready', function() {
                var start = Cookie.read('stats_start') || '0px';
                var status = {'true': '↑','false': '↓'};
                var statSlider = new Fx.Slide('stats_content');

                if (start == '-105px') {
                        statSlider.open = false;
                }
                $('stats_content').setStyle('margin-top', start);
                $('stats_status').set('html', status[statSlider.open]);
                $('stats_toggle').addEvent('click', function(e) {
                        e.stop();
                        statSlider.toggle();
                });
                statSlider.addEvent('complete', function() {
                        $('stats_status').set('html', status[statSlider.open]);
                        new Fx.Scroll(window).toBottom();
                        start = $('stats_content').getStyle('margin-top');
                        Cookie.write('stats_start', start, {
                                domain: '<?php echo(SYS_COOKIE_HOST);?>',
                                path: '<?php echo(SYS_COOKIE_PATH);?>',
                                duration: 30
                        });
                });
        });
//]]>

В internet explorer ошибка с ним появляется
avatar
В общем сделал как в случае со статистикой, т.е.
//<![CDATA[
        window.addEvent('domready', function() {
                var start = Cookie.read('stats_start') || '0px';
                var status = {'true': '↑','false': '↓'};
                var statSlider = new Fx.Slide('stats_content');

                if (start == '-105px') {
                        statSlider.open = false;
                }
                $('stats_content').setStyle('margin-top', start);
                $('stats_status').set('html', status[statSlider.open]);
                $('stats_toggle').addEvent('click', function(e) {
                        e.stop();
                        statSlider.toggle();
                });
                statSlider.addEvent('complete', function() {
                        $('stats_status').set('html', status[statSlider.open]);
                        new Fx.Scroll(window).toBottom();
                        start = $('stats_content').getStyle('margin-top');
                        Cookie.write('stats_start', start, {
                                domain: '<?php echo(SYS_COOKIE_HOST);?>',
                                path: '<?php echo(SYS_COOKIE_PATH);?>',
                                duration: 30
                        });
                });
        });
//]]>

прописал в index.php перед , ошибка пропала.
avatar
извиняюсь, код съело, перед
<div id="stats_bg">
avatar
У сеня счётчики видно только под Админом. )) А они работают когда гости заходят?
avatar
Добавляю результаты теста.
-счётчики видно только под админом,
-те изменения которые вносятся в файл other.js влияют принципиально на возможность добавления комментов простыми Юзерами.!!! Комменты добавляются только под Админом.!!! Юзеры добавить коммент не могут — окно комментария всегда открыто и предпросмотр не работает.
avatar
просто у когото проблема с руками… файл other.js не имеет привязки к админу или к юзеру. в нем храняцо ява-функции которые не попали просто в другие файлы и библиотеки (считай не отсортированные), и если мне надо поиметь гдето явафункцию то я её просто добавлю в овер.жс
а неработать после исправлений в овер.жс может что угодно при условии порчи того кода который был в файле до того как ваши ручки туда добрались =))
вывод просмотрите вниательно места где вы вносили изменения, закрылили вы свою функцию и не вставили ли её в тело другой функции…
avatar
Ок. Посмотрю. Вопрос в другом. Работают ли счётчики при таком раскладе? Ведь под гостем и юзером их невидно. Или то что их не видно — результат неправильной установки.
avatar
Добавили этот код — счётчиков нет, только этот текст
Статистика и счетчики
Коды счетчиков и прочих кнопочек что обычно вешают в футер…
avatar
а в последней версии движка траблов с этим кодом не будет?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.