eZ\Bundle\EzPublishMigrationBundle\Command\LegacyStorage\UpdateFieldAlwaysAvailableFlagCommand::updateAlwaysAvailableFlag PHP Method

updateAlwaysAvailableFlag() protected method

Fixes always available flag on fields of Content $contentId in $versionNo.
protected updateAlwaysAvailableFlag ( Symfony\Component\Console\Output\OutputInterface $output, ProgressBar $progress, integer $contentId, integer $versionNo, integer $mainLanguageId, boolean $dryRun )
$output Symfony\Component\Console\Output\OutputInterface
$progress Symfony\Component\Console\Helper\ProgressBar
$contentId integer
$versionNo integer
$mainLanguageId integer
$dryRun boolean
    protected function updateAlwaysAvailableFlag(OutputInterface $output, ProgressBar $progress, $contentId, $versionNo, $mainLanguageId, $dryRun)
    {
        if ($dryRun) {
            goto output;
        }
        /** @var \eZ\Publish\Core\Persistence\Database\DatabaseHandler $databaseHandler */
        $databaseHandler = $this->getContainer()->get('ezpublish.connection');
        // Remove always available flag from all fields not in main language
        /** @var $query \eZ\Publish\Core\Persistence\Database\UpdateQuery */
        $query = $databaseHandler->createUpdateQuery();
        $query->update($databaseHandler->quoteTable('ezcontentobject_attribute'))->set($databaseHandler->quoteColumn('language_id'), $query->expr->bitAnd($databaseHandler->quoteColumn('language_id'), -2))->where($query->expr->lAnd($query->expr->eq($databaseHandler->quoteColumn('contentobject_id'), $query->bindValue($contentId, null, PDO::PARAM_INT)), $query->expr->eq($databaseHandler->quoteColumn('version'), $query->bindValue($versionNo, null, PDO::PARAM_INT)), $query->expr->eq($query->expr->bitAnd($databaseHandler->quoteColumn('language_id'), $query->bindValue($mainLanguageId, null, PDO::PARAM_INT)), $query->bindValue(0, null, PDO::PARAM_INT))))->prepare()->execute();
        // Set always available flag on fields in main language
        $query = $databaseHandler->createUpdateQuery();
        $query->update($databaseHandler->quoteTable('ezcontentobject_attribute'))->set($databaseHandler->quoteColumn('language_id'), $query->expr->bitOr($databaseHandler->quoteColumn('language_id'), 1))->where($query->expr->lAnd($query->expr->eq($databaseHandler->quoteColumn('contentobject_id'), $query->bindValue($contentId, null, PDO::PARAM_INT)), $query->expr->eq($databaseHandler->quoteColumn('version'), $query->bindValue($versionNo, null, PDO::PARAM_INT)), $query->expr->gt($query->expr->bitAnd($databaseHandler->quoteColumn('language_id'), $query->bindValue($mainLanguageId, null, PDO::PARAM_INT)), $query->bindValue(0, null, PDO::PARAM_INT))))->prepare()->execute();
        output:
        $progress->clear();
        $output->write("\r");
        $output->writeln("Updated fields for Content '{$contentId}' in version '{$versionNo}'");
        $output->write("\r");
        $progress->display();
    }