static function fetchByObjectAttributeID( $id, $contentobjectAttributeID, $asObject = true )
 {
     return eZPersistentObject::fetchObject( eZInformationCollectionAttribute::definition(),
                                             null,
                                             array( 'informationcollection_id' => $id,
                                                    'contentobject_attribute_id' => $contentobjectAttributeID ),
                                             $asObject );
 }
 static function cleanup()
 {
     $db = eZDB::instance();
     $db->begin();
     eZInformationCollectionAttribute::cleanup();
     $db->query( "DELETE FROM ezinfocollection" );
     $db->commit();
 }
Exemple #3
0
 /**
  * Fetches the HTTP POST input and stores it in the data instance
  *
  * @param eZInformationCollection $collection
  * @param eZInformationCollectionAttribute $collectionAttribute
  * @param eZHTTPTool $http
  * @param string $base
  * @param eZContentObjectAttribute $contentObjectAttribute
  *
  * @return bool
  */
 function fetchCollectionAttributeHTTPInput($collection, $collectionAttribute, $http, $base, $contentObjectAttribute)
 {
     if ($http->hasPostVariable($base . self::OIB_VARIABLE . $contentObjectAttribute->attribute("id"))) {
         $data = trim($http->postVariable($base . self::OIB_VARIABLE . $contentObjectAttribute->attribute("id")));
         $collectionAttribute->setAttribute(self::OIB_FIELD, $data);
         return true;
     }
     return false;
 }
             }
         }
     }
 }
 $collectionAttributes = array();
 $db = eZDB::instance();
 $db->begin();
 foreach (array_keys($contentObjectAttributes) as $key) {
     $contentObjectAttribute = $contentObjectAttributes[$key];
     $contentClassAttribute = $contentObjectAttribute->contentClassAttribute();
     if ($contentClassAttribute->attribute('is_information_collector')) {
         // Collect the information for the current attribute
         if ($newCollection) {
             $collectionAttribute = eZInformationCollectionAttribute::create($collection->attribute('id'));
         } else {
             $collectionAttribute = eZInformationCollectionAttribute::fetchByObjectAttributeID($collection->attribute('id'), $contentObjectAttribute->attribute('id'));
         }
         if ($collectionAttribute and $contentObjectAttribute->collectInformation($collection, $collectionAttribute, $http, "ContentObjectAttribute")) {
             if ($canCollect) {
                 $collectionAttribute->store();
             }
         } else {
         }
         $collectionAttributes[$contentObjectAttribute->attribute('id')] = $collectionAttribute;
     }
 }
 $db->commit();
 if ($canCollect) {
     $collection->sync();
     $sendEmail = eZInformationCollection::sendOutEmail($object);
     $redirectToNodeID = false;
 /**
  * Fetches the HTTP collected information for the content object attribute.
  *
  * @param eZInformationCollection $collection
  * @param eZInformationCollectionAttribute $collectionAttribute
  * @param eZHTTPTool $http
  * @param string $base
  * @param eZContentObjectAttribute $objectAttribute
  *
  * @return bool
  */
 public function fetchCollectionAttributeHTTPInput($collection, $collectionAttribute, $http, $base, $objectAttribute)
 {
     $id = $objectAttribute->attribute('id');
     $classContent = $objectAttribute->classContent();
     $nameArray = array();
     $selectionName = join('_', array($base, 'sckenhancedselection_selection', $id));
     if ($http->hasPostVariable($selectionName)) {
         $selection = $http->postVariable($selectionName);
         if (count($selection) > 0) {
             $options = $classContent['options'];
             if (isset($classContent['db_options']) && count($classContent['db_options']) > 0) {
                 $options = $classContent['db_options'];
             }
             foreach ($options as $option) {
                 if (in_array($option['identifier'], $selection)) {
                     $nameArray[] = $option['name'];
                 }
             }
             unset($options);
         }
     }
     $delimiter = $classContent['delimiter'];
     if (empty($delimiter)) {
         $delimiter = ', ';
     }
     $dataText = join($delimiter, $nameArray);
     $collectionAttribute->setAttribute('data_text', $dataText);
     return true;
 }