layerinfo type = "layout"; layerinfo name = "Expressive"; layerinfo redist_uniq = "voxhtml/layout"; layerinfo previews = "voxhtml/layout.jpg"; layerinfo des = "Vox's standard HTML structure for blogs, to be styled with CSS."; propgroup presentation { # This property is now set in a theme layer, but the default is Bloom Blue property string base_theme { des = "Base Theme"; noui = 1; } set base_theme = "bloom-blue"; # The colors for the default theme set theme_bgcolor = "#deebfe"; set theme_fgcolor = "#333333"; set theme_bordercolor = "#deebfe"; set theme_linkcolor = "#4b6d9f"; # The designer of the default theme property string theme_designer { des = "Theme Designer"; noui = 1; } property string theme_designer_type { des = "Theme Designer Type"; noui = 1; } set theme_designer = "chasethestars"; set theme_designer_type = "ljuser"; property string layout_type { des = "Layout Type"; values = "3CL|Three Column (Content on left)|3CM|Three column (Content in middle)|2CR|Two column(Sidebar on Right)|2CL|Two column(Sidebar on Left)"; } set layout_type = "2CL"; property string{} theme_stylesheet { noui = 1; } set theme_stylesheet = { # Expressive themes "autumn" => "autumn/screen.css", "autumn-kyoto-midnight" => "autumn-kyoto-midnight/screen.css", "autumn-kyoto-moonlight" => "autumn-kyoto-moonlight/screen.css", "autumn-kyoto-setting-sun" => "autumn-kyoto-setting-sun/screen.css", "autumn-kyoto-sunset" => "autumn-kyoto-sunset/screen.css", "autumn-scene-acorn" => "autumn-scene-acorn/screen.css", "autumn-scene-cherry" => "autumn-scene-cherry/screen.css", "autumn-scene-ginkgo" => "autumn-scene-ginkgo/screen.css", "autumn-scene-maple" => "autumn-scene-maple/screen.css", "bats-blue" => "bats-blue/screen.css", "bats-green" => "bats-green/screen.css", "bats-purple" => "bats-purple/screen.css", "bats-red" => "bats-red/screen.css", "bloom-blue" => "bloom-blue/screen.css", "bloom-green" => "bloom-green/screen.css", "bloom-orange" => "bloom-orange/screen.css", "bloom-pink" => "bloom-pink/screen.css", "books" => "books/screen.css", "bubblegum" => "bubblegum/screen.css", "bubbly-blue" => "bubbly-blue/screen.css", "bubbly-pink" => "bubbly-pink/screen.css", "bunnylicious-blue" => "bunnylicious-blue/screen.css", "bunnylicious-green" => "bunnylicious-green/screen.css", "bunnylicious-pink" => "bunnylicious-pink/screen.css", "bunnylicious-purple" => "bunnylicious-purple/screen.css", "butterflies-grey" => "butterflies-grey/screen.css", "butterflies-purple" => "butterflies-purple/screen.css", "butterflies-red" => "butterflies-red/screen.css", "butterflies-teal" => "butterflies-teal/screen.css", "camo-blue" => "camo-blue/screen.css", "camo-green" => "camo-green/screen.css", "camo-grey" => "camo-grey/screen.css", "camo-khaki" => "camo-khaki/screen.css", "camo-pink" => "camo-pink/screen.css", "carson-blue" => "carson-blue/screen.css", "carson-brown" => "carson-brown/screen.css", "carson-green" => "carson-green/screen.css", "carson-red" => "carson-red/screen.css", "chopsticks" => "chopsticks/screen.css", "cityscape-austin" => "cityscape-austin/screen.css", "cityscape-boston" => "cityscape-boston/screen.css", "cityscape-chicago" => "cityscape-chicago/screen.css", "cityscape-dc" => "cityscape-dc/screen.css", "cityscape-houston" => "cityscape-houston/screen.css", "cityscape-kiev" => "cityscape-kiev/screen.css", "cityscape-la" => "cityscape-la/screen.css", "cityscape-london" => "cityscape-london/screen.css", "cityscape-miami" => "cityscape-miami/screen.css", "cityscape-nashville" => "cityscape-nashville/screen.css", "cityscape-nyc" => "cityscape-nyc/screen.css", "cityscape-paris" => "cityscape-paris/screen.css", "cityscape-philadelphia" => "cityscape-philadelphia/screen.css", "cityscape-portland" => "cityscape-portland/screen.css", "cityscape-seattle" => "cityscape-seattle/screen.css", "cityscape-sf" => "cityscape-sf/screen.css", "cityscape-sydney" => "cityscape-sydney/screen.css", "cityscape-tokyo" => "cityscape-tokyo/screen.css", "cityscape-toronto" => "cityscape-toronto/screen.css", "cityscape-vegas" => "cityscape-vegas/screen.css", "coffee" => "coffee/screen.css", "cwc" => "cwc/screen.css", "dayofthedead" => "dayofthedead/screen.css", "dj" => "dj/screen.css", "dj-girl" => "dj-girl/screen.css", "draft-blue" => "draft-blue/screen.css", "draft-brown" => "draft-brown/screen.css", "draft-grey" => "draft-grey/screen.css", "draft-olive" => "draft-olive/screen.css", "elephant-autumn" => "elephant-autumn/screen.css", "elephant-spring" => "elephant-spring/screen.css", "elephant-summer" => "elephant-summer/screen.css", "elephant-winter" => "elephant-winter/screen.css", "endless-summer-brown" => "endless-summer-brown/screen.css", "endless-summer-orange" => "endless-summer-orange/screen.css", "endless-summer-pink" => "endless-summer-pink/screen.css", "endless-summer-sand" => "endless-summer-sand/screen.css", "feather" => "feather/screen.css", "firefly-night" => "firefly-night/screen.css", "fleur-brown" => "fleur-brown/screen.css", "fleur-red" => "fleur-red/screen.css", "fleur-purple" => "fleur-purple/screen.css", "fleur-white" => "fleur-white/screen.css", "flourish" => "flourish/screen.css", "flowers-blue" => "flowers-blue/screen.css", "flowers-orange" => "flowers-orange/screen.css", "flowers-pink" => "flowers-pink/screen.css", "flowers-purple" => "flowers-purple/screen.css", "flyawayheart" => "flyawayheart/screen.css", "food-dinner" => "food-dinner/screen.css", "food-market" => "food-market/screen.css", "food-picnic" => "food-picnic/screen.css", "food-sweets" => "food-sweets/screen.css", "foxkeh-hill" => "foxkeh-hill/screen.css", "foxkeh-mt-fuji" => "foxkeh-mt-fuji/screen.css", "ghouls-black" => "ghouls-black/screen.css", "ghouls-blue" => "ghouls-blue/screen.css", "ghouls-orange" => "ghouls-orange/screen.css", "ghouls-purple" => "ghouls-purple/screen.css", "guitar" => "guitar/screen.css", "haunted-house" => "haunted-house/screen.css", "headphones" => "headphones/screen.css", "hills-dusk" => "hills-dusk/screen.css", "hills-green" => "hills-green/screen.css", "hills-midnight" => "hills-midnight/screen.css", "hills-pink" => "hills-pink/screen.css", "horses" => "horses/screen.css", "icicles" => "icicles/screen.css", "inked-blue" => "inked-blue/screen.css", "inked-red" => "inked-red/screen.css", "inked-white" => "inked-white/screen.css", "inked-yellow" => "inked-yellow/screen.css", "jetset" => "jetset/screen.css", "landscape-country-day" => "landscape-country-day/screen.css", "landscape-country-night" => "landscape-country-night/screen.css", "landscape-desert-day" => "landscape-desert-day/screen.css", "landscape-desert-night" => "landscape-desert-night/screen.css", "live-and-learn" => "live-and-learn/screen.css", "lovebirds" => "lovebirds/screen.css", "manga-dora" => "manga-dora/screen.css", "manga-fumi" => "manga-fumi/screen.css", "manga-natsugon" => "manga-natsugon/screen.css", "manga-uno" => "manga-uno/screen.css", "minimalist-blue" => "minimalist-blue/screen.css", "minimalist-brown" => "minimalist-brown/screen.css", "minimalist-green" => "minimalist-green/screen.css", "minimalist-grey" => "minimalist-grey/screen.css", "minimalist-red" => "minimalist-red/screen.css", "minimalist-white" => "minimalist-white/screen.css", "modernist-birch" => "modernist-birch/screen.css", "modernist-cherry" => "modernist-cherry/screen.css", "modernist-espresso" => "modernist-espresso/screen.css", "modernist-maple" => "modernist-maple/screen.css", "ocean-fish" => "ocean-fish/screen.css", "ocean-squid" => "ocean-squid/screen.css", "ocean-turtle" => "ocean-turtle/screen.css", "ocean-whale" => "ocean-whale/screen.css", "octopus" => "octopus/screen.css", "old-timey" => "old-timey/screen.css", "papel-picado" => "papel-picado/screen.css", "paperplane" => "paperplane/screen.css", "piximix-appley" => "piximix-appley/screen.css", "piximix-limey" => "piximix-limey/screen.css", "piximix-orange" => "piximix-orange/screen.css", "pixipets-cat" => "pixipets-cat/screen.css", "pixipets-panda" => "pixipets-panda/screen.css", "pixipets-robot" => "pixipets-robot/screen.css", "raven" => "raven/screen.css", "river-at-night" => "river-at-night/screen.css", "rocket" => "rocket/screen.css", "running-blue" => "running-blue/screen.css", "running-brown" => "running-brown/screen.css", "running-green" => "running-green/screen.css", "running-red" => "running-red/screen.css", "savannah" => "savannah/screen.css", "scribble-cat-brown" => "scribble-cat-brown/screen.css", "scribble-cat-cream" => "scribble-cat-cream/screen.css", "scribble-cat-grey" => "scribble-cat-grey/screen.css", "scribble-cat-orange" => "scribble-cat-orange/screen.css", "scribble-dog-fudge" => "scribble-dog-fudge/screen.css", "scribble-dog-maddy" => "scribble-dog-maddy/screen.css", "scribble-dog-mocha" => "scribble-dog-mocha/screen.css", "scribble-dog-shelby" => "scribble-dog-shelby/screen.css", "scribble-dog-stella" => "scribble-dog-stella/screen.css", "scribe" => "scribe/screen.css", "shiny" => "shiny/screen.css", "shopping" => "shopping/screen.css", "sorbet-aqua" => "sorbet-aqua/screen.css", "sorbet-lavender" => "sorbet-lavender/screen.css", "sorbet-orange" => "sorbet-orange/screen.css", "sorbet-pink" => "sorbet-pink/screen.css", "space-blue" => "space-blue/screen.css", "space-green" => "space-green/screen.css", "space-purple" => "space-purple/screen.css", "space-red" => "space-red/screen.css", "subway-black" => "subway-black/screen.css", "subway-blue" => "subway-blue/screen.css", "subway-grey" => "subway-grey/screen.css", "subway-white" => "subway-white/screen.css", "tiki-orange" => "tiki-orange/screen.css", "tiki-purple" => "tiki-purple/screen.css", "toastie" => "toastie/screen.css", "travel-blue" => "travel-blue/screen.css", "travel-green" => "travel-green/screen.css", "travel-pink" => "travel-pink/screen.css", "travel-sand" => "travel-sand/screen.css", "trees-blue" => "trees-blue/screen.css", "trees-brown" => "trees-brown/screen.css", "trees-noir" => "trees-noir/screen.css", "trees-purple" => "trees-purple/screen.css", "turntables-blue" => "turntables-blue/screen.css", "turntables-brown" => "turntables-brown/screen.css", "turntables-green" => "turntables-green/screen.css", "turntables-red" => "turntables-red/screen.css", "typekeys-green" => "typekeys-green/screen.css", "typekeys-grey" => "typekeys-grey/screen.css", "typekeys-rainbow" => "typekeys-rainbow/screen.css", "typekeys-white" => "typekeys-white/screen.css", "typewriter-chocolate" => "typewriter-chocolate/screen.css", "typewriter-cream" => "typewriter-cream/screen.css", "typewriter-mint" => "typewriter-mint/screen.css", "typewriter-orangesicle" => "typewriter-orangesicle/screen.css", "unity-baby-blue" => "unity-baby-blue/screen.css", "unity-baby-pink" => "unity-baby-pink/screen.css", "unity-blue" => "unity-blue/screen.css", "unity-cycling-blue" => "unity-cycling-blue/screen.css", "unity-cycling-brown" => "unity-cycling-brown/screen.css", "unity-cycling-green" => "unity-cycling-green/screen.css", "unity-cycling-rainbow" => "unity-cycling-rainbow/screen.css", "unity-green" => "unity-green/screen.css", "unity-playful-cherry-blossom" => "unity-playful-cherry-blossom/screen.css", "unity-playful-clouds" => "unity-playful-clouds/screen.css", "unity-playful-cosmo" => "unity-playful-cosmo/screen.css", "unity-playful-martini" => "unity-playful-martini/screen.css", "unity-playful-robots-blue" => "unity-playful-robots-blue/screen.css", "unity-playful-robots-grey" => "unity-playful-robots-grey/screen.css", "unity-playful-robots-orange" => "unity-playful-robots-orange/screen.css", "unity-playful-robots-red" => "unity-playful-robots-red/screen.css", "unity-playful-sushi" => "unity-playful-sushi/screen.css", "unity-playful-wine" => "unity-playful-wine/screen.css", "unity-purple" => "unity-purple/screen.css", "unity-tricolor" => "unity-tricolor/screen.css", "urban-dawn" => "urban-dawn/screen.css", "urban-green" => "urban-green/screen.css", "urban-noir" => "urban-noir/screen.css", "urban-sunset" => "urban-sunset/screen.css", "vector-drips" => "vector-drips/screen.css", "weston-blue" => "weston-blue/screen.css", "weston-brown" => "weston-brown/screen.css", "weston-grey" => "weston-grey/screen.css", "weston-natural" => "weston-natural/screen.css", "witold-chickadee" => "witold-chickadee/screen.css", "witold-owl" => "witold-owl/screen.css", "witold-radio" => "witold-radio/screen.css", "witold-toucan" => "witold-toucan/screen.css", "woodcut-autumn" => "woodcut-autumn/screen.css", "woodcut-spring" => "woodcut-spring/screen.css", "woodcut-summer" => "woodcut-summer/screen.css", "woodcut-winter" => "woodcut-winter/screen.css", "world-travel" => "world-travel/screen.css", "writers-block-creme" => "writers-block-creme/screen.css", "writers-block-melon" => "writers-block-melon/screen.css", "writers-block-powder" => "writers-block-powder/screen.css", "writers-block-rose" => "writers-block-rose/screen.css", "yummy-coffee" => "yummy-coffee/screen.css", "zen-blue" => "zen-blue/screen.css", "zen-midnight" => "zen-midnight/screen.css", "zen-neutral" => "zen-neutral/screen.css", "zen-purple" => "zen-purple/screen.css", # Expressive Winter themes "aurora" => "aurora/screen.css", "christmas-cookies" => "christmas-cookies/screen.css", "christmas-tree-blue" => "christmas-tree-blue/screen.css", "christmas-tree-brown" => "christmas-tree-brown/screen.css", "christmas-tree-green" => "christmas-tree-green/screen.css", "christmas-tree-red" => "christmas-tree-red/screen.css", "eid-blue" => "eid-blue/screen.css", "eid-gold" => "eid-gold/screen.css", "fireplace-grey" => "fireplace-grey/screen.css", "fireplace-red" => "fireplace-red/screen.css", "gingerbread-blue" => "gingerbread-blue/screen.css", "gingerbread-green" => "gingerbread-green/screen.css", "gingerbread-red" => "gingerbread-red/screen.css", "gingerbread-yellow" => "gingerbread-yellow/screen.css", "hanafuda-december" => "hanafuda-december/screen.css", "hanafuda-february" => "hanafuda-february/screen.css", "hanafuda-january" => "hanafuda-january/screen.css", "hanafuda-november" => "hanafuda-november/screen.css", "hanukkah" => "hanukkah/screen.css", "holiday-ornaments-blue" => "holiday-ornaments-blue/screen.css", "holiday-ornaments-green" => "holiday-ornaments-green/screen.css", "holiday-ornaments-pink" => "holiday-ornaments-pink/screen.css", "holiday-ornaments-red" => "holiday-ornaments-red/screen.css", "holiday-stripes-blue" => "holiday-stripes-blue/screen.css", "holiday-stripes-green" => "holiday-stripes-green/screen.css", "holiday-stripes-red" => "holiday-stripes-red/screen.css", "hollydaykiss-eggnog" => "hollydaykiss-eggnog/screen.css", "hollydaykiss-mint" => "hollydaykiss-mint/screen.css", "hollydaykiss-pink" => "hollydaykiss-pink/screen.css", "hollydaykiss-snow" => "hollydaykiss-snow/screen.css", "jolly-snowman" => "jolly-snowman/screen.css", "kwanzaa" => "kwanzaa/screen.css", "modern-holiday-green" => "modern-holiday-green/screen.css", "modern-holiday-red" => "modern-holiday-red/screen.css", "ornate-trees" => "ornate-trees/screen.css", "santa-rudy" => "santa-rudy/screen.css", "skater-girl" => "skater-girl/screen.css", "snowboarding-maroon" => "snowboarding-maroon/screen.css", "snowboarding-navy" => "snowboarding-navy/screen.css", "snowboarding-olive" => "snowboarding-olive/screen.css", "snowboarding-rose" => "snowboarding-rose/screen.css", "snowglobe-blue" => "snowglobe-blue/screen.css", "snowglobe-white" => "snowglobe-white/screen.css", # Mixit themes "art-deco-blue" => "art-deco-blue/screen.css", "art-deco-purple" => "art-deco-purple/screen.css", "art-deco-red" => "art-deco-red/screen.css", "art-deco-teal" => "art-deco-teal/screen.css", "bookworm-blue" => "bookworm-blue/screen.css", "bookworm-grey" => "bookworm-grey/screen.css", "bookworm-turquoise" => "bookworm-turquoise/screen.css", "bookworm-white" => "bookworm-white/screen.css", "death" => "death/screen.css", "hearts-and-daisies" => "hearts-and-daisies/screen.css", "kaboom" => "kaboom/screen.css", "oddities-black" => "oddities-black/screen.css", "oddities-blue" => "oddities-blue/screen.css", "oddities-green" => "oddities-green/screen.css", "oddities-purple" => "oddities-purple/screen.css", "poe" => "poe/screen.css", "reading-blue" => "reading-blue/screen.css", "reading-brown" => "reading-brown/screen.css", "reading-lavender" => "reading-lavender/screen.css", "reading-sage" => "reading-sage/screen.css", "scraps-blue" => "scraps-blue/screen.css", "scraps-green" => "scraps-green/screen.css", "scraps-pink" => "scraps-pink/screen.css", "scraps-yellow" => "scraps-yellow/screen.css", "spider-black" => "spider-black/screen.css", "spider-brown" => "spider-brown/screen.css", "spider-purple" => "spider-purple/screen.css", "spider-red" => "spider-red/screen.css", "talking-heads-black" => "talking-heads-black/screen.css", "talking-heads-blue" => "talking-heads-blue/screen.css", "talking-heads-green" => "talking-heads-green/screen.css", "talking-heads-orange" => "talking-heads-orange/screen.css", }; property use page_recent_items; property use page_friends_items; property use page_day_sortorder; property use page_year_sortorder; property use view_entry_disabled; property use use_shared_pic; property bool opt_overflow { des = "Show scrollbars on entries"; note = "This option allows you to see scrollbars on entries that are too wide for the layout. It is not available for every browser."; } set opt_overflow = false; property bool opt_userpic_main { des = "Show Userpics on Entries"; } set opt_userpic_main = true; property bool opt_userpic_friends { des = "Show Userpics on Entries on your Friends Page"; } set opt_userpic_friends = true; property bool opt_userpic_entrypage { des = "Show Userpic on the Entry page"; } set opt_userpic_entrypage = true; property bool opt_userpic_comments { des = "Show Userpics on Comments"; } set opt_userpic_comments = true; property string[][] topbar_primary { des = "Primary topbar members"; noui = 1; } set topbar_primary = [ [ "viewlinks", "" ], ]; property string[][] sidebar_primary { des = "Primary sidebar members"; noui = 1; } property string[][] sidebar_secondary { des = "Secondary sidebar members"; noui = 1; } property string entry_footer { des = "Entry footer HTML"; note = "If you'd like to have HTML display at the end of each entry, enter it here. Examples:
,
, , etc."; cols = 40; rows = 10; string_mode = "html"; } set entry_footer = ""; property bool opt_friends_colors { des = "Show friends colors on Friends Page"; } set opt_friends_colors = true; property use external_stylesheet; set external_stylesheet = true; property use tags_aware; set tags_aware = true; property use custom_control_strip_colors; } propgroup colors { property use control_strip_bgcolor; property use control_strip_fgcolor; property use control_strip_bordercolor; property use control_strip_linkcolor; } propgroup text { 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_view_recent; property use text_view_archive; property use text_view_friends; property use text_view_userinfo; property use text_view_memories; property use text_meta_location; property use text_meta_mood; property use text_meta_music; property use text_website_default_name; property use text_nosubject; property use lang_fmt_time_short; property use text_entry_prev; property use text_entry_next; property string sticky_subject { des = "Sticky post's subject"; } property string sticky_post { des = "Sticky post"; note = "If you'd like to have text display at the top of each page, enter it here."; cols = 40; rows = 10; string_mode = "html"; } property use text_edit_entry; property use text_edit_tags; property use text_mem_add; property use text_tell_friend; property use text_watch_comments; property use text_unwatch_comments; property use text_multiform_opt_edit; property use text_multiform_opt_delete; property use text_multiform_opt_freeze; property use text_multiform_opt_unfreeze; property use text_multiform_opt_screen; property use text_multiform_opt_unscreen; property use text_multiform_opt_track; property use text_multiform_opt_untrack; property use text_comment_frozen; property string text_sidebar_tags { des = "Text used to link to the Tags page from the sidebar"; } set text_sidebar_tags = "View my Tags page"; property string text_sidebar_calendar { des = "Text used to link to the Calendar page from the sidebar"; } set text_sidebar_calendar = "View All Archives"; property use text_tags_page_header; # i18n props. Not in the interface. property string text_comments { des = "Text for the heading above the comments on the entry page"; noui = 1; } set sticky_subject = "Sticky Post"; set sticky_post = ""; set text_comments = "Comments"; set text_meta_location = "Location"; set text_meta_mood = "Mood"; set text_meta_music = "Music"; set text_website_default_name = "Website"; } propgroup sidebars = "Sidebars"; propgroup sidebars { property string tag_display { des = "Display of tags in sidebar"; values = "cloud|Cloud|list|List"; } set tag_display = "cloud"; property bool opt_tag_limit { des = "Cut off tag display in sidebar after certain limit."; } set opt_tag_limit = false; property int tag_limit { des = "Limit of tags to display in Tags sidebar."; } set tag_limit = 0; property string first_item { des = "First item in sidebar"; values = "none|(none)|userprofile|Profile|calendar|Calendar|links|Links|tags|Tags|archive|Page Summary|syndicate|Syndicate|customtext|Custom Text"; } set first_item = "userprofile"; property string second_item { des = "Second item in sidebar"; values = "none|(none)|userprofile|Profile|calendar|Calendar|links|Links|tags|Tags|archive|Page Summary|syndicate|Syndicate|customtext|Custom Text"; } set second_item = "calendar"; property string third_item { des = "Third item in sidebar"; values = "none|(none)|userprofile|Profile|calendar|Calendar|links|Links|tags|Tags|archive|Page Summary|syndicate|Syndicate|customtext|Custom Text"; } set third_item = "links"; property string fourth_item { des = "Fourth item in sidebar"; values = "none|(none)|userprofile|Profile|calendar|Calendar|links|Links|tags|Tags|archive|Page Summary|syndicate|Syndicate|customtext|Custom Text"; } set fourth_item = "tags"; property string fifth_item { des = "Fifth item in sidebar"; values = "none|(none)|userprofile|Profile|calendar|Calendar|links|Links|tags|Tags|archive|Page Summary|syndicate|Syndicate|customtext|Custom Text"; } set fifth_item = "archive"; property string sixth_item { des = "Sixth item in sidebar"; values = "none|(none)|userprofile|Profile|calendar|Calendar|links|Links|tags|Tags|archive|Page Summary|syndicate|Syndicate|customtext|Custom Text"; } set sixth_item = "syndicate"; property string seventh_item { des = "Seventh item in sidebar"; values = "none|(none)|userprofile|Profile|calendar|Calendar|links|Links|tags|Tags|archive|Page Summary|syndicate|Syndicate|customtext|Custom Text"; } set seventh_item = "none"; property string customtext_title { des = "Title to use for custom text sidebar module"; } set customtext_title = ""; property string customtext_url { des = "URL to link to from custom text sidebar module"; } set customtext_url = ""; property string customtext_body { des = "Body of custom sidebar module"; cols = 40; rows = 10; string_mode = "html"; } set customtext_body = ""; } propgroup customcss { property bool use_vox_base { des = "Use layout's \"Base Weblog\" stylesheet"; note = "Disable this only if you want to re-style this layout completely from scratch using a custom stylesheet and if you selected \"Unstyled\" as your theme."; } set use_vox_base = true; property string linked_stylesheet { des = "Custom external stylesheet URL"; note = "If you selected \"Unstyled\" as your theme and have a custom external stylesheet that you'd like to use instead, or if you'd just like to use a custom external stylesheet in addition to your theme's stylesheet, enter its URL here."; } set linked_stylesheet = ""; property string custom_css { des = "Custom stylesheet"; note = "If you selected \"Unstyled\" as your theme and have custom CSS that you'd like to use instead, or if you'd just like to add custom CSS in addition to your theme's stylesheet, enter it here."; cols = 50; rows = 20; string_mode = "css"; } set custom_css = ""; } function prop_init() { # make array of modules var string[] modules = []; #if (viewer_sees_vbox()) { $modules = [$*first_item, "ads", $*second_item, $*third_item, $*fourth_item, $*fifth_item, $*sixth_item, $*seventh_item]; #} else { # $modules = [$*first_item, $*second_item, $*third_item, $*fourth_item, $*fifth_item, $*sixth_item, $*seventh_item]; #} # Find total of modules that are actually used var int total = 0; var string[] used_modules = []; foreach var string module ($modules) { if ($module != "none") { $used_modules[$total] = $module; $total++; } } # keep track of where we are var int count = 0; # figure out which module properties we're using var string[] properties = []; # cycle thru each module foreach var string module ($used_modules) { # userprofile if ($module == "userprofile") { $properties = ["userprofile", "Profile", "1", "1"]; # mini-calendar } elseif ($module == "calendar") { $properties = ["calendar", "Latest Month"]; # linklist } elseif ($module == "links") { $properties = ["links", "Links"]; # tags } elseif ($module == "tags") { $properties = ["tags", "Tags"]; # summary } elseif ($module == "archive") { $properties = ["archive", "Page Summary"]; # syndicate } elseif ($module == "syndicate") { $properties = ["syndicate", "Syndicate"]; # ads } elseif ($module == "ads") { $properties = ["ads", ""]; # custom text } elseif ($module == "customtext") { $properties = ["customtext",$*customtext_title,$*customtext_body,$*customtext_url]; } # Divide in half to find out which sidebar to allocate module to var int maxcount = $total / 2; # If the total can't be divided cleanly in half, add 1 if (($maxcount * 2) != $total) { $maxcount++; } # index is % $maxcount to find position for sidebar var int index = $count % $maxcount; $count++; if ($count <= $maxcount) { # if count <= $maxcount, put in primary $*sidebar_primary[$index] = $properties; } else { # if count > $maxcount, put in secondary $*sidebar_secondary[$index] = $properties; } } # Put poweredby and designedby modules last $*sidebar_secondary[size($*sidebar_secondary)] = ["poweredby"]; $*sidebar_secondary[size($*sidebar_secondary)] = ["designedby", $*base_theme]; # Set the control strip colors if ($*control_strip_bgcolor.as_string == "") { $*control_strip_bgcolor = $*theme_bgcolor; } if ($*control_strip_fgcolor.as_string == "") { $*control_strip_fgcolor = $*theme_fgcolor; } if ($*control_strip_bordercolor.as_string == "") { $*control_strip_bordercolor = $*theme_bordercolor; } if ($*control_strip_linkcolor.as_string == "") { $*control_strip_linkcolor = $*theme_linkcolor; } } function print_custom_stylesheet() {} function print_stylesheet () { print_custom_control_strip_css(); """ /* user css */ """; print_custom_stylesheet(); } function strpos(string text, string find, int skip) : int { var int return = -1; if($skip <= 0) { $skip = 0; } if($skip >= $text->length()) { $skip = $text->length() - 1; } foreach var int pos ($skip .. $text->length() - 1) { var string char = $text->substr($pos, 1); if(($char == $find) and ($return <= -1)) { $return = $pos; } } return $return; } function strpos(string text, string find) : int { return strpos($text, $find, -1); } 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; } function container_open (string name) { println safe """
"""; } function container_close () { "
\n"; } function open_module(string intname, string title, string headlink_url, bool nocontent) { if (not $nocontent) { println """
"""; println """
"""; if ($title != "") { println """

"""; if ($headlink_url != "") { print safe """\n"""; } print safe $title; if ($headlink_url != "") { """\n"""; } "

\n"; } } println """
"""; } function close_module(bool nocontent) { if (not $nocontent) { println "
\n
\n
"; } } function open_module(string intname, string title, string headlink_url) { open_module($intname, $title, $headlink_url, false); } function close_module() { close_module(false); } function print_module_list(string[] list, string intname) { var Page p = get_page(); var string ulclass = "widget-list"; var string liclass = ""; if ($intname == "tagcloud" and $*tag_display == "cloud") { $ulclass = "widget-list tagcloud"; } println """"""; } function print_module_userprofile(string title, bool show_profile, bool show_userpic) { var Page p = get_page(); if ($show_userpic and not $show_profile) { if (defined $p.journal.default_pic) { open_module("photo", $title, $p.journal.userpic_listing_url); println """$p.journal.default_pic"""; close_module(); } return; } if (not $show_profile and not $show_userpic) { open_module("about-me", $title, $p.view_url{"userinfo"}, true); close_module(true); return; } open_module("about-me", $title, $p.view_url{"userinfo"}); print """
$p.journal.default_pic
\n\n"""; println """
"""; println """
$p.journal
"""; println """
$p.journal.name
"""; if ($p.journal.website_url != "") { var string website_value = $p.journal.website_name ? $p.journal.website_name : $*text_website_default_name; println safe """
$website_value
"""; } println """
"""; close_module(); } function colored_ljuser(UserLite u, Color bg, Color fg) : string { return ""+$u->ljuser($fg)+""; } function print_module_viewlinks(string title) { var Page p = get_page(); open_module("viewlinks", $title, ""); var string[] links = []; foreach var string v ($p.views_order) { var string url = $p.view_url{$v}; var string text = lang_viewname($v); $links[size $links] = """$text"""; } print_module_list($links,""); close_module(); } function print_module_poweredby(string title) { var Page p = get_page(); open_module("powered", "", ""); server_sig(); close_module(); } # Return the credit text for the given designer function designer(string type, string designer, string theme) : string { var string{} designers = { "Akiko Kurono" => "http://crema.vox.com/", "CaliforniaWomen.org" => "http://www.californiawomen.org/", "Carrie Keymel" => "http://www.thestockholmagency.com/", "Cindy S." => "http://www.loveshaped.org/", "Emile Ong" => "http://e-lime.vox.com/", "Gilbert Rizo" => "http://rizo.vox.com/", "Golly Kim" => "http://gollykim.vox.com/", "Haze McElhenny" => "http://www.studio524.net/", "Ideacodes" => "http://www.ideacodes.com/", "Jamison Wieser" => "http://www.adventuresinurbanliving.net/", "Jared MacPherson" => "http://fiver00.vox.com/", "Julie Kurylo" => "http://jaykay.vox.com/", "Karine" => "http://junkpaper.vox.com/", "Katy Towell" => "http://www.katytowell.com/", "Kenn Wislander" => "http://wislander.vox.com/", "Keri Maijala" => "http://clamhead.vox.com/", "Kyle Flood" => "http://yogi.vox.com/", "Lauren Musni" => "http://kawaii.vox.com/", "Lilia Ahner" => "http://lilia.vox.com/", "Lizzy Enger" => "http://www.lefthandmade.com/", "Luke Knowland" => "http://www.comingfordinner.com/", "Meg Stinett" => "http://msredshoes.vox.com/", "Michael Rose" => "http://www.mademistakes.com/", "Naoto Kishi" => "http://kissy.vox.com/", "Paulina Bozek" => "http://mightierthanthesword.vox.com/", "S. Howell" => "http://www.essart.net/", "Sofie" => "http://www.neonlove.net/sofie/", "Taichi Kaminogoya" => "http://nipeke.vox.com/", "Tana Tienauchariya" => "http://madeinjanuary.vox.com/", "Taylor Savvy" => "http://www.grraphic.com/", "Teresa Jones" => "http://www.scribblescratch.com/", "Terri McAllister" => "http://terri.vox.com/", "Tiffany Chow" => "http://tiffany.vox.com/", "Tomohito Koshikawa" => "http://blurblue.vox.com/", "Witold Riedel" => "http://www.witoldriedel.com/", "Yasmina Haryono" => "http://www.bananeira.net/", }; if ($type == "ljuser") { var UserLite u = UserLite($designer); return "
Designed by "+$u->ljuser()+"
"; } elseif ($type == "outside") { if ($designer == "piximix") { return ""; } elseif ($designers{$designer}) { return "
Designed by $designer
"; } } return ""; } function print_module_designedby(string theme) { var string designer = designer($*theme_designer_type, $*theme_designer, $theme); if ($designer != "") { open_module("designed","",""); println $designer; close_module(); } } function print_module_pagesummary(string title) { var Page p = get_page(); var string link = ""; var string[] links = []; if ($p isa RecentPage) { var RecentPage cp = $p as RecentPage; foreach var Entry e ($cp.entries) { $link = ""; var string poster = $e.poster + ""; var string journal = $e.journal + ""; var string subject = ($e.subject != "") ? striphtml($e.subject) : """$*text_nosubject"""; if ((not($e.poster->equals($e.journal))) and ($p.journal.journal_type != "C")) { $link = $link + $journal + " :: "; } if (($p.view == "read" or $p.view == "network") or ($p.journal.journal_type == "C")) { $link = $link + $poster + " : "; } $link = $link + """$subject"""; $link = $link + """ [+$e.comments.count]"""; $links[size $links] = $link; } } elseif ($p isa EntryPage) { var EntryPage cp = $p as EntryPage; foreach var Comment c ($cp.comments) { var string poster = (defined $c.poster) ? ($c.poster + "") : """$*text_poster_anonymous"""; var string subject = ($c.subject != "") ? $c.subject : """$*text_nosubject"""; var int count = num_comments_in_thread($c.replies); $links[size $links] = """$poster : $subject [+$count]"""; } } if (size($links) < 1) { return; } open_module("archive", $title, ""); print_module_list($links,""); close_module(); } function print_module_tags(string title) { var Page p = get_page(); var TagDetail[] total_tags = $p->visible_tag_list(); var int most_count = 1; if (size($total_tags) < 1) { return; } var TagDetail[] tags; var int tcount = 0; foreach var TagDetail td ($total_tags) { if (($*opt_tag_limit and $tcount < $*tag_limit) or not $*opt_tag_limit) { $tags[$tcount] = $td; $tcount++; } } open_module("categories", $title, ""); # TODO: Link to the TagsPage? var string[] links = []; # First get the highest tag count there is foreach var TagDetail td ($tags) { if ($td.use_count > $most_count) { $most_count = $td.use_count; } } # Now print the tag cloud foreach var TagDetail td ($tags) { var string uses = get_plural_phrase($td.use_count, "text_tag_uses"); var string security = $td.visibility; var int tagtextsize = 7; if ($td.use_count > 1) { $tagtextsize = ($td.use_count * 16) / $most_count + 7; # Text size, in pixels, of this tag -- min is 7px, max is 23px } if ($*tag_display == "cloud") { $links[size $links] = """$td.name"""; } elseif ($*tag_display == "list") { $links[size $links] = """$td.name"""; } } print_module_list($links,"tagcloud"); var string tags_url = $p.journal->base_url() + "/tag/"; # TODO: Need Page.view_url{"tags"} which doesn't exist yet. print safe """\n"""; close_module(); } function print_module_calendar(string title) { var Page p = get_page(); var YearMonth mon = $p->get_latest_month(); open_module("calendar", $title, ""); var string month = $mon->month_format(); println """"""; println """"""; println ""; foreach var int d (weekdays()) { "\n"; } println ""; foreach var YearWeek week ($mon.weeks) { println ""; foreach var int i (1 .. $week.pre_empty) { print ""; } foreach var YearDay day ($week.days) { print ""; } foreach var int i (1 .. $week.post_empty) { print ""; } println ""; } println """
$month
"+$*lang_dayname_shorter[$d]+"
 "; if ($day.num_entries > 0) { print """"""; } print $day.day; if ($day.num_entries > 0) { print """"""; } print " 
"""; var string calendar_url = $p.view_url{"archive"}; print safe """\n"""; close_module(); } function print_module_syndicate(string title) { var Page p = get_page(); if ((size $p.data_links_order) < 1) { return; } open_module("syndicate", $title, ""); foreach var string k ($p.data_links_order) { print " $p.data_link{$k} "; } close_module(); } function print_module_customtext(string title, string text, string titlelink_url) { var Page p = get_page(); open_module("customtext", $title, $titlelink_url); print safe $*customtext_body; close_module(); } function print_module_links(string title) { var Page p = get_page(); var UserLink[] links = $p.linklist; if (size($links) < 1 or not $*linklist_support) { return; } var bool box_open = false; if (not $links[0].is_heading) { open_module("typelist", $title, ""); $box_open = true; } var string[] items = []; foreach var UserLink link ($links) { if ($link.is_heading) { if ($box_open) { print_module_list($items,""); close_module(); $items = []; } open_module("typelist", $link.title, ""); $box_open = true; } if (not $link.is_heading and $link.title != "") { $items[size $items] = """$link.title"""; } } if ($box_open) { print_module_list($items,""); close_module(); } } function print_module_ads(string title) { if (viewer_sees_vbox()) { var Page p = get_page(); open_module("ads", $title, ""); $p->print_vbox(); close_module(); } } function handle_topbar_array(string[][] list) { foreach var string[] item ($list) { var string module = $item[0]; var string title = $item[1]; if ($module == "viewlinks") { print_module_viewlinks($title); } } } function handle_sidebar_array(string[][] list) { # print each module foreach var string[] item ($list) { var string module = $item[0]; var string title = $item[1]; # userprofile if ($module == "userprofile") { var bool show_profile = (int($item[2]) != 0); var bool show_userpic = (int($item[3]) != 0); print_module_userprofile($title, $show_profile, $show_userpic); # archive } elseif ($module == "archive") { print_module_pagesummary($title); # tags } elseif ($module == "tags") { print_module_tags($title); # mini-calendar } elseif ($module == "calendar") { print_module_calendar($title); # syndicate } elseif ($module == "syndicate") { print_module_syndicate($title); # linklist } elseif ($module == "links") { print_module_links($title); # viewlinks } elseif ($module == "viewlinks") { print_module_viewlinks($title); # poweredby } elseif ($module == "poweredby") { print_module_poweredby($title); # designedby } elseif ($module == "designedby") { print_module_designedby($*base_theme); # customtext } elseif ($module == "customtext") { var string text = $item[2]; var string titlelink_url = $item[3]; print_module_customtext($title, $text, $titlelink_url); # ads } elseif ($module == "ads") { print_module_ads($title); } } } function Page::lay_topbar_primary() { handle_topbar_array($*topbar_primary); } function Page::lay_sidebar_primary() { handle_sidebar_array($*sidebar_primary); } function Page::lay_sidebar_secondary() { handle_sidebar_array($*sidebar_secondary); } function YearWeek::print() { """\n"""; if ($.pre_empty > 0) { """ \n"""; } foreach var YearDay d ($.days) { """\n"""; """
$d.day
\n"""; if ($d.num_entries > 0) { """
$d.num_entries
\n"""; } """\n"""; } if ($.post_empty > 0) { """ \n"""; } ""; } function TagsPage::print_body { print safe """

$*text_tags_page_header

"; } function YearPage::print_year_links() { """
\n"""; } function YearPage::print_month(YearMonth m) { if (not $m.has_entries) { return; } """
"""; """\n \n"""; """\n\n"""; foreach var int d (weekdays()) { """\n"""; } "\n"; foreach var YearWeek w ($m.weeks) { $w->print(); } "
"""; print $m->month_format(); """"""; print safe """$*text_view_month
""" + $*lang_dayname_short[$d] + """
"; "
\n
\n"; """\n
\n
\n"""; } function MonthPage::print_body { """
"""; if ($.prev_url != "") { ""; } if (size $.months > 1) { ""; } if ($.next_url != "") { ""; } "
[<<<]
"; $.redir->print_hiddens(); "\n
[>>>]


\n"; """
"""; "
"; foreach var MonthDay d ($.days) { if ($d.has_entries) { "
"; print lang_ordinal($d.day); "
\n
"; $d->print_subjectlist(); "
\n"; } } "
\n"; "
\n
\n"; """\n
\n
\n"""; } function MonthDay::print_subjectlist() { # Too many tables... foreach var Entry e ($.entries) { print $e->time_display("none", "short") + ": "; if (not($e.poster->equals($e.journal))) { $e.poster->print(); " "; } if($e.security_icon) { "$e.security_icon "; } var string subject = $e.subject != "" ? $e->get_plain_subject() : """$*text_nosubject"""; print safe """ $subject"""; if ($e.comments.count > 0 or $e.comments.screened) { print safe " - " + get_plural_phrase($e.comments.count, "text_read_comments"); } if ($e.comments.screened) { " $*text_month_screened_comments"; } "
\n"; } } function render_layout (Page p, string lay) { if ($lay == "3CL") { container_open("alpha"); $p->print_body(); container_close(); container_open("beta"); $p->lay_sidebar_secondary(); container_close(); container_open("gamma"); $p->lay_sidebar_primary(); container_close(); return; } if ($lay == "2CL") { container_open("alpha"); $p->print_body(); container_close(); container_open("beta"); $p->lay_sidebar_primary(); $p->lay_sidebar_secondary(); container_close(); return; } if ($lay == "2CR") { container_open("alpha"); $p->print_body(); container_close(); container_open("beta"); $p->lay_sidebar_primary(); $p->lay_sidebar_secondary(); container_close(); return; } if ($lay == "3CM") { container_open("alpha"); $p->print_body(); container_close(); container_open("beta"); $p->lay_sidebar_primary(); container_close(); container_open("gamma"); $p->lay_sidebar_secondary(); container_close(); return; } } function get_layout () : string { var Page p = get_page(); var string lay = $*layout_type; if ($lay == "3CL" or $lay == "2CR" or $lay == "2CL" or $lay == "3CM") { return $lay; } return "2CL"; } function body_class (string lay) : string { var string{} map = { "3CL" => "asset-stream layout-wtt", "2CL" => "asset-stream layout-tw", "2CR" => "asset-stream layout-wt", "3CM" => "asset-stream layout-twt", }; return $map{$lay}; } function Page::lay_print_header_links() { # Menu start """\n"""; container_open("header"); container_open("header-content"); """
\n
\n
\n"""; """
"""; var string base_url = $.journal->base_url(); var string friends_url = $.view_url{"friends"}; if ($this isa FriendsPage) { print safe """""" + $this->view_title() + """"""; } else { print safe """$.global_title"""; } """
"""; if(not $this isa FriendsPage) { print safe """
$.global_subtitle
"""; } """
"""; } function Page::print_stylesheets() { # These are the themes that need the header.css file included var bool{} header_themes = { "ocean-fish" => true, "ocean-squid" => true, "ocean-turtle" => true, "ocean-whale" => true, "running-blue" => true, "running-brown" => true, "running-green" => true, "running-red" => true, "scribe" => true, "unity-playful-cherry-blossom" => true, "unity-playful-clouds" => true, "unity-playful-cosmo" => true, "unity-playful-martini" => true, "unity-playful-robots-blue" => true, "unity-playful-robots-grey" => true, "unity-playful-robots-orange" => true, "unity-playful-robots-red" => true, "unity-playful-sushi" => true, "unity-playful-wine" => true, }; # These are the themes that need the winners.css file included var bool{} winners = { "dj" => true, "rocket" => true, "scribe" => true, "toastie" => true, }; # These are the main names of the themes that use parent stylesheets var bool{} parent_css = { "bloom" => true, "bunnylicious" => true, "butterflies" => true, "camo" => true, "carson" => true, "cityscape" => true, "endless-summer" => true, "fleur" => true, "flowers" => true, "food" => true, "hills" => true, "landscape" => true, "manga" => true, "modernist" => true, "ocean" => true, "piximix" => true, "pixipets" => true, "running" => true, "scribble" => true, "sorbet" => true, "travel" => true, "trees" => true, "unity" => true, "urban" => true, "weston" => true, "woodcut" => true, "zen" => true, }; # These are exceptions to the themes listed in parent_css{} # That is, these themes do not use parent stylesheets var bool{} no_parent_css = { "cityscape-austin" => true, "cityscape-boston" => true, "cityscape-houston" => true, "cityscape-kiev" => true, "cityscape-la" => true, "cityscape-miami" => true, "cityscape-nashville" => true, "cityscape-philadelphia" => true, "cityscape-portland" => true, "cityscape-seattle" => true, "cityscape-sydney" => true, "cityscape-toronto" => true, }; if ($*use_vox_base) { var string theme = $*base_theme; println safe """\n"""; println safe """"""; var int pos = strpos($*base_theme, "-"); if ($pos != -1) { $theme = $*base_theme->substr(0, $pos); } if ($*base_theme->starts_with("endless")) { $theme = "endless-summer"; } if ($*base_theme != "__none") { if ($winners{$*base_theme}) { println safe """\n"""; } if ($parent_css{$theme} and not $no_parent_css{$*base_theme}) { println safe """\n"""; } println safe """\n"""; } println safe """\n"""; if ($header_themes{$*base_theme}) { println safe """\n"""; } elseif ($theme == "bloom") { println safe """\n"""; } elseif ($theme == "fleur") { println safe """\n"""; } elseif ($theme == "bunnylicious") { println safe """\n"""; } elseif ($theme == "weston") { println safe """\n"""; } } if ($*linked_stylesheet != "") { println safe """\n"""; } if ($*custom_css != "") { println """"""; } if ($*external_stylesheet) { println safe """\n"""; } else { println """"""; } } function Page::print () { var string lay = get_layout(); var string body_layout_class = body_class($lay); var string[] wide_themes = []; # These are the wide themes, which look better when the hbox_top is below the banner var bool print_below_banner = false; foreach var string theme ($wide_themes) { if ($theme == $*base_theme) { $print_below_banner = true; } } """ """; $this->print_head(); if ($*opt_overflow) { print """ """; } $this->print_stylesheets(); print safe """""" + $this->title() + """\n"""; """ """; $this->print_control_strip(); container_open("container"); if (viewer_sees_hbox_top()) { if ($print_below_banner) { container_open("page"); $this->lay_print_header_links(); container_open("ad-leaderboard"); $this->print_hbox_top(); container_close(); } else { container_open("ad-leaderboard"); $this->print_hbox_top(); container_close(); container_open("page"); $this->lay_print_header_links(); } } else { container_open("page"); $this->lay_print_header_links(); } container_open("content"); render_layout($this, $lay); container_close(); """"""; container_open("footer"); if (viewer_sees_hbox_bottom()) { container_open("ad-5linkunit"); $this->print_hbox_bottom(); container_close(); } container_close(); """"""; container_close(); """"""; container_close(); """"""; """\n"""; } function print_sticky() { if ($*sticky_post != "") { """
"""; if ($*sticky_subject != "") { print safe """

$*sticky_subject

"""; } else { """

Sticky Post

"""; } "
\n"; """
"""; print safe $*sticky_post; "
\n
\n"; """\n
\n
\n"""; } } function RecentPage::print_body() { var string skiplinks = ""; var string back_url = $.nav.backward_url; var string fore_url = $.nav.forward_url; if($back_url != "" or $fore_url != "") { var string url = ""; var string text = ""; if($back_url != "") { $url = $back_url; $text = get_plural_phrase($.nav.backward_count, "text_skiplinks_back"); $skiplinks = $skiplinks + """"""; } if($back_url != "" and $fore_url != "") { $skiplinks = $skiplinks + " | "; } if($fore_url != "") { $url = $fore_url; $text = get_plural_phrase($.nav.forward_count, "text_skiplinks_forward"); $skiplinks = $skiplinks + """"""; } } if($skiplinks != "") { println """
"""; println """

"""; println $skiplinks; println "

"; println "
"; } if (not($this isa FriendsPage)) { print_sticky(); } foreach var Entry e ($.entries) { $this->print_entry($e); if ($e->viewer_sees_ebox()) { """
"""; $e->print_ebox(); "
"; } } if($skiplinks != "") { println """"; } } function EntryPage::print_body() { var string skiplinks = ""; var Link forward = $.entry->get_link("nav_next"); var Link backward = $.entry->get_link("nav_prev"); if (defined $forward or defined $backward) { $skiplinks = """

"""; if (defined $backward) { $skiplinks = $skiplinks + """$*text_entry_prev"""; } if (defined $backward and defined $forward) { $skiplinks = $skiplinks + " | "; } if (defined $forward) { $skiplinks = $skiplinks + """$*text_entry_next"""; } $skiplinks = $skiplinks + """

"""; println safe $skiplinks; } $this->print_entry($.entry); if ($.entry->viewer_sees_ebox()) { $.entry->print_ebox(); } if ($.entry.comments.enabled and $.comment_pages.total_subitems > 0) { """

$*text_comments

( """; $this->print_reply_link({"target" => "topcomment", "linktext" => $*text_post_comment}); """ )"""; $this->print_reply_container({"target" => "topcomment"}); """
"""; if($.multiform_on) { $this->print_multiform_start(); } if(not $.comment_pages.all_subitems_displayed) { $.comment_pages->print(); } foreach var Comment c ($.comments) { """
"""; $this->print_comment($c); """
"""; } if(not $.comment_pages.all_subitems_displayed) { $.comment_pages->print(); } if ($.multiform_on) { print """
"""; $this->print_multiform_actionline(); print "
"; $this->print_multiform_end(); } """
( """; $this->print_reply_link({"target" => "bottomcomment", "linktext" => $*text_post_comment}); """ )"""; $this->print_reply_container({"target" => "bottomcomment"}); """
"""; } """"""; } function lang_posted_by_date_and_time(EntryLite e, bool showposter, bool showdate, bool showtime) : string { var string posted = ""; if ($showposter) { var string posterstr = (defined $e.poster ? ""+$e.poster : """$*text_poster_anonymous"""); if (not $showtime and not $showdate) { return $posted; } } if ($showdate and $showtime) { if ($e.depth > 0) { # If $e is a comment return $posted + $e->time_display("med", ""); } else { return $posted + $e->time_display($*lang_fmt_date_med + " at %%h%%:%%min%% %%A%%M", "none"); } } if ($showdate and not $showtime) { return $posted + $e->time_display("med", "none"); } if (not $showdate and $showtime) { return $e->time_display("none", "%%h%%:%%min%% %%A%%M"); } return ""; } function Comment::print_linkbar() { var Link link; var string sep = """|"""; var string url = ""; var string text = ""; var string{} link_caption = { # TODO: These should really be separate properties "edit_comment" => $*text_multiform_opt_edit, "delete_comment" => $*text_multiform_opt_delete, "freeze_thread" => $*text_multiform_opt_freeze, "unfreeze_thread" => $*text_multiform_opt_unfreeze, "screen_comment" => $*text_multiform_opt_screen, "unscreen_comment" => $*text_multiform_opt_unscreen, "watch_comments" => $*text_multiform_opt_track, "unwatch_comments" => $*text_multiform_opt_untrack, }; foreach var string link_key ($.link_keyseq) { $link = $this->get_link($link_key); if (defined $link) { $url = $link.url; $text = $link_caption{$link_key} != "" ? $link_caption{$link_key} : $link.caption; print safe """ $sep $text"""; } } } function CommentInfo::print_readlink { var Page p = get_page(); var string show_screened = ""; if ($.screened) { $show_screened = " $*text_month_screened_comments"; } print safe ""+ get_plural_phrase($.count, $p.view == "friends" ? "text_read_comments_friends" : "text_read_comments")+ "$show_screened"; } function CommentInfo::print_postlink() { var Page p = get_page(); if ($p.view == "entry") { $p->print_reply_link({"target" => "topcomment", "linktext" => $*text_post_comment}); } else { print safe ""+($p.view == "friends" ? $*text_post_comment_friends : $*text_post_comment)+""; } } function CommentInfo::print() { if ($.show_readlink) { """
  • """; $this->print_readlink(); "
  • \n"; } if ($.show_postlink) { """
  • """; $this->print_postlink(); "
  • \n"; } } function Entry::print_linkbar() { var Link link; var string url = ""; var string text = ""; print """
    \n"""; print """\n
    \n"; } function Entry::print_metadata() { if (size $.metadata) { """
    \n\n
    \n"; } if ((size($.tags) > 0) and ($*tags_aware)) { var int tcount = 0; """

    Tags:

    \n\n
    \n"; } } function print_entry(Page p, EntryLite e, Color bgcolor, Color fgcolor, bool hide_text) { var bool showposter = false; if (not $e.poster->equals($e.journal)) { $showposter = true; } var Comment c; var Entry en; if ($e isa Comment) { $c = $e as Comment; } else { $en = $e as Entry; } var string id = ""; if (defined $c) { $id = " id=\"asset-$e.journal.username-$c.talkid\""; } else { $id = " id=\"asset-$e.journal.username-$en.itemid\""; } """

    """; if (defined $en) { if (defined $en.security_icon) { """$en.security_icon """; } } var string datetime = ""; if ($e.subject != "") { var Entry en = $e as Entry; print $en->formatted_subject({"class"=>"subj-link"}); $datetime = lang_posted_by_date_and_time($e, $showposter, true, true); } else { var string subject = ""; $subject = lang_posted_by_date_and_time($e, $showposter, true, false); $datetime = lang_posted_by_date_and_time($e, $showposter, false, true); """$subject"""; } "

    "; """
    • $datetime
    """; var bool showuserpic = $*opt_userpic_main; if ($p.view == "read" or $p.view == "network") { $showuserpic = $*opt_userpic_friends; } if ($p.view == "entry") { $showuserpic = $*opt_userpic_entrypage; } var string userpic = ($showuserpic and defined $e.userpic) ? ($e.userpic + "
    ") : ""; if ($showuserpic) { if ($bgcolor) { """
    $userpic"""; } else { """
    $userpic"""; } } var string posted = ""; if ($p.view == "read" or $p.view == "network") { if (not $e.poster->equals($e.journal)) { $posted = $posted + colored_ljuser($e.poster, $bgcolor, $fgcolor) + "
    "; } $posted = $posted + colored_ljuser($e.journal, $bgcolor, $fgcolor); } else { if (not $e.poster->equals($e.journal)) { $posted = $posted + $e.poster; } } print "$posted"; if ($showuserpic) { print "
    "; } $e->print_text(); "
    \n"; if (defined $en) { $en->print_metadata(); } "
    \n"; $p->print_reply_container({"target" => "entrycomment", "class" => "quickreply"}); $e->print_linkbar(); """\n
    \n
    \n"""; if ($*entry_footer != "") { println safe $*entry_footer; } } function Page::print_entry (Entry e) { var Color bgcolor = null Color; var Color fgcolor = null Color; if ($this isa FriendsPage and $*opt_friends_colors) { var FriendsPage fp = $this as FriendsPage; $bgcolor = $fp.friends{$e.journal.username}.bgcolor; $fgcolor = $fp.friends{$e.journal.username}.fgcolor; } print_entry($this, $e, $bgcolor, $fgcolor, false); } # return true if # 1) this comment is collapsed # 2) has a collapsed child function have_collapsed(Comment e) : bool { if (not $e.full) { return true; } if (size($e.replies) > 0) { foreach var Comment c ($e.replies) { if (not $c.full) { return true; } } } return false; } function EntryPage::print_comment(Comment e) { var string barc = "comment-" + ($e.depth % 2 ? "odd" : "even"); var string screenbarc = ""; var string borderwidth = ""; if ($e.screened) { $screenbarc = " border-width: 3px; border-style: dashed;"; } var string indent = ($e.depth - 1) * 25 + "px"; var string id = $e.dom_id ? " id=\"$e.dom_id\"" : ""; if (not $e.full) { # Collapsed mode """
    """; var string subject = $e.subject != "" ? $e.subject : """$*text_nosubject"""; print safe """$subject - """; var string poster = (defined $e.poster ? ""+$e.poster : """$*text_poster_anonymous"""); print safe """$poster - """; print lang_posted_by_date_and_time($e, false, true, true); var Link expand_link = $e->get_link("expand_comments"); if ($e.thread_url != "" and defined $expand_link) { " " + $e->expand_link({ "class" => "collapsed-comment-link" }); } """
    \n"""; if (size($e.replies) > 0) { foreach var Comment c ($e.replies) { $this->print_comment($c); } } return; } """
    """; if ($*opt_userpic_comments and defined $e.userpic) { """
    $e.userpic
    """; } var string poster = defined $e.poster ? $e.poster->as_string() : "$*text_poster_anonymous"; print safe """$poster """; if ($e.metadata{"poster_ip"} != "") { "(" + $e.metadata{"poster_ip"} + ") "; } """wrote:
    """; var string datetime = lang_posted_by_date_and_time($e, true, true, true); """
    $datetime
    """; if (defined $e.subject_icon) { """
    $e.subject_icon
    """; } if ($e.subject != "") { """
    $e.subject
    """; } """
    """; $e->print_text(); """
    \n
    \n
    \n\n"; if (not $e.frozen) { $e->print_reply_container({"class" => "quickreply"}); } if (size($e.replies) > 0) { foreach var Comment c ($e.replies) { $this->print_comment($c); } } } function ReplyPage::print_body { if (not $.entry.comments.enabled) { print "

    $*text_reply_nocomments_header

    $*text_reply_nocomments

    "; return; } print_entry($this, $.replyto, null Color, null Color, false); print "\n
    \n"; if ($.entry->viewer_sees_ebox()) { $.entry->print_ebox(); } print "\n
    \n"; container_open("comments"); """

    $*text_replyform_header

    """; $.form->print(); """
    """; container_close(); } function DayPage::print_body() { if ($.has_entries) { "
    \n

    "; print $.date->date_format("long"); "

    \n"; foreach var Entry e ($.entries) { $this->print_entry($e); if ($e->viewer_sees_ebox()) { """
    """; $e->print_ebox(); "
    "; } } "
    "; } else { "

    $*text_noentries_day

    "; } "
    \n"; if ($.prev_url != "") { "$*text_day_prev"; } if ($.prev_url != "" and $.next_url != "") { " | "; } if ($.next_url != "") { "$*text_day_next"; } "\n
    "; } function print_theme_preview() { "\"$*base_theme"; } layerinfo type = "layout"; layerinfo name = "Mixit"; layerinfo redist_uniq = "ljhtml/layout"; layerinfo previews = "ljhtml/layout.png"; layerinfo des = "Mixit LJ Themes based on Expressive"; set base_theme = "poe"; # The colors for the default theme set theme_bgcolor = "#cccccc"; set theme_fgcolor = "#000000"; set theme_bordercolor = "#cccccc"; set theme_linkcolor = "#555555"; # The designer of the default theme set theme_designer = "chasethestars"; set theme_designer_type = "ljuser";