Index: branches/5.1.x/core/units/phrases/phrases_config.php =================================================================== diff -u -N -r13086 -r13151 --- branches/5.1.x/core/units/phrases/phrases_config.php (.../phrases_config.php) (revision 13086) +++ branches/5.1.x/core/units/phrases/phrases_config.php (.../phrases_config.php) (revision 13151) @@ -1,6 +1,6 @@ 'phrases', - 'Clones' => Array ( - 'phrases-single' => Array ( - 'ForeignKey' => false, - 'ParentTableKey' => false, - 'ParentPrefix' => false, - - 'Sections' => Array ( - // "Phrases" - 'in-portal:phrases' => Array ( - 'parent' => 'in-portal:site', - 'icon' => 'phrases_labels', - 'label' => 'la_title_Phrases', - 'url' => Array ('t' => 'languages/phrase_list', 'pass' => 'm'), - 'permissions' => Array ('view', 'add', 'edit', 'delete'), -// 'perm_prefix' => 'lang', - 'priority' => 4, -// 'show_mode' => smSUPER_ADMIN, - 'type' => stTREE, - ), - ), - ) - ), - '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'), @@ -67,54 +44,61 @@ 'phrase_edit' => Array ( 'prefixes' => Array ('phrases'), 'format' => '#phrases_status# #phrases_titlefield#', 'toolbar_buttons' => Array ('select', 'cancel', 'reset_edit', 'prev', 'next'), - ), + ), // for separate phrases list 'phrases_list_st' => Array ( - 'prefixes' => Array ('phrases.st_List'), 'format' => "!la_title_Phrases!", + 'prefixes' => Array ('phrases_List'), 'format' => "!la_title_Phrases!", 'toolbar_buttons' => Array ('new_item', 'edit', 'delete', 'view', 'dbl-click'), - ), + ), 'phrase_edit_single' => Array ( 'prefixes' => Array ('phrases'), 'format' => '#phrases_status# #phrases_titlefield#', 'toolbar_buttons' => Array ('select', 'cancel', 'reset_edit', 'prev', 'next'), - ), + ), ), + 'Sections' => Array ( + // "Phrases" + 'in-portal:phrases' => Array ( + 'parent' => 'in-portal:site', + 'icon' => 'phrases_labels', + 'label' => 'la_title_Phrases', + 'url' => Array ('t' => 'languages/phrase_list', 'pass' => 'm'), + 'permissions' => Array ('view', 'add', 'edit', 'delete'), +// 'perm_prefix' => 'lang', + 'priority' => 4, +// 'show_mode' => smSUPER_ADMIN, + 'type' => stTREE, + ), + ), + '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), + Array ('mode' => 'AND', 'filters' => Array ('translated', 'not_translated'), 'type' => HAVING_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'), + 'translated' => Array ('label' => 'la_PhraseTranslated', 'on_sql' => '', 'off_sql' => 'CurrentTranslation IS NULL'), + 'not_translated' => Array ('label' => 'la_PhraseNotTranslated', 'on_sql' => '', 'off_sql' => 'CurrentTranslation IS NOT NULL'), ) ), 'TableName' => TABLE_PREFIX . 'Phrase', 'CalculatedFields' => Array ( '' => Array ( - 'PrimaryTranslation' => 'pri.Translation', + 'PrimaryTranslation' => 'l%4$s_Translation', + 'CurrentTranslation' => 'l%5$s_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)', + '' => 'SELECT %1$s.* %2$s FROM %1$s', ), 'ListSortings' => Array ( @@ -123,60 +107,54 @@ ) ), - 'ForeignKey' => 'LanguageId', - 'ParentTableKey' => 'LanguageId', - 'ParentPrefix' => 'lang', - 'AutoDelete' => true, - 'AutoClone' => true, - 'Fields' => Array ( + 'PhraseId' => Array ('type' => 'int', 'not_null' => 1, 'default' => 0), 'Phrase' => Array ( 'type' => 'string', - 'required' => 1, 'unique' => Array ('LanguageId'), + 'required' => 1, 'unique' => Array (), 'not_null' => 1, 'default' => '' ), 'PhraseKey' => Array ('type' => 'string', 'max_len' => 255, 'not_null' => 1, 'default' => ''), - 'Translation' => Array ('type' => 'string', 'formatter' => 'kFormatter', 'required' => 1, 'using_fck' => 1, 'default' => NULL), + 'Translation' => Array ('type' => 'string', 'formatter' => 'kMultiLanguage', 'required' => 1, 'using_fck' => 1, 'default' => NULL, 'db_type' => 'text'), 'PhraseType' => Array ( 'type' => 'int', 'formatter' => 'kOptionsFormatter', 'options' => Array (0 => 'la_PhraseType_Front', 1 => 'la_PhraseType_Admin', 2 => 'la_PhraseType_Both'), 'use_phrases' => 1, 'not_null' => 1, 'required' => 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', 'default' => NULL), '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) AND (Name <> "In-Portal") ORDER BY LoadOrder', 'option_key_field' => 'Name', 'option_title_field' => 'Name', - 'not_null' => 1, 'default' => 'Core' + 'not_null' => 1, 'required' => 1, 'default' => 'Core' ), ), 'VirtualFields' => Array ( 'PrimaryTranslation' => Array ('type' => 'string', 'default' => ''), + 'CurrentTranslation' => Array ('type' => 'string', 'default' => ''), + + // for language pack import/export 'LangFile' => Array ( 'type' => 'string', 'formatter' => 'kUploadFormatter', 'max_size' => MAX_UPLOAD_SIZE, 'upload_dir' => WRITEBALE_BASE . '/', 'max_len' => 255, 'default' => '' ), - 'ImportOverwrite' => Array ('type' => 'int', 'default' => 0), - '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', + 'ImportOverwrite' => Array ( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, + 'default' => 0 ), + 'DoNotEncode' => Array ( + 'type' => 'int', + 'formatter' => 'kOptionsFormatter', 'options' => Array (1 => 'la_Yes', 0 => 'la_No'), 'use_phrases' => 1, + 'default' => 0 + ), ), 'Grids' => Array ( + // used on "Phrases" tab in language editing in "Regional" section 'Default' => Array ( 'Icons' => Array ( 'default' => 'icon16_item.png', @@ -186,14 +164,15 @@ '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_Label', 'data_block' => 'grid_checkbox_td', 'width' => 200), - 'Translation' => Array ('title' => 'la_col_Phrase', 'width' => 200), + 'CurrentTranslation' => Array ('title' => 'la_col_Phrase', 'width' => 200), 'PrimaryTranslation' => Array ('title' => 'la_col_PrimaryValue', 'width' => 200), 'PhraseType' => Array ('title' => 'la_col_PhraseType', 'filter_block' => 'grid_options_filter', 'width' => 60), 'LastChanged' => Array ('title' => 'la_col_Modified', 'filter_block' => 'grid_date_range_filter', 'width' => 150), 'Module' => Array ('title' => 'la_col_Module', 'filter_block' => 'grid_options_filter', 'width' => 100), ), ), + // used on "Labels & Phrases" section 'Phrases' => Array ( 'Icons' => Array ( 'default' => 'icon16_item.png', @@ -203,8 +182,7 @@ '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_Label', 'filter_block' => 'grid_like_filter', 'width' => 170), - 'Translation' => Array ('title' => 'la_col_Phrase', 'filter_block' => 'grid_like_filter', 'width' => 180), - 'PackName' => Array ('title' => 'la_col_Language', 'filter_block' => 'grid_options_filter', 'width' => 95), + 'CurrentTranslation' => Array ('title' => 'la_col_Phrase', 'filter_block' => 'grid_like_filter', 'width' => 180), 'PhraseType' => Array ('title' => 'la_col_Location', 'filter_block' => 'grid_options_filter', 'width' => 80), 'LastChanged' => Array ('title' => 'la_col_Modified', 'filter_block' => 'grid_date_range_filter', 'width' => 145), 'Module' => Array ('title' => 'la_col_Module', 'filter_block' => 'grid_options_filter', 'width' => 100),