Current File : /home/lecoinf/www/iwp/cron/manageEasyCron.php
<?php

#
# manageEasyCron
# This Class is used to manage the EasyCron API with IWP Admin Panel
# Develope by : Revmakx Team
#

/**
 * ClassName : manageEasyCron
 */
 
require_once(APP_ROOT."/lib/easyCronAPI.php");

class manageEasyCron{
	
	private static $manageCronID;
	private static $taskCronID;
	private static $token;
	private static $easyCronAPIObj;
	private static $panelVersion;
	
/*	public static function __construct(){
		
		self::loadAPIDetails();
	}
	*/
	
	/*
	* This function will save the API token and then creates task cron and manage cron.
	*/
	public static function activate($params){
				
		$token = $params['token'];
		$manageCronID = $taskCronID = '';
		
		updateOption("easyCronToken", $token);	
		self::loadAPIDetails();
		
		//first add 1 min cron, if free user it will give error
		//add "task cron" 
		$url = APP_FULL_URL.'cron.php?type=task';
		
		self::$easyCronAPIObj->setOptions(array('cron_job_name' => 'IWP Task Cron'));
		$result = self::$easyCronAPIObj->add($url, 1);
		if(!empty($result) && $result['status']=='success'){
			$taskCronID = $result['cron_job_id'];
		}
		else{
			// Customize free user error message 
			if($result['status']=='error' && !empty($result['error']) && $result['error']['code']=='14'){
				return array('status' => 'error', 'error' => array('message' => 'Using a free plan? Sign up for their basic plan - Starter, to activate the Easycron API'));
			}
			return $result;
		}		
		
		
		//add "manage cron" 
		$url = APP_FULL_URL.'cron.php?type=manage';
		
		self::$easyCronAPIObj->setOptions(array('cron_job_name' => 'IWP Manage Cron'));
		$result = self::$easyCronAPIObj->add($url, 30);
		if(!empty($result) && $result['status']=='success'){
			$manageCronID = $result['cron_job_id'];
		}
		else{
			return $result;
		}
		
		if (defined('APP_V3')) {
			$panelVersion = 'v3';
		}else{
			$panelVersion = 'v2';
		}
		//save the IDs in DB
		if($taskCronID && $manageCronID){
			updateOption("easyCronJobIDs", serialize(array('taskCronID' => $taskCronID, 'manageCronID' => $manageCronID, 'panelVersion' => $panelVersion)));
		}
		
		self::loadAPIDetails();
		return array('status' => 'success');
				
	}
	
	/*
	* This function will delete task cron and manage cron.
	*/
	public static function deactivate(){
		
		self::loadAPIDetails();
		
		$manageCronIDResult = self::$easyCronAPIObj->delete(self::$manageCronID);
		$taskCronIDResult = self::$easyCronAPIObj->delete(self::$taskCronID);
		deleteOption("easyCronJobIDs");		
		self::loadAPIDetails();
		if($manageCronIDResult['status']=='error' || $taskCronIDResult['status']=='error'){
			//error message
			return array('status' => 'error', 'error' => array('message' => 'Deactivated. But there is error in deleting the cron task, please manually delete cron job IDs '.self::$manageCronID.' and  '.self::$taskCronID.''));
		}
		else{
			//success
			return array('status' => 'success');
		}
	}
	
	/*
	* To check whether easycron is active or not.
	*/
	public static function isActive(){
		
		self::loadAPIDetails();
		
		if(!empty(self::$manageCronID) && !empty(self::$taskCronID)){
			return true;
		}
		return false;
	}

	/*
		We can't find directly if the easy cron API key active or not, so we can get the timezone of a user account. if the API key fails, it will throw an error
	*/
	public static function isAccessTokenValid(){
		if(self::isActive()){
			$result = self::$easyCronAPIObj->timezone();
			if(!empty($result) && !empty($result['error']) && $result['error']['code'] == '1'){
    			// 'message' => 'Wrong API token.',
				self::deactivate();
				return false;
			}else{
				return true;
			}
		}
		return false;
	}

	/*
	* To check whether easycron is active or not.
	*/
	public static function cronPanelVersion(){
		
		self::loadAPIDetails();
		
		if(!empty(self::$panelVersion)){
			return self::$panelVersion;
		}
		return '';
	}
	
	/*
	* To get a saved token from DB.
	*/
	public static function getTokenFromDB(){
		return getOption("easyCronToken");
	}
	
	
	/*
	* To enable taskCron (1 min)
	*/
	public static function taskCronEnable(){
		
		self::loadAPIDetails();
		
		$result = self::$easyCronAPIObj->enable(self::$taskCronID);
		return $result;
	}
	
	/*
	* To disable taskCron (1 min)
	*/
	public static function taskCronDisable(){
		
		self::loadAPIDetails();
		
		$result = self::$easyCronAPIObj->disable(self::$taskCronID);
		return $result;
	}
	
	/*
	* To enable manage cron (30 mins)
	*/
	public static function manageCronEnable(){
		
		self::loadAPIDetails();
		
		$result = self::$easyCronAPIObj->enable(self::$manageCronID);
		return $result;
	}

	public static function editTaskCron($frequency){
		self::loadAPIDetails();
		$url = APP_FULL_URL.'cron.php?type=task';
		$result = self::$easyCronAPIObj->edit(self::$taskCronID,$url, $frequency);
		if(!empty($result) && $result['status']=='success'){
			return true;
		}
		return false;
	}

	public static function taskCronLogs(){
		self::loadAPIDetails();
		return self::$easyCronAPIObj->logs(self::$taskCronID);
	}
	public static function getTaskCronRunningFrequency(){
		return getOption('taskCronRunningFrequency');
	}

	public static function getTaskCronNextSchedule(){
		return getOption('taskCronNextSchedule');
	}

	public static function deleteTaskCronRunningFrequency(){
		deleteOption("taskCronRunningFrequency");		
	}

	public static function updateTaskCronRunningFrequency($frequency){
		updateOption('taskCronRunningFrequency',$frequency);
	}

	public static function updateTaskCronNextSchedule($time){
		updateOption('taskCronNextSchedule',$time);
	}
	
	public static function isTaskCronScheduledTimeExpired(){
		$taskCronNextSchedule = getOption('taskCronNextSchedule');
		if(empty($taskCronNextSchedule) || $taskCronNextSchedule <= time()){
			return true;
		}
		return false;

	}
	/*
	* To get API token from DB
	*/
	private static function loadAPIDetails(){
		
		self::$easyCronAPIObj = new easyCronAPI();

		self::$token = getOption("easyCronToken");
		self::$easyCronAPIObj->setToken(self::$token);
		$jobIDs = array();
		$easyCronJobIDs = getOption("easyCronJobIDs");
		if(!empty($easyCronJobIDs)){
			$jobIDs = unserialize($easyCronJobIDs);
		}
		self::$manageCronID = $jobIDs['manageCronID'];
		self::$taskCronID = $jobIDs['taskCronID'];
		if (!empty($jobIDs['panelVersion'])) {
			self::$panelVersion = $jobIDs['panelVersion'];
		}else{
			self::$panelVersion = '';
		}
	}
	
}

panelRequestManager::addFunctions('manageEasyCron::activate', 'manageEasyCron::deactivate', 'manageEasyCron::isActive', 'manageEasyCron::taskCronEnable', 'manageEasyCron::taskCronDisable', 'manageEasyCron::manageCronEnable', 'manageEasyCron::getTokenFromDB','manageEasyCron::isAccessTokenValid');
Le coin du marchand VO vente véhicule entre professionnels

Accès réservé aux professionnels

Site regroupant des annonces de véhicules marchands en vente entre professionnels. Vendez, achetez vos V.O entre pros en toute simplicité et sans intermédiaires.

Déposez gratuitement vos annonces*

*Offre de lancement

Marques
Nous avons trouvé annonces pour vous.

Slide Slide Slide Slide Slide En savoir plus

A propos de nous

Le Coin du Marchand
VO

Le Coin du Marchand
VO

Parce que le métier de marchand V.O. est en perpétuelle évolution
Le coin du marchand V.O. a décidé de vous accompagner à travers cette plateforme qui vous propose un service de petites annonces pour la vente et l’achat de véhicules entre professionnels revendeurs.

Pour l’approvisionnement de votre parc, pour une recherche personnalisée ou vendre des véhicules stockés , assurez-vous des transactions uniquement entre pros.
L’accès à la plateforme est sécurisé et exclusivement réservé aux professionnels.

Soigneusement sélectionnées

Annonces Récentes

Pourquoi Nous Choisir

Professionnalisme

Plateforme regroupant les professionnels qui proposent des véhicules de divers modèles à la vente

Sur toute la France

Les ventes se font uniquement entre professionnels

Meilleurs Tarifs

Vous trouverez de très bonnes occasions de véhicules à des tarifs marchands

Partenaires

  • Développement
  • Bénéfices Mutuelles
  • Collaborations
  • Visibilité
  • Soutenir d’autres Projets

Newsletter

Abonnez-vous à notre newsletter et restez informé de nos offres

Copyright © 2023 Le Coin du Marchand VO | All Rights Reserved | Yanacom