%
require 'cgi'
require 'base/convinnerlink.rb'
require 'webview/sql_func.rb'
require 'webview/pref_httpquery.rb'
require 'webview/indexview.rb'
require 'user/login.rb'
r = Apache.request
cookie = nil
user = nil
message = nil
l_login = nil
begin
cookie, user = auth_cookie2(r)
rescue
message = $!.message
end
pref = (user and user.preference_is_valid?) ? user.preference : Preference.new
unless r.paramtable.to_a.empty?
pref = CGIPreference.new(pref)
pref.get_cgiinfo2(r)
end
level = 0
sv = nil
srz = nil
title = ''
if r.paramtable['sv'] != nil
sv = r.param('sv')
level = 1
elsif r.paramtable['srz'] != nil
srz = r.param('srz')
level = 2
end
combo = r.param('combo')
combo_str = ''
combo_str = '?combo=no_combo' if combo == 'no_combo'
linkarray = nil
begin
call_wwwdb do |m|
result = nil
if pref.subview?
fn = m.query("SELECT fullname FROM genre WHERE " +
"id = '#{Mysql.quote(pref.subview)}'").fetch_row[0]
linkarray = [ LinkArray::SamedirMain, [ fn, "./#{pref.subview}/" ],
LinkArray::Toc ]
title = ' > ' + fn
elsif srz
g, id = srz.split('/')
gfn = m.query("SELECT fullname FROM genre WHERE " +
"id = '#{Mysql.quote(g)}'").fetch_row[0]
sfn = m.query("SELECT title FROM series WHERE genre = '#{Mysql.quote(g)}' " +
"AND id = '#{Mysql.quote(id)}'").fetch_row[0]
title = ' > ' + gfn + ' > ' + sfn
linkarray = [ LinkArray::SamedirMain, [ gfn, "./#{g}/" ], [ sfn, "./#{srz}.html" ],
LinkArray::Toc ]
else
linkarray = LinkArray::TocDefault
end
begin
# $stderr << "SELECT last_modified FROM news " +
# pref.last_modified_query(l_login)
result = m.query("SELECT last_modified FROM news " +
pref.last_modified_query(l_login))
rescue Preference::GenreQueryIsObsolate
pref.make_genrequery
pref.genrehash = PreferenceFunc.make_genrehash
if not pref.instance_of?(CGIPreference) and user
begin
call_userdb_admin do |m|
user.update_preference(m)
end
rescue
$stderr << $!.dump if Debug_Flag
exit!
end
end
retry
end
# lm = Time.now.utc # テスト用
if result.num_rows == 0
lm = -1
else
lm = SqlMiscFunc.sqltime_to_Time(result.fetch_row[0])
end
cout_header_notmodify(r, lm)
%>
<% if lm.kind_of?(Time) %>
<%
if sv %>
| シリアル | 種類 | タイトル | ジャンル<%
pref.item_num = 100
m.query("SELECT serial, genre, type, title FROM news " +
"#{pref.where_query} #{pref.order_query} #{pref.limit_query}").each do |s, g, ty, ti|
n = News.new
n.serial = s
n.genre = g
n.type = ty
n.title = ti
# $stderr << n.inspect << "\n"
%> |
|---|
| <%= n.serial %>
| <% cout_type(n.type) %>
| <%= n.title %>
| <% cout_genre(m, n.genre)
end #query-each
end #call-wwwdb
%> |
<%
diff = pref.count_next_num
if diff > 0
if sv
cout_nextlink("./#{sv}/toc.html", pref.next_http_query, diff, combo)
elsif srz
cout_nextlink("./#{srz}/toc.html", pref.next_http_query, diff, combo)
else
cout_nextlink("./toc.rhtml", pref.next_http_query, diff, combo)
end
end
%>
<% cout_footer(linkarray) %>
<%= google_analystics_tag %>
<%
rescue
$stderr << $! if Debug_Flag
r.status_line = "404 Not Found"
r.send_http_header
exit
else
if level > 0
rewrite_buffer($stdout) { |str|
print TextFormatter::convert_innerlink(str, level)
}
end
end %>