/** * set object Values * * @param array $values : the POST result values * @param string $prefixname : the prefix used for post names * @param boolean newFormat : new automne v4 format (default false for compatibility) * @param integer $objectID : the current object id. Must be set, but default is blank for compatibility with other objects * @return boolean true on success, false on failure * @access public */ function setValues($values, $prefixName, $newFormat = false, $objectID = '') { if (!sensitiveIO::isPositiveInteger($objectID)) { $this->raiseError('ObjectID must be a positive integer : ' . $objectID); return false; } //get module codename $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID()); //create a sub prefix for CMS_dialog_href object $subPrefixName = 'href' . $prefixName . $this->_field->getID() . '_0'; //create object CMS_href & CMS_dialog_href $hrefDialog = new CMS_dialog_href(new CMS_href($this->_subfieldValues[0]->getValue()), $subPrefixName); if ($newFormat) { $hrefDialog->create($values[$subPrefixName], $moduleCodename, $objectID, $this->_field->getID()); if ($hrefDialog->hasError()) { return false; } $href = $hrefDialog->getHREF(); if (!$this->_subfieldValues[0]->setValue($href->getTextDefinition())) { return false; } $content = array('datas' => array('polymodFieldsValue[' . $subPrefixName . ']' => sensitiveIO::decodeEntities($this->_subfieldValues[0]->getValue()))); $view = CMS_view::getInstance(); $view->addContent($content); } else { //check for http:// if ($values[$subPrefixName . 'link_external'] && io::strpos($values[$subPrefixName . 'link_external'], 'http://') !== 0) { $values[$subPrefixName . 'link_external'] = 'http://' . $values[$subPrefixName . 'link_external']; } $hrefDialog->doPost($moduleCodename, $objectID, $this->_field->getID()); if ($hrefDialog->hasError()) { return false; } $href = $hrefDialog->getHREF(); if (!$this->_subfieldValues[0]->setValue($href->getTextDefinition())) { return false; } } return true; }