예제 #1
0
 function Show($TYPE_SID, $HTML_BEFORE = "", $HTML_AFTER = "")
 {
     global $APPLICATION, $USER;
     $debug = null;
     if ($_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"] == "Y" && $USER->IsAdmin()) {
         $debug = new CDebugInfo();
         $debug->Start();
     }
     $arBanner = CAdvBanner::GetRandom($TYPE_SID);
     $strReturn = CAdvBanner::GetHTML($arBanner);
     if (strlen($strReturn) > 0) {
         CAdvBanner::FixShow($arBanner);
         if (($arIcons = CAdvBanner::GetEditIcons($arBanner, $TYPE_SID)) !== false) {
             $strReturn = $APPLICATION->IncludeString($strReturn, $arIcons);
         }
         $strReturn = $HTML_BEFORE . $strReturn . $HTML_AFTER;
         if ($debug) {
             $strReturn .= $debug->Output();
         }
         return $strReturn;
     }
     if ($debug) {
         echo $debug->Output();
     }
     return false;
 }
예제 #2
0
파일: menu.php 프로젝트: rasuldev/torino
 /**
  * <p>Возвращает HTML представляющий из себя меню.</p>
  *
  *
  *
  *
  * @return string 
  *
  *
  * <h4>Example</h4> 
  * <pre>
  * &lt;?
  * $lm = new CMenu("left");
  * $lm-&gt;Init($APPLICATION-&gt;GetCurDir(), true);
  * $lm-&gt;template = "/bitrix/templates/demo/left.menu_template.php";
  * echo <b>$lm-&gt;GetMenuHtml</b>();
  * ?&gt;
  * </pre>
  *
  *
  *
  * <h4>See Also</h4> 
  * <ul> <li><a href="https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&amp;CHAPTER_ID=04708"
  * >Меню</a></li> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/cmenu/getmenuhtmlex.php">CMenu::GetMenuHtmlEx</a> </li> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/cmain/getmenuhtml.php">CMain::GetMenuHtml</a> </li> <li> <a
  * href="http://dev.1c-bitrix.ru/api_help/main/reference/cmain/getmenuhtmlex.php">CMain::GetMenuHtmlEx</a> </li> </ul></b<a
  * name="examples"></a>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/main/reference/cmenu/getmenuhtml.php
  * @author Bitrix
  */
 public function GetMenuHtml()
 {
     /**
      * @global CAllMain $APPLICATION
      * @noinspection PhpUnusedLocalVariableInspection
      */
     global $USER, $DB, $APPLICATION;
     // must be!
     if (!$this->RecalcMenu()) {
         return false;
     }
     // $arMENU - menu array copy
     // $arMENU_LINK - reference to menu array
     /** @noinspection PhpUnusedLocalVariableInspection */
     $arMENU_LINK = $MENU_ITEMS =& $this->arMenu;
     /** @noinspection PhpUnusedLocalVariableInspection */
     $arMENU = $this->arMenu;
     $result = "";
     $sMenuPrologTmp = "";
     $sMenuEpilog = "";
     $n = count($this->arMenu);
     for ($i = 0; $i < $n; $i++) {
         $m = $this->arMenu[$i];
         $sMenuBody = "";
         $sMenuProlog = "";
         $sMenuEpilog = "";
         $ITEM_INDEX = 0;
         extract($m, EXTR_OVERWRITE);
         // $TEXT - item text
         // $LINK - item link
         // $SELECTED - is item highlighed
         // $PERMISSION - linked page permission
         // $ADDITIONAL_LINKS - additional links for highlighting
         // $ITEM_TYPE - "D" - directory, "P" - page
         // $ITEM_INDEX - item number
         // $PARAMS - additional parameters
         include $this->MenuTemplate;
         if ($ITEM_INDEX == 0) {
             $sMenuPrologTmp = $sMenuProlog;
         }
         $result .= $sMenuBody;
     }
     $result = $sMenuPrologTmp . $result . $sMenuEpilog;
     $arIcons = array();
     $bShowButtons = false;
     $sMenuFile = $this->MenuDir . "." . $this->type . ".menu.php";
     if ($APPLICATION->GetShowIncludeAreas()) {
         $menu_perm = $APPLICATION->GetFileAccessPermission($sMenuFile);
         $templ_perm = $APPLICATION->GetFileAccessPermission($this->template);
         if ($menu_perm >= "W") {
             $arIcons[] = array("URL" => "/bitrix/admin/fileman_menu_edit.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&back_url=" . urlencode($_SERVER["REQUEST_URI"]) . "&path=" . urlencode($this->MenuDir) . "&name=" . $this->type, "ICON" => "menu-edit", "TITLE" => GetMessage("MAIN_MENU_EDIT"));
         }
         if ($templ_perm >= "W" && $USER->IsAdmin()) {
             $arIcons[] = array("URL" => "/bitrix/admin/fileman_file_edit.php?lang=" . LANGUAGE_ID . "&site=" . SITE_ID . "&back_url=" . urlencode($_SERVER["REQUEST_URI"]) . "&full_src=Y&path=" . urlencode($this->template), "ICON" => "menu-template", "TITLE" => GetMessage("MAIN_MENU_TEMPLATE_EDIT"));
         }
         if (count($arIcons) > 0) {
             $result = $APPLICATION->IncludeStringBefore() . $result;
             $bShowButtons = true;
         }
     }
     if ($this->debug) {
         $result .= $this->debug->Output($sMenuFile, $sMenuFile);
     }
     if ($bShowButtons) {
         $result .= $APPLICATION->IncludeStringAfter($arIcons);
     }
     return $result;
 }
예제 #3
0
 /**
  * <p>Метод подключает компонент 2.0. Динамичный метод.</p>
  *
  *
  * @param string $componentName  Имя компонента. Например: "bitrix:news.detail".
  *
  * @param string $componentTemplate  Имя шаблона компонента. Если имя пустое, то подразумевается имя
  * ".default".
  *
  * @param array $arParams = array() Массив входных параметров компонента.
  *
  * @param object $parentComponent = null Объект родительского комплексного компонента, если компонент
  * подключается из шаблона комплексного компонента. В шаблоне
  * комплексного компонента определена переменная <b>$component</b>,
  * которая содержит объект этого комплексного компонента.
  *
  * @param array $arFunctionParams = array() Массив, содержащий дополнительные параметры отображения
  * компонента: <br> "HIDE_ICONS"=&gt;"Y" - не показывать панель настройки
  * компонента в режиме редактировани/разработки; <br> "ACTIVE_COMPONENT"=&gt;"N" -
  * отключить компонент (код компонента не подключается). <br>
  *
  * @return mixed <p>Возвращает код компонента.</p> <a name="examples"></a>
  *
  * <h4>Example</h4> 
  * <pre>
  * // Подключим компонент каталога с шаблоном "по-умолчанию" на публичной странице сайта
  * $APPLICATION-&gt;IncludeComponent(
  *     "bitrix:catalog",
  *     "",
  *     Array(
  *         "SEF_MODE" =&gt; "N",
  *         "IBLOCK_TYPE_ID" =&gt; "catalog",
  *         "ACTION_VARIABLE" =&gt; "action",
  *         "CACHE_TIME" =&gt; 1*24*60*60,
  *         "BASKET_PAGE_TEMPLATE" =&gt; "/personal/basket.php",
  *     )
  * );
  * 
  * 
  * // Подключим компонент карточки фотографии с шаблоном "по-умолчанию" в шаблоне 
  * // комплексного компонента "фотогалерея"
  * $APPLICATION-&gt;IncludeComponent(
  *     "bitrix:photo.detail",
  *     "",
  *     Array(
  *          "IBLOCK_TYPE" =&gt; $arParams["IBLOCK_TYPE"],
  *          "IBLOCK_ID" =&gt; $arParams["IBLOCK_ID"],
  *          "ELEMENT_ID" =&gt; $arResult["VARIABLES"]["ELEMENT_ID"],
  *          "ELEMENT_CODE" =&gt; $arResult["VARIABLES"]["ELEMENT_CODE"],
  *     ),
  *     $component
  * );
  * </pre>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/main/reference/cmain/includecomponent.php
  * @author Bitrix
  */
 public function IncludeComponent($componentName, $componentTemplate, $arParams = array(), $parentComponent = null, $arFunctionParams = array())
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION, $USER;
     if (is_array($this->arComponentMatch)) {
         $skipComponent = true;
         foreach ($this->arComponentMatch as $cValue) {
             if (strpos($componentName, $cValue) !== false) {
                 $skipComponent = false;
                 break;
             }
         }
         if ($skipComponent) {
             return false;
         }
     }
     $componentRelativePath = CComponentEngine::MakeComponentPath($componentName);
     if (StrLen($componentRelativePath) <= 0) {
         return False;
     }
     $debug = null;
     $bShowDebug = $_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"] == "Y" && ($USER->CanDoOperation('edit_php') || $_SESSION["SHOW_SQL_STAT"] == "Y") && !defined("PUBLIC_AJAX_MODE");
     if ($bShowDebug || $APPLICATION->ShowIncludeStat) {
         $debug = new CDebugInfo();
         $debug->Start($componentName);
     }
     if (is_object($parentComponent)) {
         if (!$parentComponent instanceof cbitrixcomponent) {
             $parentComponent = null;
         }
     }
     $bDrawIcons = (!isset($arFunctionParams["HIDE_ICONS"]) || $arFunctionParams["HIDE_ICONS"] != "Y") && $APPLICATION->GetShowIncludeAreas();
     if ($bDrawIcons) {
         echo $this->IncludeStringBefore();
     }
     $result = null;
     $bComponentEnabled = !isset($arFunctionParams["ACTIVE_COMPONENT"]) || $arFunctionParams["ACTIVE_COMPONENT"] != "N";
     $component = new CBitrixComponent();
     if ($component->InitComponent($componentName)) {
         $obAjax = null;
         if ($bComponentEnabled) {
             if ($arParams['AJAX_MODE'] == 'Y') {
                 $obAjax = new CComponentAjax($componentName, $componentTemplate, $arParams, $parentComponent);
             }
             $this->__componentStack[] = $component;
             $result = $component->IncludeComponent($componentTemplate, $arParams, $parentComponent);
             array_pop($this->__componentStack);
         }
         if ($bDrawIcons) {
             $panel = new CComponentPanel($component, $componentName, $componentTemplate, $parentComponent, $bComponentEnabled);
             $arIcons = $panel->GetIcons();
             echo $s = $this->IncludeStringAfter($arIcons["icons"], $arIcons["parameters"]);
         }
         if ($bComponentEnabled && $obAjax) {
             $obAjax->Process();
         }
     }
     if ($bShowDebug) {
         echo $debug->Output($componentName, "/bitrix/components" . $componentRelativePath . "/component.php", $arParams["CACHE_TYPE"] . $arParams["MENU_CACHE_TYPE"]);
     } elseif (isset($debug)) {
         $debug->Stop($componentName, "/bitrix/components" . $componentRelativePath . "/component.php", $arParams["CACHE_TYPE"] . $arParams["MENU_CACHE_TYPE"]);
     }
     return $result;
 }