Массовое копирование элементов ИБ в админке 1C Bitrix

Появилась необходимость копировать элементы внутри ИБ в другой раздел. В Битриске можно копировать только по одному элементу, и это не удобно когда надо скопировать более ста элементов в другой раздел.
Для начала нам надо добавить в список действий новое новое действие – «копировать».
Открываем файл — /bitrix/modules/iblock/admin/iblock_element_admin.php, находим строку 1895. Там объявляет массив с событиями:

$arActions = array(
	"delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"),
	"activate" => GetMessage("MAIN_ADMIN_LIST_ACTIVATE"),
	"deactivate" => GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"),
);

Баг в eAccelerator с open_basedir

Вчера настраивая eAccelerator на VPS столкнулся с проблемой связанной с open_basedir.

В лог записывались следующие ошибки:

PHP Warning: require(): open_basedir restriction in effect. File() is not within the allowed path(s);

PHP Warning: Unknown: open_basedir restriction in effect. File() is not within the allowed path(s);

Версия eAccelerator – 0.9.6.1

Решает этот баг исправлением одной строчки кода в исходнике eAccelerator – eaccelerator.c, строка 867:

if (php_check_open_basedir(realfilename TSRMLS_CC)) {

на

if (php_check_open_basedir(p->realfilename TSRMLS_CC)) {

После всего заново компилируем eAccelerator, переустанавливаем.

Удачи! ;-)

Вычисление возраста с помощью Zend_Date

< ?php

class Fr_Date extends Zend_Date
{
    public function getCountYear($date)
    {
        $date = new Fr_Date($date);

        $this->subYear($date->get(Zend_Date::YEAR))
             ->subMonth((int)$date->get(Zend_Date::MONTH) - 1)
             ->subDay((int)$date->get(Zend_Date::DAY) - 1);
 
        return $this->get(Zend_Date::YEAR);
    }
}