<?php namespace sgpb; class PopupBuilderActivePackage { // sections and additional options array private static $sections = array(); public static function init() { self::$sections = array( 'userStatus' => array('min-version' => SGPB_POPUP_PRO_MIN_VERSION, 'min-pkg' => SGPB_POPUP_PKG_SILVER, 'name' => 'userStatus'), 'popupConditionsSection' => array('min-version' => SGPB_POPUP_PRO_MIN_VERSION, 'min-pkg' => SGPB_POPUP_PKG_SILVER, 'name' => 'popupConditionsSection'), 'popupOtherConditionsSection' => array('min-version' => SGPB_POPUP_PRO_MIN_VERSION, 'min-pkg' => SGPB_POPUP_PKG_SILVER, 'name' => 'popupOtherConditionsSection') ); } public static function canUseSection($optionName) { if (!isset(self::$sections[$optionName])) { return false; } return self::checkVersionAndPackage(self::$sections[$optionName]); } public static function canUseOption($optionName) { global $SGPB_OPTIONS; $currentOption = array(); foreach ($SGPB_OPTIONS as $option) { if ($option['name'] == $optionName) { $currentOption = $option; break; } } return self::checkVersionAndPackage($currentOption); } private static function checkVersionAndPackage($option) { $currentOptionSupportedMinVersion = ''; $currentOptionSupportedMinPackage = ''; if (isset($option['min-version'])) { $currentOptionSupportedMinVersion = $option['min-version']; } if (isset($option['min-pkg'])) { $currentOptionSupportedMinPackage = $option['min-pkg']; } $optionAvailable = apply_filters('sgpbOptionAvailable', $option); // it can change option availability from extensions if (isset($optionAvailable['status'])) { return $optionAvailable['status']; } if ($currentOptionSupportedMinVersion <= SGPB_POPUP_VERSION) { if ($currentOptionSupportedMinPackage <= SGPB_POPUP_PKG) { return true; } } return false; } } PopupBuilderActivePackage::init();