Поддержка серверов

GeneratorContext::generateInitialData: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=334102

<?php 
//    /bitrix/modules/conversion/lib/generatorcontext.phpGeneratorContext::generateInitialData()
//    51:

    
static public function generateInitialData(Date $from)
    {
        if (   (
$to Option::get('conversion''START_DATE_TIME''undefined')) != 'undefined'
            
&& DateTime::isCorrect($to'Y-m-d H:i:s')
            && (
$to = new DateTime($to'Y-m-d H:i:s'))
            &&  
$to->format('Y-m-d H:i:s') > $from->format('Y-m-d H:i:s')
            && 
Option::get('conversion''GENERATE_INITIAL_DATA''undefined') == 'undefined')
        {
            
Option::set('conversion''GENERATE_INITIAL_DATA''generated');

            
$context = new self;

            
// generate data

            
$data = array();

            foreach (
EventManager::getInstance()->findEventHandlers('conversion''OnGenerateInitialData') as $handler)
            {
                
$result ExecuteModuleEventEx($handler, array($from$to)); // TODO validate

                
foreach ($result as $row)
                {
                    
$context->id null;
                    
$context->attributes = array();
                    
$context->setAttributes($row['ATTRIBUTES']);
                    
$context->save();

                    if (
$dayCounters =& $data[$context->id])
                    {
                        
self::appendDayCounters($dayCounters$row['DAY_COUNTERS']);
                    }
                    else
                    {
                        
$dayCounters $row['DAY_COUNTERS'];
                    }
                }
            }

            unset(
$dayCounters);

            
// save data to database

            
$numerators CounterManager::getTypes(array('GROUP' => 'day'));
            unset(
$numerators['conversion_visit_day']);

            foreach (
$data as $id => $dayCounters)
            {
                
$context->id $id;

                foreach (
$dayCounters as $day => $counters)
                {
                    
$day = new Date($day'Y-m-d');

                    
$visitSum      0;
                    
$visitQuantity 0;

                    unset(
$counters['conversion_visit_day']);

                    foreach (
$counters as $name => $value)
                    {
                        
$context->addCounter($day$name$value);

                        if (
$numerators[$name])
                        {
                            
$visitSum      += $value;
                            
$visitQuantity += 1;
                        }
                    }

                    
$context->addCounter($day'conversion_visit_day'$visitQuantity round($visitSum $visitQuantity 100) + 1 1);
                }
            }
        }
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение