ljr/local/bin/upgrading/s2layers/flexiblesquares/layout.s2

2077 lines
48 KiB
Plaintext
Raw Permalink Normal View History

2019-02-05 21:49:12 +00:00
# -----------------------------------
# LAYER INFO
# -----------------------------------
layerinfo type = "layout";
layerinfo name = "Flexible Squares";
layerinfo lang = "en";
layerinfo author_name = "Yati Mansor";
layerinfo redist_uniq = "flexiblesquares/layout";
# -----------------------------------
# PROPGROUPS
# -----------------------------------
### PRESENTATION
propgroup presentation = "Presentation";
propgroup presentation
{
property use page_recent_items;
property use page_friends_items;
property use view_entry_disabled;
property bool show_entry_userpic
{
des = "Show user picture icons with each of your entries?";
}
property string userpic_position
{
des = "Set the user picture position for each entry";
values = "left|Left|right|Right";
}
property bool use_friends_colours
{
des = "Use friends colours when viewing friends list?";
}
set show_entry_userpic = true;
set userpic_position = "left";
set use_friends_colours = true;
property use use_shared_pic;
property string page_alignment
{
des = "Set page alignment";
values= "right|Right|center|Center|left|Left";
}
set page_alignment = "center";
property int journal_width
{
des = "Journal width";
note = "Journal width can be set in either percentage of the browser window or in pixels (see next option)";
min = 1;
}
property string journal_width_unit
{
des = "Unit of journal width";
note = "Journal width can be set either in percentage of the browser window or in pixels";
values = "%|%|px|px";
}
set journal_width = 80;
set journal_width_unit = "%";
}
### SIDEBAR
propgroup sidebar = "Sidebar";
propgroup sidebar
{
property bool show_sidebar
{
des = "Show the sidebar?";
}
set show_sidebar = true;
property string sidebar_position
{
des="Set sidebar position";
values="left|Left|right|Right";
}
set sidebar_position="right";
property bool show_default_userpic
{
des = "Show the default user picture on the sidebar?";
}
set show_default_userpic = true;
property bool show_blurb
{
des = "Show the blurb/free text in the sidebar?";
}
property string text_sidebar_blurb
{
des = "Title of the blurb sidebar box";
}
property string sidebar_blurb {
des = "Text to be added to the sidebar";
note = "Appears in the sidebar 'Blurb'";
rows = 10;
cols = 25;
}
set show_blurb = true;
set text_sidebar_blurb = "Blurb";
property bool show_linklist
{
des = "Show the link list in the sidebar?";
}
property string text_sidebar_links
{
des = "Title of the links sidebar box";
}
set show_linklist = true;
set text_sidebar_links = "Links";
property bool show_calendar
{
des = "Show the calendar in the sidebar?";
}
set show_calendar = true;
property int sidebar_width
{
des = "Set sidebar width, in pixels";
min = 0;
}
set sidebar_width = 160;
property string sidebar_order_1
{
des = "First box in the sidebar";
values = "userpic|Default Userpic|blurb|Blurb|linklist|Link List|calendar|Calendar";
}
property string sidebar_order_2
{
des = "Second box in the sidebar";
values = "userpic|Default Userpic|blurb|Blurb|linklist|Link List|calendar|Calendar";
}
property string sidebar_order_3
{
des = "Third box in the sidebar";
values = "userpic|Default Userpic|blurb|Blurb|linklist|Link List|calendar|Calendar";
}
property string sidebar_order_4
{
des = "Fourth box in the sidebar";
values = "userpic|Default Userpic|blurb|Blurb|linklist|Link List|calendar|Calendar";
}
set sidebar_order_1 = "userpic";
set sidebar_order_2 = "blurb";
set sidebar_order_3 = "linklist";
set sidebar_order_4 = "calendar";
}
### BACKGROUND
propgroup background = "Background";
propgroup background
{
property string page_background_image
{
des = "Background image";
note = "URL to an image to be used for the page background (leave blank for none).";
}
property string page_background_repeat
{
des = "Background image repeat";
values = "repeat|Repeat|no-repeat|Don't repeat|repeat-x|Repeat across only|repeat-y|Repeat down only";
}
property string page_background_position
{
des = "Background image position";
note = "Does not apply if background image is repeating in both directions.";
values = "center|Center|center left|Center-left|center right|Center-right|top|Top|top left|Top-left|top right|Top-right|bottom|Bottom|bottom left|Bottom-left|bottom right|Bottom-right|left|Left|right|Right";
}
property string page_background_scrolling
{
des = "Background image scrolling";
note = "Not supported in all browsers, but allows for the background image to be in a fixed position when scrolling.";
values = "scroll|Scroll|fixed|Fixed";
}
set page_background_image = "";
set page_background_repeat = "repeat";
set page_background_position = "center";
set page_background_scrolling = "scroll";
}
### FONTS
propgroup fonts = "Fonts";
propgroup fonts
{
property string font_unit
{
des = "Font unit";
values = "pt|Points|px|Pixels|em|Em";
}
set font_unit = "px";
property string main_font
{
des = "Preferred/base font";
maxlength = 25;
size = 10;
example = "Tahoma";
note = "Leave blank for your browser's default font";
}
property string main_font_fallback
{
des = "Alternative font style";
values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
note = "This general style will serve as a fallback if your preferred font is unavailable.";
}
property int main_font_size
{
des = "Base font size";
}
set main_font = "Verdana";
set main_font_fallback = "sans-serif";
set main_font_size= 11;
property string content_font
{
des = "Font for the entry/date/entry subject";
maxlength = 25;
size = 10;
example = "Verdana";
note = "Leave blank for your browser's default font";
}
property string content_font_fallback
{
des = "Alternative font style";
values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
note = "This general style will serve as a fallback if your preferred font is unavailable.";
}
property int content_font_size
{
des = "Entry/date/subject font size";
}
property int date_font_size
{
des = "Date font size";
}
property int subject_font_size
{
des = "Subject font size";
}
set content_font = "Verdana";
set content_font_fallback = "sans-serif";
set content_font_size= 11;
set date_font_size= 11;
set subject_font_size= 11;
property string sidebar_font
{
des = "Font for the sidebar";
maxlength = 25;
size = 10;
example = "Verdana";
note = "Leave blank for your browser's default font";
}
property string sidebar_font_fallback
{
des = "Alternative font style";
values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
note = "This general style will serve as a fallback if your preferred font is unavailable.";
}
property int sidebar_font_size
{
des = "Sidebar font size";
}
set sidebar_font = "Verdana";
set sidebar_font_fallback = "sans-serif";
set sidebar_font_size= 11;
property string header_footer_font
{
des = "Font for the header and footer";
maxlength = 25;
size = 10;
example = "Verdana";
note = "Leave blank for your browser's default font";
}
property string header_footer_font_fallback
{
des = "Alternative font style";
values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
note = "This general style will serve as a fallback if your preferred font is unavailable.";
}
property int header_footer_font_size
{
des = "Header and footer font size";
}
set header_footer_font = "Verdana";
set header_footer_font_fallback = "sans-serif";
set header_footer_font_size= 11;
property string title_font
{
des = "Font for the title and subtitle";
maxlength = 25;
size = 10;
example = "Verdana";
note = "Leave blank for your browser's default font";
}
property string title_font_fallback
{
des = "Alternative font style";
values = "sans-serif|Sans-serif|serif|Serif|cursive|Cursive|monospace|Monospaced|none|Use browser's default";
note = "This general style will serve as a fallback if your preferred font is unavailable.";
}
property int title_font_size
{
des = "Title font size";
}
property int subtitle_font_size
{
des = "Subtitle font size";
}
set title_font = "Verdana";
set title_font_fallback = "sans-serif";
set title_font_size= 11;
set subtitle_font_size= 11;
}
### COLOURS
propgroup colors = "Colours";
propgroup colors
{
property Color page_bgcolor
{
des = "Background color for the page";
}
property Color page_fgcolor
{
des = "Text color for the page";
}
property Color content_bgcolor
{
des = "Background color for box containing the main contents of the page";
}
property Color outer_table_bgcolor
{
des = "Background color of the outer table";
}
property Color entry_bgcolor
{
des = "Background color of the entries";
}
property Color entry_fgcolor
{
des = "Text color of the entries";
}
property Color border_color
{
des = "Border color of the content and header/footer boxes";
}
property Color entrytitle_bgcolor
{
des = "Background color of the subject, date and comment links";
}
property Color sidebar_header_bgcolor
{
des = "Background color for the headers in the sidebar";
}
property Color sidebar_fgcolor
{
des = "Text color for the sidebar";
}
property Color header_footer_bgcolor
{
des = "Background color of the header and footer";
}
property Color header_footer_fgcolor
{
des = "Text color for the header and footer";
}
property Color subject_fgcolor
{
des = "Text color for the subject of the entries";
}
property Color date_fgcolor
{
des = "Text color for the date of the entries";
}
set page_bgcolor = "#99AECE";
set page_fgcolor = "#000000";
set content_bgcolor = "#C2CDE0";
set entry_bgcolor = "#D4DCE8";
set entry_fgcolor = "#000000";
set border_color = "#999999";
set entrytitle_bgcolor = "#919BAD";
set outer_table_bgcolor = "#A9B3C4";
set sidebar_fgcolor = "#000000";
set sidebar_header_bgcolor = "#919BAD";
set header_footer_bgcolor = "#D4DCE8";
set header_footer_fgcolor = "#000000";
set subject_fgcolor = "#000000";
set date_fgcolor = "#000000";
property Color link_color
{
des = "Link color for both visited and unvisited links";
}
property Color link_hover_color
{
des = "Link color on hover";
}
property Color comments_link_color
{
des = "Link color for visited and unvisited comment links";
}
property Color comments_link_hover
{
des = "Link color for comment links on hover";
}
property Color sidebar_link_color
{
des = "Link color for visited and unvisited sidebar links";
}
property Color sidebar_link_hover
{
des = "Link color for sidebar links on hover";
}
property Color header_footer_link_color
{
des = "Link color for visited and unvisited links for the header and footer";
}
property Color header_footer_link_hover
{
des = "Link color for comment links on hover for the header and footer";
}
set link_color = "#5674B9";
set link_hover_color = "#7AA1F8";
set comments_link_color = "#FFFFFF";
set comments_link_hover = "#B0B9C8";
set sidebar_link_color = "#5674B9";
set sidebar_link_hover = "#7AA1F8";
set header_footer_link_color = "#5674B9";
set header_footer_link_hover = "#7AA1F8";
}
### TEXT
propgroup text = "Text";
propgroup text
{
property use text_meta_music;
property use text_meta_mood;
property use text_post_comment;
property use text_read_comments;
property use text_post_comment_friends;
property use text_read_comments_friends;
property use text_website_default_name;
property use text_view_recent;
property use text_view_friends;
property use text_view_userinfo;
property use text_view_archive;
set text_view_archive = "Archive";
set text_view_friends = "Friends";
set text_view_recent = "Recent Entries";
set text_view_userinfo = "User Info";
set text_website_default_name = "Website";
property use text_nosubject;
property string text_edit
{
des = "Text for an entry's edit link";
}
property string text_memories
{
des = "Text to add an entry to the memories";
}
property string text_previous_entry
{
des = "Text to link to the previous entry";
}
property string text_next_entry
{
des = "Text to link to the next entry";
}
set text_nosubject = "(no subject)";
set text_permalink = "Link";
set text_edit = "Edit";
set text_memories = "Mem";
set text_next_entry = "Next";
set text_previous_entry = "Previous";
property use text_skiplinks_back;
property use text_skiplinks_forward;
set text_skiplinks_back = "go earlier";
set text_skiplinks_forward = "go later";
}
### STYLESHEET OPTIONS
propgroup stylesheet = "Stylesheet";
propgroup stylesheet
{
property bool external_stylesheet
{
des = "Use linked stylesheet";
}
property string external_stylesheet_url
{
des="External stylesheet URL";
}
set external_stylesheet = true;
}
# -----------------------------------
# STYLESHEET
# -----------------------------------
function css_font_family(string base, string fallback) : string
{
var string return;
if ($base != "" or $fallback != "none") {
$return = $return + "font-family: ";
if ($base != "") {
$return = $return + "\"$base\"";
if ($fallback != "none") {
$return = $return + ", ";
}
}
if ($fallback != "none") {
$return = $return + $fallback;
}
}
return $return;
}
function print_stylesheet ()
{
var string body_font_family = css_font_family($*main_font, $*main_font_fallback);
var string content_font_family = css_font_family($*content_font, $*content_font_fallback);
var string sidebar_font_family = css_font_family($*sidebar_font, $*sidebar_font_fallback);
var string header_footer_font_family = css_font_family($*header_footer_font, $*header_footer_font_fallback);
var string title_font_family = css_font_family($*title_font, $*title_font_fallback);
var string body_background = "";
if ($*page_background_image != "") {
$body_background = """
background-image: url("$*page_background_image");
background-repeat: $*page_background_repeat;
background-position: $*page_background_position;
background-attachment: $*page_background_scrolling;
""";
}
var string page_align = "";
var string body_align = "";
if ($*page_alignment == "left")
{
$page_align = "margin-left: 20px; margin-right: auto";
}
if ($*page_alignment == "right")
{
$page_align = "margin-left: auto; margin-right: 20px";
$body_align = "text-align: right";
}
if ($*page_alignment == "center")
{
$page_align = "margin-left: auto; margin-right: auto";
$body_align = "text-align: center";
}
var string maincontent_prop = "";
var string sidebar_prop = "";
var int float_margin = $*sidebar_width + 20;
if ($*show_sidebar and $*sidebar_position == "right")
{
$maincontent_prop = "margin-right: ${float_margin}px;";
$sidebar_prop = "float: right;";
}
if ($*show_sidebar and $*sidebar_position == "left")
{
$maincontent_prop = "margin-left: ${float_margin}px;";
$sidebar_prop = "float: left;";
}
if (not $*show_sidebar)
{
$maincontent_prop = "";
}
var string sidebar_pos = "";
if ($*sidebar_position == "left")
{
$sidebar_pos = "clear: right";
}
if ($*sidebar_position == "right")
{
$sidebar_pos = "clear: left";
}
print """
body {
background-color: $*page_bgcolor;
$body_background
$body_align;
color: $*page_fgcolor;
$body_font_family;
font-size: $*main_font_size$*font_unit;
margin: 20px 0 20px 0;
}
a, a:link, a:visited {
color: $*link_color;
text-decoration: none;
}
a:hover {
color: $*link_hover_color;
text-decoration: underline;
}
p, td, blockquote {
font-size: $*content_font_size$*font_unit;
}
code, kbd, pre, tt {
font-family: monospace;
}
#content
{
width: $*journal_width$*journal_width_unit;
$page_align;
background-color: $*outer_table_bgcolor;
border-width: 1px;
border-style: solid;
border-color: $*border_color;
padding: 15px;
}
#maincontent {
margin-top: 15px;
$content_font_family;
font-size: $*content_font_size$*font_unit;
background-color: $*content_bgcolor;
color: $*page_fgcolor;
border-style: solid;
border-color: $*border_color;
border-width: 1px;
$maincontent_prop
text-align: left;
}
#sidebar {
padding-top: 15px;
margin-top: 15px;
background-color: $*content_bgcolor;
border-color: $*border_color;
border-width: 1px;
border-style: solid;
font-size: $*sidebar_font_size$*font_unit;
$sidebar_font_family;
color: $*sidebar_fgcolor;
width: ${*sidebar_width}px;
$sidebar_prop
text-align: left;
}
#header {
width: 100%;
padding: 10px 0px 20px 0px;
margin: 0px;
text-align: center;
$header_footer_font_family;
font-size: $*header_footer_font_size$*font_unit;
font-weight: bold;
letter-spacing: 2px;
border-style: solid;
border-color: $*border_color;
border-width: 1px;
background-color: $*header_footer_bgcolor;
color: $*header_footer_fgcolor;
}
#footer {
width: 100%;
text-align: center;
$header_footer_font_family;
font-size: $*header_footer_font_size$*font_unit;
font-weight: bold;
letter-spacing: 1px;
background-color: $*header_footer_bgcolor;
color: $*header_footer_fgcolor;
border-color: $*border_color;
border-width: 1px;
border-style: solid;
z-index: 100;
clear: both;
}
/* header -- links to views; title of journal; subtitle of journal */
div#header a, div#header a:link, div#header a:visited, div#footer a, div#footer a:link, div#footer a:visited {
color: $*header_footer_link_color;
}
div#header a:hover, div#footer a:hover {
color: $*header_footer_link_hover;
text-decoration: none;
}
ul.navheader
{
padding: 0px;
margin: 0px;
}
ul.navheader li {
display: inline;
padding: 0 3px 0 3px;
}
.title {
$title_font_family;
font-size: $*title_font_size$*font_unit;
font-weight: normal;
line-height: 200%;
top: 10px;
}
.subtitle{
$title_font_family;
font-size: $*subtitle_font_size$*font_unit;
font-weight: normal;
top: 10px;
}
/* sidebar */
div#sidebar a, div#sidebar a:link, div#sidebar a:visited{
color: $*sidebar_link_color;
}
div#sidebar a:hover {
color: $*sidebar_link_hover;
text-decoration: none;
}
.defaultuserpic {
text-align: center;
}
.sbarheader {
padding: 0px 5px 0px 5px;
}
.sbarbody {
padding: 0px 5px 0px 5px;
}
.sbarbody2 {
padding: 0 15px 0 15px;
}
table.calendar {
margin-right: auto;
margin-left: auto;
}
.sbarcalendar {
border-color: $*page_fgcolor;
border-width: 1px;
border-style: solid;
text-align: center;
$sidebar_font_family;
font-size: $*sidebar_font_size$*font_unit;
}
.sbarcalendarposts {
border-color: $*page_fgcolor;
border-width: 1px;
border-style: solid;
background-color: $*entry_bgcolor;
text-align: center;
$sidebar_font_family;
font-size: $*sidebar_font_size$*font_unit;
}
ul.sbarlist
{
padding-left: 0px;
margin-left: 0px;
list-style: none;
}
li.sbaritem
{
padding-left: 15px;
list-style: none;
}
li.sbartitle
{
padding-left: 15px;
list-style: none;
border-style: solid;
border-width: 1px;
border-color: $*border_color;
background-color: $*sidebar_header_bgcolor;
margin-bottom: 10px;
margin-top: 10px;
}
/* maincontent */
.subcontent {
}
.entry {
margin: 0px 10px 10px 30px;
padding: 10px;
background-color: $*entry_bgcolor;
color: $*entry_fgcolor;
$content_font_family;
font-size: $*content_font_size$*font_unit;
text-align: left;
border-width: 1px;
border-color: $*entrytitle_bgcolor;
border-style: solid;
}
.entry ul li
{
padding-left: 5px;
margin-left: 15px;
}
.entry ol li
{
padding-left: 5px;
margin-left: 15px;
}
.userpic {
position: relative;
float: $*userpic_position;
background-color: $*entry_bgcolor;
padding: 5px;
margin: 10px;
z-index: 15;
border-width: 1px;
border-color: $*entrytitle_bgcolor;
border-style: solid;
}
.userpicfriends {
position: relative;
float: $*userpic_position;
padding: 5px;
margin: 10px;
text-align: center;
border-style: solid;
border-width: 1px;
border-color: $*entrytitle_bgcolor;
$content_font_family;
font-size: $*content_font_size$*font_unit;
z-index: 15;
}
.date {
line-height: 200%;
top: 5px;
color: $*date_fgcolor;
$content_font_family;
font-size: $*date_font_size$*font_unit;
}
.subject {
font-weight: bold;
padding: 10px;
color: $*subject_fgcolor;
$content_font_family;
font-size: $*subject_font_size$*font_unit;
}
.subject a, .subject a:link, .subject a:visited {
color: $*comments_link_color;
}
.subject a:hover {
color: $*comments_link_hover;
}
.datesubject {
background-color: $*entrytitle_bgcolor;
padding: 5px;
}
.currents, .currentmood, .currentmusic {
$content_font_family;
font-size: $*content_font_size$*font_unit;
}
.comments {
$content_font_family;
font-size: $*content_font_size$*font_unit;
text-align: right;
background-color: $*entrytitle_bgcolor;
padding: 0px 5px 0px 5px;
position: relative;
top: 15px;
}
div.comments a, div.comments a:link, div.comments a:visited{
color: $*comments_link_color;
}
div.comments a:hover {
color: $*comments_link_hover;
text-decoration: none;
}
/* maincontent -- entry, reply pages */
.datesubjectcomment {
background-color: $*entrytitle_bgcolor;
padding: 5px;
margin-top: 20px;
}
.userpiccomment {
position: relative;
border-width: 5px;
border-style: solid;
border-color: $*entry_bgcolor;
background-color: $*entry_bgcolor;
top: -30px;
left: 0px;
padding: 5px;
margin: 10px 10px -20px 10px;
z-index: 15;
float: $*userpic_position;
border-width: 1px;
border-color: $*entrytitle_bgcolor;
border-style: solid;
}
.box {
border-style: solid;
border-width: 1px 0px 0px 0px;
border-color: $*border_color;
padding: 10px;
$sidebar_pos;
}
input, textarea {
background-color: $*entry_bgcolor;
color: $*entry_fgcolor;
}
textarea.textbox {
width: 100% !important;
}
.reply {
position: relative;
margin: 20px 30px 10px 30px;
padding: 25px 10px 10px 10px;
text-align: left;
$content_font_family;
font-size: $*content_font_size$*font_unit;
line-height: 125%;
background-color: $*entry_bgcolor;
color: $*entry_fgcolor;
}
.replytosubject {
font-weight: bold;
}
.commentreply {
position: relative;
margin: 10px;
font-size: $*content_font_size$*font_unit;
$content_font_family;
color: $*entry_fgcolor;
}
.commentbox {
border-color: $*border_color;
border-width: 1px;
border-style: solid;
padding: 10px;
margin: 10px;
background-color: $*entry_bgcolor;
}
.datesubjectcomment a:link, .datesubjectcomment a:visited {
color: $*comments_link_color;
}
.datesubjectcomment a:hover {
color: $*comments_link_hover;
}
.commentboxpartial {
border-color: $*border_color;
border-width: 1px;
border-style: solid;
padding: 10px;
margin: 10px;
background-color: $*entry_bgcolor;
}
.commentinfo {
background-color: $*entry_bgcolor;
margin-top: 10px;
width: 100%;
}
/* maincontent -- year/achive pages */
ul.year {
text-align: center;
padding-bottom: 40px;
}
ul.year li {
display: inline;
}
table.yeartable {
margin-left: auto;
margin-right: auto;
}
table.yeartable td.yeardate, table.yeartable td.yearday {
border-width: 1px;
border-style: solid;
border-color: $*border_color;
}
table.yeartable td.yearday {
background-color: $*entry_bgcolor;
text-align: center;
}
td.yearmonth {
border-style: none;
}
/* footer */
ul.navfooter{
padding: 0px;
margin: 0px;
}
ul.navfooter li {
display: inline;
margin: 0 5px 0 5px;
}
.clearfoot {
clear: both;
}
/* misc */
.clear {
height: 15px;
}
.skiplinks {
text-align: center;
}
.headerimage {
/* for formatting header image */
}
.separator{
/* for formatting separators between entries */
height: 35px;
}
""";
}
function print_custom_stylesheet()
{
# override
}
# -----------------------------------
# SIDEBAR
# -----------------------------------
function print_sidebar_box(string title, string body)
{
print safe """
<div class="sbarbody"><ul class="sbarlist">$title$body</ul></div>
""";
}
function print_userpic () {
var Page p= get_page();
var Image up_img = $p.journal.default_pic;
if (defined $up_img) {
"""<div class="defaultuserpic">
<a href="$*SITEROOT/allpics.bml?user=$p.journal.username"><img border="0" src="$up_img.url" height="$up_img.height" width="$up_img.width" alt="$p.journal.name" title="$p.journal.name" /></a>
</div>""";
}
}
function print_sidebar_calendar()
{
var string calendar;
var Page p = get_page();
var YearMonth m = $p->get_latest_month();
var string month = $m->month_format();
if($m.has_entries) {
$calendar = """<div class="sbarbody"><table class="calendar" align="center">""";
var YearWeek[] theWeeks = $m.weeks;
foreach var YearWeek w ($theWeeks) {
$calendar = $calendar + "<tr>";
var YearDay[] theDays = $w.days;
var int pre = $w.pre_empty;
if($pre > 0) {
$calendar = $calendar + """<td colspan="$pre" valign="top">&nbsp;</td>""";
}
foreach var YearDay d ($theDays) {
if ($d.num_entries) {
$calendar = $calendar + """<td valign="top" class="sbarcalendarposts"><a href="$d.url">$d.day</a></td>""";
} else {
$calendar = $calendar + """<td valign="top" class="sbarcalendar">$d.day</td>""";
}
}
$calendar = $calendar + "</tr>\n";
}
$calendar = $calendar + "</table></div>";
}
$month = """<div class="sbarbody"><ul class="sbarlist"><li class="sbartitle">$month</li></ul></div>""";
if ($calendar != "") {
print $month;
print $calendar;
}
}
function print_sidebar_blurb ()
{
var string blurb_title = "";
if ($*text_sidebar_blurb == "")
{
$blurb_title = "";
}
else
{
$blurb_title = """<div class="sbarbody"><ul class="sbarlist"><li class="sbartitle">$*text_sidebar_blurb</li></ul></div>""";
}
var string blurb = "";
$blurb = """<div class="sbarbody2">$*sidebar_blurb</div>""";
if ($*show_blurb and ($*sidebar_blurb != ""))
{
print $blurb_title;
print $blurb;
}
}
function print_sidebar_linklist()
{
var Page p = get_page();
if (size $p.linklist <= 0)
{
return;
}
elseif (not $*linklist_support)
{
return;
}
var string list = "";
foreach var UserLink l ($p.linklist)
{
if ($l.title) {
if ($l.is_heading)
{
$list = $list + """<li class="sbartitle">$l.title</li>""";
}
else
{
$list = $list + """<li class="sbaritem"><a href="$l.url">$l.title</a></li>""";
}
}
else
{
$list = $list;
}
}
var string list_title = "";
if ($*text_sidebar_links != "")
{
$list_title = """<li class="sbartitle">$*text_sidebar_links</li>""";
}
else
{
$list_title = "";
}
print_sidebar_box($list_title, $list);
}
function sidebar_order(string order)
{
if ($order == "userpic" and $*show_default_userpic)
{
print_userpic();
}
if ($order == "blurb" and $*show_blurb)
{
print_sidebar_blurb();
}
if ($order == "linklist" and $*show_linklist)
{
print_sidebar_linklist();
}
if ($order == "calendar" and $*show_calendar)
{
print_sidebar_calendar();
}
}
function print_sidebar()
{
sidebar_order($*sidebar_order_1);
sidebar_order($*sidebar_order_2);
sidebar_order($*sidebar_order_3);
sidebar_order($*sidebar_order_4);
}
# -----------------------------------
# PAGE
# -----------------------------------
# Header
function Page::lay_print_header()
"Prints header"
{
var Page page = get_page();
var string title = $this->title();
print """
<div id="header">
<ul class="navheader">""";
var string website_name = $.journal.website_name ? $.journal.website_name : $*text_website_default_name;
if ($.journal.website_url != "")
{
println """<li><a href="$.journal.website_url">$website_name</a></li>""";
}
foreach var string v ($.views_order) {
if ($.view == $v) {
"""<li class="view">"""; println lang_viewname($v) + "</li>";
} else {
println "<li><a href=\""+$.view_url{$v}+"\">"+lang_viewname($v)+"</a></li>";
}
}
"""
</ul>
<div class="title">
$title
</div>
<div class="subtitle">
$.global_subtitle
</div>
</div>
""";
}
# Footer
function Page::lay_print_footer()
{
"""
<div class="clearfoot">&nbsp;</div>
""";
}
function Page::print () {
var Page page = get_page();
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>""";
$this->print_head();
if ($*external_stylesheet and $*external_stylesheet_url !="")
{
println """<link rel="stylesheet" type="text/css" media='screen' href="$*external_stylesheet_url" />""";
}
elseif ($*external_stylesheet)
{
println """<link rel='stylesheet' type='text/css' media='screen' href='$.stylesheet_url' />""";
}
else
{
println """<style type="text/css">"""; print_stylesheet(); "</style>";
}
$this->print_custom_head();
"""
</head>
<body>
<a name="top"></a>
<div class="headerimage"></div>
<div id="content">
""";
$this->lay_print_header();
if ($*show_sidebar)
{
"""
<div id="sidebar">""";
print_sidebar();
"""
<div class="clear">&nbsp;</div>
</div>
""";
}
"""
<div id="maincontent">""";
$this->print_body();
"
</div>";
$this->lay_print_footer();
"</div>
</body>
</html>";
}
function Entry::print_linkbar()
{
# Links (memories, edit, prev, next)
var Page p = get_page();
var Link prev;
var Link edit;
var Link mem;
var Link next;
if ($p.view == "entry" or $p.view == "reply")
{
$prev = $this->get_link("nav_prev");
$edit = $this->get_link("edit_entry");
$mem = $this->get_link("mem_add");
$next = $this->get_link("nav_next");
"""
<div class="clear">&nbsp;</div>
<div class="skiplinks">
<a href="$prev.url">$*text_previous_entry</a> | """;
if ( viewer_is_owner() and $p.view != "friends" )
{
print """<a href="$edit.url">$*text_edit</a> | """;
}
"""
<a href="$mem.url">$*text_memories</a> |
<a href="$next.url">$*text_next_entry</a>
</div>
<div class="clear">&nbsp;</div>""";
}
}
function print_entry(Page p, Entry e, Color bgcolor, Color fgcolor)
{
$e->print_linkbar();
# Userpic
var string userpic = "";
if ($*show_entry_userpic)
{
if ($p.view == "friends" or $p.view == "entry")
{
if (defined $e.userpic)
{
$userpic = $userpic + """<img src="$e.userpic.url" width="$e.userpic.width" height="$e.userpic.height" alt="$e.poster.name" title="$e.poster.name""";
if ($e.poster.username != $e.journal.username)
{
$userpic = $userpic + " in $e.journal.name";
}
$userpic = $userpic + "\">";
}
}
elseif ($p.journal_type == "C" and $p.view == "recent")
{
if (defined $e.userpic)
{
$userpic = $userpic + """<img src="$e.userpic.url" width="$e.userpic.width" height="$e.userpic.height" alt="$e.poster.name" title="$e.poster.name" />""";
}
}
else
{
if (defined $e.userpic)
{
$userpic = $userpic + """<div class="userpic"><img src="$e.userpic.url" width="$e.userpic.width" height="$e.userpic.height" alt="$e.poster.name" title="$e.poster.name" /></div>""";
}
}
}
print """
<div class="subcontent">
""";
if (($p.view == "recent" and $p.journal_type != "C" ) or $p.view == "day")
{
print """$userpic""";
}
else
{
if ($p.view == "recent" and $p.journal_type == "C" )
{
"""<div class="userpicfriends" style="background-color: $*entry_bgcolor;">""";
}
else
{
"""<div class="userpicfriends" style="background-color: $bgcolor;">""";
}
print """$userpic""";
# Poster
if ($p.view == "friends" or $p.view == "entry")
{
var UserLite linkto;
$linkto = $e.poster;
#print "$e.poster.username";
"""<br /><a href=\"""" + $linkto->base_url() + "\">";
"<font color=\"$fgcolor\">$linkto.username</font></a>";
}
elseif ($p.journal_type == "C" and $p.view == "recent")
{
var UserLite linkto;
$linkto = $e.poster;
#print "$e.poster.username";
"""<br /><a href=\"""" + $linkto->base_url() + "\">";
"$linkto.username</a>";
}
if (($p.view == "friends" or $p.view == "entry") and $e.poster.username != $e.journal.username)
{
var UserLite linkto;
$linkto = $e.journal;
"""<br />[<a href=\"""" + $linkto->base_url() + "\">";
"<font color=\"$fgcolor\">$linkto.username</font></a>]";
}
if ($p.view == "recent" and $p.journal_type == "C")
{
print "</div>";
}
if ($p.view != "recent" and $p.view != "day")
{
print """</div>""";
}
}
# Date, time, subject
var string time = "";
$time = $time + """ @ """;
$time = $time + $e.time->time_format("short");
var string date = "";
$date = $date + $e.time->date_format("long_day");
"""
<div class="datesubject"><div class="date">""";
print $e.time->date_format("%%dd%% %%month%% %%yyyy%%");
"$time
</div>";
"""
<div class="subject">""";
if ($e.security != "")
{
$e.security_icon->print();
}
"""
$e.subject &nbsp;
</div>
</div>
""";
"""
<div class="entry">
<div class="entry_text">$e.text</div> """;
# Currents
var string currents ="";
$e->print_metadata();
# Comments
"""
<div class="clear">&nbsp;</div>
<div class="comments">""";
if ($p.view != "entry" or $p.view != "reply")
{
$e.comments->print();
}
elseif ($e.comments.enabled)
{
$e.comments->print_postlink();
}
else
{
"&nbsp;";
}
"""
</div>
</div>
</div>
<div class="separator"></div>
<div class="clear">&nbsp;</div>""";
}
function Page::print_entry(Entry e) {
print_entry($this, $e, null Color, null Color);
}
function FriendsPage::print_entry (Entry e)
{
if ($*use_friends_colours)
{
var Friend f = $.friends{$e.journal.username};
print_entry($this, $e, $f.bgcolor, $f.fgcolor);
}
else
{
print_entry($this, $e, $*entry_bgcolor, $*entry_fgcolor);
}
}
function EntryPage::print_entry(Entry e) {
print_entry($this, $e, $*entry_bgcolor, $*entry_fgcolor);
}
function Entry::print_metadata() {
if (size $.metadata)
{
print """<div class="clear">&nbsp;</div><div class="clear">&nbsp;</div>
<div class="currents">""";
var string currents;
foreach var string k ($.metadata)
{
var string text = $k;
var string val = $.metadata{$k};
if ($k == "mood")
{
$text = $*text_meta_mood;
}
elseif ($k == "music")
{
$text = $*text_meta_music;
}
if ($k == "mood" and defined $.mood_icon)
{
var Image i = $.mood_icon;
$val = "<img src='$i.url' width='$i.width' height='$i.height' align='middle' alt='' /> $val";
}
$currents = $currents + """<div class="current$k"><strong>$text:</strong> $val</div>""";
}
$currents = $currents + "</div>";
println "$currents";
}
}
function RecentPage::lay_print_footer()
{
var string range = "most recent entries";
var string sep;
var string back;
var string forward;
if ($.nav.skip > 0)
{
$range = "$.nav.skip entries back";
}
if ($.nav.forward_url != "" or $.nav.backward_url != "")
{
if ($.nav.backward_url != "")
{
$back = """<li><a href="$.nav.backward_url">$*text_skiplinks_back</a></li>""";
}
if ($.nav.forward_url != "")
{
$forward = """<li><a href="$.nav.forward_url">$*text_skiplinks_forward</a></li>""";
}
}
"""
<div class="clearfoot">&nbsp;</div>
<div id="footer">
<ul class="navfooter">
$back
<li class="viewing">viewing $range</li>
$forward
</ul>
</div>
<div class="clearfoot">&nbsp;</div>
""";
}
function RecentPage::print_body
{
foreach var Entry e ($.entries)
{
$this->print_entry($e);
}
}
function EntryPage::print_body()
{
$this->print_entry($.entry);
if ($.multiform_on and $.entry.comments.enabled and $.comment_pages.total_subitems > 0)
{
$this->print_multiform_start();
}
if ($.entry.comments.enabled)
{
"""
<div class="box">
<center>""";
$.comment_pages->print();
"""
<b>( <a href="$.entry.comments.post_url">Post a new comment</a> )</b>
</center>""";
$this->print_comments($.comments);
"""
</div>""";
}
if ($this.multiform_on and $.entry.comments.enabled and $.entry.comments.count > 0)
{
"""
<div class="box">""";
$this->print_multiform_actionline();
$this->print_multiform_end();
"""
<center>
<b>( <a href="$.entry.comments.post_url">Post a new comment</a> )</b>""";
$.comment_pages->print();
"""
<br />
</center>
</div>""";
}
}
# -----------------------------------
# ENTRY
# -----------------------------------
function EntryPage::print_comments( Comment[] comments )
{
if ( size $comments == 0 )
{
return;
}
foreach var Comment c ( $comments )
{
var int indent = ($c.depth - 1) * 30;
var string partialcomment = $c.full ? "" : "partial";
var string margin = "";
if ($*userpic_position == "left")
{
$margin = "right";
}
else
{
$margin = "left";
}
"""<a name="$c.anchor"></a>""";
"""<div class="commentbox$partialcomment" id="$c.dom_id" style="margin-$*userpic_position: ${indent}px">\n""";
if ( $c.full )
{
$this->print_comment( $c );
}
else
{
$this->print_comment_partial( $c );
}
"</div>";
$this->print_comments( $c.replies );
}
}
function EntryPage::print_comment (Comment comment) {
var string subject = $comment.subject ? $comment.subject : $*text_nosubject;
var string date = $comment.time->date_format();
var string poster = isnull $comment.poster ? $*text_poster_anonymous : $comment.poster->as_string();
#Comment Userpic
if (defined $comment.userpic and $*show_entry_userpic)
{
var int w = $comment.userpic.width;
var int h = $comment.userpic.height;
var string alt = $comment.metadata{"picture_keyword"};
if ($*comment_userpic_style == "small")
{
$w = $w / 2;
$h = $h / 2;
}
if ($alt != "")
{
$alt = ": " + $alt;
}
"""
<div class="datesubjectcomment">
<img class="userpiccomment" src="$comment.userpic.url" width="$w" height="$h" alt="$comment.poster.name$alt" title="$comment.poster.name$alt" />""";
print """$poster on """;
print $comment.time->date_format("long") + " - " + $comment.time->time_format();
}
else
{
print """
<div class="datesubjectcomment">$poster on """;
print $comment.time->date_format("long") + " - " + $comment.time->time_format();
}
if (defined $comment.subject_icon or $comment.subject != "")
{
print "<br />$comment.subject_icon <strong>$comment.subject</strong>" + "<br />";
}
if ($comment.metadata{"poster_ip"})
{
print "<br />" + $*text_comment_ipaddr + "(" + $comment.metadata{"poster_ip"} + ")" + "<br />";
}
"</div>";
print """
<div class="commentreply">$comment.text</div>\n""";
var string alignlinks = "";
if ($*userpic_position == "left")
{
$alignlinks = "right";
}
else
{
$alignlinks = "left";
}
"<div style='margin-top: 3px; font-size: smaller; text-align: $alignlinks;'>";
if ($comment.frozen)
{
"($*text_comment_frozen)";
}
else
{
"(<a href='$comment.reply_url'>$*text_comment_reply</a>) ";
}
if ($comment.parent_url != "")
{
"(<a href='$comment.parent_url'>$*text_comment_parent</a>) ";
}
if ($comment.thread_url != "")
{
"""(<a href="$comment.thread_url">$*text_comment_thread</a>) """;
}
"(<a href='$comment.permalink_url'>$*text_permalink</a>)";
"""<div style="padding: 10px; text-align: $alignlinks;">""";
if ($this.multiform_on)
{
"""<label for="ljcomsel_$comment.talkid">$*text_multiform_check</label>""";
$comment->print_multiform_check();
}
$comment->print_linkbar();
"</div></div>\n";
}
function EntryPage::print_comment_partial( Comment c )
{
var string subject = $c.subject ? $c.subject : $*text_nosubject;
var string date = $c.time->date_format("long") + " - " + $c.time->time_format();
var string poster = isnull $c.poster ? $*text_poster_anonymous : $c.poster->as_string();
"""<a href="$c.permalink_url">$subject</a> - $poster on $date""";
}
# -----------------------------------
# DAY
# -----------------------------------
function DayPage::print_body() {
"""
<div class="clear">&nbsp;</div>
<div class="skiplinks">
<a href="$.prev_url">$*text_day_prev</a> |
<a href="$.next_url">$*text_day_next</a>
</div>
<div class="clear">&nbsp;</div>""";
if ($.has_entries)
{
foreach var Entry e ($.entries)
{
$this->print_entry($e);
}
}
else {
"""<p style="text-align: center">$*text_noentries_day</p>""";
}
"""
<div class="clear">&nbsp;</div>
<div class="skiplinks">
<a href="$.prev_url">$*text_day_prev</a> |
<a href="$.next_url">$*text_day_next</a>\n
</div>
<div class="clear">&nbsp;</div>
""";
}
function CommentInfo::print() {
if (not $.enabled) { return; }
if ($.count > 0 or $.screened) {
$this->print_readlink();
" | ";
}
$this->print_postlink();
}
# -----------------------------------
# REPLY
# -----------------------------------
function ReplyPage::print_body
{
if (not $.entry.comments.enabled)
{
print "
<h2>$*text_reply_nocomments_header</h2>
<p>$*text_reply_nocomments</p>";
return;
}
$.entry->print_linkbar();
"""<div class="subcontent">""";
if (defined $.replyto.userpic)
{
print """<div class="userpic">$.replyto.userpic</div>""";
}
var string poster = isnull $.replyto.poster ? $*text_poster_anonymous : $.replyto.poster->as_string();
var Page p;
print """
<div class="datesubject">
<div class="replytoposter">""";
print $.replyto.poster.name + " (";
print $poster + ") ";
print "wrote";
if ($.journal_type == "C")
{
print " in ";
print $.replyto.journal;
print " ";
}
print " "+lang_at_datetime($.replyto.time);
print """
</div>
<div class="replytosubject">$.replyto.subject</div>
</div>
<div class="entry">$.replyto.text</div>
</div>
<div class="clear">&nbsp;</div>
<div class="box">
<center><b>( <a href="$.entry.permalink_url">Read comments</a> )</b> </center>
Post a comment in response:<br/>""";
$.form->print();
"
</div>
";
}
# -----------------------------------
# MONTH
# -----------------------------------
function MonthPage::print_body {
"<form method='post' action='$.redir.url'>
<center><br />";
$.redir->print_hiddens();
if ($.prev_url != "")
{
"[<a href='$.prev_url'>&lt;&lt;&lt;</a>]\n";
}
if (size $.months > 1)
{
"<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'";
}
"<option value='$mei.redir_key'$sel>" + $mei.date->date_format($*lang_fmt_month_long) + "</option>";
}
"</select>\n<input type='submit' value='View' />";
}
if ($.next_url != "")
{
"\n[<a href='$.next_url'>&gt;&gt;&gt;</a>]\n";
}
"""
</center></form>\n
<br /><br />
<div class="subcontent">
<div class="entry"><dl>""";
foreach var MonthDay d ($.days)
{
if ($d.has_entries)
{
"<dt><a href=\"$d.url\"><b>";
print lang_ordinal($d.day);
"</b></a></dt>\n<dd>";
$d->print_subjectlist();
"</dd>\n";
}
}
"</dl>
</div>
</div>";
}
# -----------------------------------
# YEAR
# -----------------------------------
function YearPage::print_body
{
$this->print_year_links();
foreach var YearMonth m ($.months)
{
$this->print_month($m);
}
}
function YearPage::print_year_links() {
"""<ul class="year">\n""";
foreach var YearYear y ($.years) {
if ($y.displayed) {
"""<li class="active">$y.year</li>\n""";
} else {
"""<li><a href="$y.url">$y.year</a></li>\n""";
}
}
"""</ul>\n""";
}
function YearPage::print_month(YearMonth m) {
if (not $m.has_entries)
{
return;
}
"""<table class="yeartable" align="center">\n
<tr><td colspan="4" class="yearmonth" align="left">""";
print $m->month_format();
"""</td>
<td colspan="3" class="yearmonth" align="right"><a href="$m.url">$*text_view_month</a></td>
</tr>\n<tr>""";
foreach var int d (weekdays()) {
"""<td width="50px" class="yearday">"""+$*lang_dayname_short[$d]+"</td>\n";
}
"</tr>\n";
foreach var YearWeek w ($m.weeks) {
$w->print();
}
"</table>
<br /><br /><br />";
}
function YearWeek::print()
{
"""<tr valign="top">\n""";
if ($.pre_empty > 0)
{
"""<td class="yeardate" colspan="$.pre_empty">&nbsp;</td>\n""";
}
foreach var YearDay d ($.days)
{
"""<td class="yeardate">\n""";
"""<div style="text-align: right;">$d.day</div>\n""";
if ($d.num_entries > 0)
{
"""<div style="text-align: center;"><a href="$d.url">$d.num_entries</a></div>\n""";
}
else
{
"""<div>&nbsp;</div>""";
}
"""</td>\n""";
}
if ($.post_empty > 0)
{
"""<td class="yeardate" colspan="$.post_empty">&nbsp;</td>\n""";
}
"</tr>";
}