Архив рубрики: Веб-разработка

Исправляем часовой пояс в битрикс

Иногда возникает ситуация когда в битриксе в главном модуле не верно отображает время = для решения проблемы

1 Заходим в папку Birtix ищем файл dbconn.php (находится в bitrix/php_interface.php).
2 Добавляем код date_default_timezone_set(«ЧАСОВОЙ ПОЯС»); где часовой пояс = ваш часовой пояс например «Europe/Moscow»
3 Перезапускаем веб-окружение.

Битрикс полное наименование вместо наименования по всему сайту

Если необходимо по всему сайту записать полное наименование в наименование

SetTitle("Новая страница");
?>
$IBLOCK_ID,
            // " $data,
        ),
        false,
        false,
        array('ID', 'NAME', 'PREVIEW_TEXT')

    );

    while($ar_fields = $result ->GetNext()):
    $ar_fields = $result ->GetNext();

        //CIBlockElement::SetPropertyValues($ELEMENT_ID, $IBLOCK_ID, $PROPERTY_VALUE, $PROPERTY_CODE);

        ///$arFields = $ob->GetFields();
        //CIBlockElement::Delete($ar_fields['ID']);
        $el = new CIBlockElement;

        $PROP = array();

        $arLoadProductArray = Array(
            "MODIFIED_BY"    => $USER->GetID(), // элемент изменен текущим пользователем
        //    "IBLOCK_SECTION" => false,          // элемент лежит в корне раздела
        //    "PROPERTY_VALUES"=> $PROP,
            "NAME"           => $ar_fields['PREVIEW_TEXT'],
        //    "ACTIVE"         => "Y",            // активен
        //    "PREVIEW_TEXT"   => "текст для списка элементов",
        //    "DETAIL_TEXT"    => "текст для детального просмотра",
        //    "DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
        );

        $PRODUCT_ID = $ar_fields['ID'];  // изменяем элемент с кодом (ID) 2
        $res = $el->Update($PRODUCT_ID, $arLoadProductArray);

        echo '
',htmlspecialchars(print_r($ar_fields,1)),'

';

endwhile;

endif;
?>

Битрикс полное наименование вместо наименования при обмене с 1с

Если необходимо автоматически писать в наименование полное наименование при обмене с 1с

AddEventHandler("iblock", "OnStartIBlockElementUpdate", Array("AHandlers", "ChangeElementName1CImport"));
AddEventHandler("iblock", "OnStartIBlockElementAdd", Array("AHandlers", "ChangeElementName1CImport"));

class AHandlers {
   function ChangeElementName1CImport(&$arFields) {
      if($arFields['IBLOCK_ID']==9 && strstr($_SERVER['REQUEST_URI'],'1c_exchange.php')) {
         $previewText = strip_tags(trim($arFields['PREVIEW_TEXT']));
         $name = $arFields['NAME'];
         $arFields['NAME'] = $previewText;
         $arFields['PREVIEW_TEXT'] = $name;
        //AddMessage2Log($arFields['NAME'], "my_module_id");
      }
   }

PHP Вычесть из даты год, месяц, или день

php-date-time

Вычитаем из конкретной даты день

$date = new DateTime('2000-01-01');
$date->modify('-1 day');
echo $date->format('d.m.Y H:i:s');

Вычитаем месяц

$date = new DateTime();
$date->modify('-1 month');
echo $date->format('Y-m-d H:i:s');

Вычитаем год

$date = new DateTime();
$date->modify('-1 year');
echo $date->format('Y-m-d H:i:s');

Битрикс глобальная фильтрация в компонентах

Например необходимо убрать товары с 0 количеством в компоненте bitrix:catalog.section

CATALOG_QUANTITY" => 0 );
?>

IncludeComponent("bitrix:catalog.section", ".default", array(
...
   "FILTER_NAME" => "arrFilter",
...
   ),
   false
);?> 

Битрикс Incorrect format of Date/Time

При програмной установке значения в поле элемента инфоблока DATE_ACTIVE_FROM или DATE_ACTIVE_TO возникает ошибка из за неверного формата = Incorrect format of Date/Time

Решение следующее

Читать далее Битрикс Incorrect format of Date/Time

Как получить мета теги через апи Битрикс

Это касается 14-ой версии битрикс, когда в поставку включили сео модуль.

Читать далее Как получить мета теги через апи Битрикс