17.11.2014 Bitrix
13.10.2014 Bitrix #bitrix, #CSaleOrderPropsValue::Update, #order, #OrderProps
Bitrix\Main\Loader::includeModule('sale'); Bitrix\Main\Loader::includeModule('iblock'); Bitrix\Main\Loader::includeModule('catalog'); $ORDER_ID = 23; $db_order = CSaleOrder::GetList( array("DATE_UPDATE" => "DESC"), array("ID" => $ORDER_ID), false, false, array('ID', 'PERSON_TYPE_ID') ); if ($arOrder = $db_order->Fetch()) { $db_props = CSaleOrderProps::GetList( array("SORT" => "ASC"), array( "PERSON_TYPE_ID" => $arOrder["PERSON_TYPE_ID"], // тип плательщика "CODE" => "PAY_SUMM" // код свойства который надо изменить ) ); while ($arProps = $db_props->Fetch()) { $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $ORDER_ID, "ORDER_PROPS_ID" => $arProps["ID"] ) ); while ($arVals = $db_vals->Fetch()){ if(!$arVals['VALUE']) CSaleOrderPropsValue::Update($arVals['ID'], array("ORDER_ID"=>$arVals['ORDER_ID'], "VALUE"=>"140")); } } }
07.09.2014 Bitrix
function scrollToToId(id) { var id = id; $('html,body').animate({scrollTop: $(comment_id).offset().top}, 1000); } function scrollTo(element,navheight){ var offset = element.offset(); var offsetTop = offset.top; var totalScroll = offsetTop-navheight; $('body,html').animate({ scrollTop: totalScroll }, 500); } scrollTo(jQuery('#ololo'), 40)
Есть прекрасные методы
$arResultPrices = CIBlockPriceTools::GetCatalogPrices($arParams["IBLOCK_ID"], $arParams["PRICE_CODE"]);
Получение родителей секции.
if(CModule::IncludeModule("iblock")) { $rsParentSection = CIBlockSection::GetByID('7'); if ($arParentSection = $rsParentSection->GetNext()) { // var_dump($arParentSection); /* itdbg($arParentSection['ID']); */ itdbg($arParentSection['IBLOCK_ID']); itdbg($arParentSection['LEFT_MARGIN']); itdbg($arParentSection['RIGHT_MARGIN']); itdbg($arParentSection['DEPTH_LEVEL']); $arFilter = array( 'IBLOCK_ID' => $arParentSection['IBLOCK_ID'], '<=LEFT_BORDER' => $arParentSection['LEFT_MARGIN'], '>=RIGHT_BORDER' => $arParentSection['RIGHT_MARGIN'], // '<DEPTH_LEVEL' => $arParentSection['DEPTH_LEVEL'] ); // выберет потомков без учета активности $rsSect = CIBlockSection::GetList(array('DEPTH_LEVEL'=>'asc'),$arFilter); while ($arSect = $rsSect->GetNext()) { // получаем подразделы itdbg($arSect[NAME], false,3); itdbg($arSect[ID], false,3); itdbg($arSect[DEPTH_LEVEL], false,3); } } }
04.08.2014 Bitrix bitrix, Яндекс.Карты
вставляется в шаблон
<?if($arResult["PROPERTY_LIST_FULL"][$propertyID]["USER_TYPE"] == "map_yandex"):?><? CModule::IncludeModule('iblock'); include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/iblock/admin_tools.php'); $property_fields = $arResult["PROPERTY_LIST_FULL"][$propertyID]; $arUserType = CIBlockProperty::GetUserType($property_fields["USER_TYPE"]); echo call_user_func_array($arUserType["GetPropertyFieldHtml"], array( $property_fields, array("VALUE"=>$value), array( "VALUE"=>'PROPERTY['.$property_fields["ID"].']['.$i.']', "DESCRIPTION"=>'PROPERTY['.$property_fields["ID"].']['.$i.'][DESCRIPTION]', "FORM_NAME"=>'iblock_add', "MODE"=>"FORM_FILL", "COPY"=>false, ), ) ); endif?>
23.06.2014 Bitrix bitrix, регистрация, События
Нужно создать свойство checkbox UF_SUBSCR, вывести в форме регистрации и вставить этот код в init.php
AddEventHandler("main", "OnAfterUserUpdate", Array("EventHandlerClass", "OnAfterUserUpdateHandler")); class EventHandlerClass { function OnAfterUserUpdateHandler(&$arFields) { global $USER; // условие атоподписки, если пользователь подтверждает регистрацию или если admin редактирует пользователя if( ($arFields['RESULT'] && $_GET['confirm_user_id'] > 0 && $_GET['confirm_code'] && $_GET['confirm_user_id'] == $arFields['ID']) || $USER->IsAdmin() ){ // поиск польщователя $filter = Array( "ID" => $arFields['ID'], ); // выбираем EMAIL и свойство UF_SUBSCR $rsUsers = CUser::GetList( ($by="id"), ($order="desc"), $filter, array( 'FIELDS' => array('ID', 'EMAIL'), 'SELECT' => array('UF_SUBSCR') ) ); if($usParam = $rsUsers->Fetch()){ CModule::IncludeModule("subscribe"); $subscr = new CSubscription; // если свойство заполнено то полписываем if($usParam['UF_SUBSCR']){ // поиск подписчика по mail $subscription = CSubscription::GetByEmail($usParam['EMAIL']); if($arSub = $subscription->Fetch()){ // если майл есть в подписчиках, то активируем подписку $res = $subscr->Update($arSub['ID'], array( "ACTIVE" => "Y", "USER_ID" => $usParam['ID'], "RUB_ID" => array(G_SUBSCRIPTION),// id подписки ) ); }else{ // если нет подписки, то добавляем его $arFieldFiltr = Array( "RUB_ID" => array(G_SUBSCRIPTION),// id подписки "USER_ID" => $usParam['ID'], "FORMAT" => "text", "EMAIL" => $usParam['EMAIL'], "ACTIVE" => "Y", "SEND_CONFIRM" => 'N' ); $ID = $subscr->Add($arFieldFiltr); // поиск подписчика по mail, что бы получить код потверждения $subscription = CSubscription::GetByEmail($usParam['EMAIL']); if($arSub = $subscription->Fetch()){ $arResult['DATA_SUB_USSER'] = $arSub; } // подтверждаем подписку $res = $subscr->Update($ID, array( "CONFIRMED" => "Y", "CONFIRM_CODE" => $arResult['DATA_SUB_USSER']["CONFIRM_CODE"] ) ); unset($arResult); } }else{ // если при обновлении пользователя свойство пустое, то деактивируем подписчика $subscription = CSubscription::GetByEmail($usParam['EMAIL']); if($arSub = $subscription->Fetch()){ // активируем подписку $res = $subscr->Update($arSub['ID'], array( "ACTIVE" => "N", ) ); } } } } } }