myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> Webstats, API2 | Веб-статистика для хаба

Рейтинг 5 V
PomanoB
сообщение 14.7.2009, 17:15
Сообщение #361


AmxModx Scripter
*****

Группа: Пользователи
Сообщений: 302
Регистрация: 2.12.2008
Из: Королев
Пользователь №: 1 283
Спасибо сказали: 127 раз




Название скрипта: WebStats
Версия скрипта: 0.3
Версия API: API 2
Автор: PomanoB
Описание скрипта:
Скрипт предназначен для вывода некоторой информации о хабе на сайт.
Основные функции:
- Вывод общей статистики хаба
- Гибко настраиваемый юзербар с поддержкой анимации: можно выбрать фон, шрифт, анимацию, размер, цвет, текст и координаты надписи/двух надписей
Пример юзербара можно посмотреть у меня в подписи
- RSS с информацией о текущей шаре хаба и количества пользователей
- Список хабов
- Построение диаграммы распределения пользователей по объему шары
- Построение графика распределения пользователей по клиентам
- Топ пользователей по шаре и времени онлайн
- Информация о всех пользователях с удобным поиском
- Поиск по нику, IP, профилю и клиенту
- Индивидуальная расширенная информация о каждом пользователе
- Система шаблонов позволят легко настраивать внешний вид
Файл block.php в папке inc предназначен для вывода информации в центральный блок сайта на главной странице

Пользователям lighttpd нужно подключить lighttpd-hub.conf
Пользователям Apache нужно найти в конфиге AllowOverride и написать там AllowOverride All

Необходимо запускать файл inc/cli.php с нужной периодичностью для обновления информации о хабах
RSS доступно по адресу hubstats/hub<номер_хаба>.xml

Пример работы скрипта можно посмотреть здесь - пример центрального блока
Пример главной страницы статистики - здесь

Небольшое обновление - быстрая сортировка по клику на соответвующей надписи в заголовке таблицы списка пользователей

V 0.1.2.1
- Исправлена ошибка поиска при множестве находимых элементов
- Более удобный поиск по профилю

V 0.2.0
- Переход на XSLT-преобразования
- Отделение графиков от информации о хабе
- Новый дизайн
- Поддержка ланг-файлов
- Новый формат таблицы пользователей
- Изменение поиска
- Устранение багов

v 0.2.0.1
- Оптимизация
- Исправление багов

v 0.2.0.2
- Исправлена ошибка с русскими ссылками

v 0.3
- Переработан юзербар и добавлена возможность анимации юзербара
- Добавлен список хабов
- RSS
- отбор пользователей по онлайн


Прикрепленные файлы
Прикрепленный файл  hubstats.zip ( 4.27 мегабайт ) Кол-во скачиваний: 1141
 
Go to the top of the page
+Quote Post
22 страниц V  « < 17 18 19 20 21 > »   
Начать новую тему
Ответов
Fe(one)X
сообщение 12.8.2010, 13:38
Сообщение #362


Активный участник
***

Группа: Пользователи
Сообщений: 58
Регистрация: 6.2.2010
Из: Россия, г. Волжский
Пользователь №: 5 963
Спасибо сказали: 0 раз




Тоже самое всё. Только теперь по ссылке даже крестик не рисует, просто чистая страница.
Go to the top of the page
+Quote Post
SoK.
сообщение 14.8.2010, 17:55
Сообщение #363


Абсолютный новичок


Группа: Пользователи
Сообщений: 3
Регистрация: 30.7.2010
Пользователь №: 7 374
Спасибо сказали: 0 раз




не могу найти инструкцию установки. Подскажите плз как устанавливать. Стоит денвер, хочется чтоб просто выводил:
===
Пользователей на канале:
Общее кол-во расшареный файлов:
Рекордсмен по шаре:
===

Подскажите как установить хотябы, а php сама попробую написать судя из примеров.
Go to the top of the page
+Quote Post
mariner
сообщение 14.8.2010, 19:16
Сообщение #364


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Инструкция проста:
1ое - нужен плагин для работы птоки с мускулем
2ое - база данных в мускуле, куда писала бы птока
3е - скрипт stats.lua из архива в папку скриптов хаба
4ое - все остальное из архива на вэбсервер(ну и в конфиге настроить доступ к базе данных).
Все!
Go to the top of the page
+Quote Post
Fe(one)X
сообщение 14.8.2010, 21:34
Сообщение #365


Активный участник
***

Группа: Пользователи
Сообщений: 58
Регистрация: 6.2.2010
Из: Россия, г. Волжский
Пользователь №: 5 963
Спасибо сказали: 0 раз




PomanoB
Ошибки Notice так и не пропадают... После того как я отделил все скобки в файле pData.class, то ошибка стала указывать на 128 строку вместо 127-ой.

Код
     $ID = 0;
     for($i=0;$i<=count($this->Data);$i++)
      {
     if(isset($this->Data[$i][$Serie])) { $ID = $i+1;
      }
}

128 строка это предпоследняя скобка, вот на неё и выводит ошибку.

Код
<br />
<b>Notice</b>:  Uninitialized string offset: 0 in <b>C:\Program Files\Wamp\www\hubstats\inc\graph\pChart\pChart\pData.class</b> on line <b>128</b><br />
<br />
<b>Notice</b>:  Uninitialized string offset: 1 in <b>C:\Program Files\Wamp\www\hubstats\inc\graph\pChart\pChart\pData.class</b> on line <b>128</b><br />
�PNG


Переводчик мне переводит так:
Примечание: Неинициализированные смещения строки: 0 в C:\Program Files\Wamp\www\hubstats\inc\graph\pChart\pChart\pData.class на линии 128
Примечание: Неинициализированные смещения строки: 1 в C:\Program Files\Wamp\www\hubstats\inc\graph\pChart\pChart\pData.class на линии 128


А ниже идёт большая абракадабра, видимо там идёт построение графика, но из-за этой ошибки он его не строит. Думаю всё же не в неделях дело.
Кто-нибудь вообще сталкивался с этим?
Go to the top of the page
+Quote Post
mariner
сообщение 14.8.2010, 21:48
Сообщение #366


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




А все ли {} на месте?

Попробуй предыдущую строку
Код
if(isset($this->Data[$i][$Serie])) { $ID = $i+1;

привести к виду
Код
if(isset($this->Data[$i][$Serie])) $ID = $i+1;
Go to the top of the page
+Quote Post
Fe(one)X
сообщение 14.8.2010, 22:12
Сообщение #367


Активный участник
***

Группа: Пользователи
Сообщений: 58
Регистрация: 6.2.2010
Из: Россия, г. Волжский
Пользователь №: 5 963
Спасибо сказали: 0 раз




mariner, теперь вот это выводит:
Код
Parse error: parse error, expecting `T_FUNCTION' in C:\Program Files\Wamp\www\hubstats\inc\graph\pChart\pChart\pData.class on line 132


Выложу полный код скрипта на всякий случай:
Код
<?php
/*
     pData - Simplifying data population for pChart
     Copyright (C) 2008 Jean-Damien POGOLOTTI
     Version  1.13 last updated on 08/17/08

     http://pchart.sourceforge.net

     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation, either version 1,2,3 of the License, or
     (at your option) any later version.

     This program is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.

     You should have received a copy of the GNU General Public License
     along with this program.  If not, see <http://www.gnu.org/licenses/>.

     Class initialisation :
      pData()
     Data populating methods :
      ImportFromCSV($FileName,$Delimiter=",",$DataColumns=-1,$HasHeader=FALSE,$DataName=-1)
      AddPoint($Value,$Serie="Serie1",$Description="")
     Series manipulation methods :
      AddSerie($SerieName="Serie1")
      AddAllSeries()
      RemoveSerie($SerieName="Serie1")
      SetAbsciseLabelSerie($SerieName = "Name")
      SetSerieName($Name,$SerieName="Serie1")
  +   SetSerieSymbol($Name,$Symbol)
      SetXAxisName($Name="X Axis")
      SetYAxisName($Name="Y Axis")
      SetXAxisFormat($Format="number")
      SetYAxisFormat($Format="number")
      SetXAxisUnit($Unit="")
      SetYAxisUnit($Unit="")
      removeSerieName($SerieName)
      removeAllSeries()
     Data retrieval methods :
      GetData()
      GetDataDescription()
*/

/* pData class definition */
class pData
  {
   var $Data;
   var $DataDescription;

   function pData()
    {
     $this->Data                           = "";
     $this->DataDescription                = "";
     $this->DataDescription["Position"]    = "Name";
     $this->DataDescription["Format"]["X"] = "number";
     $this->DataDescription["Format"]["Y"] = "number";
     $this->DataDescription["Unit"]["X"]   = NULL;
     $this->DataDescription["Unit"]["Y"]   = NULL;
    }

   function ImportFromCSV($FileName,$Delimiter=",",$DataColumns=-1,$HasHeader=FALSE,$DataName=-1)
    {
     $handle = @fopen($FileName,"r");
     if ($handle)
      {
       $HeaderParsed = FALSE;
       while (!feof($handle))
        {
         $buffer = fgets($handle, 4096);
         $buffer = str_replace(chr(10),"",$buffer);
         $buffer = str_replace(chr(13),"",$buffer);
         $Values = split($Delimiter,$buffer);

         if ( $buffer != "" )
          {
           if ( $HasHeader == TRUE && $HeaderParsed == FALSE )
            {
             if ( $DataColumns == -1 )
              {
               $ID = 1;
               foreach($Values as $key => $Value)
                { $this->SetSerieName($Value,"Serie".$ID); $ID++; }
              }
             else
              {
               $SerieName = "";

               foreach($DataColumns as $key => $Value)
                $this->SetSerieName($Values[$Value],"Serie".$Value);
              }
             $HeaderParsed = TRUE;
            }
           else
            {
             if ( $DataColumns == -1 )
              {
               $ID = 1;
               foreach($Values as $key => $Value)
                { $this->AddPoint(intval($Value),"Serie".$ID); $ID++; }
              }
             else
              {
               $SerieName = "";
               if ( $DataName != -1 )
                $SerieName = $Values[$DataName];

               foreach($DataColumns as $key => $Value)
                $this->AddPoint($Values[$Value],"Serie".$Value,$SerieName);
              }
            }
          }
        }
       fclose($handle);
      }
    }

   function AddPoint($Value,$Serie="Serie1",$Description="")
    {
     if (is_array($Value) && count($Value) == 1)
      $Value = $Value[0];

     $ID = 0;
     for($i=0;$i<=count($this->Data);$i++)
      {
     if(isset($this->Data[$i][$Serie])) $ID = $i+1;
      }
}

     if ( count($Value) == 1 )
      {
       $this->Data[$ID][$Serie] = $Value;
       if ( $Description != "" )
        $this->Data[$ID]["Name"] = $Description;
       elseif (!isset($this->Data[$ID]["Name"]))
        $this->Data[$ID]["Name"] = $ID;
      }
     else
      {
       foreach($Value as $key => $Val)
        {
         $this->Data[$ID][$Serie] = $Val;
         if (!isset($this->Data[$ID]["Name"]))
          $this->Data[$ID]["Name"] = $ID;
         $ID++;
        }
      }
    }

   function AddSerie($SerieName="Serie1")
    {
     if ( !isset($this->DataDescription["Values"]) )
      {
       $this->DataDescription["Values"][] = $SerieName;
      }
     else
      {
       $Found = FALSE;
       foreach($this->DataDescription["Values"] as $key => $Value )
        if ( $Value == $SerieName ) { $Found = TRUE; }

       if ( !$Found )
        $this->DataDescription["Values"][] = $SerieName;
      }
    }

   function AddAllSeries()
    {
     unset($this->DataDescription["Values"]);

     if ( isset($this->Data[0]) )
      {
       foreach($this->Data[0] as $Key => $Value)
        {
         if ( $Key != "Name" )
          $this->DataDescription["Values"][] = $Key;
        }
      }
    }

   function RemoveSerie($SerieName="Serie1")
    {
     if ( !isset($this->DataDescription["Values"]) )
      return(0);

     $Found = FALSE;
     foreach($this->DataDescription["Values"] as $key => $Value )
      {
       if ( $Value == $SerieName )
        unset($this->DataDescription["Values"][$key]);
      }
    }

   function SetAbsciseLabelSerie($SerieName = "Name")
    {
     $this->DataDescription["Position"] = $SerieName;
    }

   function SetSerieName($Name,$SerieName="Serie1")
    {
     $this->DataDescription["Description"][$SerieName] = $Name;
    }

   function SetXAxisName($Name="X Axis")
    {
     $this->DataDescription["Axis"]["X"] = $Name;
    }

   function SetYAxisName($Name="Y Axis")
    {
     $this->DataDescription["Axis"]["Y"] = $Name;
    }

   function SetXAxisFormat($Format="number")
    {
     $this->DataDescription["Format"]["X"] = $Format;
    }

   function SetYAxisFormat($Format="number")
    {
     $this->DataDescription["Format"]["Y"] = $Format;
    }

   function SetXAxisUnit($Unit="")
    {
     $this->DataDescription["Unit"]["X"] = $Unit;
    }

   function SetYAxisUnit($Unit="")
    {
     $this->DataDescription["Unit"]["Y"] = $Unit;
    }

   function SetSerieSymbol($Name,$Symbol)
    {
     $this->DataDescription["Symbol"][$Name] = $Symbol;
    }

   function removeSerieName($SerieName)
    {
     if ( isset($this->DataDescription["Description"][$SerieName]) )
      unset($this->DataDescription["Description"][$SerieName]);
    }

   function removeAllSeries()
    {
     foreach($this->DataDescription["Values"] as $Key => $Value)
      unset($this->DataDescription["Values"][$Key]);
    }

   function GetData()
    {
     return($this->Data);
    }

   function GetDataDescription()
    {
     return($this->DataDescription);
    }
  }
?>


Сообщение отредактировал Saymon - 14.8.2010, 22:17
Причина редактирования: Такой большой код лучше прятать под спойлер
Go to the top of the page
+Quote Post
mariner
сообщение 14.8.2010, 23:50
Сообщение #368


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Такое ощущение, что где то лишняя скобка.
Код
     for($i=0;$i<=count($this->Data);$i++)
      {
     if(isset($this->Data[$i][$Serie])) $ID = $i+1;
      }
}


Вот в этом кусске убери } последнюю. Она вроде лишняя. Ну я посидет, повтыкал, вроде она.
Go to the top of the page
+Quote Post
Fe(one)X
сообщение 15.8.2010, 0:41
Сообщение #369


Активный участник
***

Группа: Пользователи
Сообщений: 58
Регистрация: 6.2.2010
Из: Россия, г. Волжский
Пользователь №: 5 963
Спасибо сказали: 0 раз




mariner, убрал я последнюю скобку, он всё равно зараза опять пишет:
Код
<br />
<b>Notice</b>:  Uninitialized string offset: 0 in <b>C:\Program Files\Wamp\www\hubstats\inc\graph\pChart\pChart\pData.class</b> on line <b>128</b><br />
<br />
<b>Notice</b>:  Uninitialized string offset: 1 in <b>C:\Program Files\Wamp\www\hubstats\inc\graph\pChart\pChart\pData.class</b> on line <b>128</b><br />
�PNG


Опять та 128 строка. Я уже и кэш браузера почистил, безрезультатно.
Что неужели никто с этим не сталкивался?
Go to the top of the page
+Quote Post
Fe(one)X
сообщение 22.8.2010, 22:30
Сообщение #370


Активный участник
***

Группа: Пользователи
Сообщений: 58
Регистрация: 6.2.2010
Из: Россия, г. Волжский
Пользователь №: 5 963
Спасибо сказали: 0 раз




Проблема остаётся в силе. Думаю мне так и придётся тупо закомментировать ссылки "Статистика" и "Юзербар" раз помочь никто не может. Сам я уже не в силах разобраться в проблеме...
Все кто пользуется данным скриптом выложите пожалуйста свой pData.class может это поможет решить проблему...
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.8.2010, 22:56
Сообщение #371


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




оно
Прикрепленные файлы
Прикрепленный файл  pData.rar ( 1.8 килобайт ) Кол-во скачиваний: 5
 
Go to the top of the page
+Quote Post
Fe(one)X
сообщение 24.8.2010, 17:55
Сообщение #372


Активный участник
***

Группа: Пользователи
Сообщений: 58
Регистрация: 6.2.2010
Из: Россия, г. Волжский
Пользователь №: 5 963
Спасибо сказали: 0 раз




Saymon, спасибо, но не помогло. Видимо проблема в сервере или в чём-то либо ещё. Придётся закомментировать ссылки...
Go to the top of the page
+Quote Post
PomanoB
сообщение 24.8.2010, 19:59
Сообщение #373


AmxModx Scripter
*****

Группа: Пользователи
Сообщений: 302
Регистрация: 2.12.2008
Из: Королев
Пользователь №: 1 283
Спасибо сказали: 127 раз




Блин, я не знаю в чем может быть проблема :(
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 26.8.2010, 22:15
Сообщение #374


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




WebStats_all.lua:116: LuaSQL: Error executing query. MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'StrgDC++', '2.21', '<StrgDC++ V:2.21,M:P,H:11/0/0,S:11>')ON DUPLICATE KEY UPDATE' at line 1


просто появилось..
Go to the top of the page
+Quote Post
PomanoB
сообщение 27.8.2010, 9:10
Сообщение #375


AmxModx Scripter
*****

Группа: Пользователи
Сообщений: 302
Регистрация: 2.12.2008
Из: Королев
Пользователь №: 1 283
Спасибо сказали: 127 раз




Попробуй вставить после 116 строчки
local iSlots = tUser.iSlots or 0
а в строчке 124, какой она была до вставки, замени tUser.iSlots на iSlots
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 27.8.2010, 11:15
Сообщение #376


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




Код
    local iShareSize = tUser.iShareSize / (1024 * 1024)
    local iSlots = tUser.iSlots or 0
    assert(conn:execute(
("INSERT INTO %susers ("..
"ip, `nick`, `description`, `profile`, `email`, login_time, share_size, hubs, slots, `client`, `client_version`, `tag`"..
") VALUES ('%s', '%s', '%s', %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s')"..
"ON DUPLICATE KEY UPDATE "..
"ip = VALUES(ip), profile = VALUES(profile), email = VALUES(email), login_time = VALUES(login_time), "..
"share_size = VALUES(share_size), hubs = VALUES(hubs), slots = VALUES(slots), client = VALUES(client), tag = VALUES(tag)"
):dbformat(sPrefixTable, tUser.sIP, tUser.sNick, sDescription, tUser.iProfile, sEmail, tUser.iLoginTime, iShareSize, tUser.iHubs, iSlots, tUser.sClient, sClientVersion, sTag)))


вот так да?
Go to the top of the page
+Quote Post
PomanoB
сообщение 27.8.2010, 13:13
Сообщение #377


AmxModx Scripter
*****

Группа: Пользователи
Сообщений: 302
Регистрация: 2.12.2008
Из: Королев
Пользователь №: 1 283
Спасибо сказали: 127 раз




Ага
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 27.8.2010, 16:53
Сообщение #378


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




WebStats_all.lua:117: LuaSQL: Error executing query. MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'romanov@klan-hub.ru', 1282906887, 126836, 3, 15, 'FlylinkDC++', '(r399)', '<Flyl' at line 1


Код
    local iShareSize = tUser.iShareSize / (1024 * 1024)
    local iSlots = tUser.iSlots or 0
117->    assert(conn:execute(
("INSERT INTO %susers ("..
"ip, `nick`, `description`, `profile`, `email`, login_time, share_size, hubs, slots, `client`, `client_version`, `tag`"..
") VALUES ('%s', '%s', '%s', %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s')"..
"ON DUPLICATE KEY UPDATE "..
"ip = VALUES(ip), profile = VALUES(profile), email = VALUES(email), login_time = VALUES(login_time), "..
"share_size = VALUES(share_size), hubs = VALUES(hubs), slots = VALUES(slots), client = VALUES(client), tag = VALUES(tag)"
):dbformat(sPrefixTable, tUser.sIP, tUser.sNick, sDescription, tUser.iProfile, sEmail, tUser.iLoginTime, iShareSize, tUser.iHubs, iSlots, tUser.sClient, sClientVersion, sTag)))
Go to the top of the page
+Quote Post
PomanoB
сообщение 27.8.2010, 17:31
Сообщение #379


AmxModx Scripter
*****

Группа: Пользователи
Сообщений: 302
Регистрация: 2.12.2008
Из: Королев
Пользователь №: 1 283
Спасибо сказали: 127 раз




Хм странно буду разбираться
Go to the top of the page
+Quote Post
*FoxMalder*
сообщение 27.8.2010, 21:27
Сообщение #380


мяу =^.^=
******

Группа: Пользователи
Сообщений: 414
Регистрация: 20.5.2008
Пользователь №: 6
Спасибо сказали: 14 раз




может тебе скопировать инфу этих пользователей?
ведь как я понял скрипт ругается на ихнюю инфу
Go to the top of the page
+Quote Post
PomanoB
сообщение 28.8.2010, 10:00
Сообщение #381


AmxModx Scripter
*****

Группа: Пользователи
Сообщений: 302
Регистрация: 2.12.2008
Из: Королев
Пользователь №: 1 283
Спасибо сказали: 127 раз




Давай
Go to the top of the page
+Quote Post

22 страниц V  « < 17 18 19 20 21 > » 
Ответить в данную темуНачать новую тему
23 чел. читают эту тему (гостей: 23, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsWebstats
Веб-статистика для хаба
33 Saymon21 35 626 12.3.2017, 15:29 Посл. сообщение: 000000
No New Posts От: Webstats
От темы с ID: 2193
0 Win32 4 785 10.11.2009, 6:28 Посл. сообщение: Win32
No New Posts От: Webstats
От темы с ID: 2193
0 mariner 4 957 26.7.2009, 10:44 Посл. сообщение: mariner

 



RSS Сейчас: 26.11.2024, 22:45