| Current Path : /home/smartconb/www/armencom33/cli/ |
| Current File : /home/smartconb/www/armencom33/cli/eventgallery-sync.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
*/
// Set flag that this is a parent file.
const _JEXEC = 1;
error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors', 1);
// Load system defines
if (file_exists(dirname(__DIR__) . '/defines.php'))
{
require_once dirname(__DIR__) . '/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', dirname(__DIR__));
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_LIBRARIES . '/import.legacy.php';
require_once JPATH_LIBRARIES . '/cms.php';
// Load the configuration
require_once JPATH_CONFIGURATION . '/configuration.php';
require_once JPATH_ROOT . '/components/com_eventgallery/vendor/autoload.php';
/**
* Job to sync the file system with the database
*
* @package Joomla.Cli
* @since 2.5
*/
class EventgallerySync extends JApplicationCli
{
/** @noinspection PhpMissingParentConstructorInspection */
public function __construct(JInputCli $input = null, JRegistry $config = null, JEventDispatcher $dispatcher = null)
{
if (array_key_exists('REQUEST_METHOD', $_SERVER))
{
die('CLI only. Do not call this from the browser.');
}
}
/**
* Entry point for the script
*
* @return void
*
* @since 2.5
*/
public function doExecute()
{
define('JPATH_COMPONENT_ADMINISTRATOR', JPATH_ADMINISTRATOR . '/components/com_eventgallery');
define('JPATH_COMPONENT_SITE', JPATH_SITE . '/components/com_eventgallery');
$language = JFactory::getLanguage();
$language->load('com_eventgallery' , JPATH_COMPONENT_ADMINISTRATOR, $language->getTag(), true);
//JLoader::registerPrefix('Eventgallery', JPATH_COMPONENT_ADMINISTRATOR);
JLoader::registerPrefix('Eventgallery', JPATH_COMPONENT_SITE);
$config = \Joomla\Component\Eventgallery\Site\Library\Configuration\Main::getInstance();
$use_htacces_to_protect_original_files = $config->getImage()->doUseHtaccessToProtectOriginalFiles();
require_once(JPATH_COMPONENT_ADMINISTRATOR.'/models/sync.php');
$syncModel = JModelLegacy::getInstance('EventgalleryModelSync', '', array('ignore_request' => true));
echo "\n\n=== Adding new Folders === \n\n";
/**
* @var EventgalleryLibraryManagerFolder $folderMgr
* @var EventgalleryLibraryFactoryFile $fileFactory
*/
$folderMgr = EventgalleryLibraryManagerFolder::getInstance();
$fileFactory = EventgalleryLibraryFactoryFile::getInstance();
$addResults = $folderMgr->addNewFolders();
foreach($addResults as $addResult) {
/**
* @var EventgalleryLibraryFolderAddresult $addResult
*/
if ($addResult->getError() != null) {
echo "ERROR: " . $addResult->getError() . "\n";
} else {
echo "Added: " . $addResult->getFolderName() . "\n";
}
}
$folders = $syncModel->getFolders();
echo "\n\n=== Synchronizing " . count($folders) . " folders ===\n\n";
foreach($folders as $folder) {
$result = $syncModel->syncFolder($folder->getFolderName(), null, $use_htacces_to_protect_original_files);
if (isset($result['files'])) {
$files = $result['files'];
echo "Sync $folder with " . count($files) . " files\n\n";
/**
* @var EventgalleryLibraryFile $file
*/
foreach ($files as $filename) {
echo " (Memory usage: ".memory_get_usage().") $folder - $filename \n";
$file = $fileFactory->getFile($folder->getFolderName(), $filename);
$file->syncFile();
}
}
echo "\n\n";
}
echo "Sync finished.";
}
}
JApplicationCli::getInstance('EventgallerySync')->execute();