From 9bf1c88f4b2a7339788dd7043325993106add437 Mon Sep 17 00:00:00 2001 From: gleemand Date: Tue, 14 Sep 2021 17:00:44 +0300 Subject: [PATCH] Add filter for JobManager intervals --- doc/3. Customization/Filters.md | 8 +++++--- retailcrm/lib/RetailcrmTools.php | 7 ++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/3. Customization/Filters.md b/doc/3. Customization/Filters.md index ffe9137..8ca2c12 100644 --- a/doc/3. Customization/Filters.md +++ b/doc/3. Customization/Filters.md @@ -1,10 +1,10 @@ # Custom filters -## Usage +## Usage If you want to modify data, sent between CRM and CMS you can use custom filters. To use filters you should define a new class in `/modules/retailcrm/custom/hooks`. Filename and classname must match the filter name. -Filter class should implement interface *RetailcrmFilterInterface*. In filter class you must define *filter()* function, which will take initial `$object` and return customized `$object`. +Filter class should implement interface *RetailcrmFilterInterface*. In filter class you must define *filter()* function, which will take initial `$object` and return customized `$object`. ## Example @@ -25,7 +25,7 @@ class RetailcrmFilterSaveCustomerAddress implements RetailcrmFilterInterface * @var array $dataCrm CRM address data * @var Address $object CMS Address object */ - + $dataCrm = $parameters['dataCrm']; if (isset($dataCrm['dni'])) { @@ -57,3 +57,5 @@ There are list of available filters: * *RetailcrmFilterSaveCustomerAddress* - built customer address object, which will be saved to CMS * *RetailcrmFilterSaveCorporateCustomer* - built corporate customer object, which will be saved to CMS * *RetailcrmFilterSaveCorporateCustomerAddress* - built corporate customer address object, which will be saved to CMS + +* *RetailcrmFilterJobManagerIntervals* - array with jobs as keys and intervals as values diff --git a/retailcrm/lib/RetailcrmTools.php b/retailcrm/lib/RetailcrmTools.php index 1a38c27..13c572a 100644 --- a/retailcrm/lib/RetailcrmTools.php +++ b/retailcrm/lib/RetailcrmTools.php @@ -707,12 +707,17 @@ class RetailcrmTools */ public static function startJobManager() { - RetailcrmJobManager::startJobs(array( + $intervals = array( 'RetailcrmClearLogsEvent' => new \DateInterval('P1D'), 'RetailcrmIcmlEvent' => new \DateInterval('PT4H'), 'RetailcrmInventoriesEvent' => new \DateInterval('PT15M'), 'RetailcrmSyncEvent' => new \DateInterval('PT7M'), 'RetailcrmAbandonedCartsEvent' => new \DateInterval('PT1M') + ); + + RetailcrmJobManager::startJobs(self::filter( + 'RetailcrmFilterJobManagerIntervals', + $intervals )); }