# -*-s2-*- layerinfo type = "layout"; layerinfo name = "Magazine"; layerinfo redist_uniq = "magazine/layout"; layerinfo previews = "magazine/magazine.jpg"; propgroup colors { property Color main_bgcolor { des = "Main Background color"; s1color = "page_back"; } property Color main_fgcolor { des = "Main text color"; s1color = "page_text"; } property Color sidebar_color { des = "Sidebar color"; s1color = "stronger_back"; } property Color headerbar_bgcolor { des = "Headerbar background color"; s1color = "strong_back"; } property Color headerbar_fgcolor { des = "Text color on headerbar"; s1color = "strong_text"; } property Color headerbar_bevel_color { des = "Accent line color for headerbar"; s1color = "stronger_back"; } property Color highlight_bgcolor { des = "Highlighting color for accented text"; s1color = "weak_back"; } property Color highlight_fgcolor { des = "Highlighted text color"; s1color = "weak_text"; } property Color border_color { des = "Color of borders"; s1color = "weak_text"; } property Color title_color { des = "Text color of top title"; s1color = "page_text_title"; } property Color meta_color { des = "Text color of meta descriptions"; s1color = "page_text_em"; } property Color link_color { des = "Text color of links"; s1color = "page_link"; } property Color vlink_color { des = "Text color of visited links"; s1color = "page_vlink"; } property Color alink_color { des = "Text color of active links"; s1color = "page_alink"; } property Color comment_bar_one_bgcolor { des = "Alternating background color for comment bars (one)"; } property Color comment_bar_two_fgcolor { des = "Text color on alternating comment bars (one)"; } property Color comment_bar_two_bgcolor { des = "Alternating background color for comment bars (two)"; } property Color comment_bar_one_fgcolor { des = "Text color on alternating comment bars (two)"; } property Color comment_bar_screened_bgcolor { des = "Background bar color for screened comments"; } property Color comment_bar_screened_fgcolor { des = "Text color on background bar for screened comments"; } } set main_bgcolor = "#ffffff"; set main_fgcolor = "#000000"; set sidebar_color = "#6666cc"; set headerbar_bgcolor = "#c0c0ff"; set headerbar_fgcolor = "#000000"; set headerbar_bevel_color = "#6666cc"; set highlight_bgcolor = "#eeeeff"; set highlight_fgcolor = "#000000"; set border_color = "#000000"; set title_color = "#8b1a1"; set meta_color = "#c00000"; set link_color = "#000050"; set vlink_color = "#500050"; set alink_color = "#ff00c0"; set comment_bar_one_bgcolor = "#c0c0ff"; set comment_bar_one_fgcolor = "#000000"; set comment_bar_two_bgcolor = "#eeeeff"; set comment_bar_two_fgcolor = "#000000"; set comment_bar_screened_bgcolor = "#dddddd"; set comment_bar_screened_fgcolor = "#000000"; propgroup presentation { property bool show_entry_userpic { des = "Show the userpic on the journal entries? [Excludes friends page]"; } property use page_recent_items; property use page_friends_items; property use use_shared_pic; property use view_entry_disabled; property bool show_entrynav_icons { des = "Toggle to show the next, memory, edit, etc icons on the entry view page"; } property string page_background_image { des = "URL to an image to be used for the page background"; } property use external_stylesheet; } set show_entry_userpic = false; set view_entry_disabled = false; set show_entrynav_icons = true; set page_background_image = ""; propgroup text { property use text_post_comment; property use text_read_comments; property use text_post_comment_friends; property use text_read_comments_friends; } set tags_aware = true; function Page::lay_skip_navigation() {} function Page::lay_bottom_navigation() {} function print_stylesheet () { print clean_url($*page_background_image) != "" ? "body { background-image: url($*page_background_image); }" : ""; """HTML { border-left: 1cm solid $*sidebar_color; padding: 1cm; } BODY { line-height: 1.3; margin: 0; background-color: $*main_bgcolor; color: $*main_fgcolor; } P { margin-top: 0; text-align: justify; } H1 { font: x-large Verdana, sans-serif; text-align: center; letter-spacing: -0.09em; color: $*title_color; } H2 { background-color: $*headerbar_bgcolor; color: $*headerbar_fgcolor; border-bottom: thin solid $*headerbar_bevel_color; font: normal 1.3em Georgia, serif; } H3 { color: $*highlight_fgcolor; font: medium sans-serif; } H3 SPAN { background-color: $*highlight_bgcolor; border-right: thin solid $*border_color; border-bottom: thin solid $*border_color; padding-right: 0.5ex; } H3 EM { color: $*meta_color; font-style: normal; } .H3Holder { clear: both; padding-left: 2ex; border-left: thin solid $*border_color; border-bottom: thin solid $*border_color; margin-bottom: 1em; } A:link { color: $*link_color; } A:visited { color: $*vlink_color; } A:active { color: $*alink_color; } .Navigation { text-align: center; font-family: sans-serif; } .Comment { font-size: 0.7em; margin-top: -1em; text-align: right; } .Comment, .Current { margin-bottom: 1em; clear: right; } .Picture { border-left: thin solid $*border_color; border-top: thin solid $*border_color; float: right; margin: 0 0 0.5em 0.5em; padding: 0.2em; } .Picture DIV { text-align: center; } .Active { background-color: $*highlight_bgcolor; } ACRONYM { border-bottom: thin dashed $*border_color; cursor: help; } .Bottom { border-top: thin solid $*border_color; text-align: center; } .Empty { background-color: $*highlight_bgcolor; } .Month { margin-top: 1em; } .MonthHeader { color: $*headerbar_fgcolor; background-color: $*headerbar_bgcolor ! important; line-height: 1.5; } .Month TD { color: $*highlight_fgcolor; width: 14%; border: thin outset; } .Month TH { background-color: $*highlight_bgcolor; font-family: Verdana, sans-serif; border: thin outset; }"""; } function Page::print () { var string title = $this->title(); """\n\n\n"""; if ($*external_stylesheet) { println """"""; } else { println """"; } $this->print_head(); """$title

$title

"""; var string website_name = $.journal.website_name ? $.journal.website_name : $*text_website_default_name; var string website = ($.journal.website_url != "" ? "($website_name)" : ""); var string links; foreach var string v ($.views_order) { $links = "$links(" + ($.view == $v ? ""+lang_viewname($v)+"" : ""+lang_viewname($v)+"") + ")\n"; } """"; $this->print_body(); $this->lay_bottom_navigation(); ""; } function print_entry (Page p, Entry e, Color bgcolor, Color fgcolor, bool hide_text) { var string time = $e.time->time_format(); var string userpic = (defined $e.userpic ? "" : ""); if (($p.view != "entry" and $e.new_day) or $p.view == "entry") { "

" + $e.time->date_format("med") + "

"; } "
"; # Altposter / friends / lastn userpic if ($p.view == "friends" or $p.view == "entry" or $*show_entry_userpic == true or $e.journal.username != $e.poster.username) { "
"; if ($p.view == "friends") { "
$e.journal.username
"; } if ($*show_entry_userpic == true or $p.view == "friends" or $p.view == "entry") { if (defined $e.userpic) { "
"; } } if ($e.journal.username != $e.poster.username) { "
$e.poster.username
"; } "
"; } # Time / Subject / Security var string subject = ($e.subject != "" ? " - $e.subject" : ""); "

$time$subject $e.security_icon

"; if ($p.view == "entry" and $*show_entrynav_icons) { print "
"; $e->print_linkbar(); print "
"; } if (not $hide_text) { # Entry "

$e.text

"; # Tags if ($e.tags) { var int tcount = 0; "
Tags: "; foreach var Tag t ($e.tags) { """"""; $tcount++; if ($tcount != size $e.tags) { ", "; } } "
"; } # Metadata if (size $e.metadata) { foreach var string k ($e.metadata) { "
"; var string key = $k; var string val = $e.metadata{$k}; if ($k == "mood") { $key = $*text_meta_mood; } elseif ( $k == "music" ) { $key = $*text_meta_music; } if ($k == "mood" and defined $e.mood_icon) { var Image i = $e.mood_icon; $val = "[mood icon] $val"; } "
$key: $val
"; "
"; } } } # Comments $e.comments->print(); "
"; } function CommentInfo::print() { if (not $.enabled) { return; } "
("; if ($.count > 0 or $.screened) { $this->print_readlink(); " | "; } $this->print_postlink(); ")
"; } function Page::print_entry (Entry e) { print_entry($this, $e, null Color, null Color, false); } function RecentPage::lay_skip_navigation() { var int total = size $.entries; var string nav = ""; if ($.nav.backward_url != "") { $nav = """Previous $total Entries"""; } if ($.nav.forward_url != "" and $.nav.backward_url != "") { $nav = "$nav | "; } if ($.nav.forward_url != "") { $nav = """$navNext $total Entries"""; } if ($nav != "") { print "Navigate: ($nav)"; } } function RecentPage::lay_bottom_navigation() { "

"; $this->lay_skip_navigation(); "

"; } function RecentPage::print_body { foreach var Entry e ($.entries) { $this->print_entry($e); } } function FriendsPage::lay_skip_navigation() { var int total = size $.entries; var string nav = ""; if ($.nav.backward_url != "") { $nav = """Previous $total Friends"""; } if ($.nav.forward_url != "" and $.nav.backward_url != "") { $nav = "$nav | "; } if ($.nav.forward_url != "") { $nav = """$navNext $total Friends"""; } if ($nav != "") { print "Navigate: ($nav)"; } } function FriendsPage::print_entry (Entry e) { var Friend f = $.friends{$e.journal.username}; print_entry($this, $e, $f.bgcolor, $f.fgcolor, false); } function FriendsPage::print_body { foreach var Entry e ($.entries) { $this->print_entry($e); } } function YearPage::lay_skip_navigation () { $this->print_year_links(); } function YearPage::lay_bottom_navigation() { } function YearPage::print_body() { "

$.year

"; foreach var YearMonth m ($.months) { $this->print_month($m); } } function YearPage::print_year_links () { "Navigate: "; foreach var YearYear y ($.years) { if ($y.displayed) { " ($y.year) "; } else { " ($y.year) "; } } } function YearPage::print_month(YearMonth m) { if (not $m.has_entries) { return; } ""; "\n"; ""; foreach var int d (weekdays()) { "\n"; } ""; foreach var YearWeek w ($m.weeks) { $w->print(); } "
"; ""; print $m->month_format(); "
"+$*lang_dayname_short[$d]+ "
\n"; } function YearWeek::print() { ""; if ($.pre_empty) { ""; } foreach var YearDay d ($.days) { "$d.day"; if ($d.num_entries) { "
$d.num_entries
"; } else { "

"; } ""; } if ($.post_empty) { ""; } ""; } function DayPage::lay_skip_navigation() { "Navigate: (Previous Day | Next Day)"; } function DayPage::lay_bottom_navigation() { """
Previous day (Calendar) Next day
"""; } function DayPage::print_body () { if (not $.has_entries) { "

"; print $.date->date_format("med"); "

"; print "

(No journal entries for this day.)

"; } else { foreach var Entry e ($.entries) { $this->print_entry($e); } } } function EntryPage::print_body () { set_handler("unscreen_comment_#", [ [ "style_bgcolor", "cmtbar#", "$*comment_bar_one_bgcolor", ], [ "style_color", "cmtbar#", "$*comment_bar_one_fgcolor", ], ]); set_handler("screen_comment_#", [ [ "style_bgcolor", "cmtbar#", "$*comment_bar_screened_bgcolor", ], [ "style_color", "cmtbar#", "$*comment_bar_screened_fgcolor", ], ]); print_entry($this, $.entry, null Color, null Color, $.viewing_thread); if ($.entry.comments.enabled and $.comment_pages.total_subitems > 0) { $this->print_multiform_start(); print "

Comments:

"; if ($.comment_pages.total_subitems > 0) { $.comment_pages->print(); $this->print_comments($.comments); } "
"; if ($this.multiform_on) { "

Mass Action

"; $this->print_multiform_actionline(); $this->print_multiform_end(); "
"; } } } function EntryPage::print_comment (Comment c) { var Color background; var Color color; if ($c.screened) { $background = $*comment_bar_screened_bgcolor; $color = $*comment_bar_screened_fgcolor; } elseif ($c.depth % 2) { $background = $*comment_bar_one_bgcolor; $color = $*comment_bar_one_fgcolor; } else { $background = $*comment_bar_two_bgcolor; $color = $*comment_bar_two_fgcolor; } var string poster = defined $c.poster ? $c.poster->as_string() : "(Anonymous)"; var string sub_icon; if (defined $c.subject_icon) { $sub_icon = $c.subject_icon->as_string(); } "
"; ""; if (defined $c.userpic and $*comment_userpic_style != "off") { var int w = $c.userpic.width; var int h = $c.userpic.height; # WARNING: this will later be done by the system (it'll be a # constructional property), so don't copy this hack into your # layout layers or you'll be messed up later. if ($*comment_userpic_style == "small") { $w = $w / 2; $h = $h / 2; } print ""; } "
[User Picture]"; ### From, date, etc ""; ### Gadgets ""; ### Subject / icon print ""; ### Permalink print ""; print "
"; print ""; print "\n"; print ""; if ($c.metadata{"poster_ip"}) { print ""; } "
From:$poster
Date:"; print $c.time->date_format("long") + " - " + $c.time->time_format() + "
IP Address:(" + $c.metadata{"poster_ip"} + ")
"; if ($this.multiform_on) { " "; $c->print_multiform_check(); } $c->print_linkbar(); "
"; print (defined $c.subject_icon or $c.subject != "") ? "

$c.subject_icon $c.subject

" : ""; print "
(Link)
"; print "
$c.text
"; print "
"; if ($c.frozen) { print """(Replies frozen) """; } else { print """(Reply to this) """; } if ($c.parent_url != "") { "(Parent) "; } if ($c.thread_url != "") { "(Thread) "; } "
"; } function ReplyPage::print_body () { var string time = $.replyto.time->time_format(); if (not $.entry.comments.enabled) { print "

$*text_reply_nocomments_header

$*text_reply_nocomments

"; return; } "

" + $.replyto.time->date_format("med") + "

"; "
"; "
"; print defined $.replyto.poster ? $.replyto.poster->as_string() : "(Anonymous)"; if (defined $.replyto.userpic) { "
"; } "
"; # Time / Subject / Security var string subject = ($.replyto.subject ? " - $.replyto.subject" : ""); "

$time$subject

"; "

$.replyto.text

"; "
Read Comments
"; "
"; print "

Reply:

"; $.form->print(); } function print_theme_preview () { """
   

Dec. 22nd, 2002

08:46 pm - subject

Words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words words

"""; }