Ejemplo n.º 1
0
 /**
  * Commits this Entry's data to the database, by first finding the default
  * data for this `Entry` and then utilising the `EntryManager`'s
  * add or edit function. The `EntryManager::edit` function is used if
  * the current `Entry` object has an ID, otherwise `EntryManager::add`
  * is used.
  *
  * @see toolkit.Entry#findDefaultData()
  * @return boolean
  *  true if the commit was successful, false otherwise.
  */
 public function commit()
 {
     $this->findDefaultData();
     return $this->get('id') ? EntryManager::edit($this) : EntryManager::add($this);
 }
            $newPublishTimestamp = $date->get(true, false);
        }
        if (isset($_FILES) && is_array($_FILES['fields']) && !empty($_FILES['fields'])) {
            foreach ($_FILES['fields'] as $type => $f) {
                $custom = $f['custom'];
                foreach ($f['custom'] as $name => $list) {
                    foreach ($list as $id => $info) {
                        $data['custom'][$name]['files'][$id][$type] = $info;
                    }
                }
            }
        }
        $change_handle = $Admin->getConfigVar("allow_primary_field_handles_to_change", "symphony");
        $change_handle = intval($change_handle);
        $change_handle = $change_handle == 1 ? true : false;
        $retval = $entryManager->edit($entry_id, $data['custom'], $newPublishTimestamp, 'real', $change_handle);
        if (!$retval) {
            define("__SYM_DB_INSERT_FAILED__", true);
        } else {
            $Admin->flush_cache(array("entries", "authors"));
            ###
            # Delegate: Edit
            # Description: Editing an entry. Section and Entry ID are provided.
            $CampfireManager->notifyMembers('Edit', CURRENTPAGE, array('section_id' => $section_id, 'entry_id' => $entry_id));
            if (@array_key_exists("save", $_POST['action'])) {
                General::redirect($Admin->getCurrentPageURL() . "&_sid={$section_id}&id={$entry_id}&_f=saved");
            }
            General::redirect(URL . "/symphony/?page=/publish/section/&_sid={$section_id}");
        }
    }
}
Ejemplo n.º 3
0
 function commit()
 {
     $this->findDefaultData();
     $EntryManager = new EntryManager($this->_engine);
     return $this->get('id') ? $EntryManager->edit($this) : $EntryManager->add($this);
 }
Ejemplo n.º 4
0
 public function commit()
 {
     $options = $this->options();
     $existing = array();
     $section = SectionManager::fetch($options['section']);
     if ((int) $options['unique-field'] > 0) {
         $field = FieldManager::fetch($options['unique-field']);
         if (!empty($field)) {
             foreach ($this->_entries as $index => $current) {
                 $entry = $current['entry'];
                 $data = $entry->getData($options['unique-field']);
                 $where = $joins = $group = null;
                 $field->buildDSRetrievalSQL($data, $joins, $where);
                 $group = $field->requiresSQLGrouping();
                 $entries = EntryManager::fetch(null, $options['section'], 1, null, $where, $joins, $group, false, null, false);
                 if (is_array($entries) && !empty($entries)) {
                     $existing[$index] = $entries[0]['id'];
                 } else {
                     $existing[$index] = null;
                 }
             }
         }
     }
     foreach ($this->_entries as $index => $current) {
         $entry = $current['entry'];
         $values = $current['values'];
         $date = DateTimeObj::get('Y-m-d H:i:s');
         $dateGMT = DateTimeObj::getGMT('Y-m-d H:i:s');
         $exists = !empty($existing[$index]);
         $skip = $options['can-update'] !== 'yes';
         // Skip entry
         if ($exists && $skip) {
             $entry->set('importer_status', 'skipped');
             ###
             # Delegate: XMLImporterEntryPostSkip
             # Description: Skipping an entry. Entry object is provided.
             Symphony::ExtensionManager()->notifyMembers('XMLImporterEntryPostSkip', '/xmlimporter/importers/run/', array('section' => $section, 'entry' => $entry, 'fields' => $values));
         } elseif ($exists) {
             $entry->set('id', $existing[$index]);
             $entry->set('modification_date', $date);
             $entry->set('modification_date_gmt', $dateGMT);
             ###
             # Delegate: XMLImporterEntryPreEdit
             # Description: Just prior to editing of an Entry.
             Symphony::ExtensionManager()->notifyMembers('XMLImporterEntryPreEdit', '/xmlimporter/importers/run/', array('section' => $section, 'fields' => &$values, 'entry' => &$entry));
             EntryManager::edit($entry);
             $entry->set('importer_status', 'updated');
             ###
             # Delegate: XMLImporterEntryPostEdit
             # Description: Editing an entry. Entry object is provided.
             Symphony::ExtensionManager()->notifyMembers('XMLImporterEntryPostEdit', '/xmlimporter/importers/run/', array('section' => $section, 'entry' => $entry, 'fields' => $values));
         } else {
             $entry->set('creation_date', $date);
             $entry->set('creation_date_gmt', $dateGMT);
             $entry->set('modification_date', $date);
             $entry->set('modification_date_gmt', $dateGMT);
             ###
             # Delegate: XMLImporterEntryPreCreate
             # Description: Just prior to creation of an Entry. Entry object provided
             Symphony::ExtensionManager()->notifyMembers('XMLImporterEntryPreCreate', '/xmlimporter/importers/run/', array('section' => $section, 'fields' => &$values, 'entry' => &$entry));
             EntryManager::add($entry);
             $entry->set('importer_status', 'created');
             ###
             # Delegate: XMLImporterEntryPostCreate
             # Description: Creation of an Entry. New Entry object is provided.
             Symphony::ExtensionManager()->notifyMembers('XMLImporterEntryPostCreate', '/xmlimporter/importers/run/', array('section' => $section, 'entry' => $entry, 'fields' => $values));
         }
     }
 }