Что такое список разделов в информационном блоке, это данные структурированные в виде дерева.

Что такое список разделов в информационном блоке, это данные структурированные в виде дерева.

/**
* Возвращает все данные текущего пользователя, можно выбрать 1 параметр по ключу, можно указать ID другого пользователя
* @param string $s_ParamKey - Ключ поля CUser
* @param intval $i_UserID - ID пользователя данные которогонужно выбрать
* @return mixed
*/
public static function getUserParams($s_ParamKey = false, $i_UserID = false)
{
global $USER;
if( ! $i_UserID && ! $USER->IsAuthorized() )
return;
$ar_User = CUser::GetByID( ( intval($i_UserID) > 0 ) ? intval($i_UserID) : $USER->GetID() )->Fetch();
return (!$s_ParamKey) ? $ar_User : $ar_User[$s_ParamKey];
}
Вместо ущербного CUser::GetParam()
/bitrix/php_interface/include/site_closed.php
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CHTTP::SetStatus("503 Service Unavailable");
echo 'Проводятся технические работы на сайте ;)';
Чтобы добавить логотип при добавлении настраиваемой службы доставки, нужно добавить ключ: LOGOTIP
$ar_Fields = array(
'NAME' => 'New drlivery',
...
'LOGOTIP' => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"].$s_ImagesPatch)
);
if($i_NewID = CSaleDelivery::Add($ar_Fields))
{
}
CUser::Register() регистрирует нового пользователя и отправляет ему типовое письмо о успешной регистрации, смене пароля и тд. Иногда нужно чтобы это не происходило.
1) Можно удалить шаблоны (не рекомендуется)
2) Есть вариант при котором письма не отправятся, 7 параметр [string site_id = false], ID сайта почтовых шаблонов, если указать не существующий ID сайта, то и не будет шаблонов и как следствие писем.
global $USER;
$USER->Register("admin", "", "", "123456", "123456", "a@m.ru", "no_send");
public static function isBasketEmpty()
{
$rs_Basket = CSaleBasket::GetList(
array(),
array(
'FUSER_ID' => CSaleBasket::GetBasketUserID(),
'LID' => SITE_ID,
'ORDER_ID' => 'NULL',
'MODULE' => 'catalog'
),
false,
false,
array("ID")
);
return ($rs_Basket->SelectedRowsCount() > 0);
}
Итак есть одна особенность у это функции, которая так облегчает нам жизнь. И так суть в том, что когда вы добавляете товар в корзину в кол-ве 10 штук, туда попадает 1 или 4 и т.д. В общем кол-во не всегда правильное и это сбивает с толку.
Имеем URL вида
/dir/klaviatura-dlyanoutbuka-kbi080g017-010203399/
010203399 — какой-то ID нужный для выборки, регулярное выражение под эту строку для urlrewrite.php
array(
"CONDITION" => "#^/dir/(([A-z-0-9]+)-[0-9]{0,9})+/#",
"RULE" => "ID=$1",
"ID" => "",
"PATH" => "/dir/detail.php"
)
Для формирования ссылок на детальных страниц нужно искать предыдущий и следующий элемент, для построения url.
Это первое способ, собрать все ID в массив и найти prev и next. Второй способ если у вас много элементов, использовать pagination (постраничну навигацию) с настройкой списка в 1 элемент.
Snippet для 1 случая:
// массив с ID
$ar_ElementID = array();
// текущий ID (должен присутствовать в $ar_ElementID)
$i_CurrentID = 777
// находим текущий ключ
$i_KeyCurrent = array_search($i_CurrentID, $ar_ElementID);
// кол-во элементов в массиве
$i_CountElement = count($ar_ElementID);
/* коротко */
// слудеющий ID
$i_NextID = ( $i_KeyCurrent !== ($i_CountElement -1) )
? $ar_ElementID[$i_KeyCurrent + 1] : 0;
// предыдущий ID
$i_PrevID = ( $i_KeyCurrent == 0 )
? $ar_ElementID[$i_CountElement - 1] : $ar_ElementID[$i_KeyCurrent - 1];
/* длинно */
// слудеющий ID
if($i_KeyCurrent !== ($i_CountElement -1) )
{
$i_NextID = $ar_ElementID[ $i_KeyCurrent + 1 ];
}
else
{
$i_NextID = 0;
}
// предыдущий ID
if($i_KeyCurrent == 0 )
{
$i_PrevID = $ar_ElementID[$i_CountElement - 1];
}
else
{
$i_PrevID = $ar_ElementID[$i_KeyCurrent - 1];
}