Документация для разработчиков

Update

bool
CSite::Update(
 int id,
 array fields
)

Метод изменяет параметры сайта. Возвращает "true", если изменение прошло успешно, при возникновении ошибки метод вернет "false", а в свойстве LAST_ERROR объекта будет содержаться текст ошибки. Нестатический метод.

Параметры

ПараметрОписание
id ID сайта.
fields Массив значений полей вида array("поле"=>"значение" [, ...]).

См. также

Примеры использования

<?
$arFields = Array(
  "ACTIVE"           => "Y",
  "SORT"             => 200,
  "DEF"              => "N",
  "NAME"             => "www.site.com",
  "DIR"              => "/ru/",
  "FORMAT_DATE"      => "DD.MM.YYYY",
  "FORMAT_DATETIME"  => "DD.MM.YYYY HH:MI:SS",
  "CHARSET"          => "windows-1251",
  "SITE_NAME"        => "My site",
  "SERVER_NAME"      => "www.site.com",
  "EMAIL"            => "admin@site.com",
  "LANGUAGE_ID"      => "ru",
  "DOC_ROOT"         => "",
  "DOMAINS"          => "www.site.com \n site.com"
  );
$obSite = new CSite;
$obSite->Update("ru", $arFields);
if (strlen($obSite->LAST_ERROR)>0) $strError .= $obSite->LAST_ERROR;
?>

Как менять шаблон сайта:

if (strlen($site_id)) {
   $obSite = new CSite();
   $t = $obSite->Update($site_id, array(
      'ACTIVE' => "Y",
      'TEMPLATE'=>array(
         array(
            'CONDITION' => "",
            'SORT' => 1,
            'TEMPLATE' => "new_template"
         ),
      )
   ));
}


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
2
Артём Сальков
Вот так добавляем новый шаблон сайта не затирая существующие (не опримально, но доступно для понимания).
Единственным минусом такого подхода является то, что изменяются ID изначально установленных шаблонов. Если привязка кода к ID шаблонов отсутствует, то юзаем свободно.
Код
<?
     /* сначала читаем существующие шаблоны для сайта s1 */
     $rsTemplates = CSite::GetTemplateList("s1");
     while($arTemplate = $rsTemplates->Fetch()) $result[]  = $arTemplate;

     $ssort=array(); /* здесь будем запоминать сортировки текущих шаблонов */
     $res2=array(); /* это будет результирующий массив */

     /* Здесь перебираем прочитанные шаблоны и выкидываем ненужное */
     foreach($result as $template){
      unset($template["ID"]; // в топку
      unset($template["SITE_ID"]; // в топку
      array_push($ssort,intval($template["SORT"]; /* сортировку шаблона добавляем в массив */
      $res2[]=$template; /* в результирующий массив только нужные данные о текущих шаблонах */
     }

     /* Добавляем в результирующий массив данные о новом шаблоне */
     $res2[] = array(
      'CONDITION' => "CSite::InDir('/myfolder/')", /* отрабатывать только в директории /myfolder */
      'SORT' => max($ssort)+100, /* сортировка нового шаблона будет на 100 больше, чем самая большая сортировка из текущих шаблонов */
      'TEMPLATE' => "new_template" /* имя нового шаблона сайта. должно совпадать с названием директории, в которой находятся сами файлы шаблона */
     );

     /* конвейером обновляем все текущие шаблоны сайта + новый шаблон */
     $obSite = new CSite();
     $t = $obSite->Update("s1", array(
      'TEMPLATE'=>$res2
     ));
?>


А вот так через API кошерно отменяем шаблон сайта:
Код
<?
     $rsTemplates = CSite::GetTemplateList("s1");
     while($arTemplate = $rsTemplates->Fetch()) $result[]  = $arTemplate;
     $res2=array();
     foreach($result as $template){
      unset($template["ID"]; unset($template["SITE_ID"];
      if ($template["TEMPLATE"] != "template_name") $res2[]=$template;
     }
     unset($result);
     $obSite = new CSite();
     $t = $obSite->Update("s1", array(
      'TEMPLATE'=>$res2
     ));
?>
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх