lib/ziya/ziya_helper.rb in derailed-ziya-2.0.4 vs lib/ziya/ziya_helper.rb in derailed-ziya-2.0.6
- old
+ new
@@ -1,19 +1,16 @@
-# -----------------------------------------------------------------------------
# Generates necessary html flash tag to support ZiYa
#
-# TODO !! Rewrite to use content tag block instead...
+# TODO -- Rewrite to use content tag block instead...
#
# Author: Fernand Galiana
-# -----------------------------------------------------------------------------
require 'cgi'
require 'erb'
module Ziya
module Helper
- # -------------------------------------------------------------------------
# generates a javascript tag to include the js script to create object and
# embed tags
def ziya_javascript_include_tag
js = <<-JS
<script language="javascript" type="text/javascript">
@@ -53,11 +50,13 @@
setup_wmode( options )
# setup width and height
setup_movie_size( options )
- xml_swf_path = charts_swf % [options[:swf_path], escape_url(url)]
+ flash_vars = url ? charts_swf : charts_swf_no_src
+ xml_swf_path = flash_vars % [options[:swf_path], escape_url(url)]
+ xml_swf_path << "&chart_id=#{options[:id]}"
xml_swf_path << "×tamp=#{Time.now.to_i}" if options[:cache] == false
xml_swf_path << "&timeout=#{options[:timeout]}&retry=#{options[:retry]}" if options[:timeout]
xml_swf_path << "&stage_width=#{options[:width]}&stage_height=#{options[:height]}" if options[:use_stage] == true
js = <<-JS
@@ -99,11 +98,10 @@
}
</script>
JS
end
- # -------------------------------------------------------------------------
# generates necessary html tags to display a gauge.
def ziya_gauge( url, gauge_options={} )
options = { :width => "200",
:height => "200",
:align => "middle",
@@ -119,11 +117,10 @@
}.merge!(gauge_options)
generate_old_style_flash_tag( url, gauges_swf, options )
end
- # -------------------------------------------------------------------------------------
# generates neccessary html tags to display a chart.
def ziya_chart( url, chart_options = {} )
options = { :width => "400",
:height => "300",
:tag_type => "embed",
@@ -136,11 +133,12 @@
:use_cache => false,
:timeout => nil,
:use_stage => false
}.merge!(chart_options)
- generate_flash_tag( url, charts_swf, "charts.swf", options )
+ flash_vars = url ? charts_swf : charts_swf_no_src
+ generate_flash_tag( url, flash_vars, "charts.swf", options )
end
# flash chart library path
def gen_composite_path( swf_chart_dir, url )
composite_url % [swf_chart_dir, swf_chart_dir, escape_url( url )]
@@ -148,23 +146,24 @@
# =========================================================================
# private
# Const accessors...
- def mime() "application/x-shockwave-flash"; end
- def composite_url() "%s/charts.swf?library_path=%s/charts_library&xml_source=%s" end
- def charts_swf() "library_path=%s/charts_library&xml_source=%s"; end
- def plugin_url() "http://www.macromedia.com/go/getflashplayer"; end
- def gauges_swf() "%s/gauge.swf?xml_source=%s"; end
- def gauge_path() "/gauges"; end
- def chart_path() "/charts"; end
- def class_id() "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" end
- def codebase() "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0"; end
+ def mime() "application/x-shockwave-flash"; end
+ def composite_url() "%s/charts.swf?library_path=%s/charts_library&xml_source=%s" end
+ def charts_swf_no_src() "library_path=%s/charts_library"; end
+ def charts_swf() "#{charts_swf_no_src}&xml_source=%s"; end
+ def plugin_url() "http://www.macromedia.com/go/getflashplayer"; end
+ def gauges_swf() "%s/gauge.swf?xml_source=%s"; end
+ def gauge_path() "/gauges"; end
+ def chart_path() "/charts"; end
+ def class_id() "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" end
+ def codebase() "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0"; end
# generates swf path
def gen_swf_path( path_directive, swf_dir, url )
- path_directive % [swf_dir, escape_url( url )]
+ path_directive % [swf_dir, escape_url( url )]
end
def generate_old_style_flash_tag( url, swf_path, options )
# Setup options for opaque mode
setup_wmode( options )
@@ -228,72 +227,48 @@
xml_swf_path = gen_swf_path( swf_path, options[:swf_path], url )
xml_swf_path << "×tamp=#{Time.now.to_i}" if options[:cache] == false
xml_swf_path << "&timeout=#{options[:timeout]}" if options[:timeout]
xml_swf_path << "&stage_width=#{options[:width]}&stage_height=#{options[:height]}" if options[:use_stage] == true
- # if options[:tag_type] == "object"
- tags = <<-TAGS
- <object codebase="#{codebase}" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="#{options[:id]}" height="#{options[:height]}" width="#{options[:width]}">
- <param name="scale" value="noscale">
- <param name="salign" value="#{options[:salign]}">
- <param name="bgcolor" value="#{options[:bgcolor]}">
- <param name="wmode" value="#{options[:wmode]}">
- <param name="movie" value="#{options[:swf_path]}/#{swf_file}">
- <param name="FlashVars" value="#{xml_swf_path}&chart_id=#{options[:id]}">
- <param name="menu" value="true">
- <param name="allowFullScreen" value="true">
- <param name="allowScriptAccess" value="sameDomain">
- <param name="quality" value="high">
- <param name="play" value="true">
- <param name="devicefont" value="false">
- <embed scale="noscale"
- allowfullscreen="true"
- allowscriptaccess="sameDomain"
- bgcolor="#{options[:bgcolor]}"
- devicefont="false"
- flashvars="#{xml_swf_path}"
- menu="true"
- name="#{options[:id]}"
- play="true"
- pluginspage="http://www.macromedia.com/go/getflashplayer"
- quality="high"
- salign="#{options[:salign]}"
- src="#{options[:swf_path]}/#{swf_file}"
- type="application/x-shockwave-flash"
- wmode="#{options[:wmode]}"
- align="#{options[:align]}"
- height="#{options[:height]}"
- width="#{options[:width]}"/>
+ tags = <<-TAGS
+ <object codebase="#{codebase}" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="#{options[:id]}" height="#{options[:height]}" width="#{options[:width]}">
+ <param name="scale" value="noscale">
+ <param name="salign" value="#{options[:salign]}">
+ <param name="bgcolor" value="#{options[:bgcolor]}">
+ <param name="wmode" value="#{options[:wmode]}">
+ <param name="movie" value="#{options[:swf_path]}/#{swf_file}">
+ <param name="Flashvars" value="#{xml_swf_path}&chart_id=#{options[:id]}">
+ <param name="menu" value="true">
+ <param name="allowFullScreen" value="true">
+ <param name="allowScriptAccess" value="sameDomain">
+ <param name="quality" value="high">
+ <param name="play" value="true">
+ <param name="devicefont" value="false">
+ <embed scale="noscale"
+ allowfullscreen = "true"
+ allowscriptaccess = "sameDomain"
+ bgcolor = "#{options[:bgcolor]}"
+ devicefont = "false"
+ flashvars = "#{xml_swf_path}&chart_id=#{options[:id]}"
+ menu = "true"
+ name = "#{options[:id]}"
+ play = "true"
+ pluginspage = "http://www.macromedia.com/go/getflashplayer"
+ quality = "high"
+ salign = "#{options[:salign]}"
+ src = "#{options[:swf_path]}/#{swf_file}"
+ type = "application/x-shockwave-flash"
+ wmode = "#{options[:wmode]}"
+ align = "#{options[:align]}"
+ height = "#{options[:height]}"
+ width = "#{options[:width]}"/>
</object>
TAGS
- # else
- # tags = <<-TAGS
- # <embed scale="noscale"
- # allowfullscreen="true"
- # allowscriptaccess="sameDomain"
- # bgcolor="#{options[:bgcolor]}"
- # devicefont="false"
- # flashvars="#{xml_swf_path}"
- # menu="true"
- # name="#{options[:id]}"
- # play="true"
- # pluginspage="http://www.macromedia.com/go/getflashplayer"
- # quality="high"
- # salign="#{options[:salign]}"
- # src="#{options[:swf_path]}/#{swf_file}"
- # type="application/x-shockwave-flash"
- # wmode="#{options[:wmode]}"
- # align="#{options[:align]}"
- # height="#{options[:height]}"
- # width="#{options[:width]}"/>
- # TAGS
- # end
- tags
end
# escape url
def escape_url( url )
- CGI.escape( url.gsub( /&/, '&' ) )
+ url ? CGI.escape( url.gsub( /&/, '&' ) ) : url
end
# setup up wmode
# Set the wmode to opaque if a bgcolor is specified. If not set to
# transparent mode unless user overrides it