159 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package   ShackInstaller
 | |
|  * @contact   www.joomlashack.com, help@joomlashack.com
 | |
|  * @copyright 2016-2023 Joomlashack.com. All rights reserved
 | |
|  * @license   https://www.gnu.org/licenses/gpl.html GNU/GPL
 | |
|  *
 | |
|  * This file is part of ShackInstaller.
 | |
|  *
 | |
|  * ShackInstaller is free software: you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License as published by
 | |
|  * the Free Software Foundation, either version 2 of the License, or
 | |
|  * (at your option) any later version.
 | |
|  *
 | |
|  * ShackInstaller is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with ShackInstaller.  If not, see <https://www.gnu.org/licenses/>.
 | |
|  */
 | |
| 
 | |
| use Alledia\Installer\AbstractScript;
 | |
| use Alledia\Installer\Extension\Generic;
 | |
| use Alledia\Installer\Extension\Licensed;
 | |
| use Joomla\CMS\Language\Text;
 | |
| use Joomla\CMS\Uri\Uri;
 | |
| 
 | |
| defined('_JEXEC') or die();
 | |
| 
 | |
| /**
 | |
|  * @var AbstractScript $this
 | |
|  * @var string         $type
 | |
|  * @var Licensed       $license
 | |
|  * @var string         $name
 | |
|  * @var string         $configPath
 | |
|  * @var string         $customFooterPath
 | |
|  * @var string         $extensionPath
 | |
|  * @var Generic        $licensesManagerExtension
 | |
|  * @var string         $string
 | |
|  * @var string         $path
 | |
|  */
 | |
| 
 | |
| $licenseUpdate = Uri::root() . '/administrator/index.php?plugin=system_osmylicensesmanager&task=license.save';
 | |
| 
 | |
| if ($this->isLicensesManagerInstalled) :
 | |
|     ?>
 | |
|     <div class="joomlashack-license-form">
 | |
|         <?php
 | |
|         if (!empty($this->licenseKey)) :
 | |
|             ?>
 | |
|             <a href="" class="joomlashack-installer-change-license-button btn btn-success">
 | |
|                 <?php echo Text::_('LIB_SHACKINSTALLER_CHANGE_LICENSE_KEY'); ?>
 | |
|             </a>
 | |
|         <?php endif; ?>
 | |
| 
 | |
|         <div id="joomlashack-installer-license-panel">
 | |
|             <input type="text"
 | |
|                    name="joomlashack-license-keys"
 | |
|                    id="joomlashack-license-keys"
 | |
|                    value="<?php echo $this->licenseKey; ?>"
 | |
|                    class="form-control"
 | |
|                    placeholder="<?php echo Text::_('LIB_SHACKINSTALLER_LICENSE_KEYS_PLACEHOLDER'); ?>"/>
 | |
| 
 | |
|             <p class="joomlashack-empty-key-msg">
 | |
|                 <?php echo Text::_('LIB_SHACKINSTALLER_MSG_LICENSE_KEYS_EMPTY'); ?> 
 | |
|                 <a href="https://www.joomlashack.com/account/key/" target="_blank">
 | |
|                     <?php echo Text::_('LIB_SHACKINSTALLER_I_DONT_REMEMBER_MY_KEY'); ?>
 | |
|                 </a>
 | |
|             </p>
 | |
| 
 | |
|             <a id="joomlashack-license-save-button"
 | |
|                class="btn btn-success"
 | |
|                href="#">
 | |
|                 <?php echo Text::_('LIB_SHACKINSTALLER_SAVE_LICENSE_KEY'); ?>
 | |
|             </a>
 | |
|         </div>
 | |
| 
 | |
|         <div id="joomlashack-installer-license-success" style="display: none">
 | |
|             <p><?php echo Text::_('LIB_SHACKINSTALLER_LICENSE_KEY_SUCCESS'); ?></p>
 | |
|         </div>
 | |
| 
 | |
|         <div id="joomlashack-installer-license-error" style="display: none">
 | |
|             <p><?php echo Text::_('LIB_SHACKINSTALLER_LICENSE_KEY_ERROR'); ?></p>
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
|     <script>
 | |
|         (function() {
 | |
|             let panel         = document.getElementById('joomlashack-installer-license-panel'),
 | |
|                 updateButtons = document.getElementsByClassName('joomlashack-installer-change-license-button'),
 | |
|                 saveButton    = document.getElementById('joomlashack-license-save-button');
 | |
| 
 | |
|             if (panel) {
 | |
|                 if (updateButtons.length > 0) {
 | |
|                     panel.style.display = 'none';
 | |
| 
 | |
|                     Array.from(updateButtons).forEach(function(button) {
 | |
|                         button.addEventListener('click', function(event) {
 | |
|                             event.preventDefault();
 | |
| 
 | |
|                             panel.style.display = 'block';
 | |
|                             this.style.display  = 'none';
 | |
|                         })
 | |
|                     });
 | |
|                 }
 | |
| 
 | |
|                 if (saveButton) {
 | |
|                     saveButton.addEventListener('click', function(event) {
 | |
|                         event.preventDefault();
 | |
| 
 | |
|                         let request  = new XMLHttpRequest(),
 | |
|                             data     = new FormData(),
 | |
|                             keyField = document.getElementById('joomlashack-license-keys')
 | |
| 
 | |
|                         data.append('license-keys', keyField.value)
 | |
|                         request.onreadystatechange = function(data) {
 | |
|                             if (this.readyState === XMLHttpRequest.DONE) {
 | |
|                                 try {
 | |
|                                     if (this.status === 200) {
 | |
|                                         let result  = JSON.parse(this.response),
 | |
|                                             success = document.getElementById('joomlashack-installer-license-success'),
 | |
|                                             error   = document.getElementById('joomlashack-installer-license-error');
 | |
| 
 | |
|                                         panel.style.display = 'none';
 | |
| 
 | |
|                                         if (result.success) {
 | |
|                                             success.style.display = 'block';
 | |
| 
 | |
|                                         } else {
 | |
|                                             error.style.display = 'block';
 | |
|                                         }
 | |
| 
 | |
|                                     } else {
 | |
|                                         error.style.display = 'block';
 | |
|                                     }
 | |
| 
 | |
|                                 } catch (e) {
 | |
|                                     panel.style.display = 'none';
 | |
|                                     error.style.display = 'block';
 | |
|                                 }
 | |
|                             }
 | |
|                         };
 | |
| 
 | |
|                         request.open('POST', '<?php echo $licenseUpdate; ?>');
 | |
|                         request.send(data);
 | |
|                     });
 | |
|                 }
 | |
|             }
 | |
|         })();
 | |
|     </script>
 | |
| 
 | |
| <?php else : ?>
 | |
|     <div class="error">
 | |
|         <?php echo Text::_('LIB_SHACKINSTALLER_LICENSE_KEYS_MANAGER_REQUIRED'); ?>
 | |
|     </div>
 | |
| <?php endif;
 |