Comment personnaliser l'algorithme de score des sujets populaires avec un plugin ?

Le plus simple, mais potentiellement limité selon ce que vous voulez faire.

Faisable mais plus complexe. Jetez un œil à la manière dont TopicQuery implémente les listes

et spécifiquement

  def list_hot
    create_list(:hot, unordered: true, prioritize_pinned: true) do |topics|
      topics = remove_muted(topics, user, options)
      topics.joins("JOIN topic_hot_scores on topics.id = topic_hot_scores.topic_id").order(
        "topic_hot_scores.score DESC",
      )
    end
  end

Vous pouvez en ajouter une supplémentaire relativement facilement, bien qu’il y ait pas mal de pièces mobiles à prendre en compte. Je l’ai fait dans mon plugin ‘homepage-filter’ et cela pourrait être un bon point de départ.