Пример #1
0
 /**
  * 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;
 }