Index: trunk/custom/units/test/test_config.php =================================================================== --- trunk/custom/units/test/test_config.php (revision 7900) +++ trunk/custom/units/test/test_config.php (revision 7901) @@ -1,149 +1,175 @@ <?php $config = Array( 'Prefix' => 'test', 'ItemClass' => Array('class'=>'kDBItem','file'=>'','build_event'=>'OnItemBuild'), 'ListClass' => Array('class'=>'kDBList','file'=>'','build_event'=>'OnListBuild'), 'EventHandlerClass' => Array('class'=>'TestEventHandler','file'=>'test_eh.php','build_event'=>'OnBuild'), 'TagProcessorClass' => Array('class'=>'kDBTagProcessor','file'=>'','build_event'=>'OnBuild'), 'AutoLoad' => true, 'Hooks' => Array( ), 'QueryString' => Array( 1 => 'id', 2 => 'Page', 3 => 'event', 4 => 'mode', ), 'IDField' => 'TestId', 'StatusField' => Array('Status'), 'TableName' => TABLE_PREFIX.'Tests', +/* + 'ForeignKey' => 'ParentId', // field title in TableName, linking record to a parent + 'ParentTableKey' => 'ParentId', // id (or other key) field title in parent's table + 'ParentPrefix' => 'parent', + 'AutoDelete' => true, // delete these items when parent is being deleted + 'AutoClone' => true, // clone these items when parent is being cloned +*/ + 'TitlePresets' => Array( - 'default' => Array( 'new_status_labels' => Array('test'=>'!la_title_AddingTest!'), + 'default' => Array( + 'new_status_labels' => Array('test'=>'!la_title_AddingTest!'), 'edit_status_labels' => Array('test'=>'!la_title_EditingTest!'), - 'new_titlefield' => Array('test'=>'!la_title_NewTest!'), + 'new_titlefield' => Array('test'=>''), ), - 'test_list'=>Array( 'prefixes' => Array('test_List'), - 'format' => "!la_title_Tests! (#test_recordcount#)", + 'test_list'=>Array( + 'prefixes' => Array('test_List'), + 'format' => '!la_title_Tests! (#test_recordcount#)', ), - 'test_edit'=>Array( 'prefixes' => Array('test'), - 'new_titlefield' => Array('test'=>'!la_title_NewTest!'), - 'format' => "#test_status# '#test_titlefield#'", + 'test_edit'=>Array( + 'prefixes' => Array('test'), + 'format' => '#test_status# #test_titlefield#', ), ), 'PermSection' => Array('main' => 'custom:tests'), + // don't forget to add corresponding permissions to install script + // INSERT INTO Permissions VALUES (0, 'custom:custom.view', 11, 1, 1, 0); + // INSERT INTO Permissions VALUES (0, 'custom:tests.view', 11, 1, 1, 0), (0, 'custom:tests.add', 11, 1, 1, 0), (0, 'custom:tests.edit', 11, 1, 1, 0), (0, 'custom:tests.delete', 11, 1, 1, 0); 'Sections' => Array( - 'custom:tests' => Array( + + 'custom' => Array( 'parent' => 'in-portal:root', - 'icon' => 'tests', + 'icon' => 'custom:custom', + 'label' => 'la_title_Custom', + 'url' => Array('t' => 'sections_list', 'pass_section' => true, 'pass' => 'm'), + 'permissions' => Array('view'), + 'priority' => 1.95, + 'type' => stTREE, + ), + + 'custom:tests' => Array( + 'parent' => 'custom', + 'icon' => 'custom:tests', 'label' => 'la_tab_Tests', 'url' => Array('t' => 'custom/tests/test_list', 'pass' => 'm'), 'permissions' => Array('view', 'add', 'edit', 'delete'), - 'priority' => 10, + 'priority' => 1, 'type' => stTREE, ), ), 'TitleField' => 'Title', // field, used in bluebar when editing existing item // Use %1$s for local table name with prefix, %2$s for calculated fields 'ListSQLs' => Array( // key - special, value - list select sql '' => 'SELECT %1$s.* %2$s FROM %1$s', ), 'ItemSQLs' => Array( '' => 'SELECT %1$s.* %2$s FROM %1$s', ), 'ListSortings' => Array( '' => Array( // 'ForcedSorting' => Array('Priority' => 'desc'), 'Sorting' => Array('Title' => 'asc'), ) ), 'Fields' => Array( - 'TestId' => Array('type' => 'int','not_null' => '1','default' => ''), + 'TestId' => Array('type' => 'int', 'not_null' => 1, 'default' => 0), 'Title' => Array('type' => 'string','not_null' => '1','default' => '', 'required'=>true,'max_len'=>255), 'Description' => Array('type' => 'string','not_null' => '1','default' => ''), 'Email' => Array( 'type' => 'string', 'formatter'=>'kFormatter', 'regexp'=>'/^[_a-zA-Z0-9-\.]+@[a-zA-Z0-9-\.]+\.[a-z]{2,4}$/', 'sample_value' => 'email@domain.com', - 'not_null' => 0, 'default' => '', + 'not_null' => 1, 'default' => '', 'error_msgs' => Array('invalid_format'=>'!la_invalid_email!') ), - 'Type' => array( + 'Type' => array('type' => 'int', 'formatter' => 'kOptionsFormatter', 'use_phrases' => 1, 'options'=> array( 1=>'la_default_type', 2=>'la_some_type', 3=>'la_another_type', ), 'not_null' => 1, 'default' => 1, 'required' => 1, ), - 'Phone' => Array('type' => 'string','default' => ''), - 'Qty' => array('type'=>'double','required'=>0), + 'Phone' => Array('type' => 'string','default' => '','not_null' => 1), + 'Qty' => array('type'=>'double','required'=>0,'not_null' => 1, 'default' => 0), 'Status' => Array( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => array (1 => 'la_Active', 2 => 'la_Pending', 0 => 'la_Disabled'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 2 ), - 'CreatedOn' => Array('formatter' => 'kDateFormatter', 'default'=>'#NOW#', 'not_null' => true), + 'CreatedOn' => Array('formatter' => 'kDateFormatter', 'format' => '_regional_DateFormat', 'input_format' => '_regional_DateFormat', 'empty_time' => '', 'default'=>'#NOW#', 'not_null' => true), 'Good' => Array( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array(1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0 ), ), 'Grids' => Array( 'Default' => Array( 'Icons' => Array('default'=>'icon16_test.gif'), 'Fields' => Array( 'TestId' => Array( 'title'=>'la_col_Id', 'data_block' => 'grid_checkbox_td' ), - 'Title' => Array( 'title'=>'la_col_TestName'), + /* 'Title' => Array( 'title'=>'la_col_TestName'), 'Type' => Array( 'title'=>'la_col_Type', 'filter_block' => 'grid_options_filter'), 'Status' => Array( 'title'=>'la_col_Status', 'filter_block' => 'grid_options_filter'), 'Good' => Array( 'title'=>'la_col_Good'), 'Qty' => Array( 'title'=>'la_col_Qty', 'filter_block' => 'grid_float_range_filter'), 'Email' => Array( 'title'=>'la_col_Email'), - 'Phone' => Array( 'title'=>'la_col_Phone'), + 'Phone' => Array( 'title'=>'la_col_Phone'),*/ 'CreatedOn' => Array( 'title'=>'la_col_CreatedOn', 'filter_block' => 'grid_date_range_filter'), ), ), ), 'ConfigMapping' => Array( 'PerPage' => 'Comm_Perpage_Tests', 'ShortListPerPage' => 'Comm_Perpage_Tests_Short', ), ); /* Don't forget to: - Add table create statement to install_schema.sql - -CREATE TABLE `kx_Tests` ( + CREATE TABLE Tests ( `TestId` 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: trunk/custom/units/test/test_config.php ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.1.1 \ No newline at end of property +1.2 \ No newline at end of property Index: trunk/custom/admin_templates/tests/test_edit.tpl =================================================================== --- trunk/custom/admin_templates/tests/test_edit.tpl (revision 7900) +++ trunk/custom/admin_templates/tests/test_edit.tpl (revision 7901) @@ -1,95 +1,94 @@ <inp2:adm_SetPopupSize width="750" height="570"/> -<inp2:m_RequireLogin permissions="custom:tests.view" system="1"/> -<inp2:m_include t="incs/header" body_properties=" onload='reflect_filename();'" /> +<inp2:m_include t="incs/header" body_properties="" /> -<inp2:m_ParseBlock name="blue_bar" prefix="test" title_preset="test_edit" module="custom" icon="icon46_tests"/> +<inp2:m_RenderElement name="combined_header" section="custom:tests" prefix="test" title_preset="test_edit" pagination="0"/> <!-- ToolBar ---> <table class="toolbar" height="30" cellspacing="0" cellpadding="0" width="100%" border="0"> <tbody> <tr> <td> <script type="text/javascript"> a_toolbar = new ToolBar(); a_toolbar.AddButton( new ToolBarButton('select', '<inp2:m_phrase label="la_ToolTip_Save" escape="1"/>', function() { submit_event('test','<inp2:test_SaveEvent/>'); } )); a_toolbar.AddButton( new ToolBarButton('cancel', '<inp2:m_phrase label="la_ToolTip_Cancel" escape="1"/>', function() { cancel_edit('st','OnCancelEdit','<inp2:st_SaveEvent/>','<inp2:m_Phrase label="la_FormCancelConfirmation" escape="1"/>'); } )); a_toolbar.AddButton( new ToolBarButton('reset_edit', '<inp2:m_phrase label="la_ToolTip_Reset" escape="1"/>', function() { reset_form('test', 'OnReset', '<inp2:m_Phrase label="la_FormResetConfirmation" escape="1"/>'); } )); a_toolbar.AddButton( new ToolBarSeparator('sep1') ); a_toolbar.AddButton( new ToolBarButton('prev', '<inp2:m_phrase label="la_ToolTip_Prev" escape="1"/>', function() { go_to_id('test', '<inp2:test_PrevId/>'); } )); a_toolbar.AddButton( new ToolBarButton('next', '<inp2:m_phrase label="la_ToolTip_Next" escape="1"/>', function() { go_to_id('test', '<inp2:test_NextId/>'); } )); a_toolbar.Render(); <inp2:m_if prefix="test" function="IsSingle"/> a_toolbar.HideButton('prev'); a_toolbar.HideButton('next'); a_toolbar.HideButton('sep1'); <inp2:m_else/> <inp2:m_if prefix="test" function="IsLast"/> a_toolbar.DisableButton('next'); <inp2:m_endif/> <inp2:m_if prefix="test" function="IsFirst"/> a_toolbar.DisableButton('prev'); <inp2:m_endif/> <inp2:m_endif/> </script> </td> <inp2:m_RenderElement name="ml_selector" prefix="test"/> </tr> </tbody> </table> <script src="incs/calendar.js"></script> <inp2:test_SaveWarning name="grid_save_warning"/> <inp2:test_ErrorWarning name="form_error_warning"/> <div id="scroll_container"> <table width="100%" border="0" cellspacing="0" cellpadding="4" class="tableborder" style="border-collapse: separate;"> <inp2:m_ParseBlock name="subsection" title="!la_section_Page!"/> <inp2:m_ParseBlock name="inp_id_label" prefix="test" field="TestId" title="!la_fld_Id!"/> <inp2:m_ParseBlock name="inp_edit_box_ml" prefix="test" field="Title" title="!la_fld_Title!" size="40"/> <inp2:m_ParseBlock name="inp_edit_checkbox" prefix="test" field="Good" title="!la_fld_Good!"/> <inp2:m_ParseBlock name="inp_edit_textarea" prefix="test" field="Description" title="!la_fld_Description!" cols="50" rows="5"/> <inp2:m_ParseBlock name="inp_edit_radio" prefix="test" field="Status" title="la_fld_Status" size="63"/> <inp2:m_ParseBlock name="inp_edit_options" prefix="test" field="Type" title="la_fld_Type" size="63"/> <inp2:m_ParseBlock name="inp_edit_date" prefix="test" field="CreatedOn" title="la_fld_CreatedOn"/> <!-- <inp2:m_ParseBlock name="inp_edit_checkbox" prefix="test" field="IsSystem" title="!la_fld_IsSystemTemplate!" onchange="OnSystemClick()"/>--> <inp2:m_ParseBlock name="inp_edit_box" prefix="test" field="Qty" title="!la_fld_Qty!" size="5"/> <inp2:m_ParseBlock name="inp_edit_box" prefix="test" field="Phone" title="!la_fld_Phone!" size="15"/> <inp2:m_ParseBlock name="inp_edit_box" prefix="test" field="Email" title="!la_fld_Email!" size="35"/> </table> </div> <inp2:m_include t="incs/footer"/> Property changes on: trunk/custom/admin_templates/tests/test_edit.tpl ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.1.1 \ No newline at end of property +1.2 \ No newline at end of property Index: trunk/custom/admin_templates/tests/test_list.tpl =================================================================== --- trunk/custom/admin_templates/tests/test_list.tpl (revision 7900) +++ trunk/custom/admin_templates/tests/test_list.tpl (revision 7901) @@ -1,68 +1,65 @@ <inp2:m_RequireLogin permissions="proj-cms:all_pages.view" system="1"/> -<inp2:m_include t="incs/header" nobody="yes"/> +<inp2:m_include t="incs/header" /> -<body class="regular-body"> -<inp2:m_ParseBlock name="section_header" prefix="test" icon="icon46_test" module="custom" title="la_title_Test"/> - -<inp2:m_ParseBlock name="blue_bar" prefix="test" test[grid]="Default" pagination="1" title_preset="test_list" module="custom" icon="icon46_test"/> +<inp2:m_RenderElement name="combined_header" section="custom:tests" prefix="test" title_preset="" 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(); a_toolbar.AddButton( new ToolBarButton('new_item', '<inp2:m_phrase label="la_ToolTip_NewTest" escape="1"/>::<inp2:m_phrase label="la_Add" escape="1"/>', function() { // set_hidden_field('remove_specials[test]', 1); std_precreate_item('test', 'custom/tests/test_edit') } ) ); function edit() { set_hidden_field('remove_specials[test]', 1); std_edit_item('test', 'custom/tests/test_edit'); } a_toolbar.AddButton( new ToolBarButton('edit', '<inp2:m_phrase label="la_ToolTip_Edit" escape="1"/>::<inp2:m_phrase label="la_ShortToolTip_Edit" escape="1"/>', edit) ); a_toolbar.AddButton( new ToolBarButton('delete', '<inp2:m_phrase label="la_ToolTip_Delete" escape="1"/>', function() { std_delete_items('test'); } ) ); 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="test" grid="Default"/> </tr> </table> </td> </tr> </tbody> </table> <inp2:m_ParseBlock name="grid" PrefixSpecial="test" IdField="TestId" grid="Default" grid_filters="1"/> <script type="text/javascript"> Grids['test'].SetDependantToolbarButtons( new Array('edit', 'delete') ); </script> <inp2:m_include t="incs/footer"/> \ No newline at end of file Property changes on: trunk/custom/admin_templates/tests/test_list.tpl ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.1.1 \ No newline at end of property +1.2 \ No newline at end of property Index: trunk/custom/install/install_schema.sql =================================================================== --- trunk/custom/install/install_schema.sql (revision 7900) +++ trunk/custom/install/install_schema.sql (revision 7901) @@ -1,13 +1,13 @@ CREATE TABLE Tests ( `TestId` int(11) NOT NULL auto_increment, `Title` varchar(255) NOT NULL default '', `Description` text, `Email` varchar(255) NOT NULL default '', - `Type` tinyint(4) NOT NULL default '0', + `Type` tinyint(4) NOT NULL default '1', `Phone` varchar(50) NOT NULL default '', `Qty` double NOT NULL default '0', - `Status` tinyint(4) NOT NULL default '0', + `Status` tinyint(4) NOT NULL default '2', `CreatedOn` int(11) NOT NULL default '0', `Good` tinyint(4) NOT NULL default '0', PRIMARY KEY (`TestId`) ) Property changes on: trunk/custom/install/install_schema.sql ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.1.1 \ No newline at end of property +1.2 \ No newline at end of property Index: trunk/custom/install/install_data.sql =================================================================== --- trunk/custom/install/install_data.sql (revision 7900) +++ trunk/custom/install/install_data.sql (revision 7901) @@ -1 +1 @@ -INSERT INTO Modules (Name, Path, Var, Version, Loaded, LoadOrder, TemplatePath, RootCat, BuildDate) VALUES ('Custom', 'custom/', 'custom', '0.0.1', 1, 2, '', 0, '0'); +INSERT INTO Modules (Name, Path, Var, Version, Loaded, LoadOrder, TemplatePath, RootCat, BuildDate) VALUES ('Custom', 'custom/', 'custom', '0.0.0', 1, 2, '', 0, '0'); Property changes on: trunk/custom/install/install_data.sql ___________________________________________________________________ Modified: cvs2svn:cvs-rev ## -1 +1 ## -1.1.1.1 \ No newline at end of property +1.2 \ No newline at end of property