generateLanguageIndicator() public method

Generates a language indicator from $languageCode and $alwaysAvailable.
public generateLanguageIndicator ( string $languageCode, boolean $alwaysAvailable ) : integer
$languageCode string
$alwaysAvailable boolean
return integer
コード例 #1
0
 /**
  * Inserts object state group translations into database
  *
  * @param \eZ\Publish\SPI\Persistence\Content\ObjectState\Group $objectStateGroup
  */
 protected function insertObjectStateGroupTranslations(Group $objectStateGroup)
 {
     foreach ($objectStateGroup->languageCodes as $languageCode) {
         $languageId = $this->maskGenerator->generateLanguageIndicator($languageCode, $languageCode === $objectStateGroup->defaultLanguage);
         $query = $this->dbHandler->createInsertQuery();
         $query->insertInto($this->dbHandler->quoteTable('ezcobj_state_group_language'))->set($this->dbHandler->quoteColumn('contentobject_state_group_id'), $query->bindValue($objectStateGroup->id, null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('description'), $query->bindValue($objectStateGroup->description[$languageCode]))->set($this->dbHandler->quoteColumn('name'), $query->bindValue($objectStateGroup->name[$languageCode]))->set($this->dbHandler->quoteColumn('language_id'), $query->bindValue($languageId, null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('real_language_id'), $query->bindValue($languageId & ~1, null, \PDO::PARAM_INT));
         $query->prepare()->execute();
     }
 }
コード例 #2
0
 /**
  * Inserts data into contentclass_name.
  *
  * @param int $typeId
  * @param int $typeStatus
  * @param string[] $languages
  *
  * @return void
  */
 protected function insertTypeNameData($typeId, $typeStatus, array $languages)
 {
     $tmpLanguages = $languages;
     if (isset($tmpLanguages['always-available'])) {
         unset($tmpLanguages['always-available']);
     }
     foreach ($tmpLanguages as $language => $name) {
         $query = $this->dbHandler->createInsertQuery();
         $query->insertInto($this->dbHandler->quoteTable('ezcontentclass_name'))->set('contentclass_id', $query->bindValue($typeId, null, \PDO::PARAM_INT))->set('contentclass_version', $query->bindValue($typeStatus, null, \PDO::PARAM_INT))->set('language_id', $query->bindValue($this->languageMaskGenerator->generateLanguageIndicator($language, $this->languageMaskGenerator->isLanguageAlwaysAvailable($language, $languages)), null, \PDO::PARAM_INT))->set('language_locale', $query->bindValue($language))->set('name', $query->bindValue($name));
         $query->prepare()->execute();
     }
 }
コード例 #3
0
 /**
  * Loads paged list of global aliases.
  *
  * @param string|null $languageCode
  * @param int $offset
  * @param int $limit
  *
  * @return array
  */
 public function listGlobalEntries($languageCode = null, $offset = 0, $limit = -1)
 {
     $limit = $limit === -1 ? self::MAX_LIMIT : $limit;
     /** @var $query \eZ\Publish\Core\Persistence\Database\SelectQuery */
     $query = $this->dbHandler->createSelectQuery();
     $query->select($this->dbHandler->quoteColumn("action"), $this->dbHandler->quoteColumn("id"), $this->dbHandler->quoteColumn("link"), $this->dbHandler->quoteColumn("is_alias"), $this->dbHandler->quoteColumn("alias_redirects"), $this->dbHandler->quoteColumn("lang_mask"), $this->dbHandler->quoteColumn("is_original"), $this->dbHandler->quoteColumn("parent"), $this->dbHandler->quoteColumn("text_md5"))->from($this->dbHandler->quoteTable("ezurlalias_ml"))->where($query->expr->lAnd($query->expr->eq($this->dbHandler->quoteColumn("action_type"), $query->bindValue("module", null, \PDO::PARAM_STR)), $query->expr->eq($this->dbHandler->quoteColumn("is_original"), $query->bindValue(1, null, \PDO::PARAM_INT)), $query->expr->eq($this->dbHandler->quoteColumn("is_alias"), $query->bindValue(1, null, \PDO::PARAM_INT))))->limit($limit, $offset);
     if (isset($languageCode)) {
         $query->where($query->expr->gt($query->expr->bitAnd($this->dbHandler->quoteColumn("lang_mask"), $query->bindValue($this->languageMaskGenerator->generateLanguageIndicator($languageCode, false), null, \PDO::PARAM_INT)), 0));
     }
     $statement = $query->prepare();
     $statement->execute();
     return $statement->fetchAll(\PDO::FETCH_ASSOC);
 }
コード例 #4
0
 /**
  * Sets field (ezcontentobject_attribute) values to the given query.
  *
  * @param \eZ\Publish\Core\Persistence\Database\InsertQuery $q
  * @param Content $content
  * @param Field $field
  * @param StorageFieldValue $value
  */
 protected function setInsertFieldValues(InsertQuery $q, Content $content, Field $field, StorageFieldValue $value)
 {
     $q->insertInto($this->dbHandler->quoteTable('ezcontentobject_attribute'))->set($this->dbHandler->quoteColumn('contentobject_id'), $q->bindValue($content->versionInfo->contentInfo->id, null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('contentclassattribute_id'), $q->bindValue($field->fieldDefinitionId, null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('data_type_string'), $q->bindValue($field->type))->set($this->dbHandler->quoteColumn('language_code'), $q->bindValue($field->languageCode))->set($this->dbHandler->quoteColumn('version'), $q->bindValue($field->versionNo, null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('data_float'), $q->bindValue($value->dataFloat))->set($this->dbHandler->quoteColumn('data_int'), $q->bindValue($value->dataInt, null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('data_text'), $q->bindValue($value->dataText))->set($this->dbHandler->quoteColumn('sort_key_int'), $q->bindValue($value->sortKeyInt, null, \PDO::PARAM_INT))->set($this->dbHandler->quoteColumn('sort_key_string'), $q->bindValue(mb_substr($value->sortKeyString, 0, 255)))->set($this->dbHandler->quoteColumn('language_id'), $q->bindValue($this->languageMaskGenerator->generateLanguageIndicator($field->languageCode, $this->isLanguageAlwaysAvailable($content, $field->languageCode)), null, \PDO::PARAM_INT));
 }