예제 #1
0
 public function process()
 {
     if (!$this->validate()) {
         return $this->failure();
     }
     $this->resource->fromArray($this->getProperties());
     if ($this->resource->save() === false) {
         return $this->failure($this->modx->lexicon('resource_err_save'));
     }
     return $this->success();
 }
예제 #2
0
 public function process(array $scriptProperties = array())
 {
     $placeholders = array();
     $reloadData = $this->getReloadData();
     $loaded = $this->getResource();
     if ($loaded !== true) {
         return $this->failure($loaded);
     }
     if (is_array($reloadData) && !empty($reloadData)) {
         $this->resource->fromArray($reloadData);
     }
     /* get context */
     $this->setContext();
     /* check for locked status */
     $this->checkForLocks();
     /* set template overrides */
     if (isset($scriptProperties['template'])) {
         $this->resource->set('template', $scriptProperties['template']);
     }
     $this->setParent();
     /* invoke OnDocFormRender event */
     $this->fireOnRenderEvent();
     /* check permissions */
     $this->setPermissions();
     /* register FC rules */
     $this->resourceArray = $this->resource->toArray();
     $overridden = $this->checkFormCustomizationRules($this->resource);
     $this->resourceArray = array_merge($this->resourceArray, $overridden);
     $this->resourceArray['published'] = intval($this->resourceArray['published']) == 1 ? true : false;
     $this->resourceArray['hidemenu'] = intval($this->resourceArray['hidemenu']) == 1 ? true : false;
     $this->resourceArray['isfolder'] = intval($this->resourceArray['isfolder']) == 1 ? true : false;
     $this->resourceArray['richtext'] = intval($this->resourceArray['richtext']) == 1 ? true : false;
     $this->resourceArray['searchable'] = intval($this->resourceArray['searchable']) == 1 ? true : false;
     $this->resourceArray['cacheable'] = intval($this->resourceArray['cacheable']) == 1 ? true : false;
     $this->resourceArray['deleted'] = intval($this->resourceArray['deleted']) == 1 ? true : false;
     $this->resourceArray['uri_override'] = intval($this->resourceArray['uri_override']) == 1 ? true : false;
     if (!empty($this->resourceArray['parent'])) {
         if ($this->parent->get('id') == $this->resourceArray['parent']) {
             $this->resourceArray['parent_pagetitle'] = $this->parent->get('pagetitle');
         } else {
             $overriddenParent = $this->modx->getObject('modResource', $this->resourceArray['parent']);
             if ($overriddenParent) {
                 $this->resourceArray['parent_pagetitle'] = $overriddenParent->get('pagetitle');
             }
         }
     }
     /* get TVs */
     $this->resource->set('template', $this->resourceArray['template']);
     $this->prepareResource();
     $this->loadTVs($reloadData);
     $this->getPreviewUrl();
     /* single-use token for reloading resource */
     $this->setResourceToken();
     $this->setPlaceholder('resource', $this->resource);
     return $placeholders;
 }
예제 #3
0
 public function updateResource($id, $tempDir)
 {
     include_once MODX_BASE_PATH . 'assets/lib/MODxAPI/modResource.php';
     @rename(MODX_BASE_PATH . 'assets/images/' . $tempDir, MODX_BASE_PATH . 'assets/images/' . $this->params['contentDir'] . '/' . $id);
     $doc = new \modResource($this->modx);
     $fields = $doc->edit($id)->toArray();
     foreach ($fields as &$field) {
         if (is_string($field)) {
             $field = str_replace($tempDir, $this->params['contentDir'] . '/' . $id, $field);
         }
     }
     $doc->fromArray($fields)->save(false, true);
 }