Am
Вы, вот, всё тут про своё Эво, а люди работой реальной заняты. ((% Когда еще тапаешь в ответ, то вверху пишет "смотрит на баклажан". ((%
Am
🍆
Только в личке. (:
Alexander
тьфу блин
Alexander
any eggplant ...shot
Alexander
но работает да, я вчера видел
Евгений
Axenia
Ты не можешь голосовать с отрицательной кармой
Andrey
Настенька, пришли мне баклажан. Ты же тут.
Vitaliy
🍆
😂
Аляксандр
Ой, спалился 🙂
Serguei
Можно, наверное, и общую библиотеку функций/классов написать, которую использовать во всех остальных контроллерах/сниппетах/плагнах и чем угодно.
Am
Для этого, сначала, нужно перейти на контроллеры. ((%
Axenia
sashabeep (938.46) увеличил карму Ambrion (2847.58)
Sasha
Можно, наверное, и общую библиотеку функций/классов написать, которую использовать во всех остальных контроллерах/сниппетах/плагнах и чем угодно.
Да есть и другие варианты, но блин ответа на вопрос «хочу данные здесь и сейчас» там все равно нет :)
Axenia
webber_12 (5998.12) увеличил карму helgispbru (248.98)
Serguei
А кто подскажет, есть аналог php функции explode(), но чтобы в качестве разделителя можно было указать не один, а целый массив, чтобы по любому из разделителей строка разбивалась?
Pathologic
preg_split
Am
Это когда хотят запятых или | между массивами выбрать. ((%
Serguei
preg_split
Там пользовательские данные могут быть в качестве разделителя указаны. То есть их как-то придется заэкранировать, прежде чем передать в регулярку. Пока не очень понимаю. как именно экранировать именно под формат регулярки, чтобы все спец.символы могли бы быть в разделителе.
Serguei
А как это массив в качестве разделителя?😱
К примеру есть строка : Параметр1,Параметр2;Параметр3||Параметр4. Я хочу это разделить на 4 подстроки, в качестве разделителей указать array(',', ';', '||');
Serguei
Сами значения ',' или '||' задаются в админке администратором сайта, и соответственно он там может фиг чего угодно назадавать. То есть если встретится к примеру что-то типа * или /, то перед пердачей в регулярку это надо будет менять на \* и \/.
Serguei
Кажись, придумал... Через str_replace сначала все разделители поменять на один, так как в needle можно массив передать. А потом explode сделать.
Алексей
Подскажите по Commerce, при изменении статуса заказа пишет "Ошибка при изменении статуса!" и логах "Cannot update order history: Cannot insert history record!" но я не пойму в чем причина, раньше норм было, что может быть?
Serguei
$sep_data = explode($separators[0], str_replace($separators, $separators[0], $string)); Вот так работает :)
Алексей
Посмотри не слетел ли автоинкремент
в базе в таблице commerce_order_history?
Volodymyr
Да
Алексей
на id верно?
Алексей
пробую поставить не дает - https://prnt.sc/1zxcd2q
Алексей
что-то не получается
Oleg
Oleg
что-то не получается
ну так пишет же, что есть уже столбик с автоинкрементом, а он как горец - может быть только один
Алексей
и что делать в этой ситуации? раз уже есть автоинкремент у какого-то столбца, в чем тогда может быть проблема смены статуса заказа?
Алексей
лет 12 не работал с sql вообще ничего не помню, помогите исправить этот баг
Andrey
Погляди в структуре таблицы. Может, откуда-то взялся ещё один автоинкремент?
Pathologic
а чего вы решили что это из-за автоинкремента? 😸
Aliaksandr
Нет же. Контроллеры отлично наследуются и можно сделать несколько уровней, на каждом добавлять что-то ещё.
Я кстати часто так и делаю. Завел какую-нибудь прослойку типа Catalog, которая наследует BaseController, туда вынес всякую специфическую дребедень по каталогу. А потом уже от него всякие контроллеры категорий, разделов, новинок, брендов, фильтров. Аналогично по юзерам - завел прослойку, которая чекает юзера, получает его данные или куда-то редиректит - и от нее уже все страницы личного кабинета. Это же как минимум удобно, быстро и понятно
Andrey
"прослойка" это что тут имеется в виду? Миддл?
Oleg
"прослойка" это что тут имеется в виду? Миддл?
нет, просто цепочка контроллеров шаблона
Oleg
типа Base -> Page ->-> Text ->-> Catalog, Product ->-> Cart, Order
Aliaksandr
"прослойка" это что тут имеется в виду? Миддл?
Отдельный класс со специфическим функционалом для группы страниц, чтоб не захламлять базовый контроллер и не копипастить одно и то же во в кучу других контроллеров
Oleg
А базовый контроллер вообще пустой, ничего в нём нет вообще, просто как основа
Andrey
Я вот кстати так и не понял как без крови цеплять свой контроллер для шаблона, не используя роуты. Что-то там у меня не так было, забыл что
Aliaksandr
Я зацепился за юзеров, которых ты там проверяешь. Вроде для такого как раз мидды?
ну хз, я в это не углублялся, там небось как обычно в эво все или почти все поломано. Но смысл такой же. Сначала мы проверяем пользователя (если он не залогинен, то отправляем на логин, если залогинет - то закидываем в шаблон инфу по нему) . При этом сохраняются все методы из базового контроллера
Aliaksandr
Aliaksandr
А потом уже страницы кабинета наследуем от этого юзера и не думает, залогинен он или нет, и какая инфа по нему доступна.
Aliaksandr
Aliaksandr
т.е. делаем только то, что нужно конкретно для этой страницы
Andrey
А что в is_logged?
Aliaksandr
обычный метод класса
Aliaksandr
Aliaksandr
там же $this
Andrey
Да как раз контекст интересовал
Aliaksandr
Ну это кабинет для фронта
Andrey
Просто если я админом зайду на этот шаблон, меня выкинет, получается. Т.е. не юзер ни разу
Aliaksandr
Да, это для вебпользователей
Aliaksandr
типа )
Andrey
И по факту надо как-то или забить, или писать дваойную проверку. Вот после этого я чёт приуныл и забил.
Aliaksandr
но весь смысл ООП как раз в том, что когда все разбито на методы и тебе на какой-то странице понадобится не вебпользователь, а админ, то ты просто переопределяешь один метод isLogged который вернет уже то, что тебе надо
Aliaksandr
А когда простынь из одного метода - то да, не особо понятно нахера это все кому упало
Aliaksandr
когда можно просто всунуть чанк в сниппет и наоборот
Oleg
это прикольный способ, я не так делал у себя, мне моё вариант нравится меньше
Aliaksandr
это прикольный способ, я не так делал у себя, мне моё вариант нравится меньше
да способов то можно много всяких понапридумать, печально, что мы тут не прикольные способы обсуждаем последний год, а просто ноем как все сложно ))))
Aliaksandr
потому каждый плывет как видит , а не в лучших техниках))
Oleg
хотя у меня прогресс внутри проекта существенный - я как только смог перетащить его на v3, то сразу качество моего говнокода резко выросло, а новый код уже везде с ларавелем (насколько уже его умею применять)
Oleg
поэтому лично вот я очень благодарен этому всему и развивающим волшебным пенделям
Aliaksandr
ну вот я для себя тоже решил, что в таком виде получение данных намного приятнее и удобнее смотрится, чем простынь из смеси доклистеров, ифов и всего чего угодно