|
Apache/2.4.41 (Ubuntu) Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) server ip : 62.171.164.128 | your ip : 127.0.0.1 safemode OFF > / home / dev2.destoffenstraat.com / app / Firebear / ImportExport / Plugin / Config / |
Filename | /home/dev2.destoffenstraat.com/app/Firebear/ImportExport/Plugin/Config/Data.php |
Size | 3.11 kb |
Permission | rwxr-xr-x |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 07-Nov-2022 06:44 |
Last accessed | 22-Aug-2025 02:25 |
Actions | edit | rename | delete | download (gzip) |
View | text | code | image |
<?php
/**
* @copyright: Copyright © 2017 Firebear Studio. All rights reserved.
* @author : Firebear Studio <fbeardev@gmail.com>
*/
/**
* Prepare cron jobs data
*/
namespace Firebear\ImportExport\Plugin\Config;
use Firebear\ImportExport\Cron\RunExportJobs;
use Firebear\ImportExport\Cron\RunImportJobs;
use Firebear\ImportExport\Model\ExportJob;
use Firebear\ImportExport\Model\ExportJobFactory;
use Firebear\ImportExport\Model\JobFactory;
use Psr\Log\LoggerInterface;
/**
* Class Data
* @package Firebear\ImportExport\Plugin\Config
*/
class Data
{
/**
* Import Job factory
*
* @var JobFactory
*/
protected $jobFactory;
/**
* @var ExportJobFactory
*/
protected $exportJobFactory;
/**
* @var LoggerInterface
*/
protected $logger;
/**
* @var string
*/
protected $jobCodePattern = 'importexport_jobs_run_id_%u';
protected $jobCodeExportPattern = 'importexport_export_jobs_run_id_%u';
/**
* Data constructor.
*
* @param ExportJobFactory $exportJobFactory
* @param JobFactory $jobFactory
* @param LoggerInterface $logger
*/
public function __construct(
ExportJobFactory $exportJobFactory,
JobFactory $jobFactory,
LoggerInterface $logger
) {
$this->exportJobFactory = $exportJobFactory;
$this->jobFactory = $jobFactory;
$this->logger = $logger;
}
/**
* Implement cron jobs created via admin panel into system cron jobs generated from xml files
*
* @param \Magento\Cron\Model\Config\Data $subject
* @param $result
*
* @return mixed
*/
public function afterGetJobs(\Magento\Cron\Model\Config\Data $subject, $result)
{
$result = $this->scopeCrons($result, $this->jobFactory, RunImportJobs::class, $this->jobCodePattern);
$result = $this->scopeCrons(
$result,
$this->exportJobFactory,
RunExportJobs::class,
$this->jobCodeExportPattern
);
return $result;
}
/**
* @param $result
* @param $factory
* @param $instance
* @param $pattern
*
* @return mixed
*/
protected function scopeCrons($result, $factory, $instance, $pattern)
{
$jobCollection = $factory->create()->getCollection();
$jobCollection->addFieldToFilter('is_active', 1);
$jobCollection->addFieldToFilter('cron', ['neq' => '']);
$jobCollection->load();
foreach ($jobCollection as $job) {
$jobName = sprintf($pattern, $job->getId());
$jobSourceData = $job->getData('source_data');
if ($job instanceof ExportJob) {
$jobSourceData = $job->getData('export_source');
}
$cronGroupName = $jobSourceData['cron_groups'] ?? 'firebear_importexport';
$result[$cronGroupName][$jobName] = [
'name' => $jobName,
'instance' => $instance,
'method' => 'execute',
'schedule' => $job->getCron()
];
}
return $result;
}
}
/**
* @copyright: Copyright © 2017 Firebear Studio. All rights reserved.
* @author : Firebear Studio <fbeardev@gmail.com>
*/
/**
* Prepare cron jobs data
*/
namespace Firebear\ImportExport\Plugin\Config;
use Firebear\ImportExport\Cron\RunExportJobs;
use Firebear\ImportExport\Cron\RunImportJobs;
use Firebear\ImportExport\Model\ExportJob;
use Firebear\ImportExport\Model\ExportJobFactory;
use Firebear\ImportExport\Model\JobFactory;
use Psr\Log\LoggerInterface;
/**
* Class Data
* @package Firebear\ImportExport\Plugin\Config
*/
class Data
{
/**
* Import Job factory
*
* @var JobFactory
*/
protected $jobFactory;
/**
* @var ExportJobFactory
*/
protected $exportJobFactory;
/**
* @var LoggerInterface
*/
protected $logger;
/**
* @var string
*/
protected $jobCodePattern = 'importexport_jobs_run_id_%u';
protected $jobCodeExportPattern = 'importexport_export_jobs_run_id_%u';
/**
* Data constructor.
*
* @param ExportJobFactory $exportJobFactory
* @param JobFactory $jobFactory
* @param LoggerInterface $logger
*/
public function __construct(
ExportJobFactory $exportJobFactory,
JobFactory $jobFactory,
LoggerInterface $logger
) {
$this->exportJobFactory = $exportJobFactory;
$this->jobFactory = $jobFactory;
$this->logger = $logger;
}
/**
* Implement cron jobs created via admin panel into system cron jobs generated from xml files
*
* @param \Magento\Cron\Model\Config\Data $subject
* @param $result
*
* @return mixed
*/
public function afterGetJobs(\Magento\Cron\Model\Config\Data $subject, $result)
{
$result = $this->scopeCrons($result, $this->jobFactory, RunImportJobs::class, $this->jobCodePattern);
$result = $this->scopeCrons(
$result,
$this->exportJobFactory,
RunExportJobs::class,
$this->jobCodeExportPattern
);
return $result;
}
/**
* @param $result
* @param $factory
* @param $instance
* @param $pattern
*
* @return mixed
*/
protected function scopeCrons($result, $factory, $instance, $pattern)
{
$jobCollection = $factory->create()->getCollection();
$jobCollection->addFieldToFilter('is_active', 1);
$jobCollection->addFieldToFilter('cron', ['neq' => '']);
$jobCollection->load();
foreach ($jobCollection as $job) {
$jobName = sprintf($pattern, $job->getId());
$jobSourceData = $job->getData('source_data');
if ($job instanceof ExportJob) {
$jobSourceData = $job->getData('export_source');
}
$cronGroupName = $jobSourceData['cron_groups'] ?? 'firebear_importexport';
$result[$cronGroupName][$jobName] = [
'name' => $jobName,
'instance' => $instance,
'method' => 'execute',
'schedule' => $job->getCron()
];
}
return $result;
}
}