Картинки

06.09.2013 Bitrix

$arImg = CFile::ResizeImageGet($arUser["PERSONAL_PHOTO"], array('width'=>125, 'height'=>125), BX_RESIZE_IMAGE_PROPORTIONAL, true);
	$fileInfo = CFile::GetFileArray($arrSction["PICTURE"]);		
	$arImg = CFile::ResizeImageGet($fileInfo , array('width'=>300, 'height'=>180), BX_RESIZE_IMAGE_PROPORTIONAL, true);
	if($arImg['src']){
		$fileInfo['SRC'] = $arImg['src'];
		$fileInfo['HEIGHT'] = $arImg['height'];
		$fileInfo['WIDTH'] = $arImg['width'];
		$arrSction['PICTURE'] = $fileInfo;
	}else{
		$arrSction['PICTURE'] = $fileInfo;		
	}

Установка крона

28.08.2013 console ,

для входа в режим редактирования
crontab -e
для вводад ноовых данных нажимаем i

этот скрипт будет срабатывать 1 раз в минуту
*/1 * * * * php /home/bitrix/www/y.php

этот скрипт будет срабатывать каждый час в 00 минут
0 */1 * * * php /home/bitrix/www/y.php

этот скрипт будет срабатывать только 14-00 и 19-00
0 14,19 * * * php /home/bitrix/www/y.php

для выхода из режима редактирования ESC
для сохранения введенных данных пишем :wq
для выхода без сохранения пишем :q!
потом нажать Enter

для просмотра всех задач
crontab -l

добавление переменных в component_epilog.php из result_modifier.php

15.08.2013 Bitrix, php скрипты , ,

в result_modifier.php

$this->__component->arResultCacheKeys[] = 'OLOLO';
$arResult['OLOLO'] = 'OLOLO';

в component_epilog.php

var_dump($arResult);

Пример использования nElementID

20.07.2013 Bitrix, php скрипты , ,

        $arSort = array( // сортировка из параметров компонента
			$arParams["SORT_BY1"]=>$arParams["SORT_ORDER1"],
			$arParams["SORT_BY2"]=>$arParams["SORT_ORDER2"],
		);
		$arSelect = array( // выбирать будем несколько необходимых полей
			"ID",
		);
		$arNavParams = array(
			"nPageSize"		=> 1, // выбираем по 1 элементу с каждой стороны от текущего
			"nElementID"	=> $GLOBALS['arFiltr']['ID'], // тот элемент, соседей которого ищем
		);




		$arItems = Array();
		$rsItems = CIBlockElement::GetList($arSort, array('IBLOCK_ID'=>$arParams["IBLOCK_ID"]), false, $arNavParams, $arSelect);
		$rsItems->SetUrlTemplates($arParams["DETAIL_URL"]);
		while($obItem = $rsItems->GetNextElement()) {
			$arItem = $obItem->GetFields();
			$arItems[] = $arItem;
		}




		if(count($arItems)==3){ // если выборка вернула 3 элемента, значит есть оба соседа
			$arResult["PREV_NEXT_NAV"]["PREV_ITEM"] = $arItems[0];
			$arResult["PREV_NEXT_NAV"]["NEXT_ITEM"] = $arItems[2];
		}elseif(count($arItems)==2){ // если 2 - то соседний элемент только 1
			if($arItems[0]["ID"]!=$arResult["ID"]){			// определяем, слева он или справа
				$arResult["PREV_NEXT_NAV"]["PREV_ITEM"] = $arItems[0];
			}else{
				$arResult["PREV_NEXT_NAV"]["NEXT_ITEM"] = $arItems[1];
			}
		}

JavaScript indexOf()

11.06.2013 javascript , ,

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
if(n < 0){
alert('no');
}else{
alert('yes');
}

Валидация в inpute 2

21.05.2013 javascript ,

	jQuery('input[name="form_text_292"]').keyup(function(e){
        var This		= jQuery(this);
        var Val			= This.val();
		var do_check	= true;
		var key	        = e.keyCode;
		console.log(e.keyCode);
		
		if(Val == ''){
			do_check = false;
		}
		
		if(
			key == 8	|| 
			key == 39	|| 
			key == 46	|| 
			key == 37	
		){
			do_check = false;
		}
		console.log(do_check);
		if(do_check){		
			var ValCheck	= '';
			var shablon		= /[0-9\.\,]{1,50}/;
			var resultCheck = Val.match(shablon);
			if (resultCheck == Val && resultCheck!=null){
				ValCheck = Val;
			}else{
				var kolich		= Val.length;
				ValCheck		= Val.slice(0,kolich-1);
				var ValCheck	= Val.replace(/[a-zA-ZА-Яа-я\!\@\#\$\%\^\&\*\(\)\-\_\+\=\"\№\;\:\?]/g,"");
			}
			
			var shablon		= /[\.\,]/;
			var resultCheck = ValCheck.match(shablon);
			
			if(!resultCheck){
				ValCheck = ValCheck+',00';
			}
		
			This.val(ValCheck);  
		}   
	});

Для cron bitrix

29.04.2013 Bitrix, php скрипты ,

Если нужен в bitrix крон, то в начало скрипта укажите этот код.

$_SERVER["DOCUMENT_ROOT"] = '/home/www';

define('NO_AGENT_STATISTIC', 'Y');
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS",true); 
define('CHK_EVENT', false);
 
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
 
@set_time_limit(0);
@ignore_user_abort(true);


CModule::IncludeModule('iblock');
$_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__)."/..");
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS",true); 
define('CHK_EVENT', true);

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

@set_time_limit(0);
@ignore_user_abort(true);

Компонент вывода элементов иб

28.04.2013 Компоненты

$arFiltr['IBLOCK_ID']	= 4;
$arFiltr['ID']			= 9;
$arSelect[]				= 'ID';
$arResult["ITEM"]		= $APPLICATION->IncludeComponent("pro:h.ciblockelement.getlist", "",
                            array(
                                'arOrder'           => array("SORT" => "ASC"),	// Массив, в соответствии с которым сортируются результирующие записи
                                'arFilter'          => $arFiltr,				// Массив, в соответствии с которым фильтруются записи.
                                'arGroupBy'         => false,					// Массив полей, по которым группируются записи.
                                'arNavStartParams'  => false,					// Массив параметров выборки
                                'arSelectFields'    => array('ID'),				// Массив полей записей, которые будут возвращены
                                'CACHE_TIME'        => 3600,					// Время кеша
                                'ADD_TO_CACHE_ID'	=> false,					// Добавить в кеш параметры (array($_GET[SECTION_ID]))
                                'CACHE_PATH'        => false,					// Путь кеша (default pro:h.ciblockelement.getlist)
                                'CACHE'             => 'Y',						// Кешировать Y или N нет
                            ),  false
                        );

Скачать

dTabs jQuery plugin1.0 (если в танке — вкладки)

25.04.2013 jQuery плагины

Простой плагин закладок на jQuery с возможностью вызова callback функций.

Licensed under the MIT License

Подключение:

<link rel='stylesheet' href='dtabs.css' />
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.min.js'></script>
<script type='text/javascript' src='dtabs.js'></script>

Инициализация:

$('.d-tabs').dTabs();

HTML код:

В самом простум случае надо создать следующий блок на странице:

<div class='d-tabs'>

   <div class='d-tabs-nav'><ul>
      <li><a href='#'>tab-1</a></li>
      <li><a href='#'>tab-2</a></li>
      <li><a href='#'>tab-3</a></li>
   </ul></div>

   <div class='d-tab'>tab-1</div>
   <div class='d-tab'>tab-2</div>
   <div class='d-tab'>tab-3</div>

</div>

Примеры:

Сведения:

  1. Данный плагин работает во всех браузерах;
  2. В данном примере не используются никакие графические элементы. Жеаемый вид можно задать через css, не прибегая к редактированию js файла.

Скачать:

dForm jQuery plugin1.0 (если в танке — плагины для формы)

23.04.2013 jQuery плагины

dForm jQuery plugin1.0

Я специально не делал плагин, который срабатывает по селектору форм для того, чтобы можно было легко, без дополнительных настроек кастомизировать только те элементы, которые требуется!

Licensed under the MIT License

Подключение:

<link rel='stylesheet' href='dform.css' />
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.min.js'></script>
<script type='text/javascript' src='dform.js'></script>

Инициализация:

//Текстовые поля:
$('input[type="text"],input[type="password"],textarea').dInpTxt();

//Кнопки:
$('input[type="submit"],input[type="reset"],button').dInpBtn();

//Чекбоксы:
$('input:checkbox').dInpCheckbox();

//Радио:
$('input:radio').dInpRadio();

//Файлы:
$('input[type="file"]').dInpFile();

//Выпадающие списки:
$('select').dSelect();

dForm jQuery plugin1.0

Сведения:

  1. Данный плагин работает в браузерах IE7+, Opera, Mozilla Firefox, Chrome, Safari (PC, MAC, iOS);
  2. Если требуется более полная кастомизация выпадающего списка, то следует использовать jquery плагин «Chosen» (http://harvesthq.github.io/chosen/);
  3. Для того, чтобы в IE9 и более старых версиях отображались скругления и тени, прописанные в css, следует дополнительно подключить PIE (подробнее…);
  4. В данном примере не используются никакие графические элементы. Жеаемый вид можно задать через css, не прибегая к редактированию js файла.

Скачать: