Просмотр исходного кода

Persons, Organizations: describe the profile type in the add-profile menu

The "add profile" menu (sys_add_profile) lists profile types by title
only. Its items already have an info field, which the API sends
translated (_getMenuItemAPI). NEO's "Create your profile" screen shows
it under each type (unacms/neo#776), so the module now provides it:

- _bx_persons_menu_item_info_create_profile: "For yourself, with your
  own feed and connections."
- _bx_orgs_menu_item_info_create_profile: "For a company, team or
  community you run."
- en in each module's install/langs, ru in the Russian language pack;
  set as info on the sys_add_profile_links items in enable.sql.

scripts/add_lang_key.php: ADD_LANG_KEY_MODULE=<module> picks the module
when the key prefix doesn't name it (_bx_orgs_ keys belong to
bx_organizations; inference put them in system).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Andrey Yasko 2 недель назад
Родитель
Сommit
ba8e769a94

+ 1 - 0
modules/boonex/organizations/install/langs/en.xml

@@ -305,6 +305,7 @@
     <string name="_bx_orgs_menu_set_title_entries_my"><![CDATA[Profile Organizations Menu]]></string>
     <string name="_bx_orgs_menu_set_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
     <string name="_bx_orgs_menu_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
+    <string name="_bx_orgs_menu_item_info_create_profile"><![CDATA[For a company, team or community you run.]]></string>
     <string name="_bx_orgs_menu_item_title_system_delete_with_content"><![CDATA[Delete with Data]]></string>
     <string name="_bx_orgs_menu_item_title_delete_with_content"><![CDATA[Delete with Data]]></string>
     <string name="_bx_orgs_menu_item_title_system_clear_reports"><![CDATA[Clear reports]]></string>

+ 2 - 2
modules/boonex/organizations/install/sql/enable.sql

@@ -288,8 +288,8 @@ INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `tit
 
 -- MENU: add to create profile menu
 SET @iAddMenuOrder = (SELECT `order` FROM `sys_menu_items` WHERE `set_name` = 'sys_add_profile_links' AND `active` = 1 ORDER BY `order` DESC LIMIT 1);
-INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('sys_add_profile_links', 'bx_organizations', 'create-organization-profile', '_bx_orgs_menu_item_title_system_create_profile', '_bx_orgs_menu_item_title_create_profile', 'page.php?i=create-organization-profile', '', '', 'building', '', 2147483647, 1, 1, IFNULL(@iAddMenuOrder, 0) + 1);
+INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `info`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
+('sys_add_profile_links', 'bx_organizations', 'create-organization-profile', '_bx_orgs_menu_item_title_system_create_profile', '_bx_orgs_menu_item_title_create_profile', '_bx_orgs_menu_item_info_create_profile', 'page.php?i=create-organization-profile', '', '', 'building', '', 2147483647, 1, 1, IFNULL(@iAddMenuOrder, 0) + 1);
 
 -- MENU: view actions
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 

+ 1 - 0
modules/boonex/persons/install/langs/en.xml

@@ -227,6 +227,7 @@
     <string name="_bx_persons_menu_title_view_profile_submenu"><![CDATA[View Person Submenu]]></string>
     <string name="_bx_persons_menu_set_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
     <string name="_bx_persons_menu_title_manage_tools"><![CDATA[Manage Tools Submenu]]></string>
+    <string name="_bx_persons_menu_item_info_create_profile"><![CDATA[For yourself, with your own feed and connections.]]></string>
     <string name="_bx_persons_menu_item_title_system_delete_with_content"><![CDATA[Delete with Data]]></string>
     <string name="_bx_persons_menu_item_title_delete_with_content"><![CDATA[Delete with Data]]></string>
     <string name="_bx_persons_menu_item_title_system_clear_reports"><![CDATA[Clear reports]]></string>

+ 2 - 2
modules/boonex/persons/install/sql/enable.sql

@@ -223,8 +223,8 @@ INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `tit
 -- ('sys_profiles_create', 'bx_persons', 'create-person-profile', '_bx_persons_menu_item_title_system_profile_type', '_bx_persons_menu_item_title_profile_type', 'page.php?i=create-persons-profile', '', '', 'user', '', 2147483647, 1, 1, IFNULL(@iCreateProfileMenuOrder, 0) + 1);
 
 SET @iAddMenuOrder = (SELECT `order` FROM `sys_menu_items` WHERE `set_name` = 'sys_add_profile_links' AND `active` = 1 ORDER BY `order` DESC LIMIT 1);
-INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('sys_add_profile_links', 'bx_persons', 'create-persons-profile', '_bx_persons_menu_item_title_system_create_profile', '_bx_persons_menu_item_title_create_profile', 'page.php?i=create-persons-profile', '', '', 'user', '', 2147483647, 1, 1, IFNULL(@iAddMenuOrder, 0) + 1);
+INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `info`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
+('sys_add_profile_links', 'bx_persons', 'create-persons-profile', '_bx_persons_menu_item_title_system_create_profile', '_bx_persons_menu_item_title_create_profile', '_bx_persons_menu_item_info_create_profile', 'page.php?i=create-persons-profile', '', '', 'user', '', 2147483647, 1, 1, IFNULL(@iAddMenuOrder, 0) + 1);
 
 -- MENU: view actions
 

+ 1 - 0
modules/boonex/russian/data/langs/bx_organizations/ru.xml

@@ -299,6 +299,7 @@
     <string name="_bx_orgs_menu_set_title_entries_my"><![CDATA[Организации профиля - Меню]]></string>
     <string name="_bx_orgs_menu_set_title_manage_tools"><![CDATA[Инструменты управления - Подменю]]></string>
     <string name="_bx_orgs_menu_title_manage_tools"><![CDATA[Инструменты управления - Подменю]]></string>
+    <string name="_bx_orgs_menu_item_info_create_profile"><![CDATA[Для компании, команды или сообщества, которыми вы управляете.]]></string>
     <string name="_bx_orgs_menu_item_title_system_delete_with_content"><![CDATA[Удалить с данными]]></string>
     <string name="_bx_orgs_menu_item_title_delete_with_content"><![CDATA[Удалить с данными]]></string>
     <string name="_bx_orgs_menu_item_title_system_clear_reports"><![CDATA[Очистить жалобы]]></string>

+ 1 - 0
modules/boonex/russian/data/langs/bx_persons/ru.xml

@@ -213,6 +213,7 @@
     <string name="_bx_persons_menu_title_view_profile_submenu"><![CDATA[Подменю просмотра персоны]]></string>
     <string name="_bx_persons_menu_set_title_manage_tools"><![CDATA[Инструменты управления - Подменю]]></string>
     <string name="_bx_persons_menu_title_manage_tools"><![CDATA[Инструменты управления - Подменю]]></string>
+    <string name="_bx_persons_menu_item_info_create_profile"><![CDATA[Для себя: собственная лента и связи.]]></string>
     <string name="_bx_persons_menu_item_title_system_delete_with_content"><![CDATA[Удалить с данными]]></string>
     <string name="_bx_persons_menu_item_title_delete_with_content"><![CDATA[Удалить с данными]]></string>
     <string name="_bx_persons_menu_item_title_system_clear_reports"><![CDATA[Очистить жалобы]]></string>

+ 18 - 3
scripts/add_lang_key.php

@@ -16,6 +16,9 @@
  * A translation of "-" is read from stdin. A single trailing newline on
  * stdin is removed; newlines inside the text are kept.
  *
+ * When the key prefix doesn't name the module (bx_organizations uses _bx_orgs_),
+ * set ADD_LANG_KEY_MODULE=<module name>.
+ *
  * Run inside the php container:
  *   docker exec -i una-php-1 php /opt/una/scripts/add_lang_key.php en _sys_example "Hello"
  */
@@ -66,9 +69,21 @@ $sRoot = dirname(__DIR__) . '/';
 $aModules = loadModules($sRoot);
 $aLangModules = loadLanguageModules($sRoot);
 
-$aModule = findModuleByExistingKey($sRoot, $sKey, $aModules);
-if (!$aModule)
-    $aModule = inferModule($sKey, $aModules);
+// ADD_LANG_KEY_MODULE=<module name> picks the module when the key prefix can't tell
+// (e.g. _bx_orgs_ keys belong to bx_organizations).
+$sForced = getenv('ADD_LANG_KEY_MODULE');
+if ($sForced !== false && $sForced !== '') {
+    if (!isset($aModules[$sForced])) {
+        fwrite(STDERR, "Unknown module '$sForced'\n");
+        exit(2);
+    }
+    $aModule = $aModules[$sForced];
+}
+else {
+    $aModule = findModuleByExistingKey($sRoot, $sKey, $aModules);
+    if (!$aModule)
+        $aModule = inferModule($sKey, $aModules);
+}
 
 $sFile = resolveLangFile($sRoot, $sLang, $aModule, $aLangModules);
 $sRel = ltrim(str_replace('\\', '/', substr($sFile, strlen($sRoot))), '/');