Архив метки: PHP

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

Если необходимо заменить поле 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');

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

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

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