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

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

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

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");
      }
   }

Битрикс записать полное наименование в наиенование

Если необходимо заменить поле NAME элемента на PREVIEW_TEXT при добавлении или изменении = или например при выгрузке товаров из 1с

AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "DropPreviewText");
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "DropPreviewText");

function DropPreviewText($arFields){
   if (@$_REQUEST['mode']=='import'){

      if (!is_array($arFields['NAME'])){
         $arFields['NAME'] = $arFields['PREVIEW_TEXT'];
      }
         unset($arFields['PREVIEW_TEXT']);
         unset($arFields['PREVIEW_TEXT_TYPE']);

         unset($arFields['DETAIL_TEXT']);
         unset($arFields['DETAIL_TEXT_TYPE']);
   }
}

Битрикс глобальное изменение кодировок таблиц в базе данных

Зайдите в Рабочий стол / Настройки / Инструменты / Командная PHP-строка

и выполните

$needCollation = 'utf8_general_ci'; // укажите здесь нужную кодировку

$res = $DB->Query('SHOW TABLE STATUS');
while($ts = $res->fetch()) {
    if ($ts['Collation'] != $needCollation) $DB->Query('ALTER TABLE `' . $ts['Name'] . '` DEFAULT CHARACTER SET utf8 COLLATE ' . $needCollation);

    $r2 = $DB->Query('SHOW FULL COLUMNS FROM ' . $ts['Name'] . ' WHERE Collation IS NOT NULL');
    while($col = $r2->fetch()) {
   if ($col['Collation'] != $needCollation) $DB->Query('ALTER TABLE `' . $ts['Name'] . '` CHANGE `' . $col['Field'] . '` `' . $col['Field'] . '` ' . $col['Type'] . ' CHARACTER SET utf8 COLLATE ' . $needCollation . ($col['Null'] == 'NO' ? ' NOT' : '') . ' NULL');
    }
}

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
);?> 

Как ввести информацию о тех поддержки проекта на Битрикс

Обычно техподдержку добавленного к платформе функционала оказывает Партнер 1С-Битрикс, который провел интеграцию решения.
Информация вводится в /bitrix/php_interface/this_site_support.php

Читать далее Как ввести информацию о тех поддержки проекта на Битрикс

nginx в веб-окружении Битрикса не запускается

Ошибка вида

Starting nginx: nginx: [alert] mmap(MAP_ANON|MAP_SHARED, 268435456) failed (12: Cannot allocate memory) [FAILED]

которая появляется в веб-окружении и виртуальной машине битрикса 4.2,3 лечится:

Заходим в файл /etc/nginx/bx/conf/im_settings.conf

Уменьшаем значение памяти в директиве push_stream_shared_memory_size до 10-20 МБайт.

Как поменять ключи массива местами

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

Читать далее Как поменять ключи массива местами