Итак есть одна особенность у это функции, которая так облегчает нам жизнь. И так суть в том, что когда вы добавляете товар в корзину в кол-ве 10 штук, туда попадает 1 или 4 и т.д. В общем кол-во не всегда правильное и это сбивает с толку.
programming languages
Склонение сеществительного от числа [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>ва
Таблица html спецсимволов
The table in the detailed view
CIBlockElement::SetPropertyValues()
Следует отметить вот такой порядок параметров
CIBlockElement::SetPropertyValues(
$i_ElementID,
$i_IblockID,
array('PROPERTY_CODE' => 'PROPERTY_VALUE')
);
В этом случае очень важный момент, при обновлении нужно задать все свойства элемента, иначе те которые не заданы будут сброшены.
Это напоминает логику работы CIBlockElement::Update(), если не все свойства указать в PROPERTY_VALUES.
Adobe Air aplication Bitrix API
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");
Редактрование атрибутов тега SVG
$('svg')[0].setAttribute('width', '100%');
Использование javascript библиотеки для построения графиков Highcharts

Из всего что было попробовано остановился на этой библиотеке и не прогадал. Эту библиотеку не даром даже яндекс использует в web мастере. Разобраться можно довольно быстро, есть масса примеров, api тоже не плохо описано. В общем записываю чтобы не забыть.
Ну и результаты работы с Highcharts
Аналитика стоимости 1м? жилья в Ставрополе