Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #5
14 ноября 2019, 07:23
+2
Одно замечание. Префикс «mod» зарезервирован для системного функционала. А твой компонент явно никак не связан с ядром. Лучше не нарушать правила!
05 ноября 2019, 16:57
0
Продолжаем ликбез. Если Вы хотите, чтобы человек,. написавший комментарий, Вам ответил, нужно ответить на его комментарий. Тогда он получит уведомление. Это раз.
Два. Забейте в поиск «pdoresources modx» и получите нужные ответы. Можно глянуть доку. Тут нужно обратить внимание на параметр «parents». Подсказка —
&parents=`[[*parent]]`
Это нужно вызывать в шаблоне статей.
05 ноября 2019, 09:16
0
но думал что по алигории с папкой, есть папка в ней контент, в другой папке свой контент, а выходит в какую бы папку контект не залил, он виден из всех.
Во-первый, не аллегория, а аналогия. Во-вторых, именно так и работает.
03 ноября 2019, 12:56
+1
Тогда можно и так freelancemodxthebestfuckingcmsofalltime7723.tv ))
03 ноября 2019, 12:50
0
или modx.pro ))
03 ноября 2019, 10:08
0
так как хочу делать структуру сайта с 3 категориями и в последней статьи для удобства фильтра
Видимо имеется ввиду 3 уровня категории.

pdoMenu работает с данными уже ввиде дерева, а не с плоским списком. Проще всего реализовать такое через Fenom. К сожалению, из коробки сниппеты pdoTools не умеют работать сырыми данными. Попробуйте разобраться с таким решением. Дальше как два пальца…
03 ноября 2019, 09:40
+2
Полностью согласен. С маркетинговой точки зрения не должно быть привязки к региону — ни ru, ни by, ни ua. Если проект задумавается как масштабный для РУ-сегмента, то домен com или pro. И без ограничений по коммерции (не знаю, разрешено ли это на pro).

Моё мнение — выделить на него одну минуту, сняв шляпу и помолчав. RIP.
18 октября 2019, 07:40
1
+1
Можно написать в другом формате
'select' => '["MedPred.*, COUNT(profile.id) as `users`, COUNT(IF(get_upload_count(profile.internalKey) > 0, 1, NULL)) as `uploads`"]'
В таком формате xPDO вставляется без обработки.

П.С, Это json массив с одной строкой.
17 октября 2019, 07:43
+2
[[+publishedon:strtotime:add=`3600`:date=`%a, %d %b %Y %H:%M:%S +0400`]]
13 октября 2019, 23:01
0
Мы раньше вроде были на «ты». Я так постарел?

Обрати внимание на метод $app->run();
В нём вызываются конкретные классы. Причем, если не указан конкретный реквест, то он определяется автоматически по установленным пакетам (я выше писал).

Но признаюсь, синтаксис в slim4 мне сложноват, он прям на полную использует все нововведения седьмых версий php
А мне безумно нравится. В пекло PHP 5. ))

Я на данном этапе решил, что методы из интерфейса psr-7 (и psr-15 ) вшиты в сам php.
Найн. Ю а ронг.
13 октября 2019, 19:36
0
В комментарии это не обьяснишь. Попробуй почитать тут. Но ты как-то широко шагнул. Сначала нужно базовые знания получить, а потом усложнять.
Интерфейсы дают малую связанность. Т.е. ты можешь подсунуть в метод любой класс, соответствующий определенным требованиям. За это как раз и отвечает интерфейс.

Но где прописана реализация этих методов из стандарта psr-7?
У того же Slim эти классы пробрасываются при инициализации приложения. В нем жестко прописана проверка наличия нескольких пакетов. Сначала свой пакет, потом Guzzle и ещё какие то. Не помню. Но можно и самому инстанциировать любой свой класс запроса или ответа. Главное, чтобы соответствовал интерфейсу. Иначе будет ошибка.

Есть фреймворки. строго следующие этим стандартам. К примеру Slim.
Тройка ещё не соответствует. Например, $response->toJson() не соответствует стандарту. А вот четверка поддерживает почти все текущие утвержденные стандарты. После тройки приходится привыкать. И всякие методы обработки запроса и ответа выносить на сервисный уровень.
05 октября 2019, 10:08
0
Это не претензия. Просто пример одной из возможных реализаций. Можно и так и эдак и по всякому.
05 октября 2019, 09:57
1
+1
Мысли в воздух.
Не обязательно расширять сервис ради проверки прав. Мы можем сделать любую проверку самостоятельно
// Вместо этой проверки
if (!$rest->checkPermissions()) {
    $rest->sendUnauthorized(true);
}
// Пишем свою 
if (!$modx->hasPermission('some_permission')) {
    $modx->sendUnauthorizedPage();
    // echo json_encode(['success' => false, 'message' => 'Permission denied.']); exit;
}
05 октября 2019, 09:38
+1
Следуя парадигме современной разработки, использовать папку model нужно только для моделей. Т.е. класс модели xPDO, схема и мап-файл. Остальному там не место.
04 октября 2019, 14:11
0
Уберите у 404 страницы из футера форму обратной связи.
29 сентября 2019, 22:31
+3
REST — это архитектурный стиль. А RESTful API — это реализация этого стиля.
Правильно говорить именно RESTful API, но в народе уже прижилось неправильное название REST API.
29 сентября 2019, 19:56
+1
Возможно автор топика дальше раскроет тонкости проверки прав, но в этом топике не сделал акцент, что вот за этим
// Проверяем, что пользователю предоставлены необходимые права доступа;
// Бьем по рукам и Возвращаем пользователю ошибку 401 ежели чего
if (!$rest->checkPermissions()) {
    $rest->sendUnauthorized(true);
}
ничего не стоит, хотя комментарий вселяет уверенность, что проверка есть. А если заглянуть в код этого метода, то увидим следующее
public function checkPermissions() {
    return true;
}
Новички могут попасть.
29 сентября 2019, 18:07
0
Никак ни с токен-авторизацией, ни с какой другой. Есть всего один абстрактный контроллер, который нужно наследовать. Поэтому разработчику придётся всё писать самостоятельно.
29 сентября 2019, 15:01
0
Не так. Системная настройка отвечает за множественный вывод как и раньше. А вот новая галочка у ресурса позволяет убрать URL этого ресурса из урлов дочерник элементов. Т.е. если если у ресурса parent2 убрать этот чекбокс, то урл дочернего документа c урлом parent1/parent2/child1 он будет такой — parent1/child1.
28 сентября 2019, 08:16
+1
Modx обновлен до последней версии, но в ресурсе так и не появилось новое поле «Использовать псевдоним в пути псевдонимов»
Ctrl-F5. Но этот чекбокс имеет значение только, если включена настройка «Использовать вложенные URL».

Попробуй очистить кэш.