'
: ''
end
def minor
(@make.build.html_right_pane? \
&& @flag[:ad]) \
? '
'
: ''
end
def close
(@make.build.html_right_pane? \
&& @flag[:ad]) \
? '
'
: ''
end
self
end
def display
ads_array,promo_array=[],[]
if @make.build.html_right_pane? \
&& @flag[:ad]
ads=if @md.promo && @md.promo.length > 0 #promo set in document
promo_array=@md.promo
elsif @flag[:rc] #promo set in rc file
promo_array=if @rc['html']['promo'].is_a?(String)
@rc['html']['promo'].split(/[,;]\s*/)
else @rc['html']['promo']
end
else advert_extract_all
end
ads=if promo_array.length > 0
promo_array.each do |x|
ads_array << advert_extract_subject(x)
end
ads_array
end
adverts(ads.join)
end
end
def cell(prod,id)
@prod,@id=prod,id
def title
@prod['title'] ? %{
#{@prod['title']}} : ''
end
def subtitle
@prod['subtitle'] ? %{ - #{@prod['subtitle']}} : ''
end
def author
@prod['author'] ? %{
#{@prod['author']}
} : ''
end
def editor
@prod['editor'] ? %{
#{@prod['editor']}
} : ''
end
def year
@prod['year'] ? %{
#{@prod['year']}
} : ''
end
def date
@prod['date'] ? %{
On: #{@prod['date']}
} : ''
end
def location
@prod['at'] ? %{
At: #{@prod['at']}
} : ''
end
def pages
@prod['pages'] ? %{
Pages: #{@prod['pages']} pages
} : ''
end
def form
@prod['form'] ? %{
#{@prod['form']}
} : ''
end
def nick
@prod['nick'] ? %{(#{@prod['nick']})
} : ''
end
def update
@prod['update'] ? %{
Updated: #{@prod['update']}
} : ''
end
def issn
@prod['issn'] ? %{
issn: #{@prod['issn']}
} : ''
end
def blurb
@prod['blurb'] ? %{
#{@prod['blurb']}
} : ''
end
def search_form_sisu(table=true)
db=if @prod['db']=~/\S+/
(@prod['db']=~/^#{Db[:name_prefix]}\S+/) ? @prod['db'] : "#{Db[:name_prefix]}#{@prod['db']}"
elsif defined? @rc['search']['sisu']['db'] \
and @rc['search']['sisu']['db'] =~/\S+/
(@rc['search']['sisu']['db']=~/^#{Db[:name_prefix]}\S+/) \
? @prod['search']['sisu']['db']
: "#{Db[:name_prefix]}#{@prod['db']}"
else nil
end
action=if @prod['action']=~/^https?:\/\//
@prod['action']
elsif defined? @rc['search']['sisu']['action'] \
and @rc['search']['sisu']['action'] =~/^https?:\/\//
@rc['search']['sisu']['action']
else nil
end
if action \
and db
@env.widget.search_form('sisusearch',action,db,table)
else ''
end
end
def search_form_hyperestraier(table=true)
action=if defined? @rc['search']['hyperestraier']['action'] \
and @rc['search']['hyperestraier']['action'] =~/^https?:\/\//
@rc['search']['hyperestraier']['action']
else nil
end
form=if action
'
' + @env.widget.search_form('hyperestraier',action,'',table)
else ''
end
form
end
def links
if @prod['links'] #and @prod['links']==Array
links_a=[]
@prod['links'].each do |x|
if x \
and x['url'] \
and x['title']
subtitle=x['subtitle'] ? %{ - #{x['subtitle']}} : ''
url_=(x['url'] =~/https?:/) ? x['url'] : "../#{x['url']}"
links_a << %{
#{x['title']}#{subtitle}
\n}
end
end
links_a.join
else ''
end
end
def image
@prod['image'] ? %{
} : ''
end
def url_link
@url_=if @prod['url'] =~/https?:/
"#{@prod['url']}"
else "../#{@prod['url']}" # "#{@env.url.root}/#{@prod['url']}"
end
def show
@prod['url'] ? %{
#{@url_}
} : ''
end
def url
@prod['url'] ? %{
} : ''
end
def url_relative
@prod['url'] ? %{} : ''
end
self
end
def flyer
if @prod['flyer']
%{ PDF flyer
}
else ''
end
end
def price
def gbp
if defined? @prod['price']['gbp'] \
and @prod['price']['gbp']
" £ #{@prod['price']['gbp']} (GBP) "
else ''
end
end
def euro
if defined? @prod['price']['euro'] \
and @prod['price']['euro']
" € #{@prod['price']['euro']} (Euro) "
else ''
end
end
def usd
if defined? @prod['price']['usd'] \
and @prod['price']['usd']
" $ #{@prod['price']['usd']} (USD) "
else ''
end
end
%{Price:#{gbp}#{euro}#{usd}
}
end
def adsense #draw content from a configuration file
def column_right
if defined? @ad[:promo]['ad']['adsense']['column_right']
@ad[:promo]['ad']['adsense']['column_right'].join("\n")
else ''
end
end
def line_single
if defined? @ad[:promo]['ad']['adsense']['line_single']
@ad[:promo]['ad']['adsense']['line_single'].join("\n")
else ''
end
end
self
end
def site_link #Work area
if url_link.url
<<-WOK
#{url_link.url}
#{image}
#{title}
#{subtitle}
#{nick}
WOK
else
<<-WOK
#{image}
#{title}
#{subtitle}
WOK
end
end
self
end
def output_form_sponsor(type,id)
cell=cell(@ad[:promo][type][id],prod_id)
<<-WOK
#{cell.site_link}
#{cell.blurb}
#{cell.links}
WOK
end
def output_form_link(type,id)
prod_id=id.gsub(/id_/,'')
cell=cell(@ad[:promo][type][id],prod_id)
<
#{cell.site_link}
#{cell.author}
#{cell.year}
#{cell.blurb}
#{cell.links}
WOK
end
def output_form_search_sisu(type,id)
prod_id=id.gsub(/id_/,'')
cell=cell(@ad[:promo][type][id],prod_id)
cell.search_form_sisu(false)
end
def output_form_search_hyperestraier(type,id)
prod_id=id.gsub(/id_/,'')
cell=cell(@ad[:promo][type][id],prod_id)
cell.search_form_hyperestraier(false)
end
def output_form_book(type,id)
prod_id=id.gsub(/id_/,'')
cell=cell(@ad[:promo][type][id],prod_id)
prod_type=((id=~/id_(?:[0-9x]){10,13}/i) ? 'isbn' : 'id')
id_detail=%{#{prod_type}: #{prod_id}
}
<
#{cell.site_link}
#{cell.author}
#{cell.year}
#{id_detail}
#{cell.pages}#{cell.form}
#{cell.price}
#{cell.flyer}
#{cell.blurb}
#{cell.links}
WOK
end
def output_form_journal(type,id)
prod_id=id.gsub(/id_/,'')
cell=cell(@ad[:promo][type][id],prod_id)
<
#{cell.site_link}
#{cell.editor}
#{cell.issn}
#{cell.update}
#{cell.form}
#{cell.price.gsub(/Price:/,'Subscription:')}
#{cell.flyer}
#{cell.blurb}
#{cell.links}
WOK
end
def output_form_conference(type,id)
prod_id=id.gsub(/id_/,'')
cell=cell(@ad[:promo][type][id],prod_id)
#translate date (dd month yyyy) from 2007-03-04 and ruby conversion
<
#{cell.site_link}
#{cell.date}
#{cell.location}
#{cell.price}
#{cell.flyer}
#{cell.blurb}
#{cell.links}
WOK
end
def output_form_select(type,id)
case type
when /site/
output_form_link(type,id)
when /sponsor/
output_form_sponsor(type,id)
when /search/
if id=~/hyperestraier/
output_form_search_hyperestraier(type,id)
else output_form_search_sisu(type,id)
end
when /book/
output_form_book(type,id)
when /journal/
output_form_journal(type,id)
when /conference/
output_form_conference(type,id)
end
end
def advert_extract_subject(category) #extracts products from category/subject list
adverts=[]
if defined? @ad[:promo_list][category] \
and @ad[:promo_list][category]
@ad[:promo_list][category].keys.each do |type|
@ad[:promo_list][category][type].each do |i|
if i
id=((i.inspect =~/^\d/) ? "id_#{i.to_s.strip}" : i.to_s.strip) #watch remove .to_s ?
if defined? @ad[:promo][type][id] \
and not @ad[:promo][type][id].nil?
adverts << output_form_select(type,id)
else
if defined? @ad[:promo][category][type][id] \
and @ad[:promo][category][type][id].is_a?(Array) \
and @ad[:promo][category][type][id].length > 0
adverts << @ad[:promo][category][type][id].join("\n")
end
end
end
end
end
else
SiSU_Screen::Ansi.new(
@md.opt.act[:color_state][:set],
"*WARN* category not found: #{category}"
).warn unless @md.opt.act[:quiet][:set]==:on
end
adverts.join
end
def advert_extract_all #extracts all products from list (which is broken down into categories)
adverts=[]
@ad[:promo_list].keys.each do |category|
adverts << advert_extract_subject(category)
end
adverts.flatten
end
def adverts(ads)
<