четверг, 16 мая 2019 г.

Подключение javascript в yii2

Inline js

Во view можно подключить произвольный javascript код:

$var = 123;
//начало многосточной строки, можно использовать любые кавычки
$script = <<< JS
    function foo() {
        return $var; //можно использовать переменные
    }
JS; //маркер конца строки, обязательно сразу, без пробелов и табуляции

$this->registerJs($script, yii\web\View::POS_READY);

получим сразу перед закрытием body:


<script type="text/javascript">
jQuery(document).ready(function () {
    function foo() {
        return 123;
    }
});</script>

другие варианты места подключения скрипта: (документация)
  • POS_HEAD: перед тегом </head>
  • POS_BEGIN: после тэга <body>
  • POS_END: перед тэгом </body>
  • POS_LOAD: оборачивается в jQuery(window).load(). Note that by using this position, the method will automatically register the jQuery js file.
  • POS_READY: оборачивается вjQuery(document).ready(). This is the default value. Note that by using this position, the method will automatically register the jQuery js file.

js-файл

$this->registerJsFile('url/to/file.js',  ['position' => yii\web\View::POS_END]);
источник  

вторник, 7 мая 2019 г.

Подсветка кода для blogger

Пересмотрел кучу вариантов для подсветки кода в blogger, единственное на данный момент рабочее решение это https://highlightjs.org

О том как его добавить в блог читаем здесь - https://81code.blogspot.com/2016/04/syntax-highlighter-blogger.html

Перед тем как вставить код, его нужно обработать например в HTML Escape
Еще для себя добавил плагин показа номеров строк - https://github.com/wcoder/highlightjs-line-numbers.js/

понедельник, 6 мая 2019 г.

Находим в тексте ссылки youtube и конвертим их в embed видео

Код:

function convertYoutube($string) {
    return preg_replace(
        "/\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i",
        "<iframe src=\"//www.youtube.com/embed/$2\" allowfullscreen></iframe>",
        $string
    );
}

Источник: stackoverflow.com