Передать в iframe данные с помощью Jquery

14.08.2014 javascript, jQuery плагины ,

$('iframe#jivo_chat_iframe.jivo-fade-in').contents().find('textarea').val(123);

Дерево до самого начала, получение родителей секции.

05.08.2014 Bitrix

Получение родителей секции.


	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);
			 

		   }
		}
	}

Добавление свойства тип карты в компонент iblock.element.add.form

04.08.2014 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?>

Получение id раздела по коду и id элемента по коду

02.08.2014 Bitrix ,

$iSectionID = CIBlockFindTools::GetSectionID(false,$_REQUEST['SECTION_CODE'],array("IBLOCK_ID" => I_CONTESTS));
$iElementID = CIBlockFindTools::GetElementID(false,$_REQUEST['CODE'],false,false,array("IBLOCK_ID" => I_CONTESTS));

bitrix фильтр по датам

01.08.2014 Bitrix ,

bitrix фильтр по свойствам с датой

	$arFiltr['<=PROPERTY_WITH_TIME']	= date("Y-m-d H:i:s", time());
	$arFiltr['>=PROPERTY_TO_TIME']		= date("Y-m-d H:i:s", time());

Подписка пользователя на рассылку при регистрации BITRIX

23.06.2014 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",
								)
							);						
						}					
					}
				}
			}
	}
}

BigVideo.js видео в background

14.06.2014 Bitrix, jQuery плагины

http://dfcb.github.io/BigVideo.js/

javascript Прибавить к дате

11.06.2014 javascript ,

//30.06.2014
var EndDay = jQuery('#datepickerEnd').val()		
EndDay = EndDay.split('.')		
var date = new Date(EndDay[2], EndDay[1], +EndDay[0]+15, 0, 0, 0)
var month = date.getMonth();   // возможно нужно прибавить +1
EndDay = date.getDate() + '.' + (month < 10 ? '0' : '') + month + '.' + date.getFullYear();		
jQuery('#PeriodTill').val(EndDay)

jQuery.backgroundSize.js пример

07.06.2014 jQuery плагины No comments

http://louisremi.github.io/jquery.backgroundSize.js/demo/

У плагина есть два варианта вызова c параметром cover

$(document.body).css({backgroundSize: "cover"});

Вот пример
и второй с параметром contain, и тут есть нюанс у тега html должна быть высота 100%

<style>
html {
	height: 100%;
}
</style>
$(document.body).css({backgroundSize: "contain"});

Вот пример

Вот и все!

jQuery loader plugin

07.06.2014 jQuery плагины No comments

http://www.gayadesign.com/diy/queryloader2-preload-your-images-with-ease/
Плагин работает на этом сайте.

$(document).ready(function () {
    $("body").queryLoader2({
        barColor: "#6e6d73",
        backgroundColor: "#fff1b0",
        percentage: true,
        barHeight: 1,
        completeAnimation: "grow",
        minimumTime: 100
    });
});