These are chat archives for yiisoft/yii2/rus

11th
Oct 2017
Punka
@Punka
Oct 11 2017 04:33

приветствую коллеги

KarmaBot
@KarmaBot
Oct 11 2017 04:33
@Punka, здравствуй.
Stas
@ASYOU99
Oct 11 2017 06:17
Здрасте
KarmaBot
@KarmaBot
Oct 11 2017 06:17
@ASYOU99, ну рассказывай. Как жизнь? :)
GomelOblgas
@GomelOblgas
Oct 11 2017 06:53
Добрый день. Столкнулся с проблемой после return $this->renderAjax('/building/_porches', ['model' => $building]);
KarmaBot
@KarmaBot
Oct 11 2017 06:53
@GomelOblgas и тебе не хворать :)
GomelOblgas
@GomelOblgas
Oct 11 2017 06:54
на странице не подхватывается скрипт
$(document).ready(function () {
$('#horizontalTab').easyResponsiveTabs({
type: 'default', //Types: default, vertical, accordion
width: 'auto', //auto or any width like 600px
fit: true // 100% fit in a container
});
});
в общем данные загружаются (они есть на странице), но скрипт который должен формировать вкладочки естественн не отрабатывает
image.png
было
стало
image.png
если делать

$script = <<< JS

JS;
$this->registerJs($script);

то работает
но мне кажется что это откровенный говнокод
Andrey Kushnarev
@andku83
Oct 11 2017 06:58
ты js-ом запрашиваешь этот renderAjax?
GomelOblgas
@GomelOblgas
Oct 11 2017 07:01
он изначально есть на странице
<?php Pjax::begin(['enablePushState' => false]); ?>
<?= $this->render('_porches', ['model' => $model]) ?>
<?php Pjax::end(); ?>
Andrey Kushnarev
@andku83
Oct 11 2017 07:02
ну ты же по событию обновляешь?
GomelOblgas
@GomelOblgas
Oct 11 2017 07:02
да п кнопке
<?php $form = ActiveForm::begin([
'action' => Url::toRoute(['porch/update1', 'buildingId' => $model->id]),
'options' => [
'data-pjax' => '1'
],
'id' => 'porchesUpdateForm'
]);
?>Вот что внутри файла _porches
Andrey Kushnarev
@andku83
Oct 11 2017 07:04
function () {
$('#horizontalTab').easyResponsiveTabs({
type: 'default', //Types: default, vertical, accordion
width: 'auto', //auto or any width like 600px
fit: true // 100% fit in a container
});
сделай в виде именованной функции, и вызывай его в документ реди, а так же $(document).on('pjax:success’, …)
и по идее если твой pjax блок находится в этой вью то можно делать просто
return $this->render('/building/_porches', …)
GomelOblgas
@GomelOblgas
Oct 11 2017 07:09
спасибо попробую
KarmaBot
@KarmaBot
Oct 11 2017 07:09
@GomelOblgas, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
GomelOblgas
@GomelOblgas
Oct 11 2017 07:09
@andku83 спасибо попробую =)
KarmaBot
@KarmaBot
Oct 11 2017 07:09
Спасибо (+1) для @andku83 принято! Текущая карма +80.
GomelOblgas
@GomelOblgas
Oct 11 2017 07:13
$(document).ready(addHorizontalTab()); - сработало
$(document).on('pjax:success', addHorizontalTab()); - не сработало =(
Eugene
@bloodrain777
Oct 11 2017 07:25
Всем привет
@GomelOblgas У тебя событие стоит на document ? pjax:success
Andrey Kushnarev
@andku83
Oct 11 2017 07:27
$(document).on('pjax:success', addHorizontalTab); - а если так?
Eugene
@bloodrain777
Oct 11 2017 07:28
А если еще понадобится на странице pjax? на каждое pjax:success будет отрабатывать addHorizontalTab
Andrey Kushnarev
@andku83
Oct 11 2017 07:29
@bloodrain777 если скрипт правильный то нормально будет
можно еще дать Pjax id и писать $(document).on('pjax:success', ‘#pjax_id', addHorizontalTab);
Eugene
@bloodrain777
Oct 11 2017 07:31
Ну если так $(document).on('pjax:success', ‘#pjax_id', addHorizontalTab); то согласен
и то
можно сократить
Andrey Kushnarev
@andku83
Oct 11 2017 07:32
#pjax_id написать вместо document? а если этот pjax внутри другого pjax будет?
Eugene
@bloodrain777
Oct 11 2017 07:33
каждому контейнеру pjax присваивается id
Andrey Kushnarev
@andku83
Oct 11 2017 07:34
@bloodrain777 если внешний pjax обновится то обработчики событий привязанные при загрузке страницы потеряются у внутреннего блока
Eugene
@bloodrain777
Oct 11 2017 07:35
@andku83 ааааа, то есть только $(document) ?
GomelOblgas
@GomelOblgas
Oct 11 2017 07:39
посидел покурил и сделал так
$(document).on('pjax:success', function ()
{
addHorizontalTab();
});
@andku83 @bloodrain777 спасибо что не оставили с проблемой один на один =)
KarmaBot
@KarmaBot
Oct 11 2017 07:39
Спасибо (+1) для @andku83 принято! Текущая карма +81.
Спасибо (+1) для @bloodrain777 принято! Текущая карма +23.
GomelOblgas
@GomelOblgas
Oct 11 2017 07:40
@andku83 $(document).on('pjax:success', addHorizontalTab); но так тоже сработало
Andrey Kushnarev
@andku83
Oct 11 2017 07:42

@andku83 ааааа, то есть только $(document) ?

для полной динамики - ДА

но если мы подвязываем анонимный обработчик при каждой загрузке контента, то $(document).on( -даже может ломать работоспособность
то есть все-таки по ситуации
Eugene
@bloodrain777
Oct 11 2017 07:48
@andku83 понял Спасибо
KarmaBot
@KarmaBot
Oct 11 2017 07:48
Спасибо (+1) для @andku83 принято! Текущая карма +82.
GomelOblgas
@GomelOblgas
Oct 11 2017 07:49
@andku83 так я правильно сделал или всё не так?=)
Andrey Kushnarev
@andku83
Oct 11 2017 07:50
$(document).on('pjax:success', addHorizontalTab); - по идее правильнее, в твоем случае ты создаешь анонимную функцию которая вызывает именованную.
если сделать так как я только что написал то потом можно отключить обработчик
$(document).off('pjax:success', addHorizontalTab);
а в твоем случае по имени его уже отключать нельзя
GomelOblgas
@GomelOblgas
Oct 11 2017 07:52
@andku83 а если несколько блоков pjax будет на странице?
Andrey Kushnarev
@andku83
Oct 11 2017 07:52
обработчик будет выполняться для success всех pjax
чтобы было только для твоего блока нужно привязаться по селектору, к примеру $(document).on('pjax:success', '#pjax_id', addHorizontalTab);
GomelOblgas
@GomelOblgas
Oct 11 2017 08:10
@andku83 я так понимаю это porchesUpdateForm если использую такой код? <?php $form = ActiveForm::begin([
'action' => Url::toRoute(['porch/update1', 'buildingId' => $model->id]),
'options' => [
'data-pjax' => '1'
],
'id' => 'porchesUpdateForm'
]);
Andrey Kushnarev
@andku83
Oct 11 2017 08:14
нет
            <?php Pjax::begin([
                 'id'           => 'product-list',
…
            ]); ?>
тут это product-list
GomelOblgas
@GomelOblgas
Oct 11 2017 08:19
я конечно понимаю, что мой вопрос попахивает тупостью и мне надо курить мануал, но всё же рискну - куда мне этот впихнуть?
у меня уже есть на форме <?php Pjax::begin(['enablePushState' => false]); ?>
<?= $this->render('_porches', ['model' => $model]) ?>
<?php Pjax::end(); ?>
т.е. должно получится <?php Pjax::begin(['id' => 'какой-то идентификатор','enablePushState' => false]); ?>
<?= $this->render('_porches', ['model' => $model]) ?>
<?php Pjax::end(); ?>
Andrey Kushnarev
@andku83
Oct 11 2017 08:30
да
код оборачивай в обратные кавычки ` - будет читабельнее и лучше их писать по 3(```) и с новой строки
GomelOblgas
@GomelOblgas
Oct 11 2017 08:31
@andku83 спасибо, как говорил классик "А где возьмешь [тут про кавычки]"
KarmaBot
@KarmaBot
Oct 11 2017 08:31
Спасибо (+1) для @andku83 принято! Текущая карма +83.
dsx90
@dsx90
Oct 11 2017 09:45
Всем привет! Есть заказ на разработку сайта, кто хочет взяться за работу пишите https://vk.com/dsx90
Stas
@ASYOU99
Oct 11 2017 10:11
@dsx90 ты бы уточнил сам же знаешь нет ТЗ результат хз
Eugene
@bloodrain777
Oct 11 2017 12:16
Это же гениально https://github.com/nvbn/thefuck :D
Nuzsk
@Nuzsk
Oct 11 2017 12:22
давно еще видел )
Misha
@sallfris
Oct 11 2017 12:53
что за блин Exception 'yii\base\InvalidParamException' with message 'The file or directory to be published does not exist: D:\OSPanel\domains/vendor/bower-asset/jquery/dist' Почему не там ищет?
Alexey Samoylov
@russianlagman
Oct 11 2017 13:00
а fxp плагин-то поставил?
Misha
@sallfris
Oct 11 2017 13:02
да уже который раз переустанавливаю и кеш чищу
Alexey Samoylov
@russianlagman
Oct 11 2017 13:03
"extra": {
        "asset-installer-paths": {
            "npm-asset-library": "vendor/npm",
            "bower-asset-library": "vendor/bower"
        }
    },
такое в композер жсон глянь еще
Alexey Samoylov
@russianlagman
Oct 11 2017 13:05
грохни вендор диру совсем
Misha
@sallfris
Oct 11 2017 13:06
Я его как только не пробовал. В пути не хватает папки домена
@russianlagman Пробовал, грохал вендор, чистил кеш, заного ставил fxp
Alexey Samoylov
@russianlagman
Oct 11 2017 13:07
глобальный кэш почисти
Andrey Kushnarev
@andku83
Oct 11 2017 13:08
как можно инициировать Yii::$container->set() при запуске приложения?
Eugene
@bloodrain777
Oct 11 2017 13:12
Чет немного не понял что надо сделать
Alexey Samoylov
@russianlagman
Oct 11 2017 13:12
/common/config/bootstrap.php или через конфиги в последних версиях yii
Andrey Kushnarev
@andku83
Oct 11 2017 13:13
в конфигах еше не существует урлМанагер, мне нужно чтобы после того как апп уже инициализировался подключились определенные настройки
Eugene
@bloodrain777
Oct 11 2017 13:15
погодь, если app инициализировался значит конфиги уже есть
dsx90
@dsx90
Oct 11 2017 13:16
@ASYOU99 мне нужен человек для совместной работы, ТЗ и ход работы будем продумывать вместе
Andrey Kushnarev
@andku83
Oct 11 2017 13:21
как я понимаю нужно что-то типа:
    'container'  => [
        'definitions' => [
            ‘????????' => [
                'on eventName' => function () {
                        Yii::$container->set();
                    );
                }
            ],
        ],
    ],
а вот что должно быть вместо ??????? и eventName хз ?!
Misha
@sallfris
Oct 11 2017 13:27
@russianlagman он все равно упорно в bower-asset все пихает
Eugene
@bloodrain777
Oct 11 2017 13:38
@andku83 попробуй в конфиге указать что то типа
    'on beforeRequest' => function() {
        Yii::$container->set();
    },
Andrey Kushnarev
@andku83
Oct 11 2017 13:39
а к кому подвязывать этот 'on beforeRequest’?
Eugene
@bloodrain777
Oct 11 2017 13:40
@andku83 ни к кому, вот как то так http://joxi.ru/EA4vWzlFwkDvkm
Andrey Kushnarev
@andku83
Oct 11 2017 13:43
@bloodrain777 спасибо, и на той странице был, но не мог понять куда его пихнуть
KarmaBot
@KarmaBot
Oct 11 2017 13:43
Спасибо (+1) для @bloodrain777 принято! Текущая карма +24.
Eugene
@bloodrain777
Oct 11 2017 13:43
@andku83 Да не за что