Всего 123 782 комментария

Дима Касаткин
14 ноября 2023, 12:44
0
Спасибо за развернутый ответ!

Редактировать файлы на сервере… официальное расширение Remote-SSH… На сервере нужен только nodejs
Ну чтобы редактировать файлы, дополнять серверный софт что-то не хочется. Для любых других редакторов (да и того же VSC если не в проектном режиме использовать а просто файл удаленный открывать через WinSCP) хватает поддержки SFTP (Через SSH который)… Вроде на странице по ссылке Remote-SSH требование установленной nodejs не нашел, так что это обнадеживает!

Конечно, для человека, который использует PhpStorm без плагинов и расширений, не иначе как джунглями представляется VSC

В PhpStorm всё просто работает: подсвечивается, переходится по клику и автодополняется, бандлится и минифицируется и т.п., без необходимости даже открывать консоль, и уж тем более перебирать (нет, не изучать) бесконечные подборки плагинов в интернетах…

Но крутого расширения для MODX из этого поста, для PhpStorm пока нет, так что хватаем мачете и прыгаем в джунгли VSC, получивший второй шанс! :)
Andrew
14 ноября 2023, 12:23
0
Подскажите, как правильно настроить форматтер?)
Наумов Алексей
14 ноября 2023, 11:31
+1
Да, типа того… в целом можно и внутрь сниппета fmFiles в будущем засунуть проверку… хотя мне кажется случай использования SymLink в целом не самый частый
Andrei
14 ноября 2023, 11:26
0
Понял, вот как-то так получилось сделать, т.к. симлинк отдает в контенте id основной страницы:
{if $_modx->resource.id | resource:'class_key' == 'MODX\Revolution\modSymLink'}
        {$_modx->runSnippet('!fmFiles', [
            'tpl' => 'myTpl',
            'resource' => $_modx->resource.id | resource:'content'
        ])}
{else}
        {$_modx->runSnippet('!fmFiles', [
            'tpl' => 'myTpl',
            'resource' => $id
        ])}
{/if}
Артур Шевченко
14 ноября 2023, 11:22
1
+2
Ничто там непонятного? Вот был у тебя вызов
{'!AjaxForm' | snippet: [
'validate' => 'name:required,phone:required',
'successMessage' => 'Форма отправлена!',
'hooks' => 'email',
'emailTo' => 'some@email.ru',
'emailTpl' => 'defaultEmail',
'form' => 'defaultForm'
]}
Ты копируешь в файл core/components/sendit/presets/sendit.inc.php
return [
    'default' => [
        'validate' => 'name:required,phone:required',
        'successMessage' => 'Форма отправлена!',
        'hooks' => 'email',
        'emailTo' => 'some@email.ru',
        'emailTpl' => 'defaultEmail',
        ]
]
А вместо вызова сниппета вставляешь саму форму, которой добавляешь два атрибута data-si-form=«defaultForm», data-si-preset=«default». Всё форма работает. Согласен непривычно, но ничего сложного. Возможно стоит в доку добавить раздел Миграция с AjaxForm.

А по фильтрам, там SendIt идёт как зависимость, но сниппеты будут вызываться классическим способом)))
Константин Ильин
14 ноября 2023, 11:05
0
я как раз с намеком на SendIt))) для меня темный лес) ну и не желание вникать кончено же в непонятное)
Наумов Алексей
14 ноября 2023, 11:05
0
А если параметр resource если указать для сниппета fmFiles правильный (соответствующий основному ресурсу)?..
Andrei
14 ноября 2023, 10:49
0
Ок, если создать документ, а к нему — символическую ссылку, обоим ресурсам назначить один и тот же чанк, в чанке вызвать сниппет fmFiles, то в документе сниппет сработает и файлы будут отображаться, а в символической ссылке — нет.
Николай Савин
14 ноября 2023, 10:29
0
Просто и понятно — это обычно не об Артуре ))
Константин Ильин
14 ноября 2023, 10:11
0
Очень жду! на сайте 70к товаров — тормозит… еще и jquery тянет msearch2

тут выше говорится о вызове компонента, надеюсь будет все просто понятно и главное привычно(как все сниппеты модх) :)

наконец нашелся смельчак!)
Алексей Смирнов
14 ноября 2023, 10:04
+1
Напоминаю. Не упустите шанс купить со скидкой.
Наумов Алексей
14 ноября 2023, 10:00
0
Хоть по подробнее как-то… если хотите улучшения. Я этот сценарий не использую в своей работе.
Сергей Шлоков
14 ноября 2023, 07:39
+4
Но тут есть важный аспект — развиваться как фрилансер или как наемный работник. Прокачаться полноценно можно только в более менее развитой компании с современной инфраструктурой. Это моё личное мнение. Изучить Spiral в качестве повышения скила будет полезно, но применить его (фреймворк) в компании вряд ли получится. Ибо я как техлид не взял бы этот инструмент из-за одной простой причины — очень сложно найти разработчиков под него и усложняет дальнейшую поддержку. Да и как заказчик не стал бы заказывать свой проект у фрилансера на Spiral. Именно по той же причине — проблемы в дальнейшей поддержке. Хотя я этот фреймворк пробовал и мне он понравился. Но с практической точки зрения ему нет применения.
Поэтому я бы советовал смотреть вакансии в интересных компаниях и прокачивал бы соответствующие скилы.
Это чисто моё мнение.
Алексей Суслов
14 ноября 2023, 01:36
0
Большое спасибо за ваш вклад в развитие экосистемы модикс!
Алексей Соин
13 ноября 2023, 22:20
+6
Чтобы редактировать файлы на удалённом сервере не нужно придумывать синхронизацию по сохранению, в vscode есть официальное расширение Remote-SSH. Прочитать как всё настроить можно тут. На сервере нужен только nodejs, например, у хостинга бегет можно без проблем так править файлы на сервере, у них в доке есть инструкция по настройке.

Также насчёт настройки проекта, если над сайтом работает команда разработчиков, то хорошим подходом будет чтобы настройки среды были у всех одинаковые. Для этого в корне проекта, куда подключаемся(либо открываем папку через vscode) нужно добавить папку .vscode в которую положить несколько json файлов:

settings.json
{
  "files.associations": {
    "*.tpl": "fenom"
  }
}

extensions.json
{
  "recommendations": [
    "EditorConfig.EditorConfig",
    "gulomov.vscode-modx",
  ]
}

Файл settings.json задаёт настройки среды, сюда можно указывает любые параметры vscode, д данном примере указываем использование fenom для tpl файлов.

Файл extensions.json нужен для указания рекомендуемых расширений, которые нужно поставить для текущего проекта. В данном примере указываем, что нужно установить расширение editorconfig и расширение для modx.

Также пробегусь кратко по нескольким расширениям которые я часто использую, но редко встречающихся в таких подборках:

Error Lens — расширение для более информативной подсветки предупреждений и ошибок в коде.

File Utils — добавляет в контекстное меню дополнительные возможности для работы с файлами.

Path Intellisense — подсказка путей для файлов.

Thunder Client — postman на минималках.

Turbo Console Log — быстрое добавление console.log в коде.

PHP Tools — отличный пакет при работе с php. Подсказывает методы, классы, ошибки в коде и т.д.
Fi1osof
13 ноября 2023, 19:15
+2
Ух, где же Вы, Николай Ланец, вас в этом обсуждении очень не хватает :)
Честно сказать, неочень хочется обсуждать все это, потому что верно сказано: сколько людей, столько и мнений. И выше человек тоже реальные примеры приводит с тем, как все это быстро меняется, и я во многом согласен. Но я бы сказал иначе: все это совсременное не только лишь для всех, а точнее для тех, у кого очень много денег, потому что маркетинг требует и делать это надо, но все это сложно и как правило команда нужна. Я работаю в таком проекте, и да, все сложно, и на все это есть деньги. А не делать это нельзя, потому что «мы так хотим». Но могу точно сказать: все то, что мы делаем, на старых технологиях это просто не сделать (я бы именно сказал, что никак). Так что мы в той точке развития, когда назад уже не пойти и остается только ждать когда все это устаканится и будут выработаны best practices.
Fi1osof
13 ноября 2023, 19:11
+2
Да, такой способ работает :)
Дима Касаткин
13 ноября 2023, 18:55
0
Всем привет! Я пока не осилил всех лонгрид-комментов в этом топике, но точно знаю, что @Fi1osof лучше вот так призвать, более технологично, и может даже сработать :)
Дима Касаткин
13 ноября 2023, 16:55
1
+3
Пользуясь случаем, если у кого есть под рукой, кроме супер плагина из топика, какие ещё плагины надо поставить в VSC для удобной работы с MODX.

Необходимый минимум функций вот такой:
• Автозагрузки на сервер (SFTP) по CTRL+S (желательно без хранения учетных данных от удаленного сервера в JSON-файле рядом с исходниками)
• Перехода к объявлению JS/PHP-функций по CTRL+click
• Сборки CSS из LESS/SCSS исходников, но без бандлеров (как file watchers в phpstorm) и мудреных JSON-конфигов.

Просто года два назад такой простой набор не получилось собрать для VSCode и мне пришлось его опустить. Но я вижу, что всё меняется, и с тех пор VSC стал настолько лучше, что я рискнул заменить им (и пока не пожалел) notepad++ для открытия одиночных файлов (которые вне проектов), которым пользовался много лет (правда зарешал дизайн, а не функционал, но всё таки). Но как проектным редактором, мне осадочек от предыдущего подхода пока не наёт пользоваться.

Посоветуйте джентельменский набор модыксера (или модэксера?) для VSC плиз!
Дима Касаткин
13 ноября 2023, 16:48
+5
Впечатляющая работа! Было бы здорово такое же, для PhpStorm / WebStorm, но ради такого возможно стоит дать VSCode второй шанс. Теперь есть причина, по которой VSCode может оказаться удобнее PhpStorm для разработки под MODX, и это прекрасно!

Вообще Developer experience (DX) в MODX и раньше был очень неплохим. Кто касается других систем, очень меня сейчас поймут. Один только Ace, который поддерживает @Иван Бочкарев чего стоит. Если править что-то быстро из админки, и связка modDevTools + Ace = просто класс!

А если и если основную разработку чаще ведут в файлах, под git-ом, и тут уже связка StaticElementsLive и новый VSCode IntelliSense for MODX будет отличным решением!

А для тех, кто собирает пакеты (modx packages), и особенно если их часто обновляет, поддерживая более одного modx-пакета постоянно, также может пригодиться git-модуль с GUI: modx-build-environment-gui

Вообще, с выходом этого плагина для весь DX при работе с файлами в MODX переходит на другой уровень, на голову выше! Больше cпасибо @Баха Волков !