Блог о 1C-Битрикс, MODX и OpenCart

1С-Битрикс. D7: пример работы с сущностями Request, Response и Server

Небольшой пример работы с сущностями Request, Response и Server на новом ядре D7.

В моём примере мы проверим, что пришёл запрос методом POST, добавим значение в куку, полученную из объекта Request и средиректим на нужный адрес, отправив заголовки.

Узнать больше

Сортировка по двум (нескольким) значениям ассоциативного массива в PHP

Код:

$orderBy = [
    'PROPERTY_COLOR_NAME' => 'asc',
    'PROPERTY_SIZE_NAME_PART1' => 'asc',
];
 
uasort($array, function ($a, $b) use ($orderBy) {
    $result = 0;
 
    foreach ($orderBy as $key => $value) {
 
        if ($a[$key] == $b[$key]) {
            continue;
        }
 
        $result = ($a[$key] < $b[$key]) ? -1 : 1;
 
        if ($value == 'desc') {
            $result = -$result;
        }
 
        break;
    }
 
    return $result;
});
Узнать больше

PHP. Первый и последний день квартала с помощью класса \DateTime

Код:

$currentDateTime = new \DateTime();
 
$monthNum = $currentDateTime->format('m');
 
$quarterNum = ceil($monthNum / 3);
 
$firstDayOfQuarter = (new \DateTime())
    ->setDate(
        $currentDateTime->format('Y'),
        $quarterNum * 3 - 2,
        1
    )
    ->setTime(0, 0, 0);
 
$lastDayOfQuarter = (new \DateTime())
    ->setDate(
        $currentDateTime->format('Y'),
        $quarterNum * 3,
        1
    )
    ->setTime(23, 59, 59)
    ->modify('last day of this month');
 
echo '<pre>';print_r($firstDayOfQuarter);echo '</pre>';
 
echo '<pre>';print_r($lastDayOfQuarter);echo '</pre>';
Узнать больше

1С-Битрикс. Добавляем в морфологический индекс поиска возможность искать по части слова

Наверняка, многие знают, что в битриксе есть морфологический поиск. И вроде бы он даже худо-бедно работает. Но если мы торгуем товарами, и хотим, чтобы поиск искал и по части чего-то специфического, например, артикула товара (пример: артикул «Р6543», подстрокой будет «6543»), то ничего из этого не выйдет. Поиск тупо ничего не найдёт.

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

Узнать больше

1С-Битрикс. Логируем изменения сущности элемента торгового каталога

В лог будем писать все изменения сущности торгового каталога CCatalogProduct.

Например я им отлавливал странную активацию товара в каталоге. Клиент утверждал, что количество у товара точно было 0 и он его не добавлял. Но при этом пользователи умудрялись его купить.

Узнать больше

1C-Битрикс. Кастомизация нового шаблона компонента sale.order.ajax

С выходом нового шаблона компонента sale.order.ajax на форумах битрикса разгораются возмущения и недомения. Мол, теперь код всего шаблона на JavaScript и как его кастомизировать непонятно. На самом деле да, код js-скрипта составляет почти семь тысяч строк. Сходу в таком количестве кода, даже хорошо написанного (к сожалению, битрикс этим не балует), соблюдая паттерны программирования, будет непросто.

В этой заметке я покажу способ, как можно кастомизировать основной скрипт логики шаблона оформления заказа (order_ajax.js), не прибегая к его правке. Что нам это даёт? Когда прилетят очередные обновления шаблона, мы просто заменим его и всё. Все наши кастомизации будут работать (в теории).

Итак, поехали!

Узнать больше