mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-11-27 09:36:19 -05:00
Merge pull request #2718 from riking/plugin-events
FEATURE: Add a plugin callback when editing a post
This commit is contained in:
commit
ab02ef4221
2 changed files with 23 additions and 8 deletions
|
@ -69,6 +69,7 @@ class PostCreator
|
|||
setup_topic
|
||||
setup_post
|
||||
rollback_if_host_spam_detected
|
||||
plugin_callbacks
|
||||
save_post
|
||||
extract_links
|
||||
store_unique_post_key
|
||||
|
@ -113,7 +114,6 @@ class PostCreator
|
|||
|
||||
post.cooked ||= post.cook(post.raw, cooking_options)
|
||||
post.sort_order = post.post_number
|
||||
DiscourseEvent.trigger(:before_create_post, post)
|
||||
post.last_version_at ||= Time.now
|
||||
end
|
||||
|
||||
|
@ -157,6 +157,11 @@ class PostCreator
|
|||
end
|
||||
end
|
||||
|
||||
def plugin_callbacks
|
||||
DiscourseEvent.trigger :before_create_post, @post
|
||||
DiscourseEvent.trigger :validate_post, @post
|
||||
end
|
||||
|
||||
def track_latest_on_category
|
||||
return unless @post && @post.errors.count == 0 && @topic && @topic.category_id
|
||||
|
||||
|
|
|
@ -23,13 +23,18 @@ class PostRevisor
|
|||
|
||||
# TODO this is not in a transaction - dangerous!
|
||||
return false unless should_revise?
|
||||
@post.acting_user = @editor
|
||||
revise_post
|
||||
update_category_description
|
||||
update_topic_excerpt
|
||||
post_process_post
|
||||
update_topic_word_counts
|
||||
@post.advance_draft_sequence
|
||||
|
||||
Post.transaction do
|
||||
@post.acting_user = @editor
|
||||
revise_post
|
||||
plugin_callbacks
|
||||
update_category_description
|
||||
update_topic_excerpt
|
||||
post_process_post
|
||||
update_topic_word_counts
|
||||
@post.advance_draft_sequence
|
||||
end
|
||||
|
||||
PostAlerter.new.after_save_post(@post)
|
||||
@post.publish_change_to_clients! :revised
|
||||
BadgeGranter.queue_badge_grant(Badge::Trigger::PostRevision, post: @post)
|
||||
|
@ -51,6 +56,11 @@ class PostRevisor
|
|||
end
|
||||
end
|
||||
|
||||
def plugin_callbacks
|
||||
DiscourseEvent.trigger :before_edit_post, @post
|
||||
DiscourseEvent.trigger :validate_post, @post
|
||||
end
|
||||
|
||||
def get_revised_at
|
||||
@opts[:revised_at] || Time.now
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue