Ejemplo n.º 1
0
 /**
  * Preview single entry
  * @param  integer $id
  * @return Response
  */
 public function show($id)
 {
     if (Channel::name()) {
         $entry = Entry::inChannel(Channel::name())->where('id', $id)->first();
     } else {
         $entry = Entry::where('id', $id)->first();
     }
     if ($entry) {
         return Response::json(array('entry' => $entry->toArray()));
     } else {
         return Response::json(array('error' => true, 'code' => 404), 404);
     }
 }
Ejemplo n.º 2
0
 /**
  * Save all entry fields
  * @param  integer $entryId
  * @param  mixed   $data
  * @return mixed
  */
 public function saveAllForEntry($entryId, $data)
 {
     // Get entry and channel
     $entry = Entry::with(array('author', 'fields'))->where('id', $entryId)->first();
     $entry = new Entities\EntryEntity($entry->toArray());
     $channel = $this->channels->find($entry->channel);
     // Add specific entry fields
     $channel->addEntryFields($entry);
     foreach ($channel->fields as $field) {
         if ($field->save != 'direct') {
             // Get value from form
             $value = array_get($data, $field->name);
             // Set field entry
             $field->set('entry', $entry);
             // Pass through to field save method
             $value = $field->save($value);
             // And save accordinly
             $this->createOrUpdate($entryId, $field->name, $value, $field);
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * Update exiting content entry
  * @param  integer $id
  * @param  array   $data
  * @return boolean
  */
 public function update($id, $data = array())
 {
     // First validate the input
     if ($this->validation->passes($data)) {
         // Set the data
         $entry = Entry::find($id);
         $entry->fill(array('title' => array_get($data, 'title'), 'body' => array_get($data, 'body'), 'channel' => array_get($data, 'channel'), 'status' => $this->inputStatus($data), 'meta_title' => array_get($data, 'meta_title'), 'meta_keywords' => array_get($data, 'meta_keywords'), 'meta_description' => array_get($data, 'meta_description')));
         // Slug
         if ($slug = array_get($data, 'slug') and $slug != $entry->slug) {
             $entry->slug = Str::slug($slug);
         }
         // Template
         $entry->template = str_replace("-", "_", Str::slug(array_get($data, 'template')));
         // Save custom fields
         $this->fields->saveAllForEntry($id, $data);
         // Also save taxonomies
         $this->terms->saveAllForEntry($id, $data);
         // Log it
         Log::debug('[KRUSTR] [ENTRYREPOSITORY] Entry [' . $id . '] was updated.');
         return $entry->save();
     }
     // Set errors
     $this->errors = $this->validation->errors();
     return false;
 }