srs

srs

С нами с 06 января 2018; Место в рейтинге пользователей: #52
srs
srs
07 января 2019, 12:19
0
Это я так назвал бухгалтерш, секретарш, в общем людей которых припахали наполнят сайт информацией за дополнительный бонус к зарплате =)
Ведь прежде всего им этот компонент должен упростить работу.
srs
srs
07 января 2019, 12:01
+1
Частично я согласен, подобного рода информация разбавляет ленту. Но только если это не три поста подряд у которых конечный вывод один и тот-же.
Так или иначе я планирую раз в 1,5-2 месяца публиковать заметки связанные с vue и MODX, только теперь они будут иметь немного иной вид. Ну например, написал что-то то занятное, выложил линк на гитхаб и рассказал как это устроено внутри. Нашел верный рецепт создания tv на vue, расписал все в подробностях и кинул линнк на гитхаб и на живую реализацию.
Я уже упомянул, что возможно придется делать pageBuilder который должен работать и в админке, и на пользовательской стороне. Т.е. собрал человек в админке страницу, перешел на сайт и если что-то не устраивает там-же поправил. Так вот на vue, полно готовых решений и написать подобную конструкцию сильного труда не составит. Можно будет расписать процесс создания компонента и заодно получить плюсик в карму от контент менеджеров. Так что следующая пост скорее всего будет именно об этом.
srs
srs
07 января 2019, 11:34
+1
(тык) На самом деле никакой магии, в основном все держится на одно библиотеке.
srs
srs
06 января 2019, 14:50
0
Семён Семёныч!!! Действительно, тогда вообще проблем нет никаких.
srs
srs
06 января 2019, 02:56
0
Ну вот как сессиями работать в MODx Vue?
Там получается сперва надо написать middleware который будет перекрывать какой то код который будет сперва инициализировать либо тянуть данные на ajax.
Честно говоря я такой связки еще не делал, но мне альтернативы вашей идее как-то в голову не приходит. Да и скорее всего это наиболее верный подход. Можно этот вопрос задать в чате vue или nuxt, там как минимум накидают различных вариантов которые можно будет более пристально изучить. А вот касаемо табов то можно и на куку повесить)
Знаю по себе писал интернет-магазин на vue js + minishop2 через API с поддержкой сессий store и других фич vue: platon.site
Вот об этом былоб очень интересно почитать! Яб даже финансовую благодарочку дал.
srs
srs
06 января 2019, 02:34
0
Да, только extjs не нужно потом компилировать, а vue нужно явно указывать с чем он может работать и за пределами этой области он абсолютно бесполезен. Как вариант можно вешать привязку vue на глобальный id (например modx-content), и оттуда генерировать столько тв`шек сколько влезит. Но скорее всего это плохая идея и можно сделать все правильно =)
srs
srs
05 января 2019, 17:51
+1
Тут проблема в том, что ТВшки можно использовать n+1 количество раз в одном документе. А vue привязывается к конкретному id. Т.е. если вызвать разово, то вроде как проблем нет… но если попытаться вызвать более одной копии, то полетят матюки. Я на вскидку представляю как можно решить эту проблему, но это костыль и нужно изучать глубже этот вопрос. В любом случае в ближайшее время мне нужно будет ковырять в эту сторону, но пока ничем помочь не могу.
Кстати, есть запрос от одного клиента на pageBuilder для MODX, так что возможно через пару месяцев вы увидите Гутендерг для бедных. Если у людей будет интерес, то я могу расписать процесс в виде пары статей.
А вот про перенос всего с extjs на vue, то давайте будет реалистами ;). Вообще стоит подождать дайджест от Ивана, может он расскажет нам интересностей о будущем MODX и когда планируется уход в полноценное API для взаимодействия с системой.
srs
srs
05 января 2019, 11:57
+1
Пока плотно на эту тему не думал, по этому точного рецепта, да и рецепта в целом, пока дать не могу. Но вполне возможно, через некоторое время напишу маленькую заметку с примерами на подобную тему.
srs
srs
04 января 2019, 17:52
+2
Проблема в том, что нужно так-же произвести настройки в файле home.class.php (второй шаг, пункт 2). Прошу прощенья, для меня это тоже «проба пера», наверное нужно было как нибудь «слить» эти моменты=)
Вообще я рекомендую немного повременить с этим делом, я в процессе написания cli который поможет миновать все эти шаги (готовность ~70%). Если срочных дел не выскочит, то через 2-3 для кину линк в комментариях или в этом посте.
srs
srs
04 января 2019, 14:05
0
— коллапс тулс — если я вас правильно понял
— сортировок на бэкенде — я тоже об этом упоминал, но был не прав, на той-же странице есть пункт «Разбиение на страницы и сортировка на стороне сервера»
— инлайн-редактирования + виджеты для инлайн-редактирования — нашел минимальны пример, пункт «Встроенное редактирование»
— группового редактирования данных — пункт «Выбираемые строки»
— менеджера колонок который позволяет скрыть нужные/ненужные колонки, достаточно быстро прикрутить, хотя возможно это уже есть и нужно лучше изучить документацию. Только давайте мы с вами тут этого делать не будем=)
Ничоси пример)! Тот грид который сейчас в modx конечно навороченный, но он явно не свариться с ag-grid.
srs
srs
04 января 2019, 12:33
0
В общем запустил, проверил! У меня только стрелочки в дереве ресурсов чуть выше сместились и поле поиска стало чуть компактнее, на этом все! НО! Стоит понимать, что вы использовали готовый UI набор, стоит понимать что он скорее всего будет перекрывать родные стили. Я не ходок в Material Design, но думаю, что там можно изолированно подключать не весь набор стилей, например отдельно таблицы, отдельно навигацию и т.д.
В общем вот как это выглядит у меня, без подключенных иконок.

P.S. А чего вам конкретно не хватает в таблицах от Material Design? Просто судя по вашему комментарию там все ну очень плохо!
P.P.S. Кстати у него и подход другой, он подгружает все данные и разбивает на страницы, т.е. например сортировка происходит не по запросу в бд а прямо в массиве. В extjs все иначе и на мой взгляд правильней, там мы подгружаем часть данных а любые дополнительные действия (например сортировка или поиск) идут через запросы к бд, В примере я кстати именно так и реализовывал.
srs
srs
04 января 2019, 11:32
+5
Не ангуляр, потому что на мой взгяд у него не лучшие времена, меньше готовых решений, менее активное сообщество, среди основных конкурентов менее активное развитие, плюс порог вхождения у новичков выше. Не реакт, потому что, тут играет роль индивидуальное предпочтение, мне не нравиться повсеместное использование jsx. Я не против синтаксического сахара, но на мой взгляд, это недо xml/html/js… ну т.е. не рыба не мясо. В целом реакт не плох, хотя опыта работы с ним у меня очень мало, меньше чем с ангуляром или vue.
Почему vue, наиболее значимую роль сигала документация и мой предыдущий опыт использования ангуляра. Так же мне понравился подход vueloader`а, где идет отдельно template, отдельно script и отдельно style. Очень активное сообщество, кстати я еще не разу не натыкался на сторонние разговоры (погода, политика, дошираки, что угодно) в телеграм чате vue, всегда все по делу. Вообще vue это штука которая по надергало много интересных приемов у аналогов и вылилось во что-то «индивидуальное». Если в вкратце, то как-то так)
srs
srs
04 января 2019, 11:09
+1
Так гриды есть не только у vuetify, не нравиться одно, используй другое решение. А как вы впиливайте стили? Vue можно применять стили изолированно, чтоб не было конфликтов.
Кстати говоря о гридах, гриды у extjs действительно не плохи, основные его преимущества:
  1. Можно подключить сортировку
  2. Можно перетаскивать колонки
  3. Есть контекстное меню
  4. Есть построчная навигация из коробки
Но это вполне стандартный набор который можно реализовать самому или найти готовое решение. В любом случае у меня в планах есть сборка аналога грида под vue.
Вообще vuetify это отдельный UI, я не пробовал втиснуть в админку целый UI. Честно говоря я и необходимости такой никогда не видел. Но вечером ради интереса потыкаю.
srs
srs
03 января 2019, 15:18
+3
Спасибо)
Но вообще я сам виноват, не лучшее время подобрал, может после праздников будет по больше активности. Да и людям далеким от vue, все таки это не совсем близко.
srs
srs
02 января 2019, 15:54
+5
Былоб очень интересно ознакомиться с этой информацией в более развернутом виде, в ближайшем дайджесте или подкасте =)
Видимо я очень плохо донес замысел, я не подразумевал замену админики. Я говорил только о смене extjs, во вновь создаваемых компонентах и в случае с vue, не вижу никаких препятствий в совместимости. Ему нужно только корректный json принимать и все, дальше он все рисует как надо. Касаемо стилей, полностью с вами согласен по этому и предлагал сделать набор стандартных стилей, чтоб все было максимально одинаково. Например так выглядел компонент на vue из второй статьи.

Изначально даже можно не понять что это не родной extjs. Ну и если в дальнейшем и так будет отказ от конкретного фрейморка, то на мой взгляд это только должно подталкивать людей использовать стороннее и более универсально.
srs
srs
31 декабря 2018, 18:04
+3
Это не дало использование vue в качестве админки. Тут vue служит инструментом заменяющим extjs в создаваемом компоненте. Но в вы правы, как только новогодняя суета утрясется соберу что-то на скорую руку со скриншотами и кратким пояснением.
srs
srs
31 декабря 2018, 00:35
0
Хотел написать статью в раздел «Пошаговая инструкции», о том как можно написать компонент на vuejs в связке с modExtra, выпилив оттуда предварительно extjs, но нужен рейтинг 10. Видимо это знак, настал тот момент когда нужно заводить свой бложек. (держу в курсе)
srs
srs
30 декабря 2018, 15:01
0
Помню Andchir тоже когда-то пытался делать дайджест, но потом забил из-за того что у аудитории был маленький интерес. Надеюсь сейчас эта инициатива проживет дольше. Если увижу что-то интересное, то осязательно отправлю.
Ты крут!
srs
srs
21 декабря 2018, 13:03
0
Камон, 2к19 на носу, монго есть не везде, но в принципе найти такой хостинг не проблема. В край, vds`ки сейчас не такие дорогие. Да и если проект действительно стоящий, то почемуб и нет?! Но стоит учитывать что SHK4 это symfony.
srs
srs
15 декабря 2018, 19:22
0
Как вариант:
echo $modx->getObject('modResource', ['pagetitle' => 'page title'])->get('id');
// or 
$res = $modx->getObject('modResource', ['pagetitle' => 'page title']);
echo $res->get('id');
echo $res->get('parent');
echo $res->getTVValue('foo');