Поддержка серверов

CPageTemplate::GetList: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=163782

<?php 
//    /bitrix/modules/main/admin_tools.phpCPageTemplate::GetList()
//    285:

    
public static function GetList($arSiteTemplates=array())
    {
        global 
$APPLICATION;

        
$arDirs = array("templates/.default/page_templates");
        foreach(
$arSiteTemplates as $val)
            
$arDirs[] = "templates/".$val."/page_templates";

        
$arFiles = array();
        foreach(
$arDirs as $dir)
        {
            
$path getLocalPath($dirBX_PERSONAL_ROOT);
            if(
$path === false)
                continue;
            
$template_dir $_SERVER["DOCUMENT_ROOT"].$path;
            if(
$handle opendir($template_dir))
            {
                while((
$file readdir($handle)) !== false)
                {
                    if(
$file == "." || $file == ".." || !is_dir($template_dir."/".$file))
                        continue;

                    
$template_file $template_dir."/".$file."/template.php";
                    if(!
file_exists($template_file))
                        continue;

                    if(
$APPLICATION->GetFileAccessPermission($path."/".$file."/template.php") < "R")
                        continue;

                    
$arFiles[$file] = $template_file;
                }
                
closedir($handle);
            }
        }

        
$res = array();
        foreach(
$arFiles as $file=>$template_file)
        {
            
/** @var CPageTemplate $pageTemplate */
            
$pageTemplate false;
            include_once(
$template_file);

            if(!
$pageTemplate || !is_callable(array($pageTemplate'GetDescription')))
                continue;

            
$arRes = array(
                
"name"=>$file,
                
"description"=>"",
                
"icon"=>"",
                
"file"=>$file,
                
"sort"=>150,
                
"type"=>"",
            );

            
$arDesc $pageTemplate->GetDescription();

            if(
is_array($arDesc["modules"]))
                foreach(
$arDesc["modules"] as $module)
                    if(!
IsModuleInstalled($module))
                        continue 
2;

            if(
is_array($arDesc))
            {
                foreach(
$arDesc as $key=>$val)
                    
$arRes[$key] = $val;
            }

            
$res[$file] = $arRes;
        }

        
uasort($res, array('CPageTemplate''_templ_sort'));
        return 
$res;
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение