Архив

2015 год

Всего: 61 запись

bitrix: get id by code (получить id по символьному коду)

function getIdByCode($code,$iblock_id,$type){
	if(CModule::IncludeModule("iblock")){
		if($type=='IBLOCK_ELEMENT'){
			$arFilter=array("IBLOCK_ID"=>$iblock_id,"CODE"=>$code);
			$res=CIBlockElement::GetList(array(),$arFilter,false,array("nPageSize"=>1),array('ID'));
			$element=$res->Fetch();
			if($res->SelectedRowsCount()!=1) return '<p style="font-weight:bold;color:#ff0000">Элемент не найден</p>';
			else return $element['ID'];
		}
		else if($type=='IBLOCK_SECTION'){
			$res=CIBlockSection::GetList(array(),array('IBLOCK_ID'=>$iblock_id,'CODE'=>$code));
			$section=$res->Fetch();
			if($res->SelectedRowsCount()!=1) return '<p style="font-weight:bold;color:#ff0000">Раздел не найден</p>';
			else return $section['ID'];
		}
		else{
			return '<p style="font-weight:bold;color:#ff0000">Укажите тип</p>';
		}
	}
}
$property_type_value=getIdByCode($_REQUEST['type'],42,'IBLOCK_SECTION');

В примере получаем ID раздела из инфоблока с ID 42, у которого символьные код — $_REQUEST[‘type’].
Источники:
http://kadomtsev.ru/bitriks-kak-poluchit-id-razdela-ili-elementa-infobloka-po-simvolnomu-kodu/
http://www.bxdev.ru/posts/iblocks/getIdByCode/

bitrix: список элементов инфоблока по значению свойства

global $arTypesFilter;
$arTypesFilter=array("PROPERTY_TYPE"=>27);
$APPLICATION->IncludeComponent(
	"bitrix:news.list",
	"tpl",
	Array(
		"FILTER_NAME"=>"arTypesFilter",
		"PROPERTY_CODE"=>array("TYPE"),
	),
	false
);

Где 27 значение свойства TYPE. (Перечислены только параметры, которые участвуют в фильтрации.)

Google map iframe — убрать увеличение карты при прокрутке страницы колесиком мышки

(Disable mouse scroll wheel zoom on embedded Google Maps)
При прокрутке страницы колесиком мышки, когда курсор попадает на карту, вместо прокрутки далее страницы вниз происходит увеличение карты (особенно если карта на всю ширину страницы).
Как убрать?
Перед iframe добавляем div:

<div class="overlay" onClick="style.pointerEvents='none'"></div>
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1998.5192766409587!2d30.2653292!3d59.940118700000006!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x469631284de3a6fb%3A0x17f2808218507f5a!2zMTYt0Y8g0LvQuNC90LjRjywg0KHQsNC90LrRgi3Qn9C10YLQtdGA0LHRg9GA0LM!5e0!3m2!1sru!2sru!4v1438004309074" width="100%" height="550" frameborder="0" style="border:0" allowfullscreen></iframe>

Стиль:

.overlay {
	background:transparent; 
	position:relative; 
	width:100%;
	height:550px;
	top:550px;
	margin-top:-550px;
}

И если пользователь все-таки решил работать с картой — при клике на блок, который появился поверх карты — убираем его:

$(document).ready(function(){
	$('.overlay').click(function() {
		$(this).remove();
	});
});

Правильнее всего конечно для этого случая рисовать карту через API с параметром scrollwheel:false, но, бывает, нужно решение именно для фрейма.

javascript: определить знак зодиака, стихию и планету по дате рождения

function horoscope(){
	var zodiac=[
		[1,'','',''],
		[19,'Козерог (22.12–19.1)','Земля','Сатурн'],
		[18,'Водолей (20.1–18.2)','Воздух','Сатурн, Уран'],
		[20,'Рыбы (19.2–20.3)','Вода','Юпитер, Нептун'],
		[19,'Овен (21.3–19.4)','Огонь','Марс'],
		[20,'Телец (20.4–20.5)','Земля','Венера'],
		[21,'Близнецы (21.5–21.6)','Воздух','Меркурий'],
		[22,'Рак (22.6–22.7)','Вода','Луна'],
		[22,'Лев (23.7–22.8)','Огонь','Солнце'],
		[22,'Дева (23.8–22.9)','Земля','Меркурий'],
		[22,'Весы (23.9–22.10)','Воздух','Венера'],
		[22,'Скорпион (23.10–22.11)','Вода','Марс, Плутон'],
		[21,'Стрелец (23.11–21.12)','Огонь','Юпитер']
	];
	var d=document.getElementById('dd').value*1;
	var m=document.getElementById('mm').value*1;
	if (d<1||d>31) {
		m=0;
		d=0;
	}
	if (m<1||m>12) {
		m=0;
		d=0;
	}
	if (d>zodiac[m][0]) m+=1;
	if (m>12) m=1;
	if (zodiac[m][1]!='') {
		$('.choise_form_res').html(zodiac[m][1]+', '+zodiac[m][2]+', '+zodiac[m][3]);
		$('.choise_form_res').show();
	}
	else {
		$('.choise_form_res').html('');
		$('.choise_form_res').hide();
	}
}
$(document).ready(function(){
	$('.choise_form_inps input').change(function(){
		horoscope();
	});
});
<div class="choise_form_inps">
	<input type="text" name="dd" id="dd" value="" placeholder="день" />
	<input type="text" name="mm" id="mm" value="" placeholder="месяц" />
	<input type="text" name="yyyy" id="yyyy" value="" placeholder="год" />
</div>
<div class="choise_form_res" style="display:none"></div>

На основе: http://www.cyberforum.ru/javascript/thread430480.html
http://www.zodiack.ru/