Добавено на: 2010-05-06 21:45:45
Гаранция има по-добър начин като вкараме подръжката на vbox7 към самия плъгин, но аз нямам това време да се занимавам към момента. Бабешкия метод ще ви го покажа.
Имаме форма примерно:
В контролера имаме:
В View-то имаме:
Helpers:
Определено не е чист вариант, но работи. Може да се ползва спокойно. Ако нещо не е ясно можете да питате. Не съм се впускал в обяснения понеже темата така или иначе е за малко по напреднали.
Имаме форма примерно:
form_for :post, :url => '/create', :html => {:multipart => true, :class => 'ala_bala'} do |f|
f.hidden_field :user_id, :value => current_user.id %>
f.hidden_field :cat, :value => '1'
f.text_area :post, :id => 'post_field'
<#input type="submit" class="button_blue" value="alabala"/>
f.text_field :link, :id => 'link_url_field'
f.text_field :video, :id => 'video_url_field'
f.text_field :image_url, :id => 'image_url_field'
f.file_field :image, :style => 'font-size:18px;', :size => '16', :id => 'image_field'
end
В контролера имаме:
def create
unless params[:post][:video].blank?
website = params[:post][:video]
website = website.strip
website_downcase = website.downcase
if website_downcase[0..9] == 'http://www'
site = website
site_first = site[0..19]
elsif website_downcase[0..2] == 'www'
site = "http://#{website}"
site_first = site[0..19]
elsif website_downcase[0..6] == 'http://'
site = website
site_first = site[0..15]
else
site = "http://#{website}"
site_first = site[0..15]
end
if site_first == 'http://vbox7.com' || site_first == 'http://www.vbox7.com'
video_url = site
image = site.split(':')
image_code = image[2][0..7]
image_remote_url = "http://i48.vbox7.com/p/#{image_code}3.jpg"
@post = Post.new(:user_id => params[:post][:user_id], :post => params[:post][:post], :cat => params[:post][:cat] , :link => params[:post][:link], :video => video_url, :image_url => image_remote_url)
else
video_url = UnvlogIt.new(params[:post][:video])
@post = Post.new(:user_id => params[:post][:user_id], :post => params[:post][:post], :cat => params[:post][:cat] , :link => params[:post][:link], :video => params[:post][:video], :image_url => video_url.thumbnail)
end
else
@post = Post.new(params[:post])
end
@post.save
redirect_to :back
end
В View-то имаме:
unless @post.video.blank?
if get_vbox(@post.video) == 'http://vbox7.com' || get_vbox(@post.video) == 'http://www.vbox7.com'
<=object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="500" height="350"><=param name="movie" value="http://i48.vbox7.com/player/ext.swf?vid= get_vbox_code(@post.video)"><=param name="quality" value="high">"http://i47.vbox7.com/player/ext.swf?vid=%20get_vbox_code%28@post.video%29" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="500" height="350">
else
video = UnvlogIt.new(@post.video)
video.embed_html(500, 350)
end
Helpers:
def get_vbox(url)
website = url
website = website.strip
website_downcase = website.downcase
if website_downcase[0..9] == 'http://www'
site = website
return site_first = site[0..19]
elsif website_downcase[0..2] == 'www'
site = "http://#{website}"
return site[0..19]
elsif website_downcase[0..6] == 'http://'
site = website
return site[0..15]
else
site = "http://#{website}"
return site[0..15]
end
end
def get_vbox_code(url)
image = url.split(':')
return image[2][0..7]
end
Определено не е чист вариант, но работи. Може да се ползва спокойно. Ако нещо не е ясно можете да питате. Не съм се впускал в обяснения понеже темата така или иначе е за малко по напреднали.
