| Current Path : /home/digilove/public_html/administrator/components/com_jmap/controllers/ |
| Current File : /home/digilove/public_html/administrator/components/com_jmap/controllers/google.php |
<?php
// namespace administrator\components\com_jmap\controllers;
/**
* @package JMAP::GOOGLE::administrator::components::com_jmap
* @subpackage controllers
* @author Joomla! Extensions Store
* @copyright (C) 2021 - Joomla! Extensions Store
* @license GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html
*/
defined ( '_JEXEC' ) or die ( 'Restricted access' );
/**
* Main controller
* @package JMAP::GOOGLE::administrator::components::com_jmap
* @subpackage controllers
* @since 3.1
*/
class JMapControllerGoogle extends JMapController {
/**
* Set model state from session userstate
* @access protected
* @param string $scope
* @return void
*/
protected function setModelState($scope = 'default', $ordering = true) {
$option = $this->option;
// Get default model
$defaultModel = $this->getModel();
// Set calendar period for search console stats
$defaultStartPeriod = date ( "Y-m-01", strtotime ( date ( "Y-m-d" ) ) );
$defaultEndPeriod = date ( "Y-m-d", strtotime ( "-1 day", strtotime ( "+1 month", strtotime ( date ( "Y-m-01" ) ) ) ) );
$fromPeriod = $this->getUserStateFromRequest( "$option.$scope.fromperiod", 'fromperiod', strval($defaultStartPeriod));
$toPeriod = $this->getUserStateFromRequest( "$option.$scope.toperiod", 'toperiod', strval($defaultEndPeriod));
$pagespeedLink = $this->getUserStateFromRequest( "$option.$scope.pagespeedlink", 'pagespeed_pageurl', $defaultModel->getComponentParams()->get('pagespeed_domain', JUri::root(false)));
$inspectLink = $this->getUserStateFromRequest( "$option.$scope.inspectlink", 'inspect_pageurl', '');
// Set model state
$defaultModel->setState ( 'option', $option );
$defaultModel->setState ( 'googlestats', $this->app->input->getCmd ( 'googlestats', 'analytics' ) );
$defaultModel->setState ( 'fromPeriod', $fromPeriod );
$defaultModel->setState ( 'toPeriod', $toPeriod );
$defaultModel->setState ( 'pagespeedlink', $pagespeedLink );
$defaultModel->setState ( 'inspectlink', $inspectLink );
return $defaultModel;
}
/**
* Default listEntities
*
* @access public
* @param $cachable string
* the view output will be cached
* @return void
*/
public function display($cachable = false, $urlparams = false) {
// Access check.
if (!$this->user->authorise ( 'jmap.google', $this->option )) {
$this->setRedirect('index.php?option=com_jmap&task=cpanel.display', JText::_('COM_JMAP_ERROR_ALERT_NOACCESS'));
return false;
}
$this->setModelState('google');
parent::display($cachable, $urlparams);
}
/**
* Delete a db table entity
*
* @access public
* @return void
*/
public function deleteEntity() {
// Load della model e checkin before exit
$model = $this->getModel ();
// Origin stats type
$origin = $this->app->input->get('googlestats', null);
if($origin == 'webmasters') {
$this->option .= '&googlestats=webmasters';
}
if (! $model->deleteEntity ( null )) {
// Model set exceptions for something gone wrong, so enqueue exceptions and levels on application object then set redirect and exit
$modelException = $model->getError ( null, false );
$this->app->enqueueMessage ( $modelException->getMessage (), $modelException->getErrorLevel () );
$this->setRedirect ( "index.php?option=" . $this->option . "&task=" . $this->corename . ".display", JText::_ ( 'COM_JMAP_GOOGLE_ERROR_' . 'LOGOUT' ) );
return false;
}
$this->setRedirect ( "index.php?option=" . $this->option . "&task=" . $this->corename . ".display", JText::_ ( 'COM_JMAP_GOOGLE_SUCCESS_LOGOUT' ) );
}
/**
* Submit a sitemap using the GWT API
*
* @access public
* @return void
*/
public function submitSitemap() {
// Access check.
if (!$this->user->authorise ( 'core.edit', $this->option )) {
$this->setRedirect('index.php?option=com_jmap&task=cpanel.display', JText::_('COM_JMAP_ERROR_ALERT_NOACCESS'));
return false;
}
// Load della model e checkin before exit
$model = $this->getModel ();
// Retrieve the sitemap link
$sitemapUri = $this->app->input->getString('sitemaplink');
if(!$sitemapUri) {
$this->setRedirect ( "index.php?option=" . $this->option . "&task=" . $this->corename . ".display&googlestats=webmasters", JText::_ ( 'COM_JMAP_MISSING_DATA' ) );
return false;
}
if (! $model->submitSitemap ( $sitemapUri )) {
// Model set exceptions for something gone wrong, so enqueue exceptions and levels on application object then set redirect and exit
$modelException = $model->getError ( null, false );
$this->app->enqueueMessage ( $modelException->getMessage (), $modelException->getErrorLevel () );
$this->setRedirect ( "index.php?option=" . $this->option . "&task=" . $this->corename . ".display&googlestats=webmasters", JText::_ ( 'COM_JMAP_GOOGLE_WEBMASTERS_ERROR_SUBMITTING_SITEMAP' ) );
return false;
}
$this->setRedirect ( "index.php?option=" . $this->option . "&task=" . $this->corename . ".display&googlestats=webmasters", JText::_ ( 'COM_JMAP_GOOGLE_WEBMASTERS_SITEMAP_SUBMITTED' ) );
}
/**
* Delete a sitemap using the GWT API
*
* @access public
* @return void
*/
public function deleteSitemap() {
// Access check.
if (!$this->user->authorise ( 'core.edit', $this->option )) {
$this->setRedirect('index.php?option=com_jmap&task=cpanel.display', JText::_('COM_JMAP_ERROR_ALERT_NOACCESS'));
return false;
}
// Load della model e checkin before exit
$model = $this->getModel ();
// Retrieve the sitemap link
$sitemapUri = $this->app->input->getString('sitemapurl');
if (! $model->deleteSitemap ( $sitemapUri )) {
// Model set exceptions for something gone wrong, so enqueue exceptions and levels on application object then set redirect and exit
$modelException = $model->getError ( null, false );
$this->app->enqueueMessage ( $modelException->getMessage (), $modelException->getErrorLevel () );
$this->setRedirect ( "index.php?option=" . $this->option . "&task=" . $this->corename . ".display&googlestats=webmasters", JText::_ ( 'COM_JMAP_GOOGLE_WEBMASTERS_ERROR_DELETING_SITEMAP' ) );
return false;
}
$this->setRedirect ( "index.php?option=" . $this->option . "&task=" . $this->corename . ".display&googlestats=webmasters", JText::_ ( 'COM_JMAP_GOOGLE_WEBMASTERS_SITEMAP_DELETED' ) );
}
/**
* Avvia il processo di esportazione records
*
* @access public
* @return void
*/
public function exportXlsRecord() {
// Access check.
if (!$this->user->authorise ( 'core.edit', $this->option )) {
$this->setRedirect('index.php?option=com_jmap&task=cpanel.display', JText::_('COM_JMAP_ERROR_ALERT_NOACCESS'));
return false;
}
// Set model state
$defaultModel = $this->setModelState('google');
// Get view
$view = $this->getView();
$view->setModel($defaultModel, true);
$view->setLayout('xls');
$view->sendXlsRecord('webmasters');
}
/**
* Avvia il processo di esportazione records
*
* @access public
* @return void
*/
public function exportXlsPagespeed() {
// Access check.
if (!$this->user->authorise ( 'core.edit', $this->option )) {
$this->setRedirect('index.php?option=com_jmap&task=cpanel.display', JText::_('COM_JMAP_ERROR_ALERT_NOACCESS'));
return false;
}
// Set model state
$defaultModel = $this->setModelState('google');
// Get view
$view = $this->getView();
$view->setModel($defaultModel, true);
$view->setLayout('xls');
if(!$view->sendXlsPagespeed('pagespeed')) {
$this->setRedirect('index.php?option=com_jmap&task=google.display&googlestats=pagespeedfetch');
return false;
}
}
/**
* Class Constructor
*
* @access public
* @return Object&
*/
public function __construct($config = array()) {
parent::__construct ( $config );
// Composer autoloader
if (PHP_VERSION_ID >= 70205) {
require_once JPATH_COMPONENT_ADMINISTRATOR. '/framework/composer/autoload_real.php';
ComposerAutoloaderInitcb4c0ac1dedbbba2f0b42e9cdf4d93d7::getLoader();
} else {
// Fallback to legacy API
require_once JPATH_COMPONENT_ADMINISTRATOR. '/framework/composerlegacy/autoload_real.php';
ComposerAutoloaderInitfc5c9af51413a149e4084a610a3ab6de::getLoader();
}
}
}