Index: trunk/kernel/admin_templates/visits/visits_list.tpl =================================================================== diff -u -N --- trunk/kernel/admin_templates/visits/visits_list.tpl (revision 0) +++ trunk/kernel/admin_templates/visits/visits_list.tpl (revision 2388) @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + +
+ + +
+ + + + + " title=""> + + + + + + + + + + + \ No newline at end of file Index: trunk/core/units/visits/visits_config.php =================================================================== diff -u -N -r2385 -r2388 --- trunk/core/units/visits/visits_config.php (.../visits_config.php) (revision 2385) +++ trunk/core/units/visits/visits_config.php (.../visits_config.php) (revision 2388) @@ -5,7 +5,7 @@ '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'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class'=>'VisitsTagProcessor','file'=>'visits_tag_processor.php','build_event'=>'OnBuild'), 'AutoLoad' => true, 'QueryString' => Array( @@ -17,20 +17,33 @@ '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)', + 'AffiliateUser' => 'IF( LENGTH(au.Login),au.Login,\'!la_None!\')', + 'AffiliatePortalUserId' => 'af.PortalUserId' ), ), 'ListSQLs' => Array( ''=>' SELECT %1$s.* %2$s FROM %1$s - LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId'), + 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 + '), 'ItemSQLs' => Array( ''=>' SELECT %1$s.* %2$s FROM %1$s - LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId'), + 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 + '), 'ListSortings' => Array( '' => Array( @@ -43,16 +56,29 @@ 'VisitDate' => Array('type' => 'int', 'formatter'=>'kDateFormatter', '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','not_null' => '1','default' => '0'), + '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), 'OrderId' => Array('type' => 'int','not_null' => '1','default' => '0'), ), 'VirtualFields' => Array( - 'Username' => Array('type'=>'string'), + 'UserName' => Array('type'=>'string'), + 'AffiliateUser' => Array('type'=>'string'), + 'AffiliatePortalUserId' => Array('type'=>'int'), ), - 'Grids' => Array(), + '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( + 'VisitId' => Array( 'title'=>'la_col_VisitId', 'data_block' => 'grid_checkbox_td_no_icon'), + 'VisitDate' => Array( 'title'=>'la_col_VisitDate' ), + 'IPAddress' => Array( 'title'=>'la_col_IPAddress' ), + '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'), + ), + ), + ), ); Index: trunk/kernel/admin/include/navmenu.php =================================================================== diff -u -N -r2082 -r2388 --- trunk/kernel/admin/include/navmenu.php (.../navmenu.php) (revision 2082) +++ trunk/kernel/admin/include/navmenu.php (.../navmenu.php) (revision 2388) @@ -402,5 +402,10 @@ "", $admin."/icons/icon46_struct.gif", $admin."/icons/icon24_navigate.gif", NULL, null, null, null, 1, '', 1, 0, 1); + +$objSections->AddSection("in-portal:visits","la_tab_Visits","la_title_Visits",$admin."/index4.php","kernel4:visits/visits_list", + $module_images."/icons/icon46_visits.gif",$module_images."/icons/icon24_visits.gif", + NULL,"in-portal:reports",NULL,NULL,0,"",1,NULL,NULL,NULL,$module_images."/icons/icon46_list_visits.gif"); + ?> Index: trunk/kernel/units/visits/visits_config.php =================================================================== diff -u -N -r2385 -r2388 --- trunk/kernel/units/visits/visits_config.php (.../visits_config.php) (revision 2385) +++ trunk/kernel/units/visits/visits_config.php (.../visits_config.php) (revision 2388) @@ -5,7 +5,7 @@ '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'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'), + 'TagProcessorClass' => Array('class'=>'VisitsTagProcessor','file'=>'visits_tag_processor.php','build_event'=>'OnBuild'), 'AutoLoad' => true, 'QueryString' => Array( @@ -17,20 +17,33 @@ '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)', + 'AffiliateUser' => 'IF( LENGTH(au.Login),au.Login,\'!la_None!\')', + 'AffiliatePortalUserId' => 'af.PortalUserId' ), ), 'ListSQLs' => Array( ''=>' SELECT %1$s.* %2$s FROM %1$s - LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId'), + 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 + '), 'ItemSQLs' => Array( ''=>' SELECT %1$s.* %2$s FROM %1$s - LEFT JOIN '.TABLE_PREFIX.'PortalUser u ON %1$s.PortalUserId = u.PortalUserId'), + 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 + '), 'ListSortings' => Array( '' => Array( @@ -43,16 +56,29 @@ 'VisitDate' => Array('type' => 'int', 'formatter'=>'kDateFormatter', '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','not_null' => '1','default' => '0'), + '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), 'OrderId' => Array('type' => 'int','not_null' => '1','default' => '0'), ), 'VirtualFields' => Array( - 'Username' => Array('type'=>'string'), + 'UserName' => Array('type'=>'string'), + 'AffiliateUser' => Array('type'=>'string'), + 'AffiliatePortalUserId' => Array('type'=>'int'), ), - 'Grids' => Array(), + '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( + 'VisitId' => Array( 'title'=>'la_col_VisitId', 'data_block' => 'grid_checkbox_td_no_icon'), + 'VisitDate' => Array( 'title'=>'la_col_VisitDate' ), + 'IPAddress' => Array( 'title'=>'la_col_IPAddress' ), + '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'), + ), + ), + ), ); Index: trunk/kernel/units/visits/visits_tag_processor.php =================================================================== diff -u -N --- trunk/kernel/units/visits/visits_tag_processor.php (revision 0) +++ trunk/kernel/units/visits/visits_tag_processor.php (revision 2388) @@ -0,0 +1,25 @@ +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.');'; + } + } + } + +?> \ No newline at end of file Index: trunk/core/units/visits/visits_tag_processor.php =================================================================== diff -u -N --- trunk/core/units/visits/visits_tag_processor.php (revision 0) +++ trunk/core/units/visits/visits_tag_processor.php (revision 2388) @@ -0,0 +1,25 @@ +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.');'; + } + } + } + +?> \ No newline at end of file Index: trunk/core/admin_templates/logs/visits/visits_list.tpl =================================================================== diff -u -N --- trunk/core/admin_templates/logs/visits/visits_list.tpl (revision 0) +++ trunk/core/admin_templates/logs/visits/visits_list.tpl (revision 2388) @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + +
+ + +
+ + + + + " title=""> + + + + + + + + + + + \ No newline at end of file