PageRenderTime 45ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/concreteOLD/elements/block_area_add_new.php

https://bitbucket.org/selfeky/xclusivescardwebsite
PHP | 239 lines | 175 code | 42 blank | 22 comment | 36 complexity | 55a7c93f73acac3b045c0df189bb08b7 MD5 | raw file
  1. <?php
  2. defined('C5_EXECUTE') or die("Access Denied.");
  3. $btl = $a->getAddBlockTypes($c, $ap );
  4. $blockTypes = $btl->getBlockTypeList();
  5. $dsh = Loader::helper('concrete/dashboard');
  6. $dashboardBlockTypes = array();
  7. if ($dsh->inDashboard()) {
  8. $dashboardBlockTypes = BlockTypeList::getDashboardBlockTypes($ap);
  9. }
  10. $blockTypes = array_merge($blockTypes, $dashboardBlockTypes);
  11. $ci = Loader::helper('concrete/urls');
  12. $ch = Loader::helper('concrete/interface');
  13. $form = Loader::helper('form');
  14. ?>
  15. <script type="text/javascript">
  16. <?php if (ENABLE_MARKETPLACE_SUPPORT) { ?>
  17. function ccm_updateMarketplaceTab() {
  18. if (!ccm_blocksLoaded) {
  19. $("#ccm-add-marketplace-tab div.ccm-block-type-list").html('');
  20. jQuery.fn.dialog.showLoader();
  21. $.ajax({
  22. url: CCM_TOOLS_PATH+'/marketplace/refresh_block',
  23. type: 'POST',
  24. data: {'arHandle': '<?php echo $a->getAreaHandle()?>'},
  25. success: function(html) {
  26. jQuery.fn.dialog.hideLoader();
  27. $("#ccm-add-marketplace-tab div.ccm-block-type-list").html(html);
  28. }
  29. });
  30. ccm_blocksLoaded = true;
  31. }
  32. }
  33. var ccm_blocksLoaded = false;
  34. <?php } ?>
  35. ccm_showBlockTypeDescription = function(btID) {
  36. $("#ccm-bt-help" + btID).show();
  37. }
  38. ccm_showBlockTypeDescriptions = function() {
  39. $(".ccm-block-type-description").show();
  40. }
  41. var ccm_areaActiveTab = "ccm-add";
  42. $("#ccm-area-tabs a").click(function() {
  43. $("li.active").removeClass('active');
  44. $("#" + ccm_areaActiveTab + "-tab").hide();
  45. ccm_areaActiveTab = $(this).attr('id');
  46. $(this).parent().addClass("active");
  47. $("#" + ccm_areaActiveTab + "-tab").show();
  48. if (ccm_areaActiveTab == 'ccm-add-marketplace') {
  49. ccm_updateMarketplaceTab();
  50. }
  51. });
  52. $('input[name=ccmBlockTypeSearch]').focus(function() {
  53. if ($(this).val() == '<?php echo t("Search")?>') {
  54. $(this).val('');
  55. }
  56. $(this).css('color', '#000');
  57. if (!ccmLiveSearchActive) {
  58. $('#ccmBlockTypeSearch').liveUpdate('ccm-block-type-list');
  59. ccmLiveSearchActive = true;
  60. // $("#ccm-block-type-clear-search").show();
  61. }
  62. });
  63. ccmBlockTypeSearchFormCheckResults = function() {
  64. return false;
  65. }
  66. ccmBlockTypeSearchClear = function() {
  67. $("input[name=ccmBlockTypeSearch]").val('');
  68. $("#ccm-block-type-list li.ccm-block-type").addClass("ccm-block-type-available");
  69. $("#ccm-block-type-list li.ccm-block-type").removeClass("ccm-block-type-selected");
  70. }
  71. var ccmLiveSearchActive = false;
  72. ccmBlockTypeSearchResultsSelect = function(which, e) {
  73. e.preventDefault();
  74. e.stopPropagation();
  75. // $("input[name=ccmBlockTypeSearch]").blur();
  76. // find the currently selected item
  77. var obj = $("li.ccm-block-type-selected");
  78. var foundblock = false;
  79. if (obj.length == 0) {
  80. $($("#ccm-block-type-list li.ccm-block-type-available")[0]).addClass('ccm-block-type-selected');
  81. } else {
  82. if (which == 'next') {
  83. var nextObj = obj.nextAll('li.ccm-block-type-available');
  84. if (nextObj.length > 0) {
  85. obj.removeClass('ccm-block-type-selected');
  86. $(nextObj[0]).addClass('ccm-block-type-selected');
  87. }
  88. } else if (which == 'previous') {
  89. var prevObj = obj.prevAll('li.ccm-block-type-available');
  90. if (prevObj.length > 0) {
  91. obj.removeClass('ccm-block-type-selected');
  92. $(prevObj[0]).addClass('ccm-block-type-selected');
  93. }
  94. }
  95. }
  96. var currObj = $("li.ccm-block-type-selected");
  97. // handle scrolling
  98. // this is buggy. needs fixing
  99. var currPos = currObj.position();
  100. var currDialog = currObj.parents('div.ui-dialog-content');
  101. var docViewTop = currDialog.scrollTop();
  102. var docViewBottom = docViewTop + currDialog.innerHeight();
  103. var elemTop = currObj.position().top;
  104. var elemBottom = elemTop + docViewTop + currObj.innerHeight();
  105. if ((docViewBottom - elemBottom) < 0) {
  106. currDialog.get(0).scrollTop += currDialog.get(0).scrollTop + currObj.height();
  107. } else if (elemTop < 0) {
  108. currDialog.get(0).scrollTop -= currDialog.get(0).scrollTop + currObj.height();
  109. }
  110. return true;
  111. }
  112. ccmBlockTypeDoMapKeys = function(e) {
  113. /*
  114. if (e.keyCode == 9) {
  115. e.stopPropagation();
  116. e.preventDefault();
  117. $("input[name=ccmBlockTypeSearch]").focus();
  118. return true;
  119. }
  120. if (e.keyCode == 8) {
  121. $("input[name=ccmBlockTypeSearch]").val('');
  122. e.stopPropagation();
  123. e.preventDefault();
  124. return true;
  125. }
  126. */
  127. if (e.keyCode == 40) {
  128. ccmBlockTypeSearchResultsSelect('next', e);
  129. } else if (e.keyCode == 38) {
  130. ccmBlockTypeSearchResultsSelect('previous', e);
  131. } else if (e.keyCode == 13) {
  132. var obj = $("li.ccm-block-type-selected");
  133. if (obj.length > 0) {
  134. obj.find('a').click();
  135. }
  136. }
  137. }
  138. ccmBlockTypeMapKeys = function() {
  139. $(window).bind('keydown.blocktypes', ccmBlockTypeDoMapKeys);
  140. }
  141. ccmBlockTypeResetKeys = function() {
  142. $(window).unbind('keydown.blocktypes');
  143. }
  144. $(function() {
  145. $(window).css('overflow', 'hidden');
  146. $(window).unbind('keydown.blocktypes');
  147. ccmBlockTypeMapKeys();
  148. $("#ccmBlockTypeSearch").get(0).focus();
  149. });
  150. </script>
  151. <div id="ccm-add-tab" class="ccm-ui">
  152. <div class="ccm-block-type-search-wrapper">
  153. <form onsubmit="return ccmBlockTypeSearchFormCheckResults()">
  154. <div class="ccm-block-type-search">
  155. <a class="ccm-block-type-help" href="javascript:ccm_showBlockTypeDescriptions()" title="<?php echo t('Learn more about this block type.')?>" id="ccm-bt-help-trigger-all"><img src="<?php echo ASSETS_URL_IMAGES?>/icons/icon_header_help.png" width="17" height="20" /></a>
  156. <?php echo $form->text('ccmBlockTypeSearch', array('tabindex' => 1, 'autocomplete' => 'off', 'style' => 'width: 168px'))?>
  157. <a href="javascript:void(0)" id="ccm-block-type-clear-search" onclick="ccmBlockTypeSearchClear()"><img width="16" height="16" src="<?php echo ASSETS_URL_IMAGES?>/icons/remove.png" border="0" style="vertical-align: middle" /></a>
  158. </div>
  159. </form>
  160. </div>
  161. <ul id="ccm-block-type-list">
  162. <?php if (count($blockTypes) > 0) {
  163. foreach($blockTypes as $bt) {
  164. $btIcon = $ci->getBlockTypeIconURL($bt);
  165. ?>
  166. <li class="ccm-block-type ccm-block-type-available">
  167. <?php if (!$bt->hasAddTemplate()) { ?>
  168. <a style="background-image: url(<?php echo $btIcon?>)" href="javascript:void(0)" onclick="ccmBlockTypeResetKeys(); jQuery.fn.dialog.showLoader(); $.get('<?php echo $bt->getBlockAddAction($a)?>&processBlock=1&add=1', function(r) { ccm_parseBlockResponse(r, false, 'add'); })" class="ccm-block-type-inner"><?php echo $bt->getBlockTypeName()?></a>
  169. <?php } else { ?>
  170. <a onclick="ccmBlockTypeResetKeys()" dialog-on-destroy="ccmBlockTypeMapKeys()" class="dialog-launch ccm-block-type-inner" dialog-on-close="ccm_blockWindowAfterClose()" dialog-append-buttons="true" dialog-modal="false" dialog-width="<?php echo $bt->getBlockTypeInterfaceWidth()?>" dialog-height="<?php echo $bt->getBlockTypeInterfaceHeight()+20?>" style="background-image: url(<?php echo $btIcon?>)" dialog-title="<?php echo t('Add')?> <?php echo $bt->getBlockTypeName()?>" href="<?php echo REL_DIR_FILES_TOOLS_REQUIRED?>/add_block_popup.php?cID=<?php echo $c->getCollectionID()?>&btID=<?php echo $bt->getBlockTypeID()?>&arHandle=<?php echo urlencode($a->getAreaHandle())?>"><?php echo $bt->getBlockTypeName()?></a>
  171. <?php } ?>
  172. <div class="ccm-block-type-description" id="ccm-bt-help<?php echo $bt->getBlockTypeID()?>"><?php echo $bt->getBlockTypeDescription()?></div>
  173. </li>
  174. <?php
  175. /* ?>
  176. <div class="ccm-block-type-grid-entry">
  177. <a class="dialog-launch ccm-block-type-inner" dialog-modal="false" dialog-width="<?php echo $bt->getBlockTypeInterfaceWidth()?>" dialog-height="<?php echo $bt->getBlockTypeInterfaceHeight()?>" style="background-image: url(<?php echo $btIcon?>)" dialog-title="<?php echo t('Add')?> <?php echo $bt->getBlockTypeName()?>" href="<?php echo REL_DIR_FILES_TOOLS_REQUIRED?>/add_block_popup.php?cID=<?php echo $c->getCollectionID()?>&btID=<?php echo $bt->getBlockTypeID()?>&arHandle=<?php echo $a->getAreaHandle()?>"><?php echo $bt->getBlockTypeName()?></a>
  178. </div> <?php */ ?>
  179. <?php }
  180. } else { ?>
  181. <p><?php echo t('No block types can be added to this area.')?></p>
  182. <?php } ?>
  183. </ul>
  184. </div>
  185. <?php if(ENABLE_MARKETPLACE_SUPPORT){
  186. $tp = new TaskPermission();
  187. if ($tp->canInstallPackages()) {
  188. ?>
  189. <div class="ccm-ui">
  190. <div class="well" style="padding:10px 20px;">
  191. <h3><?php echo t('More Blocks')?></h3>
  192. <p><?php echo t('Browse our marketplace of add-ons to extend your site!')?></p>
  193. <p><a class="btn success" href="javascript:void(0)" onclick="ccm_openAddonLauncher()"><?php echo t("More Add-ons")?></a></p>
  194. </div>
  195. </div>
  196. <?php }
  197. }?>