AntonLV 5 лет назад
Родитель
Сommit
6c961d1ff9
100 измененных файлов с 693 добавлено и 446 удалено
  1. 7 1
      inc/js/jquery.dolPopup.js
  2. 7 1
      inc/js/jquery.webForms.js
  3. 4 0
      inc/params.inc.php
  4. 2 0
      install/sql/addon.sql
  5. 0 0
      install/sql/system.sql
  6. 58 12
      modules/boonex/accounts/classes/BxAccntGridAdministration.php
  7. 3 0
      modules/boonex/accounts/classes/BxAccntMenuManageTools.php
  8. 17 5
      modules/boonex/accounts/classes/BxAccntModule.php
  9. 3 3
      modules/boonex/accounts/classes/BxAccntStudioPage.php
  10. 31 0
      modules/boonex/accounts/classes/BxAccntTemplate.php
  11. 2 0
      modules/boonex/accounts/install/langs/en.xml
  12. 3 2
      modules/boonex/accounts/install/sql/enable.sql
  13. 2 2
      modules/boonex/accounts/install/sql/install.sql
  14. 82 56
      modules/boonex/accounts/js/manage_tools.js
  15. 19 1
      modules/boonex/accounts/template/css/manage_tools.css
  16. 6 8
      modules/boonex/acl/classes/BxAclStudioPage.php
  17. 2 2
      modules/boonex/acl/install/sql/install.sql
  18. 3 3
      modules/boonex/ads/classes/BxAdsStudioPage.php
  19. 2 2
      modules/boonex/ads/install/sql/install.sql
  20. 2 2
      modules/boonex/albums/install/sql/install.sql
  21. 2 2
      modules/boonex/analytics/install/sql/install.sql
  22. 2 2
      modules/boonex/anon_follow/install/sql/install.sql
  23. 7 7
      modules/boonex/antispam/classes/BxAntispamStudioPage.php
  24. 2 2
      modules/boonex/antispam/install/sql/install.sql
  25. 2 2
      modules/boonex/api/install/sql/install.sql
  26. 2 2
      modules/boonex/attendant/install/sql/install.sql
  27. 2 2
      modules/boonex/channels/classes/BxCnlStudioPage.php
  28. 2 2
      modules/boonex/channels/install/sql/install.sql
  29. 2 2
      modules/boonex/charts/install/sql/install.sql
  30. 4 4
      modules/boonex/chat_plus/classes/BxChatPlusStudioPage.php
  31. 2 2
      modules/boonex/chat_plus/install/sql/install.sql
  32. 2 2
      modules/boonex/classes/classes/BxClssStudioPage.php
  33. 2 2
      modules/boonex/classes/install/sql/install.sql
  34. 2 2
      modules/boonex/contact/install/sql/install.sql
  35. 2 2
      modules/boonex/convos/install/sql/install.sql
  36. 2 2
      modules/boonex/courses/install/sql/install.sql
  37. 3 3
      modules/boonex/credits/classes/BxCreditsStudioPage.php
  38. 2 2
      modules/boonex/credits/install/sql/install.sql
  39. 2 2
      modules/boonex/datafox/classes/BxDataFoxStudioPage.php
  40. 2 2
      modules/boonex/datafox/install/sql/install.sql
  41. 29 29
      modules/boonex/decorous/classes/BxDecorousStudioPage.php
  42. 2 2
      modules/boonex/decorous/data/template/studio/scripts/BxTemplStudioDesign.php
  43. 2 2
      modules/boonex/decorous/data/template/studio/scripts/BxTemplStudioLanguage.php
  44. 2 2
      modules/boonex/decorous/data/template/studio/scripts/BxTemplStudioModule.php
  45. 2 2
      modules/boonex/decorous/install/sql/install.sql
  46. 1 1
      modules/boonex/developer/classes/BxDevBuilderPage.php
  47. 34 9
      modules/boonex/developer/classes/BxDevStudioPage.php
  48. 2 2
      modules/boonex/developer/classes/BxDevTemplate.php
  49. 2 2
      modules/boonex/developer/install/sql/install.sql
  50. 24 35
      modules/boonex/developer/template/css/main.css
  51. BIN
      modules/boonex/developer/template/images/bx-dev-bg-columns.png
  52. BIN
      modules/boonex/developer/template/images/bx-dev-bg-single.png
  53. 3 8
      modules/boonex/developer/template/page_content.html
  54. 4 4
      modules/boonex/dolphin_connect/classes/BxDolConStudioPage.php
  55. 2 2
      modules/boonex/dolphin_connect/install/sql/install.sql
  56. 16 16
      modules/boonex/dolphin_migration/classes/BxDolMStudioPage.php
  57. 2 2
      modules/boonex/dolphin_migration/install/sql/install.sql
  58. 4 4
      modules/boonex/drupal_connect/classes/BxDrupalStudioPage.php
  59. 2 2
      modules/boonex/drupal_connect/install/sql/install.sql
  60. 3 3
      modules/boonex/elasticsearch/classes/BxElsStudioPage.php
  61. 2 2
      modules/boonex/elasticsearch/install/sql/install.sql
  62. 122 37
      modules/boonex/english/data/langs/system/en.xml
  63. 2 2
      modules/boonex/english/install/sql/install.sql
  64. 2 2
      modules/boonex/events/install/sql/install.sql
  65. 4 4
      modules/boonex/facebook_connect/classes/BxFaceBookConnectStudioPage.php
  66. 2 2
      modules/boonex/facebook_connect/install/sql/install.sql
  67. 3 3
      modules/boonex/feedback/classes/BxFdbStudioPage.php
  68. 2 2
      modules/boonex/feedback/install/sql/install.sql
  69. 2 2
      modules/boonex/files/install/sql/install.sql
  70. 2 2
      modules/boonex/fontawesome/classes/BxFontAwesomeStudioPage.php
  71. 2 2
      modules/boonex/fontawesome/install/sql/install.sql
  72. 6 8
      modules/boonex/forum/classes/BxForumStudioPage.php
  73. 2 2
      modules/boonex/forum/install/sql/install.sql
  74. 4 4
      modules/boonex/froala/classes/BxFroalaStudioPage.php
  75. 2 2
      modules/boonex/froala/install/sql/install.sql
  76. 2 2
      modules/boonex/glossary/install/sql/install.sql
  77. 4 4
      modules/boonex/google_connect/classes/BxGoogleConStudioPage.php
  78. 2 2
      modules/boonex/google_connect/install/sql/install.sql
  79. 2 2
      modules/boonex/google_tagmanager/install/sql/install.sql
  80. 2 2
      modules/boonex/groups/install/sql/install.sql
  81. 4 4
      modules/boonex/intercom/classes/BxIntercomStudioPage.php
  82. 2 2
      modules/boonex/intercom/install/sql/install.sql
  83. 2 2
      modules/boonex/invites/classes/BxInvStudioPage.php
  84. 2 2
      modules/boonex/invites/install/sql/install.sql
  85. 4 4
      modules/boonex/linkedin_connect/classes/BxLinkedinStudioPage.php
  86. 2 2
      modules/boonex/linkedin_connect/install/sql/install.sql
  87. 33 33
      modules/boonex/lucid/classes/BxLucidStudioPage.php
  88. 2 2
      modules/boonex/lucid/data/template/studio/scripts/BxTemplStudioDesign.php
  89. 2 2
      modules/boonex/lucid/data/template/studio/scripts/BxTemplStudioLanguage.php
  90. 2 2
      modules/boonex/lucid/data/template/studio/scripts/BxTemplStudioModule.php
  91. 2 2
      modules/boonex/lucid/install/sql/install.sql
  92. 4 4
      modules/boonex/mailchimp/classes/BxMailchimpStudioPage.php
  93. 2 2
      modules/boonex/mailchimp/install/sql/install.sql
  94. 2 2
      modules/boonex/mapshow/install/sql/install.sql
  95. 2 2
      modules/boonex/market/install/sql/install.sql
  96. 2 2
      modules/boonex/massmailer/install/sql/install.sql
  97. 2 2
      modules/boonex/new_comments/install/sql/install.sql
  98. 5 5
      modules/boonex/nexus/classes/BxNexusStudioPage.php
  99. 2 2
      modules/boonex/nexus/install/sql/install.sql
  100. 5 5
      modules/boonex/notifications/classes/BxNtfsStudioPage.php

+ 7 - 1
inc/js/jquery.dolPopup.js

@@ -213,6 +213,9 @@
                 }
 
                 // Don't should popup with pointer if there is no parent. Checking before showing. 
+                if(typeof o.pointer.el == 'string')
+                    o.pointer.el = $(o.pointer.el);
+
                 if($(o.pointer.el).length > 0 && !$.contains(document, o.pointer.el[0])) {
             		$el.remove();
             		return;
@@ -234,6 +237,9 @@
 
                 setTimeout(function () {
                 	// Don't should popup with pointer if there is no parent. Checking after showing.
+                        if(typeof o.pointer.el == 'string')
+                            o.pointer.el = $(o.pointer.el);
+
                 	if($(o.pointer.el).length > 0 && !$.contains(document, o.pointer.el[0])) {
                 		$el.remove();
                 		return;
@@ -768,7 +774,7 @@
             if (o.pointer != false) {                
                 
                 var yOffset = 3;
-                var ePointAt = 'string' == o.pointer.el ? $(o.pointer.el) : o.pointer.el;
+                var ePointAt = typeof o.pointer.el == 'string' ? $(o.pointer.el) : o.pointer.el;
                 if (!ePointAt)
                     ePointAt = $('body');
 

+ 7 - 1
inc/js/jquery.webForms.js

@@ -8,14 +8,20 @@
 
 (function($) {
 
-    $.fn.addWebForms = function() {
+    $.fn.addWebForms = function(onLoad) {
         if ('undefined' === typeof(glJsLoadOnaddWebForms) || !glJsLoadOnaddWebForms.length) {
             $.fn.processWebForms.apply(this);
+
+            if(typeof onLoad == 'function')
+                onLoad();
         }
         else {
             var $this = this;
             bx_get_scripts(glJsLoadOnaddWebForms, function () {
                 $.fn.processWebForms.apply($this);
+
+                if(typeof onLoad == 'function')
+                    onLoad();
             });
         }
 

+ 4 - 0
inc/params.inc.php

@@ -73,6 +73,10 @@ define('BX_DOL_ROLE_GUEST', 0);
 define('BX_DOL_ROLE_MEMBER', 1);
 define('BX_DOL_ROLE_ADMIN', 2);
 
+//--- User Roles in Studio ---//
+define('BX_DOL_STUDIO_ROLE_MASTER', 1);
+define('BX_DOL_STUDIO_ROLE_OPERATOR', 2);
+
 //--- Profile Statuses ---//
 define('BX_PROFILE_STATUS_SUSPENDED', 'suspended'); ///< profile status - suspended, profile is syspended by admin/moderator and usually can't access the site
 define('BX_PROFILE_STATUS_ACTIVE', 'active'); ///< profile status - active, profile is active on the site

+ 2 - 0
install/sql/addon.sql

@@ -9,6 +9,8 @@ SET @iAccountId = LAST_INSERT_ID();
 INSERT INTO `sys_profiles` (`account_id`, `type`, `content_id`, `status`) VALUES
 (@iAccountId, 'system', @iAccountId, 'active');
 
+INSERT INTO `sys_std_roles_members` (`account_id`, `role`) VALUES
+(@iAccountId, 1);
 
 -- default bot profile
 

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
install/sql/system.sql


+ 58 - 12
modules/boonex/accounts/classes/BxAccntGridAdministration.php

@@ -346,6 +346,48 @@ class BxAccntGridAdministration extends BxBaseModProfileGridAdministration
         return echoJson(array('grid' => $this->getCode(false), 'blink' => $aIds));
     }
 
+    public function performActionSetOperatorRole()
+    {
+    	$aIds = bx_get('ids');
+        if(!$aIds || !is_array($aIds))
+            return echoJson(array());
+        
+        $oUtils = BxDolStudioRolesUtils::getInstance();
+
+        $aRoles = $oUtils->getRoles();
+        if(empty($aRoles) || !is_array($aRoles))
+            return echoJson(array('msg' => _t('_sys_txt_error_occured')));
+
+        $iId = (int)array_shift($aIds);
+
+        $sPopupName = str_replace('_', '-', $this->MODULE) . '-set-role-popup';
+        $sPopupContent = $this->_oModule->_oTemplate->getPopupSetRole($aRoles, $iId, $oUtils->getRole($iId));
+
+        return echoJson(array('popup' => array(
+            'html' => BxTemplFunctions::getInstance()->transBox($sPopupName, $sPopupContent),
+            'options' => array(
+                'closeOnOuterClick' => true,
+                'removeOnClose' => true
+            )
+        )));
+    }
+
+    public function performActionSetOperatorRoleSubmit()
+    {
+        $aIds = bx_get('ids');
+        if(!$aIds || !is_array($aIds))
+            return echoJson(array());
+
+        $iId = (int)array_shift($aIds);
+        if(!$iId)
+            return echoJson(array('msg' => _t('_sys_txt_error_occured')));
+
+        if(!BxDolStudioRolesUtils::getInstance()->setRole($iId, bx_process_input(bx_get('role'), BX_DATA_INT)))
+            return echoJson(array('msg' => _t('_error occured')));
+
+        echoJson(array('grid' => $this->getCode(false), 'blink' => $iId));
+    }
+
     public function performActionMakeOperator()
     {
     	$this->_performActionChangeRole(3);
@@ -361,26 +403,30 @@ class BxAccntGridAdministration extends BxBaseModProfileGridAdministration
         $CNF = &$this->_oModule->_oConfig->CNF;
 
         $aIds = bx_get('ids');
-        if(!$aIds || !is_array($aIds)) {
-            echoJson(array());
-            return;
-        }
+        if(!$aIds || !is_array($aIds))
+            return echoJson(array());
+
+        $oAccount = BxDolAccount::getInstance();
+        $oUtils = BxDolStudioRolesUtils::getInstance();
 
         $iAffected = 0;
         $aIdsAffected = array();
-        foreach($aIds as $iId)
-            if($this->_oModule->_oDb->updateAccount(array('role' => $iRole), array('id' => $iId))) {
-                $aIdsAffected[] = $iId;
-                $iAffected++;
+        foreach($aIds as $iId) {
+            if(!$this->_oModule->_oDb->updateAccount(array('role' => $iRole), array('id' => $iId))) 
+                continue;
 
-                $oAccount = BxDolAccount::getInstance($iId);
-                $oAccount->doAudit($iId, '_sys_audit_action_account_change_role_to_' . $iRole);
-            }
+            $oUtils->setRole($iId, $iRole == 3 ? BX_DOL_STUDIO_ROLE_OPERATOR : 0);
+
+            $oAccount->doAudit($iId, '_sys_audit_action_account_change_role_to_' . $iRole);
+
+            $aIdsAffected[] = $iId;
+            $iAffected++;
+        }
 
         echoJson($iAffected ? array('grid' => $this->getCode(false), 'blink' => $aIdsAffected) : array('msg' => _t($CNF['T']['grid_action_err_perform'])));
     }
 
-	protected function _performActionEnable($isChecked)
+    protected function _performActionEnable($isChecked)
     {
     	$CNF = &$this->_oModule->_oConfig->CNF;
 

+ 3 - 0
modules/boonex/accounts/classes/BxAccntMenuManageTools.php

@@ -41,6 +41,9 @@ class BxAccntMenuManageTools extends BxBaseModGeneralMenuManageTools
             case 'delete-with-content':
                 $sCheckFuncName = 'checkAllowedDelete';
                 break;
+            case 'set-operator-role':
+                $sCheckFuncName = 'checkAllowedSetOperatorRole';
+            	break;
             case 'make-operator':
             	$sCheckFuncName = 'checkAllowedMakeOperator';
             	break;

+ 17 - 5
modules/boonex/accounts/classes/BxAccntModule.php

@@ -80,20 +80,32 @@ class BxAccntModule extends BxBaseModGeneralModule
         return CHECK_ACTION_RESULT_ALLOWED;
     }
 
+    public function checkAllowedSetOperatorRole(&$aDataEntry, $isPerformAction = false)
+    {
+    	$bAdmin = isAdmin();
+        $iAccountId = getLoggedId();
+    	if(!$bAdmin || !BxDolStudioRolesUtils::getInstance()->isActionAllowed(BX_SRA_MANAGE_ROLES, $iAccountId) || (int)$aDataEntry['id'] == $iAccountId)
+            return _t('_sys_txt_access_denied');
+
+    	return CHECK_ACTION_RESULT_ALLOWED;
+    }
+
     public function checkAllowedMakeOperator(&$aDataEntry, $isPerformAction = false)
     {
     	$bAdmin = isAdmin();
-    	if(!$bAdmin || (int)$aDataEntry['id'] == getLoggedId() || (int)$aDataEntry['role'] == 3)
-    		return _t('_sys_txt_access_denied');
+        $iAccountId = getLoggedId();
+    	if(!$bAdmin || !BxDolStudioRolesUtils::getInstance()->isActionAllowed(BX_SRA_MANAGE_ROLES, $iAccountId) || (int)$aDataEntry['id'] == $iAccountId || (int)$aDataEntry['role'] == 3)
+            return _t('_sys_txt_access_denied');
 
     	return CHECK_ACTION_RESULT_ALLOWED;
     }
 
-	public function checkAllowedUnmakeOperator(&$aDataEntry, $isPerformAction = false)
+    public function checkAllowedUnmakeOperator(&$aDataEntry, $isPerformAction = false)
     {
     	$bAdmin = isAdmin();
-    	if(!$bAdmin || (int)$aDataEntry['id'] == getLoggedId() || (int)$aDataEntry['role'] != 3)
-    		return _t('_sys_txt_access_denied');
+        $iAccountId = getLoggedId();
+    	if(!$bAdmin || !BxDolStudioRolesUtils::getInstance()->isActionAllowed(BX_SRA_MANAGE_ROLES, $iAccountId) || (int)$aDataEntry['id'] == $iAccountId || (int)$aDataEntry['role'] != 3)
+            return _t('_sys_txt_access_denied');
 
     	return CHECK_ACTION_RESULT_ALLOWED;
     }

+ 3 - 3
modules/boonex/accounts/classes/BxAccntStudioPage.php

@@ -14,16 +14,16 @@ define('BX_DOL_STUDIO_MOD_TYPE_MANAGE', 'manage');
 class BxAccntStudioPage extends BxTemplStudioModule
 {
     protected $_sModule;
-	protected $_oModule;
+    protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
         $this->sPageDefault = BX_DOL_STUDIO_MOD_TYPE_MANAGE;
 
         $this->_sModule = 'bx_accounts';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
             array('name' => BX_DOL_STUDIO_MOD_TYPE_MANAGE, 'icon' => 'wrench', 'title' => '_bx_accnt_menu_item_title_manage')

+ 31 - 0
modules/boonex/accounts/classes/BxAccntTemplate.php

@@ -74,6 +74,37 @@ class BxAccntTemplate extends BxBaseModGeneralTemplate
 
         return $this->parseHtmlByName('profiles.html', $aTmplVars);
     }
+
+    public function getPopupSetRole($aRoles, $iAccountId, $iAccountRole)
+    {
+        $sJsObject = $this->_oConfig->getJsObject('manage_tools');
+        $sHtmlIdPrefix = str_replace('_', '-', $this->_oConfig->getName()) . '-role';
+
+        $aRoles = array_merge(array(array('id' => 0, 'title' => '_None')), $aRoles);
+
+        $aTmplVarsRoles = array();
+        foreach($aRoles as $aRole) {
+            $iRole = (int)$aRole['id'];
+
+            if($iRole == BX_DOL_STUDIO_ROLE_MASTER)
+                continue;
+
+            $aTmplVarsRoles[] = array(
+                'id' => $sHtmlIdPrefix . '-' . $iRole, 
+                'value' => $iRole,
+                'onclick' => $sJsObject . '.onClickSetOperatorRoleSubmit(this, ' . $iAccountId . ', ' . $iRole . ')',
+                'title' => _t($aRole['title']), 
+                'bx_if:show_checked' => array(
+                    'condition' => $iRole != 0 && $iAccountRole & (1 << ($iRole - 1)),
+                    'content' => array()
+                )
+            );
+        }
+
+        return $this->parseHtmlByName('set_role_popup.html', array(
+            'bx_repeat:roles' => $aTmplVarsRoles
+        ));
+    }
 }
 
 /** @} */

+ 2 - 0
modules/boonex/accounts/install/langs/en.xml

@@ -36,6 +36,8 @@
     <string name="_bx_accnt_menu_item_title_make_operator"><![CDATA[Make Operator]]></string>
     <string name="_bx_accnt_menu_item_title_system_unmake_operator"><![CDATA[Unmake Operator]]></string>
     <string name="_bx_accnt_menu_item_title_unmake_operator"><![CDATA[Unmake Operator]]></string>
+    <string name="_bx_accnt_menu_item_title_system_set_operator_role"><![CDATA[Set Operator Role]]></string>
+    <string name="_bx_accnt_menu_item_title_set_operator_role"><![CDATA[Set Operator Role]]></string>
     <string name="_bx_accnt_menu_item_title_system_admt_accounts"><![CDATA[Accounts]]></string>
     <string name="_bx_accnt_menu_item_title_admt_accounts"><![CDATA[Accounts]]></string>
     <string name="_bx_accnt_menu_item_title_manage"><![CDATA[Manage]]></string>

+ 3 - 2
modules/boonex/accounts/install/sql/enable.sql

@@ -25,8 +25,9 @@ INSERT INTO `sys_menu_items`(`set_name`, `module`, `name`, `title_system`, `titl
 ('bx_accounts_menu_manage_tools', @sName, 'unlock-account', '_bx_accnt_menu_item_title_system_unlock_account', '_bx_accnt_menu_item_title_unlock_account', 'javascript:void(0)', 'javascript:{js_object}.onClickUnlockAccount({content_id}, this);', '_self', 'unlock', '', 192, 1, 0, 6),
 ('bx_accounts_menu_manage_tools', @sName, 'delete', '_bx_accnt_menu_item_title_system_delete', '_bx_accnt_menu_item_title_delete', 'javascript:void(0)', 'javascript:{js_object}.onClickDelete({content_id}, this);', '_self', 'far trash-alt', '', 192, 1, 0, 7),
 ('bx_accounts_menu_manage_tools', @sName, 'delete-with-content', '_bx_accnt_menu_item_title_system_delete_with_content', '_bx_accnt_menu_item_title_delete_with_content', 'javascript:void(0)', 'javascript:{js_object}.onClickDeleteWithContent({content_id}, this);', '_self', 'far trash-alt', '', 192, 1, 0, 8),
-('bx_accounts_menu_manage_tools', @sName, 'make-operator', '_bx_accnt_menu_item_title_system_make_operator', '_bx_accnt_menu_item_title_make_operator', 'javascript:void(0)', 'javascript:{js_object}.onClickMakeOperator({content_id}, this);', '_self', 'wrench', '', 192, 1, 0, 9),
-('bx_accounts_menu_manage_tools', @sName, 'unmake-operator', '_bx_accnt_menu_item_title_system_unmake_operator', '_bx_accnt_menu_item_title_unmake_operator', 'javascript:void(0)', 'javascript:{js_object}.onClickUnmakeOperator({content_id}, this);', '_self', 'wrench', '', 192, 1, 0, 10);
+('bx_accounts_menu_manage_tools', @sName, 'make-operator', '_bx_accnt_menu_item_title_system_make_operator', '_bx_accnt_menu_item_title_make_operator', 'javascript:void(0)', 'javascript:{js_object}.onClickMakeOperator({content_id}, this);', '_self', 'wrench', '', 192, 0, 0, 9),
+('bx_accounts_menu_manage_tools', @sName, 'unmake-operator', '_bx_accnt_menu_item_title_system_unmake_operator', '_bx_accnt_menu_item_title_unmake_operator', 'javascript:void(0)', 'javascript:{js_object}.onClickUnmakeOperator({content_id}, this);', '_self', 'wrench', '', 192, 0, 0, 10),
+('bx_accounts_menu_manage_tools', @sName, 'set-operator-role', '_bx_accnt_menu_item_title_system_set_operator_role', '_bx_accnt_menu_item_title_set_operator_role', 'javascript:void(0)', 'javascript:{js_object}.onClickSetOperatorRole({content_id}, this);', '_self', 'wrench', '', 192, 1, 0, 11);
 
 -- MENU: dashboard manage tools
 SET @iManageMenuOrder = (SELECT IFNULL(MAX(`order`), 0) FROM `sys_menu_items` WHERE `set_name`='sys_account_dashboard_manage_tools' LIMIT 1);

+ 2 - 2
modules/boonex/accounts/install/sql/install.sql

@@ -45,7 +45,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, '{url_studio}module.php?name=bx_accounts', '', 'bx_accounts@modules/boonex/accounts/|std-icon.svg', '_bx_accnt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'users', '{url_studio}module.php?name=bx_accounts', '', 'bx_accounts@modules/boonex/accounts/|std-icon.svg', '_bx_accnt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 82 - 56
modules/boonex/accounts/js/manage_tools.js

@@ -10,8 +10,8 @@
 
 function BxAccntManageTools(oOptions) {
     this._iSearchTimeoutId = false;
-	this._sActionsUrl = oOptions.sActionUrl;    
-	this._sObjNameGrid = oOptions.sObjNameGrid;
+    this._sActionsUrl = oOptions.sActionUrl;    
+    this._sObjNameGrid = oOptions.sObjNameGrid;
     this._sObjName = oOptions.sObjName == undefined ? 'oBxAccntManageTools' : oOptions.sObjName;
 
     this._sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect;
@@ -24,16 +24,16 @@ function BxAccntManageTools(oOptions) {
 
 BxAccntManageTools.prototype.onChangeFilter = function(oFilter) {
     var $this = this;
-	var oFilter1 = $('#bx-grid-filter1-' + this._sObjNameGrid);
-	var sValueFilter1 = oFilter1.length > 0 ? oFilter1.val() : '';
+    var oFilter1 = $('#bx-grid-filter1-' + this._sObjNameGrid);
+    var sValueFilter1 = oFilter1.length > 0 ? oFilter1.val() : '';
 
-	var oFilter2 = $('#bx-grid-filter2-' + this._sObjNameGrid);
-	var sValueFilter2 = oFilter2.length > 0 ? oFilter2.val() : '';
+    var oFilter2 = $('#bx-grid-filter2-' + this._sObjNameGrid);
+    var sValueFilter2 = oFilter2.length > 0 ? oFilter2.val() : '';
 
-	var oSearch = $('#bx-grid-search-' + this._sObjNameGrid);
-	var sValueSearch = oSearch.length > 0 ? oSearch.val() : '';
-	if(sValueSearch == _t('_sys_grid_search'))
-		sValueSearch = '';
+    var oSearch = $('#bx-grid-search-' + this._sObjNameGrid);
+    var sValueSearch = oSearch.length > 0 ? oSearch.val() : '';
+    if(sValueSearch == _t('_sys_grid_search'))
+        sValueSearch = '';
 
     clearTimeout($this._iSearchTimeoutId);
     $this._iSearchTimeoutId = setTimeout(function () {
@@ -42,28 +42,28 @@ BxAccntManageTools.prototype.onChangeFilter = function(oFilter) {
 };
 
 BxAccntManageTools.prototype.onClickSettings = function(sMenuObject, oButton) {
-	if($(oButton).hasClass('bx-btn-disabled'))
-		return false;
+    if($(oButton).hasClass('bx-btn-disabled'))
+        return false;
 
-	bx_menu_popup(sMenuObject, oButton, {}, {
-		content_id: $(oButton).attr('bx_grid_action_data')
-	});
+    bx_menu_popup(sMenuObject, oButton, {}, {
+        content_id: $(oButton).attr('bx_grid_action_data')
+    });
 };
 
 BxAccntManageTools.prototype.onClickEditEmail = function(iContentId, oLink) {
-	$('.bx-popup-applied:visible').dolPopupHide();
+    $('.bx-popup-applied:visible').dolPopupHide();
 
-	var oGrid = glGrids[this._sObjNameGrid];
-	var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
-	oGrid.actionWithId(iContentId, 'edit_email', oData, '', false, 0);
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
+    oGrid.actionWithId(iContentId, 'edit_email', oData, '', false, 0);
 };
 
 BxAccntManageTools.prototype.onClickResendCemail = function(iContentId, oLink) {
-	$('.bx-popup-applied:visible').dolPopupHide();
+    $('.bx-popup-applied:visible').dolPopupHide();
 
-	var oGrid = glGrids[this._sObjNameGrid];
-	var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
-	oGrid.actionWithId(iContentId, 'resend_cemail', oData, '', false, 0);
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
+    oGrid.actionWithId(iContentId, 'resend_cemail', oData, '', false, 0);
 };
 
 BxAccntManageTools.prototype.onClickConfirm = function (iContentId, oLink) {
@@ -75,19 +75,19 @@ BxAccntManageTools.prototype.onClickConfirm = function (iContentId, oLink) {
 };
 
 BxAccntManageTools.prototype.onClickResetPassword = function(iContentId, oLink) {
-	$('.bx-popup-applied:visible').dolPopupHide();
+    $('.bx-popup-applied:visible').dolPopupHide();
 
-	var oGrid = glGrids[this._sObjNameGrid];
-	var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
-	oGrid.actionWithId(iContentId, 'reset_password', oData, '', false, 0);
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
+    oGrid.actionWithId(iContentId, 'reset_password', oData, '', false, 0);
 };
 
 BxAccntManageTools.prototype.onClickResendRemail = function(iContentId, oLink) {
-	$('.bx-popup-applied:visible').dolPopupHide();
+    $('.bx-popup-applied:visible').dolPopupHide();
 
-	var oGrid = glGrids[this._sObjNameGrid];
-	var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
-	oGrid.actionWithId(iContentId, 'resend_remail', oData, '', false, 0);
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
+    oGrid.actionWithId(iContentId, 'resend_remail', oData, '', false, 0);
 };
 
 BxAccntManageTools.prototype.onClickUnlockAccount = function (iContentId, oLink) {
@@ -99,43 +99,69 @@ BxAccntManageTools.prototype.onClickUnlockAccount = function (iContentId, oLink)
 };
 
 BxAccntManageTools.prototype.onClickDelete = function(iContentId, oLink) {
-	$('.bx-popup-applied:visible').dolPopupHide();
+    $('.bx-popup-applied:visible').dolPopupHide();
 
-	var oGrid = glGrids[this._sObjNameGrid];
-	var oData = oGrid._checkAppend(oLink, {});
-	oGrid.actionWithId(iContentId, 'delete', oData, '', false, 1);
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, {});
+    oGrid.actionWithId(iContentId, 'delete', oData, '', false, 1);
 };
 
 BxAccntManageTools.prototype.onClickDeleteWithContent = function(iContentId, oLink) {
-	$('.bx-popup-applied:visible').dolPopupHide();
+    $('.bx-popup-applied:visible').dolPopupHide();
 
-	var oGrid = glGrids[this._sObjNameGrid];
-	var oData = oGrid._checkAppend(oLink, {});
-	oGrid.actionWithId(iContentId, 'delete_with_content', oData, '', false, 1);
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, {});
+    oGrid.actionWithId(iContentId, 'delete_with_content', oData, '', false, 1);
+};
+
+BxAccntManageTools.prototype.onClickSetOperatorRole = function(iContentId, oLink) {
+    $('.bx-popup-applied:visible').dolPopupHide({
+        onHide: function(oPopup) {
+            $(oPopup).remove();
+        } 
+    });
+
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
+    oGrid.actionWithId(iContentId, 'set_operator_role', oData, '', false, 0);
+};
+
+BxAccntManageTools.prototype.onClickSetOperatorRoleSubmit = function(oElement, iAccountId, iRole) {
+    if(!glGrids[this._sObjNameGrid])
+        return;
+
+    var oSiblings = $(oElement).parents('.bx-accnt-sr-role:first').siblings();
+    if(iRole == 0)
+        oSiblings.find('input:checked').removeAttr('checked');
+    else
+        oSiblings.find("input[value = '0']:checked").removeAttr('checked');
+
+    var sRoles = $(oElement).parents('.bx-accnt-sr-roles:first').find('input:checked').serialize();
+    glGrids[this._sObjNameGrid].actionWithId(iAccountId, 'set_operator_role_submit', {}, sRoles, false, false);
 };
 
 BxAccntManageTools.prototype.onClickMakeOperator = function(iContentId, oLink) {
-	$('.bx-popup-applied:visible').dolPopupHide({
-		onHide: function(oPopup) {
-			$(oPopup).remove();
-		} 
-	});
-
-	var oGrid = glGrids[this._sObjNameGrid];
-	var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
+    $('.bx-popup-applied:visible').dolPopupHide({
+        onHide: function(oPopup) {
+            $(oPopup).remove();
+        } 
+    });
+
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
     oGrid.actionWithId(iContentId, 'make_operator', oData, '', false, 0);
 };
 
 BxAccntManageTools.prototype.onClickUnmakeOperator = function(iContentId, oLink) {
-	$('.bx-popup-applied:visible').dolPopupHide({
-		onHide: function(oPopup) {
-			$(oPopup).remove();
-		} 
-	});
-
-	var oGrid = glGrids[this._sObjNameGrid];
-	var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
-	oGrid.actionWithId(iContentId, 'unmake_operator', oData, '', false, 0);
+    $('.bx-popup-applied:visible').dolPopupHide({
+        onHide: function(oPopup) {
+            $(oPopup).remove();
+        } 
+    });
+
+    var oGrid = glGrids[this._sObjNameGrid];
+    var oData = oGrid._checkAppend(oLink, oGrid._getActionDataForReload());
+    oGrid.actionWithId(iContentId, 'unmake_operator', oData, '', false, 0);
 };
 
 /** @} */

+ 19 - 1
modules/boonex/accounts/template/css/manage_tools.css

@@ -1 +1,19 @@
-@import url(../../../../base/general/template/css/manage_tools.css);
+@import url(../../../../base/general/template/css/manage_tools.css);
+
+/*--- Set Role popup ---*/
+.bx-accnt-sr-role-cnt {
+    display: -webkit-flex;
+    display: flex;
+    -webkit-align-items: center;
+    align-items: center;
+}
+.bx-accnt-sr-role-cnt > * {
+    display: inline-block;
+}
+.bx-accnt-sr-role-cnt > input {
+    margin: 0;
+}
+.bx-accnt-sr-done .bx-btn {
+    display: inline-block;
+    float: none;
+}

+ 6 - 8
modules/boonex/acl/classes/BxAclStudioPage.php

@@ -9,21 +9,19 @@
  * @{
  */
 
-define('BX_DOL_STUDIO_MOD_TYPE_MANAGE', 'manage');
-
 class BxAclStudioPage extends BxTemplStudioModule
 {
-    protected $MODULE;
+    protected $_sModule;
     protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-    	$this->MODULE = 'bx_acl';
-    	$this->_oModule = BxDolModule::getInstance($this->MODULE);
+    	$this->_sModule = 'bx_acl';
+    	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
-        $this->aMenuItems[] = array('name' => BX_DOL_STUDIO_MOD_TYPE_MANAGE, 'icon' => 'wrench', 'title' => '_bx_acl_lmi_cpt_manage');
+        $this->aMenuItems['manage'] = array('name' => 'manage', 'icon' => 'wrench', 'title' => '_bx_acl_lmi_cpt_manage');
     }
 
     protected function getManage()

+ 2 - 2
modules/boonex/acl/install/sql/install.sql

@@ -112,7 +112,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, '{url_studio}module.php?name=bx_acl', '', 'bx_acl@modules/boonex/acl/|std-icon.svg', '_bx_acl', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'configuration', '{url_studio}module.php?name=bx_acl', '', 'bx_acl@modules/boonex/acl/|std-icon.svg', '_bx_acl', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 3 - 3
modules/boonex/ads/classes/BxAdsStudioPage.php

@@ -16,14 +16,14 @@ class BxAdsStudioPage extends BxTemplStudioModule
     protected $_sModule;
     protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->_sModule = 'bx_ads';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
-        $this->aMenuItems[] = array('name' => BX_DOL_STUDIO_MOD_TYPE_CATEGORIES, 'icon' => 'bars', 'title' => '_bx_ads_menu_item_title_categories');
+        $this->aMenuItems[BX_DOL_STUDIO_MOD_TYPE_CATEGORIES] = array('name' => BX_DOL_STUDIO_MOD_TYPE_CATEGORIES, 'icon' => 'bars', 'title' => '_bx_ads_menu_item_title_categories');
     }
 
     protected function getCategories()

+ 2 - 2
modules/boonex/ads/install/sql/install.sql

@@ -738,8 +738,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_ads', '{url_studio}module.php?name=bx_ads', '', 'bx_ads@modules/boonex/ads/|std-icon.svg', '_bx_ads', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_ads', 'content', '{url_studio}module.php?name=bx_ads', '', 'bx_ads@modules/boonex/ads/|std-icon.svg', '_bx_ads', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/albums/install/sql/install.sql

@@ -530,8 +530,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_albums', '{url_studio}module.php?name=bx_albums', '', 'bx_albums@modules/boonex/albums/|std-icon.svg', '_bx_albums', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_albums', 'content', '{url_studio}module.php?name=bx_albums', '', 'bx_albums@modules/boonex/albums/|std-icon.svg', '_bx_albums', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/analytics/install/sql/install.sql

@@ -4,8 +4,8 @@ INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
 
 SET @iPageId = LAST_INSERT_ID();
 
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
-VALUES(@iPageId, @sName, '{url_studio}module.php?name=bx_analytics', '', 'bx_analytics@modules/boonex/analytics/|std-icon.svg', '_bx_analytics', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
+VALUES(@iPageId, @sName, 'extensions', '{url_studio}module.php?name=bx_analytics', '', 'bx_analytics@modules/boonex/analytics/|std-icon.svg', '_bx_analytics', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT IFNULL(MAX(`order`), 0) + 1 FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);

+ 2 - 2
modules/boonex/anon_follow/install/sql/install.sql

@@ -16,8 +16,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_anon_follow', '{url_studio}module.php?name=bx_anon_follow', '', 'bx_anon_follow@modules/boonex/anon_follow/|std-icon.svg', '_bx_anon_follow', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_anon_follow', 'extensions', '{url_studio}module.php?name=bx_anon_follow', '', 'bx_anon_follow@modules/boonex/anon_follow/|std-icon.svg', '_bx_anon_follow', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 7 - 7
modules/boonex/antispam/classes/BxAntispamStudioPage.php

@@ -13,18 +13,18 @@ class BxAntispamStudioPage extends BxTemplStudioModule
 {
     protected $oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->oModule = BxDolModule::getInstance('bx_antispam');
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'ip_table', 'icon' => 'align-justify', 'title' => '_bx_antispam_ip_table', 'link' => BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=antispam-ip-table')),
-            array('name' => 'dnsbl_list', 'icon' => 'align-justify', 'title' => '_bx_antispam_dnsbl_list', 'link' => BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=antispam-dnsbl-list')),
-            array('name' => 'block_log', 'icon' => 'far clock', 'title' => '_bx_antispam_block_log', 'link' => BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=antispam-block-log')),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_bx_antispam_help'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'ip_table' => array('name' => 'ip_table', 'icon' => 'align-justify', 'title' => '_bx_antispam_ip_table', 'link' => BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=antispam-ip-table')),
+            'dnsbl_list' => array('name' => 'dnsbl_list', 'icon' => 'align-justify', 'title' => '_bx_antispam_dnsbl_list', 'link' => BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=antispam-dnsbl-list')),
+            'block_log' => array('name' => 'block_log', 'icon' => 'far clock', 'title' => '_bx_antispam_block_log', 'link' => BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=antispam-block-log')),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_bx_antispam_help'),
         );
     }
 

+ 2 - 2
modules/boonex/antispam/install/sql/install.sql

@@ -64,8 +64,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_antispam', '{url_studio}module.php?name=bx_antispam', '', 'bx_antispam@modules/boonex/antispam/|std-icon.svg', '_bx_antispam', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_antispam', 'extensions', '{url_studio}module.php?name=bx_antispam', '', 'bx_antispam@modules/boonex/antispam/|std-icon.svg', '_bx_antispam', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/api/install/sql/install.sql

@@ -7,8 +7,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_api', '{url_studio}module.php?name=bx_api', '', 'bx_api@modules/boonex/api/|std-icon.svg', '_bx_api', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_api', 'configuration', '{url_studio}module.php?name=bx_api', '', 'bx_api@modules/boonex/api/|std-icon.svg', '_bx_api', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/attendant/install/sql/install.sql

@@ -18,8 +18,8 @@ INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
 
 SET @iPageId = LAST_INSERT_ID();
 
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
-VALUES(@iPageId, @sName, '{url_studio}module.php?name=bx_attendant', '', 'bx_attendant@modules/boonex/attendant/|std-icon.svg', '_bx_attendant', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
+VALUES(@iPageId, @sName, 'extensions', '{url_studio}module.php?name=bx_attendant', '', 'bx_attendant@modules/boonex/attendant/|std-icon.svg', '_bx_attendant', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT IFNULL(MAX(`order`), 0) + 1 FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);

+ 2 - 2
modules/boonex/channels/classes/BxCnlStudioPage.php

@@ -14,12 +14,12 @@ class BxCnlStudioPage extends BxTemplStudioModule
     protected $_sModule;
     protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->_sModule = 'bx_channels';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
     }
 
     protected function getSettings()

+ 2 - 2
modules/boonex/channels/install/sql/install.sql

@@ -288,7 +288,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_channels', '{url_studio}module.php?name=bx_channels', '', 'bx_channels@modules/boonex/channels/|std-icon.svg', '_bx_channels', 'a:4:{s:6:"module";s:11:"bx_channels";s:6:"method";s:18:"get_widget_notices";s:6:"params";a:0:{}s:5:"class";s:6:"Module";}', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_channels', 'extensions', '{url_studio}module.php?name=bx_channels', '', 'bx_channels@modules/boonex/channels/|std-icon.svg', '_bx_channels', 'a:4:{s:6:"module";s:11:"bx_channels";s:6:"method";s:18:"get_widget_notices";s:6:"params";a:0:{}s:5:"class";s:6:"Module";}', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 2 - 2
modules/boonex/charts/install/sql/install.sql

@@ -41,8 +41,8 @@ INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
 
 SET @iPageId = LAST_INSERT_ID();
 
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
-VALUES(@iPageId, @sName, '{url_studio}module.php?name=bx_charts', '', 'bx_charts@modules/boonex/charts/|std-icon.svg', '_bx_charts', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
+VALUES(@iPageId, @sName, 'extensions', '{url_studio}module.php?name=bx_charts', '', 'bx_charts@modules/boonex/charts/|std-icon.svg', '_bx_charts', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT IFNULL(MAX(`order`), 0) + 1 FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);

+ 4 - 4
modules/boonex/chat_plus/classes/BxChatPlusStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxChatPlusStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_bx_chat_plus_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_bx_chat_plus_information'),
         );
     }
     

+ 2 - 2
modules/boonex/chat_plus/install/sql/install.sql

@@ -7,8 +7,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_chat_plus', '{url_studio}module.php?name=bx_chat_plus', '', 'bx_chat_plus@modules/boonex/chat_plus/|std-icon.svg', '_bx_chat_plus', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_chat_plus', 'integrations', '{url_studio}module.php?name=bx_chat_plus', '', 'bx_chat_plus@modules/boonex/chat_plus/|std-icon.svg', '_bx_chat_plus', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/classes/classes/BxClssStudioPage.php

@@ -14,12 +14,12 @@ class BxClssStudioPage extends BxTemplStudioModule
     protected $_sModule;
 	protected $_oModule;
     
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->_sModule = 'bx_classes';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
     }
 }
 

+ 2 - 2
modules/boonex/classes/install/sql/install.sql

@@ -631,8 +631,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_classes', '{url_studio}module.php?name=bx_classes', '', 'bx_classes@modules/boonex/classes/|std-icon.svg', '_bx_classes', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_classes', 'content', '{url_studio}module.php?name=bx_classes', '', 'bx_classes@modules/boonex/classes/|std-icon.svg', '_bx_classes', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/contact/install/sql/install.sql

@@ -45,7 +45,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, '{url_studio}module.php?name=bx_contact', '', 'bx_contact@modules/boonex/contact/|std-icon.svg', '_bx_contact', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'extensions', '{url_studio}module.php?name=bx_contact', '', 'bx_contact@modules/boonex/contact/|std-icon.svg', '_bx_contact', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 2 - 2
modules/boonex/convos/install/sql/install.sql

@@ -194,8 +194,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_convos', '{url_studio}module.php?name=bx_convos', '', 'bx_convos@modules/boonex/convos/|std-icon.svg', '_bx_cnv', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_convos', 'content', '{url_studio}module.php?name=bx_convos', '', 'bx_convos@modules/boonex/convos/|std-icon.svg', '_bx_cnv', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/courses/install/sql/install.sql

@@ -374,8 +374,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_courses', '{url_studio}module.php?name=bx_courses', '', 'bx_courses@modules/boonex/courses/|std-icon.svg', '_bx_courses', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_courses', 'content', '{url_studio}module.php?name=bx_courses', '', 'bx_courses@modules/boonex/courses/|std-icon.svg', '_bx_courses', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 3 - 3
modules/boonex/credits/classes/BxCreditsStudioPage.php

@@ -16,14 +16,14 @@ class BxCreditsStudioPage extends BxTemplStudioModule
     protected $_sModule;
     protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->_sModule = 'bx_credits';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
-        $this->aMenuItems[] = array('name' => BX_DOL_STUDIO_MOD_TYPE_BUNDLES, 'icon' => 'archive', 'title' => '_bx_credits_menu_item_title_bundles');
+        $this->aMenuItems[BX_DOL_STUDIO_MOD_TYPE_BUNDLES] = array('name' => BX_DOL_STUDIO_MOD_TYPE_BUNDLES, 'icon' => 'archive', 'title' => '_bx_credits_menu_item_title_bundles');
     }
 
     protected function getSettings()

+ 2 - 2
modules/boonex/credits/install/sql/install.sql

@@ -158,7 +158,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_credits', '{url_studio}module.php?name=bx_credits', '', 'bx_credits@modules/boonex/credits/|std-icon.svg', '_bx_credits', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_credits', 'extensions', '{url_studio}module.php?name=bx_credits', '', 'bx_credits@modules/boonex/credits/|std-icon.svg', '_bx_credits', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 2 - 2
modules/boonex/datafox/classes/BxDataFoxStudioPage.php

@@ -13,9 +13,9 @@ class BxDataFoxStudioPage extends BxTemplStudioModule
 {
     protected $oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->oModule = BxDolModule::getInstance('bx_datafox');
 

+ 2 - 2
modules/boonex/datafox/install/sql/install.sql

@@ -7,8 +7,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_datafox', '{url_studio}module.php?name=bx_datafox', '', 'bx_datafox@modules/boonex/datafox/|std-icon.svg', '_bx_datafox', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_datafox', 'integrations', '{url_studio}module.php?name=bx_datafox', '', 'bx_datafox@modules/boonex/datafox/|std-icon.svg', '_bx_datafox', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 29 - 29
modules/boonex/decorous/classes/BxDecorousStudioPage.php

@@ -13,12 +13,12 @@ define('BX_DECOROUS_STUDIO_TEMPL_TYPE_STYLES', 'styles');
 
 class BxDecorousStudioPage extends BxTemplStudioDesign
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->MODULE = 'bx_decorous';
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
-        $this->aMenuItems[BX_DECOROUS_STUDIO_TEMPL_TYPE_STYLES] = array('caption' => '_bx_decorous_lmi_cpt_styles', 'icon' => 'paint-brush');
+        $this->aMenuItems[BX_DECOROUS_STUDIO_TEMPL_TYPE_STYLES] = array('title' => '_bx_decorous_lmi_cpt_styles', 'icon' => 'paint-brush');
         unset($this->aMenuItems[BX_DOL_STUDIO_TEMPL_TYPE_LOGO]);
     }
 
@@ -27,34 +27,34 @@ class BxDecorousStudioPage extends BxTemplStudioDesign
     	return parent::getSettings('bx_decorous_system', $sMix);
     }
 
-	protected function getStyles($sMix = '')
+    protected function getStyles($sMix = '')
     {
     	$oTemplate = BxDolStudioTemplate::getInstance();
 
     	$sPrefix = $this->MODULE;
     	$aCategories = array(
-    		$sPrefix . '_styles_general',
-			$sPrefix . '_styles_header',
-			$sPrefix . '_styles_footer',
-			$sPrefix . '_styles_body',
-			$sPrefix . '_styles_cover',
-			$sPrefix . '_styles_block',
-			$sPrefix . '_styles_card',
-			$sPrefix . '_styles_popup',
-			$sPrefix . '_styles_menu_main',
-			$sPrefix . '_styles_menu_account',
-			$sPrefix . '_styles_menu_add',
-			$sPrefix . '_styles_menu_page',
-			$sPrefix . '_styles_menu_slide',
-			$sPrefix . '_styles_form',
-			$sPrefix . '_styles_large_button',
-			$sPrefix . '_styles_small_button',
-			$sPrefix . '_styles_font',
-			$sPrefix . '_styles_custom',
-			$sPrefix . '_viewport_tablet',
-			$sPrefix . '_viewport_mobile'
-		);
-    	$oPage = new BxTemplStudioSettings($this->sTemplate, $aCategories, $sMix);
+        $sPrefix . '_styles_general',
+            $sPrefix . '_styles_header',
+            $sPrefix . '_styles_footer',
+            $sPrefix . '_styles_body',
+            $sPrefix . '_styles_cover',
+            $sPrefix . '_styles_block',
+            $sPrefix . '_styles_card',
+            $sPrefix . '_styles_popup',
+            $sPrefix . '_styles_menu_main',
+            $sPrefix . '_styles_menu_account',
+            $sPrefix . '_styles_menu_add',
+            $sPrefix . '_styles_menu_page',
+            $sPrefix . '_styles_menu_slide',
+            $sPrefix . '_styles_form',
+            $sPrefix . '_styles_large_button',
+            $sPrefix . '_styles_small_button',
+            $sPrefix . '_styles_font',
+            $sPrefix . '_styles_custom',
+            $sPrefix . '_viewport_tablet',
+            $sPrefix . '_viewport_mobile'
+        );
+    	$oPage = new BxTemplStudioSettings($this->sModule, $aCategories, $sMix);
     	$oPage->enableReadOnly(true);
     	$oPage->enableMixes(true);
 
@@ -63,9 +63,9 @@ class BxDecorousStudioPage extends BxTemplStudioDesign
 
         return BxDolStudioTemplate::getInstance()->parseHtmlByName('design.html', array(
             'content' => $oPage->getPageCode(),
-        	'js_content' => $this->getPageJsCode(array(
-				"sCodeMirror" => "textarea[name='" . $sPrefix . "_styles_custom']"
-			))
+            'js_content' => $this->getPageJsCode(array(
+                'sCodeMirror' => "textarea[name='" . $sPrefix . "_styles_custom']"
+            ))
         ));
     }
 }

+ 2 - 2
modules/boonex/decorous/data/template/studio/scripts/BxTemplStudioDesign.php

@@ -11,9 +11,9 @@ defined('BX_DOL') or die('hack attempt');
 
 class BxTemplStudioDesign extends BxBaseStudioDesign
 {
-    function __construct($sTemplate = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sTemplate, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
     }
 }
 /** @} */

+ 2 - 2
modules/boonex/decorous/data/template/studio/scripts/BxTemplStudioLanguage.php

@@ -11,9 +11,9 @@ defined('BX_DOL') or die('hack attempt');
 
 class BxTemplStudioLanguage extends BxBaseStudioLanguage
 {
-    function __construct($sLanguage="", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sLanguage, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
     }
 }
 /** @} */

+ 2 - 2
modules/boonex/decorous/data/template/studio/scripts/BxTemplStudioModule.php

@@ -11,9 +11,9 @@ defined('BX_DOL') or die('hack attempt');
 
 class BxTemplStudioModule extends BxBaseStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
     }
 }
 /** @} */

+ 2 - 2
modules/boonex/decorous/install/sql/install.sql

@@ -435,7 +435,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name`='home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id`=@iParentPageId);
-INSERT INTO `sys_std_widgets`(`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, CONCAT('{url_studio}design.php?name=', @sName), '', 'bx_decorous@modules/boonex/decorous/|std-icon.svg', '_bx_decorous_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioDesigns";}');
+INSERT INTO `sys_std_widgets`(`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'appearance', CONCAT('{url_studio}design.php?name=', @sName), '', 'bx_decorous@modules/boonex/decorous/|std-icon.svg', '_bx_decorous_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioDesigns";}');
 INSERT INTO `sys_std_pages_widgets`(`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), @iParentPageOrder + 1);

+ 1 - 1
modules/boonex/developer/classes/BxDevBuilderPage.php

@@ -32,7 +32,7 @@ class BxDevBuilderPage extends BxTemplStudioBuilderPage
 
     function getBlockPanelTop($aBlock)
     {
-         return BxBaseStudioPage::getBlockPanelTop(
+         return BxBaseStudioWidget::getBlockPanelTop(
             array('panel_top' => $this->oModule->_oTemplate->parseHtmlByName('bp_block_panel_top.html', $this->_getTmplVarsBlockPanelTop()))
         );
     }

+ 34 - 9
modules/boonex/developer/classes/BxDevStudioPage.php

@@ -14,9 +14,9 @@ class BxDevStudioPage extends BxTemplStudioModule
     protected $oModule;
     protected $sUrl;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->oModule = BxDolModule::getInstance($this->sModule);
 
@@ -43,7 +43,12 @@ class BxDevStudioPage extends BxTemplStudioModule
     {
         $oContent = new BxTemplStudioSettings('system', 'hidden');
 
-        return $this->oModule->_oTemplate->displayPageContent($this->sPage, $oContent);
+        if(($mixedResult = $oContent->checkAction()) !== false) {
+            echoJson($mixedResult);
+            exit;
+        }
+
+        return $this->oModule->_oTemplate->displayPageContent($this->sPage, $oContent, 'getFormCode');
     }
 
     protected function getForms()
@@ -51,12 +56,16 @@ class BxDevStudioPage extends BxTemplStudioModule
         $sPage = bx_get('form_page');
         $sPage = $sPage !== false ? bx_process_input($sPage) : '';
 
-		bx_import('Forms', $this->aModule);
+        bx_import('Forms', $this->aModule);
         $oContent = new BxDevForms(array(
             'page' => $sPage,
             'url' => sprintf($this->sUrl, $this->sModule, BX_DEV_TOOLS_FORMS),
         ));
-		$oContent->init();
+
+        if(($mixedResult = $oContent->checkAction()) !== false) {
+            echoJson($mixedResult);
+            exit;
+        }
 
         return $this->oModule->_oTemplate->displayPageContent($this->sPage, $oContent);
     }
@@ -71,7 +80,11 @@ class BxDevStudioPage extends BxTemplStudioModule
             'page' => $sPage,
             'url' => sprintf($this->sUrl, $this->sModule, BX_DEV_TOOLS_NAVIGATION),
         ));
-		$oContent->init();
+
+        if(($mixedResult = $oContent->checkAction()) !== false) {
+            echoJson($mixedResult);
+            exit;
+        }
 
         return $this->oModule->_oTemplate->displayPageContent($this->sPage, $oContent);
     }
@@ -90,7 +103,11 @@ class BxDevStudioPage extends BxTemplStudioModule
             'page' => $sPage,
             'url' => sprintf($this->sUrl, $this->sModule, BX_DEV_TOOLS_PAGES),
         ));
-        $oContent->init();
+
+        if(($mixedResult = $oContent->checkAction()) !== false) {
+            echoJson($mixedResult);
+            exit;
+        }
 
         return $this->oModule->_oTemplate->displayPageContent($this->sPage, $oContent);
     }
@@ -108,7 +125,11 @@ class BxDevStudioPage extends BxTemplStudioModule
             'page' => $sPage,
             'url' => sprintf($this->sUrl, $this->sModule, BX_DEV_TOOLS_POLYGLOT),
         ));
-        $oContent->init();
+
+        if(($mixedResult = $oContent->checkAction()) !== false) {
+            echoJson($mixedResult);
+            exit;
+        }
 
         return $this->oModule->_oTemplate->displayPageContent($this->sPage, $oContent);
     }
@@ -123,7 +144,11 @@ class BxDevStudioPage extends BxTemplStudioModule
             'page' => $sPage,
             'url' => sprintf($this->sUrl, $this->sModule, BX_DEV_TOOLS_PERMISSIONS),
         ));
-        $oContent->init();
+
+        if(($mixedResult = $oContent->checkAction()) !== false) {
+            echoJson($mixedResult);
+            exit;
+        }
 
         return $this->oModule->_oTemplate->displayPageContent($this->sPage, $oContent);
     }

+ 2 - 2
modules/boonex/developer/classes/BxDevTemplate.php

@@ -18,13 +18,13 @@ class BxDevTemplate extends BxDolModuleTemplate
         $this->addStudioCss(array('main.css'));
     }
 
-    function displayPageContent($sPage, $oContent)
+    function displayPageContent($sPage, $oContent, $sGetPageCodeMethod = 'getPageCode')
     {
         $this->addStudioCss($oContent->getPageCss(), false, false);
         $this->addStudioJs($oContent->getPageJs(), false, false);
 
         $sMenu = $oContent->getPageMenu();
-        $sContent = $oContent->getPageJsCode() . $oContent->getPageCode();
+        $sContent = $oContent->getPageJsCode() . $oContent->$sGetPageCodeMethod();
         if(in_array($sPage, array(BX_DEV_TOOLS_SETTINGS)) || empty($sMenu)) {
             $this->addStudioInjection('injection_body_style', 'text', ' bx-dev-page-body-single');
             return $sContent;

+ 2 - 2
modules/boonex/developer/install/sql/install.sql

@@ -10,8 +10,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name`='home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id`=@iParentPageId);
-INSERT INTO `sys_std_widgets`(`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, CONCAT('{url_studio}module.php?name=', @sName), '', 'bx_developer@modules/boonex/developer/|std-icon.svg', '_bx_dev_adm_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets`(`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'extensions', CONCAT('{url_studio}module.php?name=', @sName), '', 'bx_developer@modules/boonex/developer/|std-icon.svg', '_bx_dev_adm_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets`(`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(NOT ISNULL(@iParentPageOrder), @iParentPageOrder + 1, 1));
 

+ 24 - 35
modules/boonex/developer/template/css/main.css

@@ -1,28 +1,15 @@
 /*--- Overwrite ---*/
-body.bx-dev-page-body-single div.bx-std-page-bg {
-    background-image: url("../images/bx-dev-bg-single.png");
-}
-
-body.bx-dev-page-body-columns div.bx-std-page-bg {
-    background-image: url("../images/bx-dev-bg-columns.png");
-}
-
-body.bx-dev-page-body-single div.bx-std-page-bg-empty,
-body.bx-dev-page-body-columns div.bx-std-page-bg-empty {
-    background-image: url("spacer.gif");
-}
-
 body.bx-dev-page-body-single div.bx-std-page-menu,
 body.bx-dev-page-body-columns div.bx-std-page-menu {
-    width: 67px;
-}
+    -webkit-flex-basis: 67px;
+    flex-basis: 67px;
 
-body.bx-dev-page-body-single div.bx-std-page-content,
-body.bx-dev-page-body-columns div.bx-std-page-content {
-    margin-left: 67px;
+    background-color: #4c6678;
+    box-shadow: inset -1px 0px 0px rgba(240, 240, 240, 0.2);
 }
+
 body.bx-dev-page-body-columns div.bx-std-page-column-cnt {
-	padding: 0px;
+    padding: 0px;
 }
 
 
@@ -72,37 +59,39 @@ div.bx-dev-menu-main div.bx-dev-mm-item img {
 }
 
 div.bx-dev-menu-main div.bx-dev-mm-item i.sys-icon {
-	position: absolute;
-	top: 0px;
+    position: absolute;
+    top: 0px;
     left: 0px;
     width:32px;
-	height: 32px;
+    height: 32px;
 
     color:white;
     font-size:20px;
     text-align:center;
     text-shadow:none;
-	line-height: 32px;
+    line-height: 32px;
 }
 
 /*--- Page Content ---*/
 div.bx-dev-page-columns-cnt {
-    width: 200%;
-}
-div.bx-dev-page-column-wrp {
     position: relative;
-    float: right;
-    width: 50%;
+    display: -webkit-flex;
+    display: flex;
+    -webkit-align-items: stretch;
+    align-items: stretch;
 }
-div.bx-dev-page-column {}
-div.bx-dev-page-column-cnt {}
-div.bx-dev-page-menu {
+
+div.bx-dev-page-column.bx-dev-page-menu {
     position: relative;
-    float: left;
+    -webkit-flex: 0 0 230px;
+    flex: 0 0 230px;
     width: 230px;
+    background-color: #ffffff;
 }
-div.bx-dev-page-content {
+
+div.bx-dev-page-column.bx-dev-page-content {
     position: relative;
-    right: 100%;
-    margin-left: 230px;
+    -webkit-flex: 2 1 auto;
+    flex: 2 1 auto;
+    background: #e5e5e5;
 }

BIN
modules/boonex/developer/template/images/bx-dev-bg-columns.png


BIN
modules/boonex/developer/template/images/bx-dev-bg-single.png


+ 3 - 8
modules/boonex/developer/template/page_content.html

@@ -1,13 +1,8 @@
 <div class="bx-dev-page-columns-cnt">
-    <div class="bx-dev-page-column-wrp">
-        <div class="bx-dev-page-column bx-dev-page-content">
-            <div class="bx-dev-page-column-cnt bx-def-padding" id="bx-dev-pc-content">
-                __page_main_code__
-            </div>
-        </div>
-    </div>
     <div class="bx-dev-page-column bx-dev-page-menu">
         <div class="bx-dev-page-column-cnt bx-def-margin-sec-topbottom" id="bx-dev-pc-menu">__page_menu_code__</div>
     </div>
-    <div class="bx-dev-cb"></div>
+    <div class="bx-dev-page-column bx-dev-page-content">
+        <div class="bx-dev-page-column-cnt bx-def-padding" id="bx-dev-pc-content">__page_main_code__</div>
+    </div>
 </div>

+ 4 - 4
modules/boonex/dolphin_connect/classes/BxDolConStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxDolConStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
         );
     }
     

+ 2 - 2
modules/boonex/dolphin_connect/install/sql/install.sql

@@ -14,8 +14,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_dolcon', '{url_studio}module.php?name=bx_dolcon', '', 'bx_dolcon@modules/boonex/dolphin_connect/|std-icon.svg', '_bx_dolcon', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_dolcon', 'integrations', '{url_studio}module.php?name=bx_dolcon', '', 'bx_dolcon@modules/boonex/dolphin_connect/|std-icon.svg', '_bx_dolcon', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 16 - 16
modules/boonex/dolphin_migration/classes/BxDolMStudioPage.php

@@ -13,25 +13,25 @@
 
 class BxDolMStudioPage extends BxTemplStudioModule
 {    
-	/**
-	 *  @var ref $_oModule main module reference
-	 */
-	protected $_oModule;
+    /**
+     *  @var ref $_oModule main module reference
+     */
+    protected $_oModule;
 	
-	function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-		$this -> MODULE = 'bx_dolphin_migration';
-		parent::__construct($sModule, $sPage);
-	
-		$this -> _oModule = BxDolModule::getInstance($sModule);			
-		
-		$this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_bx_dolphin_migration_cpt_settings'),
-		    array('name' => 'config', 'icon' => 'exchange-alt', 'title' => '_bx_dolphin_migration_cpt_transfer_data')
+        $this -> MODULE = 'bx_dolphin_migration';
+        parent::__construct($sModule, $mixedPageName, $sPage);
+
+        $this -> _oModule = BxDolModule::getInstance($sModule);			
+
+        $this->aMenuItems = array(
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_bx_dolphin_migration_cpt_settings'),
+            'config' => array('name' => 'config', 'icon' => 'exchange-alt', 'title' => '_bx_dolphin_migration_cpt_transfer_data')
         );	
-		
-		$this -> _oModule -> _oTemplate -> addStudioJs(array('jquery-ui/jquery-ui.custom.min.js', 'transfer.js', 'BxDolGrid.js'));
-		$this -> _oModule -> _oTemplate -> addStudioCss(array('main.css'));	
+
+        $this -> _oModule -> _oTemplate -> addStudioJs(array('jquery-ui/jquery-ui.custom.min.js', 'transfer.js', 'BxDolGrid.js'));
+        $this -> _oModule -> _oTemplate -> addStudioCss(array('main.css'));	
      } 
 	
 	public function saveData($sPath)

+ 2 - 2
modules/boonex/dolphin_migration/install/sql/install.sql

@@ -7,8 +7,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, '{url_studio}module.php?name=bx_dolphin_migration', '', 'bx_dolphin_migration@modules/boonex/dolphin_migration/|std-icon.svg', '_bx_dolphin_migration_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'extensions', '{url_studio}module.php?name=bx_dolphin_migration', '', 'bx_dolphin_migration@modules/boonex/dolphin_migration/|std-icon.svg', '_bx_dolphin_migration_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 4 - 4
modules/boonex/drupal_connect/classes/BxDrupalStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxDrupalStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
         );
     }
 

+ 2 - 2
modules/boonex/drupal_connect/install/sql/install.sql

@@ -39,8 +39,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_drupal', '{url_studio}module.php?name=bx_drupal', '', 'bx_drupal@modules/boonex/drupal_connect/|std-icon.svg', '_bx_drupal', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_drupal', 'integrations', '{url_studio}module.php?name=bx_drupal', '', 'bx_drupal@modules/boonex/drupal_connect/|std-icon.svg', '_bx_drupal', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 3 - 3
modules/boonex/elasticsearch/classes/BxElsStudioPage.php

@@ -16,14 +16,14 @@ class BxElsStudioPage extends BxTemplStudioModule
 	protected $_sModule;
 	protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->_sModule = 'bx_elasticsearch';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
-        $this->aMenuItems[] = array('name' => BX_DOL_STUDIO_MOD_TYPE_MANAGE, 'icon' => 'wrench', 'title' => '_bx_elasticsearch_lmi_cpt_manage');
+        $this->aMenuItems[BX_DOL_STUDIO_MOD_TYPE_MANAGE] = array('name' => BX_DOL_STUDIO_MOD_TYPE_MANAGE, 'icon' => 'wrench', 'title' => '_bx_elasticsearch_lmi_cpt_manage');
 
         $this->_oModule->_oTemplate->addStudioJs(array('jquery.anim.js', 'jquery.form.min.js', 'manage.js'));
     }

+ 2 - 2
modules/boonex/elasticsearch/install/sql/install.sql

@@ -24,7 +24,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_elasticsearch', '{url_studio}module.php?name=bx_elasticsearch&page=settings', '', 'bx_elasticsearch@modules/boonex/elasticsearch/|std-icon.svg', '_bx_elasticsearch', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_elasticsearch', 'integrations', '{url_studio}module.php?name=bx_elasticsearch&page=settings', '', 'bx_elasticsearch@modules/boonex/elasticsearch/|std-icon.svg', '_bx_elasticsearch', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 122 - 37
modules/boonex/english/data/langs/system/en.xml

@@ -1053,6 +1053,8 @@
 	<string name="_adm_lmi_cpt_pre_values"><![CDATA[Data Items]]></string>
 	<string name="_adm_lmi_cpt_popular"><![CDATA[Popular]]></string>
 	<string name="_adm_lmi_cpt_purchases"><![CDATA[Purchases]]></string>
+        <string name="_adm_lmi_cpt_ractions"><![CDATA[Actions]]></string>
+        <string name="_adm_lmi_cpt_rlevels"><![CDATA[Levels]]></string>
 	<string name="_adm_lmi_cpt_sets"><![CDATA[Sets]]></string>
 	<string name="_adm_lmi_cpt_settings"><![CDATA[Settings]]></string>
 	<string name="_adm_lmi_cpt_updates"><![CDATA[Updates]]></string>
@@ -1199,6 +1201,7 @@
 	<string name="_adm_page_cpt_builder_mobile"><![CDATA[Mobile Builder]]></string>
 	<string name="_adm_page_cpt_builder_pages"><![CDATA[Pages]]></string>
 	<string name="_adm_page_cpt_builder_permissions"><![CDATA[Permissions]]></string>
+        <string name="_adm_page_cpt_builder_roles"><![CDATA[Roles]]></string>
 	<string name="_adm_page_cpt_dashboard"><![CDATA[Dashboard]]></string>
 	<string name="_adm_page_cpt_designer"><![CDATA[Designer]]></string>
 	<string name="_adm_page_cpt_home"><![CDATA[Studio]]></string>
@@ -1343,10 +1346,71 @@
 	<string name="_adm_prm_txt_visibility_items_anyone"><![CDATA[Anyone]]></string>
 	<string name="_adm_prm_txt_visibility_items_n_user_levels"><![CDATA[{0} User Levels]]></string>
 	<string name="_adm_prm_txt_visibility_items_nobody"><![CDATA[Nobody]]></string>
+        
+        <string name="_adm_rl_btn_role_add"><![CDATA[Add New Role]]></string>
+        <string name="_adm_rl_btn_role_edit"><![CDATA[Edit this role]]></string>
+        <string name="_adm_rl_btn_role_delete"><![CDATA[Delete this role]]></string>
+        <string name="_adm_rl_err_cannot_process_action"><![CDATA[Cannot process action. It does not have an associated handler.]]></string>
+        <string name="_adm_rl_err_role_create"><![CDATA[Cannot create role]]></string>
+        <string name="_adm_rl_err_role_edit"><![CDATA[Cannot update role]]></string>
+	<string name="_adm_rl_err_role_delete"><![CDATA[Cannot delete role]]></string>
+        <string name="_adm_rl_err_role_id"><![CDATA[Roles limit is reached.]]></string>
+        <string name="_adm_rl_txt_actions"><![CDATA[Actions]]></string>
+        <string name="_adm_rl_txt_description"><![CDATA[Description]]></string>
+        <string name="_adm_rl_txt_manage_actions"><![CDATA[Manage actions]]></string>
+        <string name="_adm_rl_txt_n_actions"><![CDATA[{0} actions]]></string>
+        <string name="_adm_rl_txt_select_role"><![CDATA[Select Role]]></string>
+        <string name="_adm_rl_txt_title"><![CDATA[Title]]></string>
+        <string name="_adm_rl_txt_role_create_popup"><![CDATA[Add New Role]]></string>
+	<string name="_adm_rl_txt_role_edit_popup"><![CDATA[Edit "{0}" Role]]></string>
+        <string name="_adm_rl_txt_role_master"><![CDATA[Master]]></string>
+        <string name="_adm_rl_txt_role_master_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_operator"><![CDATA[Operator]]></string>
+        <string name="_adm_rl_txt_role_operator_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_appearance"><![CDATA[Appearance]]></string>
+        <string name="_adm_rl_txt_role_appearance_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_structure"><![CDATA[Structure]]></string>
+        <string name="_adm_rl_txt_role_structure_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_content"><![CDATA[Content]]></string>
+        <string name="_adm_rl_txt_role_content_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_users"><![CDATA[Users]]></string>
+        <string name="_adm_rl_txt_role_users_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_configuration"><![CDATA[Configuration]]></string>
+        <string name="_adm_rl_txt_role_configuration_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_extensions"><![CDATA[Extensions]]></string>
+        <string name="_adm_rl_txt_role_extensions_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_integrations"><![CDATA[Integrations]]></string>
+        <string name="_adm_rl_txt_role_integrations_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_manage_roles"><![CDATA[Manage Roles]]></string>
+        <string name="_adm_rl_txt_action_manage_roles_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_manage_apps"><![CDATA[Manage Apps]]></string>
+        <string name="_adm_rl_txt_action_manage_apps_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_use_appearance"><![CDATA[Use 'Appearance' apps]]></string>
+        <string name="_adm_rl_txt_action_use_appearance_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_use_structure"><![CDATA[Use 'Structure' apps]]></string>
+        <string name="_adm_rl_txt_action_use_structure_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_use_content"><![CDATA[Use 'Content' apps]]></string>
+        <string name="_adm_rl_txt_action_use_content_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_use_users"><![CDATA[Use 'Users' apps]]></string>
+        <string name="_adm_rl_txt_action_use_users_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_use_configuration"><![CDATA[Use 'Configuration' apps]]></string>
+        <string name="_adm_rl_txt_action_use_configuration_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_use_extensions"><![CDATA[Use 'Extensions' apps]]></string>
+        <string name="_adm_rl_txt_action_use_extensions_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_action_use_integrations"><![CDATA[Use 'Integrations' apps]]></string>
+        <string name="_adm_rl_txt_action_use_integrations_dsc"><![CDATA[]]></string>
+        <string name="_adm_rl_txt_role_title"><![CDATA[Title]]></string>
+        <string name="_adm_rl_err_role_title"><![CDATA[You need to enter name(3, 100) for all languages]]></string>
+        <string name="_adm_rl_txt_role_description"><![CDATA[Description]]></string>
+        <string name="_adm_rl_txt_role_actions_copy"><![CDATA[Copy actions from]]></string>
+        <string name="_adm_rl_btn_role_create"><![CDATA[Create]]></string>
+	<string name="_adm_rl_btn_role_cancel"><![CDATA[Cancel]]></string>
+        <string name="_adm_rl_btn_role_save"><![CDATA[Save]]></string>
+        
 	<string name="_adm_scs_operation_done"><![CDATA[]]></string>
 	<string name="_adm_stg_cpt_category_account"><![CDATA[Account]]></string>
 	<string name="_adm_stg_cpt_category_acl"><![CDATA[ACL]]></string>
-  <string name="_adm_stg_cpt_category_audit"><![CDATA[Audit]]></string>
+        <string name="_adm_stg_cpt_category_audit"><![CDATA[Audit]]></string>
 	<string name="_adm_stg_cpt_category_notifications"><![CDATA[Notifications]]></string>
 	<string name="_adm_stg_cpt_category_notifications_push"><![CDATA[Push Notifications]]></string>
 	<string name="_adm_stg_cpt_category_cache"><![CDATA[Cache]]></string>
@@ -1592,14 +1656,10 @@
 	<string name="_adm_strg_err_width"><![CDATA[Width is essential. Please, fill in this field.]]></string>
 	<string name="_adm_strg_txt_height"><![CDATA[Height]]></string>
 	<string name="_adm_strg_err_height"><![CDATA[Height is essential. Please, fill in this field.]]></string>
-	<string name="_adm_tmi_cpt_edit"><![CDATA[Manage Launcher]]></string>
-	<string name="_adm_tmi_cpt_extensions"><![CDATA[Add Apps]]></string>
-	<string name="_adm_tmi_cpt_favorite"><![CDATA[Show Favorite Only]]></string>
-        <string name="_adm_tmi_cpt_language"><![CDATA[Language]]></string>
-	<string name="_adm_tmi_cpt_logout"><![CDATA[Sign out]]></string>
+        <string name="_adm_tmi_cpt_account"><![CDATA[Account]]></string>
 	<string name="_adm_tmi_cpt_site"><![CDATA[Go To Site]]></string>
 	<string name="_adm_tmi_cpt_tour"><![CDATA[Tour]]></string>
-	<string name="_adm_tmi_cpt_launcher"><![CDATA[Back to Launcher]]></string>
+	<string name="_adm_tmi_cpt_launcher"><![CDATA[Launcher]]></string>
 	<string name="_adm_txt_confirm_cancel"><![CDATA[Cancel]]></string>
 	<string name="_adm_txt_confirm_ok"><![CDATA[OK]]></string>
 	<string name="_adm_txt_forgot_password"><![CDATA[Forgot password?]]></string>
@@ -1659,19 +1719,23 @@
 	<string name="_adm_txt_modules_upload"><![CDATA[Add New Module]]></string>
 	<string name="_adm_txt_modules_writable"><![CDATA[Writable]]></string>
 	<string name="_adm_txt_pca_active"><![CDATA[Active]]></string>
-	<string name="_adm_txt_pca_favorite"><![CDATA[Favorite]]></string>
+        <string name="_adm_txt_pca_bookmark"><![CDATA[Bookmark]]></string>
+	<string name="_adm_txt_pca_featured"><![CDATA[Featured]]></string>
+        <string name="_adm_txt_pca_rearrange"><![CDATA[Move to]]></string>
 	<string name="_adm_txt_remember_me"><![CDATA[Remember me]]></string>
 	<string name="_adm_txt_select_module"><![CDATA[Select Module...]]></string>
+        <string name="_adm_txt_settings"><![CDATA[Settings]]></string>
 	<string name="_adm_txt_show_actions"><![CDATA[Actions]]></string>
 	<string name="_adm_txt_show_help"><![CDATA[Help]]></string>
 	<string name="_adm_txt_show_help_content_empty"><![CDATA[Help is not available]]></string>
 	<string name="_adm_txt_uninstall"><![CDATA[Uninstall]]></string>
-  <string name="_adm_wgt_cpt_audit"><![CDATA[Audit]]></string>
-  <string name="_adm_wgt_cpt_badges"><![CDATA[Badges]]></string>
+        <string name="_adm_wgt_cpt_audit"><![CDATA[Audit]]></string>
+        <string name="_adm_wgt_cpt_badges"><![CDATA[Badges]]></string>
 	<string name="_adm_wgt_cpt_builder_forms"><![CDATA[Forms]]></string>
 	<string name="_adm_wgt_cpt_builder_menus"><![CDATA[Navigation]]></string>
 	<string name="_adm_wgt_cpt_builder_pages"><![CDATA[Pages]]></string>
 	<string name="_adm_wgt_cpt_builder_permissions"><![CDATA[Permissions]]></string>
+        <string name="_adm_wgt_cpt_builder_roles"><![CDATA[Roles]]></string>
 	<string name="_adm_wgt_cpt_dashboard"><![CDATA[Dashboard]]></string>
 	<string name="_adm_wgt_cpt_designer"><![CDATA[Designer]]></string>
 	<string name="_adm_wgt_cpt_polyglot"><![CDATA[Polyglot]]></string>
@@ -2743,7 +2807,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_title_profile_stats"><![CDATA[Profile Stats]]></string>
 	<string name="_sys_menu_title_rss"><![CDATA[RSS]]></string>
 	<string name="_sys_menu_title_set_acl_level"><![CDATA[ACL Levels]]></string>
-  <string name="_sys_menu_title_set_badges"><![CDATA[Badges]]></string>
+        <string name="_sys_menu_title_set_badges"><![CDATA[Badges]]></string>
 	<string name="_sys_menu_title_social_sharing"><![CDATA[Social Sharing]]></string>
         <string name="_sys_menu_title_create_post"><![CDATA[Create Post Menu]]></string>
         <string name="_sys_menu_title_add_relation"><![CDATA[Add Relationship Menu]]></string>
@@ -2754,31 +2818,42 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_title_switch_language_inline"><![CDATA[Language Switch (inline)]]></string>
 	<string name="_sys_menu_title_switch_template"><![CDATA[Switch Template]]></string>
 	<string name="_sys_menu_title_snippet_meta"><![CDATA[Snippet Meta Info]]></string>
-    <string name="_sys_menu_title_vote_reactions_do"><![CDATA[Do Reaction Vote]]></string>
-  <string name="_sys_menu_title_wiki"><![CDATA[Wiki]]></string>
-  <string name="_sys_menu_set_title_sys_wiki"><![CDATA[Wiki]]></string>
-  <string name="_sys_menu_item_title_wiki_edit"><![CDATA[Edit]]></string>
-  <string name="_sys_menu_item_title_wiki_delete_version"><![CDATA[Delete Version]]></string>
-  <string name="_sys_menu_item_title_wiki_delete_block"><![CDATA[Delete Block]]></string>
-  <string name="_sys_menu_item_title_wiki_translate"><![CDATA[Translate]]></string>
-  <string name="_sys_menu_item_title_wiki_history"><![CDATA[History]]></string>
-  <string name="_sys_menu_title_favorite_list"><![CDATA[Favorite list]]></string>
-  <string name="_sys_menu_set_title_sys_favorite_list"><![CDATA[Favorite list]]></string>
-  <string name="_sys_menu_item_title_favorite_list_edit"><![CDATA[Edit]]></string>
-  <string name="_sys_menu_item_title_wiki_favorite_list_delete"><![CDATA[Delete]]></string>
-  
-  <string name="_sys_menu_dashboard_manage_tools_addon_counter1_caption_default"><![CDATA[hidden]]></string>
-  <string name="_sys_menu_dashboard_manage_tools_addon_counter1_caption_profile_default"><![CDATA[unapproved]]></string>
-  <string name="_sys_menu_dashboard_manage_tools_addon_counter2_caption_default"><![CDATA[reported]]></string>
-	<string name="_sys_metatags_mention_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> mentioned <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
-	<string name="_sys_mobile_friends"><![CDATA[Friends]]></string>
-	<string name="_sys_mobile_info"><![CDATA[Info]]></string>
-	<string name="_sys_mobile_mail"><![CDATA[Messages]]></string>
-	<string name="_sys_mobile_profile_contact"><![CDATA[Contact]]></string>
-	<string name="_sys_mobile_profile_friends"><![CDATA[Friends]]></string>
-	<string name="_sys_mobile_profile_info"><![CDATA[Profile Info]]></string>
-	<string name="_sys_mobile_search"><![CDATA[Search]]></string>
-	<string name="_sys_mobile_status"><![CDATA[Status]]></string>
+        <string name="_sys_menu_title_vote_reactions_do"><![CDATA[Do Reaction Vote]]></string>
+    <string name="_sys_menu_title_wiki"><![CDATA[Wiki]]></string>
+    <string name="_sys_menu_set_title_sys_wiki"><![CDATA[Wiki]]></string>
+    <string name="_sys_menu_item_title_wiki_edit"><![CDATA[Edit]]></string>
+    <string name="_sys_menu_item_title_wiki_delete_version"><![CDATA[Delete Version]]></string>
+    <string name="_sys_menu_item_title_wiki_delete_block"><![CDATA[Delete Block]]></string>
+    <string name="_sys_menu_item_title_wiki_translate"><![CDATA[Translate]]></string>
+    <string name="_sys_menu_item_title_wiki_history"><![CDATA[History]]></string>
+    <string name="_sys_menu_title_favorite_list"><![CDATA[Favorite list]]></string>
+    <string name="_sys_menu_set_title_sys_favorite_list"><![CDATA[Favorite list]]></string>
+    <string name="_sys_menu_item_title_favorite_list_edit"><![CDATA[Edit]]></string>
+    <string name="_sys_menu_item_title_wiki_favorite_list_delete"><![CDATA[Delete]]></string>        
+    <string name="_sys_menu_dashboard_manage_tools_addon_counter1_caption_default"><![CDATA[hidden]]></string>
+    <string name="_sys_menu_dashboard_manage_tools_addon_counter1_caption_profile_default"><![CDATA[unapproved]]></string>
+    <string name="_sys_menu_dashboard_manage_tools_addon_counter2_caption_default"><![CDATA[reported]]></string>
+    <string name="_sys_menu_title_studio_account_popup"><![CDATA[Account Popup (Studio)]]></string>
+    <string name="_sys_menu_set_title_studio_account_popup"><![CDATA[Account Popup (Studio)]]></string>
+    <string name="_sys_menu_item_title_system_sa_account"><![CDATA[Account]]></string>
+    <string name="_sys_menu_item_title_sa_account"><![CDATA[{member_display_name}]]></string>
+    <string name="_sys_menu_item_title_system_sa_edit"><![CDATA[Manage Launcher]]></string>
+    <string name="_sys_menu_item_title_sa_edit"><![CDATA[Manage Launcher]]></string>
+    <string name="_sys_menu_item_title_system_sa_featured"><![CDATA[Featured]]></string>
+    <string name="_sys_menu_item_title_sa_featured"><![CDATA[Featured Only]]></string>
+    <string name="_sys_menu_item_title_system_sa_language"><![CDATA[Language]]></string>
+    <string name="_sys_menu_item_title_sa_language"><![CDATA[Language]]></string>
+    <string name="_sys_menu_item_title_system_sa_logout"><![CDATA[Sign out]]></string>
+    <string name="_sys_menu_item_title_sa_logout"><![CDATA[Sign out]]></string>
+    <string name="_sys_metatags_mention_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> mentioned <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
+    <string name="_sys_mobile_friends"><![CDATA[Friends]]></string>
+    <string name="_sys_mobile_info"><![CDATA[Info]]></string>
+    <string name="_sys_mobile_mail"><![CDATA[Messages]]></string>
+    <string name="_sys_mobile_profile_contact"><![CDATA[Contact]]></string>
+    <string name="_sys_mobile_profile_friends"><![CDATA[Friends]]></string>
+    <string name="_sys_mobile_profile_info"><![CDATA[Profile Info]]></string>
+    <string name="_sys_mobile_search"><![CDATA[Search]]></string>
+    <string name="_sys_mobile_status"><![CDATA[Status]]></string>
     <string name="_sys_name"><![CDATA[Name]]></string>
     <string name="_sys_added"><![CDATA[Added]]></string>
     <string name="_sys_next"><![CDATA[Next]]></string>
@@ -2930,6 +3005,16 @@ If it is not enabled then please consider implement this optimization, since it
         <string name="_sys_pre_lists_vote_reactions_surprise"><![CDATA[Wow]]></string>
         <string name="_sys_pre_lists_vote_reactions_sadness"><![CDATA[Sad]]></string>
         <string name="_sys_pre_lists_vote_reactions_anger"><![CDATA[Angry]]></string>
+        <string name="_sys_pre_lists_studio_widget_types"><![CDATA[App Types]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_library"><![CDATA[Apps Library]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_appearance"><![CDATA[Appearance]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_structure"><![CDATA[Structure]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_content"><![CDATA[Content]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_users"><![CDATA[Users]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_configuration"><![CDATA[Configuration]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_extensions"><![CDATA[Extensions]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_integrations"><![CDATA[Integrations]]></string>
+        <string name="_sys_pre_lists_studio_widget_types_favorites"><![CDATA[Favorites]]></string>
 	<string name="_sys_profile_sample_single"><![CDATA[profile]]></string>
 	<string name="_sys_profile_with_type"><![CDATA[{0} ({1})]]></string>
         <string name="_sys_profile_friend_request_added"><![CDATA[<b class="bx-ntfs-content-profile">{owner_name}</b> befriended <b class="bx-ntfs-content-entry">{entry_caption}</b>]]></string>
@@ -2943,7 +3028,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_private"><![CDATA[Private]]></string>
         <string name="_sys_privacy_forms_input_allow_view_to"><![CDATA[Visibility]]></string>
         <string name="_sys_privacy_groups_acl"><![CDATA[Membership Levels]]></string>
-    <string name="_sys_pruning_db"><![CDATA[<h3>Database pruning:</h3>
+        <string name="_sys_pruning_db"><![CDATA[<h3>Database pruning:</h3>
         <ul>
             <li><b>{0}</b> deleted expired membership levels</li>
             <li><b>{1}</b> deleted expired sessions</li>

+ 2 - 2
modules/boonex/english/install/sql/install.sql

@@ -14,8 +14,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name`='home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id`=@iParentPageId);
-INSERT INTO `sys_std_widgets`(`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, CONCAT('{url_studio}language.php?name=', @sName), '', 'bx_en@modules/boonex/english/|std-icon.svg', '_bx_eng_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:20:"TemplStudioLanguages";}');
+INSERT INTO `sys_std_widgets`(`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'appearance', CONCAT('{url_studio}language.php?name=', @sName), '', 'bx_en@modules/boonex/english/|std-icon.svg', '_bx_eng_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:20:"TemplStudioLanguages";}');
 INSERT INTO `sys_std_pages_widgets`(`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), @iParentPageOrder + 1);
 

+ 2 - 2
modules/boonex/events/install/sql/install.sql

@@ -601,8 +601,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_events', '{url_studio}module.php?name=bx_events', '', 'bx_events@modules/boonex/events/|std-icon.svg', '_bx_events', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_events', 'content', '{url_studio}module.php?name=bx_events', '', 'bx_events@modules/boonex/events/|std-icon.svg', '_bx_events', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 4 - 4
modules/boonex/facebook_connect/classes/BxFaceBookConnectStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxFaceBookConnectStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
         );
     }
     

+ 2 - 2
modules/boonex/facebook_connect/install/sql/install.sql

@@ -14,8 +14,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_facebook', '{url_studio}module.php?name=bx_facebook', '', 'bx_facebook@modules/boonex/facebook_connect/|std-icon.svg', '_bx_facebook', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_facebook', 'integrations', '{url_studio}module.php?name=bx_facebook', '', 'bx_facebook@modules/boonex/facebook_connect/|std-icon.svg', '_bx_facebook', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 3 - 3
modules/boonex/feedback/classes/BxFdbStudioPage.php

@@ -16,14 +16,14 @@ class BxFdbStudioPage extends BxTemplStudioModule
     protected $_sModule;
     protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->_sModule = 'bx_feedback';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
-        $this->aMenuItems[] = array('name' => BX_DOL_STUDIO_MOD_TYPE_QUESTIONS, 'icon' => 'question', 'title' => '_bx_feedback_lmi_cpt_questions');
+        $this->aMenuItems[BX_DOL_STUDIO_MOD_TYPE_QUESTIONS] = array('name' => BX_DOL_STUDIO_MOD_TYPE_QUESTIONS, 'icon' => 'question', 'title' => '_bx_feedback_lmi_cpt_questions');
     }
 
     protected function getQuestions()

+ 2 - 2
modules/boonex/feedback/install/sql/install.sql

@@ -89,7 +89,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_feedback', '{url_studio}module.php?name=bx_feedback', '', 'bx_feedback@modules/boonex/feedback/|std-icon.svg', '_bx_feedback', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_feedback', 'content', '{url_studio}module.php?name=bx_feedback', '', 'bx_feedback@modules/boonex/feedback/|std-icon.svg', '_bx_feedback', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 2 - 2
modules/boonex/files/install/sql/install.sql

@@ -340,8 +340,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_files', '{url_studio}module.php?name=bx_files', '', 'bx_files@modules/boonex/files/|std-icon.svg', '_bx_files', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_files', 'content', '{url_studio}module.php?name=bx_files', '', 'bx_files@modules/boonex/files/|std-icon.svg', '_bx_files', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/fontawesome/classes/BxFontAwesomeStudioPage.php

@@ -11,9 +11,9 @@
 
 class BxFontAwesomeStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
             array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),

+ 2 - 2
modules/boonex/fontawesome/install/sql/install.sql

@@ -8,8 +8,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_fontawesome', '{url_studio}module.php?name=bx_fontawesome', '', 'bx_fontawesome@modules/boonex/fontawesome/|std-icon.svg', '_bx_fontawesome', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_fontawesome', 'integrations', '{url_studio}module.php?name=bx_fontawesome', '', 'bx_fontawesome@modules/boonex/fontawesome/|std-icon.svg', '_bx_fontawesome', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 6 - 8
modules/boonex/forum/classes/BxForumStudioPage.php

@@ -9,24 +9,22 @@
  * @{
  */
 
-define('BX_DOL_STUDIO_MOD_TYPE_CATEGORIES', 'categories');
-
 class BxForumStudioPage extends BxTemplStudioModule
 {
-	protected $_sModule;
-	protected $_oModule;
+    protected $_sModule;
+    protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->_sModule = 'bx_forum';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
-        $this->aMenuItems[] = array('name' => BX_DOL_STUDIO_MOD_TYPE_CATEGORIES, 'icon' => 'bars', 'title' => '_bx_forum_lmi_cpt_categories');
+        $this->aMenuItems['categories'] = array('name' => 'categories', 'icon' => 'bars', 'title' => '_bx_forum_lmi_cpt_categories');
     }
 
-	protected function getCategories()
+    protected function getCategories()
     {
         $oGrid = BxDolGrid::getObjectInstance($this->_oModule->_oConfig->CNF['OBJECT_GRID_CATEGORIES'], BxDolStudioTemplate::getInstance());
         if(!$oGrid)

+ 2 - 2
modules/boonex/forum/install/sql/install.sql

@@ -555,7 +555,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, '{url_studio}module.php?name=bx_forum', '', 'bx_forum@modules/boonex/forum/|std-icon.svg', '_bx_forum', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'content', '{url_studio}module.php?name=bx_forum', '', 'bx_forum@modules/boonex/forum/|std-icon.svg', '_bx_forum', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 4 - 4
modules/boonex/froala/classes/BxFroalaStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxFroalaStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_bx_froala_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_bx_froala_information'),
         );
     }
     

+ 2 - 2
modules/boonex/froala/install/sql/install.sql

@@ -55,8 +55,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_froala', '{url_studio}module.php?name=bx_froala', '', 'bx_froala@modules/boonex/froala/|std-icon.svg', '_bx_froala', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_froala', 'integrations', '{url_studio}module.php?name=bx_froala', '', 'bx_froala@modules/boonex/froala/|std-icon.svg', '_bx_froala', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/glossary/install/sql/install.sql

@@ -350,8 +350,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_glossary', '{url_studio}module.php?name=bx_glossary', '', 'bx_glossary@modules/boonex/glossary/|std-icon.svg', '_bx_glossary', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_glossary', 'content', '{url_studio}module.php?name=bx_glossary', '', 'bx_glossary@modules/boonex/glossary/|std-icon.svg', '_bx_glossary', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 4 - 4
modules/boonex/google_connect/classes/BxGoogleConStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxGoogleConStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
         );
     }
     

+ 2 - 2
modules/boonex/google_connect/install/sql/install.sql

@@ -14,8 +14,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_googlecon', '{url_studio}module.php?name=bx_googlecon', '', 'bx_googlecon@modules/boonex/google_connect/|std-icon.svg', '_bx_googlecon', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_googlecon', 'integrations', '{url_studio}module.php?name=bx_googlecon', '', 'bx_googlecon@modules/boonex/google_connect/|std-icon.svg', '_bx_googlecon', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/google_tagmanager/install/sql/install.sql

@@ -7,8 +7,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_googletagman', '{url_studio}module.php?name=bx_googletagman', '', 'bx_googletagman@modules/boonex/google_tagmanager/|std-icon.svg', '_bx_googletagman', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_googletagman', 'integrations', '{url_studio}module.php?name=bx_googletagman', '', 'bx_googletagman@modules/boonex/google_tagmanager/|std-icon.svg', '_bx_googletagman', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/groups/install/sql/install.sql

@@ -473,8 +473,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_groups', '{url_studio}module.php?name=bx_groups', '', 'bx_groups@modules/boonex/groups/|std-icon.svg', '_bx_groups', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_groups', 'content', '{url_studio}module.php?name=bx_groups', '', 'bx_groups@modules/boonex/groups/|std-icon.svg', '_bx_groups', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 4 - 4
modules/boonex/intercom/classes/BxIntercomStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxIntercomStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_bx_intercom_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_bx_intercom_information'),
         );
     }
 

+ 2 - 2
modules/boonex/intercom/install/sql/install.sql

@@ -7,8 +7,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_intercom', '{url_studio}module.php?name=bx_intercom', '', 'bx_intercom@modules/boonex/intercom/|std-icon.svg', '_bx_intercom', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_intercom', 'integrations', '{url_studio}module.php?name=bx_intercom', '', 'bx_intercom@modules/boonex/intercom/|std-icon.svg', '_bx_intercom', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/invites/classes/BxInvStudioPage.php

@@ -11,9 +11,9 @@
 
 class BxInvStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $oPermalink = BxDolPermalinks::getInstance();
 

+ 2 - 2
modules/boonex/invites/install/sql/install.sql

@@ -71,7 +71,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, '{url_studio}module.php?name=bx_invites', '', 'bx_invites@modules/boonex/invites/|std-icon.svg', '_bx_invites', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'extensions', '{url_studio}module.php?name=bx_invites', '', 'bx_invites@modules/boonex/invites/|std-icon.svg', '_bx_invites', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 4 - 4
modules/boonex/linkedin_connect/classes/BxLinkedinStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxLinkedinStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_sys_connect_information'),
         );
     }
 

+ 2 - 2
modules/boonex/linkedin_connect/install/sql/install.sql

@@ -14,8 +14,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_linkedin', '{url_studio}module.php?name=bx_linkedin', '', 'bx_linkedin@modules/boonex/linkedin_connect/|std-icon.svg', '_bx_linkedin', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_linkedin', 'integrations', '{url_studio}module.php?name=bx_linkedin', '', 'bx_linkedin@modules/boonex/linkedin_connect/|std-icon.svg', '_bx_linkedin', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 33 - 33
modules/boonex/lucid/classes/BxLucidStudioPage.php

@@ -13,12 +13,12 @@ define('BX_LUCID_STUDIO_TEMPL_TYPE_STYLES', 'styles');
 
 class BxLucidStudioPage extends BxTemplStudioDesign
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->MODULE = 'bx_lucid';
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
-        $this->aMenuItems[BX_LUCID_STUDIO_TEMPL_TYPE_STYLES] = array('caption' => '_bx_lucid_lmi_cpt_styles', 'icon' => 'paint-brush');
+        $this->aMenuItems[BX_LUCID_STUDIO_TEMPL_TYPE_STYLES] = array('title' => '_bx_lucid_lmi_cpt_styles', 'icon' => 'paint-brush');
         unset($this->aMenuItems[BX_DOL_STUDIO_TEMPL_TYPE_LOGO]);
     }
 
@@ -27,38 +27,38 @@ class BxLucidStudioPage extends BxTemplStudioDesign
     	return parent::getSettings('bx_lucid_system', $sMix);
     }
 
-	protected function getStyles($sMix = '')
+    protected function getStyles($sMix = '')
     {
     	$oTemplate = BxDolStudioTemplate::getInstance();
 
     	$sPrefix = $this->MODULE;
     	$aCategories = array(
-    		$sPrefix . '_styles_general',
-			$sPrefix . '_styles_header',
-			$sPrefix . '_styles_footer',
-			$sPrefix . '_styles_body',
-			$sPrefix . '_styles_cover',
-			$sPrefix . '_styles_block',
-			$sPrefix . '_styles_card',
-			$sPrefix . '_styles_popup',
-			$sPrefix . '_styles_menu_main',
-			$sPrefix . '_styles_menu_account',
-			$sPrefix . '_styles_menu_add',
-			$sPrefix . '_styles_menu_page',
-			$sPrefix . '_styles_menu_slide',
-			$sPrefix . '_styles_form',
-			$sPrefix . '_styles_large_button',
-			$sPrefix . '_styles_large_button_primary',
-			$sPrefix . '_styles_button',
-			$sPrefix . '_styles_button_primary',
-			$sPrefix . '_styles_small_button',
-			$sPrefix . '_styles_small_button_primary',
-			$sPrefix . '_styles_font',
-			$sPrefix . '_styles_custom',
-			$sPrefix . '_viewport_tablet',
-			$sPrefix . '_viewport_mobile'
-		);
-    	$oPage = new BxTemplStudioSettings($this->sTemplate, $aCategories, $sMix);
+        $sPrefix . '_styles_general',
+            $sPrefix . '_styles_header',
+            $sPrefix . '_styles_footer',
+            $sPrefix . '_styles_body',
+            $sPrefix . '_styles_cover',
+            $sPrefix . '_styles_block',
+            $sPrefix . '_styles_card',
+            $sPrefix . '_styles_popup',
+            $sPrefix . '_styles_menu_main',
+            $sPrefix . '_styles_menu_account',
+            $sPrefix . '_styles_menu_add',
+            $sPrefix . '_styles_menu_page',
+            $sPrefix . '_styles_menu_slide',
+            $sPrefix . '_styles_form',
+            $sPrefix . '_styles_large_button',
+            $sPrefix . '_styles_large_button_primary',
+            $sPrefix . '_styles_button',
+            $sPrefix . '_styles_button_primary',
+            $sPrefix . '_styles_small_button',
+            $sPrefix . '_styles_small_button_primary',
+            $sPrefix . '_styles_font',
+            $sPrefix . '_styles_custom',
+            $sPrefix . '_viewport_tablet',
+            $sPrefix . '_viewport_mobile'
+        );
+    	$oPage = new BxTemplStudioSettings($this->sModule, $aCategories, $sMix);
     	$oPage->enableReadOnly(true);
     	$oPage->enableMixes(true);
 
@@ -67,9 +67,9 @@ class BxLucidStudioPage extends BxTemplStudioDesign
 
         return BxDolStudioTemplate::getInstance()->parseHtmlByName('design.html', array(
             'content' => $oPage->getPageCode(),
-        	'js_content' => $this->getPageJsCode(array(
-				"sCodeMirror" => "textarea[name='" . $sPrefix . "_styles_custom']"
-			))
+            'js_content' => $this->getPageJsCode(array(
+                'sCodeMirror' => "textarea[name='" . $sPrefix . "_styles_custom']"
+            ))
         ));
     }
 }

+ 2 - 2
modules/boonex/lucid/data/template/studio/scripts/BxTemplStudioDesign.php

@@ -11,9 +11,9 @@ defined('BX_DOL') or die('hack attempt');
 
 class BxTemplStudioDesign extends BxBaseStudioDesign
 {
-    function __construct($sTemplate = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sTemplate, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
     }
 }
 /** @} */

+ 2 - 2
modules/boonex/lucid/data/template/studio/scripts/BxTemplStudioLanguage.php

@@ -11,9 +11,9 @@ defined('BX_DOL') or die('hack attempt');
 
 class BxTemplStudioLanguage extends BxBaseStudioLanguage
 {
-    function __construct($sLanguage="", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sLanguage, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
     }
 }
 /** @} */

+ 2 - 2
modules/boonex/lucid/data/template/studio/scripts/BxTemplStudioModule.php

@@ -11,9 +11,9 @@ defined('BX_DOL') or die('hack attempt');
 
 class BxTemplStudioModule extends BxBaseStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
     }
 }
 /** @} */

+ 2 - 2
modules/boonex/lucid/install/sql/install.sql

@@ -819,7 +819,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name`='home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id`=@iParentPageId);
-INSERT INTO `sys_std_widgets`(`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, @sName, CONCAT('{url_studio}design.php?name=', @sName), '', 'bx_lucid@modules/boonex/lucid/|std-icon.svg', '_bx_lucid_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioDesigns";}');
+INSERT INTO `sys_std_widgets`(`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, @sName, 'appearance', CONCAT('{url_studio}design.php?name=', @sName), '', 'bx_lucid@modules/boonex/lucid/|std-icon.svg', '_bx_lucid_wgt_cpt', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioDesigns";}');
 INSERT INTO `sys_std_pages_widgets`(`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), @iParentPageOrder + 1);

+ 4 - 4
modules/boonex/mailchimp/classes/BxMailchimpStudioPage.php

@@ -11,13 +11,13 @@
 
 class BxMailchimpStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_bx_mailchimp_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_bx_mailchimp_information'),
         );
     }
     

+ 2 - 2
modules/boonex/mailchimp/install/sql/install.sql

@@ -7,8 +7,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_mailchimp', '{url_studio}module.php?name=bx_mailchimp', '', 'bx_mailchimp@modules/boonex/mailchimp/|std-icon.svg', '_bx_mailchimp', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_mailchimp', 'integrations', '{url_studio}module.php?name=bx_mailchimp', '', 'bx_mailchimp@modules/boonex/mailchimp/|std-icon.svg', '_bx_mailchimp', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 2 - 2
modules/boonex/mapshow/install/sql/install.sql

@@ -17,8 +17,8 @@ INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
 
 SET @iPageId = LAST_INSERT_ID();
 
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
-VALUES(@iPageId, @sName, '{url_studio}module.php?name=bx_mapshow', '', 'bx_mapshow@modules/boonex/mapshow/|std-icon.svg', '_bx_mapshow', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
+VALUES(@iPageId, @sName, 'extensions', '{url_studio}module.php?name=bx_mapshow', '', 'bx_mapshow@modules/boonex/mapshow/|std-icon.svg', '_bx_mapshow', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT IFNULL(MAX(`order`), 0) + 1 FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);

+ 2 - 2
modules/boonex/market/install/sql/install.sql

@@ -600,7 +600,7 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_market', '{url_studio}module.php?name=bx_market', '', 'bx_market@modules/boonex/market/|std-icon.svg', '_bx_market', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_market', 'content', '{url_studio}module.php?name=bx_market', '', 'bx_market@modules/boonex/market/|std-icon.svg', '_bx_market', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 2 - 2
modules/boonex/massmailer/install/sql/install.sql

@@ -69,8 +69,8 @@ INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
 
 SET @iPageId = LAST_INSERT_ID();
 
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
-VALUES(@iPageId, @sName, '{url_studio}module.php?name=bx_massmailer', '', 'bx_massmailer@modules/boonex/massmailer/|std-icon.svg', '_bx_massmailer', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `bookmark`) 
+VALUES(@iPageId, @sName, 'extensions', '{url_studio}module.php?name=bx_massmailer', '', 'bx_massmailer@modules/boonex/massmailer/|std-icon.svg', '_bx_massmailer', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT IFNULL(MAX(`order`), 0) + 1 FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);

+ 2 - 2
modules/boonex/new_comments/install/sql/install.sql

@@ -6,8 +6,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_new_comments', '{url_studio}module.php?name=bx_new_comments', '', 'bx_new_comments@modules/boonex/new_comments/|std-icon.svg', '_bx_new_comments', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_new_comments', 'extensions', '{url_studio}module.php?name=bx_new_comments', '', 'bx_new_comments@modules/boonex/new_comments/|std-icon.svg', '_bx_new_comments', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));

+ 5 - 5
modules/boonex/nexus/classes/BxNexusStudioPage.php

@@ -11,16 +11,16 @@
 
 class BxNexusStudioPage extends BxTemplStudioModule
 {
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array(
-            array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
-            array('name' => 'help', 'icon' => 'question', 'title' => '_bx_nexus_information'),
+            'settings' => array('name' => 'settings', 'icon' => 'cogs', 'title' => '_adm_lmi_cpt_settings'),
+            'help' => array('name' => 'help', 'icon' => 'question', 'title' => '_bx_nexus_information'),
         );
     }
-    
+
     function getHelp ()
     {
         return _t('_bx_nexus_information_block');

+ 2 - 2
modules/boonex/nexus/install/sql/install.sql

@@ -8,8 +8,8 @@ SET @iPageId = LAST_INSERT_ID();
 
 SET @iParentPageId = (SELECT `id` FROM `sys_std_pages` WHERE `name` = 'home');
 SET @iParentPageOrder = (SELECT MAX(`order`) FROM `sys_std_pages_widgets` WHERE `page_id` = @iParentPageId);
-INSERT INTO `sys_std_widgets` (`page_id`, `module`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
-(@iPageId, 'bx_nexus', '{url_studio}module.php?name=bx_nexus', '', 'bx_nexus@modules/boonex/nexus/|std-icon.svg', '_bx_nexus', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
+INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`) VALUES
+(@iPageId, 'bx_nexus', 'extensions', '{url_studio}module.php?name=bx_nexus', '', 'bx_nexus@modules/boonex/nexus/|std-icon.svg', '_bx_nexus', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}');
 INSERT INTO `sys_std_pages_widgets` (`page_id`, `widget_id`, `order`) VALUES
 (@iParentPageId, LAST_INSERT_ID(), IF(ISNULL(@iParentPageOrder), 1, @iParentPageOrder + 1));
 

+ 5 - 5
modules/boonex/notifications/classes/BxNtfsStudioPage.php

@@ -14,17 +14,17 @@ class BxNtfsStudioPage extends BxTemplStudioModule
     protected $_sModule;
     protected $_oModule;
 
-    function __construct($sModule = "", $sPage = "")
+    function __construct($sModule, $mixedPageName, $sPage = "")
     {
     	$this->_sModule = 'bx_notifications';
     	$this->_oModule = BxDolModule::getInstance($this->_sModule);
 
-        parent::__construct($sModule, $sPage);
+        parent::__construct($sModule, $mixedPageName, $sPage);
 
         $this->aMenuItems = array_merge($this->aMenuItems, array(
-            array('name' => BX_BASE_MOD_NTFS_DTYPE_SITE, 'icon' => 'globe', 'title' => '_bx_ntfs_lmi_cpt_site'),
-            array('name' => BX_BASE_MOD_NTFS_DTYPE_EMAIL, 'icon' => 'envelope', 'title' => '_bx_ntfs_lmi_cpt_email'),
-            array('name' => BX_BASE_MOD_NTFS_DTYPE_PUSH, 'icon' => 'bullhorn', 'title' => '_bx_ntfs_lmi_cpt_push')
+            BX_BASE_MOD_NTFS_DTYPE_SITE => array('name' => BX_BASE_MOD_NTFS_DTYPE_SITE, 'icon' => 'globe', 'title' => '_bx_ntfs_lmi_cpt_site'),
+            BX_BASE_MOD_NTFS_DTYPE_EMAIL => array('name' => BX_BASE_MOD_NTFS_DTYPE_EMAIL, 'icon' => 'envelope', 'title' => '_bx_ntfs_lmi_cpt_email'),
+            BX_BASE_MOD_NTFS_DTYPE_PUSH => array('name' => BX_BASE_MOD_NTFS_DTYPE_PUSH, 'icon' => 'bullhorn', 'title' => '_bx_ntfs_lmi_cpt_push')
         ));
     }
 

Некоторые файлы не были показаны из-за большого количества измененных файлов