添加 Piwik 到代码库中。

+YUCHENG HU+

git-svn-id: https://svn.code.sf.net/p/hawebs/svn@449 a2543c7e-f6e9-4f8a-8bff-1ffc34733512
This commit is contained in:
YuCheng Hu
2010-07-10 02:23:15 +00:00
parent 8784f4170d
commit d77ce6d0b2
15 changed files with 2577 additions and 0 deletions
@@ -0,0 +1,100 @@
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id: API.php 2202 2010-05-20 08:49:42Z matt $
*
* @category Piwik_Plugins
* @package Piwik_VisitFrequency
*/
/**
*
* @package Piwik_VisitFrequency
*/
class Piwik_VisitFrequency_API
{
static private $instance = null;
static public function getInstance()
{
if (self::$instance == null)
{
$c = __CLASS__;
self::$instance = new $c();
}
return self::$instance;
}
public function get( $idSite, $period, $date, $columns = array() )
{
Piwik::checkUserHasViewAccess( $idSite );
$archive = Piwik_Archive::build($idSite, $period, $date );
$bounceRateReturningRequested = false;
if(!empty($columns))
{
$toFetch = $columns;
if(($bounceRateReturningRequested = array_search('bounce_rate_returning', $toFetch)) !== false)
{
$toFetch = array('nb_visits_returning', 'bounce_count_returning');
}
}
else
{
$toFetch = array( 'nb_uniq_visitors_returning',
'nb_visits_returning',
'nb_actions_returning',
'max_actions_returning',
'sum_visit_length_returning',
'bounce_count_returning',
'nb_visits_converted_returning',
);
}
$dataTable = $archive->getDataTableFromNumeric($toFetch);
if($bounceRateReturningRequested !== false)
{
$dataTable->filter('ColumnCallbackAddColumnPercentage', array('bounce_rate_returning', 'bounce_count_returning', 'nb_visits_returning', 0));
$dataTable->deleteColumns($toFetch);
}
return $dataTable;
}
protected function getNumeric( $idSite, $period, $date, $toFetch )
{
Piwik::checkUserHasViewAccess( $idSite );
$archive = Piwik_Archive::build($idSite, $period, $date );
$dataTable = $archive->getNumeric($toFetch);
return $dataTable;
}
public function getVisitsReturning( $idSite, $period, $date )
{
return $this->getNumeric( $idSite, $period, $date, 'nb_visits_returning');
}
public function getActionsReturning( $idSite, $period, $date )
{
return $this->getNumeric( $idSite, $period, $date, 'nb_actions_returning');
}
public function getMaxActionsReturning( $idSite, $period, $date )
{
return $this->getNumeric( $idSite, $period, $date, 'max_actions_returning');
}
public function getSumVisitsLengthReturning( $idSite, $period, $date )
{
return $this->getNumeric( $idSite, $period, $date, 'sum_visit_length_returning');
}
public function getBounceCountReturning( $idSite, $period, $date )
{
return $this->getNumeric( $idSite, $period, $date, 'bounce_count_returning');
}
public function getConvertedVisitsReturning( $idSite, $period, $date )
{
return $this->getNumeric( $idSite, $period, $date, 'nb_visits_converted_returning');
}
}
@@ -0,0 +1,78 @@
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id: Controller.php 1420 2009-08-22 13:23:16Z vipsoft $
*
* @category Piwik_Plugins
* @package Piwik_VisitFrequency
*/
/**
*
* @package Piwik_VisitFrequency
*/
class Piwik_VisitFrequency_Controller extends Piwik_Controller
{
function index()
{
$view = Piwik_View::factory('index');
$view->graphEvolutionVisitFrequency = $this->getEvolutionGraph(true, array('nb_visits_returning') );
$this->setSparklinesAndNumbers($view);
echo $view->render();
}
public function getSparklines()
{
$view = Piwik_View::factory('sparklines');
$this->setSparklinesAndNumbers($view);
echo $view->render();
}
public function getEvolutionGraph( $fetch = false, $columns = false)
{
$view = $this->getLastUnitGraph($this->pluginName, __FUNCTION__, "VisitFrequency.get");
if(empty($columns))
{
$columns = Piwik_Common::getRequestVar('columns');
}
$view->setColumnsToDisplay($columns);
$view->setColumnsTranslations(array(
'nb_visits_returning' => Piwik_Translate('VisitFrequency_ColumnReturningVisits'),
'nb_actions_returning' => Piwik_Translate('VisitFrequency_ColumnActionsByReturningVisits'),
'max_actions_returning' => Piwik_Translate('VisitFrequency_ColumnMaximumActionsByAReturningVisit'),
'sum_visit_length_returning' => Piwik_Translate('VisitFrequency_ColumnTotalTimeSpentByReturningVisits'),
'bounce_rate_returning' => Piwik_Translate('VisitFrequency_ColumnBounceRateForReturningVisits'),
));
return $this->renderView($view, $fetch);
}
protected function setSparklinesAndNumbers($view)
{
$view->urlSparklineNbVisitsReturning = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_visits_returning')));
$view->urlSparklineNbActionsReturning = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('nb_actions_returning')));
$view->urlSparklineMaxActionsReturning = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('max_actions_returning')));
$view->urlSparklineSumVisitLengthReturning = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('sum_visit_length_returning')));
$view->urlSparklineBounceRateReturning = $this->getUrlSparkline( 'getEvolutionGraph', array('columns' => array('bounce_rate_returning')));
$dataTableFrequency = $this->getSummary();
$dataRow = $dataTableFrequency->getFirstRow();
$nbVisitsReturning = $dataRow->getColumn('nb_visits_returning');
$view->nbVisitsReturning = $nbVisitsReturning;
$view->nbActionsReturning = $dataRow->getColumn('nb_actions_returning');
$view->maxActionsReturning = $dataRow->getColumn('max_actions_returning');
$view->sumVisitLengthReturning = $dataRow->getColumn('sum_visit_length_returning');
$nbBouncedReturningVisits = $dataRow->getColumn('bounce_count_returning');
$view->bounceRateReturning = Piwik::getPercentageSafe($nbBouncedReturningVisits, $nbVisitsReturning);
}
protected function getSummary()
{
$requestString = "method=VisitFrequency.get&format=original";
$request = new Piwik_API_Request($requestString);
return $request->process();
}
}
@@ -0,0 +1,102 @@
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id: VisitFrequency.php 2264 2010-06-03 16:53:43Z vipsoft $
*
* @category Piwik_Plugins
* @package Piwik_VisitFrequency
*/
/**
*
* @package Piwik_VisitFrequency
*/
class Piwik_VisitFrequency extends Piwik_Plugin
{
public function getInformation()
{
$info = array(
'description' => Piwik_Translate('VisitFrequency_PluginDescription'),
'author' => 'Piwik',
'author_homepage' => 'http://piwik.org/',
'version' => Piwik_Version::VERSION,
);
return $info;
}
function getListHooksRegistered()
{
$hooks = array(
'ArchiveProcessing_Day.compute' => 'archiveDay',
'ArchiveProcessing_Period.compute' => 'archivePeriod',
'WidgetsList.add' => 'addWidgets',
'Menu.add' => 'addMenu',
);
return $hooks;
}
function addWidgets()
{
Piwik_AddWidget( 'General_Visitors', 'VisitFrequency_WidgetOverview', 'VisitFrequency', 'getSparklines');
Piwik_AddWidget( 'General_Visitors', 'VisitFrequency_WidgetGraphReturning', 'VisitFrequency', 'getEvolutionGraph', array('columns' => array('nb_visits_returning')));
}
function addMenu()
{
Piwik_AddMenu('General_Visitors', 'VisitFrequency_SubmenuFrequency', array('module' => 'VisitFrequency', 'action' => 'index'));
}
function archivePeriod( $notification )
{
$archiveProcessing = $notification->getNotificationObject();
$numericToSum = array(
'nb_visits_returning',
'nb_actions_returning',
'sum_visit_length_returning',
'bounce_count_returning',
'nb_visits_converted_returning',
);
$archiveProcessing->archiveNumericValuesSum($numericToSum);
$archiveProcessing->archiveNumericValuesMax('max_actions_returning');
}
function archiveDay($notification)
{
/* @var $archiveProcessing Piwik_ArchiveProcessing */
$archiveProcessing = $notification->getNotificationObject();
$query = "SELECT count(distinct visitor_idcookie) as nb_uniq_visitors_returning,
count(*) as nb_visits_returning,
sum(visit_total_actions) as nb_actions_returning,
max(visit_total_actions) as max_actions_returning,
sum(visit_total_time) as sum_visit_length_returning,
sum(case visit_total_actions when 1 then 1 else 0 end) as bounce_count_returning,
sum(case visit_goal_converted when 1 then 1 else 0 end) as nb_visits_converted_returning
FROM ".$archiveProcessing->logTable."
WHERE visit_last_action_time >= ?
AND visit_last_action_time <= ?
AND idsite = ?
AND visitor_returning = 1";
$row = $archiveProcessing->db->fetchRow($query, array( $archiveProcessing->getStartDatetimeUTC(), $archiveProcessing->getEndDatetimeUTC(), $archiveProcessing->idsite ) );
if($row === false || $row === null)
{
$row['nb_visits_returning'] = 0;
$row['nb_actions_returning'] = 0;
$row['max_actions_returning'] = 0;
$row['sum_visit_length_returning'] = 0;
$row['bounce_count_returning'] = 0;
$row['nb_visits_converted_returning'] = 0;
}
foreach($row as $name => $value)
{
$archiveProcessing->insertNumericRecord($name, $value);
}
}
}
@@ -0,0 +1,11 @@
{postEvent name="template_headerVisitsFrequency"}
<script type="text/javascript" src="plugins/CoreHome/templates/sparkline.js"></script>
<a name="evolutionGraph" graphId="VisitFrequencygetEvolutionGraph"></a>
<h2>{'VisitFrequency_ColumnReturningVisits'|translate}</h2>
{$graphEvolutionVisitFrequency}
<br />
{include file=VisitFrequency/templates/sparklines.tpl}
{postEvent name="template_footerVisitsFrequency"}
@@ -0,0 +1,11 @@
<div class="sparkline">{sparkline src=$urlSparklineNbVisitsReturning}
{'VisitFrequency_ReturnVisits'|translate:"<strong>$nbVisitsReturning</strong>"}</div>
<div class="sparkline">{sparkline src=$urlSparklineNbActionsReturning}
{'VisitFrequency_ReturnActions'|translate:"<strong>$nbActionsReturning</strong>"}</div>
<div class="sparkline">{sparkline src=$urlSparklineMaxActionsReturning}
{'VisitFrequency_ReturnMaxActions'|translate:"<strong>$maxActionsReturning</strong>"}</div>
<div class="sparkline">{sparkline src=$urlSparklineSumVisitLengthReturning}
{assign var=sumtimeVisitLengthReturning value=$sumVisitLengthReturning|sumtime}
{'VisitFrequency_ReturnTotalTime'|translate:"<strong>$sumtimeVisitLengthReturning</strong>"}</div>
<div class="sparkline">{sparkline src=$urlSparklineBounceRateReturning}
{'VisitFrequency_ReturnBounceRate'|translate:"<strong>$bounceRateReturning%</strong>"} </div>
@@ -0,0 +1,118 @@
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id: Controller.php 2245 2010-05-31 10:30:02Z matt $
*
* @category Piwik_Plugin
* @package Piwik_VisitorGenerator
*/
/**
*
* @package Piwik_VisitorGenerator
*/
class Piwik_VisitorGenerator_Controller extends Piwik_Controller {
public function index() {
Piwik::checkUserIsSuperUser();
$sitesList = Piwik_SitesManager_API::getInstance()->getSitesWithAdminAccess();
$view = Piwik_View::factory('index');
$this->setGeneralVariablesView($view);
$view->assign('sitesList', $sitesList);
$view->menu = Piwik_GetAdminMenu();
echo $view->render();
}
public function generate() {
// Only admin is allowed to do this!
Piwik::checkUserIsSuperUser();
$this->checkTokenInUrl();
$GET = $_GET;
$POST = $_POST;
$COOKIE = $_COOKIE;
$REQUEST = $_REQUEST;
if(Piwik_Common::getRequestVar('choice', 'no') != 'yes') {
Piwik::redirectToModule('VisitorGenerator', 'index');
}
$minVisitors = Piwik_Common::getRequestVar('minVisitors', 20, 'int');
$maxVisitors = Piwik_Common::getRequestVar('maxVisitors', 100, 'int');
$nbActions = Piwik_Common::getRequestVar('nbActions', 10, 'int');
$daysToCompute = Piwik_Common::getRequestVar('daysToCompute', 1, 'int');
$idSite = Piwik_Common::getRequestVar('idSite');
Piwik::setMaxExecutionTime(0);
$loadedPlugins = Piwik_PluginsManager::getInstance()->getLoadedPlugins();
$loadedPlugins = array_keys($loadedPlugins);
// we have to unload the Provider plugin otherwise it tries to lookup the IP for a hostname, and there is no dns server here
if(Piwik_PluginsManager::getInstance()->isPluginActivated('Provider')) {
Piwik_PluginsManager::getInstance()->unloadPlugin('Provider');
}
// we set the DO NOT load plugins so that the Tracker generator doesn't load the plugins we've just disabled.
// if for some reasons you want to load the plugins, comment this line, and disable the plugin Provider in the plugins interface
Piwik_PluginsManager::getInstance()->doNotLoadPlugins();
$generator = new Piwik_VisitorGenerator_Generator();
$generator->setMaximumUrlDepth(3);
//$generator->disableProfiler();
$generator->setIdSite( $idSite );
$nbActionsTotal = 0;
//$generator->emptyAllLogTables();
$generator->init();
$timer = new Piwik_Timer;
$startTime = time() - ($daysToCompute-1)*86400;
$dates = array();
while($startTime <= time()) {
$visitors = rand($minVisitors, $maxVisitors);
$actions = $nbActions;
$generator->setTimestampToUse($startTime);
$nbActionsTotalThisDay = $generator->generate($visitors, $actions);
$actionsPerVisit = round($nbActionsTotalThisDay / $visitors);
$date = array();
$date['visitors'] = $visitors;
$date['actionsPerVisit'] = $actionsPerVisit;
$date['startTime'] = $startTime;
$dates[] = $date;
$startTime += 86400;
$nbActionsTotal += $nbActionsTotalThisDay;
//sleep(1);
}
$generator->end();
// Recover all super globals
$_GET = $GET;
$_POST = $POST;
$_COOKIE = $COOKIE;
$_REQUEST = $REQUEST;
// Reload plugins
Piwik_PluginsManager::getInstance()->loadPlugins($loadedPlugins);
// Init view
$view = Piwik_View::factory('generate');
$view->menu = Piwik_GetAdminMenu();
$this->setGeneralVariablesView($view);
$view->assign('dates', $dates);
$view->assign('timer', $timer);
$view->assign('nbActionsTotal', $nbActionsTotal);
$view->assign('nbRequestsPerSec', round($nbActionsTotal / $timer->getTime(),0));
echo $view->render();
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,53 @@
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id: Tracker.php 2245 2010-05-31 10:30:02Z matt $
*
* @category Piwik_Plugin
* @package Piwik_VisitorGenerator
*/
/**
* Fake Piwik_Tracker that:
* - overwrite the sendHeader method so that no headers are sent.
* - doesn't print the 1pixel transparent GIF at the end of the visit process
* - overwrite the Tracker Visit object to use so we use our own Tracker_visit @see Piwik_Tracker_Generator_Visit
*
* @package Piwik_VisitorGenerator
*/
class Piwik_VisitorGenerator_Tracker extends Piwik_Tracker
{
/**
* Does nothing instead of sending headers
*/
protected function sendHeader($header)
{
}
/**
* Does nothing instead of displaying a 1x1 transparent pixel GIF
*/
protected function end()
{
}
/**
* Returns our 'generator home made' Piwik_VisitorGenerator_Visit object.
*
* @return Piwik_VisitorGenerator_Visit
*/
protected function getNewVisitObject()
{
$visit = new Piwik_VisitorGenerator_Visit();
$visit->generateTimestamp();
return $visit;
}
static function disconnectDatabase()
{
return;
}
}
@@ -0,0 +1,47 @@
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id: Visit.php 2245 2010-05-31 10:30:02Z matt $
*
* @category Piwik_Plugin
* @package Piwik_VisitorGenerator
*/
/**
* Fake Piwik_Tracker_Visit class that overwrite all the Time related method to be able
* to setup a given timestamp for the generated visitor and actions.
*
* @package Piwik_VisitorGenerator
*/
class Piwik_VisitorGenerator_Visit extends Piwik_Tracker_Visit
{
static protected $timestampToUse;
static public function setTimestampToUse($time)
{
self::$timestampToUse = $time;
}
protected function getCurrentDate( $format = "Y-m-d")
{
return date($format, $this->getCurrentTimestamp() );
}
protected function getCurrentTimestamp()
{
return self::$timestampToUse;
}
public function generateTimestamp()
{
self::$timestampToUse = max(@$this->visitorInfo['visit_last_action_time'],self::$timestampToUse);
self::$timestampToUse += mt_rand(4,1840);
}
protected function updateCookie()
{
@parent::updateCookie();
}
}
@@ -0,0 +1,44 @@
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id: VisitorGenerator.php 2264 2010-06-03 16:53:43Z vipsoft $
*
* @category Piwik_Plugin
* @package Piwik_VisitorGenerator
*/
/**
*
* @package Piwik_VisitorGenerator
*/
class Piwik_VisitorGenerator extends Piwik_Plugin {
public function getInformation() {
$info = array(
'description' => Piwik_Translate('VisitorGenerator_PluginDescription'),
'author' => 'Piwik',
'author_homepage' => 'http://piwik.org/',
'version' => Piwik_Version::VERSION,
);
return $info;
}
public function getListHooksRegistered() {
return array(
'AdminMenu.add' => 'addMenu',
);
}
public function addMenu() {
Piwik_AddAdminMenu(
'VisitorGenerator_VisitorGenerator',
array('module' => 'VisitorGenerator', 'action' => 'index'),
Piwik::isUserIsSuperUser(),
$order = 10
);
}
}
?>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,69 @@
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id: UserAgent.php 2334 2010-06-22 05:24:07Z vipsoft $
*
* @category Piwik_Plugin
* @package Piwik_VisitorGenerator
*/
/**
* User-Agent: strings
*
* @package Piwik_VisitorGenerator
*/
$userAgent = array(
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
"Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0 )",
"Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)",
"Mozilla/4.8 [en] (Windows NT 5.1; U)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.0",
"Opera/7.51 (Windows NT 5.1; U) [en]",
"Opera/7.50 (Windows XP; U)",
"Avant Browser/1.2.789rel1 (http://www.avantbrowser.com)",
"Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko Netscape/7.1 (ax)",
"Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a",
"Opera/7.50 (Windows ME; U) [en]",
"Mozilla/3.01Gold (Win95; I)",
"Mozilla/2.02E (Win95; U)",
"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
"Googlebot/2.1 (+http://www.googlebot.com/bot.html)",
"msnbot/1.0 (+http://search.msn.com/msnbot.htm)",
"msnbot/0.11 (+http://search.msn.com/msnbot.htm)",
"Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)",
"Mozilla/2.0 (compatible; Ask Jeeves/Teoma)",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/85.8",
"Mozilla/4.0 (compatible; MSIE 5.15; Mac_PowerPC)",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7a) Gecko/20040614 Firefox/0.9.0+",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.15",
"Mozilla/5.0 (X11; U; Linux; i686; en-US; rv:1.6) Gecko Debian/1.6-7",
"ozilla/5.0 (X11; U; Linux; i686; en-US; rv:1.6) Gecko Epiphany/1.2.5",
"Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924 Epiphany/1.4.4 (Ubuntu)",
"Mozilla/5.0 (X11; U; Linux; i686; en-US; rv:1.6) Gecko Galeon/1.3.14",
"Konqueror/3.0-rc4; (Konqueror/3.0-rc4; i686 Linux;;datecode)",
"Mozilla/5.0 (compatible; Konqueror/3.3; Linux 2.6.8-gentoo-r3; X11;",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8",
"ELinks/0.9.3 (textmode; Linux 2.6.9-kanotix-8 i686; 127x41)",
"ELinks (0.4pre5; Linux 2.6.10-ac7 i686; 80x33)",
"Links (2.1pre15; Linux 2.4.26 i686; 158x61)",
"Links/0.9.1 (Linux 2.4.24; i386;)",
"MSIE (MSIE 6.0; X11; Linux; i686) Opera 7.23",
"Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/0.8.12",
"w3m/0.5.1",
"Links (2.1pre15; FreeBSD 5.3-RELEASE i386; 196x84)",
"Mozilla/5.0 (X11; U; FreeBSD; i386; en-US; rv:1.7) Gecko",
"Mozilla/4.77 [en] (X11; I; IRIX;64 6.5 IP30)",
"Mozilla/4.8 [en] (X11; U; SunOS; 5.7 sun4u)",
"Mozilla/3.0 (compatible; NetPositive/2.1.1; BeOS)",
"Gulper Web Bot 0.2.4 (www.ecsl.cs.sunysb.edu/~maxim/cgi-bin/Link/GulperBot)",
"EmailWolf 1.00",
"grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http://grub.org)",
"Download Demon/3.5.0.11",
"OmniWeb/2.7-beta-3 OWF/1.0",
"SearchExpress",
"Microsoft URL Control - 6.00.8862",
);
@@ -0,0 +1,30 @@
{assign var=showSitesSelection value=false}
{assign var=showPeriodSelection value=false}
{include file="CoreAdminHome/templates/header.tpl"}
<h2>{'VisitorGenerator_VisitorGenerator'|translate}</h2>
<table class="adminTable adminTableNoBorder" style="width: 600px;">
<thead>
<tr>
<th>{'VisitorGenerator_Visitors'|translate}</th>
<th>{'VisitorGenerator_ActionsPerVisit'|translate}</th>
<th>{'VisitorGenerator_Date'|translate}</th>
</tr>
</thead>
<tbody>
{foreach from=$dates item=date}
<tr>
<td>{$date.visitors}</td>
<td>{$date.actionsPerVisit}</td>
<td>{$date.startTime|date_format:"%Y-%m-%d"}</td>
</tr>
{/foreach}
</tbody>
</table>
<p>{'VisitorGenerator_NbActions'|translate}: {$nbActionsTotal}<br />
{'VisitorGenerator_NbRequestsPerSec'|translate}: {$nbRequestsPerSec}<br />
{$timer}</p>
{include file="CoreAdminHome/templates/footer.tpl"}
@@ -0,0 +1,45 @@
{assign var=showSitesSelection value=false}
{assign var=showPeriodSelection value=false}
{include file="CoreAdminHome/templates/header.tpl"}
<h2>{'VisitorGenerator_VisitorGenerator'|translate}</h2>
<p>{'VisitorGenerator_PluginDescription'|translate}</p>
<form method="POST" action="{url module=VisitorGenerator action=generate}">
<table class="adminTable adminTableNoBorder" style="width: 600px;">
<tr>
<td><label for="idSite">{'VisitorGenerator_SelectWebsite'|translate}</label></td>
<td><select name="idSite">
{foreach from=$sitesList item=site}
<option value="{$site.idsite}">{$site.name}</option>
{/foreach}
</select></td>
</tr>
<tr>
<td><label for="minVisitors">{'VisitorGenerator_MinVisitors'|translate}</label></td>
<td><input type="text" value="20" name="minVisitors" /></td>
</tr>
<tr>
<td><label for="maxVisitors">{'VisitorGenerator_MaxVisitors'|translate}</label></td>
<td><input type="text" value="100" name="maxVisitors" /></td>
</tr>
<tr>
<td><label for="nbActions">{'VisitorGenerator_NbActions'|translate}</label></td>
<td><input type="text" value="10" name="nbActions" /></td>
</tr>
<tr>
<td><label for="daysToCompute">{'VisitorGenerator_DaysToCompute'|translate}</label></td>
<td><input type="text" value="1" name="daysToCompute" /></td>
</tr>
</table>
<p>{'VisitorGenerator_Warning'|translate}<br />
{'VisitorGenerator_NotReversible'|translate:'<b>':'</b>'}<br /><br />
{'VisitorGenerator_AreYouSure'|translate}<br />
</p>
<input type="checkbox" name="choice" id="choice" value="yes" /> <label for="choice">{'VisitorGenerator_ChoiceYes'|translate}</label>
<br />
<input type="hidden" value="{$token_auth}" name="token_auth" />
<input type="submit" value="{'VisitorGenerator_Submit'|translate}" name="submit" class="submit" />
</form>
{include file="CoreAdminHome/templates/footer.tpl"}