Merge pull request #2718 from riking/plugin-events

FEATURE: Add a plugin callback when editing a post
This commit is contained in:
Robin Ward 2014-09-02 10:46:08 -04:00
commit ab02ef4221
2 changed files with 23 additions and 8 deletions

View File

@ -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

View File

@ -23,13 +23,18 @@ class PostRevisor
# TODO this is not in a transaction - dangerous!
return false unless should_revise?
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