File Manager

Current Directory: /home/astoriaah/www/administrator/components/com_sh404sef/models
Viewing File: /home/astoriaah/www/administrator/components/com_sh404sef/models/editnotfound.php
<?php /** * sh404SEF - SEO extension for Joomla! * * @author Yannick Gaultier * @copyright (c) Yannick Gaultier - Weeblr llc - 2022 * @package sh404SEF * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @version 4.24.1.4308 * @date 2022-05-31 */ // Security check to ensure this file is being included by a parent file. if (!defined('_JEXEC')) die('Direct Access to this location is not allowed.'); class Sh404sefModelEditnotfound extends Sh404sefClassBaseeditmodel { protected $_context = 'sh404sef.editnotfound'; protected $_defaultTable = 'aliases'; protected $_alias = null; /** * Create or update a record to * DB from POST data * * Overriden from base model * to also save metas and aliases * * @param array $dataArray an array holding data to save. If empty, $_POST is used * @return integer id of created or updated record */ public function save( $dataArray = null) { // use parent save method to save the url itself, from default values $this->_data = is_null( $dataArray) ? JFactory::getApplication()->input->post->getArray() : $dataArray; // save the non-sef/sef pair data $savedId = $this->_save(); // return savedId of the url, will have // been set to 0 if something wrong happened // while saving either url, meta data or aliase return $savedId; } /** * Read a url object from DB * * @param integer $id */ public function getUrl( $id) { $url = JTable::getInstance( 'urls', 'Sh404sefTable'); $url->load( $id); return $url; } /** * Save an alias to the database * * @param integer $type force url type, used when saving a custom url */ private function _save( $type = Sh404sefHelperGeneral::COM_SH404SEF_URLTYPE_ALIAS) { // check for bad data $newUrl = empty($this->_data['newurl']) ? '' : trim($this->_data['newurl']); $id = empty($this->_data['id']) ? '' : intval($this->_data['id']); if (empty( $newUrl) || empty($id)) { return 0; } // read alias, as obtained from original 404 record $url = JTable::getInstance( 'urls', 'Sh404sefTable'); $url->load( $id); // collect errors $error = $url->getError(); if (!empty( $error)) { $this->setError( $error); return 0; } // prepare an alias record to save to db jimport( 'joomla.database.table'); $alias = JTable::getInstance( $this->_defaultTable, 'Sh404sefTable'); $newAlias = array( 'newurl' => $newUrl, 'alias' => $url->oldurl, 'type' => $type); // let table save record $alias->save( $newAlias); // collect errors $error = $alias->getError(); if (!empty( $error)) { $this->setError( $error); return 0; } // now delete the page not found record $url->delete(); // collect errors $error = $url->getError(); if (!empty( $error)) { $this->setError( $error); return 0; } // return what should be a non-zero id return $alias->id; } /** * Returns the default full table name on * which this model operates */ protected function _getTableName() { return '#__sh404sef_aliases'; } }