'phrases', 'Clones' => Array ( 'phrases-single' => Array ( 'ForeignKey' => false, 'ParentTableKey' => false, 'ParentPrefix' => false, ) ), 'ItemClass' => Array ('class' => 'kDBItem', 'file' => '', 'build_event' => 'OnItemBuild'), 'ListClass' => Array ('class' => 'kDBList', 'file' => '', 'build_event' => 'OnListBuild'), 'EventHandlerClass' => Array ('class' => 'PhrasesEventHandler', 'file' => 'phrases_event_handler.php', 'build_event' => 'OnBuild'), 'TagProcessorClass' => Array ('class' => 'kDBTagProcessor', 'file' => '', 'build_event' => 'OnBuild'), 'AutoLoad' => true, 'Hooks' => Array ( Array ( 'Mode' => hBEFORE, 'Conditional' => false, 'HookToPrefix' => 'phrases', 'HookToSpecial' => '', 'HookToEvent' => Array('OnCreate'), 'DoPrefix' => 'phrases', 'DoSpecial' => '', 'DoEvent' => 'OnBeforePhraseCreate', ), Array ( 'Mode' => hAFTER, 'Conditional' => false, 'HookToPrefix' => 'phrases', 'HookToSpecial' => '', 'HookToEvent' => Array('OnBeforeItemCreate', 'OnBeforeItemUpdate'), 'DoPrefix' => 'phrases', 'DoSpecial' => '', 'DoEvent' => 'OnSetLastUpdated', ), ), 'QueryString' => Array ( 1 => 'id', 2 => 'page', 3 => 'event', 4 => 'label', 5 => 'mode', // labels can be edited directly ), 'IDField' => 'PhraseId', 'TitleField' => 'Phrase', 'TitlePresets' => Array ( 'default' => Array ( 'new_status_labels' => Array ('phrases' => '!la_title_Adding_Phrase!'), 'edit_status_labels' => Array ('phrases' => '!la_title_Editing_Phrase!'), ), 'phrase_edit' => Array ('prefixes' => Array ('phrases'), 'format' => '#phrases_status# #phrases_titlefield#'), // for separate phrases list 'phrases_list_st' => Array ('prefixes' => Array ('phrases.st_List'), 'format' => "!la_title_Phrases!"), 'phrase_edit_single' => Array ('prefixes' => Array ('phrases'), 'format' => '#phrases_status# #phrases_titlefield#'), ), 'FilterMenu' => Array ( 'Groups' => Array ( Array ('mode' => 'AND', 'filters' => Array ('show_front', 'show_admin', 'show_both'), 'type' => WHERE_FILTER), Array ('mode' => 'AND', 'filters' => Array ('translated', 'not_translated'), 'type' => WHERE_FILTER), ), 'Filters' => Array ( 'show_front' => Array ('label' =>'la_PhraseType_Front', 'on_sql' => '', 'off_sql' => '%1$s.PhraseType != 0'), 'show_admin' => Array ('label' => 'la_PhraseType_Admin', 'on_sql' => '', 'off_sql' => '%1$s.PhraseType != 1'), 'show_both' => Array ('label' => 'la_PhraseType_Both', 'on_sql' => '', 'off_sql' => '%1$s.PhraseType != 2'), 's1' => Array (), 'translated' => Array ('label' => 'la_PhraseTranslated', 'on_sql' => '', 'off_sql' => '%1$s.Translation = pri.Translation'), 'not_translated' => Array ('label' => 'la_PhraseNotTranslated', 'on_sql' => '', 'off_sql' => '%1$s.Translation != pri.Translation'), ) ), 'Sections' => Array ( // "Phrases" 'in-portal:phrases' => Array ( 'parent' => 'in-portal:site', 'icon' => 'core:settings_general', 'label' => 'la_title_Phrases', 'url' => Array ('t' => 'languages/phrase_list', 'pass' => 'm'), 'permissions' => Array ('view', 'add', 'edit', 'delete'), // 'perm_prefix' => 'lang', 'priority' => 5, // 'show_mode' => smSUPER_ADMIN, 'type' => stTREE, ), ), 'TableName' => TABLE_PREFIX . 'Phrase', 'CalculatedFields' => Array ( '' => Array ( 'PrimaryTranslation' => 'pri.Translation', ), 'st' => Array ( 'PackName' => 'lang.PackName', ), ), 'ListSQLs' => Array( '' => ' SELECT %1$s.* %2$s FROM %1$s LEFT JOIN ' . TABLE_PREFIX . 'Phrase pri ON (%1$s.Phrase = pri.Phrase) AND (pri.LanguageId = 1)', 'st' => 'SELECT %1$s.* %2$s FROM %1$s LEFT JOIN ' . TABLE_PREFIX . 'Language lang ON (%1$s.LanguageId = lang.LanguageId)', ), 'ListSortings' => Array ( '' => Array ( 'Sorting' => Array ('Phrase' => 'asc'), ) ), 'ForeignKey' => 'LanguageId', 'ParentTableKey' => 'LanguageId', 'ParentPrefix' => 'lang', 'AutoDelete' => true, 'AutoClone' => true, 'Fields' => Array ( 'Phrase' => Array ( 'type' => 'string', 'required' => 1, 'unique' => Array ('LanguageId'), 'not_null' => 1, 'default' => '' ), 'Translation' => Array ('type' => 'string', 'required'=>1,'not_null' => '1', 'default' => ''), 'PhraseType' => Array ('type' => 'int', 'required'=>1,'formatter' => 'kOptionsFormatter', 'options'=>Array (0=>'la_PhraseType_Front',1=>'la_PhraseType_Admin',2=>'la_PhraseType_Both'), 'use_phrases' => 1, 'not_null' => 1, 'default' => 0), 'PhraseId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'LanguageId' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM ' . TABLE_PREFIX . 'Language ORDER BY LocalName', 'option_key_field' => 'LanguageId', 'option_title_field' => 'LocalName', 'not_null' => 1, 'default' => 0 ), 'LastChanged' => Array ('type' => 'int', 'formatter' => 'kDateFormatter', 'not_null' => 1, 'default' => 0), 'LastChangeIP' => Array ('type' => 'string', 'not_null' => 1, 'default' => ''), 'Module' => Array ( 'type' => 'string', 'formatter' => 'kOptionsFormatter', 'options'=>Array ('' => ''), 'options_sql' => 'SELECT %s FROM '.TABLE_PREFIX.'Modules WHERE Loaded = 1 ORDER BY LoadOrder', 'option_key_field' => 'Name', 'option_title_field' => 'Name', 'not_null' => 1, 'default' => 'In-Portal' ), ), 'VirtualFields' => Array ( 'PrimaryTranslation' => Array (), 'LangFile' => Array (), 'ImportOverwrite' => Array (), 'DoNotEncode' => Array (), 'PackName' => Array ( 'type' => 'string', 'formatter' => 'kOptionsFormatter', 'options_sql' => 'SELECT %s FROM ' . TABLE_PREFIX . 'Language ORDER BY PackName', 'option_title_field' => 'PackName', 'option_key_field' => 'PackName', ), ), 'Grids' => Array ( 'Default' => Array ( 'Icons' => Array ('default' => 'icon16_language_var.gif'), 'Fields' => Array ( 'Phrase' => Array ('title' => 'la_col_Label', 'data_block' => 'grid_checkbox_td'), 'Translation' => Array ('title' => 'la_col_Translation'), 'PrimaryTranslation' => Array ('title' => 'la_col_PrimaryValue'), 'PhraseType' => Array ('title' => 'la_col_PhraseType', 'filter_block' => 'grid_options_filter'), 'LastChanged' => Array ('title' => 'la_col_LastChanged', 'filter_block' => 'grid_date_range_filter'), 'Module' => Array ('title' => 'la_col_Module', 'filter_block' => 'grid_options_filter'), ), ), 'Phrases' => Array ( 'Icons' => Array ('default' => 'icon16_language_var.gif'), 'Fields' => Array ( 'PhraseId' => Array ('title' => 'la_col_Id', 'data_block' => 'grid_checkbox_td', 'filter_block' => 'grid_range_filter', 'width' => 50), 'Phrase' => Array ('title' => 'la_col_Name', 'filter_block' => 'grid_like_filter', 'width' => 150), 'Translation' => Array ('title' => 'la_col_Translation', 'filter_block' => 'grid_like_filter', 'width' => 150), 'PackName' => Array ('title' => 'la_col_Language', 'filter_block' => 'grid_options_filter', 'width' => 100), 'PhraseType' => Array ('title' => 'la_col_Location', 'filter_block' => 'grid_options_filter', 'width' => 80), 'LastChanged' => Array ('title' => 'la_col_LastChanged', 'filter_block' => 'grid_date_range_filter'), 'Module' => Array ('title' => 'la_col_Module', 'filter_block' => 'grid_options_filter'), ), ), ), );