1. Приветствуем Вас на нашем закрытом форуме для складчиков сайта cmsheaven.org. Если Вы частный вебмастер, фрилансер, владелец малого или среднего бизнеса, представитель студии по разработке сайтов - будем рады видеть Вас в наших рядах экономных людей.
    Регистрация на форуме возможна только после вступления в складчину

Компоненты / модули No Boss Активация

Тема в разделе "Инструкции и мануалы", создана пользователем eLig, 7 май 2020.

  1. eLig

    eLig Опытный складчик

    Регистрация:
    28 окт 2014
    Сообщения:
    75
    Симпатии:
    21
    1. Устанавливаем на сайт
    2. В плагинах отключаем No Boss Auto Update
    3. В БД находим таблицу #_update_sites, в ней находим имя нашего компонента / модуля и для него в поле extra_query пишем:
    Код:
    token=75cf5b06aebd30dc8bb838abfb6bb6a6&plan=123456
    4. Открываем файл /libraries/noboss/forms/fields/nobosslicense.php и в самом конце находим и меняем:
    PHP:
            // Realiza a requisição
            
    $tokenInfo NobossUtilCurl::request("GET"$url$dataPostnull20);
    на
    PHP:
            // Realiza a requisição
            //$tokenInfo = NobossUtilCurl::request("GET", $url, $dataPost, null, 20);
         
            
    $tokenInfo = (object) array(
      
    'success' => '1',
      
    'data' => '{"responsible_name":"CMSJoomla","id_license":"0000","id_parent_license":"0000","id_extensions":"00","support_technical_expiration":"0000-00-00 00:00:00","support_updates_expiration":"0000-00-00 00:00:00","plan_title":"Mega Plan","extension_version":"0.0.00","token":"75cf5b06aebd30dc8bb838abfb6bb6a6","authorized_url":"","id_plan":"123456","state":"1","has_higher_plan":"1","inside_support_updates_expiration":"1","inside_support_technical_expiration":"1","days_to_expire_support_updates":"365","jed_url":"","is_free":"0","has_upgrade":"0","messages":false,"notices_header":[],"notices_tab_license":[{"type":"info","title":"","message":""},{"type":"success","title":"","message":""}]}',
    );
    5. Все :)
    Последнее редактирование: 7 май 2020
    #1
    Ali нравится это.
  2. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Пункт 3. Почему-то несмотря на то что в админке джумлы имеются аж 19 строк с обновлениями разных компонентов, в базе данных строчки с обновлениями только для 16 компонентов и искомой из пунката 3 нету. Соответственно некуда вставлять код.
    #2
  3. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Кто может мне прислать строчку из БД соответствующую данному расширению, чтобы мне в ручную создать строчку и потом туда ключ воткнуть?
    [​IMG]
    #3
  4. eLig

    eLig Опытный складчик

    Регистрация:
    28 окт 2014
    Сообщения:
    75
    Симпатии:
    21
    Какой компонент / модуль?
    #4
  5. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    меня интересует
    Events Calendar v2.1.1
    на страничке которого дана ссылка на данную ветку форума. С припиской: Инструкция по активации:
    Однако не могу выполнить "3. В БД находим таблицу #_update_sites, в ней находим имя нашего компонента / модуля и для него в поле extra_query пишем:"
    так как у меня нету соответствующей записи в БД, хотя компонент стоит.
    #5
  6. eLig

    eLig Опытный складчик

    Регистрация:
    28 окт 2014
    Сообщения:
    75
    Симпатии:
    21
    [​IMG]
    Попробуй скачать и переустановить.
    #6
  7. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Позор на мои седины, вот, что значит префикс по умолчанию оставлять у БД. Неудобочитаемый он меня не навел на мысль правильную. А дело было в том что сайт новый, свой префикс я что-то не запомнил, да ладно, не запомнил...было делу пару недель назад пытался безрезультатно использовать компонент мультидоменов, который в процессе настройки в ту же БД клонировал но с другим (тоже не человеко-удобочитаемом виде префикас) таблицы основной БД.
    Так что упустил я момент, что в моей базе данных два набора таблиц с разными префиксами.
    А ларчик просто открывался xD
    #7
  8. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    пункты выполнил, но получаю ошибку[​IMG]
    При закрытии данного окошка, не доступы (с замочками все варианты календаря)
    [​IMG]
    #8
  9. eLig

    eLig Опытный складчик

    Регистрация:
    28 окт 2014
    Сообщения:
    75
    Симпатии:
    21
    Темы скачиваются с сайта производителя, когда выбираешь. Они не хранятся в вашей БД. При скачивании идет проверка лицензии, соответственно её не пройти.
    #9
  10. eLig

    eLig Опытный складчик

    Регистрация:
    28 окт 2014
    Сообщения:
    75
    Симпатии:
    21
    Вопросом с темами займусь позже, может получится как-то обойти.
    #10
  11. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Понятно, спасибо, без тем я понял невозможно использовать.
    #11
  12. eLig

    eLig Опытный складчик

    Регистрация:
    28 окт 2014
    Сообщения:
    75
    Симпатии:
    21
    Не правильно вы поняли.
    1. Без тем работает, но разукрашивать нужно самому.
    2. Судя по скрину вы не сделали пункт 4.
    #12
  13. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    При попытке сохранить модуль, выходит ошибка требующая обязательно выбрать layout тему. А темы под замком, как и прежде.
    [​IMG]
    Пункт 4 выполнял, об этом свидетельствуют (как я думаю) изменившиеся пункты тех поддержка 0000 и прочие.
    Ведь вроде именно эти 0000 и фигурируют в пункте 4
    [​IMG]
    #13
  14. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Так же при попытке перейти из выбор слоев под замком которые, грузится пустая страница с выбором тарифа, считаю что тоже по причине выполнения 4 пункта.
    [​IMG]
    #14
  15. eLig

    eLig Опытный складчик

    Регистрация:
    28 окт 2014
    Сообщения:
    75
    Симпатии:
    21
    Специально поставил и сделал по инструкции, в итоге получаю:
    #15
  16. shiftmaster3000

    shiftmaster3000 Cкладчик

    Регистрация:
    4 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Ну вот мой код файла, разве я ошибся? хмм(
    Код:
    <?php
    /**
    * @package            No Boss Extensions
    * @subpackage      No Boss Library
    * @author            No Boss Technology <contact@nobosstechnology.comgi
    * @copyright        Copyright (C) 2020 No Boss Technology. All rights reserved.
    * @license            GNU Lesser General Public License version 3 or later; see <https://www.gnu.org/licenses/lgpl-3.0.en.html>
    */
    
    defined("_JEXEC") or die('Restricted access');
    
    jimport('joomla.form.helper');
    jimport('noboss.util.curl');
    jimport('noboss.util.url');
    jimport('noboss.forms.fields.nobosslicense.nobosslicensemodel');
    
    JFormHelper::loadFieldClass('hidden');
    
    class JFormFieldNobosslicense extends JFormFieldHidden
    {
        /**
         * The form field type.
         *
         * @var    string
         */
        protected $type = "nobosslicense";
    
        protected function getLabel(){
            $this->view_license_info = (string) $this->element['view_license_info'];
            $this->view_license_info = $this->view_license_info == '' ? true : (bool)$this->view_license_info;
            // Caso view_license_info seja verdadeiro, esconde a label
            if($this->view_license_info){
                parent::getLabel();
            }
        }
    
        protected function getInput(){
            // Pega documento.
            $doc = JFactory::getDocument();
    
            $formDataModule = $this->form->getData()->get('module');
    
            $template = $this->form->getData()->get('template');
    
            // Pega o nome do componente da url caso esteja nas configurações globais
            $componentNameGlobalConfig = JFactory::getApplication()->input->get->get('component');
            // Pega o nome da extensao
            if (!empty($componentNameGlobalConfig)) {
                // pega o nome de nas configuraçoes globais
                $this->extensionName = $componentNameGlobalConfig;
            // Caso seja um template
            } else if (!empty($template)) {
                // Pega a variavel template do form
                $this->extensionName = $this->form->getData()->get('template');
            }
            else if (empty($formDataModule)){
                // pega o nome de componentes
                $formNameArray = explode('.', $this->form->getName());
                $this->extensionName = $formNameArray[0];
            }
            else {
                // Pega o nome em casos de modulo
                $this->extensionName = $formDataModule;
            }
    
            $html = '';
    
            // Obtem o token e plano da base local
            $tokenPlanArray = NobossModelNobosslicense::getLicenseTokenAndPlan($this->extensionName);
    
            // Cria propriedades no contexto para uso posterior
            $this->token = array_key_exists("token", $tokenPlanArray) ? $tokenPlanArray['token'] : '';
            $this->inside_support_updates_expiration = '';
            $this->inside_support_technical_expiration = '';
            $this->state = '';
            $this->update_site_id = array_key_exists("update_site_id", $tokenPlanArray) ? $tokenPlanArray['update_site_id'] : '';
    
            $this->view_license_info = (string) $this->element['view_license_info'];
            $this->modal_display_messages = (string) $this->element['modal_display_messages'];
            $this->modal_display_notice_license = (string) $this->element['modal_display_notice_license'];
            // Cria valores default
            $this->view_license_info = $this->view_license_info == '' ? true : (bool)$this->view_license_info;
            $this->modal_display_messages = $this->modal_display_messages == '' ? true : (bool)$this->modal_display_messages;
            $this->modal_display_notice_license = $this->modal_display_notice_license == '' ? true : (bool)$this->modal_display_notice_license;
    
            $flags = new StdClass();
            $flags->modal_display_messages = $this->modal_display_messages;
            $flags->modal_display_notice_license = $this->modal_display_notice_license;
    
            // Token definido
            if(!empty($this->token)){
                // Busca as informações da licença, mandando o token da licenca
                $this->licenseInfo = $this->getLicenseInfo($this->token, $this->modal_display_messages);
    
                // Ocorreu um erro na requisicao
                if (!$this->licenseInfo->success){
                    // Exibe mensagem na aba licenca com detalhes do erro
                    echo  "<div class='alert alert-error' style='max-width: 800px;'><span class='icon-joomla icon-info'></span>".JText::sprintf('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_INITIAL_CONNECTION_ERROR_DESC').JText::sprintf('LIB_NOBOSS_ERROR_DETAILS_TITLE', $this->licenseInfo->message)."</div>";
    
                    // Define retorno a enviar para JS
                    $dataValue = 'CONNECTION_ERROR';
                }
    
                // Informacoes foram obtidas do servidor
                else if(!empty($this->licenseInfo) && $this->licenseInfo->success){
                    // Verifica se o token enviado não era inválido
                    if(!empty($this->licenseInfo->data) && $this->licenseInfo->data != 'INVALID_TOKEN'){
                        $this->licenseInfoData = json_decode($this->licenseInfo->data);
                        $this->inside_support_updates_expiration = $this->licenseInfoData->inside_support_updates_expiration;
                        $this->inside_support_technical_expiration = $this->licenseInfoData->inside_support_technical_expiration;
                        $this->updates_near_to_expire = $this->licenseInfoData->days_to_expire_support_updates < 7 && $this->licenseInfoData->days_to_expire_support_updates > 0;
                        $this->has_parent_license = !empty($this->licenseInfoData->id_parent_license);
                        $this->state = $this->licenseInfoData->state;
                        $this->licenseInfoData->siteUrl = base64_encode(str_replace(array('https://www.', 'http://www.', 'https://', 'http://'), '', JURI::root()));
                        $this->licenseInfoData->view_license_info = $this->view_license_info;
                        $this->licenseInfoData->authorized_url = $this->licenseInfoData->authorized_url;
                        $this->license_has_errors = !$this->inside_support_updates_expiration || !$this->licenseInfoData->state || !$this->licenseInfoData->isAuthorizedUrl;
                        $flags->license_has_errors = $this->license_has_errors;
                        $flags->has_parent_license = $this->has_parent_license;
                 
                        // Dados da licenca que poderao ser salvos no banco para recuperar qnd comunicacao nao funcionar com servidor
                        $objLicenseSave = new stdClass();
                        $objLicenseSave->themes_alias = $this->licenseInfoData->themes_alias;
                        $objLicenseSave->fields_block = $this->licenseInfoData->fields_block;
                        $objLicenseSave->loadmode_alias = $this->licenseInfoData->loadmode_alias;
                        $objLicenseSave->isAuthorizedUrl = $this->licenseInfoData->isAuthorizedUrl;
                        // Converte o obejto para json e adiciona no value do campo para passar depois no input hidden
                        $this->value = json_encode($objLicenseSave);
    
                        // Salva numa em uma variavel para passar para o js depois
                        $dataValue = $this->licenseInfoData;
                        // Verifica se deve exibir as informações da licença
                        if($this->view_license_info){
                            // Inclui o html da modal de tema, escondida
                            ob_start();
                            require("nobosslicense/nobosslicenselayout.php");
                            $html .= ob_get_clean();
                        }
                        JText::sprintf('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UNAUTHORIZED_URL_DESC', $this->licenseInfoData->authorized_url, NoBossUtilUrl::getUrlNbExtensions(), $this->licenseInfoData->id_license, array('script' => true));      
                    } else {
                        $dataValue = 'INVALID_TOKEN';
                    }
                }
            } else {
                $dataValue = 'TOKEN_OR_PLAN_NOT_FOUND';
            }
    
            // Adiciona as variáveis ao js
            $doc->addScriptOptions('nobosslicense', array(
                'data' => $dataValue,
                'flags' => $flags
            ));
    
            // Renderiza campo hidden para salvar o id do plano do usuario
            $html .= "<input type='hidden' id='license_token' name='license_token' value='{$this->token}'>";
            $html .= "<input type='hidden' id='license_update_support_period' name='license_update_support_period' value='{$this->inside_support_updates_expiration}'>";
            $html .= "<input type='hidden' id='license_state' name='license_state' value='{$this->state}'>";
            // Campo para atualizar o plano no banco depois de um update
            $html .= "<input type='hidden' id='update_site_id' name='update_site_id' value='{$this->update_site_id}'>";
            // Campo para manter armazenado no banco dados mais importantes da licenca para qnd falhar comunicacao
            $html .= "<input type='hidden' name='{$this->name}' value='{$this->value}'>";
    
            // Adiciona as constantes de tradução para o JS
            JText::sprintf('NOBOSS_EXTENSIONS_URL_SITE', NoBossUtilUrl::getUrlNbExtensions(), array('script' => true));
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_CHANGE_LICENSE_URL');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_AUTHORIZED_URL');
    
            /* TODO: qnd token e/ou id do plano nao eh localizado na base local ou eh invalido, a constante abaixo eh exibida.
                        * Podemos melhorar para ter um mini formulario que o usuario digite o ID do plano e o token para atualizar na base local.
                        * Para atualizar na base, podemos aproveitar a funcao ja existente:
                            NobossModelNobosslicense::updateUserLocalPlan($updateSiteId, $extra_query)
                        * Para conseguir o dados a serem inseridos, o usuario continuara tendo que entrar em contato para obte-los com a gente
             */
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_INVALID_TOKEN_TITLE');
            JText::sprintf('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_INVALID_TOKEN_DESC', JText::_('NOBOSS_EXTENSIONS_URL_SITE_CONTACT'), array('script' => true));
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UNPUBLISHED_LICENSE_TITLE');
            JText::sprintf('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UNPUBLISHED_LICENSE_DESC', JText::_('NOBOSS_EXTENSIONS_URL_SITE_CONTACT'), array('script' => true));
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UNAUTHORIZED_URL_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_ALERT_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_CHANGE_LICENSE_URL_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_CHANGE_LICENSE_URL_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_CHANGE_LICENSE_URL_BUTTON_CONFIRM');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_CHANGE_LICENSE_URL_BUTTON_CANCEL');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_CHANGE_LICENSE_URL_UPDATE_ERROR_TITLE');
            JText::sprintf('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_CHANGE_LICENSE_URL_UPDATE_ERROR_DESC', NoBossUtilUrl::getUrlNbExtensions(), array('script' => true));
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_CHANGE_LICENSE_URL_UPDATE_SUCESS_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_CHANGE_LICENSE_URL_UPDATE_SUCESS_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UNAUTHORIZED_URL_BUTTON_KEEP_URL');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UNAUTHORIZED_URL_BUTTON_UPDATE_URL');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UPGRADE_CONFIRM_ACTION_BUTTON_CANCEL');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UPGRADE_CONFIRM_ACTION_BUTTON_CONFIRM');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UPGRADE_AVAILABLE_DOWNLOAD_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UPGRADE_AVAILABLE_DOWNLOAD_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UPGRADE_CONFIRM_ACTION_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UPGRADE_CONFIRM_ACTION_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UPGRADE_AVAILABLE_DOWNLOAD_NOW_BUTTON');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_UPGRADE_AVAILABLE_DOWNLOAD_LATER_BUTTON');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_INITIAL_CONNECTION_ERROR_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_INITIAL_CONNECTION_ERROR_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_UPGRADE_PLAN_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_INSTALL_NEW_CONFIRM_ACTION_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_INSTALL_NEW_CONFIRM_ACTION_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_INSTALL_NEW_CONFIRM_ACTION_BUTTON_CONFIRM');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_EXPIRED_LICENSE_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_EXPIRED_LICENSE_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_EXPIRED_LICENSE_CLOSE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_EXPIRED_LICENSE_RENEW');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_EXPIRING_LICENSE_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_EXPIRING_LICENSE_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_EXPIRING_LICENSE_CLOSE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_EXPIRING_LICENSE_RENEW');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_ALERT_HAS_ERRORS_MODULE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_ALERT_HAS_ERRORS_MODULE_LINK');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_ALERT_HAS_ERRORS_COMPONENT');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_ALERT_HAS_ERRORS_COMPONENT_LINK');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_ALERT_HAS_ERRORS_GLOBAL_COMPONENT');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_ALERT_HAS_ERRORS_GLOBAL_COMPONENT_LINK');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_PAGE_REFRESH_ALERT_TITLE');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_MODAL_PAGE_REFRESH_ALERT_DESC');
            JText::script('LIB_NOBOSS_FIELD_NOBOSSLICENSE_NOTICE_GET_PAID_VERSION');
    
            // Carrega os js e css
            $doc->addStylesheet(JURI::base()."../libraries/noboss/forms/fields/assets/stylesheets/css/nobosslicense.min.css");
            $doc->addScript(JURI::base()."../libraries/noboss/forms/fields/assets/js/min/nobosslicense.min.js");
    
            // retorna o html do campo
            return $html;
        }
    
        /**
         * Busca através de requisição as informações relacionadas a uma determinada licença
         *
         * @param String $extensionToken Token da licença que será buscado
         * @param Boolean $modalDisplayMessages Flag que informa se deve trazar as mensagens personalizadas da licença
         *
         * @return Object Retorna um objeto com as informações da licença e o array de mensagens
         */
        private function getLicenseInfo($extensionToken,  $modalDisplayMessages = true){
            // Url requisicao
            $url = NoBossUtilUrl::getUrlNbExtensions().'/index.php?option=com_nbextensoes&task=externallicenses.getLicenseInfo&format=raw';
    
            // Obtem dominio da url atual
            $siteUrl = str_replace(array('https://www.', 'http://www.', 'https://', 'http://'), '', JURI::root());
     
            // Identifica o idioma que esta sendo navegado para enviar junto na requisicao
            $currentLanguage = JFactory::getLanguage()->getTag();
      
            // Prepara dados a enviar via post
            $dataPost = array('token' => $extensionToken, 'modal_display_message' => $modalDisplayMessages, 'site_url' => $siteUrl, 'language' => $currentLanguage);
    
    // Realiza a requisição
            //$tokenInfo = NobossUtilCurl::request("GET", $url, $dataPost, null, 20);
    
            $tokenInfo = (object) array(
      'success' => '1',
      'data' => '{"responsible_name":"CMSJoomla","id_license":"0000","id_parent_license":"0000","id_extensions":"00","support_technical_expiration":"0000-00-00 00:00:00","support_updates_expiration":"0000-00-00 00:00:00","plan_title":"Mega Plan","extension_version":"0.0.00","token":"75cf5b06aebd30dc8bb838abfb6bb6a6","authorized_url":"","id_plan":"123456","state":"1","has_higher_plan":"1","inside_support_updates_expiration":"1","inside_support_technical_expiration":"1","days_to_expire_support_updates":"365","jed_url":"","is_free":"0","has_upgrade":"0","messages":false,"notices_header":[],"notices_tab_license":[{"type":"info","title":"","message":""},{"type":"success","title":"","message":""}]}',
    );
    
            // echo '<pre>';
            // var_dump($tokenInfo);
            // exit;
    
            return $tokenInfo;
        }
    }
    А пункт "3. В БД находим таблицу #_update_sites, в ней находим имя нашего компонента / модуля и для него в поле extra_query пишем:"
    имя компонента, я все 3и строки прописал ключ...
    [​IMG]

    пункт 2 думаю ошибки нет
    [​IMG]
    Последнее редактирование: 12 июн 2020
    #16
  17. beerlord

    beerlord Cкладчик

    Регистрация:
    14 янв 2017
    Сообщения:
    2
    Симпатии:
    0
    Сделал все по инструкции, все равно выскакивает то же сообщение token not located or invalid
    #17
  18. eLig

    eLig Опытный складчик

    Регистрация:
    28 окт 2014
    Сообщения:
    75
    Симпатии:
    21
    Пробовал мою инструкцию еще на нескольких сайтах, все прокатило. Честно говоря даже и не знаю чем помочь.
    #18