eZ\Bundle\EzPublishMigrationBundle\Command\LegacyStorage\RegenerateUrlAliasesCommand::doGenerateLocationAliases PHP Method

doGenerateLocationAliases() protected method

Internal method for generating URL aliases.
See also: eZ\Bundle\EzPublishMigrationBundle\Command\LegacyStorage\RegenerateUrlAliasesCommand::generateLocationAliases()
    protected function doGenerateLocationAliases()
    {
        $totalLocationCount = $this->getTotalLocationCount();
        $totalContentCount = $this->getTotalLocationContentCount();
        $passCount = ceil($totalLocationCount / $this->bulkCount);
        $publishedAliasCount = 0;
        if ($totalLocationCount === 0) {
            $this->output->writeln('Could not find any Locations, nothing to generate.');
            $this->output->writeln('');
            return;
        }
        $queryBuilder = $this->connection->createQueryBuilder();
        $queryBuilder->select('node_id', 'parent_node_id', 'contentobject_id')->from('ezcontentobject_tree')->where($queryBuilder->expr()->neq('node_id', 1))->orderBy('depth', 'ASC')->orderBy('node_id', 'ASC');
        $this->output->writeln("Publishing URL aliases for {$totalLocationCount} Location(s) " . "with {$totalContentCount} Content item(s) in all languages.");
        $progressBar = $this->getProgressBar($totalLocationCount);
        $progressBar->start();
        for ($pass = 0; $pass <= $passCount; ++$pass) {
            $rows = $this->loadLocationData($queryBuilder, $pass);
            foreach ($rows as $row) {
                $publishedAliasCount += $this->publishAliases($row['node_id'], $row['parent_node_id'], $row['contentobject_id']);
            }
            $progressBar->advance(count($rows));
        }
        $progressBar->finish();
        $this->output->writeln('');
        $this->output->writeln("Done. Published {$publishedAliasCount} URL alias(es).");
        $this->output->writeln('');
    }