Example #1
0
 /**
  * Serialize the `body` property using its editor.
  */
 protected function lazy_get_properties()
 {
     global $core;
     $properties = parent::lazy_get_properties();
     if (isset($properties['body']) && isset($properties['editor'])) {
         $editor = $core->editors[$properties['editor']];
         $properties['body'] = $editor->serialize($properties['body']);
     }
     return $properties;
 }
Example #2
0
 protected function process()
 {
     global $core;
     $record = null;
     $oldurl = null;
     if ($this->record) {
         $record = $this->record;
         $pattern = $record->url_pattern;
         if (!Pattern::is_pattern($pattern)) {
             $oldurl = $pattern;
         }
     }
     $rc = parent::process();
     $nid = $rc['key'];
     #
     # update contents
     #
     /* var $contents_model ContentModel */
     $preserve = array();
     $contents_model = $this->module->model('contents');
     $contents = $this->request['contents'];
     $editor_ids = $this->request['editors'];
     if ($contents && $editor_ids) {
         foreach ($contents as $content_id => $unserialized_content) {
             if (!$unserialized_content) {
                 continue;
             }
             $editor_id = $editor_ids[$content_id];
             $editor = $core->editors[$editor_id];
             $content = $editor->serialize($unserialized_content);
             if (!$content) {
                 continue;
             }
             $preserve[$content_id] = $content_id;
             $values = array('content' => $content, 'editor' => $editor_id);
             $contents_model->insert(array('pageid' => $nid, 'contentid' => $content_id) + $values, array('on duplicate' => $values));
         }
     }
     #
     # we delete possible remaining content for the page
     #
     $arr = $contents_model->filter_by_pageid($nid);
     if ($preserve) {
         $arr->where(array('!contentid' => $preserve));
     }
     $arr->delete();
     if ($record && $oldurl) {
         $record = $this->module->model[$nid];
         $newurl = $record->url;
         if ($newurl && $newurl != $oldurl) {
             new Page\MoveEvent($record, $oldurl, $newurl);
         }
     }
     return $rc;
 }
Example #3
0
 protected function process()
 {
     $rc = parent::process();
     $nid = $rc['key'];
     if ($this->request['items']) {
         $w = 0;
         foreach ($this->request['items'] as $item_properties) {
             // TODO-20140226: sanitize item properties
             $item = Item::from(array('nid' => $nid, 'weight' => ++$w) + $item_properties);
             $item->save();
         }
     }
     return $rc;
 }
Example #4
0
 protected function process()
 {
     $rc = parent::process();
     $photos = $this->request['photos'];
     $photos_model = $this->module->model('photos');
     if ($photos) {
         $w = 0;
         $nid = $rc['key'];
         foreach ($photos as $id) {
             $photo = $photos_model[$id];
             $photo->nid = $nid;
             $photo->weight = $w++;
             $photo->save();
         }
     }
     return $rc;
 }
 public function __invoke(Request $request)
 {
     global $core;
     $this->module = $core->modules['nodes'];
     return parent::__invoke($request);
 }