protected function saveAttribute($objAttribute, $arrIds, $varData, $strLangCode)
    {
        // Call the serializeData for all simple attributes.
        if ($this->isSimpleAttribute($objAttribute)) {
            /** @var \MetaModels\Attribute\ISimple $objAttribute */
            $varData = $objAttribute->serializeData($varData);
        }

        $arrData = array();
        foreach ($arrIds as $intId) {
            $arrData[$intId] = $varData;
        }

        // Check for translated fields first, then for complex and save as simple then.
        if ($strLangCode && $this->isTranslatedAttribute($objAttribute)) {
            /** @var ITranslated $objAttribute */
            $objAttribute->setTranslatedDataFor($arrData, $strLangCode);
        } elseif ($this->isComplexAttribute($objAttribute)) {
            // Complex saving.
            $objAttribute->setDataFor($arrData);
        } elseif ($this->isSimpleAttribute($objAttribute)) {
            $objAttribute->setDataFor($arrData);
        } else {
            throw new \RuntimeException(
                'Unknown attribute type, can not save. Interfaces implemented: ' .
                implode(', ', class_implements($objAttribute))
            );
        }
    }
protected function saveAttribute($objAttribute, $arrIds, $varData, $strLangCode)
    {
        // Call the serializeData for all simple attributes.
        if ($this->isSimpleAttribute($objAttribute)) {
            /** @var \MetaModels\Attribute\ISimple $objAttribute */
            $varData = $objAttribute->serializeData($varData);
        }

        $arrData = array();
        foreach ($arrIds as $intId) {
            $arrData[$intId] = $varData;
        }

        // Check for translated fields first, then for complex and save as simple then.
        if ($strLangCode && $this->isTranslatedAttribute($objAttribute)) {
            /** @var ITranslated $objAttribute */
            $objAttribute->setTranslatedDataFor($arrData, $strLangCode);
        } elseif ($this->isComplexAttribute($objAttribute)) {
            // Complex saving.
            $objAttribute->setDataFor($arrData);
        } elseif ($this->isSimpleAttribute($objAttribute)) {
            $objAttribute->setDataFor($arrData);
        } else {
            throw new \RuntimeException(
                'Unknown attribute type, can not save. Interfaces implemented: ' .
                implode(', ', class_implements($objAttribute))
            );
        }
    }
protected function saveAttribute ( $ objAttribute , $ arrIds , $ varData , $ strLangCode ) { // Call the serializeData for all simple attributes. if ( $ this -> isSimpleAttribute ( $ objAttribute ) ) { /** @var \MetaModels\Attribute\ISimple $objAttribute */ $ varData = $ objAttribute -> serializeData ( $ varData ) ; } $ arrData = array ( ) ; foreach ( $ arrIds as $ intId ) { $ arrData [ $ intId ] = $ varData ; } // Check for translated fields first, then for complex and save as simple then. if ( $ strLangCode && $ this -> isTranslatedAttribute ( $ objAttribute ) ) { /** @var ITranslated $objAttribute */ $ objAttribute -> setTranslatedDataFor ( $ arrData , $ strLangCode ) ; } elseif ( $ this -> isComplexAttribute ( $ objAttribute ) ) { // Complex saving. $ objAttribute -> setDataFor ( $ arrData ) ; } elseif ( $ this -> isSimpleAttribute ( $ objAttribute ) ) { $ objAttribute -> setDataFor ( $ arrData ) ; } else { throw new \ RuntimeException ( 'Unknown attribute type, can not save. Interfaces implemented: ' . implode ( ', ' , class_implements ( $ objAttribute ) ) ) ; } }
Update an attribute for the given ids with the given data.

@param IAttribute $objAttribute The attribute to save.

@param array      $arrIds       The ids of the rows that shall be updated.

@param mixed      $varData      The data to save in raw data.

@param string     $strLangCode  The language code to save.

@return void

@throws \RuntimeException When an unknown attribute type is encountered.
Update an attribute for the given ids with the given data .