eZ\Publish\Core\Persistence\Legacy\Content\Language\MaskGenerator::generateLanguageMask PHP Method

generateLanguageMask() public method

Generates a language mask from the keys of $languages.
public generateLanguageMask ( array $languages ) : integer
$languages array
return integer
    public function generateLanguageMask(array $languages)
    {
        $mask = 0;
        if (isset($languages['always-available'])) {
            $mask |= $languages['always-available'] ? 1 : 0;
            unset($languages['always-available']);
        }
        foreach ($languages as $language => $value) {
            $mask |= $this->languageHandler->loadByLanguageCode($language)->id;
        }
        return $mask;
    }

Usage Example

 /**
  * Generate query expression for a Criterion this handler accepts
  *
  * accept() must be called before calling this method.
  *
  * @param \eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriteriaConverter $converter
  * @param \eZ\Publish\Core\Persistence\Database\SelectQuery $query
  * @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion
  * @param array $fieldFilters
  *
  * @return \eZ\Publish\Core\Persistence\Database\Expression
  */
 public function handle(CriteriaConverter $converter, SelectQuery $query, Criterion $criterion, array $fieldFilters)
 {
     $languages = array_flip($criterion->value);
     /** @var $criterion \eZ\Publish\API\Repository\Values\Content\Query\Criterion\LanguageCode */
     $languages['always-available'] = $criterion->matchAlwaysAvailable;
     return $query->expr->gt($query->expr->bitAnd($this->dbHandler->quoteColumn('language_mask', 'ezcontentobject'), $this->maskGenerator->generateLanguageMask($languages)), 0);
 }
All Usage Examples Of eZ\Publish\Core\Persistence\Legacy\Content\Language\MaskGenerator::generateLanguageMask