merefield
(Robert)
13.Февраль.2024 20:10:16
1
Мне может казаться, но этот компонент ожидает модель, содержащую объект topic:
Однако, когда я вывожу эту модель в лог, атрибута topic больше нет?:
Есть ли причина, по которой атрибут topic был удалён? Я как раз использовал его для расширения adplugin
2 лайка
david
(David Taylor)
14.Февраль.2024 11:45:43
3
Привет, Роберт. Я не думаю, что это было сделано намеренно. Ты смог выяснить, что означает @model? Было бы полезно понять, связано ли это с изменением в ядре или в плагине.
1 лайк
merefield
(Robert)
14.Февраль.2024 11:56:40
4
Разве он не принимает модель Post, передаваемую через коннектор post-bottom?
{{post-bottom-ad model=this}}
Тем не менее, я выполнил поиск по post-bottom в репозитории Discourse, но ничего не нашёл… Я покопаюсь чуть глубже.
1 лайк
merefield
(Robert)
14.Февраль.2024 12:44:36
5
Похоже, это очень старый код:
transformed.cloaked = _cloaked[post.id];
postTransformCallbacks(transformed);
if (transformed.isSmallAction) {
result.push(
this.attach("post-small-action", transformed, { model: post })
);
} else {
transformed.showReadIndicator = attrs.showReadIndicator;
result.push(this.attach("post", transformed, { model: post }));
}
// Post gap - after
const afterGap = after[post.id];
if (afterGap) {
result.push(
this.attach(
"post-gap",
{ pos: "after", postId: post.id, gap: afterGap },
{ model: post }
В нём используется объект темы, поэтому всё, что находится ниже этого, может меняться
2 лайка
david
(David Taylor)
14.Февраль.2024 13:43:08
6
Понятно, что произошло — спасибо за предупреждение @merefield
main ← widget-model
merged 01:59PM - 14 Feb 24 UTC
Changes in 0948d6b19e34320f95226cc43fbce976b71ceb31 caused the post-bottom-ad co… mponent to start receiving the widget-ised 'transformedPost' instead of the original `post` model. In most cases this difference didn't matter, but it did cause noticable issues with `@model.category` and `@model.topic`.
This commit also deletes the unused `post-bottom/discourse-adplugin.hbs` connector. In the past, the adplugin itself was defining the post-bottom outlet. But now, we use RenderGlimmer to load the `post-bottom-ad` directly.
Два момента:
Во время рефакторинга несколько месяцев назад мы по ошибке начали передавать ‘transformedPost’ вместо ‘post’ в post-bottom-ad.
В ходе того же рефакторинга мы оставили старый файл post-bottom/discourse-adplugin.hbs. Он на самом деле ничего не делал, но из-за него эта проблема стала намного сложнее для понимания
4 лайка
merefield
(Robert)
14.Февраль.2024 14:22:09
7
Это идеальное описание
Архитектура интерфейса потока постов — это настоящая махина!
Огромное спасибо, что уделили этому внимание!!
6 лайков
david
(David Taylor)
Закрыл(а) тему
19.Февраль.2024 08:00:35
8
Эта тема была автоматически закрыта через 4 дня. Новые ответы больше не принимаются.