コード例 #1
0
 /**
  * Executes revert action on content and its draft.
  *
  * @param  AbstractClassContent $content
  * @param  Revision      $draft
  * @param  array         $data
  * @return self
  */
 private function executeRevert(AbstractClassContent $content, Revision $draft, array $data)
 {
     if ($content instanceof ContentSet) {
         if (isset($data['elements']) && true === $data['elements']) {
             $draft->clear();
             foreach ($content->getData() as $element) {
                 $draft->push($element);
             }
         }
     } else {
         foreach ($content->getData() as $key => $element) {
             if (isset($data['elements']) && in_array($key, $data['elements'])) {
                 $draft->{$key} = $content->{$key};
             }
         }
     }
     if (isset($data['parameters'])) {
         foreach ($content->getDefaultParams() as $key => $params) {
             if (in_array($key, $data['parameters'])) {
                 $draft->setParam($key, $content->getParamValue($key));
             }
         }
     }
     return $this;
 }
コード例 #2
0
 /**
  * Prepares draft for commit.
  *
  * @param  AbstractClassContent $content
  * @param  Revision             $draft
  * @param  array                $data
  *
  * @return ClassContentManager
  */
 private function prepareDraftForCommit(AbstractClassContent $content, Revision $draft, array $data)
 {
     if ($content instanceof ContentSet) {
         if (!isset($data['elements']) || false === $data['elements']) {
             $draft->clear();
             foreach ($content->getData() as $element) {
                 $draft->push($element);
             }
         }
     } elseif (AbstractClassContent::STATE_NORMAL === $content->getState()) {
         foreach ($content->getData() as $key => $element) {
             if (!isset($data['elements']) || !in_array($key, $data['elements'])) {
                 $draft->{$key} = $content->{$key};
             }
         }
     }
     if (isset($data['parameters'])) {
         foreach ($content->getAllParams() as $key => $params) {
             if (!in_array($key, $data['parameters'])) {
                 $draft->setParam($key, $content->getParamValue($key));
             }
         }
     }
     if (isset($data['message'])) {
         $draft->setComment($data['message']);
     }
     return $this;
 }
コード例 #3
0
 /**
  * Returns the indexed parameter value.
  * 
  * @param  AbstractClassContent $content      The content flushed.
  * @param  string               $indexedParam The parameter to index.
  * 
  * @return array                              An array of the parameter value and the content owner.
  */
 private static function getParamValue(AbstractClassContent $content, $indexedParam)
 {
     $value = (array) $content->getParamValue($indexedParam);
     $owner = $content;
     return [implode(',', $value), $owner];
 }