Beispiel #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;
 }
     } else {
         CMS_grandFather::raiseError('Can\'t get block class type ' . $blockClass . ' to update content');
         $view->setActionMessage($cms_language->getJsMessage(MESSAGE_PAGE_ERROR_UPDATE_BLOCK_CONTENT));
     }
     break;
 case 'update-block-link':
     //update block content
     if (class_exists($blockClass)) {
         $cms_block = new $blockClass();
         $cms_block->initializeFromBasicAttributes($blockId);
         //get old datas
         $old_data = $cms_block->getRawData($cms_page->getID(), $cs, $rowTag, RESOURCE_LOCATION_EDITION, false);
         //Link
         $link = $old_data['value'] ? new CMS_href($old_data['value']) : new CMS_href();
         $linkDialog = new CMS_dialog_href($link);
         $linkDialog->create($linktext, MOD_STANDARD_CODENAME, $cms_page->getID());
         $link = $linkDialog->getHref();
         $data['value'] = $link->getTextDefinition();
         $cms_block->writeToPersistence($cms_page->getID(), $cs, $rowTag, RESOURCE_LOCATION_EDITION, false, $data);
         //instanciate the clientspace
         $clientSpace = CMS_moduleClientSpace_standard_catalog::getByTemplateAndTagID($tpl, $cs, $visualMode == PAGE_VISUALMODE_FORM);
         //get block's row from CS
         $row = $clientSpace->getRow($rowId, $rowTag);
         if ($row) {
             //get row datas
             $datas = $row->getData($cms_language, $cms_page, $clientSpace, PAGE_VISUALMODE_FORM);
             //instanciate modules treatments for page content tags
             $modulesTreatment = new CMS_modulesTags(MODULE_TREATMENT_PAGECONTENT_TAGS, PAGE_VISUALMODE_FORM, $cms_page);
             $modulesTreatment->setTreatmentParameters(array("language" => $cms_language, 'replaceVars' => true));
             $modulesTreatment->setDefinition($datas);
             $datas = $modulesTreatment->treatContent(true);