Am
Вы, вот, всё тут про своё Эво, а люди работой реальной заняты. ((%
Когда еще тапаешь в ответ, то вверху пишет "смотрит на баклажан". ((%
Alexander
Am
Alexander
тьфу блин
Alexander
any eggplant ...shot
Alexander
но работает да, я вчера видел
Евгений
Axenia
Ты не можешь голосовать с отрицательной кармой
Andrey
Настенька, пришли мне баклажан. Ты же тут.
Vitaliy
Аляксандр
Аляксандр
Ой, спалился 🙂
Pathologic
Serguei
Alexander
Oleg
Serguei
Можно, наверное, и общую библиотеку функций/классов написать, которую использовать во всех остальных контроллерах/сниппетах/плагнах и чем угодно.
Am
Для этого, сначала, нужно перейти на контроллеры. ((%
Sasha
Axenia
sashabeep (938.46) увеличил карму Ambrion (2847.58)
Sasha
Aliaksandr
Axenia
webber_12 (5998.12) увеличил карму helgispbru (248.98)
Serguei
А кто подскажет, есть аналог php функции explode(), но чтобы в качестве разделителя можно было указать не один, а целый массив, чтобы по любому из разделителей строка разбивалась?
Pathologic
preg_split
Alexander
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!" но я не пойму в чем причина, раньше норм было, что может быть?
EVO bot Лёшка
Serguei
$sep_data = explode($separators[0], str_replace($separators, $separators[0], $string));
Вот так работает :)
Volodymyr
Volodymyr
Да
Алексей
на id верно?
Алексей
пробую поставить не дает - https://prnt.sc/1zxcd2q
Алексей
что-то не получается
Oleg
Oleg
что-то не получается
ну так пишет же, что есть уже столбик с автоинкрементом, а он как горец - может быть только один
Алексей
и что делать в этой ситуации? раз уже есть автоинкремент у какого-то столбца, в чем тогда может быть проблема смены статуса заказа?
Andrey
Алексей
лет 12 не работал с sql вообще ничего не помню, помогите исправить этот баг
Andrey
Погляди в структуре таблицы. Может, откуда-то взялся ещё один автоинкремент?
Pathologic
а чего вы решили что это из-за автоинкремента? 😸
Aliaksandr
Нет же. Контроллеры отлично наследуются и можно сделать несколько уровней, на каждом добавлять что-то ещё.
Я кстати часто так и делаю. Завел какую-нибудь прослойку типа Catalog, которая наследует BaseController, туда вынес всякую специфическую дребедень по каталогу. А потом уже от него всякие контроллеры категорий, разделов, новинок, брендов, фильтров. Аналогично по юзерам - завел прослойку, которая чекает юзера, получает его данные или куда-то редиректит - и от нее уже все страницы личного кабинета. Это же как минимум удобно, быстро и понятно
Andrey
"прослойка" это что тут имеется в виду? Миддл?
Oleg
Oleg
типа
Base
-> Page
->-> Text
->-> Catalog, Product
->-> Cart, Order
Oleg
А базовый контроллер вообще пустой, ничего в нём нет вообще, просто как основа
Andrey
Andrey
Я вот кстати так и не понял как без крови цеплять свой контроллер для шаблона, не используя роуты. Что-то там у меня не так было, забыл что
Aliaksandr
Aliaksandr
А потом уже страницы кабинета наследуем от этого юзера и не думает, залогинен он или нет, и какая инфа по нему доступна.
Aliaksandr
Aliaksandr
т.е. делаем только то, что нужно конкретно для этой страницы
Andrey
А что в is_logged?
Aliaksandr
обычный метод класса
Aliaksandr
Aliaksandr
там же $this
Andrey
Да как раз контекст интересовал
Aliaksandr
Ну это кабинет для фронта
Andrey
Просто если я админом зайду на этот шаблон, меня выкинет, получается. Т.е. не юзер ни разу
Aliaksandr
Да, это для вебпользователей
Aliaksandr
типа )
Andrey
И по факту надо как-то или забить, или писать дваойную проверку. Вот после этого я чёт приуныл и забил.
Aliaksandr
но весь смысл ООП как раз в том, что когда все разбито на методы и тебе на какой-то странице понадобится не вебпользователь, а админ, то ты просто переопределяешь один метод isLogged который вернет уже то, что тебе надо
Aliaksandr
А когда простынь из одного метода - то да, не особо понятно нахера это все кому упало
Aliaksandr
когда можно просто всунуть чанк в сниппет и наоборот
Oleg
это прикольный способ, я не так делал у себя, мне моё вариант нравится меньше
Oleg
Aliaksandr
потому каждый плывет как видит , а не в лучших техниках))
Oleg
хотя у меня прогресс внутри проекта существенный - я как только смог перетащить его на v3, то сразу качество моего говнокода резко выросло, а новый код уже везде с ларавелем (насколько уже его умею применять)
Oleg
поэтому лично вот я очень благодарен этому всему и развивающим волшебным пенделям
Aliaksandr
ну вот я для себя тоже решил, что в таком виде получение данных намного приятнее и удобнее смотрится, чем простынь из смеси доклистеров, ифов и всего чего угодно