[dw-free] Add custom colors to S2 layouts
[commit: http://hg.dwscoalition.org/dw-free/rev/c8ba1a1ed789]
http://bugs.dwscoalition.org/show_bug.cgi?id=1282
Custom reading list colors for core2. Implemented in Negatives, Tabula Rasa.
Patch by
liv.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=1282
Custom reading list colors for core2. Implemented in Negatives, Tabula Rasa.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- bin/upgrading/s2layers/core2.s2
- bin/upgrading/s2layers/core2base/layout.s2
- bin/upgrading/s2layers/negatives/layout.s2
-------------------------------------------------------------------------------- diff -r 8330cd5dc234 -r c8ba1a1ed789 bin/upgrading/s2layers/core2.s2 --- a/bin/upgrading/s2layers/core2.s2 Sun Jun 28 06:58:32 2009 +0000 +++ b/bin/upgrading/s2layers/core2.s2 Sun Jun 28 09:44:31 2009 +0000 @@ -1085,8 +1085,8 @@ property bool use_journalstyle_entry_pag property bool use_journalstyle_entry_page { des = "Show entry pages in my journal style rather than the app style"; } set use_journalstyle_entry_page = true; -# this may be changed to default to true later; however, none of of the styles use custom colours, so it's not of much help. -property bool use_custom_friend_colors { des = "Use my custom friend colors"; } +# Defaults to false, but layouts can set it to true to switch on custom colors for different posters on reading list. +property bool use_custom_friend_colors { des = "Use my custom reading list colors"; } set use_custom_friend_colors = false; @@ -1645,6 +1645,31 @@ set color_module_link_visited = ""; set color_module_link_visited = ""; set color_module_title = ""; set color_module_border = ""; + +# Initialize custom colors, these properties can be selected or overwritten by layout layers, but should not normally be exposed in the wizard. + +property string custom_foreground_element { + des = "Part of entry that will display foreground color, if you have custom colors enabled"; + values = "subject|Entry title|userpic_border|Icon border|postername|Posted by|entry|Entry text|metadata|Mood/music/location|bottom_links|Comment links|custom|Custom template"; + noui = 1; + } +property string custom_background_element { + des = "Part of entry that will display background color, if you have custom colors enabled"; + values = "subject|Entry header background|userpic_background|Icon background|entry_border|Entry border|metadata_background|Mood/music/location section|footer_border|Entry footer|custom|Custom template"; + noui = 1; + } +property string custom_colors_template { + des = "Your own CSS to use for custom color"; + doc = "Enter a CSS statement with the class or id of CSS elements you want to use for foreground and background, and any CSS instructions. + Use %%foreground%% for the custom foreground color, and %%background%% for the custom background color + Each CSS rule should begin with %%new%%"; + example = "%%new%% div.special {border: 1px dotted %%background%%; font-size: 120%; color: %%foreground%%}"; + noui = 1; + } + +set custom_foreground_element = ""; +set custom_background_element = ""; +set custom_colors_template = ""; ##=============================== ## Custom CSS @@ -2699,6 +2724,64 @@ function Page::print_stylesheets() end_css(); println """</style>"""; } +} + +function FriendsPage::print_stylesheets() { +#This creates entry-specific CSS to allow custom colors on reading page. Rather than override this, layouts should change custom_foreground_element, custom_background_element (and custom_colors_template for advanced options) instead + $super->print_stylesheets(); + + if ($*use_custom_friend_colors) { + println """<style type="text/css">"""; + start_css(); + + foreach var Entry e ($this.entries) { + var Color bg; + var Color fg; + + $bg = $.friends{$e.journal.username}.bgcolor; + $fg = $.friends{$e.journal.username}.fgcolor; + + var string{} custom_foreground_location; + var string{} custom_background_location; + + $custom_foreground_location = { + "subject" => "h3.entry-title a {color:", + "userpic_border" => "div.userpic a img {border: solid; border-color:", + "postername" => "span.entry-poster a {color:", + "entry" => "div.entry-content {color:", + "metadata" => ".metadata {color:", + "bottom_links" => ".footer a {color:" + }; + + $custom_background_location = { + "subject" => "h3.entry-title {background-color:", + "userpic_background" => "div.userpic a img {padding: 2px; background-color:", + "entry_border" => "div.entry-content {border: solid; border-color:", + "metadata_background" => ".metadata {background-color:", + "footer_border" => "div.footer {border: solid; border-color:" + }; + + var string custom_foreground_css = ""; + var string custom_background_css = ""; + $custom_foreground_css = """.journal-$e.journal.username $custom_foreground_location{$*custom_foreground_element} $fg; } \n"""; + $custom_background_css = """.journal-$e.journal.username $custom_background_location{$*custom_background_element} $bg; } \n\n"""; + + var string custom_colors_css; + if ($*custom_colors_template != ""){ + var string foreground = $fg; + var string background = $bg; + $custom_colors_css = $*custom_colors_template->replace("%%foreground%%", $foreground); + $custom_colors_css = $custom_colors_css->replace("%%background%%", $background); + $custom_colors_css = $custom_colors_css->replace("%%new%%", ".journal-$e.journal.username"); + $custom_colors_css = $custom_colors_css + "\n\n"; + } + else {$custom_colors_css = $custom_foreground_css + $custom_background_css;} + print $custom_colors_css; + } + + end_css(); + println """</style>"""; + } } function generate_background_css ( @@ -4661,5 +4744,3 @@ function MessagePage::print_links() { } println """</div>"""; } - - diff -r 8330cd5dc234 -r c8ba1a1ed789 bin/upgrading/s2layers/core2base/layout.s2 --- a/bin/upgrading/s2layers/core2base/layout.s2 Sun Jun 28 06:58:32 2009 +0000 +++ b/bin/upgrading/s2layers/core2base/layout.s2 Sun Jun 28 09:44:31 2009 +0000 @@ -14,11 +14,15 @@ propgroup presentation { property use tags_page_type; property use sidebar_width; property use sidebar_width_doubled; + property use use_custom_friend_colors; } set sidebar_width = "15em"; set sidebar_width_doubled = "30em"; set layout_type = "one-column"; +set use_custom_friend_colors = false; +set custom_foreground_element = "userpic_border"; +set custom_background_element = "userpic_background"; ##=============================== ## Journal style - colors diff -r 8330cd5dc234 -r c8ba1a1ed789 bin/upgrading/s2layers/negatives/layout.s2 --- a/bin/upgrading/s2layers/negatives/layout.s2 Sun Jun 28 06:58:32 2009 +0000 +++ b/bin/upgrading/s2layers/negatives/layout.s2 Sun Jun 28 09:44:31 2009 +0000 @@ -15,9 +15,11 @@ propgroup presentation { property use use_journalstyle_entry_page; property use layout_type; property use tags_page_type; + property use use_custom_friend_colors; } set layout_type = "two-columns-right"; +set custom_colors_template = "%%new%% div.footer, %%new%% div.footer ul, %%new%% div.footer ul a {background-color: %%background%%} %%new%% {border: 5px solid %%background%%;} %%new%% div.footer a, %%new%% div.footer {color: %%foreground%%;}"; ##=============================== ## Journal style - colors --------------------------------------------------------------------------------