Всего 97 551 комментарий

Сергей Шлоков
17 ноября 2019, 09:39
+4
Ты в Laravel не ходи, расстроишься. Там аж две библиотеки хелперов из коробки. И Тейлору ничего не говори. Его твоё мнение может огорчить.

Такое впечатление, что это просто синтаксический сахар. То есть, ничего особо полезного не несет.
Боюсь тебя расстроить, но MODX — это синтаксический сахар над PHP. Юзай последний. Не отказывайся от своих принципов.

И, соответственно, его не стоит использовать. Это помешает другим работать над проектом.
Не используй. Сделай мне больно.

П.С. Только щас заметил, что мой коммент почему-то попал не в корень, а залетел в ответ на твой коммент. Видимо глаза уже подводят.
Сергей Шлоков
17 ноября 2019, 09:29
+2
Не путай логику отображения с логикой приложения. Последней не место во вьюхах. Вот пример логики отображения.

Лично я не вижу особой необходимости в объекте $_modx как ограничителе функциональности для безопасности. Этого нет ни в одном шаблонизаторе. Видимо никому не понадобилась такая фича. А вот как объект для работы со вьюхами (шаблонами, чанками, ресурсами) он хорош. Для правильной работы, если можно так выразится. И юзер $_modx->user там нужен! Хотя я бы сделал юзера отдельным объектом для удобства. Но считаю, что кэшменеджер тут лишний. Вот такое имхо. Но, как правильно сказал Павел, ты может делать что хочешь и как хочешь. Fenom позволяет юзать даже объект $modx. It's up to you.
Тодор
17 ноября 2019, 09:01
0
Спасибо, это помогло. Картинки появились в дереве ресурсов, но я их не могу вибрать в качестве значения для tv-шки. Если я нажимаю на папку images, то мне справа все равно показиваэтся содержимоє корня сайта
Павел Гвоздь
17 ноября 2019, 08:38
+2
Феном полноценный шаблонизатор. Как можно сказать в отношении него «чтобы заменить [[+name]] на {$name}»?

Зачем тогда пользоваться Fenom
Как минимум ради циклов, расширения шаблонов.

пробрасывали основной объект приложения $modx в $_modx
microMODX $_modx ≠ modX $modx

разве не для того чтобы в чанке или шаблоне дотянуться до методов.
Сергей сказал, что это плохая практика, никто не запрещает делать такие сайты в одиночку. Однако в команде за это могут надавать по рукам.
Баха Волков
17 ноября 2019, 07:53
0
В системных настройках есть modx_browser_tree_hide_files — вот его нужно отключить
Павел Бигель
17 ноября 2019, 03:25
0
 Привет! Должно работать. Я подниму виртуалку с линуксом и проверю, отпишусь тут по результатам
Димыч
16 ноября 2019, 23:58
0
В роботе поставьте
Disallow: *?
Страницы, в которых есть ?, в индекс не попадут.
Если ранее в индекс попадали, значит инструкция была некорректная. Поисковики нормально ее отрабатывают. Через Яндекс-вебмастер можете еще проверить.
Ну и ЧПУ нормально настройте
Александр
16 ноября 2019, 23:44
0
У меня, сейчас, клиент просит ускорить сайт. И, причем, за небольшие деньги. Соблазняюсь идеей, для тяжелых страниц, сложить в кеш уже сгенерированный код HTML и отдавать его при запросе страницы без get и post параметров. У клиента tagmanager2 втупляет на большом числе товаров. НО как страница загрузилась работает уже быстро. НО и сломать может. mFilter2 такой метод точно сломает (Он свои настройки в сессии хранит. Со статическим кешем сниппет не выполниться и сессия окажется пустой.)
первому посетителю придется ждать десятки секунд
Что у вас такого тяжелого на странице выполняется? Хочется сделать какое-нибудь универсальное решение проблемы, если это возможно. Действительно тяжелые это фильтры товаров. Какие еще тяжелые сниппеты или случаи есть?
Александр Мельник
16 ноября 2019, 22:23
0
Вопрос, а как оно должно работать?
Я ведь правильно понимаю что после установки классы, методы и свойства modx должны «подсказываться»?
Там нет никаких ограничений на операционную систему? Я только что установил ваше дополнение, VScode работает под линуксом.
Version: 1.40.1
Commit: 8795a9889db74563ddd43eb0a897a2384129a619
Date: 2019-11-13T16:49:30.162Z
Electron: 6.1.2
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Linux x64 5.0.0-36-generic

Да, каюсь, сейчас в редакторе открыт проект на микрофрейворке slim, но я думаю что редактору все равно и если я ввожу $modx-> то он должен показать мне методы и свойства? Но этого не происходит к сожалению(
Александр Мельник
16 ноября 2019, 22:07
0
Спасибо за ваш энтузиазм.
Александр Мельник
16 ноября 2019, 22:05
+2
Вот у менеджеров добавится работы))
Мало того что писать бесконечно фейковые отзывы, так теперь еще и лайкать их, переключая ip.
Александр
16 ноября 2019, 21:57
+1
ЭЭ… вообще-то тривиально.
$modx->user->get("id");
MODX при инициализации опознает юзера.
Александр Мельник
16 ноября 2019, 21:56
0
Выскажу свою согласие c Александром. Зачем тогда пользоваться Fenom, неужели только чтобы заменить [[+name]] на {$name} и зачем в fenom пробрасывали основной объект приложения $modx в $_modx, разве не для того чтобы в чанке или шаблоне дотянуться до методов.
Александр
16 ноября 2019, 21:54
0
Все не могу въехать в логику решения. По моему ты что-то в описании пропустил. Может у тебя 1 страница которая грузиться десятки секунд, а ты пользователю показываешь 2 страницу с твоим сниппетом, который уже показывает распарсенную 1 страницу?
Александр
16 ноября 2019, 21:45
0
Не пихайте логику во вьюхи. Это бад практис! Перенесите логику в сниппет и вызывайте его на странице.
В MODX не вьюхи, а чанки. То есть, MODX, вообще-то, не придерживается паттерна MVC.
Конечно, в чанки не стоит пихать код, но часто бывает так значительно проще. Например, как тут.
Александр
16 ноября 2019, 21:31
+1
А я вот modHelpers не пользуюсь. Пробегался по диагонали по его функциям. Такое впечатление, что это просто синтаксический сахар. То есть, ничего особо полезного не несет. Просто сокращает имена функций MODX. В итоге, и надо знать функции MODX и еще учить синтаксис modHelpers. Что мне не особо хочется.
Плюс, для совместной работы, надо придерживаться единообразного стиля программирования. Синтаксис php, MODX и fenom знаком многим. А вот modHelpers редко встречается. И, соответственно, его не стоит использовать. Это помешает другим работать над проектом.
Евгений Webinmd
16 ноября 2019, 18:22
0
Вопрос конечно сформулирован мастерски.
Что касается prepareSnippet — то он должен возвращать результат работы в следующем виде
return serialize($row);

Пример сниппета
<?php

if(!$row['publishedon']){
    return serialize($row);
}  


// тут лучше сразу написать обработку даты, но для простоты кода показываю со сторонним сниппетом
$row['dt'] = $modx->runSnippet('dateRu', array(
    'input' => $row['publishedon']
)); 

return serialize($row);

И в итоге в чанке товара уже используется плейсхолдер [[+dt]] {$dt}
Кефирка
16 ноября 2019, 16:35
0
Спасибо! Заработало!!!
Андрей
16 ноября 2019, 16:31
0
В head укажите тег base:
<base href="[[!++site_url]]">

Или если используете Fenom:
<base href="{'site_url' | config}">
Sergey
16 ноября 2019, 13:23
0
Можно там так сделать, согласен. Тогда вопрос, как на стороне сервера понять кто делает запрос? Что именно этот пользователь?