Есть ли способ скрыть значение «глобальной» переменной, передаваемой через прослушиватель событий, при этом позволяя сценарию работать? - PullRequest
0 голосов
/ 12 марта 2020

Я создаю плагин на OctoberCMS, где пользователь может ввести код в поле в меню настроек плагина. Я сохранил этот ввод в глобальную переменную, которую я вставил в шаблон для страниц.

В плагине. php, код для сохранения его в глобальной переменной:

 public function boot()
{
    Event::listen('cms.page.beforeDisplay', function($controller, $url, $page) {

        $settings = Settings::instance();

        $script = $settings->script; 

        $controller->vars['script'] = $script;
    });
}

В файле template.htm вызывается переменная в тегах:

{{ script | raw }}

, которая затем отображает код, который был введен при проверке страницы.

Мой вопрос , есть ли способ для фактического значения переменной быть скрытым, но чтобы скрипт все еще работал? Так что любые пользователи, просматривающие веб-сайт, не смогут «осмотреть» его и увидеть, что это за сценарий. Спасибо

1 Ответ

3 голосов
/ 16 марта 2020

Если вы хотите сделать так, как это делает скрипт Google Analytics, вам нужно создать файл скрипта.

your-javascript-file.js теперь разместите его где-нибудь в другом домене или на том же сайте и скопируйте его URL.

теперь в вашей настройке $settings->script для этой переменной, из внутренних настроек вы можете установить значение как.

<script src="https://your_site/something/your-javascript-file.js"></script>

, так что на вашей веб-странице будет отображаться что-то вроде ^ это, но не фактический код. пользователь должен копать еще один шаг, чтобы увидеть реальный код. но да in your web-page's source code only this single line will appear not js code it self.

если есть сомнения, пожалуйста, прокомментируйте.

...