diff options
Diffstat (limited to 'lib/sisu/v1/html_promo.rb')
-rw-r--r-- | lib/sisu/v1/html_promo.rb | 442 |
1 files changed, 0 insertions, 442 deletions
diff --git a/lib/sisu/v1/html_promo.rb b/lib/sisu/v1/html_promo.rb deleted file mode 100644 index ceb3eee5..00000000 --- a/lib/sisu/v1/html_promo.rb +++ /dev/null @@ -1,442 +0,0 @@ -# coding: utf-8 -=begin - - * Name: SiSU - - * Description: a framework for document structuring, publishing and search - - * Author: Ralph Amissah - - * Copyright: (C) 1997 - 2010, Ralph Amissah, All Rights Reserved. - - * License: GPL 3 or later: - - SiSU, a framework for document structuring, publishing and search - - Copyright (C) Ralph Amissah - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program. If not, see <http://www.gnu.org/licenses/>. - - If you have Internet connection, the latest version of the GPL should be - available at these locations: - <http://www.fsf.org/licensing/licenses/gpl.html> - <http://www.gnu.org/licenses/gpl.html> - - <http://www.jus.uio.no/sisu/gpl.fsf/toc.html> - <http://www.jus.uio.no/sisu/gpl.fsf/doc.html> - <http://www.jus.uio.no/sisu/gpl.fsf/plain.txt> - - * SiSU uses: - * Standard SiSU markup syntax, - * Standard SiSU meta-markup syntax, and the - * Standard SiSU object citation numbering and system - - * Hompages: - <http://www.jus.uio.no/sisu> - <http://www.sisudoc.org> - - * Download: - <http://www.jus.uio.no/sisu/SiSU/download.html> - - * Ralph Amissah - <ralph@amissah.com> - <ralph.amissah@gmail.com> - - ** Description: html advertising component, build here, mockup - -=end -module SiSU_HTML_promo - require "#{SiSU_lib}/sysenv" - include SiSU_Env - class Ad - def initialize(md) - @md=md - @env=SiSU_Env::Info_env.new(@md.fns,@md) - @rc=SiSU_Env::Get_init.instance.yamlrc - @ad=SiSU_Env::Get_init.instance.ads - @vz=SiSU_Env::Get_init.instance.skin - @flag=@env.widget.promo? - end - def div - def major - @flag[:ad] ? '<div id="pane_major">' : '' - end - def minor - @flag[:ad] ? '<div id="pane_minor">' : '' - end - def close - @flag[:ad] ? '</div>' : '' - end - self - end - def display #(type=nil,id=nil) - ads_array,promo_array=[],[] - if @flag[:ad] - ads=if @md.promo && @md.promo.length > 0 #promo set in document - promo_array=@md.promo - elsif @flag[:sk] #promo set in associated skin - promo_array=@vz.widget_promo - elsif @flag[:rc] #promo set in rc file - promo_array=if @rc['promo'].class == String - @rc['promo'].split(/[,;]\s*/) - else @rc['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) - #else no_adverts - end - end - def cell(prod,id) - @prod,@id=prod,id - def title - @prod['title'] ? %{<b>#{@prod['title']}</b>} : '' - end - def subtitle - @prod['subtitle'] ? %{ - #{@prod['subtitle']}} : '' - end - def author - @prod['author'] ? %{<p class="pane">#{@prod['author']}</p>} : '' - end - def editor - @prod['editor'] ? %{<p class="pane">#{@prod['editor']}</p>} : '' - end - def year - @prod['year'] ? %{<p class="pane">#{@prod['year']}</p>} : '' - end - def date - @prod['date'] ? %{<p class="pane">On: #{@prod['date']}</p>} : '' - end - def location - @prod['at'] ? %{<p class="pane">At: #{@prod['at']}</p>} : '' - end - def pages - @prod['pages'] ? %{<p class="pane">Pages: #{@prod['pages']} pages</p>} : '' - end - def form - @prod['form'] ? %{<p class="pane">#{@prod['form']}</p>} : '' - end - def nick - @prod['nick'] ? %{(#{@prod['nick']})<br />} : '' - end - def update - @prod['update'] ? %{<p class="pane">Updated: #{@prod['update']}</p>} : '' - end - def issn - @prod['issn'] ? %{<p class="pane">issn: #{@prod['issn']}</p>} : '' - end - def blurb - @prod['blurb'] ? %{<p class="pane_blurb">#{@prod['blurb']}</p>} : '' - end - def search_form_sisu(table=true) - db=if @prod['db']=~/\S+/ - @prod['db']=~/^SiSU_\S+/ ? @prod['db'] : "SiSU_#{@prod['db']}" - elsif defined? @rc['search']['sisu']['db'] \ - and @rc['search']['sisu']['db'] =~/\S+/ - @rc['search']['sisu']['db']=~/^SiSU_\S+/ ? @prod['search']['sisu']['db'] : "SiSU_#{@prod['db']}" - else nil - end - action=if @prod['action']=~/^http:\/\// - @prod['action'] - elsif defined? @rc['search']['sisu']['action'] \ - and @rc['search']['sisu']['action'] =~/^http:\/\// - @rc['search']['sisu']['action'] - else nil - end - form=if action \ - and db - '<br />' + @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'] =~/^http:\/\// - @rc['search']['hyperestraier']['action'] - else nil - end - form=if action - '<br />' + @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'] =~/http:/ ? x['url'] : "../#{x['url']}" - #url_=x['url'] =~/http:/ ? x['url'] : "#{@env.url.root}/#{x['url']}" - links_a << %{<p class="pane_link"><a href="#{url_}">#{x['title']}#{subtitle}</a></p>\n} - end - end - links_a.join - else '' - end - end - def image - @prod['image'] ? %{<img border="0" src="../_sisu/image/#{@prod['image']}" /><br />} : '' - end - def url_link - @url_=if @prod['url'] =~/http:/ - "#{@prod['url']}" - else "../#{@prod['url']}" # "#{@env.url.root}/#{@prod['url']}" - end - def show - @prod['url'] ? %{<p class="pane_link"><a href="#@url_">#@url_</a></p>} : '' - end - def url - @prod['url'] ? %{<a href="#@url_">} : '' - end - def url_relative - @prod['url'] ? %{<a href="../#{@prod['url']}/toc.html">} : '' - end - self - end - def flyer - if @prod['flyer'] - %{<p class="pane"><a href="../man/pdf/#@id.pdf"><img border="0" height="18" width="15" src="../_sisu/image/b_pdf.png"> PDF flyer</a></p>} - 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 - %{<p class="pane">Price:#{gbp}#{euro}#{usd}</p>} - 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 -<p class="pane"> -#{url_link.url} -#{image} -#{title} -#{subtitle} -</a>#{nick}</p> -WOK - else - <<WOK -<p class="pane"> -#{image} -#{title} -#{subtitle} -</p> -WOK - end - end - self - end - def output_form_sponsor(type,id) - cell=cell(@ad[:promo][type][id],prod_id) - prod_type=id=~/id_(?:[0-9x]){10,13}/i ? 'isbn' : 'id' - id_detail=%{<p class="pane">#{prod_type}: #{prod_id}</p>} - <<WOK -<br /> -#{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) - <<WOK -<br /> -#{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=%{<p class="pane">#{prod_type}: #{prod_id}</p>} - <<WOK -<br /> -#{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) - <<WOK -<br /> -#{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 - <<WOK -<br /> -#{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_single(type,id) #extracts single item of type with id - # #type === book,journal,conference,sponsor - # id=id.to_s.gsub(/^(\d)/,'id_\1') - # if defined? @ad[:promo][type][id] and @ad[:promo][type][id] - # output_form_select(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 ? - gbp=usd=euro=nil - 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].class==Array \ - and @ad[:promo][category][type][id].length > 0 - adverts << @ad[:promo][category][type][id].join("\n") - end - end - end - end - end - else - tell=SiSU_Screen::Ansi.new(@md.cmd,"category not found: #{category}") - tell.warn unless @md.cmd =~/q/ - 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) - <<WOK -#{div.minor} -#{ads} -#{div.close} -WOK - end - def no_adverts - <<WOK -#{div.minor} -#{div.close} -WOK - end - end -end -__END__ |