Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1069846
in-portal
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Jul 20, 9:05 AM
Size
41 KB
Mime Type
text/x-diff
Expires
Tue, Jul 22, 9:05 AM (2 h, 25 m)
Engine
blob
Format
Raw Data
Handle
692736
Attached To
rINP In-Portal
in-portal
View Options
Index: branches/RC/core/units/logs/change_logs/change_logs_config.php
===================================================================
--- branches/RC/core/units/logs/change_logs/change_logs_config.php (revision 11153)
+++ branches/RC/core/units/logs/change_logs/change_logs_config.php (revision 11154)
@@ -1,158 +1,158 @@
<?php
$config = Array (
'Prefix' => 'change-log',
'ItemClass' => Array('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'),
'ListClass' => Array('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'),
'EventHandlerClass' => Array ('class' => 'kDBEventHandler', 'file' => '', 'build_event' => 'OnBuild'),
'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'),
'RegisterClasses' => Array (
Array ('pseudo' => 'kChangesFormatter', 'class' => 'kChangesFormatter', 'file' => 'changes_formatter.php', 'build_event' => '', 'require_classes' => 'kFormatter'),
),
'AutoLoad' => true,
'QueryString' => Array (
1 => 'id',
2 => 'Page',
3 => 'event',
4 => 'mode',
),
'IDField' => 'ChangeLogId',
'StatusField' => Array ('Status'),
'TableName' => TABLE_PREFIX.'ChangeLogs',
'TitlePresets' => Array (
'default' => Array (
'new_status_labels' => Array ('change-log' => '!la_title_AddingChangeLog!'),
'edit_status_labels' => Array ('change-log' => '!la_title_EditingChangeLog!'),
),
'changelog_edit' => Array ('prefixes' => Array('change-log'), 'format' => '#change-log_status# #change-log_titlefield#',),
),
'PermSection' => Array ('main' => 'in-portal:change_logs'),
// don't forget to add corresponding permissions to install script
// INSERT INTO Permissions VALUES (0, 'in-portal:change_logs.view', 11, 1, 1, 0), (0, 'in-portal:change_logs.add', 11, 1, 1, 0), (0, 'in-portal:change_logs.edit', 11, 1, 1, 0), (0, 'in-portal:change_logs.delete', 11, 1, 1, 0);
'Sections' => Array (
'in-portal:change_logs' => Array (
'parent' => 'in-portal:reports',
- 'icon' => 'in-portal:change_logs',
+ 'icon' => 'change_logs',
'label' => 'la_tab_ChangeLog',
'url' => Array('t' => 'logs/change_logs/change_log_list', 'pass' => 'm'),
'permissions' => Array('view', 'edit', 'delete'),
'priority' => 0.2,
'show_mode' => smSUPER_ADMIN,
'type' => stTREE,
),
),
'TitleField' => 'ChangeLogId',
'ListSQLs' => Array (
'' => ' SELECT %1$s.* %2$s
FROM %1$s
LEFT JOIN '.TABLE_PREFIX.'PortalUser AS u ON u.PortalUserId = %1$s.PortalUserId',
),
'ListSortings' => Array (
'' => Array (
'Sorting' => Array ('OccuredOn' => 'desc'),
)
),
'CalculatedFields' => Array (
'' => Array (
'UserLogin' => 'IF(%1$s.PortalUserId = -1, \'root\', u.Login)',
'UserFirstName' => 'u.FirstName',
'UserLastName' => 'u.LastName',
'UserEmail' => 'u.Email',
),
),
'Fields' => Array (
'ChangeLogId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'PortalUserId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'SessionLogId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'Action' => Array (
'type' => 'int', 'formatter' => 'kOptionsFormatter',
'options' => array (clCREATE => 'la_opt_ActionCreate', clUPDATE => 'la_opt_ActionUpdate', clDELETE => 'la_opt_ActionDelete'),
'use_phrases' => 1,
'not_null' => 1, 'default' => 0
),
'OccuredOn' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'time_format' => 'H:i:s', 'not_null' => 1, 'default' => 0),
'Prefix' => Array (
'type' => 'string', 'formatter' => 'kOptionsFormatter',
'options_sql' => 'SELECT DISTINCT %s FROM '.TABLE_PREFIX.'ChangeLogs ORDER BY Phrase',
'option_key_field' => 'Prefix',
'option_title_field' => 'CONCAT(\'la_prefix_\', Prefix) AS Phrase',
'use_phrases' => 1,
'max_len' => 255, 'not_null' => 1, 'default' => ''
),
'ItemId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'Changes' => Array ('type' => 'string', 'formatter' => 'kChangesFormatter', 'not_null' => 1, 'default' => ''),
'MasterPrefix' => Array (
'type' => 'string', 'formatter' => 'kOptionsFormatter',
'options_sql' => 'SELECT DISTINCT %s FROM '.TABLE_PREFIX.'ChangeLogs ORDER BY Phrase',
'option_key_field' => 'MasterPrefix',
'option_title_field' => 'CONCAT(\'la_prefix_\',MasterPrefix) AS Phrase',
'use_phrases' => 1,
'max_len' => 255, 'not_null' => 1, 'default' => ''
),
'MasterId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
),
'Grids' => Array (
'Default' => Array (
'Fields' => Array (
'ChangeLogId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter',),
'PortalUserId' => Array ('title' => 'la_col_PortalUserId', 'filter_block' => 'grid_like_filter',),
'UserLogin' => Array ('title' => 'la_col_Username', 'filter_block' => 'grid_like_filter',),
'UserFirstName' => Array ('title' => 'la_col_FirstName', 'filter_block' => 'grid_like_filter',),
'UserLastName' => Array ('title' => 'la_col_LastName', 'filter_block' => 'grid_like_filter',),
'SessionLogId' => Array ('title' => 'la_col_SessionLogId', 'filter_block' => 'grid_like_filter',),
'Action' => Array ('title' => 'la_col_Action', 'filter_block' => 'grid_options_filter', ),
'OccuredOn' => Array ('title' => 'la_col_OccuredOn', 'filter_block' => 'grid_date_range_filter',),
'MasterPrefix' => Array ('title' => 'la_col_MasterPrefix', 'filter_block' => 'grid_options_filter', ),
'MasterId' => Array ('title' => 'la_col_MasterId', 'filter_block' => 'grid_range_filter',),
'Prefix' => Array ('title' => 'la_col_ItemPrefix', 'filter_block' => 'grid_options_filter', ),
'ItemId' => Array ('title' => 'la_col_ItemId', 'filter_block' => 'grid_range_filter',),
'Changes' => Array ('title' => 'la_col_Changes', 'data_block' => 'grid_changes_td', 'filter_block' => 'grid_like_filter',),
),
),
),
'ConfigMapping' => Array(
'PerPage' => 'Perpage_ChangeLog',
),
);
/* !!! Copy the rest of the file to appropriate files and templates
* !!! DON'T FORGET TO CREAT FIELDS AND GRIDS USING SYSTEM TOOLS SECTION !!!
/*
Don't forget to:
- Add table create statement to install_schema.sql
CREATE TABLE ChangeLogs (
`ChangeLogId` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`Title` VARCHAR( 255 ) NOT NULL ,
`Description` TEXT NULL ,
`Email` VARCHAR( 255 ) NOT NULL ,
`Type` TINYINT NOT NULL ,
`Phone` VARCHAR( 50 ) NOT NULL ,
`Qty` DOUBLE NOT NULL ,
`Status` TINYINT NOT NULL ,
`CreatedOn` INT NOT NULL ,
`Good` TINYINT NOT NULL
)
- Add permissions for admin gorup to install script (see 'Sections' key above)
*/
\ No newline at end of file
Property changes on: branches/RC/core/units/logs/change_logs/change_logs_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: branches/RC/core/units/logs/email_logs/email_logs_config.php
===================================================================
--- branches/RC/core/units/logs/email_logs/email_logs_config.php (revision 11153)
+++ branches/RC/core/units/logs/email_logs/email_logs_config.php (revision 11154)
@@ -1,88 +1,88 @@
<?php
$config = Array (
'Prefix' => 'email-log',
'ItemClass' => Array('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'),
'ListClass' => Array('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'),
'EventHandlerClass' => Array ('class' => 'kDBEventHandler', 'file' => '', 'build_event' => 'OnBuild'),
'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'),
'AutoLoad' => true,
'QueryString' => Array (
1 => 'id',
2 => 'Page',
3 => 'event',
4 => 'mode',
),
'IDField' => 'EmailLogId',
'TableName' => TABLE_PREFIX . 'EmailLog',
'TitlePresets' => Array (
'email_log_list' => Array ('prefixes' => Array('email-log_List'), 'format' => '!la_tab_EmailLog! (#email-log_recordcount#)',),
),
'PermSection' => Array ('main' => 'in-portal:emaillog'),
'Sections' => Array (
'in-portal:email_folder' => Array (
'parent' => 'in-portal:reports',
- 'icon' => 'in-portal:email_log',
+ 'icon' => 'email_log',
'label' => 'la_tab_EmailLog',
'permissions' => Array (),
'priority' => 4,
'type' => stTREE,
),
'in-portal:emaillog' => Array (
'parent' => 'in-portal:email_folder',
- 'icon' => 'in-portal:email_log',
+ 'icon' => 'email_log',
'label' => 'la_tab_EmailLog',
'url' => Array('t' => 'logs/email_logs/email_log_list', 'pass' => 'm'),
'permissions' => Array ('view', 'delete'),
'priority' => 1,
'type' => stTAB,
),
),
'ListSQLs' => Array (
'' => ' SELECT %1$s.* %2$s FROM %1$s',
),
'ListSortings' => Array (
'' => Array (
'Sorting' => Array ('timestamp' => 'desc'),
)
),
'Fields' => Array (
'EmailLogId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'fromuser' => Array ('type' => 'string', 'max_len' => 200, 'default' => NULL),
'addressto' => Array ('type' => 'string', 'max_len' => 255, 'default' => NULL),
'subject' => Array ('type' => 'string', 'max_len' => 255, 'default' => NULL),
'timestamp' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'default' => '#NOW#'),
'event' => Array ('type' => 'string', 'max_len' => 100, 'default' => NULL),
'EventParams' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''),
),
'Grids' => Array (
'Default' => Array (
'Icons' => Array ('default' => 'icon16_custom.gif'),
'Fields' => Array (
'EmailLogId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter',),
'fromuser' => Array ('title' => 'la_prompt_FromUsername', 'filter_block' => 'grid_like_filter', ),
'addressto' => Array ('title' => 'la_prompt_AddressTo', 'filter_block' => 'grid_like_filter', ),
'subject' => Array ('title' => 'la_col_Subject', 'filter_block' => 'grid_like_filter', ),
'event' => Array ('title' => 'la_col_Event', 'filter_block' => 'grid_like_filter', ),
'timestamp' => Array ('title' => 'la_prompt_SentOn', 'filter_block' => 'grid_date_range_filter', ),
// 'EventParams' => Array ('title' => 'la_col_EventParams', 'filter_block' => 'grid_like_filter', ),
),
),
),
'ConfigMapping' => Array(
'PerPage' => 'Perpage_EmailsL',
),
);
\ No newline at end of file
Property changes on: branches/RC/core/units/logs/email_logs/email_logs_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.3
\ No newline at end of property
+1.1.2.4
\ No newline at end of property
Index: branches/RC/core/units/email_queue/email_queue_config.php
===================================================================
--- branches/RC/core/units/email_queue/email_queue_config.php (revision 11153)
+++ branches/RC/core/units/email_queue/email_queue_config.php (revision 11154)
@@ -1,80 +1,80 @@
<?php
$config = Array (
'Prefix' => 'email-queue',
'ItemClass' => Array('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'),
'ListClass' => Array('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'),
'EventHandlerClass' => Array ('class' => 'kDBEventHandler', 'file' => '', 'build_event' => 'OnBuild'),
'TagProcessorClass' => Array ('class' => 'EmailQueueTagProcessor', 'file' => 'email_queue_tp.php', 'build_event' => 'OnBuild'),
'AutoLoad' => true,
'QueryString' => Array (
1 => 'id',
2 => 'Page',
3 => 'event',
4 => 'mode',
),
'IDField' => 'EmailQueueId',
'TableName' => TABLE_PREFIX . 'EmailQueue',
'TitlePresets' => Array (
'email_queue_list' => Array ('prefixes' => Array('email-queue_List'), 'format' => '!la_tab_EmailQueue! (#email-queue_recordcount#)',),
),
'PermSection' => Array ('main' => 'in-portal:email_queue'),
'Sections' => Array (
'in-portal:email_queue' => Array (
'parent' => 'in-portal:email_folder',
- 'icon' => 'in-portal:email_log',
+ 'icon' => 'email_log',
'label' => 'la_tab_EmailQueue',
'url' => Array('t' => 'logs/email_logs/email_queue_list', 'pass' => 'm'),
'permissions' => Array ('view', 'delete'),
'priority' => 2,
'type' => stTAB,
),
),
'ListSQLs' => Array (
'' => ' SELECT %1$s.* %2$s FROM %1$s',
),
'ListSortings' => Array (
'' => Array (
'Sorting' => Array ('Queued' => 'desc'),
)
),
'Fields' => Array (
'EmailQueueId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'ToEmail' => Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'default' => ''),
'Subject' => Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'default' => ''),
'MessageHeaders' => Array ('type' => 'string', 'default' => NULL),
'MessageBody' => Array ('type' => 'string', 'default' => NULL),
'Queued' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'not_null' => 1, 'default' => 0),
'SendRetries' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'LastSendRetry' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'not_null' => 1, 'default' => 0),
),
'Grids' => Array (
'Default' => Array (
'Icons' => Array ('default' => 'icon16_custom.gif'),
'Fields' => Array (
'EmailQueueId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter',),
'ToEmail' => Array ('title' => 'la_prompt_AddressTo', 'filter_block' => 'grid_like_filter', ),
'Subject' => Array ('title' => 'la_col_Subject', 'filter_block' => 'grid_like_filter', ),
'MessageHeaders' => Array ('title' => 'la_col_MessageHeaders', 'data_block' => 'grid_headers_td', 'filter_block' => 'grid_like_filter', ),
'Queued' => Array ('title' => 'la_col_Queued', 'filter_block' => 'grid_date_range_filter', ),
'SendRetries' => Array ('title' => 'la_col_SendRetries', 'filter_block' => 'grid_range_filter', ),
'LastSendRetry' => Array ('title' => 'la_col_LastSendRetry', 'filter_block' => 'grid_date_range_filter', ),
),
),
),
'ConfigMapping' => Array(
'PerPage' => 'Perpage_EmailsL',
),
);
\ No newline at end of file
Property changes on: branches/RC/core/units/email_queue/email_queue_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.2
\ No newline at end of property
+1.1.2.3
\ No newline at end of property
Index: branches/RC/core/units/ban_rules/ban_rules_config.php
===================================================================
--- branches/RC/core/units/ban_rules/ban_rules_config.php (revision 11153)
+++ branches/RC/core/units/ban_rules/ban_rules_config.php (revision 11154)
@@ -1,107 +1,107 @@
<?php
$config = Array (
'Prefix' => 'ban-rule',
'ItemClass' => Array ('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'),
'ListClass' => Array ('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'),
'EventHandlerClass' => Array ('class' => 'kDBEventHandler', 'file' => '', 'build_event' => 'OnBuild'),
'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'),
'AutoLoad' => true,
'QueryString' => Array (
1 => 'id',
2 => 'Page',
3 => 'event',
4 => 'mode',
),
'IDField' => 'RuleId',
'TableName' => TABLE_PREFIX.'BanRules',
'TitleField' => 'ItemValue',
'TitlePresets' => Array (
'default' => Array (
'new_status_labels' => Array ('ban-rule' => '!la_title_AddingBanRule!'),
'edit_status_labels' => Array ('ban-rule' => '!la_title_EditingBanRule!'),
),
'ban_rule_list' => Array ('prefixes' => Array ('ban-rule_List'), 'format' => "!la_tab_BanList! (#ban-rule_recordcount#)"),
'ban_rule_edit' => Array ('prefixes' => Array ('ban-rule'), 'format' => "#ban-rule_status# '#ban-rule_titlefield#'"),
),
'PermSection' => Array('main' => 'in-portal:user_banlist'),
'Sections' => Array (
'in-portal:user_banlist' => Array (
'parent' => 'in-portal:users',
- 'icon' => 'in-portal:banlist',
+ 'icon' => 'banlist',
'label' => 'la_tab_BanList',
'url' => Array('t' => 'ban_rules/ban_rule_list', 'pass' => 'm'),
'permissions' => Array ('view', 'add', 'edit', 'delete'),
'priority' => 7,
'type' => stTREE,
),
),
'ListSQLs' => Array (
'' => ' SELECT %1$s.* %2$s FROM %1$s',
),
'ListSortings' => Array (
'' => Array (
'Sorting' => Array ('Priority' => 'desc'),
)
),
'Fields' => Array (
'RuleId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'RuleType' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0, 'use_phrases' => 1, 'formatter'=>'kOptionsFormatter', 'options'=>Array(
0 => 'la_opt_Deny',
// 1 => 'la_opt_Allow'
)
),
'ItemField' => Array ('type' => 'string', 'max_len' => 255, 'default' => NULL, 'use_phrases' => 1, 'formatter'=>'kOptionsFormatter', 'options'=>Array(
'ip' => 'la_opt_IP_Address',
'Login' => 'la_opt_Username',
'Email' => 'la_opt_Email',
'FirstName' => 'la_opt_FirstName',
'LastName' => 'la_opt_LastName',
'Address' => 'la_opt_Address',
'City' => 'la_opt_City',
'State' => 'la_opt_State',
'Zip' => 'la_opt_Zip',
'Phone' => 'la_opt_Phone',
)
),
'ItemVerb' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0, 'use_phrases' => 1, 'formatter'=>'kOptionsFormatter', 'options'=>Array(
1 => 'la_opt_Exact',
3 => 'la_opt_Sub-match'
)
),
'ItemValue' => Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'required'=>1, 'default' => ''),
'ItemType' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'Priority' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0),
'Status' => Array ('type' => 'int', 'not_null' => 1, 'default' => 1, 'use_phrases' => 1, 'formatter'=>'kOptionsFormatter', 'options'=>Array(
1 => 'la_Enabled',
0 => 'la_Disabled'
)
),
'ErrorTag' => Array ('type' => 'string', 'max_len' => 255, 'default' => NULL),
),
'Grids' => Array (
'Default' => Array (
'Icons' => Array ('default' => 'icon16_custom.gif'),
'Fields' => Array (
'RuleId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', ),
'RuleType' => Array ('title' => 'la_col_RuleType', 'filter_block' => 'grid_options_filter', ),
'ItemField' => Array ('title' => 'la_col_ItemField', 'filter_block' => 'grid_options_filter', ),
'ItemVerb' => Array ('title' => 'la_col_FieldComparision', 'filter_block' => 'grid_options_filter', ),
'ItemValue' => Array ('title' => 'la_col_FieldValue', 'filter_block' => 'grid_like_filter', ),
'Status' => Array ('title' => 'la_col_Status', 'filter_block' => 'grid_options_filter', ),
),
),
),
);
\ No newline at end of file
Property changes on: branches/RC/core/units/ban_rules/ban_rules_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.4
\ No newline at end of property
+1.1.2.5
\ No newline at end of property
Index: branches/RC/core/units/general/helpers/sections_helper.php
===================================================================
--- branches/RC/core/units/general/helpers/sections_helper.php (revision 11153)
+++ branches/RC/core/units/general/helpers/sections_helper.php (revision 11154)
@@ -1,261 +1,269 @@
<?php
/**
* Porcesses sections information from configs
*
*/
class kSectionsHelper extends kHelper {
/**
* Holds information about all sections
*
* @var Array
*/
var $Tree = Array();
/**
* Set's prefix and special
*
* @param string $prefix
* @param string $special
* @access public
*/
function Init($prefix, $special, $event_params = null)
{
parent::Init($prefix, $special, $event_params);
$this->BuildTree();
}
/**
* Builds xml for tree in left frame in admin
*
* @param Array $params
*/
function BuildTree()
{
if (!isset($this->Application->Memcached) || !($data = $this->Application->Memcached->get('master:sections_parsed'))) {
$data = $this->Conn->GetOne('SELECT Data FROM '.TABLE_PREFIX.'Cache WHERE VarName = "sections_parsed"');
}
if ($data) {
$this->Tree = unserialize($data);
return ;
}
$this->Application->UnitConfigReader->ReReadConfigs();
$this->Tree = Array();
// 1. build base tree (don't update parent with children list yet)
// 1.1. process prefixes without priority
$prioritized_prefixes = Array ();
$prefixes = array_keys($this->Application->UnitConfigReader->configData);
foreach ($prefixes as $prefix) {
$config =& $this->Application->UnitConfigReader->configData[$prefix];
if (array_key_exists('ConfigPriority', $config)) {
$prioritized_prefixes[$prefix] = $config['ConfigPriority'];
continue;
}
$this->_processPrefixSections($prefix);
}
// 2. process prefixes with priority
asort($prioritized_prefixes);
foreach ($prioritized_prefixes as $prefix => $priority) {
$this->_processPrefixSections($prefix);
}
// 2. apply section ajustments
foreach ($prefixes as $prefix) {
$config =& $this->Application->UnitConfigReader->configData[$prefix];
$section_ajustments = getArrayValue($config, 'SectionAdjustments');
if (!$section_ajustments) continue;
foreach ($section_ajustments as $section_name => $ajustment_params) {
if (is_array($ajustment_params)) {
if (!array_key_exists($section_name, $this->Tree)) {
// don't process ajustments for non-existing sections
continue;
}
$this->Tree[$section_name] = array_merge_recursive2($this->Tree[$section_name], $ajustment_params);
}
else {
// then remove section
unset($this->Tree[$section_name]);
}
}
}
// 3.
foreach ($this->Tree as $section_name => $section_params) {
// 3.1. update parent -> children references
$this->Tree[ $section_params['parent'] ]['children'][ "{$section_params['priority']}" ] = $section_name;
if ($section_params['type'] == stTAB) {
// if this is tab, then mark parent section as TabOnly
$this->Tree[ $section_params['parent'] ]['tabs_only'] = true;
}
// 3.2. process icons here, because they also can be ajusted
if (isset($section_params['icon']) && preg_match('/([^:]+):(.*)/', $section_params['icon'], $regs)) {
$this->Tree[$section_name]['icon'] = $regs[2];
$this->Tree[$section_name]['icon_module'] = $regs[1]; // set "icon_module" used in "combined_header" block
$module_folder = trim( $this->Application->findModule('Name', $regs[1], 'Path'), '/');
if ($module_folder == '') {
$module_folder = 'core';
}
}
else {
$module_folder = $this->Application->getUnitOption($section_params['SectionPrefix'], 'ModuleFolder');
if (!array_key_exists('icon_module', $section_params)) {
$this->Tree[$section_name]['icon_module'] = $module_folder; // set "icon_module" used in "combined_header" block
}
}
// this is to display HELP icon instead of missing one.. can be replaced with some other icon to draw attention
$icon_file = $module_folder.'/admin_templates/img/icons/icon24_'.$this->Tree[$section_name]['icon'];
+
+ /*$core_file = FULL_PATH.'/core/admin_templates/img/icons/icon24_' . $this->Tree[$section_name]['icon'].'.gif';
+ if ($module_folder != 'core' && file_exists($core_file) && file_exists(FULL_PATH.'/'.$icon_file.'.gif')) {
+ if (crc32(file_get_contents($core_file)) == crc32(file_get_contents(FULL_PATH.'/'.$icon_file.'.gif'))) {
+ trigger_error('Section "<strong>' . $section_name . '</strong>" uses icon copy from "Core" module', E_USER_NOTICE);
+ }
+ }*/
+
if (!file_exists(FULL_PATH.'/'.$icon_file.'.gif')) {
$this->Tree[$section_name]['icon'] = 'help';
$this->Tree[$section_name]['icon_module'] = 'core';
}
}
$this->Application->HandleEvent( new kEvent('adm:OnAfterBuildTree') );
if (isset($this->Application->Memcached)) {
$this->Application->Memcached->set('master:sections_parsed',serialize($this->Tree), 0, 0);
return;
}
$this->Conn->Query('REPLACE '.TABLE_PREFIX.'Cache (VarName, Data, Cached) VALUES ("sections_parsed", '.$this->Conn->qstr(serialize($this->Tree)).', '.adodb_mktime().')');
}
function _processPrefixSections($prefix)
{
$config =& $this->Application->UnitConfigReader->configData[$prefix];
$sections = getArrayValue($config, 'Sections');
if (!$sections) {
return ;
}
// echo 'Prefix: ['.$prefix.'] has ['.count($sections).'] sections<br />';
foreach ($sections as $section_name => $section_params) {
// we could also skip not allowed sections here in future
if ( isset($section_params['SectionPrefix']) ) {
$section_prefix = $section_params['SectionPrefix'];
}
elseif ( $this->Application->getUnitOption($prefix, 'SectionPrefix') ) {
$section_prefix = $this->Application->getUnitOption($prefix, 'SectionPrefix');
}
else {
$section_prefix = $prefix;
}
$section_params['SectionPrefix'] = $section_prefix;
$section_params['url']['m_opener'] = 'r';
$section_params['url']['no_pass_through'] = 1;
$pass_section = getArrayValue($section_params, 'url', 'pass_section');
if ($pass_section) {
unset($section_params['url']['pass_section']);
$section_params['url']['section'] = $section_name;
if (!isset($section_params['url']['module'])) {
$module_name = $this->Application->findModule('Path', $config['ModuleFolder'].'/', 'Name');
$section_params['url']['module'] = $module_name;
}
}
if (!isset($section_params['url']['t'])) {
$section_params['url']['t'] = 'index';
}
if (!isset($section_params['onclick'])) {
$section_params['onclick'] = 'checkEditMode()';
}
if (!isset($section_params['container'])) {
$section_params['container'] = 0; // for js tree printing to xml
}
$current_data = isset($this->Tree[$section_name]) ? $this->Tree[$section_name] : Array();
if ($current_data) {
trigger_error('Section "<strong>' . $section_name . '</strong>" declaration (originally defined in "<strong>' . $current_data['SectionPrefix'] . '</strong>") was overwriten from "<strong>' . $prefix . '</strong>"', E_USER_NOTICE);
}
$this->Tree[$section_name] = array_merge_recursive2($current_data, $section_params);
}
}
/**
* Returns details information about section
*
* @param string $section_name
* @return Array
*/
function &getSectionData($section_name)
{
if (isset($this->Tree[$section_name])) {
$ret =& $this->Tree[$section_name];
}
else {
$ret = Array();
}
return $ret;
}
/**
* Returns first child, that is not a folder
*
* @param string $section_name
* @param Array $tree
* @return stirng
*/
function getFirstChild($section_name, $check_permission = false)
{
$section_data =& $this->getSectionData($section_name);
$children = isset($section_data['children']) && $section_data['children'] ? $section_data['children'] : false;
if ($children) {
// get 1st child
ksort($children, SORT_NUMERIC);
foreach ($children as $child_priority => $child_section) {
$section_data =& $this->getSectionData($child_section);
$perm_section = $this->getPermSection($child_section);
$perm_status = $check_permission ? $this->Application->CheckPermission($perm_section.'.view') : true;
if ((isset($section_data['show_mode']) && $section_data['show_mode']) || !$perm_status) {
continue;
}
break;
}
return $this->getFirstChild($child_section, $check_permission);
}
return $section_name;
}
/**
* Returns section for permission checking based on given section
*
* @param string $section_name
* @return string
*/
function getPermSection($section_name)
{
$ret = $section_name;
$section_data =& $this->getSectionData($section_name);
if ($section_data && isset($section_data['perm_prefix'])) {
// this section uses other section permissions
$ret = $this->Application->getUnitOption($section_data['perm_prefix'].'.main', 'PermSection');
}
return $ret;
}
}
?>
\ No newline at end of file
Property changes on: branches/RC/core/units/general/helpers/sections_helper.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.12.2.8
\ No newline at end of property
+1.12.2.9
\ No newline at end of property
Index: branches/RC/core/admin_templates/tools/system_tools.tpl
===================================================================
--- branches/RC/core/admin_templates/tools/system_tools.tpl (revision 11153)
+++ branches/RC/core/admin_templates/tools/system_tools.tpl (revision 11154)
@@ -1,86 +1,83 @@
-<inp2:m_RequireLogin permissions="in-portal:service.view" system="1"/>
<inp2:m_include t="incs/header"/>
-<inp2:m_RenderElement name="section_header" icon="icon46_modules" title="!la_title_SystemTools!"/>
-
-<inp2:m_RenderElement name="blue_bar" prefix="adm" title_preset="system_tools" module="in-portal" icon="icon46_modules"/>
+<inp2:m_RenderElement name="combined_header" prefix="adm" section="in-portal:service" title_preset="system_tools"/>
<script type="text/javascript">
function show_structure($prefix, $event) {
var $form = document.getElementById($form_name);
openwin('about:blank', 'table_structure', 800, 575);
$form.target = 'table_structure';
submit_event($prefix, $event);
set_hidden_field('events[adm]', '');
}
function check_prefix_config() {
var $form = document.getElementById($form_name);
openwin('about:blank', 'config_check', 800, 575);
$form.target = 'config_check';
submit_event('adm', 'OnCheckPrefixConfig');
set_hidden_field('events[adm]', '');
}
function compile_templates()
{
openwin('<inp2:m_t t="tools/compile_templates" debug_ajax="1"/>', 'compile', 800, 575);
}
</script>
<inp2:m_DefineElement name="service_elem" event_prefix="adm">
<tr class="<inp2:m_odd_even odd="table-color1" even="table-color2"/>">
<inp2:m_inc param="tab_index" by="1"/>
<td class="text" style="width: 300px;">
<inp2:m_param name="title"/>:
</td>
<td valign="top" colspan="2">
<input class="button" type="button" onclick="submit_event('<inp2:m_param name="event_prefix"/>', '<inp2:m_param name="event_name"/>');" value="Go">
</td>
</tr>
</inp2:m_DefineElement>
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="bordered" id="config_table">
<inp2:m_RenderElement name="subsection" title="la_section_General"/>
<inp2:m_RenderElement name="service_elem" title="Reset mod_rewrite Cache" event_name="OnResetModRwCache"/>
<inp2:m_RenderElement name="service_elem" title="Reset SMS Menu Cache" event_name="OnResetCMSMenuCache"/>
<inp2:m_RenderElement name="service_elem" title="Reset Sections Cache" event_name="OnResetSections"/>
<inp2:m_RenderElement name="service_elem" title="Reset Configs Cache" event_name="OnResetConfigsCache"/>
<inp2:m_RenderElement name="service_elem" title="Re-build Themes Files" event_name="OnRebuildThemes"/>
<inp2:m_RenderElement name="service_elem" title="Re-build Multilanguage Fields" event_prefix="lang" event_name="OnReflectMultiLingualFields"/>
<tr class="<inp2:m_odd_even odd="table-color1" even="table-color2"/>">
<inp2:m_inc param="tab_index" by="1"/>
<td class="text" style="width: 300px;">
Compile Templates (with NParser):
</td>
<td valign="top" colspan="2">
<input class="button" type="button" onclick="compile_templates();" value="Go">
</td>
</tr>
<inp2:m_RenderElement name="subsection" title="la_section_Configs"/>
<tr class="<inp2:m_odd_even odd="table-color1" even="table-color2"/>">
<inp2:m_inc param="tab_index" by="1"/>
<td class="text" style="width: 300px;">
Table Structure:
</td>
<td valign="top" colspan="2">
<input type="text" name="table_name" value="" size="30"/>
<input class="button" type="button" onclick="show_structure('adm', 'OnGenerateTableStructure');" value="Go">
<span class="small">table name (prefix optional) OR unit config prefix</span>
</td>
</tr>
<tr class="<inp2:m_odd_even odd="table-color1" even="table-color2"/>">
<inp2:m_inc param="tab_index" by="1"/>
<td class="text" style="width: 300px;">
Prefix:
</td>
<td valign="top" colspan="2">
<input type="text" name="config_prefix" value="" size="30"/>
<input class="button" type="button" onclick="check_prefix_config();" value="Go">
<span class="small">Unit config prefix</span>
</td>
</tr>
</table>
<inp2:m_include t="incs/footer"/>
\ No newline at end of file
Property changes on: branches/RC/core/admin_templates/tools/system_tools.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.9.2.3
\ No newline at end of property
+1.9.2.4
\ No newline at end of property
Index: branches/RC/core/admin_templates/logs/email_logs/email_log_list.tpl
===================================================================
--- branches/RC/core/admin_templates/logs/email_logs/email_log_list.tpl (revision 11153)
+++ branches/RC/core/admin_templates/logs/email_logs/email_log_list.tpl (revision 11154)
@@ -1,66 +1,66 @@
<inp2:m_include t="incs/header" />
<inp2:m_RenderElement name="combined_header" section="in-portal:emaillog" prefix="email-log" title_preset="email_log_list" tabs="logs/email_logs/email_log_tabs" pagination="1"/>
<!-- ToolBar --->
<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td >
<script type="text/javascript">
a_toolbar = new ToolBar();
function edit()
{
}
a_toolbar.AddButton(
new ToolBarButton(
'refresh',
'<inp2:m_phrase label="la_ToolTip_Refresh" escape="1"/>',
function() {
window.location.href = window.location.href;
}
)
);
a_toolbar.AddButton(
new ToolBarButton(
- 'in-portal:reset',
+ 'reset',
'<inp2:m_phrase label="la_ToolTip_DeleteAll" escape="1"/>',
function() {
if (inpConfirm('<inp2:m_Phrase name="la_Delete_Confirm" escape="1"/>')) {
submit_event('email-log', 'OnDeleteAll');
}
}
)
);
a_toolbar.AddButton( new ToolBarSeparator('sep1') );
a_toolbar.AddButton( new ToolBarButton('view', '<inp2:m_phrase label="la_ToolTip_View" escape="1"/>', function(id) {
show_viewmenu(a_toolbar,'view');
}
) );
a_toolbar.Render();
</script>
</td>
<inp2:m_RenderElement name="search_main_toolbar" prefix="email-log" grid="Default"/>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
<inp2:m_ParseBlock name="grid" PrefixSpecial="email-log" IdField="EmailLogId" grid="Default"/>
<inp2:m_include t="incs/footer"/>
Property changes on: branches/RC/core/admin_templates/logs/email_logs/email_log_list.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.1
\ No newline at end of property
+1.1.2.2
\ No newline at end of property
Index: branches/RC/core/admin_templates/logs/email_logs/email_queue_list.tpl
===================================================================
--- branches/RC/core/admin_templates/logs/email_logs/email_queue_list.tpl (revision 11153)
+++ branches/RC/core/admin_templates/logs/email_logs/email_queue_list.tpl (revision 11154)
@@ -1,99 +1,99 @@
<inp2:m_include t="incs/header" />
<inp2:m_RenderElement name="combined_header" section="in-portal:email_queue" prefix="email-queue" title_preset="email_queue_list" tabs="logs/email_logs/email_log_tabs" pagination="1"/>
<!-- ToolBar --->
<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td >
<script type="text/javascript">
a_toolbar = new ToolBar();
function edit()
{
}
a_toolbar.AddButton(
new ToolBarButton(
'refresh',
'<inp2:m_phrase label="la_ToolTip_Refresh" escape="1"/>',
function() {
window.location.href = window.location.href;
}
)
);
a_toolbar.AddButton(
new ToolBarButton(
'delete',
'<inp2:m_phrase label="la_ToolTip_Delete" escape="1"/>',
function() {
std_delete_items('email-queue');
}
)
);
a_toolbar.AddButton(
new ToolBarButton(
- 'in-portal:reset',
+ 'reset',
'<inp2:m_phrase label="la_ToolTip_DeleteAll" escape="1"/>',
function() {
if (inpConfirm('<inp2:m_Phrase name="la_Delete_Confirm" escape="1"/>')) {
submit_event('email-queue', 'OnDeleteAll');
}
}
)
);
a_toolbar.AddButton(
new ToolBarButton(
'e-mail',
'<inp2:m_phrase label="la_ToolTip_ProcessQueue" escape="1"/>',
function() {
open_popup('emailmessages', null, 'emails/send_queue');
}
)
);
a_toolbar.AddButton( new ToolBarSeparator('sep1') );
a_toolbar.AddButton( new ToolBarButton('view', '<inp2:m_phrase label="la_ToolTip_View" escape="1"/>', function(id) {
show_viewmenu(a_toolbar,'view');
}
) );
a_toolbar.Render();
</script>
</td>
<inp2:m_RenderElement name="search_main_toolbar" prefix="email-queue" grid="Default"/>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
<inp2:m_DefineElement name="header_element">
<strong><inp2:m_Param name="key"/></strong>: <inp2:m_Param name="value"/><br />
</inp2:m_DefineElement>
<inp2:m_DefineElement name="grid_headers_td">
<td valign="top" class="text" style="<inp2:m_param name="td_style"/>">
<inp2:PrintSerializedFields field="$field" render_as="header_element"/>
</td>
</inp2:m_DefineElement>
<inp2:m_ParseBlock name="grid" PrefixSpecial="email-queue" IdField="EmailQueueId" grid="Default"/>
<script type="text/javascript">
Grids['email-queue'].SetDependantToolbarButtons( new Array('delete') );
</script>
<inp2:m_include t="incs/footer"/>
Property changes on: branches/RC/core/admin_templates/logs/email_logs/email_queue_list.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.1.2.2
\ No newline at end of property
+1.1.2.3
\ No newline at end of property
Index: branches/RC/core/admin_templates/img/link_arrow.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/RC/core/admin_templates/img/link_arrow.gif
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.2
\ No newline at end of property
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: branches/RC/core/admin_templates/img/ic_pick.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/RC/core/admin_templates/img/ic_pick.gif
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/RC/core/admin_templates/img/ic_new.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/RC/core/admin_templates/img/ic_new.gif
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/RC/core/admin_templates/img/ic_hot.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/RC/core/admin_templates/img/ic_hot.gif
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: branches/RC/core/admin_templates/img/ic_pop.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: branches/RC/core/admin_templates/img/ic_pop.gif
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1.2.1
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Event Timeline
Log In to Comment