Commit 8cea790d4686bbaf5c8299edec23391e3d56a05c
1 parent
1eb7f902
Exists in
ratings_minor_fixes
and in
4 other branches
Includes article image to body images paths listing
The article image is the main image that represents the article so it should be included in the listing, at the beginning. This is specially useful for metadata plugin usage.
Showing
2 changed files
with
14 additions
and
1 deletions
Show diff stats
app/models/article.rb
... | ... | @@ -806,11 +806,13 @@ class Article < ApplicationRecord |
806 | 806 | end |
807 | 807 | |
808 | 808 | def body_images_paths |
809 | - Nokogiri::HTML.fragment(self.body.to_s).css('img[src]').collect do |i| | |
809 | + paths = Nokogiri::HTML.fragment(self.body.to_s).css('img[src]').collect do |i| | |
810 | 810 | src = i['src'] |
811 | 811 | src = URI.escape src if self.new_record? # xss_terminate runs on save |
812 | 812 | (self.profile && self.profile.environment) ? URI.join(self.profile.environment.top_url, src).to_s : src |
813 | 813 | end |
814 | + paths.unshift(URI.join(self.profile.environment.top_url, self.image.public_filename).to_s) if self.image.present? | |
815 | + paths | |
814 | 816 | end |
815 | 817 | |
816 | 818 | def more_comments_label | ... | ... |
test/unit/article_test.rb
... | ... | @@ -1483,6 +1483,17 @@ class ArticleTest < ActiveSupport::TestCase |
1483 | 1483 | assert_includes a.body_images_paths, 'http://test.com/noosfero.png' |
1484 | 1484 | end |
1485 | 1485 | |
1486 | + should 'always put article image first in images paths list in article body' do | |
1487 | + Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') | |
1488 | + a = create(TinyMceArticle, :name => 'test', :image_builder => { | |
1489 | + :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') | |
1490 | + }, :profile_id => @profile.id) | |
1491 | + a.save! | |
1492 | + a.body = 'Noosfero <img src="http://noosfero.com/test.png" /> test <img src="http://test.com/noosfero.png" />' | |
1493 | + a.image.stubs(:public_filename).returns('/files/rails.png') | |
1494 | + assert_equal 'http://noosfero.org/files/rails.png', a.body_images_paths[0] | |
1495 | + end | |
1496 | + | |
1486 | 1497 | should 'escape utf8 characters correctly' do |
1487 | 1498 | Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') |
1488 | 1499 | a = build TinyMceArticle, profile: @profile | ... | ... |