- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/page_template.php
- Класс: CPageTemplate
- Вызов: CPageTemplate::GetList
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($dir, BX_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;
}