среда, 23 октября 2013 г.

PhpStorm: Bitrix plugin

Сегодня мне надоело бегать по немаленькому дереву структуры Битрикса.
Так как я в работе использую PhpStorm, то сразу полез проверить, не выпустил ли кто нибудь плагин, который бы облегчил мою работу. Представьте себе, нашелся один!

Не совсем то, что я представлял, но на безрыбье и рак рыба.
Перед работой плагин необходимо настроить: указать папку с шаблоном сайта. Все!
После этого мы можем мгновенно перемещаться в footer.php и header.php, шаблон используемого компонента и в сам компонент.

Все плюшки плагина, более подробно, показаны на видео.

 

К сожелению нет подсказок по методам классов, как в плагине для Drupal, но все равно огромное спасибо автору.
Вот страничка плагина, BitrixStorm где можно предложить свои идеи для развития плагина.



пятница, 17 мая 2013 г.

Битрикс - форматирование даты в виде День - Название месяца - Год

Часто в дизайне попадается дата для новости в таком виде.
15 января 2013

Как это реализовать без лишней головной боли, ведь стандартная дата в битриксе имет вид 15.01.2013?

Очень просто, достаточно в файл result_modifier.php или template.php добавить 2 строчки:

Для детальной новости:
$arr = ParseDateTime($arResult["DISPLAY_ACTIVE_FROM"], FORMAT_DATETIME);
$arResult["DISPLAY_ACTIVE_FROM"] = $arr["DD"]." ".ToLower(GetMessage("MONTH_".intval($arr["MM"])."_S"))." ".$arr["YYYY"];

Для списка новостей:

$arr = ParseDateTime($arItem["DISPLAY_ACTIVE_FROM"], FORMAT_DATETIME);
$arItem["DISPLAY_ACTIVE_FROM"] = $arr["DD"]." ".ToLower(GetMessage("MONTH_".intval($arr["MM"])."_S"))." ".$arr["YYYY"];


Все! обновляем страницу и радуемся.

пятница, 1 марта 2013 г.

Битрикс - получение пользовательских свойств заказа.

Сегодня расскажу как просто и быстро получить свойства заказа пользователя.

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

Представим что мы создали в свойствах товара несколько полей: адрес, телефон, индекс и тд....
А в личном кабинете нам все это необходимо показать.
















Делается это очень просто:

<?
// Воспользуемся классом CSaleOrderPropsValue.
        $res = CSaleOrderPropsValue::GetList(
            $arOrder = array(), // Индекс сортировки.
            $arFilter = array("ORDER_ID" => $order_info['ORDER']['ID'], "CODE" => "address"), // Фильтр

            $arGroupBy = false, // Групировка
            $arNavStartParams = false, // Навигация
            $arSelectFields = array() // Необходимые поля.
            );

        $arVals = $res->Fetch();
        echo "<pre>".print_r($arVals , true)."</pre>";
?>

В примере выше вы покажем свойство "адрес" заказа с определенным ID.

Если в массив  $arFilter ничего не передавать - покажутся все свойства для всех заказов.
Так же не забывайте, если ожидаете получить несколько свойств, заключите         $arVals = array(); в цикл.

while ( $arVals[] = $res->Fetch() )