/** * Overrides modElement::save to add custom error logging and fire * modX-specific events. * * {@inheritdoc} */ public function save($cacheFlag = null) { $isNew = $this->isNew(); if ($this->xpdo instanceof modX) { $this->xpdo->invokeEvent('OnChunkBeforeSave',array( 'mode' => $isNew ? modSystemEvent::MODE_NEW : modSystemEvent::MODE_UPD, 'chunk' => &$this, 'cacheFlag' => $cacheFlag, )); } $saved = parent :: save($cacheFlag); if ($saved && $this->xpdo instanceof modX) { $this->xpdo->invokeEvent('OnChunkSave',array( 'mode' => $isNew ? modSystemEvent::MODE_NEW : modSystemEvent::MODE_UPD, 'chunk' => &$this, 'cacheFlag' => $cacheFlag, )); } else if (!$saved && !empty($this->xpdo->lexicon)) { $msg = $isNew ? $this->xpdo->lexicon('chunk_err_create') : $this->xpdo->lexicon('chunk_err_save'); $this->xpdo->log(xPDO::LOG_LEVEL_ERROR,$msg.$this->toArray()); } return $saved; }
/** * {@inheritDoc} * @return mixed */ public function process() { if (!$this->object) { $this->element->setProperties($this->getData()); $this->element->save(); } else { /* Run the beforeSave method and allow stoppage */ $canSave = $this->beforeSave(); if ($canSave !== true) { return $this->failure($canSave); } $this->object->setProperties($this->getProperty('data')); if ($this->saveObject() == false) { return $this->failure($this->modx->lexicon($this->objectType . '_err_save')); } } $this->logManagerAction(); return $this->success(); }