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();
}