Compare commits
24 Commits
Author | SHA1 | Date | |
---|---|---|---|
3b8e6097c0 | |||
1b3364bc45 | |||
6d89c8e26c | |||
2afe6cb1be | |||
abd1f8d44b | |||
3e287f888a | |||
759b22b764 | |||
dac3ae9b23 | |||
c0a59c7196 | |||
dc9a1043a8 | |||
e777703589 | |||
fcf7a560ad | |||
c20ce515f4 | |||
92b8836b91 | |||
6caac005c8 | |||
e269bf7fbe | |||
98f7efbf59 | |||
44dbbfeaee | |||
952fd135ce | |||
6c3a96f5de | |||
2620e605ba | |||
2b7b031379 | |||
0b4d102217 | |||
5d1cb68d97 |
56
.gitattributes
vendored
56
.gitattributes
vendored
@ -1,31 +1,29 @@
|
|||||||
* text=auto !eol
|
* text=auto !eol
|
||||||
changed_full/420-448/out/basic/de/d3_usersonline_lang.php -text
|
Sources/Screenshots/Backend.jpg -text
|
||||||
changed_full/420-448/out/basic/tpl/_left.tpl -text
|
Sources/Screenshots/Frontend.jpg -text
|
||||||
changed_full/420-448/out/basic/tpl/inc/d3usersonline.tpl -text
|
Sources/UsersOnline-Installation.docx -text
|
||||||
changed_full/450/out/azure/de/d3_usersonline_lang.php -text
|
copy_this/.noencode -text
|
||||||
changed_full/450/out/azure/tpl/inc/d3usersonline.tpl -text
|
copy_this/modules/d3/d3usersonline/IntelliSenseHelper.php -text
|
||||||
changed_full/450/out/azure/tpl/layout/sidebar.tpl -text
|
copy_this/modules/d3/d3usersonline/controllers/admin/d3_cfg_usersonline.php -text
|
||||||
changed_full/450/out/basic/de/d3_usersonline_lang.php -text
|
copy_this/modules/d3/d3usersonline/controllers/admin/d3_cfg_usersonline_licence.php -text
|
||||||
changed_full/450/out/basic/tpl/_left.tpl -text
|
copy_this/modules/d3/d3usersonline/controllers/admin/d3_cfg_usersonline_list.php -text
|
||||||
changed_full/450/out/basic/tpl/inc/d3usersonline.tpl -text
|
copy_this/modules/d3/d3usersonline/controllers/admin/d3_cfg_usersonline_main.php -text
|
||||||
changed_full/451-453/out/azure/de/d3_usersonline_lang.php -text
|
copy_this/modules/d3/d3usersonline/controllers/admin/d3_usersonline.php -text
|
||||||
changed_full/451-453/out/azure/tpl/inc/d3usersonline.tpl -text
|
copy_this/modules/d3/d3usersonline/controllers/admin/d3_usersonline_list.php -text
|
||||||
changed_full/451-453/out/azure/tpl/layout/sidebar.tpl -text
|
copy_this/modules/d3/d3usersonline/controllers/admin/d3_usersonline_statistic.php -text
|
||||||
changed_full/451-453/out/basic/de/d3_usersonline_lang.php -text
|
copy_this/modules/d3/d3usersonline/menu.xml -text
|
||||||
changed_full/451-453/out/basic/tpl/_left.tpl -text
|
copy_this/modules/d3/d3usersonline/metadata.php -text
|
||||||
changed_full/451-453/out/basic/tpl/inc/d3usersonline.tpl -text
|
copy_this/modules/d3/d3usersonline/models/d3usersonline.php -text
|
||||||
changed_full/461/out/admin/de/d3_usersonline_lang.php -text
|
copy_this/modules/d3/d3usersonline/modules/components/d3_oxcmp_utils_usersonline.php -text
|
||||||
changed_full/461/out/azure/tpl/inc/d3usersonline.tpl -text
|
copy_this/modules/d3/d3usersonline/picture.png -text
|
||||||
changed_full/461/out/azure/tpl/layout/sidebar.tpl -text
|
copy_this/modules/d3/d3usersonline/setup/d3usersonline_update.php -text
|
||||||
changed_full/461/out/basic/tpl/_left.tpl -text
|
copy_this/modules/d3/d3usersonline/translations/de/d3usersonline_lang.php -text
|
||||||
changed_full/461/out/basic/tpl/inc/d3usersonline.tpl -text
|
copy_this/modules/d3/d3usersonline/translations/en/d3usersonline_lang.php -text
|
||||||
changed_full/461/out/de/d3_usersonline_lang.php -text
|
copy_this/modules/d3/d3usersonline/views/admin/de/d3usersonline_lang.php -text
|
||||||
copy_this/core/d3usersonline.php -text
|
copy_this/modules/d3/d3usersonline/views/admin/en/d3usersonline_lang.php -text
|
||||||
copy_this/modules/d3usersonline/metadata.php -text
|
copy_this/modules/d3/d3usersonline/views/admin/tpl/d3_cfg_usersonline_main.tpl -text
|
||||||
copy_this/modules/d3usersonline/picture.png -text
|
copy_this/modules/d3/d3usersonline/views/admin/tpl/d3_usersonline_statistic.tpl -text
|
||||||
copy_this/modules/d3usersonline/views/d3_oxcmp_utils_usersonline.php -text
|
copy_this/modules/d3/d3usersonline/views/blocks/layout/d3usersonline_sidebar.tpl -text
|
||||||
setup+doku/Installation.pdf -text
|
setup+doku/Installation.pdf -text
|
||||||
setup+doku/install.sql -text
|
setup+doku/Precheck/d3precheck.php -text
|
||||||
source/Re[!!-~]D3[!!-~]Users[!!-~]Online[!!-~]kit[!!-~]Oxid[!!-~]CE[!!-~]4.7.eml -text
|
setup+doku/changelog.txt -text
|
||||||
source/UsersOnline[!!-~]v1.2.1[!!-~]CE4_Kundenversion_4.7.0.zip -text
|
|
||||||
source/UsersOnline-Installation.docx -text
|
|
||||||
|
BIN
Sources/Screenshots/Backend.jpg
Normal file
BIN
Sources/Screenshots/Backend.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 311 KiB |
BIN
Sources/Screenshots/Frontend.jpg
Normal file
BIN
Sources/Screenshots/Frontend.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 610 KiB |
BIN
Sources/UsersOnline-Installation.docx
Normal file
BIN
Sources/UsersOnline-Installation.docx
Normal file
Binary file not shown.
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* This Software is the property of OXID eSales and is protected
|
|
||||||
* by copyright law - it is NOT Freeware.
|
|
||||||
*
|
|
||||||
* Any unauthorized use of this software without a valid license key
|
|
||||||
* is a violation of the license agreement and will be prosecuted by
|
|
||||||
* civil and criminal law.
|
|
||||||
*
|
|
||||||
* @link http://www.oxid-esales.com
|
|
||||||
* @package lang
|
|
||||||
* @copyright (C) OXID eSales AG 2003-2009
|
|
||||||
* @version OXID eShop PE
|
|
||||||
* $Id: lang.php 19866 2009-06-16 10:33:17Z alfonsas $
|
|
||||||
*/
|
|
||||||
|
|
||||||
$sLangName = 'Deutsch';
|
|
||||||
$iLangNr = 0;
|
|
||||||
// -------------------------------
|
|
||||||
// RESOURCE IDENTITFIER = STRING
|
|
||||||
// -------------------------------
|
|
||||||
$aLang = array(
|
|
||||||
|
|
||||||
'charset' => 'ISO-8859-15',
|
|
||||||
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
|
||||||
'D3_USERSONLINE_USER' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_USERS' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_ALL' => 'gesamt',
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
[{ oxmultilang ident='ACTIONS_MAIN_YOUWANTTODELETE' }]
|
|
||||||
*/
|
|
@ -1,79 +0,0 @@
|
|||||||
[{if $oView->showSearch() }]
|
|
||||||
<strong class="h2 search">[{ oxmultilang ident="INC_LEFTITEM_PRODUCTSEARCH" }]</strong>
|
|
||||||
<form action="[{ $oViewConf->getSelfActionLink() }]" method="get" name="search" class="search" id="f.search">
|
|
||||||
<p>
|
|
||||||
[{ $oViewConf->getHiddenSid() }]
|
|
||||||
<input type="hidden" name="cl" value="search">
|
|
||||||
<input type="text" name="searchparam" value="[{$searchparamforhtml}]" size="21" id="f.search.param" class="txt">
|
|
||||||
|
|
||||||
[{if $oView->getSearchCatTree() }]
|
|
||||||
<select id="test_searchCategorySelect" class="search_input" name="searchcnid" [{if $oViewConf->isAutoSearchOnCat() }]onchange="oxid.search('f.search','f.search.param');"[{/if}]>
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLCATEGORIES" }] </option>
|
|
||||||
[{include file="inc/category_options.tpl" tree=$oView->getSearchCatTree() sSpacer=""}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getVendorlist() }]
|
|
||||||
<select id="test_searchVendorSelect" class="search_input" name="searchvendor">
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLDISTRIBUTORS" }] </option>
|
|
||||||
[{foreach from=$oView->getVendorlist() item=oVendorlistentry}]
|
|
||||||
<option value="[{$oVendorlistentry->oxvendor__oxid->value}]"[{if $searchvendor == $oVendorlistentry->oxvendor__oxid->value}] selected[{/if}]>[{ $oVendorlistentry->oxvendor__oxtitle->value }][{ if $oVendorlistentry->getNrOfArticles() > 0 }] ([{$oVendorlistentry->getNrOfArticles()}])[{/if}]</option>
|
|
||||||
[{/foreach}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getManufacturerlist() }]
|
|
||||||
<select id="test_searchManufacturerSelect" class="search_input" name="searchmanufacturer">
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLMANUFACTURERS" }] </option>
|
|
||||||
[{foreach from=$oView->getManufacturerlist() item=oManufacturerlistentry}]
|
|
||||||
<option value="[{$oManufacturerlistentry->oxmanufacturers__oxid->value}]"[{if $searchmanufacturer == $oManufacturerlistentry->oxmanufacturers__oxid->value}] selected[{/if}]>[{ $oManufacturerlistentry->oxmanufacturers__oxtitle->value }][{ if $oManufacturerlistentry->getNrOfArticles() > 0 }] ([{$oManufacturerlistentry->getNrOfArticles()}])[{/if}]</option>
|
|
||||||
[{/foreach}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
<span class="btn"><input id="test_searchGo" type="submit" class="btn" value="GO!"></span>
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
[{/if}]
|
|
||||||
[{if $oxcmp_categories }]
|
|
||||||
[{if $oView->showTopCatNavigation()}]
|
|
||||||
[{include file="inc/category_tree.tpl" tree=$oxcmp_categories->getClickRoot() act=$oxcmp_categories->getClickCat() class="tree"}]
|
|
||||||
[{else}]
|
|
||||||
[{include file="inc/category_tree.tpl" tree=$oxcmp_categories act=$oxcmp_categories->getClickCat() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->loadVendorTree() && $oView->getVendorlist()}]
|
|
||||||
[{include file="inc/vendor_tree.tpl" tree=$oView->getVendorlist() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->loadManufacturerTree() && $oView->getManufacturerlist()}]
|
|
||||||
[{include file="inc/manufacturer_tree.tpl" tree=$oView->getManufacturerlist() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{*** D3 Modul "UsersOnline" START ***}]
|
|
||||||
[{include file="inc/d3usersonline.tpl"}]
|
|
||||||
[{*** D3 Modul "UsersOnline" END ***}]
|
|
||||||
|
|
||||||
[{if $oView->showLeftBasket()}]
|
|
||||||
[{oxid_include_dynamic file="dyn/mini_basket.tpl" type="basket" testid="LeftBasket"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{include file="inc/infobox.tpl"}]
|
|
||||||
|
|
||||||
[{if $oxcmp_news && count($oxcmp_news) > 0}]
|
|
||||||
[{include file="inc/cmp_news.tpl"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
<strong class="h2" id="test_LeftSidePartnersHeader">[{ oxmultilang ident="INC_LEFTITEM_PARTNERANDSEAL" }]</strong>
|
|
||||||
<div class="partners">
|
|
||||||
<div class="logo">
|
|
||||||
[{include file="inc/trustedshops_item.tpl"}]
|
|
||||||
</div>
|
|
||||||
<div class="logo">
|
|
||||||
<a href="http://www.zend.com" id="link.zendSite"><img src="[{$oViewConf->getImageUrl()}]zend_logo.gif" alt=""></a>
|
|
||||||
[{oxscript add="oxid.blank('link.zendSite');"}]
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
[{if $oxcmp_user && $oxcmp_user->oxuser__oxrights->value == 'malladmin'}]
|
|
||||||
<strong class="h2" id="test_LeftSideInfoHeader">[{oxmultilang ident="D3_USERSONLINE_USERSONLINE"}]</strong>
|
|
||||||
<div class="partners" style="padding-left: 10px;">
|
|
||||||
<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;">
|
|
||||||
<b>[{$aUsersOnline.all }]</b>
|
|
||||||
</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;">
|
|
||||||
<b>[{$aClassUser->counter}]</b>
|
|
||||||
</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>
|
|
||||||
[{/if}]
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* This Software is the property of OXID eSales and is protected
|
|
||||||
* by copyright law - it is NOT Freeware.
|
|
||||||
*
|
|
||||||
* Any unauthorized use of this software without a valid license key
|
|
||||||
* is a violation of the license agreement and will be prosecuted by
|
|
||||||
* civil and criminal law.
|
|
||||||
*
|
|
||||||
* @link http://www.oxid-esales.com
|
|
||||||
* @package lang
|
|
||||||
* @copyright (C) OXID eSales AG 2003-2009
|
|
||||||
* @version OXID eShop PE
|
|
||||||
* $Id: lang.php 19866 2009-06-16 10:33:17Z alfonsas $
|
|
||||||
*/
|
|
||||||
|
|
||||||
$sLangName = 'Deutsch';
|
|
||||||
$iLangNr = 0;
|
|
||||||
// -------------------------------
|
|
||||||
// RESOURCE IDENTITFIER = STRING
|
|
||||||
// -------------------------------
|
|
||||||
$aLang = array(
|
|
||||||
|
|
||||||
'charset' => 'ISO-8859-15',
|
|
||||||
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
|
||||||
'D3_USERSONLINE_USER' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_USERS' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_ALL' => 'gesamt',
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
[{ oxmultilang ident='ACTIONS_MAIN_YOUWANTTODELETE' }]
|
|
||||||
*/
|
|
@ -1,45 +0,0 @@
|
|||||||
[{if $oxcmp_user && $oxcmp_user->oxuser__oxrights->value == 'malladmin'}]
|
|
||||||
<div class="box">
|
|
||||||
<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;">
|
|
||||||
<b>[{$aUsersOnline.all }]</b>
|
|
||||||
</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;">
|
|
||||||
<b>[{$aClassUser->counter}]</b>
|
|
||||||
</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>
|
|
||||||
</div>
|
|
||||||
[{/if}]
|
|
@ -1,70 +0,0 @@
|
|||||||
[{if $oView->isDemoShop()}]
|
|
||||||
[{ include file="widget/sidebar/adminbanner.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oxcmp_categories }]
|
|
||||||
[{capture append="oxidBlock_sidebar" }]
|
|
||||||
[{include file="widget/sidebar/categoriestree.tpl" categories=$oxcmp_categories->getClickRoot() act=$oxcmp_categories->getClickCat() deepLevel=0}]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{*** D3 Modul "UsersOnline" START ***}]
|
|
||||||
[{include file="inc/d3usersonline.tpl"}]
|
|
||||||
[{*** D3 Modul "UsersOnline" END ***}]
|
|
||||||
|
|
||||||
[{if $oView->getClassName() eq "start" && $oView->getTop5ArticleList()}]
|
|
||||||
[{capture append="oxidBlock_sidebar" }]
|
|
||||||
[{include file="widget/product/boxproducts.tpl" _boxId="topBox" _oBoxProducts=$oView->getTop5ArticleList() _sHeaderIdent="BOX_TOPOFTHESHOP_HEADER"}]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oViewConf->getShowListmania() }]
|
|
||||||
[{capture append="oxidBlock_sidebar"}]
|
|
||||||
[{include file="widget/sidebar/recommendation.tpl"}]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getClassName() ne "details" && $oView->getClassName() ne "tags"}]
|
|
||||||
[{if $oView->getTagCloudManager() }]
|
|
||||||
[{capture append="oxidBlock_sidebar"}]
|
|
||||||
[{include file="widget/sidebar/tags.tpl" oTagsManager=$oView->getTagCloudManager()}]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oxcmp_news|count }]
|
|
||||||
[{capture append="oxidBlock_sidebar"}]
|
|
||||||
[{include file="widget/sidebar/news.tpl" oNews=$oxcmp_news}]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->isActive('FbFacepile') && $oView->isConnectedWithFb()}]
|
|
||||||
[{capture append="oxidBlock_sidebar"}]
|
|
||||||
[{include file="widget/facebook/facepile.tpl"}]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{capture append="oxidBlock_sidebar"}]
|
|
||||||
[{include file="widget/sidebar/partners.tpl" }]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{if $oViewConf->showTs("WIDGET")}]
|
|
||||||
[{capture append="oxidBlock_sidebar"}]
|
|
||||||
[{include file="widget/trustedshops/ratings.tpl" }]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{capture append="oxidBlock_sidebar"}]
|
|
||||||
[{include file="widget/shoplupe/ratings.tpl" }]
|
|
||||||
[{/capture}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{foreach from=$oxidBlock_sidebar item="_block"}]
|
|
||||||
[{$_block}]
|
|
||||||
[{/foreach}]
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* This Software is the property of OXID eSales and is protected
|
|
||||||
* by copyright law - it is NOT Freeware.
|
|
||||||
*
|
|
||||||
* Any unauthorized use of this software without a valid license key
|
|
||||||
* is a violation of the license agreement and will be prosecuted by
|
|
||||||
* civil and criminal law.
|
|
||||||
*
|
|
||||||
* @link http://www.oxid-esales.com
|
|
||||||
* @package lang
|
|
||||||
* @copyright (C) OXID eSales AG 2003-2009
|
|
||||||
* @version OXID eShop PE
|
|
||||||
* $Id: lang.php 19866 2009-06-16 10:33:17Z alfonsas $
|
|
||||||
*/
|
|
||||||
|
|
||||||
$sLangName = 'Deutsch';
|
|
||||||
$iLangNr = 0;
|
|
||||||
// -------------------------------
|
|
||||||
// RESOURCE IDENTITFIER = STRING
|
|
||||||
// -------------------------------
|
|
||||||
$aLang = array(
|
|
||||||
|
|
||||||
'charset' => 'ISO-8859-15',
|
|
||||||
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
|
||||||
'D3_USERSONLINE_USER' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_USERS' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_ALL' => 'gesamt',
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
[{ oxmultilang ident='ACTIONS_MAIN_YOUWANTTODELETE' }]
|
|
||||||
*/
|
|
@ -1,79 +0,0 @@
|
|||||||
[{if $oView->showSearch() }]
|
|
||||||
<strong class="h2 search">[{ oxmultilang ident="INC_LEFTITEM_PRODUCTSEARCH" }]</strong>
|
|
||||||
<form action="[{ $oViewConf->getSelfActionLink() }]" method="get" name="search" class="search" id="f.search">
|
|
||||||
<p>
|
|
||||||
[{ $oViewConf->getHiddenSid() }]
|
|
||||||
<input type="hidden" name="cl" value="search">
|
|
||||||
<input type="text" name="searchparam" value="[{$oView->getSearchParamForHtml()}]" size="21" id="f.search.param" class="txt">
|
|
||||||
|
|
||||||
[{if $oView->getSearchCatTree() }]
|
|
||||||
<select id="test_searchCategorySelect" class="search_input" name="searchcnid" [{if $oViewConf->isAutoSearchOnCat() }]onchange="oxid.search('f.search','f.search.param');"[{/if}]>
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLCATEGORIES" }] </option>
|
|
||||||
[{include file="inc/category_options.tpl" tree=$oView->getSearchCatTree() sSpacer=""}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getVendorlist() }]
|
|
||||||
<select id="test_searchVendorSelect" class="search_input" name="searchvendor">
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLDISTRIBUTORS" }] </option>
|
|
||||||
[{foreach from=$oView->getVendorlist() item=oVendorlistentry}]
|
|
||||||
<option value="[{$oVendorlistentry->oxvendor__oxid->value}]"[{if $oView->getSearchVendor() == $oVendorlistentry->oxvendor__oxid->value}] selected[{/if}]>[{ $oVendorlistentry->oxvendor__oxtitle->value }][{ if $oVendorlistentry->getNrOfArticles() > 0 }] ([{$oVendorlistentry->getNrOfArticles()}])[{/if}]</option>
|
|
||||||
[{/foreach}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getManufacturerlist() }]
|
|
||||||
<select id="test_searchManufacturerSelect" class="search_input" name="searchmanufacturer">
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLMANUFACTURERS" }] </option>
|
|
||||||
[{foreach from=$oView->getManufacturerlist() item=oManufacturerlistentry}]
|
|
||||||
<option value="[{$oManufacturerlistentry->oxmanufacturers__oxid->value}]"[{if $oView->getSearchManufacturer() == $oManufacturerlistentry->oxmanufacturers__oxid->value}] selected[{/if}]>[{ $oManufacturerlistentry->oxmanufacturers__oxtitle->value }][{ if $oManufacturerlistentry->getNrOfArticles() > 0 }] ([{$oManufacturerlistentry->getNrOfArticles()}])[{/if}]</option>
|
|
||||||
[{/foreach}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
<span class="btn"><input id="test_searchGo" type="submit" class="btn" value="GO!"></span>
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
[{/if}]
|
|
||||||
[{if $oxcmp_categories }]
|
|
||||||
[{if $oView->showTopCatNavigation()}]
|
|
||||||
[{include file="inc/category_tree.tpl" tree=$oxcmp_categories->getClickRoot() act=$oxcmp_categories->getClickCat() class="tree"}]
|
|
||||||
[{else}]
|
|
||||||
[{include file="inc/category_tree.tpl" tree=$oxcmp_categories act=$oxcmp_categories->getClickCat() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->loadVendorTree() && $oView->getVendorlist()}]
|
|
||||||
[{include file="inc/vendor_tree.tpl" tree=$oView->getVendorlist() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->loadManufacturerTree() && $oView->getManufacturerlist()}]
|
|
||||||
[{include file="inc/manufacturer_tree.tpl" tree=$oView->getManufacturerlist() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{*** D3 Modul "UsersOnline" START ***}]
|
|
||||||
[{include file="inc/d3usersonline.tpl"}]
|
|
||||||
[{*** D3 Modul "UsersOnline" END ***}]
|
|
||||||
|
|
||||||
[{if $oView->showLeftBasket()}]
|
|
||||||
[{oxid_include_dynamic file="dyn/mini_basket.tpl" type="basket" testid="LeftBasket"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{include file="inc/infobox.tpl"}]
|
|
||||||
|
|
||||||
[{if $oxcmp_news && count($oxcmp_news) > 0}]
|
|
||||||
[{include file="inc/cmp_news.tpl"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
<strong class="h2" id="test_LeftSidePartnersHeader">[{ oxmultilang ident="INC_LEFTITEM_PARTNERANDSEAL" }]</strong>
|
|
||||||
<div class="partners">
|
|
||||||
<div class="logo">
|
|
||||||
[{include file="inc/trustedshops_item.tpl"}]
|
|
||||||
</div>
|
|
||||||
<div class="logo">
|
|
||||||
<a href="http://www.zend.com" id="link.zendSite"><img src="[{$oViewConf->getImageUrl()}]zend_logo.gif" alt=""></a>
|
|
||||||
[{oxscript add="oxid.blank('link.zendSite');"}]
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
[{if $oxcmp_user && $oxcmp_user->oxuser__oxrights->value == 'malladmin'}]
|
|
||||||
<strong class="h2" id="test_LeftSideInfoHeader">[{oxmultilang ident="D3_USERSONLINE_USERSONLINE"}]</strong>
|
|
||||||
<div class="partners" style="padding-left: 10px;">
|
|
||||||
<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;">
|
|
||||||
<b>[{$aUsersOnline.all }]</b>
|
|
||||||
</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;">
|
|
||||||
<b>[{$aClassUser->counter}]</b>
|
|
||||||
</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>
|
|
||||||
[{/if}]
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* This Software is the property of OXID eSales and is protected
|
|
||||||
* by copyright law - it is NOT Freeware.
|
|
||||||
*
|
|
||||||
* Any unauthorized use of this software without a valid license key
|
|
||||||
* is a violation of the license agreement and will be prosecuted by
|
|
||||||
* civil and criminal law.
|
|
||||||
*
|
|
||||||
* @link http://www.oxid-esales.com
|
|
||||||
* @package lang
|
|
||||||
* @copyright (C) OXID eSales AG 2003-2009
|
|
||||||
* @version OXID eShop PE
|
|
||||||
* $Id: lang.php 19866 2009-06-16 10:33:17Z alfonsas $
|
|
||||||
*/
|
|
||||||
|
|
||||||
$sLangName = 'Deutsch';
|
|
||||||
$iLangNr = 0;
|
|
||||||
// -------------------------------
|
|
||||||
// RESOURCE IDENTITFIER = STRING
|
|
||||||
// -------------------------------
|
|
||||||
$aLang = array(
|
|
||||||
|
|
||||||
'charset' => 'ISO-8859-15',
|
|
||||||
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
|
||||||
'D3_USERSONLINE_USER' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_USERS' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_ALL' => 'gesamt',
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
[{ oxmultilang ident='ACTIONS_MAIN_YOUWANTTODELETE' }]
|
|
||||||
*/
|
|
@ -1,45 +0,0 @@
|
|||||||
[{if $oxcmp_user && $oxcmp_user->oxuser__oxrights->value == 'malladmin'}]
|
|
||||||
<div class="box">
|
|
||||||
<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;">
|
|
||||||
<b>[{$aUsersOnline.all }]</b>
|
|
||||||
</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;">
|
|
||||||
<b>[{$aClassUser->counter}]</b>
|
|
||||||
</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>
|
|
||||||
</div>
|
|
||||||
[{/if}]
|
|
@ -1,74 +0,0 @@
|
|||||||
[{foreach from=$oxidBlock_sidebar item="_block"}]
|
|
||||||
[{$_block}]
|
|
||||||
[{/foreach}]
|
|
||||||
|
|
||||||
[{block name="sidebar"}]
|
|
||||||
[{block name="sidebar_adminbanner"}]
|
|
||||||
[{if $oView->isDemoShop()}]
|
|
||||||
[{ include file="widget/sidebar/adminbanner.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_categoriestree"}]
|
|
||||||
[{if $oxcmp_categories }]
|
|
||||||
[{include file="widget/sidebar/categoriestree.tpl" categories=$oxcmp_categories->getClickRoot() act=$oxcmp_categories->getClickCat() deepLevel=0}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{*** D3 Modul "UsersOnline" START ***}]
|
|
||||||
[{include file="inc/d3usersonline.tpl"}]
|
|
||||||
{{*** D3 Modul "UsersOnline" END ***}]
|
|
||||||
|
|
||||||
[{block name="sidebar_trustedshopsratings"}]
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{if $oViewConf->showTs("WIDGET")}]
|
|
||||||
[{include file="widget/trustedshops/ratings.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_partners"}]
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{include file="widget/sidebar/partners.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_boxproducts"}]
|
|
||||||
[{if $oView->getClassName() eq "start" && $oView->getTop5ArticleList()}]
|
|
||||||
[{include file="widget/product/boxproducts.tpl" _boxId="topBox" _oBoxProducts=$oView->getTop5ArticleList() _sHeaderIdent="BOX_TOPOFTHESHOP_HEADER"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_recommendation"}]
|
|
||||||
[{if $oViewConf->getShowListmania() }]
|
|
||||||
[{include file="widget/sidebar/recommendation.tpl"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_tags"}]
|
|
||||||
[{if $oView->showTags() && $oView->getClassName() ne "details" && $oView->getClassName() ne "alist" && $oView->getClassName() ne "tags"}]
|
|
||||||
[{if $oView->getTagCloudManager() }]
|
|
||||||
[{include file="widget/sidebar/tags.tpl" oTagsManager=$oView->getTagCloudManager()}]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_news"}]
|
|
||||||
[{if $oxcmp_news|count }]
|
|
||||||
[{include file="widget/sidebar/news.tpl" oNews=$oxcmp_news}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_facebookfacepile"}]
|
|
||||||
[{if $oView->isActive('FbFacepile') && $oView->isConnectedWithFb()}]
|
|
||||||
[{include file="widget/facebook/facepile.tpl"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_shopluperatings"}]
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{include file="widget/shoplupe/ratings.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* This Software is the property of OXID eSales and is protected
|
|
||||||
* by copyright law - it is NOT Freeware.
|
|
||||||
*
|
|
||||||
* Any unauthorized use of this software without a valid license key
|
|
||||||
* is a violation of the license agreement and will be prosecuted by
|
|
||||||
* civil and criminal law.
|
|
||||||
*
|
|
||||||
* @link http://www.oxid-esales.com
|
|
||||||
* @package lang
|
|
||||||
* @copyright (C) OXID eSales AG 2003-2009
|
|
||||||
* @version OXID eShop PE
|
|
||||||
* $Id: lang.php 19866 2009-06-16 10:33:17Z alfonsas $
|
|
||||||
*/
|
|
||||||
|
|
||||||
$sLangName = 'Deutsch';
|
|
||||||
$iLangNr = 0;
|
|
||||||
// -------------------------------
|
|
||||||
// RESOURCE IDENTITFIER = STRING
|
|
||||||
// -------------------------------
|
|
||||||
$aLang = array(
|
|
||||||
|
|
||||||
'charset' => 'ISO-8859-15',
|
|
||||||
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
|
||||||
'D3_USERSONLINE_USER' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_USERS' => 'Benutzer',
|
|
||||||
'D3_USERSONLINE_ALL' => 'gesamt',
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
[{ oxmultilang ident='ACTIONS_MAIN_YOUWANTTODELETE' }]
|
|
||||||
*/
|
|
@ -1,79 +0,0 @@
|
|||||||
[{if $oView->showSearch() }]
|
|
||||||
<strong class="h2 search">[{ oxmultilang ident="INC_LEFTITEM_PRODUCTSEARCH" }]</strong>
|
|
||||||
<form action="[{ $oViewConf->getSelfActionLink() }]" method="get" name="search" class="search" id="f.search">
|
|
||||||
<p>
|
|
||||||
[{ $oViewConf->getHiddenSid() }]
|
|
||||||
<input type="hidden" name="cl" value="search">
|
|
||||||
<input type="text" name="searchparam" value="[{$oView->getSearchParamForHtml()}]" size="21" id="f.search.param" class="txt">
|
|
||||||
|
|
||||||
[{if $oView->getSearchCatTree() }]
|
|
||||||
<select id="test_searchCategorySelect" class="search_input" name="searchcnid" [{if $oViewConf->isAutoSearchOnCat() }]onchange="oxid.search('f.search','f.search.param');"[{/if}]>
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLCATEGORIES" }] </option>
|
|
||||||
[{include file="inc/category_options.tpl" tree=$oView->getSearchCatTree() sSpacer=""}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getVendorlist() }]
|
|
||||||
<select id="test_searchVendorSelect" class="search_input" name="searchvendor">
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLDISTRIBUTORS" }] </option>
|
|
||||||
[{foreach from=$oView->getVendorlist() item=oVendorlistentry}]
|
|
||||||
<option value="[{$oVendorlistentry->oxvendor__oxid->value}]"[{if $oView->getSearchVendor() == $oVendorlistentry->oxvendor__oxid->value}] selected[{/if}]>[{ $oVendorlistentry->oxvendor__oxtitle->value }][{ if $oVendorlistentry->getNrOfArticles() > 0 }] ([{$oVendorlistentry->getNrOfArticles()}])[{/if}]</option>
|
|
||||||
[{/foreach}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getManufacturerlist() }]
|
|
||||||
<select id="test_searchManufacturerSelect" class="search_input" name="searchmanufacturer">
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLMANUFACTURERS" }] </option>
|
|
||||||
[{foreach from=$oView->getManufacturerlist() item=oManufacturerlistentry}]
|
|
||||||
<option value="[{$oManufacturerlistentry->oxmanufacturers__oxid->value}]"[{if $oView->getSearchManufacturer() == $oManufacturerlistentry->oxmanufacturers__oxid->value}] selected[{/if}]>[{ $oManufacturerlistentry->oxmanufacturers__oxtitle->value }][{ if $oManufacturerlistentry->getNrOfArticles() > 0 }] ([{$oManufacturerlistentry->getNrOfArticles()}])[{/if}]</option>
|
|
||||||
[{/foreach}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
<span class="btn"><input id="test_searchGo" type="submit" class="btn" value="GO!"></span>
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
[{/if}]
|
|
||||||
[{if $oxcmp_categories }]
|
|
||||||
[{if $oView->showTopCatNavigation()}]
|
|
||||||
[{include file="inc/category_tree.tpl" tree=$oxcmp_categories->getClickRoot() act=$oxcmp_categories->getClickCat() class="tree"}]
|
|
||||||
[{else}]
|
|
||||||
[{include file="inc/category_tree.tpl" tree=$oxcmp_categories act=$oxcmp_categories->getClickCat() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->loadVendorTree() && $oView->getVendorlist()}]
|
|
||||||
[{include file="inc/vendor_tree.tpl" tree=$oView->getVendorlist() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->loadManufacturerTree() && $oView->getManufacturerlist()}]
|
|
||||||
[{include file="inc/manufacturer_tree.tpl" tree=$oView->getManufacturerlist() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{*** D3 Modul "UsersOnline" START ***}]
|
|
||||||
[{include file="inc/d3usersonline.tpl"}]
|
|
||||||
[{*** D3 Modul "UsersOnline" END ***}]
|
|
||||||
|
|
||||||
[{if $oView->showLeftBasket()}]
|
|
||||||
[{oxid_include_dynamic file="dyn/mini_basket.tpl" type="basket" testid="LeftBasket"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{include file="inc/infobox.tpl"}]
|
|
||||||
|
|
||||||
[{if $oxcmp_news && count($oxcmp_news) > 0}]
|
|
||||||
[{include file="inc/cmp_news.tpl"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
<strong class="h2" id="test_LeftSidePartnersHeader">[{ oxmultilang ident="INC_LEFTITEM_PARTNERANDSEAL" }]</strong>
|
|
||||||
<div class="partners">
|
|
||||||
<div class="logo">
|
|
||||||
[{include file="inc/trustedshops_item.tpl"}]
|
|
||||||
</div>
|
|
||||||
<div class="logo">
|
|
||||||
<a href="http://www.zend.com" id="link.zendSite"><img src="[{$oViewConf->getImageUrl()}]zend_logo.gif" alt=""></a>
|
|
||||||
[{oxscript add="oxid.blank('link.zendSite');"}]
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
[{if $oxcmp_user && $oxcmp_user->oxuser__oxrights->value == 'malladmin'}]
|
|
||||||
<strong class="h2" id="test_LeftSideInfoHeader">[{oxmultilang ident="D3_USERSONLINE_USERSONLINE"}]</strong>
|
|
||||||
<div class="partners" style="padding-left: 10px;">
|
|
||||||
<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;">
|
|
||||||
<b>[{$aUsersOnline.all }]</b>
|
|
||||||
</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;">
|
|
||||||
<b>[{$aClassUser->counter}]</b>
|
|
||||||
</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>
|
|
||||||
[{/if}]
|
|
@ -1,31 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* This Software is the property of OXID eSales and is protected
|
|
||||||
* by copyright law - it is NOT Freeware.
|
|
||||||
*
|
|
||||||
* Any unauthorized use of this software without a valid license key
|
|
||||||
* is a violation of the license agreement and will be prosecuted by
|
|
||||||
* civil and criminal law.
|
|
||||||
*
|
|
||||||
* @link http://www.oxid-esales.com
|
|
||||||
* @package lang
|
|
||||||
* @copyright (C) OXID eSales AG 2003-2009
|
|
||||||
* @version OXID eShop PE
|
|
||||||
* $Id: lang.php 19866 2009-06-16 10:33:17Z alfonsas $
|
|
||||||
*/
|
|
||||||
|
|
||||||
$sLangName = 'Deutsch';
|
|
||||||
$iLangNr = 0;
|
|
||||||
// -------------------------------
|
|
||||||
// RESOURCE IDENTITFIER = STRING
|
|
||||||
// -------------------------------
|
|
||||||
$aLang = array(
|
|
||||||
'charset' => 'ISO-8859-15',
|
|
||||||
'D3_USERONLINE_METADATA_TITLE' => 'D³ User Online',
|
|
||||||
'D3_USERONLINE_METADATA_DESC' => '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.',
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
|
||||||
[{ oxmultilang ident='ACTIONS_MAIN_YOUWANTTODELETE' }]
|
|
||||||
*/
|
|
@ -1,45 +0,0 @@
|
|||||||
[{if $oxcmp_user && $oxcmp_user->oxuser__oxrights->value == 'malladmin'}]
|
|
||||||
<div class="box">
|
|
||||||
<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;">
|
|
||||||
<b>[{$aUsersOnline.all }]</b>
|
|
||||||
</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;">
|
|
||||||
<b>[{$aClassUser->counter}]</b>
|
|
||||||
</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>
|
|
||||||
</div>
|
|
||||||
[{/if}]
|
|
@ -1,74 +0,0 @@
|
|||||||
[{foreach from=$oxidBlock_sidebar item="_block"}]
|
|
||||||
[{$_block}]
|
|
||||||
[{/foreach}]
|
|
||||||
|
|
||||||
[{block name="sidebar"}]
|
|
||||||
[{block name="sidebar_adminbanner"}]
|
|
||||||
[{if $oView->isDemoShop()}]
|
|
||||||
[{ include file="widget/sidebar/adminbanner.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_categoriestree"}]
|
|
||||||
[{if $oxcmp_categories }]
|
|
||||||
[{include file="widget/sidebar/categoriestree.tpl" categories=$oxcmp_categories->getClickRoot() act=$oxcmp_categories->getClickCat() deepLevel=0}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{*** D3 Modul "UsersOnline" START ***}]
|
|
||||||
[{include file="inc/d3usersonline.tpl"}]
|
|
||||||
[{*** D3 Modul "UsersOnline" END ***}]
|
|
||||||
|
|
||||||
[{block name="sidebar_trustedshopsratings"}]
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{if $oViewConf->showTs("WIDGET")}]
|
|
||||||
[{include file="widget/trustedshops/ratings.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_partners"}]
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{include file="widget/sidebar/partners.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_boxproducts"}]
|
|
||||||
[{if $oView->getClassName() eq "start" && $oView->getTop5ArticleList()}]
|
|
||||||
[{include file="widget/product/boxproducts.tpl" _boxId="topBox" _oBoxProducts=$oView->getTop5ArticleList() _sHeaderIdent="BOX_TOPOFTHESHOP_HEADER"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_recommendation"}]
|
|
||||||
[{if $oViewConf->getShowListmania() }]
|
|
||||||
[{include file="widget/sidebar/recommendation.tpl"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_tags"}]
|
|
||||||
[{if $oView->showTags() && $oView->getClassName() ne "details" && $oView->getClassName() ne "alist" && $oView->getClassName() ne "tags"}]
|
|
||||||
[{if $oView->getTagCloudManager() }]
|
|
||||||
[{include file="widget/sidebar/tags.tpl" oTagsManager=$oView->getTagCloudManager()}]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_news"}]
|
|
||||||
[{if $oxcmp_news|count }]
|
|
||||||
[{include file="widget/sidebar/news.tpl" oNews=$oxcmp_news}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_facebookfacepile"}]
|
|
||||||
[{if $oView->isActive('FbFacepile') && $oView->isConnectedWithFb()}]
|
|
||||||
[{include file="widget/facebook/facepile.tpl"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
||||||
[{block name="sidebar_shopluperatings"}]
|
|
||||||
[{if $oView->getClassName() eq "start"}]
|
|
||||||
[{include file="widget/shoplupe/ratings.tpl" }]
|
|
||||||
[{/if}]
|
|
||||||
[{/block}]
|
|
||||||
[{/block}]
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
|||||||
[{if $oView->showSearch() }]
|
|
||||||
<strong class="h2 search">[{ oxmultilang ident="INC_LEFTITEM_PRODUCTSEARCH" }]</strong>
|
|
||||||
<form action="[{ $oViewConf->getSelfActionLink() }]" method="get" name="search" class="search" id="f.search">
|
|
||||||
<p>
|
|
||||||
[{ $oViewConf->getHiddenSid() }]
|
|
||||||
<input type="hidden" name="cl" value="search">
|
|
||||||
<input type="text" name="searchparam" value="[{$oView->getSearchParamForHtml()}]" size="21" id="f.search.param" class="txt">
|
|
||||||
|
|
||||||
[{if $oView->getSearchCatTree() }]
|
|
||||||
<select id="test_searchCategorySelect" class="search_input" name="searchcnid" [{if $oViewConf->isAutoSearchOnCat() }]onchange="oxid.search('f.search','f.search.param');"[{/if}]>
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLCATEGORIES" }] </option>
|
|
||||||
[{include file="inc/category_options.tpl" tree=$oView->getSearchCatTree() sSpacer=""}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getVendorlist() }]
|
|
||||||
<select id="test_searchVendorSelect" class="search_input" name="searchvendor">
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLDISTRIBUTORS" }] </option>
|
|
||||||
[{foreach from=$oView->getVendorlist() item=oVendorlistentry}]
|
|
||||||
<option value="[{$oVendorlistentry->oxvendor__oxid->value}]"[{if $oView->getSearchVendor() == $oVendorlistentry->oxvendor__oxid->value}] selected[{/if}]>[{ $oVendorlistentry->oxvendor__oxtitle->value }][{ if $oVendorlistentry->getNrOfArticles() > 0 }] ([{$oVendorlistentry->getNrOfArticles()}])[{/if}]</option>
|
|
||||||
[{/foreach}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->getManufacturerlist() }]
|
|
||||||
<select id="test_searchManufacturerSelect" class="search_input" name="searchmanufacturer">
|
|
||||||
<option value=""> [{ oxmultilang ident="INC_SEARCHLEFTITEM_ALLMANUFACTURERS" }] </option>
|
|
||||||
[{foreach from=$oView->getManufacturerlist() item=oManufacturerlistentry}]
|
|
||||||
<option value="[{$oManufacturerlistentry->oxmanufacturers__oxid->value}]"[{if $oView->getSearchManufacturer() == $oManufacturerlistentry->oxmanufacturers__oxid->value}] selected[{/if}]>[{ $oManufacturerlistentry->oxmanufacturers__oxtitle->value }][{ if $oManufacturerlistentry->getNrOfArticles() > 0 }] ([{$oManufacturerlistentry->getNrOfArticles()}])[{/if}]</option>
|
|
||||||
[{/foreach}]
|
|
||||||
</select>
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
<span class="btn"><input id="test_searchGo" type="submit" class="btn" value="GO!"></span>
|
|
||||||
</p>
|
|
||||||
</form>
|
|
||||||
[{/if}]
|
|
||||||
[{if $oxcmp_categories }]
|
|
||||||
[{if $oView->showTopCatNavigation()}]
|
|
||||||
[{include file="inc/category_tree.tpl" tree=$oxcmp_categories->getClickRoot() act=$oxcmp_categories->getClickCat() class="tree"}]
|
|
||||||
[{else}]
|
|
||||||
[{include file="inc/category_tree.tpl" tree=$oxcmp_categories act=$oxcmp_categories->getClickCat() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->loadVendorTree() && $oView->getVendorlist()}]
|
|
||||||
[{include file="inc/vendor_tree.tpl" tree=$oView->getVendorlist() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{if $oView->loadManufacturerTree() && $oView->getManufacturerlist()}]
|
|
||||||
[{include file="inc/manufacturer_tree.tpl" tree=$oView->getManufacturerlist() class="tree"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{*** D3 Modul "UsersOnline" START ***}]
|
|
||||||
[{include file="inc/d3usersonline.tpl"}]
|
|
||||||
[{*** D3 Modul "UsersOnline" END ***}]
|
|
||||||
|
|
||||||
[{if $oView->showLeftBasket()}]
|
|
||||||
[{oxid_include_dynamic file="dyn/mini_basket.tpl" type="basket" testid="LeftBasket"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
[{include file="inc/infobox.tpl"}]
|
|
||||||
|
|
||||||
[{if $oxcmp_news && count($oxcmp_news) > 0}]
|
|
||||||
[{include file="inc/cmp_news.tpl"}]
|
|
||||||
[{/if}]
|
|
||||||
|
|
||||||
<strong class="h2" id="test_LeftSidePartnersHeader">[{ oxmultilang ident="INC_LEFTITEM_PARTNERANDSEAL" }]</strong>
|
|
||||||
<div class="partners">
|
|
||||||
<div class="logo">
|
|
||||||
[{include file="inc/trustedshops_item.tpl"}]
|
|
||||||
</div>
|
|
||||||
<div class="logo">
|
|
||||||
<a href="http://www.zend.com" id="link.zendSite"><img src="[{$oViewConf->getImageUrl()}]zend_logo.gif" alt=""></a>
|
|
||||||
[{oxscript add="oxid.blank('link.zendSite');"}]
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
[{if $oxcmp_user && $oxcmp_user->oxuser__oxrights->value == 'malladmin'}]
|
|
||||||
<strong class="h2" id="test_LeftSideInfoHeader">[{oxmultilang ident="D3_USERSONLINE_USERSONLINE"}]</strong>
|
|
||||||
<div class="partners" style="padding-left: 10px;">
|
|
||||||
<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;">
|
|
||||||
<b>[{$aUsersOnline.all }]</b>
|
|
||||||
</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;">
|
|
||||||
<b>[{$aClassUser->counter}]</b>
|
|
||||||
</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>
|
|
||||||
[{/if}]
|
|
1
copy_this/.noencode
Normal file
1
copy_this/.noencode
Normal file
@ -0,0 +1 @@
|
|||||||
|
copyAsIsFiles = modules/d3/d3usersonline
|
@ -1,89 +0,0 @@
|
|||||||
<?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 Aggrosoft, D³ Data Development
|
|
||||||
*/
|
|
||||||
|
|
||||||
class d3usersonline extends oxI18n
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Object core table name
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $_sCoreTbl = 'd3usersonline';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Current class name
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
protected $_sClassName = 'd3usersonline';
|
|
||||||
|
|
||||||
public function __construct($aParams = null)
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
$this->init( 'd3usersonline' );
|
|
||||||
}
|
|
||||||
|
|
||||||
public function clearOldItems($iExpTime)
|
|
||||||
{
|
|
||||||
$exptime = time() - $iExpTime;
|
|
||||||
oxDb::getDb()->Execute("delete from ".$this->getViewName()." where timevisit < $exptime");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getActUserItem($sUserIPHash)
|
|
||||||
{
|
|
||||||
$sSelect = "select count(*) from ".$this->getViewName()." where visitor= ".oxDb::getDb()->quote($sUserIPHash);
|
|
||||||
return oxDb::getDb()->getOne( $sSelect );
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getUserCount()
|
|
||||||
{
|
|
||||||
$sSelect = "select count(*) counter, oxclass from ".$this->getViewName()." GROUP BY oxclass ORDER BY counter desc";
|
|
||||||
|
|
||||||
$rs = oxDb::getDb(2)->Execute($sSelect);
|
|
||||||
|
|
||||||
$iAllCounter = 0;
|
|
||||||
$aUserClasses = array();
|
|
||||||
if ($rs != false && $rs->RecordCount() > 0)
|
|
||||||
{
|
|
||||||
while (!$rs->EOF)
|
|
||||||
{
|
|
||||||
$oTmp = new stdClass;
|
|
||||||
$oTmp->classname = $rs->fields['oxclass'];
|
|
||||||
$oTmp->counter = $rs->fields['counter'];
|
|
||||||
$iAllCounter += $rs->fields['counter'];
|
|
||||||
$aUserClasses['classes'][] = $oTmp;
|
|
||||||
$rs->moveNext();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$aUserClasses['all'] = $iAllCounter;
|
|
||||||
|
|
||||||
return $aUserClasses;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setActTimeVisit($sUserIpHash)
|
|
||||||
{
|
|
||||||
oxDb::getDb()->Execute("update ".$this->getViewName()." set timevisit= ".oxDb::getDb()->quote(time()).", oxclass = ".oxDb::getDb()->quote($this->getConfig()->getActiveView()->getClassName())." where visitor= ".oxDb::getDb()->quote($sUserIpHash));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function insertActUser($sUserIpHash)
|
|
||||||
{
|
|
||||||
oxDb::getDb()->Execute("insert into ".$this->getViewName()." (visitor,timevisit,oxclass) values (".oxDb::getDb()->quote($sUserIpHash).", ".oxDb::getDb()->quote(time()).", ".oxDb::getDb()->quote($this->getConfig()->getActiveView()->getClassName()).")");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
17
copy_this/modules/d3/d3usersonline/IntelliSenseHelper.php
Normal file
17
copy_this/modules/d3/d3usersonline/IntelliSenseHelper.php
Normal file
@ -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,23 @@
|
|||||||
|
<?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;
|
||||||
|
}
|
@ -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,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_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 $_sMenuItemTitle = 'd3mxusersonline';
|
||||||
|
|
||||||
|
protected $_sMenuSubItemTitle = 'd3mxusersonline_settings';
|
||||||
|
|
||||||
|
//protected $_sDebugHelpTextIdent = 'D3_INQUIRY_MAIN_DEBUGACTIVE_DESC';
|
||||||
|
}
|
@ -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,69 @@
|
|||||||
|
<?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';
|
||||||
|
|
||||||
|
protected $_sMenuItemTitle = 'd3mxusersonline';
|
||||||
|
|
||||||
|
protected $_sMenuSubItemTitle = 'd3mxusersonline_analysis';
|
||||||
|
|
||||||
|
public $blGroupByClass = false;
|
||||||
|
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
$this->blGroupByClass = oxRegistry::getConfig()->getRequestParameter('groupbyclass') == 'true';
|
||||||
|
$this->addTplParam('blGroupByClass', $this->blGroupByClass);
|
||||||
|
return parent::render();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getUserCount()
|
||||||
|
{
|
||||||
|
/** @var d3usersonline $oUsersOnline */
|
||||||
|
$oUsersOnline = oxNew('d3usersonline');
|
||||||
|
$oUsersOnline->clearOldItems();
|
||||||
|
return $oUsersOnline->getUserCount($this->blGroupByClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getControllerTitle($sControllerIdent)
|
||||||
|
{
|
||||||
|
$oLang = oxRegistry::getLang();
|
||||||
|
$sTranslationIdent = 'D3_USERSONLINE_CLASS_'.strtoupper($sControllerIdent);
|
||||||
|
$sTranslation = $oLang->translateString(
|
||||||
|
$sTranslationIdent,
|
||||||
|
null,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($sTranslation !== $sTranslationIdent) {
|
||||||
|
return $sTranslation;
|
||||||
|
} else {
|
||||||
|
$sTranslationIdent = 'PAGE_TITLE_'.strtoupper($sControllerIdent);
|
||||||
|
$sTranslation = $oLang->translateString(
|
||||||
|
$sTranslationIdent,
|
||||||
|
null,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
if ($sTranslation !== $sTranslationIdent) {
|
||||||
|
return $sTranslation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ucfirst($sControllerIdent);
|
||||||
|
}
|
||||||
|
}
|
14
copy_this/modules/d3/d3usersonline/menu.xml
Normal file
14
copy_this/modules/d3/d3usersonline/menu.xml
Normal file
@ -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>
|
72
copy_this/modules/d3/d3usersonline/metadata.php
Normal file
72
copy_this/modules/d3/d3usersonline/metadata.php
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<?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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Metadata version
|
||||||
|
*/
|
||||||
|
$sMetadataVersion = '1.1';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module information
|
||||||
|
*/
|
||||||
|
$aModule = array(
|
||||||
|
'id' => 'd3usersonline',
|
||||||
|
'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.',
|
||||||
|
'en' => '',
|
||||||
|
),
|
||||||
|
'thumbnail' => 'picture.png',
|
||||||
|
'version' => '2.1.0.0',
|
||||||
|
'author' => 'D³ Data Development (Inh.: Thomas Dartsch)',
|
||||||
|
'email' => 'support@shopmodule.com',
|
||||||
|
'url' => 'http://www.oxidmodule.com/',
|
||||||
|
'extend' => array(
|
||||||
|
'oxcmp_utils' => 'd3/d3usersonline/modules/components/d3_oxcmp_utils_usersonline',
|
||||||
|
),
|
||||||
|
'files' => array(
|
||||||
|
'd3usersonline' => 'd3/d3usersonline/models/d3usersonline.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_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',
|
||||||
|
),
|
||||||
|
'd3FileRegister' => array(
|
||||||
|
'd3/d3usersonline/IntelliSenseHelper.php',
|
||||||
|
'd3/d3usersonline/metadata.php',
|
||||||
|
'd3/d3usersonline/translations/de/d3usersonline_lang.php',
|
||||||
|
'd3/d3usersonline/translations/en/d3usersonline_lang.php',
|
||||||
|
'd3/d3usersonline/views/admin/de/d3usersonline_lang.php',
|
||||||
|
'd3/d3usersonline/views/admin/en/d3usersonline_lang.php',
|
||||||
|
),
|
||||||
|
);
|
254
copy_this/modules/d3/d3usersonline/models/d3usersonline.php
Normal file
254
copy_this/modules/d3/d3usersonline/models/d3usersonline.php
Normal file
@ -0,0 +1,254 @@
|
|||||||
|
<?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
|
||||||
|
*/
|
||||||
|
|
||||||
|
class d3usersonline extends oxbase
|
||||||
|
{
|
||||||
|
protected $_sCoreTbl = 'd3usersonline';
|
||||||
|
protected $_sClassName = 'd3usersonline';
|
||||||
|
|
||||||
|
protected $_remoteAddr = null;
|
||||||
|
protected $_httpClientIp = null;
|
||||||
|
protected $_httpXForwardedFor = null;
|
||||||
|
protected $_httpXForwarded = null;
|
||||||
|
protected $_httpForwardedFor = null;
|
||||||
|
protected $_httpForwarded = null;
|
||||||
|
protected $_httpVia = null;
|
||||||
|
protected $_httpXComingFrom = null;
|
||||||
|
protected $_httpComingFrom = null;
|
||||||
|
|
||||||
|
protected $_iDeleteThreshold = 30; // Zeitdifferenz zwischen 2 Löschaufträgen
|
||||||
|
protected $_iExpTime = 600; // Ablaufzeit für inaktive Benutzer
|
||||||
|
|
||||||
|
/**
|
||||||
|
* constructor
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
$this->init('d3usersonline');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $iExpTime
|
||||||
|
*/
|
||||||
|
public function clearOldItems()
|
||||||
|
{
|
||||||
|
startProfile(__METHOD__);
|
||||||
|
|
||||||
|
$iTime = time();
|
||||||
|
$iLastDeleteTime = oxRegistry::getConfig()->getShopConfVar('iLastDeleteTime', null, 'd3usersonline');
|
||||||
|
|
||||||
|
if ($iTime > $iLastDeleteTime + $this->_iDeleteThreshold) {
|
||||||
|
$iExptime = $iTime - $this->_iExpTime;
|
||||||
|
oxDb::getDb()->Execute("delete from " . $this->getViewName() . " where timevisit < $iExptime");
|
||||||
|
|
||||||
|
oxRegistry::getConfig()->saveShopConfVar('int', 'iLastDeleteTime', $iTime, null, 'd3usersonline');
|
||||||
|
}
|
||||||
|
|
||||||
|
stopProfile(__METHOD__);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getUserCount($blGroupByClass = false)
|
||||||
|
{
|
||||||
|
startProfile(__METHOD__);
|
||||||
|
|
||||||
|
if ($blGroupByClass) {
|
||||||
|
$sSelect = "SELECT count(oxid) AS counter, oxclass FROM " .
|
||||||
|
$this->getViewName() . " GROUP BY oxclass ORDER BY counter DESC";
|
||||||
|
} else {
|
||||||
|
$sSelect = "select count(oxid) AS counter, oxclass, oxpage from ".
|
||||||
|
$this->getViewName()." GROUP BY oxclass, oxpage ORDER BY counter desc";
|
||||||
|
}
|
||||||
|
$aRecords = oxDb::getDb(oxDb::FETCH_MODE_ASSOC)->getAll($sSelect);
|
||||||
|
|
||||||
|
$iAllCounter = 0;
|
||||||
|
$aUserClasses = array();
|
||||||
|
if ($aRecords && is_array($aRecords) && count($aRecords)) {
|
||||||
|
foreach ($aRecords as $aRecord) {
|
||||||
|
$aRecord = array_change_key_case($aRecord, CASE_UPPER);
|
||||||
|
|
||||||
|
$oTmp = new stdClass;
|
||||||
|
$oTmp->classname = $aRecord['OXCLASS'];
|
||||||
|
$oTmp->page = $aRecord['OXPAGE'];
|
||||||
|
$oTmp->counter = $aRecord['COUNTER'];
|
||||||
|
$iAllCounter += $aRecord['COUNTER'];
|
||||||
|
$aUserClasses['classes'][] = $oTmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$aUserClasses['all'] = $iAllCounter;
|
||||||
|
|
||||||
|
stopProfile(__METHOD__);
|
||||||
|
|
||||||
|
return $aUserClasses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setActTimeVisit()
|
||||||
|
{
|
||||||
|
startProfile(__METHOD__);
|
||||||
|
|
||||||
|
$this->setId($this->_getIPHash());
|
||||||
|
|
||||||
|
$aValues = array(
|
||||||
|
'timevisit' => time(),
|
||||||
|
'oxclass' => oxRegistry::getConfig()->getActiveView()->getClassName(),
|
||||||
|
'oxpage' => $this->getPageIdent(),
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assign($aValues);
|
||||||
|
$this->save();
|
||||||
|
|
||||||
|
stopProfile(__METHOD__);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return null|string
|
||||||
|
*/
|
||||||
|
public function getPageIdent()
|
||||||
|
{
|
||||||
|
switch (strtolower(oxRegistry::getConfig()->getActiveView()->getClassName()))
|
||||||
|
{
|
||||||
|
case 'details':
|
||||||
|
case 'oxwarticledetails':
|
||||||
|
if (($oView = oxRegistry::getConfig()->getActiveView())
|
||||||
|
&& method_exists($oView, 'getProduct')
|
||||||
|
) {
|
||||||
|
return $oView->getProduct()->getFieldData('oxtitle');
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
case 'alist':
|
||||||
|
case 'manufacturerlist':
|
||||||
|
case 'vendorlist':
|
||||||
|
if (($oView = oxRegistry::getConfig()->getActiveView())
|
||||||
|
&& method_exists($oView, 'getTitle')
|
||||||
|
) {
|
||||||
|
return $oView->getTitle();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
case 'search':
|
||||||
|
return oxRegistry::getConfig()->getRequestParameter('searchparam');
|
||||||
|
case 'content':
|
||||||
|
if (($oView = oxRegistry::getConfig()->getActiveView())
|
||||||
|
&& method_exists($oView, 'getContent')
|
||||||
|
) {
|
||||||
|
return $oView->getContent()->getFieldData('oxtitle');
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
case 'tag':
|
||||||
|
if (($oView = oxRegistry::getConfig()->getActiveView())
|
||||||
|
&& method_exists($oView, 'getTag')
|
||||||
|
) {
|
||||||
|
return $oView->getTag();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function _getIPHash()
|
||||||
|
{
|
||||||
|
return md5($this->_getTrueIP());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return null|string
|
||||||
|
*/
|
||||||
|
protected function _getTrueIP()
|
||||||
|
{
|
||||||
|
$sDirectIp = '';
|
||||||
|
|
||||||
|
$this->_getIpData('_remoteAddr', 'REMOTE_ADDR');
|
||||||
|
$this->_getIpData('_httpClientIp', 'HTTP_CLIENT_IP');
|
||||||
|
$this->_getIpData('_httpXForwardedFor', 'HTTP_X_FORWARDED_FOR');
|
||||||
|
$this->_getIpData('_httpXForwarded', 'HTTP_X_FORWARDED');
|
||||||
|
$this->_getIpData('_httpForwardedFor', 'HTTP_FORWARDED_FOR');
|
||||||
|
$this->_getIpData('_httpForwarded', 'HTTP_FORWARDED');
|
||||||
|
$this->_getIpData('_httpVia', 'HTTP_VIA');
|
||||||
|
$this->_getIpData('_httpXComingFrom', 'HTTP_X_COMING_FROM');
|
||||||
|
$this->_getIpData('_httpComingFrom', 'HTTP_COMING_FROM');
|
||||||
|
|
||||||
|
// Gets the default ip sent by the user
|
||||||
|
if (!empty($this->_remoteAddr)) {
|
||||||
|
$sDirectIp = $this->_remoteAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gets the proxy ip sent by the user
|
||||||
|
if (!empty($this->_httpXForwardedFor)) {
|
||||||
|
$sProxyIp = $this->_httpXForwardedFor;
|
||||||
|
} elseif (!empty($this->_httpXForwarded)) {
|
||||||
|
$sProxyIp = $this->_httpXForwarded;
|
||||||
|
} elseif (!empty($this->_httpForwardedFor)) {
|
||||||
|
$sProxyIp = $this->_httpForwardedFor;
|
||||||
|
} elseif (!empty($this->_httpForwarded)) {
|
||||||
|
$sProxyIp = $this->_httpForwarded;
|
||||||
|
} elseif (!empty($this->_httpVia)) {
|
||||||
|
$sProxyIp = $this->_httpVia;
|
||||||
|
} elseif (!empty($this->_httpXComingFrom)) {
|
||||||
|
$sProxyIp = $this->_httpXComingFrom;
|
||||||
|
} elseif (!empty($this->_httpComingFrom)) {
|
||||||
|
$sProxyIp = $this->_httpComingFrom;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the true IP if it has been found, else ...
|
||||||
|
if (empty($sProxyIp)) {
|
||||||
|
// True IP without proxy
|
||||||
|
return $sDirectIp;
|
||||||
|
} else {
|
||||||
|
$blIsIp = preg_match('@^([0-9]{1,3}.){3,3}[0-9]{1,3}@', $sProxyIp, $aMatches);
|
||||||
|
|
||||||
|
if ($blIsIp && (count($aMatches) > 0)) {
|
||||||
|
// True IP behind a proxy
|
||||||
|
return $aMatches[0];
|
||||||
|
} 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 {
|
||||||
|
// better than nothing
|
||||||
|
return $this->_httpClientIp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $sTargetVarName
|
||||||
|
* @param $sDataName
|
||||||
|
*/
|
||||||
|
protected function _getIpData($sTargetVarName, $sDataName)
|
||||||
|
{
|
||||||
|
if (empty($this->{$sTargetVarName})) {
|
||||||
|
if (!empty($_SERVER) && isset($_SERVER[$sDataName])) {
|
||||||
|
$this->{$sTargetVarName} = $_SERVER[$sDataName];
|
||||||
|
} elseif (!empty($_ENV) && isset($_ENV[$sDataName])) {
|
||||||
|
$this->{$sTargetVarName} = $_ENV[$sDataName];
|
||||||
|
} elseif (@getenv($sDataName)) {
|
||||||
|
$this->{$sTargetVarName} = getenv($sDataName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
<?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
|
||||||
|
*/
|
||||||
|
|
||||||
|
class d3_oxcmp_utils_usersonline extends d3_oxcmp_utils_usersonline_parent
|
||||||
|
{
|
||||||
|
protected $_blIsComponent = true;
|
||||||
|
protected $_sD3UsersOnlineModId = 'd3usersonline';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
$sRet = parent::render();
|
||||||
|
|
||||||
|
if (d3_cfg_mod::get($this->_sD3UsersOnlineModId)->isActive()) {
|
||||||
|
/** @var d3usersonline $oUsersOnline */
|
||||||
|
$oUsersOnline = oxNew('d3usersonline');
|
||||||
|
$oUsersOnline->clearOldItems();
|
||||||
|
$oUsersOnline->setActTimeVisit();
|
||||||
|
|
||||||
|
$oUser = $this->getUser();
|
||||||
|
if ($oUser && strtolower($oUser->getFieldData('oxrights')) == 'malladmin') {
|
||||||
|
/** @var oxview $oActView */
|
||||||
|
$oActView = $this->getParent();
|
||||||
|
$oActView->addTplParam('aUsersOnline', $oUsersOnline->getUserCount());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $sRet;
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
@ -0,0 +1,363 @@
|
|||||||
|
<?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
|
||||||
|
*/
|
||||||
|
|
||||||
|
class d3usersonline_update extends d3install_updatebase
|
||||||
|
{
|
||||||
|
public $sModKey = 'd3usersonline';
|
||||||
|
public $sModName = 'Users Online';
|
||||||
|
public $sModVersion = '2.1.0.0';
|
||||||
|
public $sModRevision = '2100';
|
||||||
|
public $sBaseConf = 'qWOv2==Y0dBTjQ4SGQ5Z0wwRVduakMxL01XL1c2dWlpK0p0bEJQeGZEcldMN3hINm5jOTJCWmV6MWhyV
|
||||||
|
FVDVS9KQ3hwWUtUQmM3d1RVLzBVNGZISCsxVG0wWmVlNTlYOUNGQ0g2b2Z0NGlYQWZXZGprUXdZTzE0c
|
||||||
|
zRHbGJKaEx0aWZNc3ZSTC9FdU10eHhadDA1c3NZdFlaNmZGQWF0VzUzVWxRQllhTFYxdmQyQTBLekRRM
|
||||||
|
jhrdDB5M0RnWWJQM3NMSVhBQ2RkS1l2WWJPV3lTNlNWOEwrSGxHdElTMmhoZ2FPYUhQN0lVOEpDZmVwY
|
||||||
|
0JLWndPRjVidU4rQzM3V29lcXBuaFFGdEdQZGxZZUFyWjFIZkVXVnZpT0NzTkhjV2drRzJCVStIOHVRb
|
||||||
|
0xLMGJvTTN5Z2ZYV0ZMY2NtY1dCVGkra0M=';
|
||||||
|
public $sRequirements = '';
|
||||||
|
public $sBaseValue = '';
|
||||||
|
|
||||||
|
public $sMinModCfgVersion = '4.4.0.0';
|
||||||
|
|
||||||
|
protected $_aUpdateMethods = array(
|
||||||
|
array('check' => 'checkUsersOnlineTableExist',
|
||||||
|
'do' => 'updateUsersOnlineTableExist'),
|
||||||
|
array('check' => 'checkUsersOnlineTableEngine',
|
||||||
|
'do' => 'updateUsersOnlineTableEngine'),
|
||||||
|
array('check' => 'checkRenameFields',
|
||||||
|
'do' => 'fixRenameFields'),
|
||||||
|
array('check' => 'checkDeleteFields',
|
||||||
|
'do' => 'fixDeleteFields'),
|
||||||
|
array('check' => 'checkModCfgItemExist',
|
||||||
|
'do' => 'updateModCfgItemExist'),
|
||||||
|
array('check' => 'checkFields',
|
||||||
|
'do' => 'fixFields'),
|
||||||
|
array('check' => 'checkIndizes',
|
||||||
|
'do' => 'fixIndizes'),
|
||||||
|
array('check' => 'hasOldModuleFiles',
|
||||||
|
'do' => 'deleteOldModuleFiles'),
|
||||||
|
array('check' => 'hasUnregisteredFiles',
|
||||||
|
'do' => 'showUnregisteredFiles'),
|
||||||
|
array('check' => 'checkModCfgSameRevision',
|
||||||
|
'do' => 'updateModCfgSameRevision'),
|
||||||
|
);
|
||||||
|
|
||||||
|
public $aOldModuleFiles = array(
|
||||||
|
'd3/d3usersonline/models/d3usersonline_update.php',
|
||||||
|
);
|
||||||
|
|
||||||
|
public $aFields = array(
|
||||||
|
'OXID' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sFieldName' => 'OXID',
|
||||||
|
'sType' => 'char(32)',
|
||||||
|
'blNull' => false,
|
||||||
|
'sDefault' => false,
|
||||||
|
'sComment' => '',
|
||||||
|
'sExtra' => '',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
'TIMEVISIT' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sFieldName' => 'TIMEVISIT',
|
||||||
|
'sType' => 'INT(11)',
|
||||||
|
'blNull' => false,
|
||||||
|
'sDefault' => '0',
|
||||||
|
'sComment' => '',
|
||||||
|
'sExtra' => '',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
'OXCLASS' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sFieldName' => 'OXCLASS',
|
||||||
|
'sType' => 'VARCHAR(32)',
|
||||||
|
'blNull' => false,
|
||||||
|
'sDefault' => false,
|
||||||
|
'sComment' => '',
|
||||||
|
'sExtra' => '',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
'OXPAGE' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sFieldName' => 'OXPAGE',
|
||||||
|
'sType' => 'VARCHAR(32)',
|
||||||
|
'blNull' => false,
|
||||||
|
'sDefault' => false,
|
||||||
|
'sComment' => '',
|
||||||
|
'sExtra' => '',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public $aIndizes = array(
|
||||||
|
'OXID' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sType' => 'PRIMARY',
|
||||||
|
'aFields' => array(
|
||||||
|
'OXID' => 'OXID',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'OXCLASS' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sType' => '',
|
||||||
|
'sName' => 'OXCLASS',
|
||||||
|
'aFields' => array(
|
||||||
|
'OXCLASS' => 'OXCLASS',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'CLASSPAGE' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sType' => '',
|
||||||
|
'sName' => 'CLASSPAGE',
|
||||||
|
'aFields' => array(
|
||||||
|
'OXCLASS' => 'OXCLASS',
|
||||||
|
'OXPAGE' => 'OXPAGE',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'TIMEVISIT' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sType' => '',
|
||||||
|
'sName' => 'TIMEVISIT',
|
||||||
|
'aFields' => array(
|
||||||
|
'TIMEVISIT' => 'TIMEVISIT',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public $aRenameFields = array(
|
||||||
|
'OXID' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'mOldFieldNames' => array('id', 'ID'), // is case sensitive
|
||||||
|
'sFieldName' => 'OXID',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
'VISITOR' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'mOldFieldNames' => array('visitor'), // is case sensitive
|
||||||
|
'sFieldName' => 'VISITOR',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
'TIMEVISIT' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'mOldFieldNames' => array('timevisit'), // is case sensitive
|
||||||
|
'sFieldName' => 'TIMEVISIT',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
'OXCLASS' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'mOldFieldNames' => array('oxclass'), // is case sensitive
|
||||||
|
'sFieldName' => 'OXCLASS',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
public $aDeleteFields = array(
|
||||||
|
'VISITOR' => array(
|
||||||
|
'sTableName' => 'd3usersonline',
|
||||||
|
'sFieldName' => 'VISITOR',
|
||||||
|
'blMultilang' => false,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
protected $_aRefreshMetaModuleIds = array('d3usersonline');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool true, if table is missing
|
||||||
|
*/
|
||||||
|
public function checkUsersOnlineTableExist()
|
||||||
|
{
|
||||||
|
return $this->_checkTableNotExist('d3usersonline');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function updateUsersOnlineTableExist()
|
||||||
|
{
|
||||||
|
$blRet = true;
|
||||||
|
|
||||||
|
if ($this->checkUsersOnlineTableExist()) {
|
||||||
|
$blRet = $this->_addTable2('d3usersonline', $this->aFields, $this->aIndizes, 'users online', 'InnoDB');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $blRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool true, if table has wrong engine
|
||||||
|
*/
|
||||||
|
public function checkUsersOnlineTableEngine()
|
||||||
|
{
|
||||||
|
/** @var d3installdbtable $oDbTable */
|
||||||
|
$oDbTable = oxNew('d3installdbtable', $this);
|
||||||
|
$aData = $oDbTable->getTableData('d3usersonline');
|
||||||
|
|
||||||
|
if (isset($aData) && count($aData) && isset($aData['ENGINE']) && $aData['ENGINE'] == 'InnoDB') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function updateUsersOnlineTableEngine()
|
||||||
|
{
|
||||||
|
/** @var d3installdbtable $oDbTable */
|
||||||
|
$oDbTable = oxNew('d3installdbtable', $this);
|
||||||
|
$blRet = $oDbTable->changeTableEngine('d3usersonline', 'InnoDB');
|
||||||
|
return $blRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function checkModCfgItemExist()
|
||||||
|
{
|
||||||
|
$blRet = false;
|
||||||
|
foreach ($this->getShopList() as $oShop) {
|
||||||
|
/** @var $oShop oxshop */
|
||||||
|
$aWhere = array(
|
||||||
|
'oxmodid' => $this->sModKey,
|
||||||
|
'oxnewrevision' => $this->sModRevision,
|
||||||
|
'oxshopid' => $oShop->getId(),
|
||||||
|
);
|
||||||
|
|
||||||
|
$blRet = $this->_checkTableItemNotExist('d3_cfg_mod', $aWhere);
|
||||||
|
|
||||||
|
if ($blRet) {
|
||||||
|
return $blRet;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $blRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function updateModCfgItemExist()
|
||||||
|
{
|
||||||
|
$blRet = false;
|
||||||
|
|
||||||
|
if ($this->checkModCfgItemExist()) {
|
||||||
|
foreach ($this->getShopList() as $oShop) {
|
||||||
|
/** @var $oShop oxshop */
|
||||||
|
$aWhere = array(
|
||||||
|
'oxmodid' => $this->sModKey,
|
||||||
|
'oxshopid' => $oShop->getId(),
|
||||||
|
'oxnewrevision' => $this->sModRevision,
|
||||||
|
);
|
||||||
|
|
||||||
|
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,
|
||||||
|
),
|
||||||
|
'OXSHOPID' => array (
|
||||||
|
'content' => $oShop->getId(),
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXMODID' => array (
|
||||||
|
'content' => $this->sModKey,
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXNAME' => array (
|
||||||
|
'content' => $this->sModName,
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXACTIVE' => array (
|
||||||
|
'content' => "0",
|
||||||
|
'force_update' => false,
|
||||||
|
'use_quote' => false,
|
||||||
|
),
|
||||||
|
'OXBASECONFIG' => array (
|
||||||
|
'content' => $this->sBaseConf,
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXSERIAL' => array (
|
||||||
|
'content' => "",
|
||||||
|
'force_update' => false,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXINSTALLDATE' => array (
|
||||||
|
'content' => "NOW()",
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => false,
|
||||||
|
),
|
||||||
|
'OXVERSION' => array (
|
||||||
|
'content' => $this->sModVersion,
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXSHOPVERSION' => array (
|
||||||
|
'content' => oxRegistry::getConfig()->getEdition(),
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXREQUIREMENTS' => array (
|
||||||
|
'content' => $this->sRequirements,
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXVALUE' => array(
|
||||||
|
'content' => $this->sBaseValue,
|
||||||
|
'force_update' => false,
|
||||||
|
'use_quote' => true,
|
||||||
|
),
|
||||||
|
'OXNEWREVISION' => array(
|
||||||
|
'content' => $this->sModRevision,
|
||||||
|
'force_update' => true,
|
||||||
|
'use_quote' => true,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$blRet = $this->_updateTableItem2('d3_cfg_mod', $aInsertFields, $aWhere);
|
||||||
|
$this->setUpdateBreak(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $blRet;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function hasUnregisteredFiles()
|
||||||
|
{
|
||||||
|
return $this->_hasUnregisteredFiles($this->sModKey, array('d3FileRegister', 'blocks'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function showUnregisteredFiles()
|
||||||
|
{
|
||||||
|
return $this->_showUnregisteredFiles($this->sModKey, array('d3FileRegister', 'blocks'));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
<?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',
|
||||||
|
|
||||||
|
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
||||||
|
'D3_USERSONLINE_USER' => 'Benutzer',
|
||||||
|
'D3_USERSONLINE_USERS' => 'Benutzer',
|
||||||
|
'D3_USERSONLINE_ALL' => 'gesamt',
|
||||||
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
[{oxmultilang ident='ACTIONS_MAIN_YOUWANTTODELETE'}]
|
||||||
|
*/
|
@ -21,10 +21,10 @@ $iLangNr = 0;
|
|||||||
// -------------------------------
|
// -------------------------------
|
||||||
$aLang = array(
|
$aLang = array(
|
||||||
'charset' => 'ISO-8859-15',
|
'charset' => 'ISO-8859-15',
|
||||||
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
'D3_USERSONLINE_USERSONLINE' => 'Users online',
|
||||||
'D3_USERSONLINE_USER' => 'Benutzer',
|
'D3_USERSONLINE_USER' => 'user',
|
||||||
'D3_USERSONLINE_USERS' => 'Benutzer',
|
'D3_USERSONLINE_USERS' => 'users',
|
||||||
'D3_USERSONLINE_ALL' => 'gesamt',
|
'D3_USERSONLINE_ALL' => 'all',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
@ -0,0 +1,48 @@
|
|||||||
|
<?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' => '<i class="fa fa-bar-chart"></i> Benutzer online',
|
||||||
|
'd3mxusersonline_settings' => 'Einstellungen',
|
||||||
|
'd3tbclussersonline_settings_main' => 'Grundeinstellungen',
|
||||||
|
'd3mxusersonline_analysis' => 'Auswertungen',
|
||||||
|
'd3tbclusersonline_currvisitors' => 'aktuelle Besucher',
|
||||||
|
'D3USERSONLINE_NOTACTIVE' => 'Modul ist nicht aktiv',
|
||||||
|
'D3_USERSONLINE_GROUPBYCLASS' => 'Besuche nur nach Shopseiten gruppieren',
|
||||||
|
'D3_USERSONLINE_USERSONLINE' => 'Benutzer online',
|
||||||
|
'D3_USERSONLINE_USER' => 'Benutzer',
|
||||||
|
'D3_USERSONLINE_USERS' => 'Benutzer',
|
||||||
|
'D3_USERSONLINE_ALL' => 'gesamt',
|
||||||
|
'D3_USERSONLINE_SAVE' => 'Speichern',
|
||||||
|
'D3_USERSONLINE_CLASS_ALIST' => 'Artikelliste aus Kategorie',
|
||||||
|
'D3_USERSONLINE_CLASS_MANUFACTURERLIST' => 'Artikelliste aus Hersteller',
|
||||||
|
'D3_USERSONLINE_CLASS_VENDORLIST' => 'Artikelliste aus Lieferant',
|
||||||
|
'D3_USERSONLINE_CLASS_CONTENT' => 'Informationstext',
|
||||||
|
'D3_USERSONLINE_CLASS_OXWARTICLEDETAILS' => 'Detailseite',
|
||||||
|
'D3_USERSONLINE_CLASS_DETAILS' => 'Detailseite',
|
||||||
|
'D3_USERSONLINE_CLASS_START' => 'Startseite',
|
||||||
|
'D3_USERSONLINE_CLASS_TAGS' => 'Stichwort',
|
||||||
|
);
|
@ -0,0 +1,48 @@
|
|||||||
|
<?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' => '<i class="fa fa-bar-chart"></i> 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_GROUPBYCLASS' => 'group visitors by shop pages only',
|
||||||
|
'D3_USERSONLINE_USERSONLINE' => 'Users online',
|
||||||
|
'D3_USERSONLINE_USER' => 'user',
|
||||||
|
'D3_USERSONLINE_USERS' => 'users',
|
||||||
|
'D3_USERSONLINE_ALL' => 'all',
|
||||||
|
'D3_USERSONLINE_SAVE' => 'save',
|
||||||
|
'D3_USERSONLINE_CLASS_ALIST' => 'article list from category',
|
||||||
|
'D3_USERSONLINE_CLASS_MANUFACTURERLIST' => 'article list from manufacturer',
|
||||||
|
'D3_USERSONLINE_CLASS_VENDORLIST' => 'article list from vendor',
|
||||||
|
'D3_USERSONLINE_CLASS_CONTENT' => 'information text',
|
||||||
|
'D3_USERSONLINE_CLASS_OXWARTICLEDETAILS' => 'details page',
|
||||||
|
'D3_USERSONLINE_CLASS_DETAILS' => 'details page',
|
||||||
|
'D3_USERSONLINE_CLASS_START' => 'start page',
|
||||||
|
'D3_USERSONLINE_CLASS_TAGS' => 'tag',
|
||||||
|
);
|
@ -0,0 +1,144 @@
|
|||||||
|
[{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_USERSONLINE_SAVE"}]">
|
||||||
|
<span></span>
|
||||||
|
</span>
|
||||||
|
<br><br>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
[{/if}]
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
[{include file="d3_cfg_mod_inc.tpl"}]
|
@ -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">
|
||||||
|
<!--
|
||||||
|
div.box h3 {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
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}]">
|
||||||
|
<input type="hidden" id="groupbyclass" name="groupbyclass" value="false">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
[{d3modcfgcheck modid="d3usersonline"}][{/d3modcfgcheck}]
|
||||||
|
[{if $mod_d3usersonline}]
|
||||||
|
[{assign var="aUsersOnline" value=$oView->getUserCount()}]
|
||||||
|
<input id="groupbyclasscheckbox" value="1" type="checkbox" [{if $blGroupByClass}]checked[{/if}] onchange="document.getElementById('groupbyclass').value = this.checked; document.getElementById('transfer').submit();"> <label for="groupbyclasscheckbox">[{oxmultilang ident="D3_USERSONLINE_GROUPBYCLASS"}]</label>
|
||||||
|
<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}]
|
||||||
|
[{$oView->getControllerTitle($aClassUser->classname)}]
|
||||||
|
[{else}]
|
||||||
|
undefined
|
||||||
|
[{/if}]
|
||||||
|
[{if $aClassUser->page}]
|
||||||
|
"[{$aClassUser->page}]"
|
||||||
|
[{/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"}]
|
@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* Metadata version
|
|
||||||
*/
|
|
||||||
$sMetadataVersion = '1.0';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module information
|
|
||||||
*/
|
|
||||||
$aModule = array(
|
|
||||||
'id' => 'd3useronline',
|
|
||||||
'title' => oxLang::getInstance()->translateString('D3_USERONLINE_METADATA_TITLE'),
|
|
||||||
'description' => oxLang::getInstance()->translateString('D3_USERONLINE_METADATA_DESC'),
|
|
||||||
'thumbnail' => 'picture.png',
|
|
||||||
'version' => '1.2.1',
|
|
||||||
'author' => oxLang::getInstance()->translateString('D3_MOD_LIB_METADATA_AUTHOR'),
|
|
||||||
'email' => 'support@shopmodule.com',
|
|
||||||
'url' => 'http://www.oxidmodule.com/',
|
|
||||||
'extend' => array(
|
|
||||||
'oxcmp_utils' => 'd3usersonline/views/d3_oxcmp_utils_usersonline'
|
|
||||||
)
|
|
||||||
);
|
|
@ -1,140 +0,0 @@
|
|||||||
<?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 Aggrosoft, D³ Data Development
|
|
||||||
*/
|
|
||||||
|
|
||||||
class d3_oxcmp_utils_usersonline extends d3_oxcmp_utils_usersonline_parent
|
|
||||||
{
|
|
||||||
protected $_iExpTime = 600; // (in seconds)
|
|
||||||
protected $_sUserIpHash = null;
|
|
||||||
protected $_remoteAddr = null;
|
|
||||||
protected $_httpClientIp = null;
|
|
||||||
protected $_httpXForwardedFor = null;
|
|
||||||
protected $_httpXForwarded = null;
|
|
||||||
protected $_httpForwardedFor = null;
|
|
||||||
protected $_httpForwarded = null;
|
|
||||||
protected $_httpVia = null;
|
|
||||||
protected $_httpXComingFrom = null;
|
|
||||||
protected $_httpComingFrom = null;
|
|
||||||
protected $_proxyIp = null;
|
|
||||||
protected $_directIp = null;
|
|
||||||
|
|
||||||
public function init()
|
|
||||||
{
|
|
||||||
$this->blIsComponent = true;
|
|
||||||
parent::init();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function render()
|
|
||||||
{
|
|
||||||
$ret = parent::render();
|
|
||||||
|
|
||||||
//WE ARE NOT ALLOWED TO STORE THE REAL IP
|
|
||||||
$this->_sUserIpHash = md5($this->_getTrueIP());
|
|
||||||
$this->utime = time();
|
|
||||||
|
|
||||||
$oUserOnline = oxNew('d3usersonline');
|
|
||||||
$oUserOnline->clearOldItems($this->_iExpTime);
|
|
||||||
$iUserExist = $oUserOnline->getActUserItem($this->_sUserIpHash);
|
|
||||||
|
|
||||||
if ($iUserExist > 0) {
|
|
||||||
$oUserOnline->setActTimeVisit($this->_sUserIpHash);
|
|
||||||
} else {
|
|
||||||
$oUserOnline->insertActUser($this->_sUserIpHash);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->getParent()->addTplParam('aUsersOnline', $oUserOnline->getUserCount());
|
|
||||||
|
|
||||||
return $ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function _getIpData($sTargetVarName, $sDataName)
|
|
||||||
{
|
|
||||||
if (empty($this->{$sTargetVarName}))
|
|
||||||
{
|
|
||||||
if (!empty($_SERVER) && isset($_SERVER[$sDataName]))
|
|
||||||
$this->{$sTargetVarName} = $_SERVER[$sDataName];
|
|
||||||
else if (!empty($_ENV) && isset($_ENV[$sDataName]))
|
|
||||||
$this->{$sTargetVarName} = $_ENV[$sDataName];
|
|
||||||
else if (@getenv($sDataName))
|
|
||||||
$this->{$sTargetVarName} = getenv($sDataName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function _getTrueIP()
|
|
||||||
{
|
|
||||||
$this->_getIpData('_remoteAddr', 'REMOTE_ADDR');
|
|
||||||
$this->_getIpData('_httpClientIp', 'HTTP_CLIENT_IP');
|
|
||||||
$this->_getIpData('_httpXForwardedFor', 'HTTP_X_FORWARDED_FOR');
|
|
||||||
$this->_getIpData('_httpXForwarded', 'HTTP_X_FORWARDED');
|
|
||||||
$this->_getIpData('_httpForwardedFor', 'HTTP_FORWARDED_FOR');
|
|
||||||
$this->_getIpData('_httpForwarded', 'HTTP_FORWARDED');
|
|
||||||
$this->_getIpData('_httpVia', 'HTTP_VIA');
|
|
||||||
$this->_getIpData('_httpXComingFrom', 'HTTP_X_COMING_FROM');
|
|
||||||
$this->_getIpData('_httpComingFrom', 'HTTP_COMING_FROM');
|
|
||||||
|
|
||||||
// Gets the default ip sent by the user
|
|
||||||
if (!empty($this->_remoteAddr))
|
|
||||||
$this->_directIp = $this->_remoteAddr;
|
|
||||||
|
|
||||||
// Gets the proxy ip sent by the user
|
|
||||||
if (!empty($this->_httpXForwardedFor))
|
|
||||||
$this->_proxyIp = $this->_httpXForwardedFor;
|
|
||||||
else if (!empty($this->_httpXForwarded))
|
|
||||||
$this->_proxyIp = $this->_httpXForwarded;
|
|
||||||
else if (!empty($this->_httpForwardedFor))
|
|
||||||
$this->_proxyIp = $this->_httpForwardedFor;
|
|
||||||
else if (!empty($this->_httpForwarded))
|
|
||||||
$this->_proxyIp = $this->_httpForwarded;
|
|
||||||
else if (!empty($this->_httpVia))
|
|
||||||
$this->_proxyIp = $this->_httpVia;
|
|
||||||
else if (!empty($this->_httpXComingFrom))
|
|
||||||
$this->_proxyIp = $this->_httpXComingFrom;
|
|
||||||
else if (!empty($this->_httpComingFrom))
|
|
||||||
$this->_proxyIp = $this->_httpComingFrom;
|
|
||||||
|
|
||||||
// Returns the true IP if it has been found, else ...
|
|
||||||
if (empty($this->_proxyIp))
|
|
||||||
{
|
|
||||||
// True IP without proxy
|
|
||||||
return $this->_directIp;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$isIp = ereg('^([0-9]{1,3}.){3,3}[0-9]{1,3}', $this->_proxyIp, $regs);
|
|
||||||
|
|
||||||
if ($isIp && (count($regs) > 0))
|
|
||||||
{
|
|
||||||
// True IP behind a proxy
|
|
||||||
return $regs[0];
|
|
||||||
}
|
|
||||||
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) " . $this->_proxyIp;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// better than nothing
|
|
||||||
return $this->_httpClientIp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Binary file not shown.
2609
setup+doku/Precheck/d3precheck.php
Normal file
2609
setup+doku/Precheck/d3precheck.php
Normal file
File diff suppressed because it is too large
Load Diff
26
setup+doku/changelog.txt
Normal file
26
setup+doku/changelog.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
=> 2.1.0.0
|
||||||
|
- Datenbank-Tabelle auf InnoDb geändert
|
||||||
|
- Tabellenindizes für optimierte Abfragen ergänzt
|
||||||
|
- Löschabfragen wegen mglw. hoher Datenbanklast begrenzt
|
||||||
|
- Besuchereinträge wurden um Seitendetails ergänzt
|
||||||
|
- Auswertung im Backend lässt sich zwischen bisheriger und neuer Gruppierung umschalten
|
||||||
|
- Auswertung im Frontend entfernt (#6828)
|
||||||
|
- fehlerhafte Übersetzung korrigiert (#6827)
|
||||||
|
|
||||||
|
=> 2.0.1.1
|
||||||
|
- Precheck für PHP 5.5 und 5.6 angepasst
|
||||||
|
|
||||||
|
=> 2.0.1.0
|
||||||
|
- Statistik steht auch im Adminbereich zur Verfügung
|
||||||
|
- automatische Installation aktualisiert
|
||||||
|
- Modulstruktur angepasst
|
||||||
|
|
||||||
|
=> 2.0.0.2
|
||||||
|
- Datenbankstruktur in automatischer Installation korrigiert
|
||||||
|
|
||||||
|
=> 2.0.0.1
|
||||||
|
- ModulID korrigiert
|
||||||
|
- Datenbankstruktur bei Altinstallationen aktualisiert
|
||||||
|
|
||||||
|
=> 2.0.0.0
|
||||||
|
- für OXID 4.7 / 5.0 angepasst
|
@ -1,7 +0,0 @@
|
|||||||
CREATE TABLE d3usersonline (
|
|
||||||
`id` int(11) NOT NULL auto_increment,
|
|
||||||
`visitor` varchar(100) default NULL,
|
|
||||||
`timevisit` int(11) NOT NULL default '0',
|
|
||||||
`oxclass` varchar(32) collate latin1_general_ci NOT NULL,
|
|
||||||
PRIMARY KEY (id)
|
|
||||||
) ENGINE=MyISAM;
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user