'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!'), 'edit_status_labels' => Array('test'=>'!la_title_EditingTest!'), 'new_titlefield' => Array('test'=>''), ), 'test_list'=>Array( 'prefixes' => Array('test_List'), 'format' => '!la_title_Tests! (#test_recordcount#)', ), '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' => Array( 'parent' => 'in-portal:root', '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' => 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' => 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' => 1, 'default' => '', 'error_msgs' => Array('invalid_format'=>'!la_invalid_email!') ), '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' => '','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), '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'), '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'), '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 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) */