| Current Path : /home/megadansyp/www/administrator/components/com_eventgallery/controllers/ |
| Current File : /home/megadansyp/www/administrator/components/com_eventgallery/controllers/googlephotossync.php |
<?php
/**
* @package Sven.Bluege
* @subpackage com_eventgallery
*
* @copyright Copyright (C) 2005 - 2019 Sven Bluege All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
jimport( 'joomla.application.component.controllerform' );
use \Joomla\Component\Eventgallery\Site\Library\Connector\GooglePhotos;
require_once(__DIR__.'/../controller.php');
class EventgalleryControllerGooglephotossync extends JControllerForm
{
protected $default_view = 'googlephotossync';
public function getModel($name = 'Googlephotossync', $prefix ='EventgalleryModel', $config = array('ignore_request' => true))
{
return parent::getModel($name, $prefix, $config);
}
/**
* function to provide the Google Photos Sync-View
* @throws Exception
*/
function sync()
{
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
$app = JFactory::getApplication();
$db = JFactory::getDbo();
$accountId = $this->input->getInt('googlephotosaccountid');
$isDryRun = $this->input->getBool('dryrun');
/**
* @var EventgalleryLibraryFactoryGooglephotosaccount $accountFactory
*/
$accountFactory = EventgalleryLibraryFactoryGooglephotosaccount::getInstance();
$account = $accountFactory->getAccountById($accountId);
$albums = GooglePhotos::getAlbums(COM_EVENTGALLERY_GOOGLE_PHOTOS_ALBUMS_CACHE_LIFETIME, $account->getClientId(), $account->getSecret(), $account->getRefreshToken(), $db);
/**
* @var EventgalleryModelGooglephotossync $model
*/
$model = $this->getModel();
$albumsAdded = 0;
foreach($albums as $album) {
if (!$model->eventExists($album->id)) {
if (!$isDryRun) {
$model->addEvent($account->getId(), $album);
}
$albumsAdded++;
}
}
if ($isDryRun) {
$app->enqueueMessage(JText::sprintf('COM_EVENTGALLERY_GOOGLEPHOTOSSYNC_DRYRUN_DONE', $albumsAdded));
}
$app->enqueueMessage(JText::sprintf('COM_EVENTGALLERY_GOOGLEPHOTOSSYNC_DONE', $albumsAdded));
$this->display();
}
public function cancel($key = NULL) {
$this->setRedirect( 'index.php?option=com_eventgallery&view=eventgallery');
}
}