nilox
(nilox)
6 يناير 2022، 1:39م
1
مرحباً يا رفاق!
أنا أتعلم البرمجة حاليًا وأتساءل ما هو المخطط أو التقنية للمنشورات المقروءة/غير المقروءة في Discourse؟
لقد رأيت كيف يفعل SMF ذلك، من خلال مزيج من “وضع علامة على اللوحة كمقروءة” و “وضع علامة على الكل كمقروء” و “وضع علامة مقروءة عند رؤية آخر منشور”.. إلخ.
كيف يتعامل Discourse مع هذا؟
شكرا! =)
إعجاب واحد (1)
من الأفضل التعمق في المصدر:
A platform for community discussion. Free, open, simple.
هل يتم تتبع حالة قراءة الموضوع (حسب المستخدم) بواسطة نموذج TopicUser؟:
# frozen_string_literal: true
class TopicUser < ActiveRecord::Base
self.ignored_columns = [
:highest_seen_post_number, # TODO: Remove when 20240212034010_drop_deprecated_columns has been promoted to pre-deploy
]
belongs_to :user
belongs_to :topic
# used for serialization
attr_accessor :post_action_data
scope :level,
lambda { |topic_id, level|
where(topic_id: topic_id).where(
"COALESCE(topic_users.notification_level, :regular) >= :level",
regular: TopicUser.notification_levels[:regular],
level: TopicUser.notification_levels[level],
)
This file has been truncated. show original
(والتي يتم تخزين بياناتها في قاعدة بيانات Postgres).
يمكنك التفاعل مع هذا على وحدة تحكم rails، من دليل discourse في وضع التطوير، اذهب إلى rails c
ثم يمكنك فعل شيء مثل TopicUser.first والنظر إلى البيانات…
إعجاب واحد (1)
nilox
(nilox)
7 يناير 2022، 9:57ص
3
حلو. أرى المخطط هناك مباشرة، شكراً!
إعجاب واحد (1)