Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Sun, Jul 20, 1:46 AM

in-portal

Index: trunk/kernel/units/admin/admin_config.php
===================================================================
--- trunk/kernel/units/admin/admin_config.php (revision 4576)
+++ trunk/kernel/units/admin/admin_config.php (revision 4577)
@@ -1,197 +1,240 @@
<?php
$config = Array(
'Prefix' => 'adm',
'EventHandlerClass' => Array('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'),
'TagProcessorClass' => Array('class' => 'AdminTagProcessor', 'file' => 'admin_tag_processor.php', 'build_event' => 'OnBuild'),
'TitlePresets' => Array(
'tree_root' => Array('format' => '!la_section_overview!'),
'tree_reports' => Array('format' => '!la_section_overview!'),
'tree_system' => Array('format' => '!la_section_overview!'),
'tree_tools' => Array('format' => '!la_section_overview!'),
+
+ 'tree_modules' => Array('format' => '!la_section_overview!'),
),
'Sections' => Array(
'in-portal:root' => Array(
'parent' => null,
'icon' => 'site',
'label' => $this->Application->ConfigValue('Site_Name'),
'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm', 'no_amp' => 1),
'permissions' => Array('view'),
'priority' => 0,
'type' => stTREE,
),
// "Summary & Logs" section
'in-portal:reports' => Array(
'parent' => 'in-portal:root',
'icon' => 'summary_logs',
'label' => 'la_tab_Reports',
'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 4,
'type' => stTREE,
),
'in-portal:log_summary' => Array(
'parent' => 'in-portal:reports',
'icon' => 'summary',
'label' => 'la_tab_Summary',
'url' => Array('index_file' => 'logs/summary.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 1,
'type' => stTREE,
),
'in-portal:searchlog' => Array(
'parent' => 'in-portal:reports',
'icon' => 'search_log',
'label' => 'la_tab_SearchLog',
'url' => Array('index_file' => 'logs/searchlog.php', 'pass' => 'm'),
'permissions' => Array('view', 'delete'),
'priority' => 2,
'type' => stTREE,
),
'in-portal:sessionlog' => Array(
'parent' => 'in-portal:reports',
'icon' => 'sessions_log',
'label' => 'la_tab_SessionLog',
'url' => Array('index_file' => 'logs/session_list.php', 'pass' => 'm'),
'permissions' => Array('view', 'reset'),
'priority' => 3,
'type' => stTREE,
),
'in-portal:emaillog' => Array(
'parent' => 'in-portal:reports',
'icon' => 'email_log',
'label' => 'la_tab_EmailLog',
'url' => Array('index_file' => 'logs/email_log.php', 'pass' => 'm'),
'permissions' => Array('view', 'delete'),
'priority' => 4,
'type' => stTREE,
),
'in-portal:visits' => Array(
'parent' => 'in-portal:reports',
'icon' => 'visits',
'label' => 'la_tab_Visits',
'url' => Array('t' => 'visits/visits_list', 'index_file' => 'index4.php', 'pass' => 'm'),
'permissions' => Array('view', 'delete'),
'priority' => 5,
'type' => stTREE,
),
// "Configuration" section
'in-portal:system' => Array(
'parent' => 'in-portal:root',
'icon' => 'conf',
'label' => 'la_tab_Sys_Config',
'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 5,
'type' => stTREE,
),
'in-portal:configure_general' => Array(
'parent' => 'in-portal:system',
'icon' => 'conf_general',
'label' => 'la_tab_General',
'url' => Array('index_file' => 'config/edit_config.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 1,
'type' => stTREE,
),
+ // "Configuration" -> "Modules and Settings"
+ 'in-portal:modules' => Array(
+ 'parent' => 'in-portal:system',
+ 'icon' => 'modules',
+ 'label' => 'la_tab_ModulesManagement',
+ 'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm'),
+ 'permissions' => Array('view'),
+ 'priority' => 1.1,
+ 'type' => stTREE,
+ ),
+
+ 'in-portal:mod_status' => Array(
+ 'parent' => 'in-portal:modules',
+ 'icon' => 'modules',
+ 'label' => 'la_title_Module_Status',
+ 'url' => Array('t' => 'modules/modules_list', 'index_file' => 'index4.php', 'pass' => 'm'),
+ 'permissions' => Array('view', 'edit'),
+ 'priority' => 1,
+ 'type' => stTREE,
+ ),
+
+ 'in-portal:addmodule' => Array(
+ 'parent' => 'in-portal:modules',
+ 'icon' => 'modules',
+ 'label' => 'la_title_Add_Module',
+ 'url' => Array('index_file' => 'modules/addmodule.php', 'pass' => 'm'),
+ 'permissions' => Array('view', 'edit'),
+ 'priority' => 2,
+ 'type' => stTREE,
+ ),
+
+ 'in-portal:tag_library' => Array(
+ 'parent' => 'in-portal:modules',
+ 'icon' => 'modules',
+ 'label' => 'la_tab_TagLibrary',
+ 'url' => Array('index_file' => 'tag_listing.php', 'pass' => 'm'),
+ 'permissions' => Array('view'),
+ 'priority' => 3,
+ 'type' => stTREE,
+ ),
+
// "Tools" section
'in-portal:tools' => Array(
'parent' => 'in-portal:root',
'icon' => 'tools',
'label' => 'la_tab_Tools',
'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 6,
'type' => stTREE,
),
'in-portal:backup' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_backup',
'label' => 'la_tab_Backup',
'url' => Array('index_file' => 'backup/backup1.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 1,
'type' => stTREE,
),
'in-portal:restore' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_restore',
'label' => 'la_tab_Restore',
'url' => Array('index_file' => 'backup/restore1.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 2,
'type' => stTREE,
),
'in-portal:export' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_export',
'label' => 'la_tab_ExportData',
'url' => Array('index_file' => 'backup/export1.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 3,
'type' => stTREE,
),
'in-portal:main_import' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_import',
'label' => 'la_tab_ImportData',
'url' => Array('index_file' => 'import/step1.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 4,
'type' => stTREE,
),
'in-portal:sql_query' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_import',
'label' => 'la_tab_QueryDB',
'url' => Array('index_file' => 'tools/sql_query.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 5,
'type' => stTREE,
),
'in-portal:server_info' => Array(
'parent' => 'in-portal:tools',
'icon' => 'server_info',
'label' => 'la_tab_ServerInfo',
'url' => Array('index_file' => 'tools/server_info.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 6,
'type' => stTREE,
),
// "Help" section
'in-portal:help' => Array(
'parent' => 'in-portal:root',
'icon' => 'help',
'label' => 'la_tab_Help',
'url' => Array('index_file' => 'help/manual.pdf', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 7,
'type' => stTREE,
),
),
);
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/admin/admin_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.2
\ No newline at end of property
+1.3
\ No newline at end of property
Index: trunk/kernel/units/modules/modules_config.php
===================================================================
--- trunk/kernel/units/modules/modules_config.php (revision 4576)
+++ trunk/kernel/units/modules/modules_config.php (revision 4577)
@@ -1,41 +1,67 @@
<?php
$config = Array(
'Prefix' => 'mod',
'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
'EventHandlerClass' => Array('class'=>'ModulesEventHandler','file'=>'modules_event_handler.php','build_event'=>'OnBuild'),
'TagProcessorClass' => Array('class'=>'ModulesTagProcessor','file'=>'modules_tag_processor.php','build_event'=>'OnBuild'),
'AutoLoad' => true,
'hooks' => Array(),
'QueryString' => Array(
1 => 'id',
2 => 'page',
3 => 'event',
+ 4 => 'mode',
),
+
'IDField' => 'Name',
'TitleField' => 'Name', // field, used in bluebar when editing existing item
+ 'StatusField' => Array('Loaded'),
+
+ 'TitlePresets' => Array(
+
+ 'modules_list' => Array( 'prefixes' => Array('mod_List'), 'format' => "!la_title_Configuration! - !la_title_Module_Status! (#mod_recordcount#)"),
+
+ ),
+
'TableName' => TABLE_PREFIX.'Modules',
'ListSQLs' => Array( ''=>'SELECT * FROM %s',
), // key - special, value - list select sql
'ItemSQLs' => Array( ''=>'SELECT * FROM %s',
),
- 'ListSortings' => Array(),
+ 'ListSortings' => Array(
+ '' => Array(
+ 'Sorting' => Array('LoadOrder' => 'asc'),
+ )
+ ),
+
'Fields' => Array(
- 'Name' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'Path' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'Var' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'Version' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'Loaded' => Array('type' => 'int','not_null' => '1','default' => '1'),
- 'LoadOrder' => Array('type' => 'int','not_null' => '1','default' => '0'),
- 'TemplatePath' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'RootCat' => Array('type' => 'int','not_null' => '1','default' => '0'),
- 'BuildDate' => Array('type' => 'double','not_null' => '1','default' => '0'),
+ 'Name' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'Path' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'Var' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'Version' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'Loaded' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(1 => 'la_Enabled', 0 => 'la_Disabled'), 'use_phrases' => 1, 'not_null' => '1','default' => '1'),
+ 'LoadOrder' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'TemplatePath' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'RootCat' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'BuildDate' => Array('type' => 'double', 'formatter' => 'kDateFormatter', 'not_null' => '1','default' => ''),
),
+
'VirtualFields' => Array(),
- 'Grids' => Array(),
+ 'Grids' => Array(
+ 'Default' => Array(
+ 'Icons' => Array('default' => 'icon16_custom.gif'),
+ 'Fields' => Array(
+ 'Name' => Array('title' => 'la_col_Name', 'data_block' => 'grid_checkbox_td_no_icon'),
+ 'Loaded' => Array('title' => 'la_col_Status'),
+ 'Version' => Array('title' => 'la_col_Version'),
+ ),
+
+ ),
+ ),
);
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/modules/modules_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.3
\ No newline at end of property
+1.4
\ No newline at end of property
Index: trunk/kernel/units/modules/modules_event_handler.php
===================================================================
--- trunk/kernel/units/modules/modules_event_handler.php (revision 4576)
+++ trunk/kernel/units/modules/modules_event_handler.php (revision 4577)
@@ -1,25 +1,75 @@
<?php
class ModulesEventHandler extends InpDBEventHandler {
/**
* Builds item
*
* @param kEvent $event
* @access protected
*/
function OnItemBuild(&$event)
{
$this->Application->SetVar($event->getPrefixSpecial(true).'_id', $event->Special);
parent::OnItemBuild($event);
}
+ /**
+ * List with one record if special passed
+ *
+ * @param kEvent $event
+ */
function SetCustomQuery(&$event)
{
- $object =& $event->getObject();
- $object->addFilter('current_module', 'Name = '.$event->Special);
+ if ($event->Special) {
+ $object =& $event->getObject();
+ $object->addFilter('current_module', 'Name = '.$event->Special);
+ }
+ }
+
+ function mapEvents()
+ {
+ parent::mapEvents();
+ unset($this->eventMethods['OnMassDecline']);
+ }
+
+ /**
+ * Disabled modules, but not In-Portal
+ *
+ * @param kEvent $event
+ */
+ function OnMassDecline(&$event)
+ {
+ if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
+ return;
+ }
+
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $ids = $this->StoreSelectedIDs($event);
+
+
+ if (!$ids) return true;
+
+ $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') );
+
+ foreach($ids as $id)
+ {
+ $object->Load($id);
+ if ($object->GetID() == 'In-Portal') continue;
+ $object->SetDBField($status_field, 0);
+
+ if ($object->Update()) {
+ $event->status = erSUCCESS;
+ $event->redirect_params = Array('opener' => 's', 'pass_events' => true); //stay!
+ }
+ else {
+ $event->status = erFAIL;
+ $event->redirect = false;
+ break;
+ }
+ }
}
}
?>
\ No newline at end of file
Property changes on: trunk/kernel/units/modules/modules_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.4
\ No newline at end of property
+1.5
\ No newline at end of property
Index: trunk/kernel/admin_templates/incs/grid_blocks.tpl
===================================================================
--- trunk/kernel/admin_templates/incs/grid_blocks.tpl (revision 4576)
+++ trunk/kernel/admin_templates/incs/grid_blocks.tpl (revision 4577)
@@ -1,357 +1,357 @@
<inp2:m_block name="current_page"/>
<span class="current_page"><inp2:m_param name="page"/></span>
<inp2:m_blockend/>
<inp2:m_block name="page"/>
<a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>)" class="nav_url"><inp2:m_param name="page"/></a>
<inp2:m_blockend/>
<inp2:m_block name="next_page"/>
<a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>)" class="nav_url">&gt;</a>
<inp2:m_blockend/>
<inp2:m_block name="prev_page"/>
<a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>)" class="nav_url">&lt;</a>
<inp2:m_blockend/>
<inp2:m_block name="next_page_split"/>
<a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>)" class="nav_url">&gt;&gt;</a>
<inp2:m_blockend/>
<inp2:m_block name="prev_page_split"/>
<a href="javascript:go_to_page('<inp2:m_param name="PrefixSpecial"/>', <inp2:m_param name="page"/>)" class="nav_url">&lt;&lt;</a>
<inp2:m_blockend/>
<inp2:m_block name="grid_pagination" SearchPrefixSpecial=""/>
<table cellspacing="0" cellpadding="2" width="100%" bgcolor="#E0E0DA" border="0" class="<inp2:m_if prefix="m" function="ParamEquals" name="no_toolbar" value="no_toolbar"/>tableborder_full_kernel<inp2:m_else/>pagination_bar<inp2:m_endif/>">
<tbody>
<tr id="MY_ID">
<td width="100%">
<img height="15" src="img/arrow.gif" width="15" align="absmiddle" border="0">
<b class=text><inp2:m_phrase name="la_Page"/></b>
<inp2:$PrefixSpecial_PrintPages active_block="current_page" split="10" inactive_block="page" prev_page_block="prev_page" next_page_block="next_page" prev_page_split_block="prev_page_split" next_page_split_block="next_page_split" main_special="$main_special"/>
</td>
<inp2:m_if check="m_ParamEquals" param="search" value="on">
<inp2:m_if check="m_ParamEquals" name="SearchPrefixSpecial" value="">
<inp2:m_RenderElement name="grid_search" grid="$grid" PrefixSpecial="$PrefixSpecial"/>
<inp2:m_else />
<inp2:m_RenderElement name="grid_search" grid="$grid" PrefixSpecial="$SearchPrefixSpecial"/>
</inp2:m_if>
</inp2:m_if>
<td>
</tr>
</tbody>
</table>
<inp2:m_blockend/>
<inp2:m_DefineElement name="grid_search">
<td align="right" style="padding-right: 0px;">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td><inp2:m_phrase name="la_Search"/>:&nbsp;</td>
<td><input type="text"
id="<inp2:m_param name="PrefixSpecial"/>_search_keyword"
name="<inp2:m_param name="PrefixSpecial"/>_search_keyword"
value="<inp2:m_recall var="{$PrefixSpecial}_search_keyword" no_null="no_null" special="1"/>"
PrefixSpecial="<inp2:m_param name="PrefixSpecial"/>"
Grid="<inp2:m_param name="grid"/>"
style="border: 1px solid grey;">
</td>
<td>
<script type="text/javascript">
document.getElementById('<inp2:m_param name="PrefixSpecial"/>_search_keyword').onkeydown = search_keydown;
Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'] = new ToolBar('icon16_');
Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'].AddButton( new ToolBarButton('search', '<inp2:m_phrase name="la_ToolTip_Search"/>', function() { search('<inp2:m_param name="PrefixSpecial"/>','<inp2:m_param name="grid"/>') } ) );
Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'].AddButton( new ToolBarButton('search_reset', '<inp2:m_phrase name="la_ToolTip_SearchReset"/>', function() { search_reset('<inp2:m_param name="PrefixSpecial"/>','<inp2:m_param name="grid"/>') } ) );
Toolbars['<inp2:m_param name="PrefixSpecial"/>_search'].Render();
</script>
</td>
</tr>
</table>
</td>
</inp2:m_DefineElement>
<inp2:m_block name="grid_column_title"/>
<td nowrap="nowrap">
<a href="javascript:resort_grid('<inp2:m_param name="PrefixSpecial"/>','<inp2:m_param name="sort_field"/>');" class="columntitle_small"><IMG alt="" src="img/list_arrow_<inp2:$PrefixSpecial_order field="$sort_field"/>.gif" border="0" align="absmiddle"><inp2:m_phrase name="$title"/><!-- <inp2:m_param name="title"/> --></a>
</td>
<inp2:m_blockend/>
<inp2:m_block name="grid_column_title_no_sorting"/>
<td nowrap="nowrap">
<inp2:m_phrase label="$title"/>
</td>
<inp2:m_blockend/>
<inp2:m_block name="grid_checkbox_td" format="" />
<td valign="top" class="text">
<table border="0" cellpadding="0" cellspacing="0" class="grid_id_cell">
<tr>
<td><input type="checkbox" name="<inp2:$PrefixSpecial_InputName field="$IdField" IdField="$IdField"/>" id="<inp2:$PrefixSpecial_InputName field="$IdField" IdField="$IdField"/>"></td>
<td><img src="<inp2:ModulePath />img/itemicons/<inp2:$PrefixSpecial_ItemIcon grid="$grid"/>"></td>
<td><inp2:$PrefixSpecial_field field="$field" no_special="no_special" format="$format"/></td>
</tr>
</table>
</td>
<inp2:m_blockend />
<inp2:m_block name="grid_checkbox_td_no_icon" format="" />
<td valign="top" class="text">
<table border="0" cellpadding="0" cellspacing="0" class="grid_id_cell">
<tr>
<td><input type="checkbox" name="<inp2:$PrefixSpecial_InputName field="$IdField" IdField="$IdField"/>" id="<inp2:$PrefixSpecial_InputName field="$IdField" IdField="$IdField"/>"></td>
<td><inp2:$PrefixSpecial_field field="$field" no_special="no_special" format="$format"/></td>
</tr>
</table>
</td>
<inp2:m_blockend />
<inp2:m_block name="label_grid_checkbox_td" format="" />
<td valign="top" class="text">
<table border="0" cellpadding="0" cellspacing="0" class="grid_id_cell">
<tr>
<td><input type="checkbox" name="<inp2:$PrefixSpecial_InputName field="$IdField" IdField="$IdField"/>" id="<inp2:$PrefixSpecial_InputName field="$IdField" IdField="$IdField"/>"></td>
<td><img src="<inp2:ModulePath />img/itemicons/<inp2:$PrefixSpecial_ItemIcon grid="$grid"/>"></td>
<td><inp2:$PrefixSpecial_field field="$field" no_special="no_special" as_label="as_label" format="$format"/></td>
</tr>
</table>
</td>
<inp2:m_blockend />
<inp2:m_block name="grid_icon_td" format="" />
<td valign="top" class="text">
<table border="0" cellpadding="0" cellspacing="0" class="grid_id_cell">
<tr>
<td><img src="<inp2:ModulePath />img/itemicons/<inp2:$PrefixSpecial_ItemIcon grid="$grid"/>"></td>
<td><inp2:$PrefixSpecial_field field="$field" no_special="no_special" format="$format"/></td>
</tr>
</table>
</td>
<inp2:m_blockend />
<inp2:m_block name="grid_radio_td" format="" />
<td valign="top" class="text">
<table border="0" cellpadding="0" cellspacing="0" class="grid_id_cell">
<tr>
<td><input type="radio" name="<inp2:$PrefixSpecial_InputName field="$IdField" IdField="$IdField"/>" id="<inp2:$PrefixSpecial_InputName field="$IdField" IdField="$IdField"/>"></td>
<td><img src="<inp2:ModulePath />img/itemicons/<inp2:$PrefixSpecial_ItemIcon grid="$grid"/>"></td>
<td><inp2:$PrefixSpecial_field field="$field" no_special="no_special" format="$format"/></td>
</tr>
</table>
</td>
<inp2:m_blockend />
<inp2:m_block name="grid_data_td" format="" no_special="" />
<td valign="top" class="text"><inp2:$PrefixSpecial_field field="$field" grid="$grid" no_special="$no_special" format="$format"/></td>
<inp2:m_blockend />
<inp2:m_block name="grid_edit_td" format="" />
<td valign="top" class="text"><input type="text" id="<inp2:$PrefixSpecial_InputName field="$field"/>" name="<inp2:$PrefixSpecial_InputName field="$field"/>" value="<inp2:$PrefixSpecial_field field="$field" grid="$grid" format="$format"/>"></td>
<inp2:m_blockend />
<inp2:m_block name="grid_data_label_td" />
<td valign="top" class="text"><inp2:$PrefixSpecial_field field="$field" grid="$grid" as_label="1" no_special="no_special" format="$format"/></td>
<inp2:m_blockend />
<inp2:m_block name="grid_data_label_ml_td" format="" />
<td valign="top" class="text">
<inp2:$PrefixSpecial_field field="$field" grid="$grid" as_label="1" no_special="no_special" format="$format"/>:<br />
<inp2:m_if check="FieldEquals" field="$ElementTypeField" value="textarea">
<a href="javascript:PreSaveAndOpenTranslatorCV('<inp2:m_param name="SourcePrefix"/>,<inp2:m_param name="SourcePrefix"/>-cdata', '<inp2:m_param name="SourcePrefix"/>-cdata:cust_<inp2:Field name="CustomFieldId"/>', 'popups/translator', <inp2:$SourcePrefix_Field field="ResourceId"/>, 1);" title="<inp2:m_Phrase label="la_Translate"/>"><img src="img/icons/icon24_translate.gif" style="cursor:hand;" border="0"></a>
<inp2:m_else/>
<a href="javascript:PreSaveAndOpenTranslatorCV('<inp2:m_param name="SourcePrefix"/>,<inp2:m_param name="SourcePrefix"/>-cdata', '<inp2:m_param name="SourcePrefix"/>-cdata:cust_<inp2:Field name="CustomFieldId"/>', 'popups/translator', <inp2:$SourcePrefix_Field field="ResourceId"/>);" title="<inp2:m_Phrase label="la_Translate"/>"><img src="img/icons/icon24_translate.gif" style="cursor:hand;" border="0"></a>
</inp2:m_if>
</td>
<inp2:m_blockend />
<inp2:m_DefineElement name="grid_column_filter">
<td>&nbsp;</td>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="grid_options_filter">
<td>
<select name="<inp2:SearchInputName field="$field"/>">
<inp2:PredefinedSearchOptions field="$field" block="inp_option_item" selected="selected" has_empty="1" empty_value=""/>
</select>
</td>
</inp2:m_DefineElement>
<inp2:m_block name="viewmenu_sort_block"/>
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_sorting_menu'].addMenuItem('<inp2:m_phrase name="$title"/>','direct_sort_grid("<inp2:m_param name="PrefixSpecial"/>","<inp2:m_param name="sort_field"/>","<inp2:$PrefixSpecial_OrderInfo type="direction" pos="1"/>");','<inp2:m_if prefix="$PrefixSpecial" function="IsOrder" field="$sort_field" pos="1"/>2<inp2:m_endif/>');
<inp2:m_blockend/>
<inp2:m_block name="viewmenu_filter_block"/>
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'].addMenuItem('<inp2:m_param name="label"/>','<inp2:m_param name="filter_action"/>','<inp2:m_param name="filter_status"/>');
<inp2:m_blockend/>
<inp2:m_block name="viewmenu_filter_separator"/>
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'].addMenuSeparator();
<inp2:m_blockend/>
<inp2:m_block name="viewmenu_declaration"/>
// define ViewMenu
$fw_menus['<inp2:m_param name="PrefixSpecial"/>'+'_view_menu'] = function()
{
<inp2:m_if prefix="m" function="ParamEquals" name="has_filters" value="has_filters"/>
// filtring menu
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'] = new Menu('<inp2:m_phrase name="la_Text_View"/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'].addMenuItem('All','filters_remove_all("<inp2:m_param name="PrefixSpecial"/>");');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'].addMenuItem('None','filters_apply_all("<inp2:m_param name="PrefixSpecial"/>");');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'].addMenuSeparator();
<inp2:$PrefixSpecial_DrawFilterMenu item_block="viewmenu_filter_block" spearator_block="viewmenu_filter_separator"/>
<inp2:m_endif/>
// sorting menu
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_sorting_menu'] = new Menu('<inp2:m_phrase name="la_Text_Sort"/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_sorting_menu'].addMenuItem('<inp2:m_phrase name="la_common_ascending"/>','direct_sort_grid("<inp2:m_param name="PrefixSpecial"/>","<inp2:$PrefixSpecial_OrderInfo type="field" pos="1"/>","asc");','<inp2:m_if prefix="$PrefixSpecial" function="IsOrder" direction="asc" pos="1"/>2<inp2:m_endif/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_sorting_menu'].addMenuItem('<inp2:m_phrase name="la_common_descending"/>','direct_sort_grid("<inp2:m_param name="PrefixSpecial"/>","<inp2:$PrefixSpecial_OrderInfo type="field" pos="1"/>","desc");','<inp2:m_if prefix="$PrefixSpecial" function="IsOrder" direction="desc" pos="1"/>2<inp2:m_endif/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_sorting_menu'].addMenuSeparator();
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_sorting_menu'].addMenuItem('<inp2:m_phrase name="la_Text_Default"/>','reset_sorting("<inp2:m_param name="PrefixSpecial"/>");');
<inp2:$PrefixSpecial_IterateGridFields grid="$grid" mode="header" block="viewmenu_sort_block"/>
// per page menu
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_perpage_menu'] = new Menu('<inp2:m_phrase name="la_prompt_PerPage"/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_perpage_menu'].addMenuItem('10','set_per_page("<inp2:m_param name="PrefixSpecial"/>",10);','<inp2:m_if prefix="$PrefixSpecial" function="PerPageEquals" value="10"/>2<inp2:m_endif/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_perpage_menu'].addMenuItem('20','set_per_page("<inp2:m_param name="PrefixSpecial"/>",20);','<inp2:m_if prefix="$PrefixSpecial" function="PerPageEquals" value="20"/>2<inp2:m_endif/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_perpage_menu'].addMenuItem('50','set_per_page("<inp2:m_param name="PrefixSpecial"/>",50);','<inp2:m_if prefix="$PrefixSpecial" function="PerPageEquals" value="50"/>2<inp2:m_endif/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_perpage_menu'].addMenuItem('100','set_per_page("<inp2:m_param name="PrefixSpecial"/>",100);','<inp2:m_if prefix="$PrefixSpecial" function="PerPageEquals" value="100"/>2<inp2:m_endif/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_perpage_menu'].addMenuItem('500','set_per_page("<inp2:m_param name="PrefixSpecial"/>",500);','<inp2:m_if prefix="$PrefixSpecial" function="PerPageEquals" value="500"/>2<inp2:m_endif/>');
// select menu
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_select_menu'] = new Menu('<inp2:m_phrase name="la_Text_Select"/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_select_menu'].addMenuItem('<inp2:m_phrase name="la_Text_All"/>','Grids["<inp2:m_param name="PrefixSpecial"/>"].SelectAll();');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_select_menu'].addMenuItem('<inp2:m_phrase name="la_Text_Unselect"/>','Grids["<inp2:m_param name="PrefixSpecial"/>"].ClearSelection();');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_select_menu'].addMenuItem('<inp2:m_phrase name="la_Text_Invert"/>','Grids["<inp2:m_param name="PrefixSpecial"/>"].InvertSelection();');
processHooks('ViewMenu', hBEFORE, '<inp2:m_param name="PrefixSpecial"/>');
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_view_menu'] = new Menu('<inp2:$PrefixSpecial_GetItemName/>');
<inp2:m_if prefix="m" function="ParamEquals" name="has_filters" value="has_filters"/>
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_view_menu'].addMenuItem( $Menus['<inp2:m_param name="PrefixSpecial"/>'+'_filter_menu'] );
<inp2:m_endif/>
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_view_menu'].addMenuItem( $Menus['<inp2:m_param name="PrefixSpecial"/>'+'_sorting_menu'] );
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_view_menu'].addMenuItem( $Menus['<inp2:m_param name="PrefixSpecial"/>'+'_perpage_menu'] );
$Menus['<inp2:m_param name="PrefixSpecial"/>'+'_view_menu'].addMenuItem( $Menus['<inp2:m_param name="PrefixSpecial"/>'+'_select_menu'] );
processHooks('ViewMenu', hAFTER, '<inp2:m_param name="PrefixSpecial"/>');
}
<inp2:m_blockend/>
<inp2:m_block name="grid_save_warning" />
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="table_border_<inp2:m_if prefix="m" function="ParamEquals" name="no_toolbar" value="no_toolbar"/>nobottom<inp2:m_else/>notop<inp2:m_endif/>">
<tr>
<td valign="top" class="hint_red">
<inp2:m_phrase name="la_Warning_Save_Item"/>
</td>
</tr>
</table>
<script type="text/javascript">
$edit_mode = <inp2:m_if check="m_ParamEquals" name="edit_mode" value="1">true<inp2:m_else />false</inp2:m_if>;
// window.parent.document.title += ' - MODE: ' + ($edit_mode ? 'EDIT' : 'LIVE');
</script>
<inp2:m_blockend/>
<inp2:m_block name="grid" main_prefix="" per_page="" main_special="" no_toolbar="" has_filters="" grid_filters="" search="on" header_block="grid_column_title" filter_block="grid_column_filter" data_block="grid_data_td" row_block="_row" SourcePrefix="" value_field="Value"/>
<!--
grid_filters - show individual filters for each column
has_filters - draw filter section in "View" menu in toolbar
SourcePrefix - used with custom fields
value_field - used with custom fields
-->
<inp2:$PrefixSpecial_SaveWarning name="grid_save_warning" main_prefix="$main_prefix" no_toolbar="$no_toolbar"/>
<inp2:m_if prefix="m" function="RecallEquals" var="{$PrefixSpecial}_search_keyword" value="" inverse="inverse"/>
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="table_border_<inp2:m_if prefix="m" function="ParamEquals" name="no_toolbar" value="no_toolbar"/>nobottom<inp2:m_else/>notop<inp2:m_endif/>">
<tr>
<td valign="top" class="hint_red">
<inp2:m_phrase name="la_Warning_Filter"/>
</td>
</tr>
</table>
<inp2:m_endif/>
<inp2:m_ParamEquals name="NoPagination" value="">
<inp2:m_ParseBlock name="grid_pagination" grid="$grid" PrefixSpecial="$PrefixSpecial" main_special="$main_special" search="$search" no_toolbar="$no_toolbar"/>
</inp2>
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder">
<inp2:m_if check="m_ParamEquals" name="grid_filters" value="1">
<tr class="pagination_bar">
<inp2:$PrefixSpecial_IterateGridFields grid="$grid" mode="filter" block="$filter_block"/>
</tr>
</inp2:m_if>
<tr class="subsectiontitle">
<inp2:$PrefixSpecial_IterateGridFields grid="$grid" mode="header" block="$header_block"/>
</tr>
<inp2:m_block name="_row" />
<tr class="<inp2:m_odd_even odd="table_color1" even="table_color2"/>" id="<inp2:m_param name="PrefixSpecial"/>_<inp2:$PrefixSpecial_field field="$IdField"/>" sequence="<inp2:m_get param="{$PrefixSpecial}_sequence"/>"><inp2:m_inc param="{$PrefixSpecial}_sequence" by="1"/>
<inp2:$PrefixSpecial_IterateGridFields grid="$grid" mode="data" block="$data_block"/>
</tr>
<inp2:m_blockend />
<inp2:m_set {$PrefixSpecial}_sequence="1" odd_even="table_color1"/>
<inp2:$PrefixSpecial_PrintList block="$row_block" per_page="$per_page" main_special="$main_special" SourcePrefix="$SourcePrefix" value_field="$value_field"/>
</table>
<inp2:m_if prefix="m" function="GetEquals" name="fw_menu_included" value=""/>
<script type="text/javascript" src="incs/fw_menu.js"></script>
<inp2:m_set fw_menu_included="1"/>
<inp2:m_endif/>
<script type="text/javascript">
<inp2:m_if check="m_ParamEquals" name="no_init" value="no_init" inverse="inverse">
Grids['<inp2:m_param name="PrefixSpecial"/>'] = new Grid('selected_div', ':original', edit, a_toolbar);
- Grids['<inp2:m_param name="PrefixSpecial"/>'].AddItemsByIdMask('tr', /^<inp2:m_param name="PrefixSpecial"/>_([0-9-]+)/, '<inp2:m_param name="PrefixSpecial"/>[$$ID$$][<inp2:m_param name="IdField"/>]');
+ Grids['<inp2:m_param name="PrefixSpecial"/>'].AddItemsByIdMask('tr', /^<inp2:m_param name="PrefixSpecial"/>_([\d\w-]+)/, '<inp2:m_param name="PrefixSpecial"/>[$$ID$$][<inp2:m_param name="IdField"/>]');
Grids['<inp2:m_param name="PrefixSpecial"/>'].InitItems();
</inp2:m_if>
<inp2:m_ParseBlock name="viewmenu_declaration" PrefixSpecial="$PrefixSpecial" grid="$grid" has_filters="$has_filters"/>
$ViewMenus = new Array('<inp2:m_param name="PrefixSpecial"/>');
</script>
<input type="hidden" id="<inp2:m_param name="PrefixSpecial"/>_Sort1" name="<inp2:m_param name="PrefixSpecial"/>_Sort1" value="">
<input type="hidden" id="<inp2:m_param name="PrefixSpecial"/>_Sort1_Dir" name="<inp2:m_param name="PrefixSpecial"/>_Sort1_Dir" value="asc">
<inp2:m_blockend />
<inp2:m_block name="white_grid" main_prefix="" per_page="" main_special="" no_toolbar="" has_filters="" search="" render_as="" columns="2" direction="V" empty_cell_render_as="wg_empty_cell"/>
<inp2:$PrefixSpecial_SaveWarning name="grid_save_warning" main_prefix="$main_prefix" no_toolbar="$no_toolbar"/>
<inp2:m_if prefix="m" function="RecallEquals" var="{$PrefixSpecial}_search_keyword" value="" inverse="inverse"/>
<table width="100%" border="0" cellspacing="0" cellpadding="4" class="table_border_<inp2:m_if prefix="m" function="ParamEquals" name="no_toolbar" value="no_toolbar"/>nobottom<inp2:m_else/>notop<inp2:m_endif/>">
<tr>
<td valign="top" class="hint_red">
<inp2:m_phrase name="la_Warning_Filter"/>
</td>
</tr>
</table>
<inp2:m_endif/>
<inp2:m_ParamEquals name="NoPagination" value="">
<inp2:m_ParseBlock name="grid_pagination" grid="$grid" PrefixSpecial="$PrefixSpecial" search="$search" no_toolbar="$no_toolbar"/>
</inp2>
<br />
<inp2:m_DefineElement name="wg_empty_cell">
<td width="<inp2:m_param name="column_width"/>%">&nbsp;</td>
</inp2:m_DefineElement>
<table width="100%" border="0" cellspacing="2" cellpadding="4">
<inp2:m_set {$PrefixSpecial}_sequence="1" odd_even="table_color1"/>
<inp2:$PrefixSpecial_PrintList2 block="$render_as" empty_cell_render_as="$empty_cell_render_as" direction="$direction" columns="$columns" per_page="$per_page" main_special="$main_special"/>
</table>
<inp2:m_if prefix="m" function="GetEquals" name="fw_menu_included" value=""/>
<script type="text/javascript" src="incs/fw_menu.js"></script>
<inp2:m_set fw_menu_included="1"/>
<inp2:m_endif/>
<script type="text/javascript">
<inp2:m_if check="m_ParamEquals" name="no_init" value="no_init" inverse="inverse">
Grids['<inp2:m_param name="PrefixSpecial"/>'] = new Grid('table_white_selected', ':original', edit, a_toolbar);
Grids['<inp2:m_param name="PrefixSpecial"/>'].AddItemsByIdMask('td', /^<inp2:m_param name="PrefixSpecial"/>_([0-9-]+)/, '<inp2:m_param name="PrefixSpecial"/>[$$ID$$][<inp2:m_param name="IdField"/>]');
Grids['<inp2:m_param name="PrefixSpecial"/>'].InitItems();
</inp2:m_if>
<inp2:m_ParseBlock name="viewmenu_declaration" PrefixSpecial="$PrefixSpecial" grid="$grid" has_filters="$has_filters"/>
$ViewMenus = new Array('<inp2:m_param name="PrefixSpecial"/>');
</script>
<input type="hidden" id="<inp2:m_param name="PrefixSpecial"/>_Sort1" name="<inp2:m_param name="PrefixSpecial"/>_Sort1" value="">
<input type="hidden" id="<inp2:m_param name="PrefixSpecial"/>_Sort1_Dir" name="<inp2:m_param name="PrefixSpecial"/>_Sort1_Dir" value="asc">
<inp2:m_blockend />
\ No newline at end of file
Property changes on: trunk/kernel/admin_templates/incs/grid_blocks.tpl
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.22
\ No newline at end of property
+1.23
\ No newline at end of property
Index: trunk/kernel/admin_templates/modules/modules_list.tpl
===================================================================
--- trunk/kernel/admin_templates/modules/modules_list.tpl (nonexistent)
+++ trunk/kernel/admin_templates/modules/modules_list.tpl (revision 4577)
@@ -0,0 +1,46 @@
+<inp2:m_set nobody="yes"/>
+<inp2:m_include t="incs/header"/>
+
+<body topmargin="0" leftmargin="8" marginheight="0" marginwidth="8" bgcolor="#FFFFFF">
+<inp2:m_ParseBlock name="section_header" icon="icon46_modules" title="!la_title_Module_Status!"/>
+
+<inp2:m_ParseBlock name="blue_bar" prefix="mod" title_preset="modules_list" module="in-portal" icon="icon46_modules"/>
+
+<!-- ToolBar --->
+<table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0">
+<tbody>
+ <tr>
+ <td>
+ <script type="text/javascript">
+ //do not rename - this function is used in default grid for double click!
+ function edit()
+ {
+
+ }
+
+ var a_toolbar = new ToolBar();
+
+ a_toolbar.AddButton( new ToolBarButton('approve', '<inp2:m_phrase label="la_ToolTip_EnableModule" escape="1"/>', function() {
+ submit_event('mod','OnMassApprove');
+ }
+ ) );
+
+
+ a_toolbar.AddButton( new ToolBarButton('deny', '<inp2:m_phrase label="la_ToolTip_EnableDisable" escape="1"/>', function() {
+ submit_event('mod','OnMassDecline');
+ }
+ ) );
+
+ a_toolbar.Render();
+ </script>
+ </td>
+ </tr>
+</tbody>
+</table>
+
+<inp2:m_ParseBlock name="grid" PrefixSpecial="mod" IdField="Name" grid="Default" has_filters="has_filters"/>
+<script type="text/javascript">
+ Grids['mod'].SetDependantToolbarButtons( new Array('approve','deny') );
+</script>
+
+<inp2:m_include t="incs/footer"/>
\ No newline at end of file
Property changes on: trunk/kernel/admin_templates/modules/modules_list.tpl
___________________________________________________________________
Added: cvs2svn:cvs-rev
## -0,0 +1 ##
+1.1
\ No newline at end of property
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: trunk/core/units/admin/admin_config.php
===================================================================
--- trunk/core/units/admin/admin_config.php (revision 4576)
+++ trunk/core/units/admin/admin_config.php (revision 4577)
@@ -1,197 +1,240 @@
<?php
$config = Array(
'Prefix' => 'adm',
'EventHandlerClass' => Array('class' => 'kEventHandler', 'file' => '', 'build_event' => 'OnBuild'),
'TagProcessorClass' => Array('class' => 'AdminTagProcessor', 'file' => 'admin_tag_processor.php', 'build_event' => 'OnBuild'),
'TitlePresets' => Array(
'tree_root' => Array('format' => '!la_section_overview!'),
'tree_reports' => Array('format' => '!la_section_overview!'),
'tree_system' => Array('format' => '!la_section_overview!'),
'tree_tools' => Array('format' => '!la_section_overview!'),
+
+ 'tree_modules' => Array('format' => '!la_section_overview!'),
),
'Sections' => Array(
'in-portal:root' => Array(
'parent' => null,
'icon' => 'site',
'label' => $this->Application->ConfigValue('Site_Name'),
'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm', 'no_amp' => 1),
'permissions' => Array('view'),
'priority' => 0,
'type' => stTREE,
),
// "Summary & Logs" section
'in-portal:reports' => Array(
'parent' => 'in-portal:root',
'icon' => 'summary_logs',
'label' => 'la_tab_Reports',
'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 4,
'type' => stTREE,
),
'in-portal:log_summary' => Array(
'parent' => 'in-portal:reports',
'icon' => 'summary',
'label' => 'la_tab_Summary',
'url' => Array('index_file' => 'logs/summary.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 1,
'type' => stTREE,
),
'in-portal:searchlog' => Array(
'parent' => 'in-portal:reports',
'icon' => 'search_log',
'label' => 'la_tab_SearchLog',
'url' => Array('index_file' => 'logs/searchlog.php', 'pass' => 'm'),
'permissions' => Array('view', 'delete'),
'priority' => 2,
'type' => stTREE,
),
'in-portal:sessionlog' => Array(
'parent' => 'in-portal:reports',
'icon' => 'sessions_log',
'label' => 'la_tab_SessionLog',
'url' => Array('index_file' => 'logs/session_list.php', 'pass' => 'm'),
'permissions' => Array('view', 'reset'),
'priority' => 3,
'type' => stTREE,
),
'in-portal:emaillog' => Array(
'parent' => 'in-portal:reports',
'icon' => 'email_log',
'label' => 'la_tab_EmailLog',
'url' => Array('index_file' => 'logs/email_log.php', 'pass' => 'm'),
'permissions' => Array('view', 'delete'),
'priority' => 4,
'type' => stTREE,
),
'in-portal:visits' => Array(
'parent' => 'in-portal:reports',
'icon' => 'visits',
'label' => 'la_tab_Visits',
'url' => Array('t' => 'visits/visits_list', 'index_file' => 'index4.php', 'pass' => 'm'),
'permissions' => Array('view', 'delete'),
'priority' => 5,
'type' => stTREE,
),
// "Configuration" section
'in-portal:system' => Array(
'parent' => 'in-portal:root',
'icon' => 'conf',
'label' => 'la_tab_Sys_Config',
'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 5,
'type' => stTREE,
),
'in-portal:configure_general' => Array(
'parent' => 'in-portal:system',
'icon' => 'conf_general',
'label' => 'la_tab_General',
'url' => Array('index_file' => 'config/edit_config.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 1,
'type' => stTREE,
),
+ // "Configuration" -> "Modules and Settings"
+ 'in-portal:modules' => Array(
+ 'parent' => 'in-portal:system',
+ 'icon' => 'modules',
+ 'label' => 'la_tab_ModulesManagement',
+ 'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm'),
+ 'permissions' => Array('view'),
+ 'priority' => 1.1,
+ 'type' => stTREE,
+ ),
+
+ 'in-portal:mod_status' => Array(
+ 'parent' => 'in-portal:modules',
+ 'icon' => 'modules',
+ 'label' => 'la_title_Module_Status',
+ 'url' => Array('t' => 'modules/modules_list', 'index_file' => 'index4.php', 'pass' => 'm'),
+ 'permissions' => Array('view', 'edit'),
+ 'priority' => 1,
+ 'type' => stTREE,
+ ),
+
+ 'in-portal:addmodule' => Array(
+ 'parent' => 'in-portal:modules',
+ 'icon' => 'modules',
+ 'label' => 'la_title_Add_Module',
+ 'url' => Array('index_file' => 'modules/addmodule.php', 'pass' => 'm'),
+ 'permissions' => Array('view', 'edit'),
+ 'priority' => 2,
+ 'type' => stTREE,
+ ),
+
+ 'in-portal:tag_library' => Array(
+ 'parent' => 'in-portal:modules',
+ 'icon' => 'modules',
+ 'label' => 'la_tab_TagLibrary',
+ 'url' => Array('index_file' => 'tag_listing.php', 'pass' => 'm'),
+ 'permissions' => Array('view'),
+ 'priority' => 3,
+ 'type' => stTREE,
+ ),
+
// "Tools" section
'in-portal:tools' => Array(
'parent' => 'in-portal:root',
'icon' => 'tools',
'label' => 'la_tab_Tools',
'url' => Array('t' => 'sections_list', 'index_file' => 'index4.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 6,
'type' => stTREE,
),
'in-portal:backup' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_backup',
'label' => 'la_tab_Backup',
'url' => Array('index_file' => 'backup/backup1.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 1,
'type' => stTREE,
),
'in-portal:restore' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_restore',
'label' => 'la_tab_Restore',
'url' => Array('index_file' => 'backup/restore1.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 2,
'type' => stTREE,
),
'in-portal:export' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_export',
'label' => 'la_tab_ExportData',
'url' => Array('index_file' => 'backup/export1.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 3,
'type' => stTREE,
),
'in-portal:main_import' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_import',
'label' => 'la_tab_ImportData',
'url' => Array('index_file' => 'import/step1.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 4,
'type' => stTREE,
),
'in-portal:sql_query' => Array(
'parent' => 'in-portal:tools',
'icon' => 'tool_import',
'label' => 'la_tab_QueryDB',
'url' => Array('index_file' => 'tools/sql_query.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 5,
'type' => stTREE,
),
'in-portal:server_info' => Array(
'parent' => 'in-portal:tools',
'icon' => 'server_info',
'label' => 'la_tab_ServerInfo',
'url' => Array('index_file' => 'tools/server_info.php', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 6,
'type' => stTREE,
),
// "Help" section
'in-portal:help' => Array(
'parent' => 'in-portal:root',
'icon' => 'help',
'label' => 'la_tab_Help',
'url' => Array('index_file' => 'help/manual.pdf', 'pass' => 'm'),
'permissions' => Array('view'),
'priority' => 7,
'type' => stTREE,
),
),
);
?>
\ No newline at end of file
Property changes on: trunk/core/units/admin/admin_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.2
\ No newline at end of property
+1.3
\ No newline at end of property
Index: trunk/core/units/modules/modules_config.php
===================================================================
--- trunk/core/units/modules/modules_config.php (revision 4576)
+++ trunk/core/units/modules/modules_config.php (revision 4577)
@@ -1,41 +1,67 @@
<?php
$config = Array(
'Prefix' => 'mod',
'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'),
'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'),
'EventHandlerClass' => Array('class'=>'ModulesEventHandler','file'=>'modules_event_handler.php','build_event'=>'OnBuild'),
'TagProcessorClass' => Array('class'=>'ModulesTagProcessor','file'=>'modules_tag_processor.php','build_event'=>'OnBuild'),
'AutoLoad' => true,
'hooks' => Array(),
'QueryString' => Array(
1 => 'id',
2 => 'page',
3 => 'event',
+ 4 => 'mode',
),
+
'IDField' => 'Name',
'TitleField' => 'Name', // field, used in bluebar when editing existing item
+ 'StatusField' => Array('Loaded'),
+
+ 'TitlePresets' => Array(
+
+ 'modules_list' => Array( 'prefixes' => Array('mod_List'), 'format' => "!la_title_Configuration! - !la_title_Module_Status! (#mod_recordcount#)"),
+
+ ),
+
'TableName' => TABLE_PREFIX.'Modules',
'ListSQLs' => Array( ''=>'SELECT * FROM %s',
), // key - special, value - list select sql
'ItemSQLs' => Array( ''=>'SELECT * FROM %s',
),
- 'ListSortings' => Array(),
+ 'ListSortings' => Array(
+ '' => Array(
+ 'Sorting' => Array('LoadOrder' => 'asc'),
+ )
+ ),
+
'Fields' => Array(
- 'Name' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'Path' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'Var' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'Version' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'Loaded' => Array('type' => 'int','not_null' => '1','default' => '1'),
- 'LoadOrder' => Array('type' => 'int','not_null' => '1','default' => '0'),
- 'TemplatePath' => Array('type' => 'string','not_null' => '1','default' => ''),
- 'RootCat' => Array('type' => 'int','not_null' => '1','default' => '0'),
- 'BuildDate' => Array('type' => 'double','not_null' => '1','default' => '0'),
+ 'Name' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'Path' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'Var' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'Version' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'Loaded' => Array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(1 => 'la_Enabled', 0 => 'la_Disabled'), 'use_phrases' => 1, 'not_null' => '1','default' => '1'),
+ 'LoadOrder' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'TemplatePath' => Array('type' => 'string','not_null' => '1','default' => ''),
+ 'RootCat' => Array('type' => 'int','not_null' => '1','default' => '0'),
+ 'BuildDate' => Array('type' => 'double', 'formatter' => 'kDateFormatter', 'not_null' => '1','default' => ''),
),
+
'VirtualFields' => Array(),
- 'Grids' => Array(),
+ 'Grids' => Array(
+ 'Default' => Array(
+ 'Icons' => Array('default' => 'icon16_custom.gif'),
+ 'Fields' => Array(
+ 'Name' => Array('title' => 'la_col_Name', 'data_block' => 'grid_checkbox_td_no_icon'),
+ 'Loaded' => Array('title' => 'la_col_Status'),
+ 'Version' => Array('title' => 'la_col_Version'),
+ ),
+
+ ),
+ ),
);
?>
\ No newline at end of file
Property changes on: trunk/core/units/modules/modules_config.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.3
\ No newline at end of property
+1.4
\ No newline at end of property
Index: trunk/core/units/modules/modules_event_handler.php
===================================================================
--- trunk/core/units/modules/modules_event_handler.php (revision 4576)
+++ trunk/core/units/modules/modules_event_handler.php (revision 4577)
@@ -1,25 +1,75 @@
<?php
class ModulesEventHandler extends InpDBEventHandler {
/**
* Builds item
*
* @param kEvent $event
* @access protected
*/
function OnItemBuild(&$event)
{
$this->Application->SetVar($event->getPrefixSpecial(true).'_id', $event->Special);
parent::OnItemBuild($event);
}
+ /**
+ * List with one record if special passed
+ *
+ * @param kEvent $event
+ */
function SetCustomQuery(&$event)
{
- $object =& $event->getObject();
- $object->addFilter('current_module', 'Name = '.$event->Special);
+ if ($event->Special) {
+ $object =& $event->getObject();
+ $object->addFilter('current_module', 'Name = '.$event->Special);
+ }
+ }
+
+ function mapEvents()
+ {
+ parent::mapEvents();
+ unset($this->eventMethods['OnMassDecline']);
+ }
+
+ /**
+ * Disabled modules, but not In-Portal
+ *
+ * @param kEvent $event
+ */
+ function OnMassDecline(&$event)
+ {
+ if ($this->Application->CheckPermission('SYSTEM_ACCESS.READONLY', 0)) {
+ return;
+ }
+
+ $object =& $event->getObject( Array('skip_autoload' => true) );
+ $ids = $this->StoreSelectedIDs($event);
+
+
+ if (!$ids) return true;
+
+ $status_field = array_shift( $this->Application->getUnitOption($event->Prefix, 'StatusField') );
+
+ foreach($ids as $id)
+ {
+ $object->Load($id);
+ if ($object->GetID() == 'In-Portal') continue;
+ $object->SetDBField($status_field, 0);
+
+ if ($object->Update()) {
+ $event->status = erSUCCESS;
+ $event->redirect_params = Array('opener' => 's', 'pass_events' => true); //stay!
+ }
+ else {
+ $event->status = erFAIL;
+ $event->redirect = false;
+ break;
+ }
+ }
}
}
?>
\ No newline at end of file
Property changes on: trunk/core/units/modules/modules_event_handler.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.4
\ No newline at end of property
+1.5
\ No newline at end of property

Event Timeline