public function saveContent(Content $content, $comment = null)
    {
        $contenttype = $content->contenttype;
        $fieldvalues = $content->values;

        if (empty($contenttype)) {
            $this->app['logger.system']->error('Contenttype is required for ' . __FUNCTION__, ['event' => 'exception']);
            throw new StorageException('Contenttype is required for ' . __FUNCTION__);
        }

        // Test to see if this is a new record, or an update
        if (empty($fieldvalues['id'])) {
            $create = true;
        } else {
            $create = false;
        }

        // We need to verify if the slug is unique. If not, we update it.
        $getId = $create ? null : $fieldvalues['id'];
        $fieldvalues['slug'] = $this->getUri($fieldvalues['slug'], $getId, $contenttype['slug'], false, false);

        // Update the content object
        $content->setValues($fieldvalues);

        // Dispatch pre-save event
        if (! $this->inDispatcher && $this->app['dispatcher']->hasListeners(StorageEvents::PRE_SAVE)) {
            $event = new StorageEvent($content, ['contenttype' => $contenttype, 'create' => $create]);
            $this->app['dispatcher']->dispatch(StorageEvents::PRE_SAVE, $event);
        }

        // Decide whether to insert a new record, or update an existing one.
        if ($create) {
            $this->insertContent($content, $comment);
        } else {
            $this->updateContent($content, $comment);
        }

        // Update taxonomy and record relationships
        $this->updateTaxonomy($contenttype, $content->values['id'], $content->taxonomy);
        $this->updateRelation($contenttype, $content->values['id'], $content->relation);

        // Dispatch post-save event
        if (!$this->inDispatcher && $this->app['dispatcher']->hasListeners(StorageEvents::POST_SAVE)) {
            // Block loops
            $this->inDispatcher = true;

            $event = new StorageEvent($content, ['contenttype' => $contenttype, 'create' => $create]);
            $this->app['dispatcher']->dispatch(StorageEvents::POST_SAVE, $event);

            // Re-enable the dispatcher
            $this->inDispatcher = false;
        }

        return $content->values['id'];
    }
public function saveContent(Content $content, $comment = null)
    {
        $contenttype = $content->contenttype;
        $fieldvalues = $content->values;

        if (empty($contenttype)) {
            $this->app['logger.system']->error('Contenttype is required for ' . __FUNCTION__, ['event' => 'exception']);
            throw new StorageException('Contenttype is required for ' . __FUNCTION__);
        }

        // Test to see if this is a new record, or an update
        if (empty($fieldvalues['id'])) {
            $create = true;
        } else {
            $create = false;
        }

        // We need to verify if the slug is unique. If not, we update it.
        $getId = $create ? null : $fieldvalues['id'];
        $fieldvalues['slug'] = $this->getUri($fieldvalues['slug'], $getId, $contenttype['slug'], false, false);

        // Update the content object
        $content->setValues($fieldvalues);

        // Dispatch pre-save event
        if (! $this->inDispatcher && $this->app['dispatcher']->hasListeners(StorageEvents::PRE_SAVE)) {
            $event = new StorageEvent($content, ['contenttype' => $contenttype, 'create' => $create]);
            $this->app['dispatcher']->dispatch(StorageEvents::PRE_SAVE, $event);
        }

        // Decide whether to insert a new record, or update an existing one.
        if ($create) {
            $this->insertContent($content, $comment);
        } else {
            $this->updateContent($content, $comment);
        }

        // Update taxonomy and record relationships
        $this->updateTaxonomy($contenttype, $content->values['id'], $content->taxonomy);
        $this->updateRelation($contenttype, $content->values['id'], $content->relation);

        // Dispatch post-save event
        if (!$this->inDispatcher && $this->app['dispatcher']->hasListeners(StorageEvents::POST_SAVE)) {
            // Block loops
            $this->inDispatcher = true;

            $event = new StorageEvent($content, ['contenttype' => $contenttype, 'create' => $create]);
            $this->app['dispatcher']->dispatch(StorageEvents::POST_SAVE, $event);

            // Re-enable the dispatcher
            $this->inDispatcher = false;
        }

        return $content->values['id'];
    }
public function saveContent ( Content $ content , $ comment = null ) { $ contenttype = $ content -> contenttype ; $ fieldvalues = $ content -> values ; if ( empty ( $ contenttype ) ) { $ this -> app [ 'logger.system' ] -> error ( 'Contenttype is required for ' . __FUNCTION__ , [ 'event' => 'exception' ] ) ; throw new StorageException ( 'Contenttype is required for ' . __FUNCTION__ ) ; } // Test to see if this is a new record, or an update if ( empty ( $ fieldvalues [ 'id' ] ) ) { $ create = true ; } else { $ create = false ; } // We need to verify if the slug is unique. If not, we update it. $ getId = $ create ? null : $ fieldvalues [ 'id' ] ; $ fieldvalues [ 'slug' ] = $ this -> getUri ( $ fieldvalues [ 'slug' ] , $ getId , $ contenttype [ 'slug' ] , false , false ) ; // Update the content object $ content -> setValues ( $ fieldvalues ) ; // Dispatch pre-save event if ( ! $ this -> inDispatcher && $ this -> app [ 'dispatcher' ] -> hasListeners ( StorageEvents :: PRE_SAVE ) ) { $ event = new StorageEvent ( $ content , [ 'contenttype' => $ contenttype , 'create' => $ create ] ) ; $ this -> app [ 'dispatcher' ] -> dispatch ( StorageEvents :: PRE_SAVE , $ event ) ; } // Decide whether to insert a new record, or update an existing one. if ( $ create ) { $ this -> insertContent ( $ content , $ comment ) ; } else { $ this -> updateContent ( $ content , $ comment ) ; } // Update taxonomy and record relationships $ this -> updateTaxonomy ( $ contenttype , $ content -> values [ 'id' ] , $ content -> taxonomy ) ; $ this -> updateRelation ( $ contenttype , $ content -> values [ 'id' ] , $ content -> relation ) ; // Dispatch post-save event if ( ! $ this -> inDispatcher && $ this -> app [ 'dispatcher' ] -> hasListeners ( StorageEvents :: POST_SAVE ) ) { // Block loops $ this -> inDispatcher = true ; $ event = new StorageEvent ( $ content , [ 'contenttype' => $ contenttype , 'create' => $ create ] ) ; $ this -> app [ 'dispatcher' ] -> dispatch ( StorageEvents :: POST_SAVE , $ event ) ; // Re-enable the dispatcher $ this -> inDispatcher = false ; } return $ content -> values [ 'id' ] ; }
Save a record.

@param Content $content
@param string  $comment

@throws \Bolt\Exception\StorageException

@return int
Save a record .