development

randomString() — уникальный, для динамического добавления к элементу DOM

function randomString() {
    return '' + new Date().getTime();
}

function randomString(length) {
    var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');

    if (! length) {
        length = Math.floor(Math.random() * chars.length);
    }

    var str = '';
    for (var i = 0; i < length; i++) {
        str += chars[Math.floor(Math.random() * chars.length)];
    }
    return str;
}

Проверка элемента на активность по дате [bitrix]

function _isDateActive($date_from, $date_to) 
{
    $ar_DateFrom    = explode('.', $date_from);
    $ar_DateTo      = explode('.', $date_to);
    $ar_Date        = explode('.', date('d.m.Y'));
    $s_MetaDateFrom = mktime(0, 0, 0, $ar_DateFrom[1], $ar_DateFrom[0], $ar_DateFrom[2]);
    $s_MetaDateTo   = mktime(0, 0, 0, $ar_DateTo[1], $ar_DateTo[0], $ar_DateTo[2]);
    $s_MetaDate     = mktime(0, 0, 0, $ar_Date[1], $ar_Date[0], $ar_Date[2]);

    return ($s_MetaDate >= $s_MetaDateFrom && $s_MetaDate <= $s_MetaDateTo);
}

Валидность E-mail js [RegExp]

/**
 * @param {string} - Email 
 * @param {string} - (true/false) - определяет строгую 
 * проверку при которой пробелы до и после адреса считаются ошибкой
 * @returns {Boolean} - (true/false)
 */	 
function isValidEmail (email, strict)
{
     if ( !strict ) 
	email = email.replace(/^\s+|\s+$/g, '');
     return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}

найдено

Перенаправление на домен с www

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)(([a-z0-9_-]+)\.)+\w{2,4}$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=permanent,L]

Если кратко, то здесь условие проверяет домен на соответствие виду www.yoursite.com или www.subdomain.yoursite.com и т.д. А знак «!» говорит о том, что нам нужны домены, которые не попадают под это условие, то есть как раз yoursite.com и subdomain.yoursite.com. После чего происходит редирект на этот домен с добавлением www.

подсмотрено

Отложенные функции [bitrix api]

Первое что хочу сказать, они используются для вывода чего либо в хидере, но не просто вывода, а зависящего от определенных параметров которые передаются на самой странице.

На примере, допустим нам нужно в левую колонку (header.php) выводить список товаров, но по определенному условию, если на странице находится товар с ценой больше 1000 р. или еще по какому-либо критерию. Важно то, что мы не знаем значение по которому можно определить это и оно было-бы нам доступно в header.php, только если это $_GET параметр, но я думаю все цены товара «поднимать» в $_GET это бред.

Вот для передачи значения в header и служат отложенные функции. Заголовок странице устанавливается тоже так, передача значения идет с самой страницы.

С помощью метода $APPLICATION->SetPageProperty(‘KEY’, ‘VALUE’) на самой странице добавляем в ее свойства наше значение, в примере с ценой это будет примерно так:

$APPLICATION->SetPageProperty('MAX_PRICE', $i_ProductPrice);

Далее пишем функцию и ложем ее в init.php например,

Continue reading

Статичная ли страница? [bitrix api]

Недавно на форуме был задан вопрос, как можно определить статическую страницу в битриксе. Видимо у людей мало опыта и они просто не знают что изначально все публичные файла сайта битрикса статичные, а уже потом на них можно добавить вывод динамического содержимого.

Continue reading