Skip to content
Snippets Groups Projects
LicenceStatus.php 2.32 KiB
Newer Older
<?php

/***************************************************************
 *  Copyright notice
 *  (c) sgalinski Internet Services (https://www.sgalinski.de)
 *  All rights reserved
 *  This script is part of the TYPO3 project. The TYPO3 project 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 3 of the License, or
 *  (at your option) any later version.
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
 *  This script 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.
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
namespace SGalinski\SgYoutube\Form\Element;

use SGalinski\SgYoutube\Service\LicenceCheckService;
use TYPO3\CMS\Backend\Form\Element\AbstractFormElement;

/**
 * Licence Status Field
 */
class LicenceStatus extends AbstractFormElement
{
    public function render(): array
    {
        $resultArray = [];
        $responseData = $this->checkLicenceKey();
        if (!$responseData) {
            return [];
Georgi's avatar
Georgi committed
        switch ($responseData['error']) {
            case 1:
                $errorOrWarning = 'danger';
                break;
            case 2:
                $errorOrWarning = 'warning';
                break;
            default:
                $errorOrWarning = 'success';
        }
Georgi's avatar
Georgi committed
        $message = '<div class="alert alert-' . $errorOrWarning . '" role="'
            . $errorOrWarning
Georgi's avatar
Georgi committed
            . '">' . $responseData['message'] . '</div>';
        $resultArray['html'] = $message;
        return $resultArray;
    }

    private function checkLicenceKey()
    {
        if (!LicenceCheckService::isTYPO3VersionSupported()
Georgi's avatar
Georgi committed
            || !LicenceCheckService::isTimeForNextCheck()
            || LicenceCheckService::isInDevelopmentContext()
            return [];
        }

        LicenceCheckService::setLastAjaxNotificationCheckTimestamp();
        $responseData = LicenceCheckService::getLicenseCheckResponseData(TRUE);
        return $responseData;
    }
Georgi's avatar
Georgi committed
}