Склонение сеществительного от числа [js]

var declOfNum = function(number, titles)
{  
    var  cases = [2, 0, 1, 1, 1, 2];  
    return titles[ 
            (number % 100 > 4 && number % 100 < 20) 
            ? 
            2 
            : 
            cases[(number % 10 < 5) ? number % 10 : 5] 
    ];  
} 

//declOfNum(days, ['день', 'дня', 'дней']);
//declOfNum(hours, ['час', 'часа', 'часов']);
//declOfNum(minutes, ['минута', 'минуты', 'минут']);
//declOfNum(seconds, ['секунда', 'секунды', 'секунд']);

Предыдущий следующий элемент массива по кругу [php]

Для формирования ссылок на детальных страниц нужно искать предыдущий и следующий элемент, для построения url.

Это первое способ, собрать все ID в массив и найти prev и next. Второй способ если у вас много элементов, использовать pagination (постраничну навигацию) с настройкой списка в 1 элемент.

Snippet для 1 случая:

// массив с ID
$ar_ElementID = array();

// текущий ID (должен присутствовать в $ar_ElementID)
$i_CurrentID = 777

// находим текущий ключ
$i_KeyCurrent =	array_search($i_CurrentID, $ar_ElementID);

// кол-во элементов в массиве
$i_CountElement = count($ar_ElementID);


/* коротко */

	// слудеющий ID	
	$i_NextID = ( $i_KeyCurrent !== ($i_CountElement -1) ) 
		? $ar_ElementID[$i_KeyCurrent + 1] : 0;

	// предыдущий ID
	$i_PrevID = ( $i_KeyCurrent == 0 ) 
		? $ar_ElementID[$i_CountElement - 1] : $ar_ElementID[$i_KeyCurrent - 1];


/* длинно */

	// слудеющий ID	
	if($i_KeyCurrent !== ($i_CountElement -1) )
	{
		$i_NextID = $ar_ElementID[ $i_KeyCurrent + 1 ];
	}	
	else 
	{
		$i_NextID = 0;
	}	
		
	// предыдущий ID
	if($i_KeyCurrent == 0 )
	{
		$i_PrevID = $ar_ElementID[$i_CountElement - 1];
	}	
	else
	{
		$i_PrevID = $ar_ElementID[$i_KeyCurrent - 1];
	}

Поиск по тексту с выделением [javascript]

Можно использовать в собственно-сделанных селектах для быстрого поиска по ключевым символам или по слову.

var text            = "Москва",
    searchText      = "ск",
    startpos        = text.search( 
         new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i')); //magic

    text = text.substr(0, startpos + searchText.length) + '</em>' + text.substr(startpos + searchText.length);
    text = text.substr(0, startpos) + '<em>' + text.substr(startpos);


//результат: Москва = Мо<em>ск</em>ва

CIBlockElement::SetPropertyValues()

Следует отметить вот такой порядок параметров

CIBlockElement::SetPropertyValues(
    $i_ElementID, 
    $i_IblockID, 
    array('PROPERTY_CODE' => 'PROPERTY_VALUE')
);

В этом случае очень важный момент, при обновлении нужно задать все свойства элемента, иначе те которые не заданы будут сброшены.

Это напоминает логику работы CIBlockElement::Update(), если не все свойства указать в PROPERTY_VALUES.

jQuery checkbox-ы с checked

Иногда элементарным вещам не уделяешь должного места в своей голове и они плохо запоминаются, вот и с этой выборкой так, постоянно забываю o_O

$("input[name='group_name[]']:checked");
||
$("input").filter(":checkbox:checked");
||
$('input[type="checkbox"]').prop('checked');
||
$("input[type='checkbox'][checked='true']");
||
$("input:checked");

Взято

Bitrix на MAMP Pro и mod_rewrite

По умолчанию почему то не заработал ЧПУ на сайте, apache не хотел читать .htaccess, заходим FIle -> Edit Template -> Apache -> httpd.conf

; у меня строка 205

<Directory />
    Options Includes
    AllowOverride All ; меняем на All
</Directory>

AllowOverride директива

Синтаксис: AllowOverride override override …
Значение по умолчанию: AllowOverride All
Контекст: каталог
Состояние: основное

Когда сервер находит .htaccess файл (как определено AccessFileName) ему необходимо знать какие директивы, объявленные в том файле могут отменять ранее утановленную информацию доступа.

Эта директива может быть установлена в None, т.е. чтобы сервер не читал файл .htaccess. Если она установленна в All — сервер будет допускать все директивы .htaccess файла. Возможны следующие одно или несколько значений:

AuthConfig — допускает использование директив разрешения (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, и т.д..).

FileInfo — допускает использование директив, управляющих типами документа (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..).

Indexes — допускает использование деректив управления индексацией каталога(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..).

Limit — допускает использование основных директив управления доступом (allow, deny и order).

Options — допускает использование директив, управляющих специфическими особенностями каталога (Options и XBitHack).