XML to Array and Array to XML

Сейчас много приходится работать с XML (интеграция 1C-Битрикс и 1С), сложная логика проекта не позволяет использовать типового импорта, и задача стоит как можно больше перенести на сторону 1с, ну суть не в этом, задача постоянно парсить XML или собирать и отдавать в 1с, хочу сохранить пару очень удобных классов которые как раз подходят для этих задач. Array2XML и XML2Array

Ссылка 1
Ссылка 2

Замена CUser::GetParam()

/**
 * Возвращает все данные текущего пользователя, можно выбрать 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()

1С-Битрикс, добавить логотип к службе доставки CSaleDelivery::Add()

Чтобы добавить логотип при добавлении настраиваемой службы доставки, нужно добавить ключ: LOGOTIP

$ar_Fields = array(
    'NAME'  => 'New drlivery',
    ...
    'LOGOTIP' => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"].$s_ImagesPatch)
);
if($i_NewID = CSaleDelivery::Add($ar_Fields))
{
}

Лайфхак для CUser::Register() [bitrix api]

CUser::Register() регистрирует нового пользователя и отправляет ему типовое письмо о успешной регистрации, смене пароля и тд. Иногда нужно чтобы это не происходило.

1) Можно удалить шаблоны (не рекомендуется)
2) Есть вариант при котором письма не отправятся, 7 параметр [string site_id = false], ID сайта почтовых шаблонов, если указать не существующий ID сайта, то и не будет шаблонов и как следствие писем.

global $USER; 
$USER->Register("admin", "", "", "123456", "123456", "a@m.ru", "no_send");

Особенность Add2BasketByProductID() [bitrix api]

Итак есть одна особенность у это функции, которая так облегчает нам жизнь. И так суть в том, что когда вы добавляете товар в корзину в кол-ве 10 штук, туда попадает 1 или 4 и т.д. В общем кол-во не всегда правильное и это сбивает с толку.

Continue reading