Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sat, Nov 8, 2:21 PM

in-portal

Index: trunk/kernel/units/visits/visits_tag_processor.php
===================================================================
--- trunk/kernel/units/visits/visits_tag_processor.php (revision 2697)
+++ trunk/kernel/units/visits/visits_tag_processor.php (revision 2698)
@@ -1,152 +1,152 @@
<?php
class VisitsTagProcessor extends kDBTagProcessor {
function UserFound($params)
{
$virtual_users = Array(-1,-2, 0);
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
return !in_array( $object->GetDBField( $params['user_field'] ) , $virtual_users );
}
function UserLink($params)
{
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
$user_id = $object->GetDBField( $params['user_field'] );
if($user_id)
{
//return $this->Application->HREF('in-commerce/users/users_edit_general','', Array('u_id' => $user_id) );
$resource_id = $this->Conn->GetOne('SELECT ResourceId FROM '.TABLE_PREFIX.'PortalUser WHERE PortalUserId = '.$user_id);
return 'javascript:OpenUserEdit('.$resource_id.');';
}
}
function GetTotalAffiliateVisits($params){
$object_user = &$this->Application->recallObject('u');
$sql='SELECT COUNT(*) FROM '.TABLE_PREFIX.'Visits vis
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON (vis.AffiliateId = af.AffiliateId)
WHERE af.PortalUserId = '.$object_user->GetDBField('PortalUserId');
return $this->Conn->GetOne($sql);
}
function AffiliateOrderInfo($params){
$object_user = &$this->Application->recallObject('u');
- $sql='SELECT COUNT(ord.OrderId) as OrderCount, SUM(AffiliateCommission) as TotalCommission, SUM(SubTotal+ShippingCost+VAT-CouponDiscount) as TotalAmount
+ $sql='SELECT COUNT(ord.OrderId) as OrderCount, SUM(AffiliateCommission) as TotalCommission, SUM(SubTotal+ShippingCost+VAT) as TotalAmount
FROM '.TABLE_PREFIX.'Orders ord
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON (vis.AffiliateId = af.AffiliateId)
LEFT JOIN '.TABLE_PREFIX.'Visits vis ON (ord.VisitId = vis.VisitId)
WHERE af.PortalUserId = '.$object_user->GetDBField('PortalUserId').'
AND ord.Status = 4
GROUP BY af.PortalUserId
';
$info = $this->Conn->GetRow($sql);
$params_info = $this->prepareTagParams($params);
$params_info['name'] = $params_info['render_as'];
if (!$info['OrderCount']) $info['OrderCount'] = 0;
if (!$info['TotalAmount']) $info['TotalAmount'] = 0;
if (!$info['AffiliateCommission']) $info['AffiliateCommission'] = 0;
$params_info = array_merge_recursive2($params_info, $info);
$params_info['TotalVisits'] = $this->GetTotalAffiliateVisits($params);
//$order_autoload = $this->Application->getUnitOption('ord', 'AutoLoad');
//$this->Application->setUnitOption('ord', 'AutoLoad', false);
$order_object = &$this->Application->recallObject('ord.totals', null, array('skip_autoload'=>true));
//$this->Application->setUnitOption('ord', 'AutoLoad', $order_autoload);
$order_object->SetDBField('AffiliateCommission', $params_info['TotalCommission']);
$order_object->SetDBField('TotalAmount', $params_info['TotalAmount']);
$fields_to_convert = array('AffiliateCommission', 'TotalAmount');
if( $this->HasParam($params, 'currency') )
{
$iso = $this->GetISO($params['currency']);
foreach($fields_to_convert as $key => $field){
$iso = $this->GetISO($params['currency']);
$original = $order_object->GetDBField($field);
$value = $this->ConvertCurrency($original, $iso);
$order_object->SetDBField($field, $value);
}
$params_info['TotalCommission'] = $this->AddCurrencySymbol($order_object->GetField('AffiliateCommission'), $iso);
$params_info['TotalAmount'] = $this->AddCurrencySymbol($order_object->GetField('TotalAmount'), $iso);
}
return $this->Application->ParseBlock($params_info);
}
function ListVisitors($params){
$o = '';
$params['render_as'] = $params['item_render_as'];
$o_visitors = $this->PrintList2($params);
if ($o_visitors){
$visitors_params = array('name' => $params['header_render_as']);
$o = $this->Application->ParseBlock($visitors_params);
$o .= $o_visitors;
}else {
$visitors_params = array('name' => $params['empty_myvisitors_render_as']);
$o = $this->Application->ParseBlock($visitors_params);
}
return $o;
}
/*
function OrderLink($params){
$object = &$this->Application->recallObject($this->getPrefixSpecial());
$params['ord_id'] = $object->GetDBField('OrderId');
$main_processor =& $this->Application->recallObject('m_TagProcessor');
return $main_processor->T($params);
}
*/
/**
* Enter description here...
*
* @param unknown_type $params
* @return kDBList
*/
function &GetList($params)
{
$list_name = $this->SelectParam($params, 'list_name,name');
if (!$list_name) {
$list_name = $this->Application->Parser->GetParam('list_name');
}
$types = $this->SelectParam($params, 'types');
$special='';
if ($types=='myvisitororders' || $types=='myvisitors'){
$special = 'incommerce';
$names_mapping = $this->Application->GetVar('NamesToSpecialMapping');
$names_mapping[$list_name] = $special;
$this->Application->SetVar('NamesToSpecialMapping', $names_mapping);
}
return parent::GetList($params);
}
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/visits/visits_tag_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.9
\ No newline at end of property
+1.10
\ No newline at end of property
Index: trunk/kernel/units/visits/visits_event_handler.php
===================================================================
--- trunk/kernel/units/visits/visits_event_handler.php (revision 2697)
+++ trunk/kernel/units/visits/visits_event_handler.php (revision 2698)
@@ -1,96 +1,96 @@
<?php
class VisitsEventHandler extends InpDBEventHandler {
/**
* Registers user visit to site
*
* @param kEvent $event
*/
function OnRegisterVisit(&$event)
{
$object =& $event->getObject( Array('skip_autoload'=>true) );
$object->SetDBField('VisitDate_date', time() );
$object->SetDBField('VisitDate_time', time() );
$object->SetDBField('Referer', getArrayValue($_SERVER, 'HTTP_REFERER') );
$object->SetDBField('IPAddress', $_SERVER['REMOTE_ADDR'] );
if( $object->Create() )
{
$this->Application->StoreVar('visit_id', $object->GetID() );
$this->Application->SetVar('visits_id', $object->GetID() );
}
}
/**
* Search
*
* @param kEvent $event
*/
function OnSearch(&$event){
parent::OnSearch($event);
}
/**
* Apply any custom changes to list's sql query
*
* @param kEvent $event
* @access protected
* @see OnListBuild
*/
function SetCustomQuery(&$event)
{
$object =& $event->getObject();
$types = $event->getEventParam('types');
if ($types=='myvisitors'){
$user_id = $this->Application->GetVar('u_id');
$object->addFilter('myitems_user1','au.PortalUserId = '.$user_id);
$object->addFilter('myitems_user2','au.PortalUserId >0');
//$object->AddGroupByField('VisitDate');
$object->AddGroupByField('%1$s.VisitId');
}
if ($types=='myvisitororders' && $event->Special=='incommerce'){
$user_id = $this->Application->GetVar('u_id');
$object->addFilter('myitems_orders','ord.OrderId IS NOT NULL');
$object->addFilter('myitems_user1','au.PortalUserId = '.$user_id);
$object->addFilter('myitems_user2','au.PortalUserId >0');
$object->addFilter('myitems_orders_processed','ord.Status = 4');
}
}
/**
* Apply some special processing to
* object beeing recalled before using
* it in other events that call prepareObject
*
* @param kBase $object
* @param kEvent $event
* @access protected
*/
function prepareObject(&$object, &$event)
{
$types = $event->getEventParam('types');
if(method_exists($object, 'AddGroupByField')){
if ( ($types=='myvisitors' || !$types) && $object->Special=='incommerce'){
- $object->addCalculatedField('OrderTotalAmountSum', 'SUM(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)');
+ $object->addCalculatedField('OrderTotalAmountSum', 'SUM(ord.SubTotal+ord.ShippingCost+ord.VAT)');
$object->addCalculatedField('OrderAffiliateCommissionSum', 'SUM(ord.AffiliateCommission)');
$object->addCalculatedField('OrderCountByVisit', 'COUNT(OrderId)');
}
if (!$types){
$object->AddGroupByField('%1$s.VisitId');
}
}
}
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/visits/visits_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.10
\ No newline at end of property
+1.11
\ No newline at end of property
Index: trunk/kernel/units/visits/visits_config.php
===================================================================
--- trunk/kernel/units/visits/visits_config.php (revision 2697)
+++ trunk/kernel/units/visits/visits_config.php (revision 2698)
@@ -1,118 +1,118 @@
<?php
$config = Array(
'Prefix' => 'visits',
'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
'EventHandlerClass' => Array('class'=>'VisitsEventHandler','file'=>'visits_event_handler.php','build_event'=>'OnBuild'),
'TagProcessorClass' => Array('class'=>'VisitsTagProcessor','file'=>'visits_tag_processor.php','build_event'=>'OnBuild'),
'AutoLoad' => true,
'QueryString' => Array(
1 => 'id',
2 => 'Page',
3 => 'event',
4 => 'mode',
),
'IDField' => 'VisitId',
'TableName' => TABLE_PREFIX.'Visits',
'TitlePresets' => Array(
'default' => Array( ),
'visits_list' => Array( 'prefixes' => Array('visits_List'),
'format' => "!la_title_Visits! (#visits_recordcount#)",
),
),
'CalculatedFields' => Array(
'' => Array (
'UserName' => 'IF( ISNULL(u.Login), IF (%1$s.PortalUserId = -1, \'root\', IF (%1$s.PortalUserId = -2, \'Guest\', \'n/a\')), u.Login)',
),
'incommerce' => Array (
'UserName' => 'IF( ISNULL(u.Login), IF (%1$s.PortalUserId = -1, \'root\', IF (%1$s.PortalUserId = -2, \'Guest\', \'n/a\')), u.Login)',
'AffiliateUser' => 'IF( LENGTH(au.Login),au.Login,\'!la_None!\')',
'AffiliatePortalUserId' => 'af.PortalUserId',
- 'OrderTotalAmount' => '(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)',
+ 'OrderTotalAmount' => '(ord.SubTotal+ord.ShippingCost+ord.VAT)',
'OrderAffiliateCommission' => 'ord.AffiliateCommission',
'OrderNumber' => 'CONCAT(LPAD(Number,6,0),\'-\',LPAD(SubNumber,3,0) )',
'OrderId' => 'ord.OrderId',
),
),
'ListSQLs' => Array( ''=>' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId',
'incommerce'=>' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON %1$s.AffiliateId = af.AffiliateId
LEFT JOIN '.TABLE_PREFIX.'PortalUser au ON af.PortalUserId = au.PortalUserId
LEFT JOIN '.TABLE_PREFIX.'Orders ord ON %1$s.VisitId = ord.VisitId',
),
'ItemSQLs' => Array( ''=>' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId',
'incommerce'=>' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON %1$s.AffiliateId = af.AffiliateId
LEFT JOIN '.TABLE_PREFIX.'PortalUser au ON af.PortalUserId = au.PortalUserId
LEFT JOIN '.TABLE_PREFIX.'Orders ord ON %1$s.VisitId = ord.VisitId',
),
'ListSortings' => Array(
'' => Array(
'Sorting' => Array('VisitDate' => 'desc'),
)
),
'Fields' => Array(
'VisitId' => Array(),
'VisitDate' => Array('type' => 'int', 'formatter'=>'kDateFormatter', 'custom_filter' => 'date_range', 'not_null' => '1','default' => '0'),
'Referer' => Array('type' => 'string','not_null' => '1','default' => ''),
'IPAddress' => Array('type' => 'string','not_null' => '1','default' => ''),
'AffiliateId' => Array('type'=>'int','formatter'=>'kLEFTFormatter','options'=>Array(0=>'lu_none'),'left_sql'=>'SELECT %s FROM '.TABLE_PREFIX.'Affiliates af LEFT JOIN '.TABLE_PREFIX.'PortalUser pu ON pu.PortalUserId = af.PortalUserId WHERE `%s` = \'%s\'','left_key_field'=>'AffiliateId','left_title_field'=>'Login','not_null'=>1,'default'=>0),
'PortalUserId' => Array('type' => 'int','not_null' => '1','default' => -2),
),
'VirtualFields' => Array(
'UserName' => Array('type'=>'string'),
'AffiliateUser' => Array('type'=>'string'),
'AffiliatePortalUserId' => Array('type'=>'int'),
'OrderTotalAmount' => Array('type' => 'float', 'formatter'=>'kFormatter', 'format'=>'%01.2f', 'not_null' => '1','default' => '0.00'),
'OrderTotalAmountSum' => Array('type' => 'float', 'formatter'=>'kFormatter', 'format'=>'%01.2f', 'not_null' => '1','default' => '0.00'),
'OrderAffiliateCommission' => Array('type' => 'double', 'formatter'=>'kFormatter','format'=>'%.02f', 'not_null' => '1','default' => '0.0000'),
'OrderAffiliateCommissionSum' => Array('type' => 'double', 'formatter'=>'kFormatter','format'=>'%.02f', 'not_null' => '1','default' => '0.0000'),
),
'Grids' => Array(
'Default' => Array(
'Icons' => Array('default'=>'icon16_custom.gif'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used
'Fields' => Array(
'VisitDate' => Array( 'title'=>'la_col_VisitDate', 'data_block' => 'grid_checkbox_td' ),
'IPAddress' => Array( 'title'=>'la_col_IPAddress' ),
'Referer' => Array( 'title'=>'la_col_Referer', 'data_block' => 'grid_referer_td' ),
'UserName' => Array('title' => 'la_col_Username', 'data_block' => 'grid_userlink_td', 'user_field' => 'PortalUserId'),
/* 'AffiliateUser' => Array( 'title' => 'la_col_AffiliateUser', 'data_block' => 'grid_userlink_td', 'user_field' => 'AffiliatePortalUserId'),
'OrderTotalAmountSum' => Array( 'title' => 'la_col_OrderTotal'),
'OrderAffiliateCommissionSum' => Array( 'title' => 'la_col_Commission'),
*/ ),
),
'visitsincommerce' => Array(
'Icons' => Array('default'=>'icon16_custom.gif'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used
'Fields' => Array(
'VisitDate' => Array( 'title'=>'la_col_VisitDate', 'data_block' => 'grid_checkbox_td' ),
'IPAddress' => Array( 'title'=>'la_col_IPAddress' ),
'Referer' => Array( 'title'=>'la_col_Referer', 'data_block' => 'grid_referer_td' ),
'UserName' => Array('title' => 'la_col_Username', 'data_block' => 'grid_userlink_td', 'user_field' => 'PortalUserId'),
'AffiliateUser' => Array( 'title' => 'la_col_AffiliateUser', 'data_block' => 'grid_userlink_td', 'user_field' => 'AffiliatePortalUserId'),
'OrderTotalAmountSum' => Array( 'title' => 'la_col_OrderTotal'),
'OrderAffiliateCommissionSum' => Array( 'title' => 'la_col_Commission'),
),
),
),
);
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/visits/visits_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.16
\ No newline at end of property
+1.17
\ No newline at end of property
Index: trunk/core/units/visits/visits_tag_processor.php
===================================================================
--- trunk/core/units/visits/visits_tag_processor.php (revision 2697)
+++ trunk/core/units/visits/visits_tag_processor.php (revision 2698)
@@ -1,152 +1,152 @@
<?php
class VisitsTagProcessor extends kDBTagProcessor {
function UserFound($params)
{
$virtual_users = Array(-1,-2, 0);
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
return !in_array( $object->GetDBField( $params['user_field'] ) , $virtual_users );
}
function UserLink($params)
{
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
$user_id = $object->GetDBField( $params['user_field'] );
if($user_id)
{
//return $this->Application->HREF('in-commerce/users/users_edit_general','', Array('u_id' => $user_id) );
$resource_id = $this->Conn->GetOne('SELECT ResourceId FROM '.TABLE_PREFIX.'PortalUser WHERE PortalUserId = '.$user_id);
return 'javascript:OpenUserEdit('.$resource_id.');';
}
}
function GetTotalAffiliateVisits($params){
$object_user = &$this->Application->recallObject('u');
$sql='SELECT COUNT(*) FROM '.TABLE_PREFIX.'Visits vis
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON (vis.AffiliateId = af.AffiliateId)
WHERE af.PortalUserId = '.$object_user->GetDBField('PortalUserId');
return $this->Conn->GetOne($sql);
}
function AffiliateOrderInfo($params){
$object_user = &$this->Application->recallObject('u');
- $sql='SELECT COUNT(ord.OrderId) as OrderCount, SUM(AffiliateCommission) as TotalCommission, SUM(SubTotal+ShippingCost+VAT-CouponDiscount) as TotalAmount
+ $sql='SELECT COUNT(ord.OrderId) as OrderCount, SUM(AffiliateCommission) as TotalCommission, SUM(SubTotal+ShippingCost+VAT) as TotalAmount
FROM '.TABLE_PREFIX.'Orders ord
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON (vis.AffiliateId = af.AffiliateId)
LEFT JOIN '.TABLE_PREFIX.'Visits vis ON (ord.VisitId = vis.VisitId)
WHERE af.PortalUserId = '.$object_user->GetDBField('PortalUserId').'
AND ord.Status = 4
GROUP BY af.PortalUserId
';
$info = $this->Conn->GetRow($sql);
$params_info = $this->prepareTagParams($params);
$params_info['name'] = $params_info['render_as'];
if (!$info['OrderCount']) $info['OrderCount'] = 0;
if (!$info['TotalAmount']) $info['TotalAmount'] = 0;
if (!$info['AffiliateCommission']) $info['AffiliateCommission'] = 0;
$params_info = array_merge_recursive2($params_info, $info);
$params_info['TotalVisits'] = $this->GetTotalAffiliateVisits($params);
//$order_autoload = $this->Application->getUnitOption('ord', 'AutoLoad');
//$this->Application->setUnitOption('ord', 'AutoLoad', false);
$order_object = &$this->Application->recallObject('ord.totals', null, array('skip_autoload'=>true));
//$this->Application->setUnitOption('ord', 'AutoLoad', $order_autoload);
$order_object->SetDBField('AffiliateCommission', $params_info['TotalCommission']);
$order_object->SetDBField('TotalAmount', $params_info['TotalAmount']);
$fields_to_convert = array('AffiliateCommission', 'TotalAmount');
if( $this->HasParam($params, 'currency') )
{
$iso = $this->GetISO($params['currency']);
foreach($fields_to_convert as $key => $field){
$iso = $this->GetISO($params['currency']);
$original = $order_object->GetDBField($field);
$value = $this->ConvertCurrency($original, $iso);
$order_object->SetDBField($field, $value);
}
$params_info['TotalCommission'] = $this->AddCurrencySymbol($order_object->GetField('AffiliateCommission'), $iso);
$params_info['TotalAmount'] = $this->AddCurrencySymbol($order_object->GetField('TotalAmount'), $iso);
}
return $this->Application->ParseBlock($params_info);
}
function ListVisitors($params){
$o = '';
$params['render_as'] = $params['item_render_as'];
$o_visitors = $this->PrintList2($params);
if ($o_visitors){
$visitors_params = array('name' => $params['header_render_as']);
$o = $this->Application->ParseBlock($visitors_params);
$o .= $o_visitors;
}else {
$visitors_params = array('name' => $params['empty_myvisitors_render_as']);
$o = $this->Application->ParseBlock($visitors_params);
}
return $o;
}
/*
function OrderLink($params){
$object = &$this->Application->recallObject($this->getPrefixSpecial());
$params['ord_id'] = $object->GetDBField('OrderId');
$main_processor =& $this->Application->recallObject('m_TagProcessor');
return $main_processor->T($params);
}
*/
/**
* Enter description here...
*
* @param unknown_type $params
* @return kDBList
*/
function &GetList($params)
{
$list_name = $this->SelectParam($params, 'list_name,name');
if (!$list_name) {
$list_name = $this->Application->Parser->GetParam('list_name');
}
$types = $this->SelectParam($params, 'types');
$special='';
if ($types=='myvisitororders' || $types=='myvisitors'){
$special = 'incommerce';
$names_mapping = $this->Application->GetVar('NamesToSpecialMapping');
$names_mapping[$list_name] = $special;
$this->Application->SetVar('NamesToSpecialMapping', $names_mapping);
}
return parent::GetList($params);
}
}
?>
\ No newline at end of file
Property changes on: trunk/core/units/visits/visits_tag_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.9
\ No newline at end of property
+1.10
\ No newline at end of property
Index: trunk/core/units/visits/visits_event_handler.php
===================================================================
--- trunk/core/units/visits/visits_event_handler.php (revision 2697)
+++ trunk/core/units/visits/visits_event_handler.php (revision 2698)
@@ -1,96 +1,96 @@
<?php
class VisitsEventHandler extends InpDBEventHandler {
/**
* Registers user visit to site
*
* @param kEvent $event
*/
function OnRegisterVisit(&$event)
{
$object =& $event->getObject( Array('skip_autoload'=>true) );
$object->SetDBField('VisitDate_date', time() );
$object->SetDBField('VisitDate_time', time() );
$object->SetDBField('Referer', getArrayValue($_SERVER, 'HTTP_REFERER') );
$object->SetDBField('IPAddress', $_SERVER['REMOTE_ADDR'] );
if( $object->Create() )
{
$this->Application->StoreVar('visit_id', $object->GetID() );
$this->Application->SetVar('visits_id', $object->GetID() );
}
}
/**
* Search
*
* @param kEvent $event
*/
function OnSearch(&$event){
parent::OnSearch($event);
}
/**
* Apply any custom changes to list's sql query
*
* @param kEvent $event
* @access protected
* @see OnListBuild
*/
function SetCustomQuery(&$event)
{
$object =& $event->getObject();
$types = $event->getEventParam('types');
if ($types=='myvisitors'){
$user_id = $this->Application->GetVar('u_id');
$object->addFilter('myitems_user1','au.PortalUserId = '.$user_id);
$object->addFilter('myitems_user2','au.PortalUserId >0');
//$object->AddGroupByField('VisitDate');
$object->AddGroupByField('%1$s.VisitId');
}
if ($types=='myvisitororders' && $event->Special=='incommerce'){
$user_id = $this->Application->GetVar('u_id');
$object->addFilter('myitems_orders','ord.OrderId IS NOT NULL');
$object->addFilter('myitems_user1','au.PortalUserId = '.$user_id);
$object->addFilter('myitems_user2','au.PortalUserId >0');
$object->addFilter('myitems_orders_processed','ord.Status = 4');
}
}
/**
* Apply some special processing to
* object beeing recalled before using
* it in other events that call prepareObject
*
* @param kBase $object
* @param kEvent $event
* @access protected
*/
function prepareObject(&$object, &$event)
{
$types = $event->getEventParam('types');
if(method_exists($object, 'AddGroupByField')){
if ( ($types=='myvisitors' || !$types) && $object->Special=='incommerce'){
- $object->addCalculatedField('OrderTotalAmountSum', 'SUM(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)');
+ $object->addCalculatedField('OrderTotalAmountSum', 'SUM(ord.SubTotal+ord.ShippingCost+ord.VAT)');
$object->addCalculatedField('OrderAffiliateCommissionSum', 'SUM(ord.AffiliateCommission)');
$object->addCalculatedField('OrderCountByVisit', 'COUNT(OrderId)');
}
if (!$types){
$object->AddGroupByField('%1$s.VisitId');
}
}
}
}
?>
\ No newline at end of file
Property changes on: trunk/core/units/visits/visits_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.10
\ No newline at end of property
+1.11
\ No newline at end of property
Index: trunk/core/units/visits/visits_config.php
===================================================================
--- trunk/core/units/visits/visits_config.php (revision 2697)
+++ trunk/core/units/visits/visits_config.php (revision 2698)
@@ -1,118 +1,118 @@
<?php
$config = Array(
'Prefix' => 'visits',
'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
'EventHandlerClass' => Array('class'=>'VisitsEventHandler','file'=>'visits_event_handler.php','build_event'=>'OnBuild'),
'TagProcessorClass' => Array('class'=>'VisitsTagProcessor','file'=>'visits_tag_processor.php','build_event'=>'OnBuild'),
'AutoLoad' => true,
'QueryString' => Array(
1 => 'id',
2 => 'Page',
3 => 'event',
4 => 'mode',
),
'IDField' => 'VisitId',
'TableName' => TABLE_PREFIX.'Visits',
'TitlePresets' => Array(
'default' => Array( ),
'visits_list' => Array( 'prefixes' => Array('visits_List'),
'format' => "!la_title_Visits! (#visits_recordcount#)",
),
),
'CalculatedFields' => Array(
'' => Array (
'UserName' => 'IF( ISNULL(u.Login), IF (%1$s.PortalUserId = -1, \'root\', IF (%1$s.PortalUserId = -2, \'Guest\', \'n/a\')), u.Login)',
),
'incommerce' => Array (
'UserName' => 'IF( ISNULL(u.Login), IF (%1$s.PortalUserId = -1, \'root\', IF (%1$s.PortalUserId = -2, \'Guest\', \'n/a\')), u.Login)',
'AffiliateUser' => 'IF( LENGTH(au.Login),au.Login,\'!la_None!\')',
'AffiliatePortalUserId' => 'af.PortalUserId',
- 'OrderTotalAmount' => '(ord.SubTotal+ord.ShippingCost+ord.VAT-ord.CouponDiscount)',
+ 'OrderTotalAmount' => '(ord.SubTotal+ord.ShippingCost+ord.VAT)',
'OrderAffiliateCommission' => 'ord.AffiliateCommission',
'OrderNumber' => 'CONCAT(LPAD(Number,6,0),\'-\',LPAD(SubNumber,3,0) )',
'OrderId' => 'ord.OrderId',
),
),
'ListSQLs' => Array( ''=>' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId',
'incommerce'=>' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON %1$s.AffiliateId = af.AffiliateId
LEFT JOIN '.TABLE_PREFIX.'PortalUser au ON af.PortalUserId = au.PortalUserId
LEFT JOIN '.TABLE_PREFIX.'Orders ord ON %1$s.VisitId = ord.VisitId',
),
'ItemSQLs' => Array( ''=>' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId',
'incommerce'=>' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON %1$s.AffiliateId = af.AffiliateId
LEFT JOIN '.TABLE_PREFIX.'PortalUser au ON af.PortalUserId = au.PortalUserId
LEFT JOIN '.TABLE_PREFIX.'Orders ord ON %1$s.VisitId = ord.VisitId',
),
'ListSortings' => Array(
'' => Array(
'Sorting' => Array('VisitDate' => 'desc'),
)
),
'Fields' => Array(
'VisitId' => Array(),
'VisitDate' => Array('type' => 'int', 'formatter'=>'kDateFormatter', 'custom_filter' => 'date_range', 'not_null' => '1','default' => '0'),
'Referer' => Array('type' => 'string','not_null' => '1','default' => ''),
'IPAddress' => Array('type' => 'string','not_null' => '1','default' => ''),
'AffiliateId' => Array('type'=>'int','formatter'=>'kLEFTFormatter','options'=>Array(0=>'lu_none'),'left_sql'=>'SELECT %s FROM '.TABLE_PREFIX.'Affiliates af LEFT JOIN '.TABLE_PREFIX.'PortalUser pu ON pu.PortalUserId = af.PortalUserId WHERE `%s` = \'%s\'','left_key_field'=>'AffiliateId','left_title_field'=>'Login','not_null'=>1,'default'=>0),
'PortalUserId' => Array('type' => 'int','not_null' => '1','default' => -2),
),
'VirtualFields' => Array(
'UserName' => Array('type'=>'string'),
'AffiliateUser' => Array('type'=>'string'),
'AffiliatePortalUserId' => Array('type'=>'int'),
'OrderTotalAmount' => Array('type' => 'float', 'formatter'=>'kFormatter', 'format'=>'%01.2f', 'not_null' => '1','default' => '0.00'),
'OrderTotalAmountSum' => Array('type' => 'float', 'formatter'=>'kFormatter', 'format'=>'%01.2f', 'not_null' => '1','default' => '0.00'),
'OrderAffiliateCommission' => Array('type' => 'double', 'formatter'=>'kFormatter','format'=>'%.02f', 'not_null' => '1','default' => '0.0000'),
'OrderAffiliateCommissionSum' => Array('type' => 'double', 'formatter'=>'kFormatter','format'=>'%.02f', 'not_null' => '1','default' => '0.0000'),
),
'Grids' => Array(
'Default' => Array(
'Icons' => Array('default'=>'icon16_custom.gif'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used
'Fields' => Array(
'VisitDate' => Array( 'title'=>'la_col_VisitDate', 'data_block' => 'grid_checkbox_td' ),
'IPAddress' => Array( 'title'=>'la_col_IPAddress' ),
'Referer' => Array( 'title'=>'la_col_Referer', 'data_block' => 'grid_referer_td' ),
'UserName' => Array('title' => 'la_col_Username', 'data_block' => 'grid_userlink_td', 'user_field' => 'PortalUserId'),
/* 'AffiliateUser' => Array( 'title' => 'la_col_AffiliateUser', 'data_block' => 'grid_userlink_td', 'user_field' => 'AffiliatePortalUserId'),
'OrderTotalAmountSum' => Array( 'title' => 'la_col_OrderTotal'),
'OrderAffiliateCommissionSum' => Array( 'title' => 'la_col_Commission'),
*/ ),
),
'visitsincommerce' => Array(
'Icons' => Array('default'=>'icon16_custom.gif'), // icons for each StatusField values, if no matches or no statusfield selected, then "default" icon is used
'Fields' => Array(
'VisitDate' => Array( 'title'=>'la_col_VisitDate', 'data_block' => 'grid_checkbox_td' ),
'IPAddress' => Array( 'title'=>'la_col_IPAddress' ),
'Referer' => Array( 'title'=>'la_col_Referer', 'data_block' => 'grid_referer_td' ),
'UserName' => Array('title' => 'la_col_Username', 'data_block' => 'grid_userlink_td', 'user_field' => 'PortalUserId'),
'AffiliateUser' => Array( 'title' => 'la_col_AffiliateUser', 'data_block' => 'grid_userlink_td', 'user_field' => 'AffiliatePortalUserId'),
'OrderTotalAmountSum' => Array( 'title' => 'la_col_OrderTotal'),
'OrderAffiliateCommissionSum' => Array( 'title' => 'la_col_Commission'),
),
),
),
);
?>
\ No newline at end of file
Property changes on: trunk/core/units/visits/visits_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.16
\ No newline at end of property
+1.17
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.7.2/core/units/visits/visits_tag_processor.php
===================================================================
--- branches/unlabeled/unlabeled-1.7.2/core/units/visits/visits_tag_processor.php (revision 2697)
+++ branches/unlabeled/unlabeled-1.7.2/core/units/visits/visits_tag_processor.php (revision 2698)
@@ -1,152 +1,153 @@
<?php
class VisitsTagProcessor extends kDBTagProcessor {
function UserFound($params)
{
$virtual_users = Array(-1,-2, 0);
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
return !in_array( $object->GetDBField( $params['user_field'] ) , $virtual_users );
}
function UserLink($params)
{
$object =& $this->Application->recallObject( $this->getPrefixSpecial(), $this->Prefix, $params );
$user_id = $object->GetDBField( $params['user_field'] );
if($user_id)
{
//return $this->Application->HREF('in-commerce/users/users_edit_general','', Array('u_id' => $user_id) );
$resource_id = $this->Conn->GetOne('SELECT ResourceId FROM '.TABLE_PREFIX.'PortalUser WHERE PortalUserId = '.$user_id);
return 'javascript:OpenUserEdit('.$resource_id.');';
}
}
function GetTotalAffiliateVisits($params){
$object_user = &$this->Application->recallObject('u');
$sql='SELECT COUNT(*) FROM '.TABLE_PREFIX.'Visits vis
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON (vis.AffiliateId = af.AffiliateId)
WHERE af.PortalUserId = '.$object_user->GetDBField('PortalUserId');
return $this->Conn->GetOne($sql);
}
function AffiliateOrderInfo($params){
$object_user = &$this->Application->recallObject('u');
- $sql='SELECT COUNT(ord.OrderId) as OrderCount, SUM(AffiliateCommission) as TotalCommission, SUM(SubTotal+ShippingCost+VAT-CouponDiscount) as TotalAmount
+ $sql='SELECT COUNT(ord.OrderId) as OrderCount, SUM(AffiliateCommission) as TotalCommission, SUM(SubTotal+ShippingCost+VAT) as TotalAmount
FROM '.TABLE_PREFIX.'Orders ord
LEFT JOIN '.TABLE_PREFIX.'Affiliates af ON (vis.AffiliateId = af.AffiliateId)
LEFT JOIN '.TABLE_PREFIX.'Visits vis ON (ord.VisitId = vis.VisitId)
WHERE af.PortalUserId = '.$object_user->GetDBField('PortalUserId').'
AND ord.Status = 4
GROUP BY af.PortalUserId
';
$info = $this->Conn->GetRow($sql);
$params_info = $this->prepareTagParams($params);
$params_info['name'] = $params_info['render_as'];
if (!$info['OrderCount']) $info['OrderCount'] = 0;
if (!$info['TotalAmount']) $info['TotalAmount'] = 0;
if (!$info['AffiliateCommission']) $info['AffiliateCommission'] = 0;
$params_info = array_merge_recursive2($params_info, $info);
$params_info['TotalVisits'] = $this->GetTotalAffiliateVisits($params);
//$order_autoload = $this->Application->getUnitOption('ord', 'AutoLoad');
//$this->Application->setUnitOption('ord', 'AutoLoad', false);
$order_object = &$this->Application->recallObject('ord.totals', null, array('skip_autoload'=>true));
//$this->Application->setUnitOption('ord', 'AutoLoad', $order_autoload);
$order_object->SetDBField('AffiliateCommission', $params_info['TotalCommission']);
$order_object->SetDBField('TotalAmount', $params_info['TotalAmount']);
$fields_to_convert = array('AffiliateCommission', 'TotalAmount');
if( $this->HasParam($params, 'currency') )
{
$iso = $this->GetISO($params['currency']);
foreach($fields_to_convert as $key => $field){
$iso = $this->GetISO($params['currency']);
$original = $order_object->GetDBField($field);
$value = $this->ConvertCurrency($original, $iso);
$order_object->SetDBField($field, $value);
}
$params_info['TotalCommission'] = $this->AddCurrencySymbol($order_object->GetField('AffiliateCommission'), $iso);
$params_info['TotalAmount'] = $this->AddCurrencySymbol($order_object->GetField('TotalAmount'), $iso);
}
return $this->Application->ParseBlock($params_info);
}
- function ListVisitors($params){
-
+ function ListVisitors($params)
+ {
$o = '';
$params['render_as'] = $params['item_render_as'];
-
$o_visitors = $this->PrintList2($params);
- if ($o_visitors){
-
+ if($o_visitors)
+ {
$visitors_params = array('name' => $params['header_render_as']);
$o = $this->Application->ParseBlock($visitors_params);
$o .= $o_visitors;
- }else {
+ }
+ else
+ {
$visitors_params = array('name' => $params['empty_myvisitors_render_as']);
$o = $this->Application->ParseBlock($visitors_params);
}
return $o;
}
/*
function OrderLink($params){
$object = &$this->Application->recallObject($this->getPrefixSpecial());
$params['ord_id'] = $object->GetDBField('OrderId');
$main_processor =& $this->Application->recallObject('m_TagProcessor');
return $main_processor->T($params);
}
*/
/**
* Enter description here...
*
* @param unknown_type $params
* @return kDBList
*/
function &GetList($params)
{
$list_name = $this->SelectParam($params, 'list_name,name');
if (!$list_name) {
$list_name = $this->Application->Parser->GetParam('list_name');
}
$types = $this->SelectParam($params, 'types');
$special='';
if ($types=='myvisitororders' || $types=='myvisitors'){
$special = 'incommerce';
$names_mapping = $this->Application->GetVar('NamesToSpecialMapping');
$names_mapping[$list_name] = $special;
$this->Application->SetVar('NamesToSpecialMapping', $names_mapping);
}
return parent::GetList($params);
}
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.7.2/core/units/visits/visits_tag_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.7.2.1
\ No newline at end of property
+1.7.2.2
\ No newline at end of property

Event Timeline