Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*-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 use_shared_pic;
- 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 = "#0b4107";
- set color_bg_font = "#ffffff";
- set color_med = "#8ba485";
- set color_med_font = "#e5fcde";
- set color_fg = "#a1cb78";
- set color_fg_font = "#01331e";
- }
- 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>
- """;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement