add statistics to admin panel
Cette révision appartient à :
Parent
44dbbfeaee
révision
98f7efbf59
15
.gitattributes
externe
15
.gitattributes
externe
@ -1,12 +1,25 @@
|
||||
* text=auto !eol
|
||||
copy_this/.noencode -text
|
||||
copy_this/modules/d3/d3usersonline/IntelliSenseHelper.php -text
|
||||
copy_this/modules/d3/d3usersonline/controllers/admin/d3_cfg_usersonline.php -text
|
||||
copy_this/modules/d3/d3usersonline/controllers/admin/d3_cfg_usersonline_licence.php -text
|
||||
copy_this/modules/d3/d3usersonline/controllers/admin/d3_cfg_usersonline_list.php -text
|
||||
copy_this/modules/d3/d3usersonline/controllers/admin/d3_cfg_usersonline_main.php -text
|
||||
copy_this/modules/d3/d3usersonline/controllers/admin/d3_usersonline.php -text
|
||||
copy_this/modules/d3/d3usersonline/controllers/admin/d3_usersonline_list.php -text
|
||||
copy_this/modules/d3/d3usersonline/controllers/admin/d3_usersonline_statistic.php -text
|
||||
copy_this/modules/d3/d3usersonline/menu.xml -text
|
||||
copy_this/modules/d3/d3usersonline/metadata.php -text
|
||||
copy_this/modules/d3/d3usersonline/models/d3usersonline.php -text
|
||||
copy_this/modules/d3/d3usersonline/models/d3usersonline_update.php -text
|
||||
copy_this/modules/d3/d3usersonline/modules/components/d3_oxcmp_utils_usersonline.php -text
|
||||
copy_this/modules/d3/d3usersonline/picture.png -text
|
||||
copy_this/modules/d3/d3usersonline/setup/d3usersonline_update.php -text
|
||||
copy_this/modules/d3/d3usersonline/translations/de/d3usersonline_lang.php -text
|
||||
copy_this/modules/d3/d3usersonline/translations/en/d3usersonline_lang.php -text
|
||||
copy_this/modules/d3/d3usersonline/views/admin/de/d3usersonline_lang.php -text
|
||||
copy_this/modules/d3/d3usersonline/views/admin/en/d3usersonline_lang.php -text
|
||||
copy_this/modules/d3/d3usersonline/views/admin/tpl/d3_cfg_usersonline_main.tpl -text
|
||||
copy_this/modules/d3/d3usersonline/views/admin/tpl/d3_usersonline_statistic.tpl -text
|
||||
copy_this/modules/d3/d3usersonline/views/blocks/layout/d3usersonline_sidebar.tpl -text
|
||||
setup+doku/Installation.pdf -text
|
||||
setup+doku/changelog.txt -text
|
||||
|
17
copy_this/modules/d3/d3usersonline/IntelliSenseHelper.php
Fichier normal
17
copy_this/modules/d3/d3usersonline/IntelliSenseHelper.php
Fichier normal
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
*
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
*
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright © D³ Data Development, Thomas Dartsch
|
||||
* @author D³ Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_oxcmp_utils_usersonline_parent extends oxcmp_utils {}
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_cfg_usersonline extends d3_cfg_mod_
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->addTplParam('sListClass', 'd3_cfg_usersonline_list');
|
||||
$this->addTplParam('sMainClass', 'd3_cfg_usersonline_main');
|
||||
|
||||
return parent::render();
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_cfg_usersonline_licence extends d3_cfg_mod_licence
|
||||
{
|
||||
protected $_sModId = 'd3usersonline';
|
||||
|
||||
protected $_hasNewsletterForm = false;
|
||||
|
||||
protected $_sLogType = 2;
|
||||
|
||||
//protected $_sBlogFeed = "http://blog.oxidmodule.com/feeds/categories/46-Angebotsanfrage.rss";
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_cfg_usersonline_list extends d3_cfg_mod_list
|
||||
{
|
||||
protected $_blD3ShowLangSwitch = false;
|
||||
|
||||
/**
|
||||
* @return null
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$sRet = parent::render();
|
||||
|
||||
$this->addTplParam("default_edit", "d3_cfg_usersonline_main");
|
||||
|
||||
return $sRet;
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_cfg_usersonline_Main extends d3_cfg_mod_main
|
||||
{
|
||||
protected $_sThisTemplate = 'd3_cfg_usersonline_main.tpl';
|
||||
|
||||
protected $_sModId = 'd3usersonline';
|
||||
|
||||
protected $_blUseModCfgStdObject = true;
|
||||
|
||||
protected $_blHasDebugSwitch = false;
|
||||
|
||||
protected $_blHasTestModeSwitch = false;
|
||||
|
||||
//protected $_sDebugHelpTextIdent = 'D3_INQUIRY_MAIN_DEBUGACTIVE_DESC';
|
||||
}
|
28
copy_this/modules/d3/d3usersonline/controllers/admin/d3_usersonline.php
Fichier normal
28
copy_this/modules/d3/d3usersonline/controllers/admin/d3_usersonline.php
Fichier normal
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_usersonline extends d3_cfg_mod_
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->addTplParam('sListClass', 'd3_usersonline_list');
|
||||
$this->addTplParam('sMainClass', 'd3_usersonline_statistic');
|
||||
|
||||
return parent::render();
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
class d3_usersonline_list extends d3_cfg_mod_list
|
||||
{
|
||||
protected $_blD3ShowLangSwitch = false;
|
||||
|
||||
/**
|
||||
* @return null
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
$this->_blD3ShowLangSwitch = false;
|
||||
|
||||
$sRet = parent::render();
|
||||
|
||||
$this->addTplParam("default_edit", "d3_usersonline_statistic");
|
||||
|
||||
return $sRet;
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* This Software is the property of Data Development and is protected
|
||||
* by copyright law - it is NOT Freeware.
|
||||
* Any unauthorized use of this software without a valid license
|
||||
* is a violation of the license agreement and will be prosecuted by
|
||||
* civil and criminal law.
|
||||
* http://www.shopmodule.com
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <ds@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
class d3_usersonline_statistic extends d3_cfg_mod_main
|
||||
{
|
||||
protected $_blUseOwnOxid = false;
|
||||
|
||||
protected $_sThisTemplate = 'd3_usersonline_statistic.tpl';
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getUserCount()
|
||||
{
|
||||
/** @var d3usersonline $oUsersOnline */
|
||||
$oUsersOnline = oxNew('d3usersonline');
|
||||
return $oUsersOnline->getUserCount();
|
||||
}
|
||||
}
|
14
copy_this/modules/d3/d3usersonline/menu.xml
Fichier normal
14
copy_this/modules/d3/d3usersonline/menu.xml
Fichier normal
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-15"?>
|
||||
<OX>
|
||||
<OXMENU id="d3mxd3modules">
|
||||
<MAINMENU id="d3mxusersonline">
|
||||
<SUBMENU id="d3mxusersonline_settings" cl="d3_cfg_usersonline" list="d3_cfg_usersonline_list">
|
||||
<TAB id="d3tbclussersonline_settings_main" cl="d3_cfg_usersonline_main" />
|
||||
<TAB id="d3tbcl_licence" cl="d3_cfg_usersonline_licence" />
|
||||
</SUBMENU>
|
||||
<SUBMENU id="d3mxusersonline_analysis" cl="d3_usersonline" list="d3_usersonline_list">
|
||||
<TAB id="d3tbclusersonline_currvisitors" cl="d3_usersonline_statistic" />
|
||||
</SUBMENU>
|
||||
</MAINMENU>
|
||||
</OXMENU>
|
||||
</OX>
|
@ -30,7 +30,9 @@ $aModule = array(
|
||||
'title' =>
|
||||
(class_exists('d3utils') ? d3utils::getInstance()->getD3Logo() : 'D³') . ' Users Online',
|
||||
'description' => array(
|
||||
'de' => 'Lassen Sie sich anonym im Shop anzeigen, wie viele Benutzer zur Zeit Ihren Shop besuchen und welche Seiten angezeigt werden. Das Modul speichert nicht die IP-Adresse oder sonstige Daten des Nutzers. Damit genügen Sie auch dem deutschen Recht.',
|
||||
'de' => 'Lassen Sie sich anonym im Shop anzeigen, wie viele Benutzer zur Zeit Ihren Shop besuchen und welche '.
|
||||
'Seiten angezeigt werden. Das Modul speichert nicht die IP-Adresse oder sonstige Daten des Nutzers. Damit '.
|
||||
'genügen Sie auch dem deutschen Recht.',
|
||||
'en' => '',
|
||||
),
|
||||
'thumbnail' => 'picture.png',
|
||||
@ -43,16 +45,27 @@ $aModule = array(
|
||||
),
|
||||
'files' => array(
|
||||
'd3usersonline' => 'd3/d3usersonline/models/d3usersonline.php',
|
||||
'd3usersonline_update' => 'd3/d3usersonline/models/d3usersonline_update.php',
|
||||
'd3usersonline_update' => 'd3/d3usersonline/setup/d3usersonline_update.php',
|
||||
'd3_cfg_usersonline' => 'd3/d3usersonline/controllers/admin/d3_cfg_usersonline.php',
|
||||
'd3_cfg_usersonline_licence' => 'd3/d3usersonline/controllers/admin/d3_cfg_usersonline_licence.php',
|
||||
'd3_cfg_usersonline_list' => 'd3/d3usersonline/controllers/admin/d3_cfg_usersonline_list.php',
|
||||
'd3_cfg_usersonline_main' => 'd3/d3usersonline/controllers/admin/d3_cfg_usersonline_main.php',
|
||||
'd3_usersonline' => 'd3/d3usersonline/controllers/admin/d3_usersonline.php',
|
||||
'd3_usersonline_list' => 'd3/d3usersonline/controllers/admin/d3_usersonline_list.php',
|
||||
'd3_usersonline_statistic' => 'd3/d3usersonline/controllers/admin/d3_usersonline_statistic.php',
|
||||
),
|
||||
'templates' => array(
|
||||
//'d3_cfg_extsearch_main.tpl' => 'd3/d3_extsearch/views/admin/tpl/d3_cfg_extsearch_main.tpl',
|
||||
'd3_cfg_usersonline_main.tpl' => 'd3/d3usersonline/views/admin/tpl/d3_cfg_usersonline_main.tpl',
|
||||
'd3_usersonline_statistic.tpl' => 'd3/d3usersonline/views/admin/tpl/d3_usersonline_statistic.tpl',
|
||||
),
|
||||
'events' => array(
|
||||
'onActivate' => 'd3install::checkUpdateStart',
|
||||
),
|
||||
'blocks' => array(
|
||||
array('template' => 'layout/sidebar.tpl', 'block' => 'sidebar_categoriestree',
|
||||
'file' => 'views/blocks/layout/d3usersonline_sidebar.tpl'),
|
||||
array(
|
||||
'template' => 'layout/sidebar.tpl',
|
||||
'block' => 'sidebar_categoriestree',
|
||||
'file' => 'views/blocks/layout/d3usersonline_sidebar.tpl'
|
||||
),
|
||||
)
|
||||
);
|
@ -38,7 +38,7 @@ class d3usersonline extends oxbase
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->init( 'd3usersonline' );
|
||||
$this->init('d3usersonline');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -48,8 +48,8 @@ class d3usersonline extends oxbase
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
|
||||
$exptime = time() - $iExpTime;
|
||||
oxDb::getDb()->Execute("delete from ".$this->getViewName()." where timevisit < $exptime");
|
||||
$iExptime = time() - $iExpTime;
|
||||
oxDb::getDb()->Execute("delete from ".$this->getViewName()." where timevisit < $iExptime");
|
||||
|
||||
stopProfile(__METHOD__);
|
||||
}
|
||||
@ -61,15 +61,14 @@ class d3usersonline extends oxbase
|
||||
{
|
||||
startProfile(__METHOD__);
|
||||
|
||||
$sSelect = "select count(oxid) AS counter, oxclass from ".$this->getViewName()." GROUP BY oxclass ORDER BY counter desc";
|
||||
$sSelect = "select count(oxid) AS counter, oxclass from ".
|
||||
$this->getViewName()." GROUP BY oxclass ORDER BY counter desc";
|
||||
$aRecords = oxDb::getDb(oxDb::FETCH_MODE_ASSOC)->getArray($sSelect);
|
||||
|
||||
$iAllCounter = 0;
|
||||
$aUserClasses = array();
|
||||
if ($aRecords && is_array($aRecords) && count($aRecords))
|
||||
{
|
||||
foreach ($aRecords as $aRecord)
|
||||
{
|
||||
if ($aRecords && is_array($aRecords) && count($aRecords)) {
|
||||
foreach ($aRecords as $aRecord) {
|
||||
$aRecord = array_change_key_case($aRecord, CASE_UPPER);
|
||||
|
||||
$oTmp = new stdClass;
|
||||
@ -130,50 +129,43 @@ class d3usersonline extends oxbase
|
||||
$this->_getIpData('_httpComingFrom', 'HTTP_COMING_FROM');
|
||||
|
||||
// Gets the default ip sent by the user
|
||||
if (!empty($this->_remoteAddr))
|
||||
if (!empty($this->_remoteAddr)) {
|
||||
$sDirectIp = $this->_remoteAddr;
|
||||
}
|
||||
|
||||
// Gets the proxy ip sent by the user
|
||||
if (!empty($this->_httpXForwardedFor))
|
||||
if (!empty($this->_httpXForwardedFor)) {
|
||||
$sProxyIp = $this->_httpXForwardedFor;
|
||||
else if (!empty($this->_httpXForwarded))
|
||||
} elseif (!empty($this->_httpXForwarded)) {
|
||||
$sProxyIp = $this->_httpXForwarded;
|
||||
else if (!empty($this->_httpForwardedFor))
|
||||
} elseif (!empty($this->_httpForwardedFor)) {
|
||||
$sProxyIp = $this->_httpForwardedFor;
|
||||
else if (!empty($this->_httpForwarded))
|
||||
} elseif (!empty($this->_httpForwarded)) {
|
||||
$sProxyIp = $this->_httpForwarded;
|
||||
else if (!empty($this->_httpVia))
|
||||
} elseif (!empty($this->_httpVia)) {
|
||||
$sProxyIp = $this->_httpVia;
|
||||
else if (!empty($this->_httpXComingFrom))
|
||||
} elseif (!empty($this->_httpXComingFrom)) {
|
||||
$sProxyIp = $this->_httpXComingFrom;
|
||||
else if (!empty($this->_httpComingFrom))
|
||||
} elseif (!empty($this->_httpComingFrom)) {
|
||||
$sProxyIp = $this->_httpComingFrom;
|
||||
}
|
||||
|
||||
// Returns the true IP if it has been found, else ...
|
||||
if (empty($sProxyIp))
|
||||
{
|
||||
if (empty($sProxyIp)) {
|
||||
// True IP without proxy
|
||||
return $sDirectIp;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$blIsIp = preg_match('@^([0-9]{1,3}.){3,3}[0-9]{1,3}@', $sProxyIp, $aMatches);
|
||||
|
||||
if ($blIsIp && (count($aMatches) > 0))
|
||||
{
|
||||
if ($blIsIp && (count($aMatches) > 0)) {
|
||||
// True IP behind a proxy
|
||||
return $aMatches[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (empty($this->_httpClientIp))
|
||||
{
|
||||
} else {
|
||||
if (empty($this->_httpClientIp)) {
|
||||
// Can't define IP: there is a proxy but we don't have
|
||||
// information about the true IP
|
||||
return "(unbekannt) " . $sProxyIp;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
// better than nothing
|
||||
return $this->_httpClientIp;
|
||||
}
|
||||
@ -187,14 +179,14 @@ class d3usersonline extends oxbase
|
||||
*/
|
||||
protected function _getIpData($sTargetVarName, $sDataName)
|
||||
{
|
||||
if (empty($this->{$sTargetVarName}))
|
||||
{
|
||||
if (!empty($_SERVER) && isset($_SERVER[$sDataName]))
|
||||
if (empty($this->{$sTargetVarName})) {
|
||||
if (!empty($_SERVER) && isset($_SERVER[$sDataName])) {
|
||||
$this->{$sTargetVarName} = $_SERVER[$sDataName];
|
||||
else if (!empty($_ENV) && isset($_ENV[$sDataName]))
|
||||
} elseif (!empty($_ENV) && isset($_ENV[$sDataName])) {
|
||||
$this->{$sTargetVarName} = $_ENV[$sDataName];
|
||||
else if (@getenv($sDataName))
|
||||
} elseif (@getenv($sDataName)) {
|
||||
$this->{$sTargetVarName} = getenv($sDataName);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -30,16 +30,14 @@ class d3_oxcmp_utils_usersonline extends d3_oxcmp_utils_usersonline_parent
|
||||
{
|
||||
$sRet = parent::render();
|
||||
|
||||
if (d3_cfg_mod::get($this->_sD3UsersOnlineModId)->isActive())
|
||||
{
|
||||
if (d3_cfg_mod::get($this->_sD3UsersOnlineModId)->isActive()) {
|
||||
/** @var d3usersonline $oUsersOnline */
|
||||
$oUsersOnline = oxNew('d3usersonline');
|
||||
$oUsersOnline->clearOldItems($this->_iExpTime);
|
||||
$oUsersOnline->setActTimeVisit();
|
||||
|
||||
$oUser = $this->getUser();
|
||||
if ($oUser && strtolower($oUser->getFieldData('oxrights')) == 'malladmin')
|
||||
{
|
||||
if ($oUser && strtolower($oUser->getFieldData('oxrights')) == 'malladmin') {
|
||||
/** @var oxview $oActView */
|
||||
$oActView = $this->getParent();
|
||||
$oActView->addTplParam('aUsersOnline', $oUsersOnline->getUserCount());
|
||||
@ -48,4 +46,4 @@ class d3_oxcmp_utils_usersonline extends d3_oxcmp_utils_usersonline_parent
|
||||
|
||||
return $sRet;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -55,31 +55,31 @@ k09';
|
||||
'sTableName' => 'd3usersonline',
|
||||
'sFieldName' => 'OXID',
|
||||
'sType' => 'char(32)',
|
||||
'blNull' => FALSE,
|
||||
'sDefault' => FALSE,
|
||||
'blNull' => false,
|
||||
'sDefault' => false,
|
||||
'sComment' => '',
|
||||
'sExtra' => '',
|
||||
'blMultilang' => FALSE,
|
||||
'blMultilang' => false,
|
||||
),
|
||||
'TIMEVISIT' => array(
|
||||
'sTableName' => 'd3usersonline',
|
||||
'sFieldName' => 'TIMEVISIT',
|
||||
'sType' => 'INT(11)',
|
||||
'blNull' => FALSE,
|
||||
'blNull' => false,
|
||||
'sDefault' => '0',
|
||||
'sComment' => '',
|
||||
'sExtra' => '',
|
||||
'blMultilang' => FALSE,
|
||||
'blMultilang' => false,
|
||||
),
|
||||
'OXCLASS' => array(
|
||||
'sTableName' => 'd3usersonline',
|
||||
'sFieldName' => 'OXCLASS',
|
||||
'sType' => 'VARCHAR(32)',
|
||||
'blNull' => FALSE,
|
||||
'sDefault' => FALSE,
|
||||
'blNull' => false,
|
||||
'sDefault' => false,
|
||||
'sComment' => '',
|
||||
'sExtra' => '',
|
||||
'blMultilang' => FALSE,
|
||||
'blMultilang' => false,
|
||||
),
|
||||
);
|
||||
|
||||
@ -106,25 +106,25 @@ k09';
|
||||
'sTableName' => 'd3usersonline',
|
||||
'mOldFieldNames' => array('id', 'ID'), // is case sensitive
|
||||
'sFieldName' => 'OXID',
|
||||
'blMultilang' => FALSE,
|
||||
'blMultilang' => false,
|
||||
),
|
||||
'VISITOR' => array(
|
||||
'sTableName' => 'd3usersonline',
|
||||
'mOldFieldNames' => array('visitor'), // is case sensitive
|
||||
'sFieldName' => 'VISITOR',
|
||||
'blMultilang' => FALSE,
|
||||
'blMultilang' => false,
|
||||
),
|
||||
'TIMEVISIT' => array(
|
||||
'sTableName' => 'd3usersonline',
|
||||
'mOldFieldNames' => array('timevisit'), // is case sensitive
|
||||
'sFieldName' => 'TIMEVISIT',
|
||||
'blMultilang' => FALSE,
|
||||
'blMultilang' => false,
|
||||
),
|
||||
'OXCLASS' => array(
|
||||
'sTableName' => 'd3usersonline',
|
||||
'mOldFieldNames' => array('oxclass'), // is case sensitive
|
||||
'sFieldName' => 'OXCLASS',
|
||||
'blMultilang' => FALSE,
|
||||
'blMultilang' => false,
|
||||
),
|
||||
);
|
||||
|
||||
@ -132,14 +132,14 @@ k09';
|
||||
'VISITOR' => array(
|
||||
'sTableName' => 'd3usersonline',
|
||||
'sFieldName' => 'VISITOR',
|
||||
'blMultilang' => FALSE,
|
||||
'blMultilang' => false,
|
||||
),
|
||||
);
|
||||
|
||||
protected $_aRefreshMetaModuleIds = array('d3usersonline');
|
||||
|
||||
/**
|
||||
* @return bool TRUE, if table is missing
|
||||
* @return bool true, if table is missing
|
||||
*/
|
||||
public function checkUsersOnlineTableExist()
|
||||
{
|
||||
@ -151,7 +151,7 @@ k09';
|
||||
*/
|
||||
public function updateUsersOnlineTableExist()
|
||||
{
|
||||
$blRet = TRUE;
|
||||
$blRet = true;
|
||||
|
||||
if ($this->checkUsersOnlineTableExist())
|
||||
{
|
||||
@ -168,9 +168,8 @@ k09';
|
||||
*/
|
||||
public function checkModCfgItemExist()
|
||||
{
|
||||
$blRet = FALSE;
|
||||
foreach ($this->_getShopList() as $oShop)
|
||||
{
|
||||
$blRet = false;
|
||||
foreach ($this->_getShopList() as $oShop) {
|
||||
/** @var $oShop oxshop */
|
||||
$aWhere = array(
|
||||
'oxmodid' => $this->sModKey,
|
||||
@ -180,8 +179,7 @@ k09';
|
||||
|
||||
$blRet = $this->_checkTableItemNotExist('d3_cfg_mod', $aWhere);
|
||||
|
||||
if ($blRet)
|
||||
{
|
||||
if ($blRet) {
|
||||
return $blRet;
|
||||
}
|
||||
}
|
||||
@ -194,12 +192,10 @@ k09';
|
||||
*/
|
||||
public function updateModCfgItemExist()
|
||||
{
|
||||
$blRet = FALSE;
|
||||
$blRet = false;
|
||||
|
||||
if ($this->checkModCfgItemExist())
|
||||
{
|
||||
foreach ($this->_getShopList() as $oShop)
|
||||
{
|
||||
if ($this->checkModCfgItemExist()) {
|
||||
foreach ($this->_getShopList() as $oShop) {
|
||||
/** @var $oShop oxshop */
|
||||
$aWhere = array(
|
||||
'oxmodid' => $this->sModKey,
|
||||
@ -207,86 +203,85 @@ k09';
|
||||
'oxnewrevision' => $this->sModRevision,
|
||||
);
|
||||
|
||||
if ($this->_checkTableItemNotExist('d3_cfg_mod', $aWhere))
|
||||
{
|
||||
if ($this->_checkTableItemNotExist('d3_cfg_mod', $aWhere)) {
|
||||
// update don't use this property
|
||||
unset($aWhere['oxnewrevision']);
|
||||
|
||||
$aInsertFields = array(
|
||||
'OXID' => array (
|
||||
'content' => "md5('" . $this->sModKey . " " . $oShop->getId() . " de')",
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => FALSE,
|
||||
'force_update' => true,
|
||||
'use_quote' => false,
|
||||
),
|
||||
'OXSHOPID' => array (
|
||||
'content' => $oShop->getId(),
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => true,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXMODID' => array (
|
||||
'content' => $this->sModKey,
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => true,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXNAME' => array (
|
||||
'content' => $this->sModName,
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => true,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXACTIVE' => array (
|
||||
'content' => "0",
|
||||
'force_update' => FALSE,
|
||||
'use_quote' => FALSE,
|
||||
'force_update' => false,
|
||||
'use_quote' => false,
|
||||
),
|
||||
'OXBASECONFIG' => array (
|
||||
'content' => $this->sBaseConf,
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => true,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXSERIAL' => array (
|
||||
'content' => "",
|
||||
'force_update' => FALSE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => false,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXINSTALLDATE' => array (
|
||||
'content' => "NOW()",
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => FALSE,
|
||||
'force_update' => true,
|
||||
'use_quote' => false,
|
||||
),
|
||||
'OXVERSION' => array (
|
||||
'content' => $this->sModVersion,
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => true,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXSHOPVERSION' => array (
|
||||
'content' => oxRegistry::getConfig()->getEdition(),
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => true,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXREQUIREMENTS' => array (
|
||||
'content' => $this->sRequirements,
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => true,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXVALUE' => array(
|
||||
'content' => $this->sBaseValue,
|
||||
'force_update' => FALSE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => false,
|
||||
'use_quote' => true,
|
||||
),
|
||||
'OXNEWREVISION' => array(
|
||||
'content' => $this->sModRevision,
|
||||
'force_update' => TRUE,
|
||||
'use_quote' => TRUE,
|
||||
'force_update' => true,
|
||||
'use_quote' => true,
|
||||
)
|
||||
);
|
||||
$aRet = $this->_updateTableItem('d3_cfg_mod', $aInsertFields, $aWhere);
|
||||
$blRet = $aRet['blRet'];
|
||||
|
||||
$this->_setActionLog('SQL', $aRet['sql'], __METHOD__);
|
||||
$this->_setUpdateBreak(FALSE);
|
||||
$this->_setUpdateBreak(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $blRet;
|
||||
}
|
||||
}
|
||||
}
|
38
copy_this/modules/d3/d3usersonline/views/admin/de/d3usersonline_lang.php
Fichier normal
38
copy_this/modules/d3/d3usersonline/views/admin/de/d3usersonline_lang.php
Fichier normal
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* 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 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/>.
|
||||
*
|
||||
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
$sLangName = 'Deutsch';
|
||||
$iLangNr = 0;
|
||||
// -------------------------------
|
||||
// RESOURCE IDENTITFIER = STRING
|
||||
// -------------------------------
|
||||
$aLang = array(
|
||||
'charset' => 'ISO-8859-15',
|
||||
|
||||
'd3mxusersonline' => 'Benutzer online',
|
||||
'd3mxusersonline_settings' => 'Einstellungen',
|
||||
'd3tbclussersonline_settings_main' => 'Grundeinstellungen',
|
||||
'd3mxusersonline_analysis' => 'Auswertungen',
|
||||
'd3tbclusersonline_currvisitors' => 'aktuelle Besucher',
|
||||
'D3USERSONLINE_NOTACTIVE' => 'Modul ist nicht aktiv',
|
||||
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
||||
'D3_USERSONLINE_USER' => 'Benutzer',
|
||||
'D3_USERSONLINE_USERS' => 'Benutzer',
|
||||
'D3_USERSONLINE_ALL' => 'gesamt',
|
||||
);
|
38
copy_this/modules/d3/d3usersonline/views/admin/en/d3usersonline_lang.php
Fichier normal
38
copy_this/modules/d3/d3usersonline/views/admin/en/d3usersonline_lang.php
Fichier normal
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* 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 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/>.
|
||||
*
|
||||
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
|
||||
* @link http://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
$sLangName = 'Deutsch';
|
||||
$iLangNr = 0;
|
||||
// -------------------------------
|
||||
// RESOURCE IDENTITFIER = STRING
|
||||
// -------------------------------
|
||||
$aLang = array(
|
||||
'charset' => 'ISO-8859-15',
|
||||
|
||||
'd3mxusersonline' => 'Users Online',
|
||||
'd3mxusersonline_settings' => 'Settings',
|
||||
'd3tbclussersonline_settings_main' => 'Main Settings',
|
||||
'd3mxusersonline_analysis' => 'Analysis',
|
||||
'd3tbclusersonline_currvisitors' => 'current visitors',
|
||||
'D3USERSONLINE_NOTACTIVE' => "Module isn't active",
|
||||
'D3_USERSONLINE_USERSONLINE' => 'Users online',
|
||||
'D3_USERSONLINE_USER' => 'user',
|
||||
'D3_USERSONLINE_USERS' => 'users',
|
||||
'D3_USERSONLINE_ALL' => 'all',
|
||||
);
|
@ -0,0 +1,154 @@
|
||||
[{include file="headitem.tpl" title="d3tbclussersonline_settings_main"|oxmultilangassign}]
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
[{if $updatelist == 1}]
|
||||
UpdateList('[{$oxid}]');
|
||||
[{/if}]
|
||||
|
||||
function UpdateList( sID)
|
||||
{
|
||||
var oSearch = parent.list.document.getElementById("search");
|
||||
oSearch.oxid.value=sID;
|
||||
oSearch.fnc.value='';
|
||||
oSearch.submit();
|
||||
}
|
||||
|
||||
function EditThis( sID)
|
||||
{
|
||||
var oTransfer = document.getElementById("transfer");
|
||||
oTransfer.oxid.value=sID;
|
||||
oTransfer.cl.value='';
|
||||
oTransfer.submit();
|
||||
|
||||
var oSearch = parent.list.document.getElementById("search");
|
||||
oSearch.actedit.value = 0;
|
||||
oSearch.oxid.value=sID;
|
||||
oSearch.submit();
|
||||
}
|
||||
|
||||
function _groupExp(el) {
|
||||
var _cur = el.parentNode;
|
||||
|
||||
if (_cur.className == "exp") _cur.className = "";
|
||||
else _cur.className = "exp";
|
||||
}
|
||||
|
||||
-->
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
<!--
|
||||
fieldset {
|
||||
border: 1px inset black;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
legend {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.groupExp dl dt {
|
||||
font-weight: normal;
|
||||
width: 55%;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.groupExp.highlighted {
|
||||
background-color: #CD0210;
|
||||
}
|
||||
|
||||
.groupExp.highlighted a.rc b {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.groupExp.highlighted .exp a.rc b {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.groupExp.highlighted .exp {
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
.ext_edittext {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
td.edittext {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.confinput {
|
||||
width: 300px;
|
||||
height: 70px;
|
||||
}
|
||||
|
||||
-->
|
||||
</style>
|
||||
|
||||
[{if $readonly}]
|
||||
[{assign var="readonly" value="readonly disabled"}]
|
||||
[{else}]
|
||||
[{assign var="readonly" value=""}]
|
||||
[{/if}]
|
||||
|
||||
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
|
||||
[{$oViewConf->getHiddenSid()}]
|
||||
<input type="hidden" name="oxid" value="[{$oxid}]">
|
||||
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
|
||||
<input type="hidden" name="actshop" value="[{$shop->id}]">
|
||||
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
|
||||
</form>
|
||||
|
||||
<form name="myedit" id="myedit" action="[{$oViewConf->getSelfLink()}]" method="post">
|
||||
[{$oViewConf->getHiddenSid()}]
|
||||
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
|
||||
<input type="hidden" name="fnc" value="save">
|
||||
<input type="hidden" name="oxid" value="[{$oxid}]">
|
||||
<input type="hidden" name="editval[oxid]" value="[{$oxid}]">
|
||||
|
||||
<table border="0" width="98%">
|
||||
<tr>
|
||||
<td valign="top" class="edittext">
|
||||
|
||||
[{include file="d3_cfg_mod_active.tpl"}]
|
||||
|
||||
[{if $oView->getValueStatus() == 'error'}]
|
||||
<hr>
|
||||
<b>[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_DESC"}]</b>
|
||||
<br>
|
||||
<br>
|
||||
<span class="d3modcfg_btn fixed icon status_attention">
|
||||
<input type="submit" value="[{oxmultilang ident="D3_CFG_MOD_GENERAL_NOCONFIG_BTN"}]">
|
||||
<span></span>
|
||||
</span>
|
||||
[{else}]
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td class="edittext ext_edittext" align="left">
|
||||
<br>
|
||||
<span class="d3modcfg_btn icon status_ok">
|
||||
<input type="submit" name="save" value="[{oxmultilang ident="D3_INQUIRY_MAIN_SAVE"}]">
|
||||
<span></span>
|
||||
</span>
|
||||
<br><br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
[{/if}]
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
[{include file="d3_cfg_mod_inc.tpl"}]
|
||||
|
||||
<script type="text/javascript">
|
||||
if (parent.parent) {
|
||||
parent.parent.sShopTitle = "[{$actshopobj->oxshops__oxname->getRawValue()|oxaddslashes}]";
|
||||
parent.parent.sMenuItem = "[{oxmultilang ident="d3mxusersonline"}]";
|
||||
parent.parent.sMenuSubItem = "[{oxmultilang ident="d3mxusersonline_settings"}]";
|
||||
parent.parent.sWorkArea = "[{$_act}]";
|
||||
parent.parent.setTitle();
|
||||
}
|
||||
</script>
|
@ -0,0 +1,161 @@
|
||||
[{include file="headitem.tpl" title="d3tbclussersonline_settings_main"|oxmultilangassign}]
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
[{if $updatelist == 1}]
|
||||
UpdateList('[{$oxid}]');
|
||||
[{/if}]
|
||||
|
||||
function UpdateList( sID)
|
||||
{
|
||||
var oSearch = parent.list.document.getElementById("search");
|
||||
oSearch.oxid.value=sID;
|
||||
oSearch.fnc.value='';
|
||||
oSearch.submit();
|
||||
}
|
||||
|
||||
function EditThis( sID)
|
||||
{
|
||||
var oTransfer = document.getElementById("transfer");
|
||||
oTransfer.oxid.value=sID;
|
||||
oTransfer.cl.value='';
|
||||
oTransfer.submit();
|
||||
|
||||
var oSearch = parent.list.document.getElementById("search");
|
||||
oSearch.actedit.value = 0;
|
||||
oSearch.oxid.value=sID;
|
||||
oSearch.submit();
|
||||
}
|
||||
|
||||
function _groupExp(el) {
|
||||
var _cur = el.parentNode;
|
||||
|
||||
if (_cur.className == "exp") _cur.className = "";
|
||||
else _cur.className = "exp";
|
||||
}
|
||||
|
||||
-->
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
<!--
|
||||
fieldset {
|
||||
border: 1px inset black;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
legend {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.groupExp dl dt {
|
||||
font-weight: normal;
|
||||
width: 55%;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.groupExp.highlighted {
|
||||
background-color: #CD0210;
|
||||
}
|
||||
|
||||
.groupExp.highlighted a.rc b {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.groupExp.highlighted .exp a.rc b {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.groupExp.highlighted .exp {
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
.ext_edittext {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
td.edittext {
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.confinput {
|
||||
width: 300px;
|
||||
height: 70px;
|
||||
}
|
||||
|
||||
-->
|
||||
</style>
|
||||
|
||||
[{if $readonly}]
|
||||
[{assign var="readonly" value="readonly disabled"}]
|
||||
[{else}]
|
||||
[{assign var="readonly" value=""}]
|
||||
[{/if}]
|
||||
|
||||
<form name="transfer" id="transfer" action="[{$oViewConf->getSelfLink()}]" method="post">
|
||||
[{$oViewConf->getHiddenSid()}]
|
||||
<input type="hidden" name="oxid" value="[{$oxid}]">
|
||||
<input type="hidden" name="cl" value="[{$oViewConf->getActiveClassName()}]">
|
||||
<input type="hidden" name="actshop" value="[{$shop->id}]">
|
||||
<input type="hidden" name="editlanguage" value="[{$editlanguage}]">
|
||||
</form>
|
||||
|
||||
[{d3modcfgcheck modid="d3usersonline"}][{/d3modcfgcheck}]
|
||||
[{if $mod_d3usersonline}]
|
||||
[{assign var="aUsersOnline" value=$oView->getUserCount()}]
|
||||
<h3>[{oxmultilang ident="D3_USERSONLINE_USERSONLINE"}]</h3>
|
||||
<div class="content">
|
||||
<table style="border-style: none; width: 100%;">
|
||||
<tr>
|
||||
<td style="border-bottom: 1px solid silver;">
|
||||
[{oxmultilang ident="D3_USERSONLINE_ALL"}]
|
||||
</td>
|
||||
<td style="border-bottom: 1px solid silver; text-align: right; font-weight: bold;">
|
||||
[{$aUsersOnline.all}]
|
||||
</td>
|
||||
<td style="border-bottom: 1px solid silver; text-align: left;">
|
||||
[{if $aUsersOnline.all == 1}]
|
||||
[{oxmultilang ident="D3_USERSONLINE_USER"}]
|
||||
[{else}]
|
||||
[{oxmultilang ident="D3_USERSONLINE_USERS"}]
|
||||
[{/if}]
|
||||
</td>
|
||||
</tr>
|
||||
[{foreach from=$aUsersOnline.classes item="aClassUser"}]
|
||||
<tr>
|
||||
<td>
|
||||
[{if $aClassUser->classname}]
|
||||
[{$aClassUser->classname|ucfirst}]:
|
||||
[{else}]
|
||||
undefined:
|
||||
[{/if}]
|
||||
</td>
|
||||
<td style="text-align: right; font-weight: bold;">
|
||||
[{$aClassUser->counter}]
|
||||
</td>
|
||||
<td style="text-align: left;">
|
||||
[{if $aClassUser->counter == 1}]
|
||||
[{oxmultilang ident="D3_USERSONLINE_USER"}]
|
||||
[{else}]
|
||||
[{oxmultilang ident="D3_USERSONLINE_USERS"}]
|
||||
[{/if}]
|
||||
</td>
|
||||
</tr>
|
||||
[{/foreach}]
|
||||
</table>
|
||||
</div>
|
||||
[{else}]
|
||||
[{oxmultilang ident="D3USERSONLINE_NOTACTIVE"}]
|
||||
[{/if}]
|
||||
|
||||
[{include file="d3_cfg_mod_inc.tpl"}]
|
||||
|
||||
<script type="text/javascript">
|
||||
if (parent.parent) {
|
||||
parent.parent.sShopTitle = "[{$actshopobj->oxshops__oxname->getRawValue()|oxaddslashes}]";
|
||||
parent.parent.sMenuItem = "[{oxmultilang ident="d3mxusersonline"}]";
|
||||
parent.parent.sMenuSubItem = "[{oxmultilang ident="d3mxusersonline_settings"}]";
|
||||
parent.parent.sWorkArea = "[{$_act}]";
|
||||
parent.parent.setTitle();
|
||||
}
|
||||
</script>
|
@ -1,4 +1,5 @@
|
||||
[{d3modcfgcheck modid="d3usersonline"}]
|
||||
[{d3modcfgcheck modid="d3usersonline"}][{/d3modcfgcheck}]
|
||||
[{if $mod_d3usersonline}]
|
||||
[{if $oxcmp_user && $oxcmp_user->getFieldData('oxrights') == 'malladmin'}]
|
||||
<div class="box">
|
||||
<h3>[{oxmultilang ident="D3_USERSONLINE_USERSONLINE"}]</h3>
|
||||
@ -44,6 +45,6 @@
|
||||
</div>
|
||||
</div>
|
||||
[{/if}]
|
||||
[{/d3modcfgcheck}]
|
||||
[{/if}]
|
||||
|
||||
[{$smarty.block.parent}]
|
Chargement…
Référencer dans un nouveau ticket
Block a user