File Manager

Current Directory: /home/astoriaah/www/old15/administrator/components/com_sh404sef/controllers
Viewing File: /home/astoriaah/www/old15/administrator/components/com_sh404sef/controllers/metas.php
<?php /** * sh404SEF - SEO extension for Joomla! * * @author Yannick Gaultier * @copyright (c) Yannick Gaultier 2014 * @package sh404SEF * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @version 4.4.4.1791 * @date 2014-07-01 */ // 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 Sh404sefControllerMetas extends Sh404sefClassBasecontroller { protected $_context = 'com_sh404sef.metas'; protected $_defaultModel = 'urls'; protected $_defaultView = 'metas'; protected $_defaultController = 'metas'; protected $_defaultTask = ''; protected $_defaultLayout = 'default'; protected $_returnController = 'metas'; protected $_returnTask = ''; protected $_returnView = 'metas'; protected $_returnLayout = 'default'; /** * Save a list of meta data as edited by * user in backend */ public function save() { // first check if anything was modified $originalMd5 = JRequest::getString( 'contentcs'); $dataSet = array(); $ids = JRequest::getVar( 'metaid', array(0), 'post', 'array' ); $titles = JRequest::getVar( 'metatitle', array(), 'post', 'array' ); $descs = JRequest::getVar( 'metadesc', array(), 'post', 'array' ); $newurls = JRequest::getVar( 'newurls', array(), 'post', 'array' ); // calculate md5 of incoming data and compare to stored value foreach( $ids as $id => $value) { $t = array(); $t['meta_id'] = $value; $t['metatitle'] = $titles[$id]; $t['metadesc'] = $descs[$id]; $t['newurl'] = $newurls[$id]; $dataSet[] = $t; } $newMd5 = Sh404sefHelperGeneral::getDataMD5( $dataSet, array( 'metatitle', 'metadesc'), $asObject= false); $dataModified = $originalMd5 != $newMd5; // if nothing changed, display message and return to meta data list if ($dataModified) { // we did change something, ask model to save it $model = $this->getModel( 'metas', 'Sh404sefModel'); $model->saveSet( $dataSet); // check errors and display if not ajax call $error = $model->getError(); if (!empty($error)) { $this->setError( $error); } } else { // did not change data, display that $this->setError( JText::_('COM_SH404SEF_DATA_NOT_MODIFIED')); } // check if ajax call, we'll return differently $isAjax = JRequest::getInt( 'shajax') == 1; // finally return if ($isAjax) { // ajax : send xml response $this->display(); } else { // not ajax, enqueue message and go back to list $this->enqueuemessages( array( $error), 'error'); $this->setRedirect( $this->_getDefaultRedirect()); } } /** * Handles confirmation for "Purge urls" action * */ public function confirmpurge() { // use actual method shared with "purge selected" feature $this->_doConfirmPurge( 'all'); } /** * Handles confirmation for "Purge selected urls" action * */ public function confirmpurgeselected() { // use actual method shared with "purge" feature $this->_doConfirmPurge( 'selected'); } /** * Hook for the "confirmed" task, until our * confirm view is a bit more flexible */ public function delete() { $this->confirmedDeleteMetas(); } /** * Handles actions confirmed through the confirmation box */ public function confirmedDeleteMetas() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // collect type of purge to make $type = JRequest::getCmd( 'delete_type'); switch($type) { case 'all': break; case 'selected': break; default: $this->setError('Invalid data'); $this->display(); break; } // now perform meta data deletion // get the model to do it, actually // Get/Create the model if ($model = $this->getModel( 'metas', 'Sh404sefModel')) { // store initial context in model $model->setContext( 'com_sh404sef.metas.metas.default'); // call the delete method on our list $model->purgeMetas( $type); // check errors and enqueue them for display if any $error = $model->getError(); if (!empty($error)) { $this->setError( $error); } } // return result to caller $this->display(); } public function import() { } public function export() { } /** * Redirect to a confirmation page showing in * a popup window */ private function _doConfirmPurge( $type = 'allmeta') { // Set the view name and create the view object $viewName = 'confirm'; $document =JFactory::getDocument(); $viewType = $document->getType(); $viewLayout = JRequest::getCmd( 'layout', $this->_defaultLayout ); $view = $this->getView( $viewName, $viewType, '', array( 'base_path'=>$this->basePath)); // and who's gonna handle the request $view->actionController = $this->_defaultController; // Get/Create the model if ($model = $this->getModel( 'metas', 'Sh404sefModel')) { // store context of the main url view in the model $model->setContext( 'com_sh404sef.metas.metas.default'); // Push the model into the view (as default) $view->setModel($model, true); } // tell it what to display // we only purge automatic sef urls, count that $numberOfMetaRecords = $model->getMetaRecordsCount( $type); // if nothing to do, say so and return to main page if (empty( $numberOfMetaRecords)) { $view->redirectTo = $this->_getDefaultRedirect(); $view->message = JText::_('COM_SH404SEF_NORECORDS'); } else { // calculate the message and some hidden data to be passed // through the confirmation box switch ($type) { case 'selected': $mainText = JText::sprintf( 'COM_SH404SEF_CONFIRM_PURGE_METAS_SELECTED', $numberOfMetaRecords); break; case 'all': $mainText = JText::sprintf( 'COM_SH404SEF_CONFIRM_PURGE_METAS', $numberOfMetaRecords); default: break; } $hiddenText = '<input type="hidden" name="delete_type" value="' . $type . '" />'; // push that into the view $view->mainText = $mainText; $view->hiddenText = $hiddenText; } // Set the layout $view->setLayout($viewLayout); // Display the view $view->display(); } }