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

CollectPathIndex::run: метод Битрикс

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

//    Bitrix\Translate\Controller\Index\CollectPathIndex::run()
//    /bitrix/modules/translate/lib/controller/index/collectpathindex.php:46

    public function run($path = '')
    {
        if (empty($path))
        {
            $path = Translate\Config::getDefaultPath();
        }

        if (preg_match("#(.+\/lang)(\/?\w*)#", $path, $matches))
        {
            $path = $matches[1];
        }

        $path = '/'. trim($path, '/.\\');

        // skip indexing if index exists
        if (Main\Context::getCurrent()->getRequest()->get('checkIndexExists') === 'Y')
        {
            $indexPath = Translate\Index\PathIndex::loadByPath($path);
            if ($indexPath instanceof Translate\Index\PathIndex)
            {
                if ($indexPath->getIndexed())
                {
                    return array(
                        'STATUS' => Translate\Controller\STATUS_COMPLETED
                    );
                }
            }
        }

        if ($this->isNewProcess)
        {
            $languages = $this->controller->getRequest()->get('languages');
            if (!empty($languages) && $this->languages !== 'all')
            {
                $languages = explode(',', $languages);
                if (is_array($languages))
                {
                    $languages = array_intersect($languages, Translate\Config::getEnabledLanguages());
                    if (!empty($languages))
                    {
                        $this->languages = $languages;
                    }
                }
            }

            $indexer = new Index\PathIndexCollection();
            $filter = new Translate\Filter(['path' => $path]);
            if (!empty($this->languages))
            {
                $filter->langId = $this->languages;
            }

            $this->totalItems = $indexer->countItemsToProcess($filter);
            $this->processedItems = 0;

            $this->saveProgressParameters();

            $indexer->purge($filter);

                    /*
                ->unvalidate($filter);
                    'indexedTime' => new Main\Type\DateTime(
                        date('Y-m-d H:i:s', strtotime('-'.self::EXPIRATION_DEPTH)),
                        'Y-m-d H:i:s'
                    )*/

            $this->instanceTimer()->setTimeLimit(5);
            $this->isNewProcess = false;
        }
        else
        {
            $progressParams = $this->getProgressParameters();

            if (isset($progressParams['totalItems']) && (int)$progressParams['totalItems'] > 0)
            {
                $this->totalItems = (int)$progressParams['totalItems'];
                $this->processedItems = (int)$progressParams['processedItems'];
            }

            if (isset($progressParams['seekPathLangId']))
            {
                $this->seekPathLangId = $progressParams['seekPathLangId'];
            }
        }

        return $this->performStep('runIndexing', ['path' => $path]);
    }

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

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

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

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

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

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

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

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