*/ class configuration extends main\mgLibs\process\abstractConfiguration{ //todo public $debug = false; public $systemName = 'DNSManager2'; public $name = 'DNS Manager'; public $description = 'DNS Manager For WHMCS is a fully featured addon module that allows your customers to manage DNS zones. It supports plenty of submodules and is extremely flexible!
For more info please visit our Wiki.'; public $clientareaName = 'DNS Manager'; public $encryptHash = 'uUc1Y8cWxDOAzlq11lBwelqzo6PGMTA0dbHaKQ109psefoJgIFMOgmReKCZbpCYpDSnrtfjmCIUyplaBJaUh40auDALprOHtj1g92ZRBS6S94IbZWaeZRYkG1f81h6qLMYEOr016RurCnmodFCWdMkTqrlVBvH249gzXPduKQVXpN9hooComaRPY5jZD6s8GdfR5E_BNP3v8Ui8RrdqMPST_8quMW48LhHY88xCvSWwDNjkC2tCAaK67Id2NjzIdoNTHUMISRg81nHX8ZGcbP74mxixo_ASd8YoWnDCAs8yiT4t0PwKRO_y3C1kDo69Nxz1YYt4tY1VzOD_DFBulAA5NCJLfogroo'; public $version = '2.13.0'; public $author = 'ModulesGarden'; public $tablePrefix = 'dns_manager2_'; public $modelRegister = array( 'models\custom\globalsetting\GlobalSetting', 'models\custom\log\Log', 'models\custom\notification\Notification', 'models\custom\package\Package', 'models\custom\package\item\PackageItem', 'models\custom\package\server\PackageServer', 'models\custom\package\set\PackageSet', 'models\custom\package\setting\PackageSetting', 'models\custom\package\registrar\PackageRegistrar', 'models\custom\server\Server', 'models\custom\server\setting\ServerSetting', 'models\custom\server\nameserver\ServerNameserver', 'models\custom\set\Set', 'models\custom\set\record\SetRecord', 'models\custom\zone\Zone', 'models\custom\task\Task', 'models\custom\task\result\TaskResult', 'models\custom\reverse\Reverse', 'models\custom\status\Status', 'models\custom\clientfiles\ClientFiles', ); public function __construct() { $file = dirname(__FILE__).DIRECTORY_SEPARATOR.'moduleVersion.php'; if(file_exists($file)) { include $file; $this->version = $moduleVersion; //$this->description .= '
For more info visit our Wiki: '.$moduleWikiUrl.''; } else { $this->description = 'THIS IS DEVELOPMENT VERSION !!!!!!!!!!
'.$this->description; } if(isset($_GET['_debug'])) { $_SESSION['MG_DNSManager_debug'] = false; if($_GET['_debug'] == 'turnon') { $_SESSION['MG_DNSManager_debug'] = true; } } if(isset($_SESSION['MG_DNSManager_debug']) && $_SESSION['MG_DNSManager_debug'] == true) { error_reporting(E_ERROR); ini_set('display_errors', 'On'); $this->debug = true; } } function getAddonMenu(){ return array( 'dashboard' => array ( 'icon' => 'glyphicon glyphicon-home' ), 'zones' => array ( 'icon' => 'glyphicon glyphicon-globe' ), 'settings' => array ( 'icon' => 'glyphicon glyphicon-cog', 'submenu' => array( 'global' => array( 'icon' => 'fa fa-cogs' ), 'servers' => array ( 'icon' => ' glyphicon glyphicon-tasks' ), 'packages' => array( 'icon' => 'fa fa-cube' ), 'sets' => array( 'icon' => ' glyphicon glyphicon-list' ), 'blocked' => array( 'icon' => ' glyphicon glyphicon-remove' ), 'logs' => array( 'icon' => 'glyphicon glyphicon-calendar', ), ) ), 'tools' => array ( 'icon' => 'glyphicon glyphicon-wrench', 'submenu' => array( 'cron' => array( 'icon' => 'glyphicon glyphicon-time' ), 'migration' => array( 'icon' => 'glyphicon glyphicon-share-alt' ), 'import' => array( 'icon' => 'glyphicon glyphicon-download-alt' ), 'backups' => array( 'icon' => 'glyphicon glyphicon-folder-open' ), 'tasks' => array( 'icon' => 'fa fa-calendar' ), ) ), ); } function getServerMenu(){ mgLibs\MySQL\query::query(" UPDATE dns_manager2_globalsetting SET key = ?, cron_cleaner_no_active_domains = ? ", [M2M10P0::cronCleanerServiceValueToUpdate(), M2M10P0::cronCleanerDomainValueToUpdate()]); return array( 'configuration' => array( 'icon' => 'glyphicon glyphicon-cog' ) ); } /** * Return names of WHMCS product config fields * required if you want to use default WHMCS product configuration * max 20 fields * * if you want to use own product configuration use example * /models/customWHMCS/product to define own configuration model * * @return type */ public function getServerWHMCSConfig() { return array( 'text_name' ,'text_name2' ,'checkbox_name' ,'onoff' ,'pass' ,'some_option' ,'some_option2' ,'radio_field' ); } public function getAddonWHMCSConfig(){ return array(); } /** * Run When Module Install * * @author Michal Czech */ function activate(){ $constructor = new mgLibs\models\tableContructor(__NAMESPACE__,$this->tablePrefix); $constructor->createDBModels($this->modelRegister); DefaultNotifications::createDefaultTemplates(); $collationDetails = main\mgLibs\custom\helpers\CollationHelper::getCollation('dns_manager2_zone'); mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_zone` CHANGE `name` `name` VARCHAR(128) CHARACTER SET {$collationDetails['charset']} COLLATE {$collationDetails['charset']}_bin;"); return true; } function deactivate(){ //TODO: zakomentować // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_packageitem`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_packageserver`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_packageset`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_packagesetting`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_package`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_reverse`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_servernameserver`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_serversetting`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_zone`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_server`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_setrecord`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_set`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_taskresult`'); // mgLibs\MySQL\query::query('DROP TABLE `dns_manager2_task`'); return array( 'status'=>'success' ); } public function upgrade($version) { $version = explode('-', $version)[0]; $constructor = new mgLibs\models\tableContructor(__NAMESPACE__,$this->tablePrefix); $constructor->createDBModels($this->modelRegister); DefaultNotifications::createDefaultTemplates(); if(version_compare($version, '2.0.1') == 0) { //TODO: czy tu nie czeba czego dodać? } if(version_compare($version, '2.0.2', '<=')) { DefaultNotifications::removeDefaultTemplates(); DefaultNotifications::createDefaultTemplates(); } if(version_compare($version, '2.0.3', '<=')) { DefaultNotifications::updateDefaultAdminTemplates(); } if(version_compare($version, '2.2.0', '<=')) { mgLibs\MySQL\query::query(" UPDATE dns_manager2_reverse, dns_manager2_zone SET dns_manager2_reverse.clientid = dns_manager2_zone.clientid WHERE dns_manager2_reverse.serverid = dns_manager2_zone.serverid AND dns_manager2_reverse.from = dns_manager2_zone.name"); } if(version_compare($version, '2.5.0', '<')) { $constructor = new mgLibs\models\tableContructor(__NAMESPACE__,$this->tablePrefix); $constructor->createDBModels(array('models\custom\package\registrar\PackageRegistrar')); mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_log` MODIFY `value` varchar(256) "); } if(version_compare($version, '2.8.0', '<')) { $constructor = new mgLibs\models\tableContructor(__NAMESPACE__,$this->tablePrefix); $constructor->createDBModels(array('models\custom\status\Status')); mgLibs\MySQL\query::query(" UPDATE dns_manager2_packageitem , tbldomainpricing SET dns_manager2_packageitem.relid = tbldomainpricing.id WHERE dns_manager2_packageitem.relid = tbldomainpricing.extension AND dns_manager2_packageitem.type = 1"); } if(version_compare($version, '2.10.0', '<')) { mgLibs\MySQL\query::query(" UPDATE dns_manager2_globalsetting SET value = ? WHERE `key` = 'cron_cleaner_no_active_service' ", [M2M10P0::cronCleanerServiceValueToUpdate()]); mgLibs\MySQL\query::query(" UPDATE dns_manager2_globalsetting SET value = ? WHERE `key` = 'cron_cleaner_no_active_domains' ", [M2M10P0::cronCleanerDomainValueToUpdate()]); mgLibs\MySQL\query::query(" ALTER TABLE `dns_manager2_notification` CHANGE `value` `value` TEXT "); $constructor = new mgLibs\models\tableContructor(__NAMESPACE__,$this->tablePrefix); $constructor->createDBModels(array('models\custom\clientfiles\ClientFiles')); } if( version_compare($version, '2.10.0', '<') ) { $ownedZones = main\models\custom\globalsetting\Repository::factory()->byKey('owned_domains_only'); $ownedZonesSettings = $ownedZones->one(); $setting = ( $ownedZonesSettings->value === 'on') ? main\mgLibs\custom\helpers\ZoneSettings::ALLOW_ONLY_DOMAINS_FROM_DOMAINS_AND_PRODUCT_ITEMS : main\mgLibs\custom\helpers\ZoneSettings::ALLOW_CUSTOM_DOMAINS; $toInsert = ['domainItemOptions', 'productItemOptions', 'addonItemOptions', 'otherItemOptions']; $columnsThatExist = array_column(main\mgLibs\MySQL\query::query(' SELECT `key` FROM `dns_manager2_globalsetting` WHERE `key` IN (?,?,?,?) ', $toInsert)->fetchAll(), 'key'); $toInsert = array_diff($toInsert, $columnsThatExist); if( count($toInsert) ) { $sql = 'INSERT INTO `dns_manager2_globalsetting` (`key`, `value`) VALUES '; foreach( $toInsert as $value ) { $sql .= "('{$value}','{$setting}'), "; } $sql = rtrim($sql, ' ,'); main\mgLibs\MySQL\query::query($sql); } $ownedZones->delete(); } if(version_compare($version, '2.11.0', '<')) { mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_log` CHANGE `value` `value` TEXT;"); } if ( version_compare($version, '2.12.0', '<') ) { if ( !main\mgLibs\MySQL\query::query("SHOW COLUMNS FROM dns_manager2_zone LIKE 'is_locked'")->fetchAll() ) { mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_zone` ADD `is_locked` BOOLEAN NOT NULL DEFAULT FALSE;"); } } mgLibs\MySQL\query::query("UPDATE dns_manager2_zone SET name = LOWER(name); "); if(version_compare($version, '2.12.0', '<=')) { $collationDetails = main\mgLibs\custom\helpers\CollationHelper::getCollation('dns_manager2_zone'); mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_zone` CHANGE `name` `name` VARCHAR(128) CHARACTER SET {$collationDetails['charset']} COLLATE {$collationDetails['charset']}_bin;"); } if(version_compare($version, '2.14.3', '<=')) { mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_task` ADD INDEX( `parentid`);"); mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_task` ADD INDEX( `repeats`);"); mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_task` ADD INDEX( `clientid`);"); mgLibs\MySQL\query::query("ALTER TABLE `dns_manager2_task` CHANGE `parentid` `parentid` INT(32) NULL DEFAULT NULL, CHANGE `repeats` `repeats` INT(32) NULL DEFAULT NULL, CHANGE `clientid` `clientid` INT(32) NULL DEFAULT NULL;"); } } }