Hi,
I’m using Discourse API for get the latest topics for specific category(works great!):
http://haxe.org.il/c/15/l/latest.json?
but I want to get excerpt for all topics not just topics…
How can I do that?
Thanks,
Michael
Hi,
I’m using Discourse API for get the latest topics for specific category(works great!):
http://haxe.org.il/c/15/l/latest.json?
but I want to get excerpt for all topics not just topics…
How can I do that?
Thanks,
Michael
There currently isn’t a get parameter to request excerpts, but it’s on the list of feature requests.
Hi.
It has been a few years, is it still impossible to do? I’m looking to display my lastest Discourse posts on a WP site and that would be an excellent feature.
Yeah this exists if you install this plugin:
Per:
@codinghorror I wonder should we just roll in the functionality of discourse tooltip, it will help keep it more stable over time and helps a tiny bit in some desktop situations.
I am fairly strongly opposed, because hover means nothing on touch and we should not be relying on non-touch behaviors at all. And given that the world will be 99.9% smartphone usage soon… it’s backwards thinking.
Hi,
I’ve installed and enabled this plugin. It works but I still don’t have the excerpts from other topics than pinned in top.json data.
I believe you need to do another request for the excerpts, like:
Hi, I know this is an old topic, but I am having the same issue.
My rss feed is working fine, but I rather use the Json one as it is more flexible.
So I have a php plugin that pulls discourse json feed ( latest, top, etc), everything works fine… expect the excerpt
Is there is reason why there is no post description on the Json feed? How can I fix this ?
Thanks.
Привет, у меня была та же проблема, и мне удалось её решить, повторно получив тему, чтобы получить необходимые данные. Я сделал это в компоненте topic-list-item.js, используя Ember.PromiseProxyMixin. Как его использовать, читайте здесь: Use Ember.PromiseProxyMixin in a theme
Код выглядит примерно так:
// Я использовал кастомную функцию memoize, чтобы уменьшить количество запросов
const getTopic = memoize(id => ajax(`/t/${id}.json`).then(data => data));
// ...
// Внутри компонента
@discourseComputed("topic")
topicPromise(topic) {
return getTopic(topic.id);
},
@discourseComputed("topicPromise")
topicProxy() {
const promise = this.get("topicPromise");
return promise && PromiseObject.create({ promise });
},
postStream: reads("topicProxy.content.post_stream"),
@discourseComputed("postStream")
excerpt(postStream) {
if (!this.get("postStream")) return false;
return `${stripHtml(postStream.posts[0].cooked).slice(0, 150)}...`;
},
stripHtml — это кастомная функция для удаления HTML из первого поста.
В topic-list-item.hbs у вас будет:
{{#if topicProxy.isFulfilled}}
<div class="excerpt">
{{#if excerpt}}
{{html-safe excerpt}}
{{/if}}
</div>
{{/if}}
Вы делаете отдельный запрос для каждой темы в списке, чтобы получить краткое содержание?
К сожалению, да. Я понимаю, что это сказывается на производительности, но я не принимаю таких решений, если вы понимаете, о чем я.
Вам это понравится
О боже! Почему это скрыто?! ![]()
Поскольку существует множество тем поддержки от администраторов, которые переходят и нажимают на все настройки, не читая их. Это означает, что многие экземпляры будут иметь более тяжелую полезную нагрузку, никогда не используя дополнительные данные, поступающие из API.
Вскоре темы смогут декларативно включать эти изменения в сериализаторе.