Oleg
Т.е. на MODX делать не буду, потому что это оказывается фреймворк оказывается и нужно усилия приложить, но пойду делать на другом фремйворке.
Не, не так. На MODX делать не буду, потому что, чтобы это на нём сделать, надо потратить дополнительно кучу времени и ресурсов, изучая давно устаревшие и ненужные мне в будущем инструменты, типа xPDO и ExtJs, а также особенности архитектуры отдельных дополнений, лишённых по умолчанию очевидных и необходимых функций, с целью их доработки под свои нужды. Буду делать на другом фреймворке, который я уже когда-то изучил (так сложилось) и у меня есть свои наработки на нём. Банальный рассчёт
Oleg
МОДЕКС классная система, но рано или поздно (по мере собственного развития в профессии) понимаешь, что её возможности ограничены, и становишься перед выбором: пытаться расширить эти возможности, потратив время, ресурсы итд (которого не так много, когда нужно кормить семью), или найти готовое решение в других CMS, CMF итд.
Oleg
Лет 10 назад я бы просто поступил как Василий, начал бы писать свой магазин и выложил бы его на Гитхаб. Он бы не был лучше или хуже, просто был бы другой подход, который кому-то может и понравился. Но сейчас, к сожалению, я так не могу поступить по ряду причин
Василий
А miniShop2 - январь 2013, 5 лет назад
Василий
МОДЕКС классная система, но рано или поздно (по мере собственного развития в профессии) понимаешь, что её возможности ограничены, и становишься перед выбором: пытаться расширить эти возможности, потратив время, ресурсы итд (которого не так много, когда нужно кормить семью), или найти готовое решение в других CMS, CMF итд.
Не согласен, что её возможности ограничены чем-то, кроме собственной фантазии. Не знаю, как в других системах, но у меня почему-то каждый новый проект всё более и более продвинутый, сделан на MODX и меня он никак не ограничил
Василий
Может быть, я не настолько хороший прогрммист, и просто пока еще не дошёл до такого уровня.
Василий
Еще раз - modhost.pro, modstore.pro - чистый MODX с дополнениями, без правок ядра. Скоро можно будет посмотреть на исходники dev.modx.pro, который, пожалуй, самый лучший мой проект
Oleg
Может быть, я не настолько хороший прогрммист, и просто пока еще не дошёл до такого уровня.
Программист самого высокого уровня должен знать, как пропатчить KDE2 под FreeBSD))))
Sentinel
@bezumkin а modstore.pro мултиязычность babel?
Anonymous
МОДЕКС классная система, но рано или поздно (по мере собственного развития в профессии) понимаешь, что её возможности ограничены, и становишься перед выбором: пытаться расширить эти возможности, потратив время, ресурсы итд (которого не так много, когда нужно кормить семью), или найти готовое решение в других CMS, CMF итд.
Ну так это обычный подход потребителя, при этом с неограниченным ЧСВ касаемо запросов к разработчикам. У вас этого нет, значит система говно, пойду делать на том, что знаю. А чтобы было круто, нужно добавить то, что я уже знаю, иначе не торт. Но сам добавлять ничего не буду, времени нет и вообще семью кормить нужно. Отговорки за 10 лет не меняются. И не только в MODX. Мне и Васе тоже семью кормить нужно, но как-то не жалуемся. Так что не нужно винить разработчиков, а начать с себя.
Василий
@bezumkin а modstore.pro мултиязычность babel?
Неа, всё своими сниппетами и процессорами управляется - мне так удобнее. Мы и в админку не заходим даже, всё на фронте
Sentinel
Т.е. не через контексты?
Василий
Через контексты, но всё управляется своими собственными процессорами, которые влю логику работы берут на себя
Oleg
Ну так это обычный подход потребителя, при этом с неограниченным ЧСВ касаемо запросов к разработчикам. У вас этого нет, значит система говно, пойду делать на том, что знаю. А чтобы было круто, нужно добавить то, что я уже знаю, иначе не торт. Но сам добавлять ничего не буду, времени нет и вообще семью кормить нужно. Отговорки за 10 лет не меняются. И не только в MODX. Мне и Васе тоже семью кормить нужно, но как-то не жалуемся. Так что не нужно винить разработчиков, а начать с себя.
1) Не нужно подменять понятия и манипулировать (я не говорил, что система ГОВНО и никого не обвинял, особенно разработчиков); 2) "Нужно начать с себя..." - это классический штамп людей, которые просто находятся в другой среде/ситуации/итд не понимая, что помимо "себя" есть ещё другие объективные факторы, которых поменять нельзя
Sentinel
Через контексты, но всё управляется своими собственными процессорами, которые влю логику работы берут на себя
Спасибо. А не планируешь для сообщества решение от себя по мультиязычности?
Василий
Неа, не планирую
Sentinel
😊
Василий
Делать что-то универсальное пипец как сложно
Василий
я об этом думал, но ничего хорошего не придумал, увы
Anonymous
1) Не нужно подменять понятия и манипулировать (я не говорил, что система ГОВНО и никого не обвинял, особенно разработчиков); 2) "Нужно начать с себя..." - это классический штамп людей, которые просто находятся в другой среде/ситуации/итд не понимая, что помимо "себя" есть ещё другие объективные факторы, которых поменять нельзя
Ну так если внешние обстоятельства есть, это понять можно, но тогда и требования стоит более аккуратно озвучивать, а так пока что всё звучало как обвинение разработчиков в некомпетентности либо в том, что они выбрали направление, которое вас не устраивает.
Sentinel
Просто тикетс, сендекс выплал, прям мультиязычность напрашивается 😉😊
Василий
Написано много дополнений, и сейчас ничего нового я писать просто не могу
Sentinel
😊👍 я тебя понимаю, сорри
Anonymous
Просто вы не первый и уже просто все устали отвечать одно и тоже каждому, что это стало раздражать.
Oleg
я об этом думал, но ничего хорошего не придумал, увы
а как насчёт моего поста про мультиязычность через сериализацию в полях? это реально?
Василий
Василий
А как ты ТВ будешь поддерживать в них?
Василий
Я много про это думал и ничего лучше контекстов MODX придумать не смог. Это единственный вариант, который не ограничит функционал
Oleg
Ну поля в БД текстовые, через LIKE или MATCH
Sentinel
Так вроде есть по моему localizator называется он не с серилизацией работает?
Ilya
Потом понимаете, что управлять - выгоднее.
Василий
Ну поля в БД текстовые, через LIKE или MATCH
В смысле, прямо по сериализации через LIKE искать? Мне кажется, это несерьёзно как-то
Ilya
На каком-то этапе, конечно же, когда есть поток
Oleg
В смысле, прямо по сериализации через LIKE искать? Мне кажется, это несерьёзно как-то
Сериализация в виде JSON массива. Почему в нём нельзя искать?
Василий
Так сериализация, или JSON массив - это разные вещи. Хотя, в контексте поиска это в любом случае фигня на постном масле
Василий
Как ты найдешь совпадения по английскому варианту pagetitle и longtitle, но исключишь по description или alias?
Василий
Ну и какая скорость будет, если перебирать тысячи записей через like?
Василий
В лучшем случае, можно хранить данные в таблице язык - имя поля - значение Но это не сильно отличается от контекстов и копий ресурсов сейчас
Sentinel
https://modstore.pro/packages/utilities/localizator
Oleg
Как ты найдешь совпадения по английскому варианту pagetitle и longtitle, но исключишь по description или alias?
Поиск по отдельным полям БД как обычно, а на уровне PHP уже фильтровать из результата нужный язык
Василий
https://modstore.pro/packages/utilities/localizator
Вот судя по коду вызова pdoResources, там так и сделано - идёт join спец-таблицы и выборка данных из неё
Василий
Поиск по отдельным полям БД как обычно, а на уровне PHP уже фильтровать из результата нужный язык
Как обычно - это как? Как ты в JSON массиве найдёшь текст именно в нужном поле?
Oleg
Сначала ищется входжение искомого слова вообще в поле pagetitle, если вхождение есть, потом определяется в каком из элементов JSON массива (с ключом языка) оно есть
Василий
Как ты надёшь вхождение именно в поле pagetitle, если это строка? {"pagetitle":"blabla bla bla","longtitle":"xxx bla egeg"}
Василий
Как мне найти bla именно в longtitle?
Василий
А ведь в реальности, я так понимаю, там вообще будет куча полей, а не 2
Василий
Регулярками искать?
Василий
Ну это жесть какая-то вырисовывается
Василий
Так что, моё мнение - это не решение
Oleg
Как мне найти bla именно в longtitle?
Смысл такой: в поле pagetitle сохранено не "бла бла титул, а "{'ru': 'бла бла титул', 'en': 'bla bla title'}"
Anonymous
Извиняюсь что влажу, а JSON где хранится?
Oleg
просто в одном поле MODX хранить не просто текст значения, а массив JSON с разными вариантами значения на разных языках.
Василий
Смысл такой: в поле pagetitle сохранено не "бла бла титул, а "{'ru': 'бла бла титул', 'en': 'bla bla title'}"
Ну предположим, искать ты там что-то сможешь, и даже не очень медленно. Хотя в контенте может быть оооочень много данных и индексы работать просто не будут. Что насчёт поддержки ТВ параметров, сторонних расширений?
Василий
И чем это лучше отдельной таблицы для хранения переведённых значений, учитывая, что ссылку на готовое дополнение уже дали выше?
Василий
у неё проблем с поиском уже нет - все данные нормализованы, ищи на здоровье по любому языку, полю и тексту
Oleg
В базе в ТВ есть поле ЗНАЧЕНИЕ, вот там хранить не одну строку значения на русском, например, а строку в виде JSON массива, как и для полей ресурсов. Какая разница, всё равно поля в базе все текстовые
Anonymous
Поиск работать не будет в любом случае
Anonymous
Потому что индексы
Oleg
Преимущество перед решением с доп. таблицами в том, что не нужно создавать доп. таблицы, и не нужно это делать для компонентов, ТВ итд. Логика тут в том, чтобы сам хранимый контент хранить не в виде строки на одном каком-то языке, а в виде JSON, содержащем значения этого поля сразу для нескольких языков
Василий
Да я думаю, что вообще, работа сайта будет очень весёлой, если тебе при любом действии нужно распаковывать JSON для каждого поля по нескольу раз, и запаковывать обратно при сохранении
Василий
В общем, ты спросил моё мнение - я ответил
Oleg
Учитывая, что нужно переписать в MODX вообще всё - так себе преимущество, на мой взгляд
а что переписывать? создать плагин на сохранение/обновление/вывод (для парсинга строки) + формы для ввода значений
Anonymous
а так вы в теории спорите с людьми, которые на практике пробовали не один способ
Anonymous
и знают о чем говорят
Oleg
Василий, мнение услышал, спасибо. Возможно ещё есть мнения у кого-то? Согласен, смежная таблица с переводами гораздо удобнее, сам юзаю этот метод, как уже упоминал. Но для РЕВО вариант с хранением переводов в строке мне показался интересным и наименее радикальным (так как структуру базы не нужно менять, и есть механизм плагинов, который может выполнять нужные действия по парсингу строки), вот и решил спросить людей, которые с архитектурой МОДЕКС более знакомы.
Dmytro
И таким образом работает со всеми дополнениями )
Nikita
По поводу локализатора-он на обычных лексиконах работает. И взависимости от домена заменяет плейсхолдеры
Nikita
И если не ошибаюсь постгрес умеет искать по json, монго точно умеет
Dmytro
та же логика и в Рево будет https://github.com/bumkaka/bLang