/** * Method to provide a shortcut to binding, checking and storing a JTable * instance to the database table. The method will check a row in once the * data has been stored and if an ordering filter is present will attempt to * reorder the table rows based on the filter. The ordering filter is an instance * property name. The rows that will be reordered are those whose value matches * the JTable instance for the property specified. * * @param mixed $src An associative array or object to bind to the JTable instance. * @param string $orderingFilter Filter for the order updating * @param mixed $ignore An optional array or space separated list of properties * to ignore while binding. * * @return boolean True on success. * * @link http://docs.joomla.org/JTable/save * @since 11.1 */ public function save($src, $orderingFilter = '', $ignore = '') { // Attempt to bind the source to the instance. if (!$this->bind($src, $ignore)) { return false; } // Run any sanity checks on the instance and verify that it is ready for storage. if (!$this->check()) { return false; } // Attempt to store the properties to the database table. if (!$this->store()) { return false; } // Attempt to check the row in, just in case it was checked out. if (!$this->checkin()) { return false; } // If an ordering filter is set, attempt reorder the rows in the table based on the filter and value. if ($orderingFilter) { $filterValue = $this->{$orderingFilter}; $this->reorder($orderingFilter ? $this->_db->quoteName($orderingFilter) . ' = ' . $this->_db->Quote($filterValue) : ''); } // Set the error to empty and return true. $this->setError(''); return true; }
/** * method to update the user id of the sample data content to the new rand user id * * @param JDatabaseDriver $db Database connector object $db* * * @return void * * @since 3.0 */ protected function postInstallSampleData($db) { // Create the ID for the root user $userId = self::getUserId(); // Update all created_by field of the tables with the random user id // categories (created_user_id), contact_details, content, newsfeeds, weblinks $updates_array = array('categories' => 'created_user_id', 'contact_details' => 'created_by', 'content' => 'created_by', 'newsfeeds' => 'created_by', 'weblinks' => 'created_by'); foreach ($updates_array as $table => $field) { $db->setQuery('UPDATE ' . $db->quoteName('#__' . $table) . ' SET ' . $db->quoteName($field) . ' = ' . $db->Quote($userId)); $db->execute(); } }