• Как интегрировать PhpBb форум в Yii2?

    @AlexWeb6667 Автор вопроса
    Максим Федоров, Спасибо большое за наводку, поставил, и вправду все просто!)
  • Как интегрировать PhpBb форум в Yii2?

    @AlexWeb6667 Автор вопроса
    Максим Федоров, Спасибо, да просматривал его, но не пробовал ставить, вы в рабочих проектах пользовались им? Как он? Да с RBAC работаю)
  • Как передать массив значений через Active Form?

    @AlexWeb6667 Автор вопроса
    Максим Федоров, Спасибо, не знал... Как же я в прошлый раз тогда сохранил в базу через массив? Наверное по тому, что только require указал, без формата?
  • 0 в реакте, вопрос - стоит ли использовать реакт в многостраничном сайте?

    @AlexWeb6667 Автор вопроса
    I_Love_Emma_Watson, Спасибо, статья понятная, но немного похожа на описание какой реакт плохой, но пока сам не попробую выводов делать не буду
  • 0 в реакте, вопрос - стоит ли использовать реакт в многостраничном сайте?

    @AlexWeb6667 Автор вопроса
    davidnum95,Я понимаю что в основе лежит js в котором есть ajax, и что все будет передаваться подобным образом. Я к тому есть ли смысл вместо

    //Отправка формы изменения товара AJAX-oм
        $(document).on("submit", ".update_form", function () {
    
    
            //Сама форма
            var form = $(this),
                id = form.attr('data-id');
            $.ajax({
                    type: form.attr('method'),
                    url:  '/admin/my-products/update-ajx/' + id,
                    data: form.serializeArray(),
                }
            )
    
            //Запрос отправлен
                .done(function(data) {
                    // $('#product-form')[0].reset();
                    if (data.validation) {
                        //Не прошла валидация с сервера
                        form.yiiActiveForm('updateMessages', data.validation, true); // renders validation messages at appropriate places
                    } else {
                        jQuery('.my_own_info').html(data);
                        window.history.replaceState('admin', null, '/admin/my-products/index');
                    }
                })
                .fail(function () {
                    //Запрос не ушел
                    alert('Ошибка, попробуйте позже');
                })
    
            return false; // 
    
    
        });


    использовать реакт, это быстрее, удобней надежней, или в чем смысл вообще замены обычных таких Ajax запросиков, на использование реакта?
  • Как делать рендер в модели, и вообще правильно ли это?

    @AlexWeb6667 Автор вопроса
    Максим Тимофеев, Понял, наверное сокращу тогда действительно часть лишних Ajax запросов, а то что наколдовал сотру и оберну лучше в Pjax. Спасибо что уделили время и по архитектуре хоть чутка разъяснили, и не только по ней)
  • Как делать рендер в модели, и вообще правильно ли это?

    @AlexWeb6667 Автор вопроса
    Максим Тимофеев, Запрос заказчика) Да и самому было чисто интересно попробовать как это сайт на Ajax делать, смысл получить что-то типа социальной сети, своего сообщества гдет на тыс человек. С моментальными уведомлениями, форумом, магазинчиком и еще пару финтеплюшек. Но чем больше пырхаюсь, тем больше понимаю что хардкорно это очень, и не знаю yii2 тут вообще уместен?Но ооочень много нового почерпнул пока пытался все это сделать, полезный интересный опыт, вот бы до конца добить) Есть конечно вариант убедить заказчика что и на обычных запросах проживем, но опять же, хотелось бы до конца сражаться, так то там не сложно все, кроме форума и уведомлений. Раз уж будете советовать, может с форумом что-то подскажите? Видел у Елисееваинтеграцию в yii, но не пробовал, в моем сознании форум это вроде просто, но еще не делал.
  • Как делать рендер в модели, и вообще правильно ли это?

    @AlexWeb6667 Автор вопроса
    Максим Тимофеев,Ваше видео, 24:00, у меня как раз та ситуация когда весь сайт на Ajax, ну можно и на PJax сделать, а Angular учить наверное столько же сколько и yii. То есть я тот же Pjax пытаюсь в ручную исполнить?)
  • Как делать рендер в модели, и вообще правильно ли это?

    @AlexWeb6667 Автор вопроса
    Максим Тимофеев, ваш же урок смотрел, где вы говорили что Pjax не предназначен для таких задач, и лучше так не делать, или вручную на JQ запросы не спасает ситуацию?)
  • Как делать рендер в модели, и вообще правильно ли это?

    @AlexWeb6667 Автор вопроса
    Максим Тимофеев,Не не все верно, просто я подмену url делаю для того чтоб юзер нормальные ссылки видеть и мог по ним переходить, и если url /ajax/product?id=1 скажем не сработает, или очь долго думать будет, просто делаю переход по ulr /product/1

    $('body').on('click', '.content_nav>.my_feed_ajx',  function () {
        
        
    
            //Запрос
            $.ajax({
                type: 'POST',
                url: '/admin/own-ajx/index',
                dataType: "html",
                success: function (data) {
    
                    //Если вернет вид
                    if (jQuery('.my_own_info').html(data)) {
                     //Подменяю url будто я обычным запросом сюда перешел
                     //И если пользователь обновит страничку, обычный запрос полетит по это адресу
                     window.history.replaceState('admin', null, '/admin/own/index');
    }
                    
                },
    
    //Если прошел таймаут(еще не ставил)
                error: function () {
                        переход по обычной ссылке 
                        $(location).attr('href','/admin/own/index');
                    
                }
    
            });
    
        
        
    });


    С какого перепугу возникнет ситуация при которой на этот /ajax/product?id=1 надо будет попасть через обычный get?

    Я вроде не писал об этом, ну или не правильно выразил мысли.

    Спасибо помощь, буду наводить порядок в своем бардачке)
  • Как делать рендер в модели, и вообще правильно ли это?

    @AlexWeb6667 Автор вопроса
    Максим Тимофеев, Не, в Pjax не оборачивал, но поставлю тамаут для ajax запроса, и если он пройдет, будет просто переход по ссылке '/own/my-products'.
    То есть если я перейду по ссылке, /own/my-products Контроллер грузит весь шаблон, а если на странице кликну кнопку мои товары, то подгружаю в уже готовый вид маленький кусочек с продуктами и меняю url на ' /own/my-products', и опять же, если пользователь обновит страничку то получит всю страничку целиком. Наверное в каждом контроллере просто очь много экшенов наклепаю, т.к создавать для каждого контроллера отдельный контроллер для Ajax запросов проблематично, и захламит всю папку. Так будет лучше?
  • Как делать рендер в модели, и вообще правильно ли это?

    @AlexWeb6667 Автор вопроса
    Максим Тимофеев, да то что наворотил это да) Вообще не предполагалось что сайт на AJAX будет, это на ходу выросло(Так вообще уж точно не должно быть, сам привык продумывать прежде чем делать, но уж так вышло) ну я и с минимальным знанием и пониманием архитектуры сотворил такое чудо)

    Я бы вообще вынес ajax запросы в отдельный контролер. А на разные экшены раздробить точно надо.


    То есть у меня есть допустим 3-4 главных контроллера, скажем Личная страница, Магазин, Пользователи.

    Реализовать их как для обычных get запросов(Они ведь тоже должны быть?) на случай если AJax лаганет
    class OwnController extends Controller
    {
    
    public function actionIndex()
        {
           return $this->render('index');
        }
    
    }


    И для каждого из них создать свой Контроллер для Ajax запросов типа
    class OwnAjxController extends Controller
    {
    
    public function actionIndex()
        {
      
            //Если пришел AJAX запрос
            if (Yii::$app->request->isAjax) {
                return $this->renderAjax('index');
             }
    
        }
    
    
    }


    ну а в js прописать куда будет отправлять каждая нажатая кнопка
    $('body').on('click', '.content_nav>.my_feed_ajx',  function () {
        
        
    
            //Запрос
            $.ajax({
                type: 'POST',
                url: '/admin/own-ajx/index',
                dataType: "html",
                success: function (data) {
    
                    if (jQuery('.my_own_info').html(data)) {
                     window.history.replaceState('admin', null, '/admin/own/index');
    }
                    
    
                    
                        
                    
    
                },
                error: function () {
    
                        $(location).attr('href','/admin/own/index');
                    
                }
    
            });
    
        
        
    });


    Чувствую утону в количестве контроллеров, экшенов и Js функциях, и если что-то нужно будет поменять, то придется разворатить весь проект( Но все же с точки зрения производительности и правильности написания кода так будет вернее?
  • Как делать рендер в модели, и вообще правильно ли это?

    @AlexWeb6667 Автор вопроса
    Максим Федоров,Понял) Ну про говнокод я уж сам догадался когда взглянул на все это) А куча екшенов в в контроллере это нормально?Не подскажите где можно подробней об архитектуре почитать, все что дает гугл это Модель - по жирнее, Контроллер - по проще, не должен реализовать никакой логики, виды не должны подгружать ничего из базы. А что почему да как, и на что влияет подробностей не нашел, по этому и нет ясности в этих вопросах, по этому и говнокод)
  • Как в дроп зоне отобразить уже загруженные картинки?

    @AlexWeb6667 Автор вопроса
    SalatProduction, Понял) спасибо, будет время разберусь с документашкой, решение кстати в DZ нашел, по этому менять загрузчик нет нужды, но будет время и с BU разберусь. Вот ответ может кому пригодится.

    В Php выводим hidden ipnut или тупо дивы с именами картинок.

    Потом в Js в цикле добавляем каждую в DZ, JS код писать после формы

    //Кол-во блоков с классом .server_img(То есть блоков с именами)
    var path = $('.server_img').length;
    
    //Сколько картинок столько и циклов
    for (i = 1; i <= path; i++) {
    
      //Имя каждой
      var img_name = $('#server_img_' + i).text(),
      mockFile = { name: img_name };
    
    //Добавляем файл drop-zon через событие
    myDropzone.emit("addedfile", mockFile);
    
    //Делаем превьюху по Url где хранятся загруженные картинки
    myDropzone.emit("thumbnail", mockFile, "/web/upload/store/Products/" + mockFile.name);
    
    //Даем статус загруженные
    myDropzone.emit("complete", mockFile);
        
        }


    Конечно корявенько на скорую руку, но работает)
  • Как в дроп зоне отобразить уже загруженные картинки?

    @AlexWeb6667 Автор вопроса
    SalatProduction, Может оно и есть) Но я не смог найти правильного решения, мне нужно при создании формы динамически добавлять input['FormName']['images'][] с путем к картинке, которая создается на сервере, и если форма отправлена сохранять, с превьюхами и возможностью удалить картинку или добавить на клиенте, а потом отправлять на сервер (Синхронно), а там по моему отдельно загружаешь фотки, потом жмешь отдельно загрузить и только потом отправляешь вместе с формой, короче много лишних действий и гемора с которым не разобрался, а так может можно все реализовать, не разобрался прост.
  • Как в дроп зоне отобразить уже загруженные картинки?

    @AlexWeb6667 Автор вопроса
    SalatProduction, Уже знаком с этим расширением, оно не удовлетворяет другие запросы, при создании товара, дропзона подошла, но теперь нужно просто отобразить уже существующие картинки в зоне, для этого даже есть функция (выше) просто я с ней не разобрался, так как сильно JS не понимаю, не логично не разобравшись с методами подходящего инструмента менять его на другой, т.к с ним еще дольше разбираться. По этому спросил может кто уже апдейтил через Drop-zone, но все же спасибо)
  • Как лучше реализовать онлайн оповещения?

    @AlexWeb6667 Автор вопроса
    Максим Тимофеев, Ну gulp уже давно юзаю, улетная вещь, прям вообще избавляет от головняка, компиляторов, конкатов, префиксов.