1626 lines
38 KiB
Plaintext
1626 lines
38 KiB
Plaintext
# -*-s2-*-
|
|
layerinfo type = "layout";
|
|
layerinfo name = "Opal (Libra OSWD)";
|
|
layerinfo lang = "en";
|
|
|
|
layerinfo author_name = "Ported by Kevin Phillips";
|
|
layerinfo author_email = "xevinx@livejournal.com";
|
|
layerinfo des = "Based on the Libra and Pasilda design available from Open Source Web Designs. Originally written by whompy.";
|
|
layerinfo redist_uniq = "opal/layout";
|
|
layerinfo previews = "opal/opal.jpg";
|
|
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# Properties
|
|
#
|
|
|
|
|
|
propgroup prez = "Presentation";
|
|
propgroup prez {
|
|
|
|
property use font_base;
|
|
property use font_fallback;
|
|
property string static_font_size { noui = 1; }
|
|
property string static_font_measurement { noui = 1; }
|
|
property use page_recent_items;
|
|
property use page_friends_items;
|
|
property use use_shared_pic;
|
|
property use view_entry_disabled;
|
|
|
|
property bool show_entry_userpic {
|
|
des = "Always display userpic?";
|
|
}
|
|
|
|
property int summary_items {
|
|
des = "Summary Items";
|
|
note="Maximum number of items in the Page Summary list. Set to 0 to turn off the Page Summary. Set to 100 to show all available items.";
|
|
}
|
|
|
|
property bool use_count {
|
|
noui=1;
|
|
}
|
|
|
|
set static_font_size = "12";
|
|
set static_font_measurement = "px";
|
|
set summary_items = 100;
|
|
set show_entry_userpic = false;
|
|
set font_fallback = "sans-serif";
|
|
}
|
|
|
|
|
|
propgroup colors = "Colors";
|
|
|
|
propgroup colors {
|
|
property Color color_bg {
|
|
des = "Background Color";
|
|
}
|
|
|
|
property Color color_bg_font {
|
|
des = "Background Font Color";
|
|
note = "The color of any font appearing on the background color.";
|
|
}
|
|
|
|
property Color color_med {
|
|
des = "Page Holder Background";
|
|
note = "This is the background of the main body, but within the outer borders.";
|
|
}
|
|
|
|
property Color color_med_font {
|
|
des = "Page Holder Font Color";
|
|
note="The color of the font appearing on the Page Holder Background color.";
|
|
}
|
|
|
|
property Color color_fg {
|
|
des = "Content Background Color";
|
|
note = "This is the background to the main content where the entries and side elements are.";
|
|
}
|
|
|
|
property Color color_fg_font {
|
|
des = "Content Font Color";
|
|
note = "The color of the font that appears on in the main Content area.";
|
|
}
|
|
|
|
property Color color_link {
|
|
des = "Link Color";
|
|
}
|
|
|
|
property Color color_visited {
|
|
des = "Visited Link Color";
|
|
}
|
|
|
|
set color_bg = "#2d3851";
|
|
set color_bg_font = "#ffffff";
|
|
set color_med = "#7C8AA4";
|
|
set color_med_font = "#e9f2fc";
|
|
set color_fg = "#BFC4CB";
|
|
set color_fg_font = "#333333";
|
|
}
|
|
|
|
propgroup text = "Text";
|
|
propgroup text {
|
|
|
|
property string free_text_header {
|
|
des = "Free Text Header";
|
|
}
|
|
|
|
property string free_text_text {
|
|
des = "Free Text Text";
|
|
cols = 30;
|
|
rows = 10;
|
|
}
|
|
|
|
property string links_header {
|
|
des = "Links Header";
|
|
}
|
|
|
|
property string page_summary_title {
|
|
des = "Page Summary Header";
|
|
}
|
|
|
|
property use text_view_userinfo;
|
|
property use text_view_recent;
|
|
property use text_view_friends;
|
|
property use text_view_archive;
|
|
property string text_forward {
|
|
des = "Text to show in a link to skip forward through entries";
|
|
}
|
|
property string text_back {
|
|
des = "Text to show in a link to skip backward through entries";
|
|
}
|
|
property use text_read_comments;
|
|
property use text_read_comments_friends;
|
|
property use text_post_comment;
|
|
property use text_post_comment_friends;
|
|
property use text_comment_reply;
|
|
property use text_reply_back;
|
|
property use text_nosubject;
|
|
property use text_noentries_day;
|
|
property use text_meta_music;
|
|
property use text_meta_mood;
|
|
|
|
set page_summary_title = "Page Summary";
|
|
set links_header = "Links";
|
|
set free_text_header = "About this journal";
|
|
set free_text_text = "";
|
|
set text_back = "Back";
|
|
set text_forward = "Forward";
|
|
}
|
|
|
|
set tags_aware = true;
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# Prop Init
|
|
#
|
|
|
|
function prop_init () {
|
|
if($*color_bg.as_string == "") { $*color_bg = "#000000"; }
|
|
if($*color_fg.as_string == "") { $*color_fg = "#000000"; }
|
|
if($*color_fg_font.as_string == "") { $*color_fg_font = "#000000"; }
|
|
}
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# Stylesheet
|
|
#
|
|
|
|
function getAltColor (Color color, string dir, int num) : Color {
|
|
var int lt = $color->lightness();
|
|
if($dir == "light") {
|
|
if($lt > 200) {
|
|
$color = $color->darker($num);
|
|
} else {
|
|
$color = $color->lighter($num);
|
|
}
|
|
} elseif($dir == "dark") {
|
|
if($lt < 55) {
|
|
$color = $color->lighter($num);
|
|
} else {
|
|
$color = $color->darker($num);
|
|
}
|
|
}
|
|
return $color;
|
|
}
|
|
|
|
function print_stylesheet () {
|
|
|
|
|
|
var Color color_bg_lt = getAltColor($*color_bg, "light", 30);
|
|
var Color color_fg_dk = getAltColor($*color_fg, "dark", 20);
|
|
var Color color_fg_dk_font = getAltColor($*color_fg_font, "dark", 20);
|
|
var Color color_divider = getAltColor($color_fg_dk, "dark", 30);
|
|
var Color color_fg_dk_dk_font = getAltColor($color_fg_dk, "dark", 50);
|
|
var Color color_border = getAltColor($*color_bg, "light", 90);
|
|
var string base = ($*font_base != "") ? "$*font_base, " : "";
|
|
|
|
"""
|
|
body {
|
|
font-family: $base $*font_fallback;
|
|
background-color: $*color_bg;
|
|
margin: 10px;
|
|
}
|
|
|
|
.border4 { border: 1px solid $*color_bg; }
|
|
.border3 { border: 1px solid $*color_fg; }
|
|
.border2 { border: 2px solid $color_border; }
|
|
|
|
""";
|
|
if($*color_link.as_string != "") {
|
|
"""
|
|
A { color: $*color_link; }
|
|
""";
|
|
}
|
|
|
|
if($*color_visited.as_string != "") {
|
|
"""
|
|
A:Visited { color: $*color_visited; }
|
|
""";
|
|
}
|
|
"""
|
|
#bodycontent { background-color: $*color_med; border: 1px solid $*color_bg; padding: 3px; }
|
|
|
|
#headerinfo {
|
|
background-color: $*color_bg;
|
|
color: $*color_bg_font;
|
|
text-align: right;
|
|
font-size: 10px;
|
|
padding: 2px;
|
|
margin-top: 1px;
|
|
}
|
|
#header { color: $*color_med_font; }
|
|
#header h3 { font-weight: normal; }
|
|
#userpic { float: right; }
|
|
|
|
.userpic2 {
|
|
float: right;
|
|
text-align: right;
|
|
margin-top: 2px;
|
|
margin-right: 3px;
|
|
}
|
|
|
|
#nav {
|
|
white-space: nowrap;
|
|
margin-bottom: 10px;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
}
|
|
|
|
#nav A {
|
|
border: 1px solid $*color_bg;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
padding-top: 2px;
|
|
padding-bottom: 2px;
|
|
height: 20px;
|
|
text-decoration: none;
|
|
color: $*color_bg_font;
|
|
background-color: $color_bg_lt;
|
|
}
|
|
|
|
#nav A:Hover { background-color: $*color_bg; }
|
|
|
|
#content {
|
|
background-color: $*color_fg;
|
|
border: 1px solid $color_fg_dk;
|
|
padding: 4px;
|
|
}
|
|
|
|
.columncontent {
|
|
background-color: $color_bg_lt;
|
|
border: 1px solid $*color_bg;
|
|
padding: 3px;
|
|
width: 200px;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
color: $*color_bg_font;
|
|
}
|
|
|
|
.columnitem {
|
|
background-color: $color_fg_dk;
|
|
padding: 3px;
|
|
margin-top: 5px;
|
|
color: $*color_fg_font;
|
|
border-top: 1px solid $color_divider;
|
|
border-bottom: 1px solid $color_divider;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.entries { color: $*color_fg_font; }
|
|
|
|
.entrydivider {
|
|
border-top: 1px solid $color_divider;
|
|
border-bottom: 1px solid $*color_fg;
|
|
}
|
|
|
|
.minicomment {
|
|
background-color: $color_fg_dk;
|
|
padding: 4px;
|
|
color: $*color_fg_font;
|
|
border: 1px solid $*color_fg;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
}
|
|
|
|
.minicommentholder { border: 1px solid $color_divider; }
|
|
|
|
.entryinfo {
|
|
background-color: $color_fg_dk;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
padding: 4px;
|
|
color: $*color_fg_font;
|
|
}
|
|
|
|
.postedby {
|
|
background-color: $color_fg_dk;
|
|
padding: 6px;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
}
|
|
|
|
.entrylinks {
|
|
border-bottom: 1px solid $*color_fg;
|
|
background-color: $color_fg_dk;
|
|
padding-top: 4px;
|
|
padding-bottom: 4px;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
}
|
|
|
|
.entrylinks A {
|
|
text-decoration: none;
|
|
padding-top: 4px;
|
|
padding-bottom: 4px;
|
|
white-space: nowrap;
|
|
color: $*color_fg_font;
|
|
border-right: 1px solid $*color_fg;
|
|
}
|
|
|
|
.entrylinks A:Hover {
|
|
background-color: $*color_fg;
|
|
}
|
|
|
|
.messageholder {
|
|
border: 1px solid $*color_bg;;
|
|
margin-bottom: 5px;
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.systemmessage {
|
|
background-color: $color_bg_lt;
|
|
color: $*color_bg_font;
|
|
border: 1px solid $color_border;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
}
|
|
|
|
.systemtext {
|
|
font-weight: normal;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
}
|
|
|
|
.systemmessage A {
|
|
text-decoration: none;
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
color: $*color_bg_font;
|
|
padding-top: 4px;
|
|
padding-bottom: 4px;
|
|
}
|
|
|
|
.systemmessage A:Hover {
|
|
background-color: $*color_bg;
|
|
}
|
|
|
|
.systemmessage input, .systemmessage textarea, .systemmessage select {
|
|
background-color: $*color_fg;
|
|
color: $*color_fg_font;
|
|
}
|
|
|
|
.systemmessage TD {
|
|
padding: 4px;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
color: $*color_bg_font;
|
|
}
|
|
|
|
.entry { margin-bottom: 30px; }
|
|
.entrytext { margin: 10px; }
|
|
.subject { font-weight: bold; }
|
|
|
|
.meta {
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
padding: 4px;
|
|
}
|
|
|
|
.meta A {
|
|
text-decoration: none;
|
|
color: $*color_link;
|
|
}
|
|
|
|
.systemmessage A:Hover {
|
|
background-color: $*color_bg;
|
|
}
|
|
|
|
#sidecolumn TD { color: $*color_bg_font; }
|
|
|
|
#sidecolumn A {
|
|
text-decoration: none;
|
|
color: $*color_fg_font;
|
|
}
|
|
|
|
.sidetd {
|
|
width: 200px;
|
|
}
|
|
|
|
.backtop {
|
|
text-align: right;
|
|
}
|
|
|
|
.backtop A {
|
|
color: $*color_fg_font;
|
|
font-size: $*static_font_size$*static_font_measurement;
|
|
text-decoration: none;
|
|
padding-bottom: 1px;
|
|
}
|
|
|
|
#cal A {
|
|
text-decoration: none;
|
|
color: $*color_fg_font;
|
|
}
|
|
|
|
.calrow {
|
|
clear: both;
|
|
font-family: Arial, sans-serif;
|
|
}
|
|
|
|
.calempty {
|
|
width: 24px;
|
|
font-size: 11px;
|
|
margin: 1px;
|
|
float: left;
|
|
}
|
|
|
|
.calactitem {
|
|
float: left;
|
|
margin: 1px;
|
|
width: 23px;
|
|
font-size: 11px;
|
|
text-align: center;
|
|
background-color: $color_fg_dk;
|
|
border-right: 1px solid $color_bg_lt;
|
|
border-bottom: 1px solid $color_bg_lt;
|
|
}
|
|
|
|
.calinitem {
|
|
float: left;
|
|
margin: 1px;
|
|
width: 23px;
|
|
font-size: 11px;
|
|
text-align: center;
|
|
border-right: 1px solid $color_fg_dk;
|
|
border-bottom: 1px solid $color_fg_dk;
|
|
}
|
|
|
|
.friendcolor {
|
|
width: 10px;
|
|
height: 10px;
|
|
border: 2px solid $*color_fg;
|
|
}
|
|
|
|
.multiform {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.ip {
|
|
color: $color_fg_dk_dk_font;
|
|
}
|
|
|
|
.friendname {
|
|
padding: 4px;
|
|
text-decoration: none;
|
|
border-left: 1px solid $*color_fg;
|
|
border-right: 1px solid $*color_fg;
|
|
}
|
|
|
|
.bigday {
|
|
font-size: 2em;
|
|
color: $color_fg_dk;
|
|
float: left;
|
|
font-weight: bolder;
|
|
}
|
|
|
|
.notablemessage {
|
|
padding: 4px;
|
|
}
|
|
|
|
""";
|
|
}
|
|
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# Global functions
|
|
#
|
|
|
|
function generateDots (string un) : string {
|
|
var string dots;
|
|
if($un != "") {
|
|
foreach var string s ($un) {
|
|
if($s == "a" or $s == "c" or $s == "e" or $s == "f" or $s == "h" or $s == "k" or $s == "m" or $s == "n" or $s == "p" or $s == "r" or $s == "t" or $s == "v" or $s == "x" or $s == "z") {
|
|
$dots = $dots + ":";
|
|
} elseif($s == " ") {
|
|
$dots = $dots + " ";
|
|
} else {
|
|
$dots = $dots + ".";
|
|
}
|
|
}
|
|
}
|
|
return $dots;
|
|
}
|
|
|
|
|
|
|
|
|
|
function print_box (string header, string text) {
|
|
"""
|
|
|
|
<div class="border4">
|
|
<div class="border3">
|
|
<div class="border2">
|
|
<div class="columncontent">
|
|
""";
|
|
print safe """<strong>$header</strong>""";
|
|
print safe """$text""";
|
|
|
|
"""
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<br />
|
|
""";
|
|
|
|
}
|
|
|
|
function box_item (string text) : string {
|
|
return """<div class="columnitem">$text</div>\n""";
|
|
}
|
|
|
|
|
|
function num_comments_in_thread (Comment[] comments) : int {
|
|
var int total = 0;
|
|
foreach var Comment c ($comments) {
|
|
$total = $total + 1;
|
|
if (size $c.replies > 0) {
|
|
$total = $total + num_comments_in_thread($c.replies);
|
|
}
|
|
}
|
|
return $total;
|
|
}
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# Layout specific functions
|
|
#
|
|
|
|
function Page::lay_print_userpic() {
|
|
if(defined $.journal.default_pic) {
|
|
"""
|
|
<div id="userpic"><a href="$*SITEROOT/allpics.bml?user=$.journal.username"><img src="$.journal.default_pic.url" width="$.journal.default_pic.width" height="$.journal.default_pic.height" alt="$.journal.name" title="$.journal.name" border="0" /></a></div>
|
|
""";
|
|
}
|
|
}
|
|
|
|
function Page::lay_print_username () {
|
|
|
|
var string dots = generateDots($.global_title);
|
|
|
|
"""
|
|
<div id="headerinfo">
|
|
$.journal.username <br /> $dots
|
|
</div>
|
|
""";
|
|
}
|
|
|
|
function Page::lay_print_header () {
|
|
var string title = $this->title();
|
|
"""
|
|
<div id="header">
|
|
<h3>$title</h3>
|
|
<div id="nav">
|
|
""";
|
|
|
|
foreach var string v ($.views_order) {
|
|
println "<a href=\""+$.view_url{$v}+"\">"+lang_viewname($v)+"</a>";
|
|
}
|
|
|
|
var string website;
|
|
if($.journal.website_url != "") {
|
|
$website = """<a href="$.journal.website_url">$.journal.website_name</a>""";
|
|
}
|
|
|
|
"""
|
|
$website
|
|
</div>
|
|
</div>
|
|
""";
|
|
}
|
|
|
|
function Page::lay_print_freetext () {
|
|
if($*free_text_text != "") {
|
|
var string text = box_item($*free_text_text);
|
|
print_box($*free_text_header, $text);
|
|
}
|
|
}
|
|
|
|
function Page::print_linklist() {
|
|
if (size $.linklist <= 0) {
|
|
return;
|
|
}
|
|
|
|
var string links;
|
|
foreach var UserLink l ($.linklist) {
|
|
if ($l.title) {
|
|
if ($l.is_heading) {
|
|
$links = $links + """<div style="margin-top: 4px;"><strong>$l.title</strong></div>""";
|
|
} else {
|
|
$links = $links + box_item("""<a href="$l.url">$l.title</a>""");
|
|
}
|
|
}
|
|
}
|
|
|
|
print_box($*links_header, $links);
|
|
}
|
|
|
|
|
|
function Page::lay_print_calendar () {
|
|
var YearMonth m = $this->get_latest_month();
|
|
var string mon = $m->month_format();
|
|
var string text;
|
|
$text = """
|
|
<table cellspacing="2" cellpadding="2" border="0" width="100%">""";
|
|
foreach var YearWeek w ($m.weeks) {
|
|
$text = $text + """
|
|
<tr>""";
|
|
if($w.pre_empty > 0) {
|
|
foreach var int empty (1..$w.pre_empty) {
|
|
$text = $text + """
|
|
<td class="calempty"> </td>""";
|
|
}
|
|
}
|
|
foreach var YearDay d ($w.days) {
|
|
if($d.num_entries > 0) {
|
|
$text = $text + """
|
|
<td class="calactitem"><a href="$d.url">$d.day</a></td>""";
|
|
} else {
|
|
$text = $text + """
|
|
<td class="calinitem">$d.day</td>""";
|
|
}
|
|
}
|
|
$text = $text + "</tr>\n";
|
|
}
|
|
$text = $text + "</table>";
|
|
print_box($mon, $text);
|
|
}
|
|
|
|
|
|
function Page::lay_entry_nav (Entry e) : string {
|
|
|
|
var string line;
|
|
var string date;
|
|
if($e.new_day) {
|
|
$date = $e.time->date_format("short");
|
|
}
|
|
var string time = $e.time->time_format();
|
|
var string subject = ($e.subject != "") ? " :: $e.subject" : """ :: <i class="nosubject">$*text_nosubject</i>""";
|
|
var string j = ($.view == "friends" and $e.journal.username != $e.poster.username) ? " : $e.journal " : "";
|
|
var string item = ($.view == "friends" or $e.journal.username != $e.poster.username) ? $e.poster->as_string() + """$j <a href="#item""" + $e.itemid + """\">""" : """<a href="#item""" + $e.itemid + """\"><strong>$date $time</strong>""";
|
|
$line = """<div class="columnitem">$item $subject</a></div>""";
|
|
|
|
return $line;
|
|
}
|
|
|
|
function Page::lay_print_summary () {
|
|
#blank because there's shouldn't be a box if there's nothing specific about the page.
|
|
}
|
|
|
|
|
|
function RecentPage::lay_print_summary () {
|
|
var int count = $*summary_items;
|
|
if($count == 0) { return; }
|
|
|
|
var string text;
|
|
foreach var Entry e ($.entries) {
|
|
if($count > 0) {
|
|
$text = $text + $this->lay_entry_nav($e);
|
|
}
|
|
$count = $count - 1;
|
|
}
|
|
if($text != "") {
|
|
if($count < 0) {
|
|
$count = $count * -1;
|
|
$text = $text + """<div style="margin-top: 4px;"><strong>+$count more</strong></div>""";
|
|
}
|
|
print_box($*page_summary_title, $text);
|
|
}
|
|
}
|
|
|
|
function EntryPage::lay_print_summary () {
|
|
var int count = $*summary_items;
|
|
if($count == 0) { return; }
|
|
|
|
var string text;
|
|
$text = $this->lay_entry_nav($.entry);
|
|
$count = $count - 1;
|
|
|
|
foreach var Comment c ($.comments) {
|
|
if($count > 0) {
|
|
var string subject = ($c.subject != "") ? $c.subject : """<i class="nosubject">$*text_nosubject</i> """;
|
|
$text = $text + """<div class="columnitem">$c.poster :: <a href="#$c.anchor">$subject</a>""";
|
|
var int num = num_comments_in_thread($c.replies);
|
|
if($num > 0) {
|
|
$text = $text + " [+" + string($num) + "] ";
|
|
}
|
|
$text = $text + """</div>""";
|
|
}
|
|
$count = $count - 1;
|
|
}
|
|
|
|
if($text != "") {
|
|
if($count < 0) {
|
|
$count = $count * -1;
|
|
$text = $text + """<div style="margin-top: 4px;"><strong>+$count more</strong></div>""";
|
|
}
|
|
if($count != ($*summary_items - 1)) {
|
|
print_box($*page_summary_title, $text);
|
|
}
|
|
}
|
|
}
|
|
|
|
function YearPage::lay_print_summary () {
|
|
var int count = $*summary_items;
|
|
if($count == 0) { return; }
|
|
|
|
var string text;
|
|
var int num_entries;
|
|
foreach var YearMonth m ($.months) {
|
|
if($count > 0) {
|
|
var string mon = $m->month_format();
|
|
if($m.has_entries) {
|
|
$num_entries = 0;
|
|
foreach var YearWeek w ($m.weeks) {
|
|
foreach var YearDay d ($w.days) {
|
|
$num_entries = $num_entries + $d.num_entries;
|
|
}
|
|
}
|
|
$text = $text + """<div class="columnitem"><a href="#anchor$m.month">$mon [$num_entries entries]</a></div>""";
|
|
}
|
|
}
|
|
$count = $count - 1;
|
|
}
|
|
if($text != "") {
|
|
if($count < 0) {
|
|
$count = $count * -1;
|
|
$text = $text + """<div style="margin-top: 4px;"><strong>+$count more</strong></div>""";
|
|
}
|
|
print_box($*page_summary_title, $text);
|
|
}
|
|
|
|
}
|
|
|
|
function MonthPage::lay_print_summary () {
|
|
var int count = $*summary_items;
|
|
if($count == 0) { return; }
|
|
|
|
var string text;
|
|
foreach var MonthDay d ($.days) {
|
|
if($count > 0) {
|
|
var string day = lang_ordinal($d.day);
|
|
if ($d.has_entries) {
|
|
$text = $text + """<div class="columnitem"><a href="#anchor$d.day">$day [$d.num_entries entries]</a></div>""";
|
|
}
|
|
}
|
|
}
|
|
|
|
if($text != "") {
|
|
if($count < 0) {
|
|
$count = $count * -1;
|
|
$text = $text + """<div style="margin-top: 4px;"><strong>+$count more</strong></div>""";
|
|
}
|
|
print_box($*page_summary_title, $text);
|
|
}
|
|
}
|
|
|
|
function DayPage::lay_print_summary () {
|
|
var int count = $*summary_items;
|
|
if($count == 0) { return; }
|
|
|
|
var string text;
|
|
foreach var Entry e ($.entries) {
|
|
$text = $text + $this->lay_entry_nav($e);
|
|
}
|
|
|
|
if($text != "") {
|
|
if($count < 0) {
|
|
$count = $count * -1;
|
|
$text = $text + """<div style="margin-top: 4px;"><strong>+$count more</strong></div>""";
|
|
}
|
|
print_box($*page_summary_title, $text);
|
|
}
|
|
}
|
|
|
|
function Page::lay_print_subnav () {
|
|
#
|
|
}
|
|
|
|
function RecentPage::lay_print_subnav () {
|
|
var string back;
|
|
if($.nav.backward_url != "") {
|
|
$back = """<a href="$.nav.backward_url">$*text_back</a>""";
|
|
} else {
|
|
$back = " ";
|
|
}
|
|
var string forward;
|
|
if($.nav.forward_url != "") {
|
|
$forward = """<a href="$.nav.forward_url">$*text_forward</a>""";
|
|
} else {
|
|
$forward = " ";
|
|
}
|
|
|
|
var int start = $.nav.skip;
|
|
var int end = $.nav.skip + size $.entries;
|
|
var string text = "Viewing $start - $end";
|
|
"""
|
|
<div class="messageholder"><div class="systemmessage">
|
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
|
<tr>
|
|
<td width="15%">$back</td>
|
|
<td width="70%" align="center">$text</td>
|
|
<td width="15%" align="right">$forward</td>
|
|
</tr>
|
|
</table>
|
|
</div></div>
|
|
""";
|
|
}
|
|
|
|
function DayPage::lay_print_subnav () {
|
|
var string back;
|
|
if($.prev_url != "") {
|
|
$back = """<a href="$.prev_url">$*text_back</a>""";
|
|
} else {
|
|
$back = " ";
|
|
}
|
|
var string forward;
|
|
if($.next_url != "") {
|
|
$forward = """<a href="$.next_url">$*text_forward</a>""";
|
|
} else {
|
|
$forward = " ";
|
|
}
|
|
|
|
var string text = $.date->date_format("long");
|
|
|
|
"""
|
|
<div class="messageholder"><div class="systemmessage">
|
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
|
<tr>
|
|
<td width="15%">$back</td>
|
|
<td width="70%" align="center">$text</td>
|
|
<td width="15%" align="right">$forward</td>
|
|
</tr>
|
|
</table>
|
|
</div></div>
|
|
""";
|
|
|
|
}
|
|
|
|
|
|
function Page::lay_print_sidebar () {
|
|
$this->lay_print_summary();
|
|
$this->print_linklist();
|
|
$this->lay_print_freetext();
|
|
$this->lay_print_calendar();
|
|
}
|
|
|
|
|
|
function Page::lay_make_username(Entry e) {
|
|
"""
|
|
<div class="entryinfo">
|
|
$e.poster
|
|
</div>
|
|
<div class="entrydivider"></div>
|
|
""";
|
|
}
|
|
|
|
function FriendsPage::lay_make_username (Entry e) {
|
|
var Friend f = $.friends{$e.journal.username};
|
|
var string url = $e.poster->base_url();
|
|
"""
|
|
<div class="entryinfo">
|
|
<a href="$url/" class="friendname" style="color: $f.fgcolor; background-color: $f.bgcolor;">$e.poster.username</a>
|
|
""";
|
|
if($e.poster.username != $e.journal.username) {
|
|
""" $e.journal""";
|
|
}
|
|
"""
|
|
</div>
|
|
<div class="entrydivider"></div>
|
|
""";
|
|
}
|
|
|
|
function Page::print_entry (Entry e) {
|
|
|
|
print """<a name="item""" + $e.itemid + """\"></a>""";
|
|
var string time = $e.time->time_format();
|
|
var string date = $e.time->date_format();
|
|
var string security;
|
|
if ($e.security != "") {
|
|
$security = """<img src="$e.security_icon.url" align="right" """+
|
|
"""width="$e.security_icon.width" height="$e.security_icon.height" """+
|
|
"""alt="[$e.security]" />""";
|
|
}
|
|
|
|
var UserLite name;
|
|
var string pname;
|
|
|
|
var bool show_name = ($.view == "friends" or $e.poster.username != $.journal.username or $.view == "entry") ? true : false;
|
|
var bool show_pic = (defined $e.userpic and ($.view == "friends" or $*show_entry_userpic or $e.poster.username != $e.journal.username or $.view == "entry")) ? true : false;
|
|
|
|
|
|
|
|
|
|
"""
|
|
<div class="entry">
|
|
<div class="entrydivider"></div>
|
|
""";
|
|
if($show_pic) {
|
|
"""
|
|
<div class="userpic2">
|
|
<a href="$*SITEROOT/allpics.bml?user=$e.poster.username"><img src="$e.userpic.url" width="$e.userpic.width" height="$e.userpic.height" alt="$e.poster.name [userpic]" title="$e.poster.name [userpic]" border="0" /></a>
|
|
</div>
|
|
""";
|
|
}
|
|
|
|
if($show_name) {
|
|
$this->lay_make_username($e);
|
|
}
|
|
"""
|
|
<div class="entryinfo">$security $date $time</div>
|
|
<div class="entrydivider"></div>
|
|
<div class="entrylinks">
|
|
""";
|
|
|
|
$e.comments->print();
|
|
|
|
foreach var string key (["edit_entry","edit_tags","mem_add","tell_friend"]) {
|
|
var Link link = $e->get_link($key);
|
|
if ($link) {
|
|
"""<a href=\"$link.url\"> $link.caption </a>""";
|
|
}
|
|
}
|
|
"""<a href="$e.permalink_url"> $*text_permalink </a>
|
|
</div>
|
|
<div class="entrytext">
|
|
<div class="subject">$e.subject</div>
|
|
<p>$e.text</p>
|
|
""";
|
|
|
|
$e->print_metadata();
|
|
|
|
"""
|
|
</div>
|
|
</div>
|
|
<div class="backtop"><a href="#top">back to top</a></div>
|
|
|
|
""";
|
|
}
|
|
|
|
|
|
|
|
function CommentInfo::print() {
|
|
if ($.enabled) {
|
|
$this->print_postlink();
|
|
if ($.count > 0 or $.screened) {
|
|
$this->print_readlink();
|
|
}
|
|
}
|
|
}
|
|
|
|
function CommentInfo::print_postlink() {
|
|
var Page p = get_page();
|
|
"<a href=\"$.post_url\"> "+($p.view == "friends" ? $*text_post_comment_friends : $*text_post_comment)+" </a>";
|
|
}
|
|
|
|
function CommentInfo::print_readlink {
|
|
var Page p = get_page();
|
|
"<a href=\"$.read_url\"> "+
|
|
get_plural_phrase($.count, $p.view == "friends" ?
|
|
"text_read_comments_friends" : "text_read_comments")+
|
|
" </a>";
|
|
}
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# EntryPage and Comments
|
|
#
|
|
|
|
function EntryPage::print_body() {
|
|
"""<div class="entries">""";
|
|
$this->print_entry($.entry);
|
|
if ($this.multiform_on) {
|
|
$this->print_multiform_start();
|
|
}
|
|
|
|
if ($.entry.comments.count > 0) {
|
|
"""
|
|
<div class="messageholder"><div class="systemmessage"><div class="notablemessage "><b>Comments</b></div></div></div>
|
|
""";
|
|
}
|
|
|
|
if ($.comment_pages.total_subitems > 0) {
|
|
$.comment_pages->print();
|
|
}
|
|
|
|
if ($.entry.comments.enabled) {
|
|
$this->print_comments($.comments);
|
|
}
|
|
|
|
|
|
if ($.entry.comments.count > 0) {
|
|
"""
|
|
<div class="messageholder">
|
|
<div class="systemmessage">
|
|
<div class="notablemessage ">
|
|
""";
|
|
|
|
$.entry.comments->print();
|
|
|
|
"""
|
|
</div>
|
|
</div>
|
|
</div>
|
|
""";
|
|
}
|
|
|
|
if ($.comment_pages.total_subitems > 0) {
|
|
$.comment_pages->print();
|
|
}
|
|
|
|
if ($this.multiform_on and ($.entry.comments.count > 0)) {
|
|
"""
|
|
<div class="messageholder">
|
|
<div class="systemmessage">
|
|
<div class="notablemessage ">
|
|
<div class="multiform">
|
|
""";
|
|
$this->print_multiform_actionline();
|
|
"""
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
""";
|
|
$this->print_multiform_end();
|
|
}
|
|
"""</div>""";
|
|
}
|
|
|
|
function EntryPage::print_comments(Comment[] cs) {
|
|
if (size $cs == 0) { return; }
|
|
foreach var Comment c ($cs) {
|
|
if ($c.full) {
|
|
$this->print_comment($c);
|
|
} else {
|
|
$this->print_comment_partial($c);
|
|
}
|
|
}
|
|
}
|
|
|
|
function EntryPage::print_comment(Comment c) {
|
|
|
|
var string datetime;
|
|
$datetime = $c.time->date_format()+", " + $c.time->time_format();
|
|
|
|
|
|
var string parent;
|
|
var string thread;
|
|
if($c.parent_url != "") {
|
|
$parent = """<a href="$c.parent_url"> $*text_comment_parent </a>""";
|
|
}
|
|
if($c.thread_url != "") {
|
|
$thread = """<a href="$c.thread_url"> $*text_comment_thread </a>""";
|
|
}
|
|
|
|
var string subjecticon;
|
|
if (defined $c.subject_icon) {
|
|
$subjecticon = """<img src="$c.subject_icon.url" width="$c.subject_icon.width" height="$c.subject_icon.height" alt="" />""";
|
|
}
|
|
|
|
var string ip;
|
|
if ($c.metadata{"poster_ip"}) {
|
|
$ip = """ """ + $c.metadata{"poster_ip"};
|
|
}
|
|
|
|
var string poster = defined $c.poster ? $c.poster->as_string() : "<b>(Anonymous)</b>";
|
|
|
|
var string pic;
|
|
if (defined $c.userpic and $*comment_userpic_style != "off") {
|
|
$pic = """<div class="userpic2"><img src="$c.userpic.url" width="$c.userpic.width" height="$c.userpic.height" alt="" /></div>""";
|
|
}
|
|
|
|
var string indent = ($c.depth - 1) * 25 + "px";
|
|
|
|
"""
|
|
<div id='$c.dom_id'>
|
|
<a name='$c.anchor'></a>
|
|
$pic
|
|
<div class="entry" style="margin-left: $indent;">
|
|
<div class="entrydivider"></div>
|
|
<div class="postedby">$poster <span class="ip">$ip</span></div>
|
|
<div class="entrydivider"></div>
|
|
<div class="entryinfo">$subjecticon $datetime</div>
|
|
<div class="entrydivider"></div>
|
|
|
|
""";
|
|
|
|
if ($.multiform_on) {
|
|
"""<div class="entryinfo"><label for="ljcomsel_$c.talkid">$*text_multiform_check</label> """;
|
|
$c->print_multiform_check();
|
|
"""</div>
|
|
<div class="entrydivider"></div>
|
|
""";
|
|
}
|
|
|
|
var string replyurl;
|
|
if ($c.frozen) {
|
|
$replyurl = """<a href="javascript://"> $*text_comment_frozen </a>""";
|
|
} else {
|
|
$replyurl = """<a href="$c.reply_url"> $*text_comment_reply </a>""";
|
|
}
|
|
|
|
"""
|
|
<div class="entrylinks">
|
|
$replyurl
|
|
""";
|
|
|
|
# some links for doing stuff to this comment
|
|
foreach var string k ($c.link_keyseq) {
|
|
var Link link = $c->get_link($k);
|
|
if ($link) {
|
|
"""<a href=\"$link.url\"> $link.caption </a>""";
|
|
}
|
|
}
|
|
|
|
"""
|
|
<a href="$c.permalink_url"> $*text_permalink </a>$parent$thread
|
|
</div>
|
|
<div class="entrytext">
|
|
<div class="subject">$c.subject</div>
|
|
<p>$c.text</p>
|
|
</div>
|
|
""";
|
|
|
|
|
|
if ((size $c.replies) > 0 and $c.replies[0].full == false) {
|
|
"""<div style="margin-top: 5px; margin-bottom: 5px; clear: both;">\n""";
|
|
$this->print_comments($c.replies);
|
|
"</div>\n";
|
|
}
|
|
|
|
"""
|
|
</div>
|
|
<div class="backtop"><a href="#top">back to top</a></div>
|
|
</div>
|
|
""";
|
|
|
|
if ((size $c.replies) > 0 and $c.replies[0].full == true) {
|
|
$this->print_comments($c.replies);
|
|
}
|
|
|
|
}
|
|
|
|
function EntryPage::print_comment_partial(Comment c) {
|
|
var string poster = defined $c.poster ? $c.poster->as_string() : "<i>(Anonymous)</i>";
|
|
var string subj = $c.subject != "" ? $c.subject : """<i class="nosubject">$*text_nosubject</i>""";
|
|
var string indent = ($c.depth - 1) * 25 + "px";
|
|
"""
|
|
<div class="entry" style="margin-left: $indent;"><div class="minicommentholder"><div class="minicomment">$poster - <a href="$c.permalink_url">$subj</a></div></div></div>
|
|
""";
|
|
$this->print_comments($c.replies);
|
|
}
|
|
|
|
function ItemRange::print() {
|
|
if ($.all_subitems_displayed) { return; }
|
|
"""
|
|
<div class="messageholder"><div class="systemmessage"><div class="notablemessage ">
|
|
<b>""";
|
|
print lang_page_of_pages($.current, $.total);
|
|
"</b> — ";
|
|
foreach var int i (1..$.total) {
|
|
if ($i == $.current) { """<b class="systemtext">[$i]</b>""";
|
|
|
|
} else {
|
|
var string url_of = $this->url_of($i);
|
|
"<a href='$url_of'><b>[$i]</b></a>";
|
|
}
|
|
}
|
|
"""</div></div></div>""";
|
|
}
|
|
|
|
################################################################################
|
|
#
|
|
# ReplyPage
|
|
#
|
|
|
|
function ReplyPage::print_body() {
|
|
|
|
var EntryLite e = $.replyto;
|
|
var string poster = defined $e.poster ? $e.poster->as_string() : "<i>(Anonymous)</i>";
|
|
var string datetime;
|
|
var string time = $e.time->time_format();
|
|
var string date = $e.time->date_format();
|
|
|
|
var UserLite name;
|
|
if(defined $e.userpic and $*comment_userpic_style != "off") {
|
|
$name = $e.poster;
|
|
"""<div class="userpic2">""";
|
|
if (defined $e.userpic or (defined $e.userpic and $.view == "entry" and $*show_entry_userpic)) {
|
|
"""<img src="$e.userpic.url" width="$e.userpic.width" height="$e.userpic.height" alt="" />""";
|
|
}
|
|
""" </div>""";
|
|
}
|
|
"""
|
|
<div class="entry">
|
|
<div class="entrydivider"></div>
|
|
<div class="entryinfo">$name</div>
|
|
<div class="entrydivider"></div>
|
|
<div class="entryinfo">$time $date</div>
|
|
<div class="entrydivider"></div>
|
|
<div class="entrylinks">
|
|
<a href="$.entry.comments.read_url" class="comments">$*text_reply_back</a>""";
|
|
|
|
|
|
foreach var string key (["edit_entry","mem_add","tell_friend"]) {
|
|
var Link link = $e->get_link($key);
|
|
if ($link) {
|
|
"""<a href=\"$link.url\">$link.caption</a>""";
|
|
}
|
|
}
|
|
"""<a href="$e.permalink_url">$*text_permalink</a>
|
|
</div>
|
|
""";
|
|
|
|
"""
|
|
<div class="entrytext">
|
|
<div class="subject">$e.subject</div>
|
|
<p>$e.text</p>
|
|
</div>
|
|
|
|
<div class="messageholder"><div class="systemmessage">
|
|
""";
|
|
$.form->print();
|
|
"""
|
|
</div></div>
|
|
""";
|
|
}
|
|
|
|
|
|
function Entry::print_metadata() {
|
|
var string caption;
|
|
var string val;
|
|
var Image i;
|
|
if ($this.tags) {
|
|
"""<div class="meta">""";
|
|
print $this->get_tags_text();
|
|
"</div>";
|
|
}
|
|
if (size $.metadata == 0) { return; }
|
|
foreach var string k ($.metadata) {
|
|
$caption = $k;
|
|
$val = $.metadata{$k};
|
|
if ($k == "music") {
|
|
$caption = $*text_meta_music;
|
|
}
|
|
elseif ($k == "mood") {
|
|
$caption = $*text_meta_mood;
|
|
if (defined $.mood_icon) {
|
|
$i = $.mood_icon;
|
|
$val = """<img src="$i.url" width="$i.width" height="$i.height" alt="$val" title="$val" /> $val""";
|
|
}
|
|
}
|
|
println """<div class="meta">$caption: $val</div>""";
|
|
}
|
|
}
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# RecentPage
|
|
#
|
|
|
|
function RecentPage::print_body () {
|
|
"""
|
|
|
|
<div class="entries">
|
|
""";
|
|
|
|
foreach var Entry e ($.entries) {
|
|
$this->print_entry($e);
|
|
}
|
|
|
|
"""
|
|
</div>
|
|
""";
|
|
}
|
|
|
|
################################################################################
|
|
#
|
|
# YearPage
|
|
#
|
|
|
|
|
|
function YearPage::print_body {
|
|
$this->print_year_links();
|
|
"""<div id="cal">""";
|
|
foreach var YearMonth m ($.months) {
|
|
$this->print_month($m);
|
|
}
|
|
"""</div>""";
|
|
}
|
|
|
|
function YearPage::print_year_links() {
|
|
"""<div class="messageholder"><div class="systemmessage"><div class="notablemessage">""";
|
|
foreach var YearYear y ($.years) {
|
|
if ($y.displayed) {
|
|
"""<b class="systemtext">$y.year</b>""";
|
|
} else {
|
|
"""<b><a href="$y.url"> $y.year </a></b>""";
|
|
}
|
|
}
|
|
"""</div></div></div>""";
|
|
}
|
|
|
|
function YearPage::print_month(YearMonth m) {
|
|
if (not $m.has_entries) { return; }
|
|
|
|
"""
|
|
<a name="anchor$m.month"></a>
|
|
<div class="entry">
|
|
<div class="entrydivider"></div>
|
|
<div class="entryinfo">
|
|
""";
|
|
|
|
print $m->month_format();
|
|
|
|
"""
|
|
</div>
|
|
<div class="entrydivider"></div>
|
|
<div class="entrylinks"><a href="$m.url"> $*text_view_month </a></div>
|
|
<div class="entrytext">
|
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
|
<tr>
|
|
""";
|
|
|
|
foreach var int d (weekdays()) {
|
|
"""
|
|
<td width="14%"><div class="bigday">$*lang_dayname_short[$d]</div></td>
|
|
""";
|
|
}
|
|
"""
|
|
</tr>
|
|
""";
|
|
foreach var YearWeek w ($m.weeks) {
|
|
$w->print();
|
|
}
|
|
"""
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="backtop"><a href="#top">back to top</a></div>
|
|
""";
|
|
|
|
}
|
|
|
|
function YearWeek::print() {
|
|
"""
|
|
<tr>
|
|
""";
|
|
if ($.pre_empty > 0) {
|
|
"""
|
|
<td colspan="$.pre_empty"></td>
|
|
""";
|
|
}
|
|
|
|
foreach var YearDay d ($.days) {
|
|
var string day = zeropad($d.day, 2);
|
|
"""
|
|
<td>
|
|
<div class="bigday">$day</div>
|
|
""";
|
|
if ($d.num_entries > 0) {
|
|
var string num = $d.num_entries < 10 ? " " + string($d.num_entries) : string($d.num_entries);
|
|
"""
|
|
<div class="calactitem"><a href="$d.url">$num</a></div>
|
|
""";
|
|
}
|
|
"""
|
|
</td>
|
|
""";
|
|
}
|
|
"""
|
|
</tr>
|
|
""";
|
|
}
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# MonthPage
|
|
#
|
|
|
|
|
|
function MonthPage::view_title : string {
|
|
return $.date->date_format($*lang_fmt_month_long);
|
|
}
|
|
|
|
function MonthPage::print_body {
|
|
"<form method='post' action='$.redir.url'>";
|
|
$.redir->print_hiddens();
|
|
var string back;
|
|
var string forward;
|
|
if ($.prev_url != "") { $back = """<a href="$.prev_url">$*text_back</a>"""; }
|
|
if ($.next_url != "") { $forward = """<a href="$.next_url">$*text_forward</a>"""; }
|
|
var string select;
|
|
if (size $.months > 1) {
|
|
$select = "<select name='redir_key'>\n";
|
|
foreach var MonthEntryInfo mei ($.months) {
|
|
var string sel;
|
|
if ($mei.date.year == $.date.year and $mei.date.month == $.date.month) {
|
|
$sel = " selected='selected'";
|
|
}
|
|
$select = $select + "<option value='$mei.redir_key'$sel>" + $mei.date->date_format($*lang_fmt_month_long) + "</option>";
|
|
}
|
|
$select = $select + "</select>\n<input type='submit' value='View' />";
|
|
}
|
|
|
|
"""
|
|
<div class="messageholder"><div class="systemmessage">
|
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
|
<tr>
|
|
<td width="15%">$back</td>
|
|
<td align="center" width="70%">$select</td>
|
|
<td align="right" width="15%">$forward</td>
|
|
</tr>
|
|
</table>
|
|
</div></div>
|
|
""";
|
|
"</form>";
|
|
foreach var MonthDay d ($.days) {
|
|
if ($d.has_entries) {
|
|
"""
|
|
<a name="anchor$d.day"></a>
|
|
<div class="entry">
|
|
<div class="entrydivider"></div>
|
|
<div class="entrylinks"><a href=\"$d.url\"> <b>
|
|
""";
|
|
print lang_ordinal($d.day);
|
|
"""
|
|
</b> </a></div>
|
|
<div class="entries">
|
|
<div class="entrytext">
|
|
""";
|
|
$d->print_subjectlist();
|
|
"""
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="backtop"><a href="#top">back to top</a></div>
|
|
""";
|
|
}
|
|
}
|
|
}
|
|
|
|
function MonthDay::print_subjectlist() {
|
|
# Too many tables...
|
|
foreach var Entry e ($.entries) {
|
|
print $e.time->time_format("short") + ": ";
|
|
if ($e.poster.username != $e.journal.username) {
|
|
$e.poster->print(); " ";
|
|
}
|
|
"$e.security_icon";
|
|
if ($e.subject != "") {
|
|
" <a href=\"$e.permalink_url\">$e.subject</a>";
|
|
} else {
|
|
""" <a href="$e.permalink_url"><i class="nosubject">$*text_nosubject</i></a>""";
|
|
}
|
|
if ($e.comments.count > 0) {
|
|
" - " + get_plural_phrase($e.comments.count, "text_read_comments");
|
|
}
|
|
if ($e.comments.screened) {
|
|
" <b>$*text_month_screened_comments</b>";
|
|
}
|
|
"<br />\n";
|
|
}
|
|
}
|
|
|
|
|
|
################################################################################
|
|
#
|
|
# DayPage
|
|
#
|
|
|
|
function DayPage::print_body() {
|
|
|
|
"""<div class="entries">""";
|
|
if ($.has_entries) {
|
|
foreach var Entry e ($.entries) {
|
|
$this->print_entry($e);
|
|
}
|
|
|
|
} else {
|
|
"<p>$*text_noentries_day</p>";
|
|
}
|
|
"""</div>""";
|
|
}
|
|
|
|
################################################################################
|
|
#
|
|
# Page
|
|
#
|
|
|
|
function Page::print () {
|
|
|
|
var string title = $this->title();
|
|
|
|
"""
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>$title</title>
|
|
<link rel="stylesheet" href="$.stylesheet_url" type="text/css" />
|
|
""";
|
|
|
|
$this->print_head();
|
|
|
|
"""
|
|
</head>
|
|
<body>
|
|
<a name="top"></a>
|
|
<table cellspacing="0" cellpadding="0" border="0" width="100%">
|
|
<tr>
|
|
<td>
|
|
<div class="border3">
|
|
<div class="border2">
|
|
<div id="bodycontent">
|
|
""";
|
|
|
|
$this->lay_print_userpic();
|
|
$this->lay_print_username();
|
|
$this->lay_print_header();
|
|
|
|
"""
|
|
<div id="content">
|
|
<table cellspacing="10" cellpadding="0" border="0">
|
|
<tr>
|
|
<td valign="top" class="sidetd">
|
|
<div id="sidecolumn">
|
|
""";
|
|
|
|
$this->lay_print_sidebar();
|
|
|
|
"""
|
|
</div>
|
|
</td>
|
|
|
|
<td valign="top" width="100%">
|
|
""";
|
|
|
|
$this->lay_print_subnav();
|
|
$this->print_body();
|
|
$this->lay_print_subnav();
|
|
|
|
"""
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|
|
""";
|
|
}
|
|
|
|
|
|
|
|
function print_theme_preview() {
|
|
|
|
var Color color_bg_lt = getAltColor($*color_bg, "light", 30);
|
|
var Color color_fg_dk = getAltColor($*color_fg, "dark", 20);
|
|
var Color color_fg_dk_font = getAltColor($*color_fg_font, "dark", 20);
|
|
var Color color_divider = getAltColor($color_fg_dk, "dark", 30);
|
|
var Color color_fg_dk_dk_font = getAltColor($color_fg_dk, "dark", 50);
|
|
var Color color_border = getAltColor($*color_bg, "light", 90);
|
|
|
|
"""
|
|
<div style="background-color: $*color_fg; border: 1px solid $color_fg_dk; padding: 4px; width: 210px;">
|
|
<div style="border-top: 1px solid $color_divider; border-bottom: 1px solid $*color_fg;"></div>
|
|
<div style="background-color: $color_fg_dk; font-size: $*static_font_size$*static_font_measurement; padding: 4px; width: 200px;">Username - Title</div>
|
|
<div style="border-top: 1px solid $color_divider; border-bottom: 1px solid $*color_fg;"></div>
|
|
<br />
|
|
<div style="border: 1px solid $*color_bg; width: 200px;"><div style="border: 1px solid $*color_fg;"><div style="border: 2px solid $color_border;">
|
|
<div style="background-color: $color_bg_lt; border: 1px solid $*color_bg; padding: 3px; font-size: $*static_font_size$*static_font_measurement; color: $*color_bg_font;">
|
|
<strong>Welcome</strong>
|
|
<div style="background-color: $color_fg_dk; padding: 3px; margin-top: 5px; color: $*color_fg_font; border-top: 1px solid $color_divider; border-bottom: 1px solid $color_divider;">This is my new journal using a cool new style!</div>
|
|
</div></div></div></div>
|
|
</div>
|
|
""";
|
|
|
|
}
|