# ----------------------------------- # 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"> </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"> </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"> </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"> </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"> </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 </div> </div> """; """ <div class="entry"> <div class="entry_text">$e.text</div> """; # Currents var string currents =""; $e->print_metadata(); # Comments """ <div class="clear"> </div> <div class="comments">"""; if ($p.view != "entry" or $p.view != "reply") { $e.comments->print(); } elseif ($e.comments.enabled) { $e.comments->print_postlink(); } else { " "; } """ </div> </div> </div> <div class="separator"></div> <div class="clear"> </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"> </div><div class="clear"> </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"> </div> <div id="footer"> <ul class="navfooter"> $back <li class="viewing">viewing $range</li> $forward </ul> </div> <div class="clearfoot"> </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"> </div> <div class="skiplinks"> <a href="$.prev_url">$*text_day_prev</a> | <a href="$.next_url">$*text_day_next</a> </div> <div class="clear"> </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"> </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"> </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"> </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'><<<</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'>>>></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"> </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> </div>"""; } """</td>\n"""; } if ($.post_empty > 0) { """<td class="yeardate" colspan="$.post_empty"> </td>\n"""; } "</tr>"; }