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