瀏覽代碼

Air template

Alex Trofimov 11 年之前
父節點
當前提交
2c5d545759
共有 100 個文件被更改,包括 2341 次插入 和 2 次删除
  1. 0 2
      .gitignore
  2. 4 0
      modules/boonex/air/README.md
  3. 22 0
      modules/boonex/air/classes/BxAirConfig.php
  4. 25 0
      modules/boonex/air/classes/BxAirDb.php
  5. 30 0
      modules/boonex/air/classes/BxAirModule.php
  6. 63 0
      modules/boonex/air/classes/BxAirTemplate.php
  7. 22 0
      modules/boonex/air/data/template/bx_convos/collaborators.html
  8. 4 0
      modules/boonex/air/data/template/bx_convos/message_label.html
  9. 9 0
      modules/boonex/air/data/template/bx_developer/css/main.css
  10. 二進制
      modules/boonex/air/data/template/bx_developer/images/bx-dev-bg-columns.png
  11. 二進制
      modules/boonex/air/data/template/bx_developer/images/bx-dev-bg-single.png
  12. 6 0
      modules/boonex/air/data/template/bx_notifications/css/view.css
  13. 27 0
      modules/boonex/air/data/template/bx_posts/css/main.less
  14. 65 0
      modules/boonex/air/data/template/bx_timeline/css/view.less
  15. 11 0
      modules/boonex/air/data/template/studio/css/builder_page.css
  16. 53 0
      modules/boonex/air/data/template/studio/css/common.css
  17. 6 0
      modules/boonex/air/data/template/studio/css/dashboard.css
  18. 1 0
      modules/boonex/air/data/template/studio/css/default.less
  19. 34 0
      modules/boonex/air/data/template/studio/css/forms.css
  20. 21 0
      modules/boonex/air/data/template/studio/css/general.css
  21. 5 0
      modules/boonex/air/data/template/studio/css/launcher.css
  22. 6 0
      modules/boonex/air/data/template/studio/css/page_columns.css
  23. 二進制
      modules/boonex/air/data/template/studio/images/bx-std-bg-columns.png
  24. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioBuilderPage.php
  25. 25 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioConfig.php
  26. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioDashboard.php
  27. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioDesign.php
  28. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioDesigner.php
  29. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioDesigns.php
  30. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormView.php
  31. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioForms.php
  32. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsDisplays.php
  33. 120 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsField.php
  34. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsFields.php
  35. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsForms.php
  36. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsPreLists.php
  37. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsPreValues.php
  38. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioFunctions.php
  39. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioGrid.php
  40. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioGridNavigation.php
  41. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioLanguage.php
  42. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioLanguages.php
  43. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioLauncher.php
  44. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioMenu.php
  45. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioMenuTop.php
  46. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioModule.php
  47. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioModules.php
  48. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigation.php
  49. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigationImport.php
  50. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigationItems.php
  51. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigationMenus.php
  52. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigationSets.php
  53. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioPage.php
  54. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioPermissions.php
  55. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioPermissionsActions.php
  56. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioPermissionsLevels.php
  57. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioPolyglot.php
  58. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioPolyglotEtemplates.php
  59. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioPolyglotKeys.php
  60. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioSettings.php
  61. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioStore.php
  62. 19 0
      modules/boonex/air/data/template/studio/scripts/BxTemplStudioWidgets.php
  63. 96 0
      modules/boonex/air/data/template/system/_header.html
  64. 43 0
      modules/boonex/air/data/template/system/_sub_footer.html
  65. 70 0
      modules/boonex/air/data/template/system/_sub_header.html
  66. 5 0
      modules/boonex/air/data/template/system/css/cmts.css
  67. 122 0
      modules/boonex/air/data/template/system/css/common.css
  68. 42 0
      modules/boonex/air/data/template/system/css/default.less
  69. 41 0
      modules/boonex/air/data/template/system/css/editor.css
  70. 37 0
      modules/boonex/air/data/template/system/css/forms.css
  71. 58 0
      modules/boonex/air/data/template/system/css/general.css
  72. 6 0
      modules/boonex/air/data/template/system/css/informer.css
  73. 111 0
      modules/boonex/air/data/template/system/css/menu.css
  74. 10 0
      modules/boonex/air/data/template/system/css/page_layouts.less
  75. 6 0
      modules/boonex/air/data/template/system/designbox_1.html
  76. 5 0
      modules/boonex/air/data/template/system/designbox_10.html
  77. 6 0
      modules/boonex/air/data/template/system/designbox_11.html
  78. 7 0
      modules/boonex/air/data/template/system/designbox_13.html
  79. 7 0
      modules/boonex/air/data/template/system/designbox_3.html
  80. 9 0
      modules/boonex/air/data/template/system/informer.html
  81. 10 0
      modules/boonex/air/data/template/system/menu_account_notifications.html
  82. 8 0
      modules/boonex/air/data/template/system/menu_toolbar.html
  83. 5 0
      modules/boonex/air/data/template/system/scripts/.htaccess
  84. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplAccountForms.php
  85. 20 0
      modules/boonex/air/data/template/system/scripts/BxTemplAcl.php
  86. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplAclServices.php
  87. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplCaptchaReCAPTCHA.php
  88. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplCaptchaReCAPTCHANew.php
  89. 17 0
      modules/boonex/air/data/template/system/scripts/BxTemplCategory.php
  90. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplCmts.php
  91. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplCmtsForm.php
  92. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplCmtsMenuActions.php
  93. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplCmtsMenuManage.php
  94. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplCmtsServices.php
  95. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplCmtsUploaderSimple.php
  96. 44 0
      modules/boonex/air/data/template/system/scripts/BxTemplConfig.php
  97. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplEditorTinyMCE.php
  98. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplFormAccount.php
  99. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplFormConfirmEmail.php
  100. 21 0
      modules/boonex/air/data/template/system/scripts/BxTemplFormForgotPassword.php

+ 0 - 2
.gitignore

@@ -24,5 +24,3 @@ tests/vendor
 tests/composer.phar
 samples/img/*
 
-# Exclude custom modules
-modules/boonex/air*

+ 4 - 0
modules/boonex/air/README.md

@@ -0,0 +1,4 @@
+online.me
+========
+
+online.me "Air" template

+ 22 - 0
modules/boonex/air/classes/BxAirConfig.php

@@ -0,0 +1,22 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Air Air
+ * @ingroup     DolphinModules
+ *
+ * @{
+ */
+
+bx_import('BxBaseModGeneralConfig');
+
+class BxAirConfig extends BxBaseModGeneralConfig
+{
+    function __construct($aModule)
+    {
+        parent::__construct($aModule);
+    }
+}
+
+/** @} */

+ 25 - 0
modules/boonex/air/classes/BxAirDb.php

@@ -0,0 +1,25 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Air Air
+ * @ingroup     DolphinModules
+ *
+ * @{
+ */
+
+bx_import('BxBaseModGeneralDb');
+
+/*
+ * Module database queries
+ */
+class BxAirDb extends BxBaseModGeneralDb
+{
+    function __construct(&$oConfig)
+    {
+        parent::__construct($oConfig);
+    }
+}
+
+/** @} */

+ 30 - 0
modules/boonex/air/classes/BxAirModule.php

@@ -0,0 +1,30 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Air Air
+ * @ingroup     DolphinModules
+ *
+ * @{
+ */
+
+bx_import ('BxBaseModGeneralModule');
+
+/**
+ * Air module
+ */
+class BxAirModule extends BxBaseModGeneralModule
+{
+    function __construct(&$aModule)
+    {
+        parent::__construct($aModule);
+    }
+
+    public function serviceGetSplash()
+    {
+    	return $this->_oTemplate->getSplash();
+    }
+}
+
+/** @} */

+ 63 - 0
modules/boonex/air/classes/BxAirTemplate.php

@@ -0,0 +1,63 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    Air Air
+ * @ingroup     DolphinModules
+ *
+ * @{
+ */
+
+bx_import('BxBaseModGeneralTemplate');
+
+/*
+ * Module representation.
+ */
+class BxAirTemplate extends BxBaseModGeneralTemplate
+{
+    /**
+     * Constructor
+     */
+    function __construct(&$oConfig, &$oDb)
+    {
+        $this->MODULE = 'bx_air';
+        parent::__construct($oConfig, $oDb);
+    }
+
+    public function getSplash()
+    {
+		if($this->_oConfig->getUri() != $this->getCode())
+			return '';
+
+		$sDownloadUrl = 'http://ci.boonex.com/';
+		$sVersion = '8.0';
+        $sVersionFull = '8.0.0';
+		$sBuild = '';
+
+		$mixedResponse = bx_file_get_contents($sDownloadUrl . "builds/latest-release-file.txt");
+		if($mixedResponse !== false) {
+			$sFile = trim(bx_process_input($mixedResponse));
+			
+			$aMatches = array();
+			if((int)preg_match("/([0-9]\.[0-9])\.([0-9])-?([A-Z]*[a-z]*[0-9]{1,3})/", $sFile, $aMatches) > 0 && !empty($aMatches[1]) && !empty($aMatches[3])) {
+				$sDownloadUrl .= 'builds/' . $sFile;
+				$sVersion = $aMatches[1];
+				$sBuild = $aMatches[3];
+			}
+
+            if((int)preg_match("/Trident-v\.([0-9A-Za-z\.-]+)\.zip/", $sFile, $aMatches) > 0)
+                $sVersionFull = $aMatches[1];
+		}
+
+		$this->addCss(array('splash-phone.css', 'splash-tablet.css', 'splash-desktop.css'));
+    	return $this->parseHtmlByName('splash.html', array(
+    		'download_url' => $sDownloadUrl,
+            'version_full' => $sVersionFull,
+    		'version' => $sVersion,
+    		'build' => $sBuild
+    	));
+    }
+}
+
+/** @} */

+ 22 - 0
modules/boonex/air/data/template/bx_convos/collaborators.html

@@ -0,0 +1,22 @@
+<div class="bx-cnv-collaborators bx-def-margin-sec-right bx-clearfix" style="float:__float__;">
+
+    <bx_repeat:collaborators>
+        <div class="bx-cnv-collaborator bx-def-unit bx-def-margin-sec-__float__-auto __class__">
+            <a href="__url__" title="__title_attr__"><img class="bx-def-thumb bx-def-thumb-size" src="__thumb_url__" /></a>
+            <bx_if:last_replier>
+                <div class="bx-def-unit-alert bg-col-blue3-dark" style="left:0; right:auto;"><i class="sys-icon comments"></i></div>
+            </bx_if:last_replier>
+            <bx_if:author>
+                <div class="bx-def-unit-alert bg-col-blue3-dark"><i class="sys-icon user"></i></div>
+            </bx_if:author>
+        </div>
+    </bx_repeat:collaborators>
+   
+    <bx_if:collaborators_more>
+        <div class="bx-cnv-collaborator bx-def-unit bx-def-thumb-size bx-def-margin-sec-__float__-auto">
+            <a href="javascript:void(0);" onclick="$('#__id__').dolPopup({pointer:{el:$(this)}})">__title_more__</a>            
+        </div>
+        <div id="__id__" style="display:none;">__popup__</div>
+    </bx_if:collaborators_more>
+
+</div>

+ 4 - 0
modules/boonex/air/data/template/bx_convos/message_label.html

@@ -0,0 +1,4 @@
+
+<bx_if:unread_messages><div class="bx-def-unit-alert-middle bg-col-blue3-dark">__unread_messages__</div></bx_if:unread_messages>
+<bx_if:viewer_is_last_replier><div class="bx-def-unit-alert-middle"><i title="<bx_text_attribute:_bx_cnv_you_are_last_replier />" class="sys-icon reply bx-def-font-grayed"></i></div></bx_if:viewer_is_last_replier>
+<bx_if:is_read_by_all><div class="bx-def-unit-alert-middle"><i title="<bx_text_attribute:_bx_cnv_read_by_all />" class="sys-icon check bx-def-font-grayed"></i></div></bx_if:is_read_by_all>

+ 9 - 0
modules/boonex/air/data/template/bx_developer/css/main.css

@@ -0,0 +1,9 @@
+@import url(../../../../../developer/template/css/main.css);
+
+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");
+}

二進制
modules/boonex/air/data/template/bx_developer/images/bx-dev-bg-columns.png


二進制
modules/boonex/air/data/template/bx_developer/images/bx-dev-bg-single.png


+ 6 - 0
modules/boonex/air/data/template/bx_notifications/css/view.css

@@ -0,0 +1,6 @@
+@import url(../../../../../notifications/template/css/view.css);
+
+/*--- Event Style ---*/
+.bx-ntfs-content-profile {
+	font-weight: bold;
+}

+ 27 - 0
modules/boonex/air/data/template/bx_posts/css/main.less

@@ -0,0 +1,27 @@
+@import (reference) '../../system/css/default.less';
+@import '../../../../../posts/template/css/main.css';
+
+/* unit: galery view */
+.bx-base-text-unit-gallery .bx-base-text-unit-thumb,
+.bx-base-text-unit-gallery .bx-base-text-unit-no-thumb {
+	background-color: #fff;
+}
+
+.bx-base-text-unit-gallery .bx-base-text-unit-no-thumb {
+	.bx-def-border;
+}
+
+.bx-base-text-unit-gallery h2 {
+	.bx-def-font-h3;
+
+	margin-bottom: 0px;
+	text-align: center;
+}
+
+.bx-base-text-unit-gallery .bx-base-text-unit-info {
+	text-align: center;
+}
+
+.bx-base-text-unit-author {
+	font-weight: 600;
+}

+ 65 - 0
modules/boonex/air/data/template/bx_timeline/css/view.less

@@ -0,0 +1,65 @@
+@import (reference) '../../system/css/default.less';
+@import '../../../../../timeline/template/css/view.css';
+
+div.bx-tl-activity ul.bx-menu-object-bx_timeline_menu_item_actions {
+	.bx-def-margin-thd-leftright-neg;
+
+	.margin-top(-@bx-margin-thd);
+}
+
+div.bx-tl-activity ul.bx-menu-object-bx_timeline_menu_item_actions li  {
+	.bx-def-margin-thd;
+}
+
+/*+++ Item Menu +++*/
+.bx-tl-item-menu  .bx-tl-item-menu-button,
+.bx-menu-hor.bx-menu-hor-inline.bx-menu-object-bx_timeline_menu_item_actions li {
+	padding: 4px 8px;
+	padding: 0.25rem 0.5rem;
+
+	border: 1px solid #b9e2f6;
+	border: 0.0625rem solid #b9e2f6;
+
+	border-radius: 3px;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	border-radius: 0.1875rem;
+	-moz-border-radius: 0.1875rem;
+	-webkit-border-radius: 0.1875rem;
+
+	background-color: #fff;
+}
+
+.bx-menu-hor.bx-menu-hor-inline.bx-menu-object-bx_timeline_menu_item_actions li > a,
+.bx-menu-hor.bx-menu-hor-inline.bx-menu-object-bx_timeline_menu_item_actions li > span,
+.bx-menu-hor.bx-menu-hor-inline.bx-menu-object-bx_timeline_menu_item_actions li > div {
+    margin:0;
+}
+
+.bx-menu-hor.bx-menu-hor-inline.bx-menu-object-bx_timeline_menu_item_actions .sys-icon.comment:before {
+  content: "\f0e5";
+}
+.bx-menu-hor.bx-menu-hor-inline.bx-menu-object-bx_timeline_menu_item_actions .sys-icon.share:before {
+  content: "\f045";
+}
+.bx-menu-hor.bx-menu-hor-inline.bx-menu-object-bx_timeline_menu_item_actions .sys-icon.thumbs-up:before {
+  content: "\f087";
+}
+.bx-menu-hor.bx-menu-hor-inline.bx-menu-object-bx_timeline_menu_item_actions .sys-icon.thumbs-down:before {
+  content: "\f088";
+}
+
+/*+++ Item Owner +++*/
+div.bx-tl-owner-name {
+	font-weight: bold;
+	font-size: 20px;
+	font-size: 1.25rem;
+}
+div.bx-tl-item-info {
+
+}
+
+/*+++ Item Text +++*/
+div.bx-tl-title {
+	font-weight: bold;
+}

+ 11 - 0
modules/boonex/air/data/template/studio/css/builder_page.css

@@ -0,0 +1,11 @@
+@import url(../../../../../../../studio/template/css/builder_page.css);
+
+div.adm-bp-block {
+	background-color: #b9e2f6;
+    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#b9e2f6));
+    background-image: -webkit-linear-gradient(top, #fff, #b9e2f6); 
+    background-image: -moz-linear-gradient(top, #fff, #b9e2f6); 
+    background-image: -ms-linear-gradient(top, #fff, #b9e2f6); 
+    background-image: -o-linear-gradient(top, #fff, #b9e2f6); 
+    background-image: linear-gradient(top, #fff, #b9e2f6);
+}

+ 53 - 0
modules/boonex/air/data/template/studio/css/common.css

@@ -0,0 +1,53 @@
+@import url(../../../../../../../studio/template/css/common.css);
+
+a {
+    color:#29789c;
+}
+
+/* --------------- design boxes */
+.bx-db-title {
+	line-height: normal;
+}
+.bx-db-menu {
+	line-height: normal;
+}
+
+/* --------------- popup boxes */
+.bx-popup-border {
+	border-color: #0084b4;
+}
+.bx-popup-header {
+    background-color: #0084b4;
+}
+
+/* --------------- message box */
+.bx-msg-box {
+	background-color:rgba(0, 143, 184, 0.3);
+}
+
+/* --------------- loading indicator */
+.bx-loading-ajax {
+	background-color:#8cd9ff;
+    background-color:rgba(69, 202, 255, 0.5);
+}
+
+/* --------------- button */
+.bx-btn {
+	background-color: #42c0f1;
+}
+.bx-btn:active,
+.bx-btn:hover {	
+    background-color: #45caff;
+}
+.bx-btn.bx-btn-primary {
+    background-color: #008fb8;
+}
+.bx-btn.bx-btn-primary:hover,
+.bx-btn.bx-btn-primary:active { 
+    background-color: #0098c7;
+}
+.bx-btn.bx-btn-disabled:active,
+.bx-btn.bx-btn-disabled:hover,
+.bx-btn.bx-btn-disabled {
+    background-color: #caf2fc;
+}

+ 6 - 0
modules/boonex/air/data/template/studio/css/dashboard.css

@@ -0,0 +1,6 @@
+@import url(../../../../../../../studio/template/css/dashboard.css);
+
+/*--- Background ---*/
+div.bx-std-page-bg {
+	background-image: url(../images/bx-std-bg-columns.png);
+}

+ 1 - 0
modules/boonex/air/data/template/studio/css/default.less

@@ -0,0 +1 @@
+@import '../../../../../../../studio/template/css/default.less';

+ 34 - 0
modules/boonex/air/data/template/studio/css/forms.css

@@ -0,0 +1,34 @@
+@import url(../../../../../../../studio/template/css/forms.css);
+
+/* form inputs */
+
+.bx-form-input-slider,
+.bx-form-input-doublerange,
+.bx-form-input-select_multiple,
+.bx-form-input-select,
+.bx-form-input-radio_set,
+.bx-form-input-checkbox_set,
+.bx-form-input-number,
+.bx-form-input-datepicker,
+.bx-form-input-datetime,
+.bx-form-input-textarea,
+.bx-form-input-password,
+.bx-form-input-text {
+    border-color:#6097b0;
+}
+
+.bx-form-input-slider:focus,
+.bx-form-input-doublerange:focus,
+.bx-form-input-number:focus,
+.bx-form-input-datepicker:focus,
+.bx-form-input-datetime:focus,
+.bx-form-input-textarea:focus,
+.bx-form-input-password:focus,
+.bx-form-input-text:focus {
+	border-color:#57889e;
+}
+
+/* switcher */
+.bx-switcher-cont {
+	border-color: #6097b0;
+}

+ 21 - 0
modules/boonex/air/data/template/studio/css/general.css

@@ -0,0 +1,21 @@
+@import url(../../../../../../../studio/template/css/general.css);
+
+/**
+ * Dual Column page
+ */
+div.bx-std-page-caption {
+	background-image: none;
+	background: -webkit-linear-gradient(#2aaadc, #0079a9);
+	background: -o-linear-gradient(#2aaadc, #0079a9);
+	background: -moz-linear-gradient(#2aaadc, #0079a9);
+	background: linear-gradient(#2aaadc, #0079a9);
+  	border-bottom: 1px solid #4c4c4c;
+	box-shadow: 0px 1px 3px #888;
+}
+
+/**
+ * Page Menu (Left Side)
+ */
+div.bx-menu-tab-active {
+	background-color: #b9e2f6;
+}

+ 5 - 0
modules/boonex/air/data/template/studio/css/launcher.css

@@ -0,0 +1,5 @@
+@import url(../../../../../../../studio/template/css/launcher.css);
+
+body.bx-std-bg {
+    background-color: #0084b4;
+}

+ 6 - 0
modules/boonex/air/data/template/studio/css/page_columns.css

@@ -0,0 +1,6 @@
+@import url(../../../../../../../studio/template/css/page_columns.css);
+
+/*--- Background ---*/
+div.bx-std-page-bg {
+	background-image: url(../images/bx-std-bg-columns.png);
+}

二進制
modules/boonex/air/data/template/studio/images/bx-std-bg-columns.png


+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioBuilderPage.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioBuilderPage extends BxBaseStudioBuilderPage
+{
+    function __construct($sType = '', $sPage = '')
+    {
+        parent::__construct($sType, $sPage);
+    }
+}
+/** @} */

+ 25 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioConfig.php

@@ -0,0 +1,25 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioConfig extends BxBaseStudioConfig
+{
+    function __construct()
+    {
+        parent::__construct();
+
+        $this->_aConfig['aLessConfig'] = array_merge($this->_aConfig['aLessConfig'], array(
+        	'bx-color-page' => '#f3f3f8',
+        	'bx-border-color-layout' => '#b9e2f6',
+        ));
+    }
+}
+
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioDashboard.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioDashboard extends BxBaseStudioDashboard
+{
+    function __construct()
+    {
+        parent::__construct();
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioDesign.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioDesign extends BxBaseStudioDesign
+{
+    function __construct($sTemplate = "", $sPage = "")
+    {
+        parent::__construct($sTemplate, $sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioDesigner.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioDesigner extends BxBaseStudioDesigner
+{
+    function __construct($sPage = '')
+    {
+        parent::__construct($sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioDesigns.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioDesigns extends BxBaseStudioDesigns
+{
+    function __construct()
+    {
+        parent::__construct();
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormView.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioFormView extends BxBaseStudioFormView
+{
+    function __construct($aInfo, $oTemplate = false)
+    {
+        parent::__construct($aInfo, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioForms.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioForms extends BxBaseStudioForms
+{
+    function __construct($sPage = '')
+    {
+        parent::__construct($sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsDisplays.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioFormsDisplays extends BxBaseStudioFormsDisplays
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 120 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsField.php

@@ -0,0 +1,120 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioFormsField extends BxBaseStudioFormsField
+{
+}
+
+class BxTemplStudioFormsFieldBlockHeader extends BxBaseStudioFormsFieldBlockHeader
+{
+}
+
+class BxTemplStudioFormsFieldValue extends BxBaseStudioFormsFieldValue
+{
+}
+
+class BxTemplStudioFormsFieldText extends BxBaseStudioFormsFieldText
+{
+}
+
+class BxTemplStudioFormsFieldPassword extends BxBaseStudioFormsFieldPassword
+{
+}
+
+class BxTemplStudioFormsFieldTextarea extends BxBaseStudioFormsFieldTextarea
+{
+}
+
+class BxTemplStudioFormsFieldNumber extends BxBaseStudioFormsFieldNumber
+{
+}
+
+class BxTemplStudioFormsFieldDatepicker extends BxBaseStudioFormsFieldDatepicker
+{
+}
+
+class BxTemplStudioFormsFieldDatetime extends BxBaseStudioFormsFieldDatetime
+{
+}
+
+class BxTemplStudioFormsFieldCheckbox extends BxBaseStudioFormsFieldCheckbox
+{
+}
+
+class BxTemplStudioFormsFieldSwitcher extends BxBaseStudioFormsFieldSwitcher
+{
+}
+
+class BxTemplStudioFormsFieldFile extends BxBaseStudioFormsFieldFile
+{
+}
+
+class BxTemplStudioFormsFieldFiles extends BxBaseStudioFormsFieldFiles
+{
+}
+
+class BxTemplStudioFormsFieldSlider extends BxBaseStudioFormsFieldSlider
+{
+}
+
+class BxTemplStudioFormsFieldDoublerange extends BxBaseStudioFormsFieldDoublerange
+{
+}
+
+class BxTemplStudioFormsFieldHidden extends BxBaseStudioFormsFieldHidden
+{
+}
+
+class BxTemplStudioFormsFieldButton extends BxBaseStudioFormsFieldButton
+{
+}
+
+class BxTemplStudioFormsFieldReset extends BxBaseStudioFormsFieldReset
+{
+}
+
+class BxTemplStudioFormsFieldSubmit extends BxBaseStudioFormsFieldSubmit
+{
+}
+
+class BxTemplStudioFormsFieldImage extends BxBaseStudioFormsFieldImage
+{
+}
+
+class BxTemplStudioFormsFieldSelect extends BxBaseStudioFormsFieldSelect
+{
+}
+
+class BxTemplStudioFormsFieldSelectMultiple extends BxBaseStudioFormsFieldSelectMultiple
+{
+}
+
+class BxTemplStudioFormsFieldCheckboxSet extends BxBaseStudioFormsFieldCheckboxSet
+{
+}
+
+class BxTemplStudioFormsFieldRadioSet extends BxBaseStudioFormsFieldRadioSet
+{
+}
+
+class BxTemplStudioFormsFieldCustom extends BxBaseStudioFormsFieldCustom
+{
+}
+
+class BxTemplStudioFormsFieldInputSet extends BxBaseStudioFormsFieldInputSet
+{
+}
+
+class BxTemplStudioFormsFieldCaptcha extends BxBaseStudioFormsFieldCaptcha
+{
+}
+
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsFields.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioFormsFields extends BxBaseStudioFormsFields
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsForms.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioFormsForms extends BxBaseStudioFormsForms
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsPreLists.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioFormsPreLists extends BxBaseStudioFormsPreLists
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioFormsPreValues.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioFormsPreValues extends BxBaseStudioFormsPreValues
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioFunctions.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioFunctions extends BxBaseStudioFunctions
+{
+    function __construct()
+    {
+        parent::__construct();
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioGrid.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioGrid extends BxBaseStudioGrid
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioGridNavigation.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioGridNavigation extends BxBaseStudioGridNavigation
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioLanguage.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioLanguage extends BxBaseStudioLanguage
+{
+    function __construct($sLanguage="", $sPage = "")
+    {
+        parent::__construct($sLanguage, $sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioLanguages.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioLanguages extends BxBaseStudioLanguages
+{
+    function __construct()
+    {
+        parent::__construct();
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioLauncher.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioLauncher extends BxBaseStudioLauncher
+{
+    function __construct()
+    {
+        parent::__construct();
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioMenu.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioMenu extends BxBaseStudioMenu
+{
+    public function __construct ($aObject, $oTemplate = false)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioMenuTop.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioMenuTop extends BxBaseStudioMenuTop
+{
+    function __construct()
+    {
+        parent::__construct();
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioModule.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioModule extends BxBaseStudioModule
+{
+    function __construct($sModule = "", $sPage = "")
+    {
+        parent::__construct($sModule, $sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioModules.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioModules extends BxBaseStudioModules
+{
+    function __construct()
+    {
+        parent::__construct();
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigation.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioNavigation extends BxBaseStudioNavigation
+{
+    function __construct($sPage = '')
+    {
+        parent::__construct($sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigationImport.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioNavigationImport extends BxBaseStudioNavigationImport
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigationItems.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioNavigationItems extends BxBaseStudioNavigationItems
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigationMenus.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioNavigationMenus extends BxBaseStudioNavigationMenus
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioNavigationSets.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioNavigationSets extends BxBaseStudioNavigationSets
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioPage.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioPage extends BxBaseStudioPage
+{
+    function __construct($mixedPageName)
+    {
+        parent::__construct($mixedPageName);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioPermissions.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioPermissions extends BxBaseStudioPermissions
+{
+    function __construct($sPage = '')
+    {
+        parent::__construct($sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioPermissionsActions.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioPermissionsActions extends BxBaseStudioPermissionsActions
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioPermissionsLevels.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioPermissionsLevels extends BxBaseStudioPermissionsLevels
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioPolyglot.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioPolyglot extends BxBaseStudioPolyglot
+{
+    function __construct($sPage = '')
+    {
+        parent::__construct($sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioPolyglotEtemplates.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioPolyglotEtemplates extends BxBaseStudioPolyglotEtemplates
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioPolyglotKeys.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioPolyglotKeys extends BxBaseStudioPolyglotKeys
+{
+    function __construct($aOptions, $oTemplate = false)
+    {
+        parent::__construct($aOptions, $oTemplate);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioSettings.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioSettings extends BxBaseStudioSettings
+{
+    function __construct($sType = '', $sCategory = '')
+    {
+        parent::__construct($sType, $sCategory);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioStore.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioStore extends BxBaseStudioStore
+{
+    function __construct($sPage = "")
+    {
+        parent::__construct($sPage);
+    }
+}
+/** @} */

+ 19 - 0
modules/boonex/air/data/template/studio/scripts/BxTemplStudioWidgets.php

@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentView Trident Studio Representation classes
+ * @ingroup     TridentStudio
+ * @{
+ */
+defined('BX_DOL') or die('hack attempt');
+
+class BxTemplStudioWidgets extends BxBaseStudioWidgets
+{
+    function __construct($mixedPageName)
+    {
+        parent::__construct($mixedPageName);
+    }
+}
+/** @} */

+ 96 - 0
modules/boonex/air/data/template/system/_header.html

@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html lang="__lang__">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=__page_charset__" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0" />
+    <title>__page_header__</title>
+    <base href="<bx_url_root />" />
+
+    __meta_info__
+    __page_robots__
+
+    <meta http-equiv="Content-Style-Type" content="text/css" />
+
+    <bx_include_css />
+    <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300,600,700' rel='stylesheet' type='text/css'>
+    <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700' rel='stylesheet' type='text/css'>
+
+    __dol_images__
+    __dol_lang__
+    __dol_options__
+
+    <bx_include_js />
+    <script type="text/javascript" language="javascript">
+
+        var sUrlRoot = '<bx_url_root />';
+
+        var aSpinnerOpts = {
+            lines: 7, // The number of lines to draw
+            length: 0, // The length of each line
+            width: 8, // The line thickness
+            radius: 7, // The radius of the inner circle
+            corners: 1, // Corner roundness (0..1)
+            rotate: 0, // The rotation offset
+            direction: 1, // 1: clockwise, -1: counterclockwise
+            color: '#3a8686', // #rgb or #rrggbb or array of colors
+            speed: 1, // Rounds per second
+            trail: 60, // Afterglow percentage
+            shadow: false, // Whether to render a shadow
+            hwaccel: false, // Whether to use hardware acceleration
+            className: 'bx-sys-spinner', // The CSS class to assign to the spinner
+            zIndex: 2e9, // The z-index (defaults to 2000000000)
+            top: '50%', // Top position relative to parent in px
+            left: '50%' // Left position relative to parent in px
+        };
+
+        var aSpinnerSmallOpts = $.extend({}, aSpinnerOpts, {
+            lines: 6,
+            width: 6,
+            radius: 4,
+            color: '#333',
+            top: '50%',
+            left: 'calc(100% - 20px)'
+        }); 
+
+        $(document).ready(function () {
+            bx_time('__lang__');            
+
+            bx_activate_anim_icons('#01aff8');
+
+            $('#bx-toolbar').css({opacity: 0.9});
+
+            // hide toolbar on scrolldown, show - on scroll up
+            new Headroom($('#bx-toolbar').get(0), {
+                tolerance: {
+                  down: 10,
+                  up: 20
+                },
+                offset: 200,
+                classes: {
+                  initial: "bx-toolbar-anim",
+                  pinned: "bx-toolbar-reset",
+                  unpinned: "bx-toolbar-up"
+                },
+                onUnpin: function() {
+                    bx_menu_slide_close_all_opened();
+                }
+            }).init();
+        });
+
+        (function(w) {
+            var dpr = (w.devicePixelRatio === undefined ? 1 : w.devicePixelRatio);
+            if ($.cookie('devicePixelRatio') == dpr || dpr < 2)
+                return;
+            $.cookie('devicePixelRatio', dpr, {expires: 365, path: '/'});
+            window.location.reload();
+        })(window);
+
+    </script>
+    __extra_js__
+
+    <bx_injection:injection_head />
+
+</head>
+
+<body class="bx-def-font bx-def-color-bg-page" <bx_injection:injection_body /> >
+    <bx_injection:injection_header />    

+ 43 - 0
modules/boonex/air/data/template/system/_sub_footer.html

@@ -0,0 +1,43 @@
+		
+		                <bx_injection:injection_content_after />
+		
+		                <div class="bx-clear"></div>
+		
+		            <bx_injection:banner_bottom />
+		
+		        </div> <!-- #bx-content-main -->
+		
+		        <bx_injection:injection_between_content_footer />
+		
+		    </div> <!-- #bx-content-container -->
+		
+		</div>
+	
+	</div> <!-- #bx-content-wrapper -->
+	
+	<div id="bx-footer-wrapper">
+		<div class="bx-def-centered bx-def-padding-topbottom bx-def-padding-sec-leftright bx-def-page-width">
+		
+		    <div id="bx-footer" class="bx-def-padding-sec-left bx-def-padding-sec-right bx-clearfix">
+		
+		        <bx_injection:injection_footer_before />
+		
+		        <div id="bx-menu-bottom">
+		            <bx_menu:sys_footer />
+		        </div>
+		
+		        <div id="bx-footer-copyright"><i title="__copyright_attr__" class="sys-icon copyright"></i></div>
+		
+		        <bx_injection:injection_footer_after />
+		
+		    </div>
+		
+		</div>
+	
+	</div>
+	
+	<bx_menu:sys_site_action />
+
+</div>
+
+<bx_include_auto:_footer.html />

+ 70 - 0
modules/boonex/air/data/template/system/_sub_header.html

@@ -0,0 +1,70 @@
+<bx_include_auto:_header.html />
+
+<div class="bx-main">
+
+	<bx_injection:top />
+	
+	<div id="bx-toolbar" class="bx-def-z-index-nav">
+	
+	    <div class="bx-def-centered bx-def-padding-sec-left bx-def-padding-sec-right bx-def-page-width">
+	
+	        <div id="bx-toolbar-content" class="bx-clearfix">
+	
+	            <div id="bx-menu-toolbar-1-container">
+	                <bx_menu:sys_toolbar_site />
+	            </div>
+
+	            <div id="bx-logo-container">
+	
+	                <bx_injection:injection_logo_before />
+	                    __main_logo__
+	                <bx_injection:injection_logo_after />
+	
+	            </div>
+	
+	            <div id="bx-menu-toolbar-2-container">
+	                <bx_menu:sys_toolbar_member />
+	            </div>
+	
+	        </div>
+	
+	    </div>
+
+	    <div class="bx-toolbar-border-bottom"></div>
+
+	</div>
+
+	<bx_injection:injection_between_logo_top_menu />
+	
+	<div id="bx-menu-main-bar-wrapper">
+	
+	    <div id="bx-menu-main-bar">
+	
+	        <div class="bx-def-centered bx-def-padding-sec-leftright bx-def-page-width">
+
+	            <bx_injection:injection_top_menu_before />
+
+	            <bx_menu:sys_site_submenu />
+
+	            <bx_injection:injection_top_menu_after />
+
+	        </div>
+	
+	    </div>
+	
+	</div>
+	
+	
+	<bx_injection:injection_between_content_menu />
+	
+	<div id="bx-content-wrapper" class="bx-def-padding-topbottom">
+	
+		__informer__
+	
+		<div class="bx-page-wrapper bx-def-centered bx-def-padding-sec-leftright bx-def-page-width">
+		
+		    <div id="bx-content-container" class="bx-def-padding-sec-leftright">
+		
+		        <bx_injection:injection_content_before />
+		
+		        <div id="bx-content-main" class="">

+ 5 - 0
modules/boonex/air/data/template/system/css/cmts.css

@@ -0,0 +1,5 @@
+@import url(../../../../../../../template/css/cmts.css);
+
+div.cmt-head .cmt-username {
+	font-weight: bold;
+}

+ 122 - 0
modules/boonex/air/data/template/system/css/common.css

@@ -0,0 +1,122 @@
+@import url(../../../../../../../template/css/common.css);
+
+a {
+    color:#01aff8;
+}
+
+/* --------------- design boxes */
+.bx-db-container {
+    position: relative;
+
+    border: 1px solid #d5dde0;
+}
+.bx-page-block-container.bx-def-padding-topbottom {
+	padding-top: 10px;
+	padding-top: 0.625rem;
+	padding-bottom: 10px;
+	padding-bottom: 0.625rem;
+}
+	
+.bx-db-container.bx-def-round-corners {
+	border-radius:5px;
+	-moz-border-radius:5px;
+	-webkit-border-radius:5px;
+	border-radius:0.3125rem;
+	-moz-border-radius:0.3125rem;
+	-webkit-border-radius:0.3125rem;
+}
+.bx-db-title {
+	line-height: normal;
+}
+.bx-db-menu {
+	line-height: normal;
+}
+
+/* --------------- popup boxes */
+.bx-popup-border {
+	border-color: #0084b4;
+}
+.bx-popup-header {
+    background-color: #0084b4;
+}
+.bx-popup-slide-wrapper {
+	left: auto !important;
+	right: 20px;
+	width: auto !important;
+
+	border: 1px solid #d5dde0;
+	border-radius:3px;
+	-moz-border-radius:3px;
+	-webkit-border-radius:3px;
+	border-radius:0.1875rem;
+	-moz-border-radius:0.1875rem;
+	-webkit-border-radius:0.1875rem;
+
+	-moz-box-shadow:0px 0px 2px rgba(255, 255, 255, 0.9);
+	-webkit-box-shadow:0px 0px 2px rgba(255, 255, 255, 0.9);
+    box-shadow:0px 0px 2px rgba(255, 255, 255, 0.9);
+}
+.bx-popup-slide-wrapper .bx-def-padding {
+	padding: 10px 0px;
+	padding: 0.625rem 0rem;
+}
+.bx-popup-slide-wrapper li {
+	padding-left: 10px;
+	padding-left: 0.625rem;
+
+	border-style: solid;
+	border-color: transparent;
+	border-width: 1px 0px;
+	border-width: 0.0625rem 0rem;
+
+	text-align: left;
+}
+.bx-popup-slide-wrapper .bx-menu-verlit li {
+	padding-left: 20px;
+	padding-left: 1.25rem;
+	padding-right: 20px;
+	padding-right: 1.25rem;
+}
+.bx-popup-slide-wrapper .bx-def-color-bg-hl-hover:hover {
+	background-color: #ffffff;
+
+	border-style: solid;
+	border-color: #e0e0e0;
+	border-width: 1px 0px;
+	border-width: 0.0625rem 0rem;
+	border-radius:0px;
+	-moz-border-radius:0px;
+	-webkit-border-radius:0px;
+}
+
+/* --------------- message box */
+.bx-msg-box {
+	background-color:rgba(0, 143, 184, 0.3);
+}
+
+/* --------------- loading indicator */
+.bx-loading-ajax {
+	background-color:#8cd9ff;
+    background-color:rgba(69, 202, 255, 0.5);
+}
+
+/* --------------- button */
+.bx-btn {
+	background-color: #42c0f1;
+}
+.bx-btn:active,
+.bx-btn:hover {	
+    background-color: #45caff;
+}
+.bx-btn.bx-btn-primary {
+    background-color: #23d54d;
+}
+.bx-btn.bx-btn-primary:hover,
+.bx-btn.bx-btn-primary:active { 
+    background-color: #1bc543;
+}
+.bx-btn.bx-btn-disabled:active,
+.bx-btn.bx-btn-disabled:hover,
+.bx-btn.bx-btn-disabled {
+    background-color: #caf2fc;
+}

+ 42 - 0
modules/boonex/air/data/template/system/css/default.less

@@ -0,0 +1,42 @@
+@import '../../../../../../../template/css/default.less';
+
+/* image/thumbnail/gallery default styles */
+.bx-def-ava,
+.bx-def-thumb,
+.bx-def-icon {
+    .radius(@bx-round-corners-radius);
+    overflow:hidden;
+}
+
+.bx-def-unit-info-title {
+	font-weight: bold;
+}
+
+/* fonts */
+.bx-def-font {
+	font-weight:400;
+}
+
+h1,
+.bx-def-font-h1,
+h2,
+.bx-def-font-h2,
+h3,
+.bx-def-font-h3 {
+	color:@bx-font-color-default-sec;
+}
+
+h1,
+.bx-def-font-h1 {
+	font-weight: 700;
+}
+
+h2,
+.bx-def-font-h2 {
+	font-weight: 600;
+}
+
+h3,
+.bx-def-font-h3 {
+	font-weight: 600;
+}

+ 41 - 0
modules/boonex/air/data/template/system/css/editor.css

@@ -0,0 +1,41 @@
+@import url(default.less);
+
+/* NOTE: copied from "fonts" section from default.css */
+
+body, td, pre {
+    font-family: "Source Sans Pro", "Open Sans", "Helvetica Neue", Helvetica, sans-serif; 
+    font-weight: 400;
+    font-size: 18px;
+	font-size: 1.125rem;
+    color: #666;
+}
+
+h1,
+h2,
+h3
+{
+	color: #333;
+}
+h1 {
+    font-size: 36px;
+	font-size: 2.25rem;
+    font-weight: 700;
+}
+
+h2 {
+    font-size: 28px;
+	font-size: 1.75rem;
+    font-weight: 600;
+}
+
+h3 {
+    font-size: 20px;
+  	font-size: 1.25rem;
+    font-weight: 600;
+}
+
+blockquote {
+    /* NOTE: copied from common.css */
+    border-left: 2px solid #ccc;
+    padding-left: 10px;
+}

+ 37 - 0
modules/boonex/air/data/template/system/css/forms.css

@@ -0,0 +1,37 @@
+@import url(../../../../../../../template/css/forms.css);
+
+/* form inputs */
+
+.bx-form-input-slider,
+.bx-form-input-doublerange,
+.bx-form-input-select_multiple,
+.bx-form-input-select,
+.bx-form-input-radio_set,
+.bx-form-input-checkbox_set,
+.bx-form-input-number,
+.bx-form-input-datepicker,
+.bx-form-input-datetime,
+.bx-form-input-textarea,
+.bx-form-input-password,
+.bx-form-input-text {
+	border:1px solid #79bd9a;
+    border:0.0625rem solid #79bd9a;
+
+    border-color:#d5dde0;
+}
+
+.bx-form-input-slider:focus,
+.bx-form-input-doublerange:focus,
+.bx-form-input-number:focus,
+.bx-form-input-datepicker:focus,
+.bx-form-input-datetime:focus,
+.bx-form-input-textarea:focus,
+.bx-form-input-password:focus,
+.bx-form-input-text:focus {
+	border-color:#33c0f8;
+}
+
+/* switcher */
+.bx-switcher-cont {
+	border-color: #5e96af;
+}

+ 58 - 0
modules/boonex/air/data/template/system/css/general.css

@@ -0,0 +1,58 @@
+@import url(../../../../../../../template/css/general.css);
+
+/* --------------- toolbar */
+#bx-toolbar {
+	height: 64px;
+    height: 4rem;
+
+    background-color: #ffffff;
+
+    border-bottom: 1px solid #d6dee1;
+}
+#bx-logo-container {
+	height: 64px;
+    height: 4rem;
+
+    margin: 0 128px;
+    margin: 0 8rem;
+
+	line-height: 64px;
+    line-height: 4rem;
+}
+#bx-logo-container .bx-def-font-contrasted {
+	color: #01aff8;
+}
+
+/* --------------- menu bar */
+#bx-menu-main-bar-wrapper {
+    padding-top: 64px;
+    padding-top: 4rem;
+}
+
+/* --------------- content */
+#bx-content-wrapper {
+	padding-bottom: 84px;
+	padding-bottom: 5.25rem;
+}
+
+/* --------------- footer */
+#bx-footer-wrapper {
+	position: absolute;
+
+	width: 100%;
+	height: 64px;
+	height: 4rem;
+	bottom: 0;
+
+	border-top: 1px solid #dee6e9;
+}
+#bx-footer {
+    padding-bottom: 0px;
+}
+
+/* --------------- menu bottom */
+#bx-menu-bottom,
+#bx-footer-copyright {
+	line-height: 24px;
+	line-height: 1.5rem;
+}

+ 6 - 0
modules/boonex/air/data/template/system/css/informer.css

@@ -0,0 +1,6 @@
+@import url(../../../../../../../template/css/informer.css);
+
+.bx-informer-msg {
+	border: 2px solid #ffffff;
+	border: 0.125rem solid #ffffff;
+}

+ 111 - 0
modules/boonex/air/data/template/system/css/menu.css

@@ -0,0 +1,111 @@
+@import url(../../../../../../../template/css/menu.css);
+
+/* --------------- menu menu */
+#bx-menu-main-container-scroller {
+	height:40px;
+    height:2.5rem;
+	text-align: center;
+	overflow: hidden;
+}
+.bx-menu-main-submenu-div .sys-icon {
+    font-size:18px;
+    font-size:1.125rem;
+}
+.bx-menu-main li a,
+.bx-menu-main li span,
+.bx-menu-main li .sys-icon,
+.bx-menu-main-submenu li a {
+    text-decoration:none;
+    font-size:18px;
+    font-size:1.125rem;
+}
+
+/* --------------- toolbar menu */
+ul.bx-menu-toolbar .bx-def-font-contrasted {
+	color: #01aff8;
+}
+ul.bx-menu-toolbar li a {
+    min-width: 64px;
+    min-width: 4rem;
+    height: 64px;
+    height: 4rem;
+
+    line-height: 64px;
+    line-height: 4rem;
+}
+
+ul.bx-menu-toolbar li a img {
+	margin-top: 8px;
+    margin-top: 0.5rem;
+}
+
+.bx-menu-toolbar-item-title {
+	font-weight: bold;
+}
+.bx-menu-toolbar-item-addon {
+	background-color: #008fb8;
+}
+
+ul.bx-menu-toolbar li .sys-icon-a,
+ul.bx-menu-toolbar li .sys-icon {
+    font-size: 32px;
+    font-size: 2rem;
+
+    width: 32px;
+    width: 2rem;
+
+	height: 32px;
+    height: 2rem;
+}
+
+ul.bx-menu-toolbar li a .sys-icon-a {
+	margin-top: 16px;
+    margin-top: 1rem;
+}
+
+
+/* --------------- floating blocks menu */
+.bx-sliding-menu-fullheight {
+    height:calc(100% - 4rem);
+}
+
+.bx-menu-floating-blocks-big li a .sys-icon,
+.bx-menu-floating-blocks li a .sys-icon,
+.bx-menu-floating-blocks-big li.bx-menu-tab-active a,
+.bx-menu-floating-blocks li.bx-menu-tab-active a {
+    color:#01aff8;
+}
+
+.bx-menu-account-popup-profile-switcher-link b {
+    vertical-align:baseline;
+}
+
+.bx-menu-floating-blocks-big li {
+    width:96px;
+    width:6rem;
+    height:96px;
+    height:6rem;
+}
+
+.bx-menu-floating-blocks-big li img,
+.bx-menu-floating-blocks-big li .sys-icon {
+    display:block;
+    width:48px;
+    width:3rem;
+    height:48px;
+    height:3rem;
+    margin:8px 24px 8px 24px;
+    margin:0.5rem 1.5rem 0.5rem 1.5rem;
+}
+
+.bx-menu-floating-blocks-big li .sys-icon {
+    line-height:48px;
+    line-height:3rem;
+    font-size:48px;
+    font-size:3rem;
+}
+
+/* --------------- account popup menu */
+.bx-menu-account-popup-profile {
+	font-weight: bold;
+}

+ 10 - 0
modules/boonex/air/data/template/system/css/page_layouts.less

@@ -0,0 +1,10 @@
+@import (reference) 'default.less';
+@import '../../../../../../../template/css/page_layouts.css';
+
+.bx-layout-col .bx-layout-cell.bx-def-padding-right {
+	.bx-def-padding-sec-right;
+}
+
+.bx-layout-col .bx-layout-cell.bx-def-padding-left {
+	.bx-def-padding-sec-left;
+}

+ 6 - 0
modules/boonex/air/data/template/system/designbox_1.html

@@ -0,0 +1,6 @@
+<!-- Design Box 1 [start]: Content + title + background -->
+<div class="bx-db-container bx-def-color-bg-block bx-def-round-corners">
+    <div class="bx-db-header bx-def-padding-top bx-def-padding-leftright"><div class="bx-db-title bx-def-font-h2">__title__</div>__caption_item__<div class="bx-clear"></div></div>
+    <div class="bx-db-content bx-clearfix">__designbox_content__</div>
+</div>
+<!-- Design Box 1 [ end ] -->

+ 5 - 0
modules/boonex/air/data/template/system/designbox_10.html

@@ -0,0 +1,5 @@
+<!-- Design Box 10 [start]: Content only + padding -->
+<div class="bx-db-content bx-clearfix bx-def-padding">
+    __designbox_content__
+</div>
+<!-- Design Box 10 [ end ] -->

+ 6 - 0
modules/boonex/air/data/template/system/designbox_11.html

@@ -0,0 +1,6 @@
+<!-- Design Box 11 [start]: Content + title + background + padding -->
+<div class="bx-db-container bx-def-color-bg-block bx-def-round-corners">
+    <div class="bx-db-header bx-def-padding-top bx-def-padding-leftright"><div class="bx-db-title bx-def-font-h2">__title__</div>__caption_item__<div class="bx-clear"></div></div>
+    <div class="bx-db-content bx-def-padding bx-clearfix">__designbox_content__</div>
+</div>
+<!-- Design Box 11 [ end ] -->

+ 7 - 0
modules/boonex/air/data/template/system/designbox_13.html

@@ -0,0 +1,7 @@
+<!-- Design Box 13 [start]: Content + background + padding -->
+<div class="bx-db-container bx-def-color-bg-block bx-def-round-corners">
+    <div class="bx-db-content bx-clearfix bx-def-padding">
+            __designbox_content__
+    </div>
+</div>
+<!-- Design Box 13 [ end ] -->

+ 7 - 0
modules/boonex/air/data/template/system/designbox_3.html

@@ -0,0 +1,7 @@
+<!-- Design Box 3 [start]: Content + background -->
+<div class="bx-db-container bx-def-color-bg-block bx-def-round-corners">
+    <div class="bx-db-content bx-clearfix">
+            __designbox_content__
+    </div>
+</div>
+<!-- Design Box 3 [ end ] -->

+ 9 - 0
modules/boonex/air/data/template/system/informer.html

@@ -0,0 +1,9 @@
+<div class="bx-def-centered bx-def-padding-sec-leftright bx-def-page-width">
+    <div id="bx-informer" class="bx-def-padding-topbottom bx-def-padding-sec-leftright">
+        <bx_repeat:messages>
+            <div id="__id__" class="bx-informer-msg __class__ bx-def-padding bx-def-round-corners bx-def-margin-top">
+                __msg__
+            </div>
+        </bx_repeat:messages>
+    </div>
+</div>

+ 10 - 0
modules/boonex/air/data/template/system/menu_account_notifications.html

@@ -0,0 +1,10 @@
+<ul class="bx-menu-notif bx-menu-object-__object__ bx-clearfix">
+    <bx_repeat:menu_items>
+        <li class="bx-def-border-bottom bx-def-padding-sec-top bx-def-padding-sec-bottom __class_add__">
+            <bx_if:icon><i class="sys-icon __icon__"></i></bx_if:icon>
+            <bx_if:image><img style="background-image:url(__icon_url__)" src="<bx_icon_url:spacer.gif />" /></bx_if:image>
+            <a href="__link__" target="__target__" onclick="__onclick__"><span>__title__</span></a>
+            <bx_if:addon><span class="bx-def-unit-alert-middle bg-col-blue3-dark">__addon__</span></bx_if:addon>
+        </li>
+    </bx_repeat:menu_items>
+</ul>

+ 8 - 0
modules/boonex/air/data/template/system/menu_toolbar.html

@@ -0,0 +1,8 @@
+<ul class="bx-menu-toolbar bx-menu-object-__object__">
+    <bx_repeat:menu_items>
+        <li id="bx-menu-toolbar-item-__name__" class="bx-menu-toolbar-item bx-def-color-bg-hl-hover __class_add__">
+            <a href="__link__" target="__target__" onclick="__onclick__" class="bx-def-font-contrasted"><bx_if:title><span class="bx-menu-toolbar-item-title bx-def-margin-sec-leftright">__title__</span></bx_if:title><bx_if:icon><i class="sys-icon __icon__ bx-def-margin-sec-leftright"></i></bx_if:icon><bx_if:icon-a><i class="sys-icon-a" data-rotate="down" data-icon="__icon-a__" data-color="#01aff8"></i></bx_if:icon-a><bx_if:image><img class="bx-def-thumb bx-def-thumb-size bx-def-margin-sec-leftright" src="__icon_url__" /></bx_if:image></a>
+            <bx_if:addon><span class="bx-menu-toolbar-item-addon bx-def-unit-alert-middle bg-col-blue2-dark">__addon__</span></bx_if:addon>
+        </li>
+    </bx_repeat:menu_items>
+</ul>

+ 5 - 0
modules/boonex/air/data/template/system/scripts/.htaccess

@@ -0,0 +1,5 @@
+Deny from all
+<FilesMatch "^.*\.php|.*\.html|.*\.pl$">
+ForceType application/x-httpd-php-source
+</FilesMatch>
+

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplAccountForms.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxBaseAccountForms
+ */
+class BxTemplAccountForms extends BxBaseAccountForms
+{
+    public function __construct()
+    {
+        parent::__construct();
+    }
+}
+
+/** @} */

+ 20 - 0
modules/boonex/air/data/template/system/scripts/BxTemplAcl.php

@@ -0,0 +1,20 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolAcl
+ */
+class BxTemplAcl extends BxBaseAcl
+{
+    public function __construct()
+    {
+        parent::__construct();
+    }
+}
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplAclServices.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxBaseAclServices
+ */
+class BxTemplAclServices extends BxBaseAclServices
+{
+    public function __construct()
+    {
+        parent::__construct();
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCaptchaReCAPTCHA.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolCaptcha
+ */
+class BxTemplCaptchaReCAPTCHA extends BxBaseCaptchaReCAPTCHA
+{
+    public function __construct ($aObject, $oTemplate = false)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCaptchaReCAPTCHANew.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolCaptcha
+ */
+class BxTemplCaptchaReCAPTCHANew extends BxBaseCaptchaReCAPTCHANew
+{
+    public function __construct ($aObject, $oTemplate = false)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 17 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCategory.php

@@ -0,0 +1,17 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolCategory
+ */
+class BxTemplCategory extends BxBaseCategory
+{
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCmts.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolCmts
+ */
+class BxTemplCmts extends BxBaseCmts
+{
+    function __construct($sSystem, $iId, $iInit = 1)
+    {
+        parent::__construct($sSystem, $iId, $iInit);
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCmtsForm.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxBaseCmtsForm
+ */
+class BxTemplCmtsForm extends BxBaseCmtsForm
+{
+    public function __construct($aInfo, $oTemplate = false)
+    {
+        parent::__construct($aInfo, $oTemplate);
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCmtsMenuActions.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolMenu
+ */
+class BxTemplCmtsMenuActions extends BxBaseCmtsMenuActions
+{
+    public function __construct ($aObject, $oTemplate = false)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCmtsMenuManage.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolMenu
+ */
+class BxTemplCmtsMenuManage extends BxBaseCmtsMenuManage
+{
+    public function __construct ($aObject, $oTemplate = false)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCmtsServices.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxBaseCmtsServices
+ */
+class BxTemplCmtsServices extends BxBaseCmtsServices
+{
+    public function __construct()
+    {
+        parent::__construct();
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplCmtsUploaderSimple.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolUploader
+ */
+class BxTemplCmtsUploaderSimple extends BxBaseCmtsUploaderSimple
+{
+    function __construct($aObject, $sStorageObject, $sUniqId)
+    {
+        parent::__construct($aObject, $sStorageObject, $sUniqId);
+    }
+}
+
+/** @} */

+ 44 - 0
modules/boonex/air/data/template/system/scripts/BxTemplConfig.php

@@ -0,0 +1,44 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+class BxTemplConfig extends BxBaseConfig
+{
+    function __construct()
+    {
+        parent::__construct();
+
+        $this->_aConfig['aLessConfig'] = array_merge($this->_aConfig['aLessConfig'], array(
+        	'bx-font-family' => '"Source Sans Pro", "Open Sans", "Helvetica Neue", Helvetica, sans-serif',
+
+        	'bx-color-page' => '#f2fbff',
+        	'bx-color-block' => '#fff',
+        	'bx-color-box' => '#daf8ff',
+        	'bx-color-sec' => '#fff',
+        	'bx-color-hl' => 'rgba(202, 242, 252, 0.2)',
+        	'bx-color-active' => 'rgba(202, 242, 252, 0.4)',
+
+        	'bx-border-color' => '#d5dde0',
+
+        	'bx-font-size-default' => '18px',
+            'bx-font-size-small' => '13px',
+            'bx-font-size-middle' => '16px',
+            'bx-font-size-large' => '24px',
+            'bx-font-size-h1' => '36px',
+            'bx-font-size-h2' => '28px',
+            'bx-font-size-h3' => '20px',
+
+        	'bx-font-color-default' => '#666',
+        	'bx-font-color-default-sec' => '#333',
+        ));
+
+        $this->setPageWidth('bx_air_page_width');
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplEditorTinyMCE.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxDolEditor
+ */
+class BxTemplEditorTinyMCE extends BxBaseEditorTinyMCE
+{
+    public function __construct ($aObject, $oTemplate = false)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplFormAccount.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxBaseFormAccount
+ */
+class BxTemplFormAccount extends BxBaseFormAccount
+{
+    public function __construct($aInfo, $oTemplate = false)
+    {
+        parent::__construct($aInfo, $oTemplate);
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplFormConfirmEmail.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxBaseFormConfirmEmail
+ */
+class BxTemplFormConfirmEmail extends BxBaseFormConfirmEmail
+{
+    public function __construct($aInfo, $oTemplate = false)
+    {
+        parent::__construct($aInfo, $oTemplate);
+    }
+}
+
+/** @} */

+ 21 - 0
modules/boonex/air/data/template/system/scripts/BxTemplFormForgotPassword.php

@@ -0,0 +1,21 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    TridentCore Trident Core
+ * @{
+ */
+
+/**
+ * @see BxBaseFormForgotPassword
+ */
+class BxTemplFormForgotPassword extends BxBaseFormForgotPassword
+{
+    public function __construct($aInfo, $oTemplate = false)
+    {
+        parent::__construct($aInfo, $oTemplate);
+    }
+}
+
+/** @} */

部分文件因文件數量過多而無法顯示