[dw-free] Theme categories (tags?) are hardcoded in the code backend
[commit: http://hg.dwscoalition.org/dw-free/rev/c89cce13dcc4]
http://bugs.dwscoalition.org/show_bug.cgi?id=1744
Tag themes via the web interface, rather than hardcoding. Allows us to tag
themes without a code push.
Patch by
exor674.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=1744
Tag themes via the web interface, rather than hardcoding. Allows us to tag
themes without a code push.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- bin/upgrading/update-db-general.pl
- cgi-bin/DW/Controller/Admin/ThemeMetadata.pm
- cgi-bin/LJ/Customize.pm
- cgi-bin/LJ/S2Theme.pm
- cgi-bin/LJ/S2Theme/bases.pm
- cgi-bin/LJ/S2Theme/basicboxes.pm
- cgi-bin/LJ/S2Theme/blanket.pm
- cgi-bin/LJ/S2Theme/boxesandborders.pm
- cgi-bin/LJ/S2Theme/brittle.pm
- cgi-bin/LJ/S2Theme/colorside.pm
- cgi-bin/LJ/S2Theme/compartmentalize.pm
- cgi-bin/LJ/S2Theme/core2base.pm
- cgi-bin/LJ/S2Theme/crossroads.pm
- cgi-bin/LJ/S2Theme/drifting.pm
- cgi-bin/LJ/S2Theme/easyread.pm
- cgi-bin/LJ/S2Theme/fluidmeasure.pm
- cgi-bin/LJ/S2Theme/funkycircles.pm
- cgi-bin/LJ/S2Theme/modish.pm
- cgi-bin/LJ/S2Theme/modular.pm
- cgi-bin/LJ/S2Theme/negatives.pm
- cgi-bin/LJ/S2Theme/nouveauoleanders.pm
- cgi-bin/LJ/S2Theme/practicality.pm
- cgi-bin/LJ/S2Theme/refriedtablet.pm
- cgi-bin/LJ/S2Theme/skittlishdreams.pm
- cgi-bin/LJ/S2Theme/steppingstones.pm
- cgi-bin/LJ/S2Theme/tranquilityiii.pm
- cgi-bin/LJ/S2Theme/zesty.pm
- cgi-bin/LJ/Widget/ThemeNav.pm
- cgi-bin/ljlib.pl
- htdocs/js/admin/themes/category.js
- htdocs/js/admin/themes/index.js
- views/admin/themes/category.tt
- views/admin/themes/category.tt.text
- views/admin/themes/index.tt
- views/admin/themes/index.tt.text
- views/admin/themes/theme.tt
- views/admin/themes/theme.tt.text
-------------------------------------------------------------------------------- diff -r 09d54b296645 -r c89cce13dcc4 bin/upgrading/update-db-general.pl --- a/bin/upgrading/update-db-general.pl Fri Oct 29 15:09:47 2010 +0800 +++ b/bin/upgrading/update-db-general.pl Fri Oct 29 16:39:24 2010 +0800 @@ -1151,6 +1151,16 @@ CREATE TABLE s2stylelayers2 ( type ENUM('core','i18nc','layout','theme','i18n','user') NOT NULL, PRIMARY KEY (userid, styleid, type), s2lid INT UNSIGNED NOT NULL +) +EOC + +register_tablecreate("s2categories", <<'EOC'); # global +CREATE TABLE s2categories ( + s2lid INT UNSIGNED NOT NULL, + kwid INT(10) UNSIGNED NOT NULL, + active TINYINT(1) UNSIGNED NOT NULL DEFAULT 1, + + PRIMARY KEY (s2lid, kwid) ) EOC diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/DW/Controller/Admin/ThemeMetadata.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cgi-bin/DW/Controller/Admin/ThemeMetadata.pm Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,261 @@ +#!/usr/bin/perl +# +# DW::Controller::Themes +# +# Theme metadata admin page. +# +# Authors: +# Andrea Nall <anall@andreanall.com> +# +# Copyright (c) 2010 by Dreamwidth Studios, LLC. +# +# This program is free software; you may redistribute it and/or modify it under +# the same terms as Perl itself. For a copy of the license, please reference +# 'perldoc perlartistic' or 'perldoc perlgpl'. +# + +package DW::Controller::Admin::StyleMetadata; + +use strict; +use warnings; +use DW::Controller; +use DW::Routing; +use DW::Template; +use DW::Controller::Admin; + +DW::Routing->register_string( "/admin/themes/", \&index_controller ); +DW::Controller::Admin->register_admin_page( '/', + path => 'themes/', + ml_scope => '/admin/themes/index.tt', + privs => [ 'siteadmin:themes' ] +); + +DW::Routing->register_string( "/admin/themes/theme", \&theme_controller ); +DW::Routing->register_string( "/admin/themes/category", \&category_controller ); + +my %system_cats = ( + featured => 1, +); + +sub index_controller { + my ( $ok, $rv ) = controller( privcheck => [ "siteadmin:themes" ] ); + return $rv unless $ok; + + my $pub = LJ::S2::get_public_layers(); + + my @themes = grep { $_ !~ /^\d+$/ && $pub->{$_}->{type} eq 'theme' } keys %$pub; + my %layers = (); + foreach my $uniq ( @themes ) { + my ( $lay, $theme ) = split('/', $uniq); + push @{ $layers{$lay} }, $theme; + } + + my $vars = { + %$rv, + + layers => \%layers, + categories => [ LJ::S2Theme->all_categories( all => 1, special => 1 ) ], + }; + + return DW::Template->render_template( 'admin/themes/index.tt', $vars ); +} + +sub _validate_category { + return 1 if $_[0] =~ /^[a-zA-Z0-9 ]+$/; + return 0; +} + +sub theme_controller { + my ( $ok, $rv ) = controller( privcheck => [ "siteadmin:themes" ] ); + return $rv unless $ok; + + my $r = DW::Request->get; + + my $args = $r->post_args || $r->get_args || {}; + my $uniq = $args->{theme}; + + my $pub = LJ::S2::get_public_layers(); + my $s2lid = $pub->{$uniq}->{s2lid}; + return $r->redirect( "/admin/themes/" ) unless $s2lid; + + my $theme = LJ::S2Theme->new( themeid => $s2lid ); + return $r->redirect( "/admin/themes/" ) unless $theme; + + if ( $r->method eq 'POST' ) { + return $r->redirect( "/admin/themes/theme?theme=$uniq" ) unless LJ::check_form_auth( $args->{lj_form_auth} ); + + # FIXME: This should be in S2Themes + my $cats = $theme->metadata->{cats}; + my %kwid_map = map { $_->{kwid} => $_ } values %$cats; + my @kwids = keys %kwid_map; + + my %change_act; + my %delete; + + foreach my $kwid ( @kwids ) { + my $act_db = $kwid_map{$kwid}->{active}; + if ( $args->{"cat_remove_$kwid"} ) { + $delete{$kwid} = 1; + } else { + $change_act{$kwid} = 1 + if $args->{"cat_act_$kwid"} && ! $act_db; + $change_act{$kwid} = 0 + if ! $args->{"cat_act_$kwid"} && $act_db + && exists $kwid_map{$kwid}; + } + } + + foreach my $kw ( split(',', $args->{cat_add} ) ) { + $kw = LJ::trim( $kw ); + next unless _validate_category( $kw ); + my $kwid = LJ::get_sitekeyword_id( $kw, 1, allowmixedcase => 1 ); + next if $delete{ $kwid }; + my $add = 1; + $add = 0 if $kwid_map{$kwid} && $kwid_map{$kwid}->{active}; + $change_act{$kwid} = 1 if $add; + } + + my $dbh = LJ::get_db_writer(); + + if ( %change_act ) { + my @bind; + my @vals; + + foreach my $kwid ( keys %change_act ) { + push @vals, "(?,?,?)"; + push @bind, ( $s2lid, $kwid, $change_act{$kwid} ); + } + + $dbh->do( "REPLACE INTO s2categories ( s2lid, kwid, active ) " . + "VALUES " . join( ',', @vals ), undef, @bind ) + or die $dbh->errstr; + } + + if ( %delete ) { + $dbh->do( "DELETE FROM s2categories where s2lid = ? " . + "AND kwid IN ( " . + join( ',', map { $dbh->quote( $_ ) } keys %delete ) . + " )", undef, $s2lid ) or die $dbh->errstr; + } + + $theme->clear_cache; + LJ::S2Theme->clear_global_cache; + return $r->redirect( "/admin/themes/theme?theme=$uniq" ); + } + + my %cats = %{ $theme->metadata->{cats} }; + + my @cat_keys = sort { + my $ah = $cats{$a}; + my $bh = $cats{$b}; + return ( $ah->{order} || 0 ) <=> ( $bh->{order} || 0 ) || + ( $bh->{active} || 0 ) <=> ( $ah->{active} || 0 ) || + $ah->{keyword} cmp $bh->{keyword} + } keys %cats; + + my $vars = { + %$rv, + + theme_arg => $uniq, + theme => $theme, + cats => \%cats, + cat_keys => \@cat_keys, + }; + + return DW::Template->render_template( 'admin/themes/theme.tt', $vars ); +} + +sub category_controller { + my ( $ok, $rv ) = controller( privcheck => [ "siteadmin:themes" ] ); + return $rv unless $ok; + + my $r = DW::Request->get; + + my $args = $r->post_args || $r->get_args || {}; + my $cat = $args->{category}; + + $cat = undef unless _validate_category( $cat ); + return $r->redirect( "/admin/themes/" ) unless $cat; + + my $pub = LJ::S2::get_public_layers(); + + my @themes = grep { $_ !~ /^\d+$/ && $pub->{$_}->{type} eq 'theme' } keys %$pub; + my %layers = (); + foreach my $uniq ( @themes ) { + my ( $lay, $theme ) = split('/', $uniq); + $layers{$lay}->{$theme} = $pub->{$uniq}; + } + + my %s2lid_act = map { $_->s2lid => 1 } LJ::S2Theme->load_by_cat( $cat ); + + my $can_delete = 0; + my $is_system = $system_cats{$cat} ? 1 : 0; + + $can_delete = ( %s2lid_act ? 0 : 1 ) unless $is_system; + + if ( $r->method eq 'POST' ) { + return $r->redirect( "/admin/themes/category?category=$cat" ) unless LJ::check_form_auth( $args->{lj_form_auth} ); + + my $dbh = LJ::get_db_writer(); + + if ( $args->{delete} ) { + return $r->redirect( "/admin/themes/category?category=$cat" ) + unless $can_delete; + + my $kwid = LJ::get_sitekeyword_id( $cat, 1, allowmixedcase => 1 ); + my $to_clear = $dbh->selectall_arrayref( "SELECT s2lid FROM s2categories WHERE kwid = ?", undef, $kwid ) or die $dbh->errstr; + + $dbh->do( "DELETE FROM s2categories WHERE kwid = ?", undef, $kwid ) or die $dbh->errstr; + + LJ::S2Theme->new( themeid => $_->[0] )->clear_cache + foreach @$to_clear; + LJ::S2Theme->clear_global_cache; + + return $r->redirect( "/admin/themes/" ); + } else { + my %change_act; + foreach my $theme ( @themes ) { + my $s2lid = $pub->{$theme}->{s2lid}; + my $db_act = $s2lid_act{ $s2lid }; + my $act = $args->{ "s2lid_act_$s2lid" } || 0; + + $change_act{$s2lid} = 1 if $act && ! $db_act; + $change_act{$s2lid} = 0 if ! $act && $db_act; + } + + if ( %change_act ) { + my @bind; + my @vals; + + my $kwid = LJ::get_sitekeyword_id( $cat, 1, allowmixedcase => 1 ); + foreach my $s2lid ( keys %change_act ) { + push @vals, "(?,?,?)"; + push @bind, ( $s2lid, $kwid, $change_act{$s2lid} ); + } + + $dbh->do( "REPLACE INTO s2categories ( s2lid, kwid, active ) " . + "VALUES " . join(',', @vals), undef, @bind ) + or die $dbh->errstr; + } + + LJ::S2Theme->new( themeid => $_ )->clear_cache + foreach keys %change_act; + LJ::S2Theme->clear_global_cache; + return $r->redirect( "/admin/themes/category?category=$cat" ); + } + } + + my $vars = { + %$rv, + + category => $cat, + layers => \%layers, + active => \%s2lid_act, + can_delete => $can_delete, + is_system => $is_system, + }; + + return DW::Template->render_template( 'admin/themes/category.tt', $vars ); +} + +1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/Customize.pm --- a/cgi-bin/LJ/Customize.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/Customize.pm Fri Oct 29 16:39:24 2010 +0800 @@ -678,7 +678,11 @@ sub get_cats { main => 1, order => 3, }, - + map { $_ => { + text => $_, + main => 1, + order => 3, + } } LJ::S2Theme->all_categories( special => 0, all => 0 ), ); LJ::Hooks::run_hooks("modify_cat_list", \@categories, user => $u,); diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme.pm --- a/cgi-bin/LJ/S2Theme.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme.pm Fri Oct 29 16:39:24 2010 +0800 @@ -23,11 +23,11 @@ sub init { 1; } - ################################################## # Class Methods ################################################## +# FIXME: This should be configurable sub default_themes { my $class = $_[0]; @@ -400,6 +400,8 @@ sub new { my $themeid = $opts{themeid}+0; die "No theme id given." unless $themeid; + return $LJ::CACHE_S2THEME{$themeid} if exists $LJ::CACHE_S2THEME{$themeid}; + my $layers = LJ::S2::get_public_layers(); my $is_custom = 0; my %outhash = (); @@ -475,6 +477,8 @@ sub new { } else { bless $self, $class; } + + $LJ::CACHE_S2THEME{$themeid} = $self; return $self; } @@ -485,54 +489,38 @@ sub new { ################################################## sub s2lid { - my $self = shift; - - return $self->{s2lid}; + return $_[0]->{s2lid}; } *themeid = \&s2lid; sub b2lid { - my $self = shift; - - return $self->{b2lid}; + return $_[0]->{b2lid}; } *layoutid = \&b2lid; sub coreid { - my $self = shift; - - return $self->{coreid}; + return $_[0]->{coreid}; } sub name { - my $self = shift; - - return $self->{name}; + return $_[0]->{name}; } sub layout_name { - my $self = shift; - - return $self->{layout_name}; + return $_[0]->{layout_name}; } sub uniq { - my $self = shift; - - return $self->{uniq}; + return $_[0]->{uniq}; } sub layout_uniq { - my $self = shift; - - return $self->{layout_uniq}; + return $_[0]->{layout_uniq}; } *is_system_layout = \&layout_uniq; # if the theme's layout has a uniq, then it's a system layout sub is_custom { - my $self = shift; - - return $self->{is_custom}; + return $_[0]->{is_custom}; } sub preview_imgurl { @@ -682,16 +670,170 @@ sub get_preview_styleid { return $styleid; } +sub all_categories { + my ( undef, %args ) = @_; + my $all = 1; + $all = $args{all} if exists $args{all}; + + my $post_filter = sub { + my %data = map { $_ => 1 } @_; + $data{featured} = 1 if $args{special}; + delete $data{featured} unless $args{special}; + my %order = ( + featured => -1 + ); + return sort { + ( $order{$a} || 0 ) <=> ( $order{$b} || 0 ) || + $a cmp $b + } keys %data; + }; + + my $memkey = "s2categories" . ( $all ? ":all" : "" ); + my $minfo = LJ::MemCache::get( $memkey ); + return $post_filter->( @$minfo ) if $minfo; + + my $dbr = LJ::get_db_reader(); + my $cats = $dbr->selectall_arrayref( "SELECT k.keyword AS keyword " . + "FROM s2categories AS c, sitekeywords AS k WHERE " . + "c.kwid = k.kwid " . ( $all ? "" : "AND c.active = 1 " ) . + "GROUP BY keyword", undef ); + + my @rv = map { $_->[0] } @$cats; + + LJ::MemCache::set( $memkey, \@rv ); + return $post_filter->( @rv ); +} + +sub clear_global_cache { + LJ::MemCache::delete( "s2categories" ); + LJ::MemCache::delete( "s2categories:all" ); +} + +sub metadata { + my $self = $_[0]; + + return $self->{metadata} if exists $self->{metadata}; + + my $VERSION_DATA = 1; + + my $memkey = [ $self->s2lid, "s2meta:".$self->s2lid ]; + my ( $info, $minfo ); + + my $load_info_from_cats = sub { + my $cats = $_[0]; + + $cats->{featured}->{order} = -1; + $cats->{featured}->{special} = 1; + + $info->{cats} = $cats; + $info->{active_cats} = [ grep { $cats->{$_}->{active} } keys %$cats ]; + }; + + if ( $minfo = LJ::MemCache::get( $memkey ) ) { + if ( ref $minfo eq 'HASH' || + $minfo->[0] != $VERSION_DATA ) { + # old data in the cache. delete. + LJ::MemCache::delete( $memkey ); + } else { + my ( undef, $catstr, $cat_active ) = @$minfo; + + my %id_map; + my $cats = {}; + my ( $pos, $nulpos ); + $pos = $nulpos = 0; + while ( ( $nulpos = index( $catstr, "\0", $pos ) ) > 0 ) { + my $kw = substr( $catstr, $pos, $nulpos-$pos ); + my $id = unpack("N", substr( $catstr, $nulpos+1, 4 ) ); + $pos = $nulpos + 5; # skip NUL + 4 bytes. + $cats->{$kw} = { + kwid => $id, + keyword => $kw, + }; + $id_map{$id} = $cats->{$kw}; + } + + while ( length $cat_active >= 4 ) { + my ( $id ) = unpack "N", substr( $cat_active, 0, 4, '' ); + $id_map{$id}->{active} = 1; + } + + $load_info_from_cats->( $cats ); + } + } + + unless ( $info ) { + my $dbr = LJ::get_db_reader(); + + my $cats = $dbr->selectall_hashref( "SELECT c.kwid AS kwid, k.keyword AS keyword, c.active AS active " . + "FROM s2categories AS c, sitekeywords AS k WHERE " . + "s2lid = ? AND c.kwid = k.kwid", + 'keyword', undef, $self->s2lid ); + + $cats->{featured} ||= { + keyword => 'featured', + kwid => LJ::get_sitekeyword_id( 'featured', 1 ), + active => 0, + }; + + $load_info_from_cats->( $cats ); + + $minfo = [ + $VERSION_DATA, + join( '', map { pack( "Z*N", $_, $cats->{$_}->{kwid} ) } keys %$cats ) || "", + join( '', map { pack( "N", $cats->{$_}->{kwid} ) } grep { $cats->{$_}->{active} } keys %$cats ) || "", + ]; + + LJ::MemCache::set( $memkey, $minfo ); + } + + return $self->{metadata} = $info; +} + +################################################## +# Methods for admin pages +################################################## + +sub clear_cache { + my $self = $_[0]; + delete $self->{metadata}; + LJ::MemCache::delete( [ $self->s2lid, "s2meta:".$self->s2lid ] ); +} + +################################################## +# Methods that return data from DB, *DO NOT OVERIDE* +################################################## + +sub cats { # categories that the theme is in + return @{ $_[0]->metadata->{active_cats} }; +} + +################################################## +# Can be overriden if required +################################################## + +sub designer { # designer of the theme + return $_[0]->{designer} if exists $_[0]->{designer}; + + my $id = $_[0]->s2lid; + my $bid = $_[0]->b2lid; + my $li = {}; + LJ::S2::load_layer_info( $li, [ $id, $bid ] ); + + my $rv = $li->{$id}->{author_name} || + $li->{$bid}->{author_name} || + ""; + + $_[0]->{designer} = $rv; + return $rv; +} ################################################## # Methods that get overridden by child packages ################################################## -sub cats { () } # categories that the theme is in sub layouts { ( "1" => 1 ) } # theme layout/sidebar placement options ( layout type => property value or 1 if no property ) sub layout_prop { "" } # property that controls the layout/sidebar placement sub show_sidebar_prop { "" } # property that controls whether a sidebar shows or not -sub designer { "" } # designer of the theme sub linklist_support_tab { "" } # themes that don't use the linklist_support prop will have copy pointing them to the correct tab # for appending layout-specific props to global props diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/bases.pm --- a/cgi-bin/LJ/S2Theme/bases.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/bases.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,53 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right" ) } sub layout_prop { "layout_type" } -sub designer { "Malionette" } - -package LJ::S2Theme::bases::beechy; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } - -package LJ::S2Theme::bases::comfort; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::bases::lightondark; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } -sub designer { "cesy" } - -package LJ::S2Theme::bases::nnwm2009; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::bases::steele; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } - -package LJ::S2Theme::bases::strawberrysundae; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } -sub designer { "sky" } - -package LJ::S2Theme::bases::summerholiday; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } -sub designer { "rb" } - -package LJ::S2Theme::bases::sunandsand; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } -sub designer { "twtd" } - -package LJ::S2Theme::bases::tropical; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } - -package LJ::S2Theme::bases::velvetsteel; -use base qw( LJ::S2Theme::bases ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/basicboxes.pm --- a/cgi-bin/LJ/S2Theme/basicboxes.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/basicboxes.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,70 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::basicboxes::acidic; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::basicboxes::burgundy; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } - -package LJ::S2Theme::basicboxes::denim; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } - -package LJ::S2Theme::basicboxes::ecru; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } - -package LJ::S2Theme::basicboxes::eggplant; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } -sub designer { "kareila" } - -package LJ::S2Theme::basicboxes::freshwater; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::basicboxes::green; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } - -package LJ::S2Theme::basicboxes::leaf; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } - -package LJ::S2Theme::basicboxes::manilaenvelope; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::basicboxes::parchmentandink; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::basicboxes::peach; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } - -package LJ::S2Theme::basicboxes::pleasantneutrality; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::basicboxes::poppyfields; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::basicboxes::repose; -use base qw( LJ::S2Theme::basicboxes ); -sub cats { qw() } -sub designer { "twtd" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/blanket.pm --- a/cgi-bin/LJ/S2Theme/blanket.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/blanket.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,66 +5,10 @@ sub layouts { ( "1" => "one-column" ) } sub layouts { ( "1" => "one-column" ) } sub layout_prop { "layout_type" } -sub designer { "renoir" } - sub header_props { my $self = shift; my @props = qw( color_header_footer_border ); return $self->_append_props( "header_props", @props ); } -package LJ::S2Theme::blanket::forest; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::blanket::green; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::blanket::islandsandcities; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "sarken" } - -package LJ::S2Theme::blanket::jewels; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::blanket::kingsandrunaways; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "sarken" } - -package LJ::S2Theme::blanket::nnwm2009; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::blanket::ocean; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::blanket::peach; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } - -package LJ::S2Theme::blanket::shallows; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::blanket::sprung; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::blanket::thetealandthegrey; -use base qw( LJ::S2Theme::blanket ); -sub cats { qw() } -sub designer { "twtd" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/boxesandborders.pm --- a/cgi-bin/LJ/S2Theme/boxesandborders.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/boxesandborders.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,60 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::boxesandborders::bittersweet; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw() } - -package LJ::S2Theme::boxesandborders::grass; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw() } - -package LJ::S2Theme::boxesandborders::gray; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw() } - -package LJ::S2Theme::boxesandborders::lightondark; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw() } -sub designer { "cesy" } - -package LJ::S2Theme::boxesandborders::nnwm2009; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::boxesandborders::onfire; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw() } - -package LJ::S2Theme::boxesandborders::pinkafterdark; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw() } - -package LJ::S2Theme::boxesandborders::poppyfields; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::boxesandborders::rainyday; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw() } - -package LJ::S2Theme::boxesandborders::retrocandy; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::boxesandborders::silverfox; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::boxesandborders::sunnydays; -use base qw( LJ::S2Theme::boxesandborders ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/brittle.pm --- a/cgi-bin/LJ/S2Theme/brittle.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/brittle.pm Fri Oct 29 16:39:24 2010 +0800 @@ -4,8 +4,6 @@ use strict; sub layouts { ( "2l" => "two-columns-left", "2r" => "two-columns-right" ) } sub layout_prop { "layout_type" } - -sub designer { "renoir" } sub module_props { my $self = shift; @@ -37,78 +35,4 @@ sub entry_props { return $self->_append_props( "entry_props", @props ); } -package LJ::S2Theme::brittle::argyle; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw( featured ) } -sub designer { "rising" } - -package LJ::S2Theme::brittle::badfairy; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::brittle::barnhouse; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::brittle::buttercupyellow; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw( featured ) } -sub designer { "rising" } - -package LJ::S2Theme::brittle::certainfrogs; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw( featured ) } -sub designer { "rising" } - -package LJ::S2Theme::brittle::chinesepink; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw( featured ) } -sub designer { "rising" } - -package LJ::S2Theme::brittle::drab; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::brittle::furcoat; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::brittle::mountaindevil; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::brittle::nnwm2009; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::brittle::oldroses; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::brittle::powerfulgenie; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::brittle::rust; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } - -package LJ::S2Theme::brittle::softblue; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::brittle::softgreen; -use base qw( LJ::S2Theme::brittle ); -sub cats { qw() } -sub designer { "dancing_serpent" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/colorside.pm --- a/cgi-bin/LJ/S2Theme/colorside.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/colorside.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,41 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::colorside::bedrock; -use base qw( LJ::S2Theme::colorside ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::colorside::colorblockade; -use base qw( LJ::S2Theme::colorside ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::colorside::lightondark; -use base qw( LJ::S2Theme::colorside ); -sub cats { qw() } -sub designer { "cesy" } - -package LJ::S2Theme::colorside::nnwm2009; -use base qw( LJ::S2Theme::colorside ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::colorside::nnwm2010fresh; -use base qw( LJ::S2Theme::colorside ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::colorside::nnwm2010warmth; -use base qw( LJ::S2Theme::colorside ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::colorside::scatteredfields; -use base qw( LJ::S2Theme::colorside ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/compartmentalize.pm --- a/cgi-bin/LJ/S2Theme/compartmentalize.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/compartmentalize.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,94 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::compartmentalize::agingcopper; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::compartmentalize::almostroyal; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::compartmentalize::bluediamonds; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::compartmentalize::contemplation; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw( featured ) } - -package LJ::S2Theme::compartmentalize::dawnflush; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw( featured ) } - -package LJ::S2Theme::compartmentalize::goodsense; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw( featured ) } - -package LJ::S2Theme::compartmentalize::greenclovers; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::compartmentalize::iridescentwings; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::compartmentalize::orangestars; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::compartmentalize::pinkhearts; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::compartmentalize::poppyfields; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw( featured ) } - -package LJ::S2Theme::compartmentalize::purplehorseshoes; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "Musyc" } - -package LJ::S2Theme::compartmentalize::simplicity; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw( featured ) } - -package LJ::S2Theme::compartmentalize::solyluna; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::compartmentalize::somethingteal; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::compartmentalize::sweetberrygolds; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw( featured ) } - -package LJ::S2Theme::compartmentalize::thought; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::compartmentalize::tripout; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw( featured ) } - -package LJ::S2Theme::compartmentalize::yellowmoons; -use base qw( LJ::S2Theme::compartmentalize ); -sub cats { qw() } -sub designer { "Musyc" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/core2base.pm --- a/cgi-bin/LJ/S2Theme/core2base.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/core2base.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,38 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -package LJ::S2Theme::core2base::dazzle; -use base qw( LJ::S2Theme::core2base ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::core2base::kelis; -use base qw( LJ::S2Theme::core2base ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::core2base::muted; -use base qw( LJ::S2Theme::core2base ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::core2base::nnwm2009; -use base qw( LJ::S2Theme::core2base ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::core2base::shanice; -use base qw( LJ::S2Theme::core2base ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::core2base::tabac; -use base qw( LJ::S2Theme::core2base ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::core2base::testing; -use base qw( LJ::S2Theme::core2base ); -sub cats { qw() } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/crossroads.pm --- a/cgi-bin/LJ/S2Theme/crossroads.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/crossroads.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,105 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::crossroads::april; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::bittersweet; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::bluelights; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::crossroads::caramel; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::charcoalfire; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::cinnamoncream; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::cloudsounds; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::crossroads::coconut; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::descendingblue; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw( ) } - -package LJ::S2Theme::crossroads::greenlight; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::crossroads::lettuce; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::lightinthedark; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::crossroads::lilac; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::nnwm2009; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::crossroads::oldhoney; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::orangejulius; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw( ) } - -package LJ::S2Theme::crossroads::orangelights; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::crossroads::persimmon; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::pineneedles; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::pinked; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::crossroads::sherbert; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::sky; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - -package LJ::S2Theme::crossroads::spearmintice; -use base qw( LJ::S2Theme::crossroads ); -sub cats { qw() } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/drifting.pm --- a/cgi-bin/LJ/S2Theme/drifting.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/drifting.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,51 +5,4 @@ sub layouts { ( "2l" => "two-columns-lef sub layouts { ( "2l" => "two-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "Jennie Griner" } - -package LJ::S2Theme::drifting::chocolatecherry; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::drifting::comfortzone; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::drifting::desertme; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::drifting::go; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::drifting::idolatry; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::drifting::lightondark; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "cesy" } - -package LJ::S2Theme::drifting::softblues; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "ambrya" } - -package LJ::S2Theme::drifting::sweetpossibilities; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::drifting::winterclarity; -use base qw( LJ::S2Theme::drifting ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/easyread.pm --- a/cgi-bin/LJ/S2Theme/easyread.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/easyread.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,50 +5,4 @@ sub layouts { ( "1" => "one-column" ) } sub layouts { ( "1" => "one-column" ) } sub layout_prop { "layout_type" } -sub designer { "rb" } - -package LJ::S2Theme::easyread::clovers; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::easyread::green; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } - -package LJ::S2Theme::easyread::hcblack; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::easyread::hcblackandyellow; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::easyread::hcblueyellow; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::easyread::hcwhite; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::easyread::lcorange; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::easyread::nnwm2009; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::easyread::toros; -use base qw( LJ::S2Theme::easyread ); -sub cats { qw() } -sub designer { "zvi" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/fluidmeasure.pm --- a/cgi-bin/LJ/S2Theme/fluidmeasure.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/fluidmeasure.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,52 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::fluidmeasure::beachaftersunset; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::fluidmeasure::marblei; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::fluidmeasure::marbleii; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::fluidmeasure::mutedseashore; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } -sub designer { "cimorene" } - -package LJ::S2Theme::fluidmeasure::nnwm2009; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::fluidmeasure::nutmeg; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } - -package LJ::S2Theme::fluidmeasure::pigeonblue; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::fluidmeasure::spice; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } - -package LJ::S2Theme::fluidmeasure::summerdark; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } - -package LJ::S2Theme::fluidmeasure::wooded; -use base qw( LJ::S2Theme::fluidmeasure ); -sub cats { qw() } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/funkycircles.pm --- a/cgi-bin/LJ/S2Theme/funkycircles.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/funkycircles.pm Fri Oct 29 16:39:24 2010 +0800 @@ -4,8 +4,6 @@ use strict; sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } - -sub designer { "ninetydegrees" } sub page_props { my $self = shift; @@ -52,51 +50,4 @@ sub entry_props { return $self->_append_props( "entry_props", @props ); } -package LJ::S2Theme::funkycircles::atomicorange; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } - -package LJ::S2Theme::funkycircles::chocolaterose; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } - -package LJ::S2Theme::funkycircles::darkblue; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } - -package LJ::S2Theme::funkycircles::darkpurple; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } - -package LJ::S2Theme::funkycircles::earthygreen; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } - -package LJ::S2Theme::funkycircles::industrialpink; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } - -package LJ::S2Theme::funkycircles::industrialteal; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } - -package LJ::S2Theme::funkycircles::lightondark; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } -sub designer { "cesy" } - -package LJ::S2Theme::funkycircles::nevermore; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } -sub designer { "wizard101" } - -package LJ::S2Theme::funkycircles::nnwm2009; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::funkycircles::seablues; -use base qw( LJ::S2Theme::funkycircles ); -sub cats { qw() } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/modish.pm --- a/cgi-bin/LJ/S2Theme/modish.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/modish.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,61 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::modish::bluespruce; -use base qw( LJ::S2Theme::modish ); -sub cats { qw( featured ) } -sub designer { "sarken" } - -package LJ::S2Theme::modish::cinnamonplumtea; -use base qw( LJ::S2Theme::modish ); -sub cats { qw( featured ) } -sub designer { "sarken" } - -package LJ::S2Theme::modish::cleansheets; -use base qw( LJ::S2Theme::modish ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::modish::greyscale; -use base qw( LJ::S2Theme::modish ); -sub cats { qw() } -sub designer { "twtd" } - -package LJ::S2Theme::modish::houlihan; -use base qw( LJ::S2Theme::modish ); -sub cats { qw( featured ) } -sub designer { "sarken" } - -package LJ::S2Theme::modish::moonlight; -use base qw( LJ::S2Theme::modish ); -sub cats { qw( featured ) } -sub designer { "sarken" } - -package LJ::S2Theme::modish::nnwm2009; -use base qw( LJ::S2Theme::modish ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::modish::plasticgrass; -use base qw( LJ::S2Theme::modish ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::modish::porcelainteacup; -use base qw( LJ::S2Theme::modish ); -sub cats { qw( featured ) } -sub designer { "sarken" } - -package LJ::S2Theme::modish::trusty; -use base qw( LJ::S2Theme::modish ); -sub cats { qw( featured ) } -sub designer { "sarken" } - -package LJ::S2Theme::modish::verdigris; -use base qw( LJ::S2Theme::modish ); -sub cats { qw() } -sub designer { "zvi" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/modular.pm --- a/cgi-bin/LJ/S2Theme/modular.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/modular.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,67 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::modular::amberandgreen; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } - -package LJ::S2Theme::modular::bubblegum; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } - -package LJ::S2Theme::modular::calculatedrisks; -use base qw( LJ::S2Theme::modular ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::modular::coffeeandcream; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } - -package LJ::S2Theme::modular::distinctblue; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } - -package LJ::S2Theme::modular::freshprose; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::modular::greensummer; -use base qw( LJ::S2Theme::modular ); -sub cats { qw () } - -package LJ::S2Theme::modular::irisatdusk; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } - -package LJ::S2Theme::modular::mediterraneanpeach; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } - -package LJ::S2Theme::modular::olivetree; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } - -package LJ::S2Theme::modular::patchwork; -use base qw( LJ::S2Theme::modular ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::modular::purplehaze; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::modular::subtlemisses; -use base qw( LJ::S2Theme::modular ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::modular::swiminthesea; -use base qw( LJ::S2Theme::modular ); -sub cats { qw() } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/negatives.pm --- a/cgi-bin/LJ/S2Theme/negatives.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/negatives.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,85 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right" ) } sub layout_prop { "layout_type" } -sub designer { "phoenix" } - -package LJ::S2Theme::negatives::autumn; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - -package LJ::S2Theme::negatives::azure; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "daven" } - -package LJ::S2Theme::negatives::black; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } - -package LJ::S2Theme::negatives::blastedsands; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::negatives::bridalbouquet; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - -package LJ::S2Theme::negatives::corporateembrace; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - -package LJ::S2Theme::negatives::easyreader; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - -package LJ::S2Theme::negatives::evening; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - -package LJ::S2Theme::negatives::lightondark; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "cesy" } - -package LJ::S2Theme::negatives::limecherry; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::negatives::nnwm2009; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::negatives::pumpkinjuice; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::negatives::spring; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - -package LJ::S2Theme::negatives::summer; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - -package LJ::S2Theme::negatives::winter; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - -package LJ::S2Theme::negatives::yozakura; -use base qw( LJ::S2Theme::negatives ); -sub cats { qw() } -sub designer { "busaikko" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/nouveauoleanders.pm --- a/cgi-bin/LJ/S2Theme/nouveauoleanders.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/nouveauoleanders.pm Fri Oct 29 16:39:24 2010 +0800 @@ -4,8 +4,6 @@ use strict; sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } - -sub designer { "branchandroot" } sub entry_props { my $self = shift; @@ -45,49 +43,4 @@ sub comment_props { return $self->_append_props( "comment_props", @props ); } -package LJ::S2Theme::nouveauoleanders::dustyantique; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw() } - -package LJ::S2Theme::nouveauoleanders::huntergreen; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::nouveauoleanders::nightfall; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::nouveauoleanders::palejewels; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw( featured ) } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::nouveauoleanders::peridot; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw( featured ) } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::nouveauoleanders::piquant; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw() } - -package LJ::S2Theme::nouveauoleanders::seaandsalt; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw() } - -package LJ::S2Theme::nouveauoleanders::sienna; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw() } - -package LJ::S2Theme::nouveauoleanders::tearose; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw( featured ) } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::nouveauoleanders::wisteria; -use base qw( LJ::S2Theme::nouveauoleanders ); -sub cats { qw() } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/practicality.pm --- a/cgi-bin/LJ/S2Theme/practicality.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/practicality.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,43 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::practicality::agingcopper; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::practicality::cherryblossoms; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw( featured ) } - -package LJ::S2Theme::practicality::chococraze; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw( featured ) } - -package LJ::S2Theme::practicality::neutralgood; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw( featured ) } - -package LJ::S2Theme::practicality::nightlight; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw( featured ) } - -package LJ::S2Theme::practicality::nnwm2010fresh; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw() } - -package LJ::S2Theme::practicality::nnwm2010warmth; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw() } - -package LJ::S2Theme::practicality::poppyfields; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw( featured ) } - -package LJ::S2Theme::practicality::warmth; -use base qw( LJ::S2Theme::practicality ); -sub cats { qw( featured ) } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/refriedtablet.pm --- a/cgi-bin/LJ/S2Theme/refriedtablet.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/refriedtablet.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,76 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "zvi" } - -package LJ::S2Theme::refriedtablet::autumnnight; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } - -package LJ::S2Theme::refriedtablet::bluetuesday; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "forthwritten" } - -package LJ::S2Theme::refriedtablet::californiaroll; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } - -package LJ::S2Theme::refriedtablet::cherryicing; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } - -package LJ::S2Theme::refriedtablet::damage; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::refriedtablet::easier; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::refriedtablet::foliage; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::refriedtablet::gentleearth; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::refriedtablet::refriedclassic; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } - -package LJ::S2Theme::refriedtablet::refriedjewels; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::refriedtablet::paisaje; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::refriedtablet::refriedshallows; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::refriedtablet::seeded; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } - -package LJ::S2Theme::refriedtablet::teals; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "rising" } - -package LJ::S2Theme::refriedtablet::vintagemodern; -use base qw( LJ::S2Theme::refriedtablet ); -sub cats { qw() } -sub designer { "rising" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/skittlishdreams.pm --- a/cgi-bin/LJ/S2Theme/skittlishdreams.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/skittlishdreams.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,65 +5,10 @@ sub layouts { ( "2r" => "two-columns-rig sub layouts { ( "2r" => "two-columns-right", "2l" => "two-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "Kaigou" } - sub entry_props { my $self = shift; my @props = qw( color_entry_title_border color_entry_title_border_alt color_entry_metadata_text ); return $self->_append_props( "entry_props", @props ); } -package LJ::S2Theme::skittlishdreams::academy; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } -sub designer { "sarken" } - -package LJ::S2Theme::skittlishdreams::blue; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } - -package LJ::S2Theme::skittlishdreams::cyan; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } - -package LJ::S2Theme::skittlishdreams::desertcream; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } -sub designer { "sarken" } - -package LJ::S2Theme::skittlishdreams::green; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } - -package LJ::S2Theme::skittlishdreams::inthebag; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } -sub designer { "sarken" } - -package LJ::S2Theme::skittlishdreams::likesunshine; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } -sub designer { "sarken" } - -package LJ::S2Theme::skittlishdreams::orange; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } - -package LJ::S2Theme::skittlishdreams::pink; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } - -package LJ::S2Theme::skittlishdreams::red; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } - -package LJ::S2Theme::skittlishdreams::snowcherries; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } -sub designer { "sarken" } - -package LJ::S2Theme::skittlishdreams::violet; -use base qw( LJ::S2Theme::skittlishdreams ); -sub cats { qw() } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/steppingstones.pm --- a/cgi-bin/LJ/S2Theme/steppingstones.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/steppingstones.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,53 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::steppingstones::chocolate; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } - -package LJ::S2Theme::steppingstones::cleargreen; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } -sub designer { "ambrya" } - -package LJ::S2Theme::steppingstones::duskyrose; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } - -package LJ::S2Theme::steppingstones::friendlycolors; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw( featured ) } -sub designer { "kareila" } - -package LJ::S2Theme::steppingstones::gray; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } - -package LJ::S2Theme::steppingstones::nnwm2009; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::steppingstones::olive; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } - -package LJ::S2Theme::steppingstones::pool; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } - -package LJ::S2Theme::steppingstones::purple; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } - -package LJ::S2Theme::steppingstones::shadows; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } - -package LJ::S2Theme::steppingstones::sunset; -use base qw( LJ::S2Theme::steppingstones ); -sub cats { qw() } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/tranquilityiii.pm --- a/cgi-bin/LJ/S2Theme/tranquilityiii.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/tranquilityiii.pm Fri Oct 29 16:39:24 2010 +0800 @@ -5,73 +5,4 @@ sub layouts { ( "1" => "one-column", "2l sub layouts { ( "1" => "one-column", "2l" => "two-columns-left", "2r" => "two-columns-right", "3" => "three-columns-sides", "3r" => "three-columns-right", "3l" => "three-columns-left" ) } sub layout_prop { "layout_type" } -sub designer { "branchandroot" } - -package LJ::S2Theme::tranquilityiii::brick; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } - -package LJ::S2Theme::tranquilityiii::clearmessages; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::tranquilityiii::deeppurple; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw( featured ) } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::tranquilityiii::freshblue; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } -sub designer { "forthwritten" } - -package LJ::S2Theme::tranquilityiii::lightondark; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } -sub designer { "cesy" } - -package LJ::S2Theme::tranquilityiii::lilac; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } - -package LJ::S2Theme::tranquilityiii::marbleiii; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::tranquilityiii::nightsea; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } - -package LJ::S2Theme::tranquilityiii::nnwm2009; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } -sub designer { "zvi" } - -package LJ::S2Theme::tranquilityiii::olive; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::tranquilityiii::seadeep; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::tranquilityiii::shallows; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } -sub designer { "dancing_serpent" } - -package LJ::S2Theme::tranquilityiii::stonemask; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw( featured ) } -sub designer { "timeasmymeasure" } - -package LJ::S2Theme::tranquilityiii::wintergreen; -use base qw( LJ::S2Theme::tranquilityiii ); -sub cats { qw() } -sub designer { "dancing_serpent" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/S2Theme/zesty.pm --- a/cgi-bin/LJ/S2Theme/zesty.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/S2Theme/zesty.pm Fri Oct 29 16:39:24 2010 +0800 @@ -2,7 +2,4 @@ use base qw( LJ::S2Theme ); use base qw( LJ::S2Theme ); use strict; -sub cats { qw() } -sub designer { "exampleusername" } - 1; diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/LJ/Widget/ThemeNav.pm --- a/cgi-bin/LJ/Widget/ThemeNav.pm Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/LJ/Widget/ThemeNav.pm Fri Oct 29 16:39:24 2010 +0800 @@ -282,7 +282,7 @@ sub js { for (var arg in getArgs) { if (!getArgs.hasOwnProperty(arg)) continue; if (arg == "authas" || arg == "show") continue; - DOM.addEventListener(filter_link, "click", function (evt) { self.filterThemes(evt, arg, getArgs[arg]) }); + DOM.addEventListener(filter_link, "click", function (evt) { self.filterThemes(evt, arg, unescape( getArgs[arg] ) ) }); evt_listener_added = 1; break; } diff -r 09d54b296645 -r c89cce13dcc4 cgi-bin/ljlib.pl --- a/cgi-bin/ljlib.pl Fri Oct 29 15:09:47 2010 +0800 +++ b/cgi-bin/ljlib.pl Fri Oct 29 16:39:24 2010 +0800 @@ -1228,6 +1228,7 @@ sub handle_caches %LJ::CACHE_CODES = (); %LJ::CACHE_USERPROP = (); # {$prop}->{ 'upropid' => ... , 'indexed' => 0|1 }; %LJ::CACHE_ENCODINGS = (); + return 1; } @@ -1249,6 +1250,7 @@ sub start_request $LJ::ACTIVE_CRUMB = ''; # clear active crumb %LJ::CACHE_USERPIC = (); # picid -> hashref %LJ::CACHE_USERPIC_INFO = (); # uid -> { ... } + %LJ::CACHE_S2THEME = (); %LJ::REQ_CACHE_USER_NAME = (); # users by name %LJ::REQ_CACHE_USER_ID = (); # users by id %LJ::REQ_CACHE_REL = (); # relations from LJ::check_rel() diff -r 09d54b296645 -r c89cce13dcc4 htdocs/js/admin/themes/category.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/js/admin/themes/category.js Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,52 @@ +jQuery(function($) { + $("#clear_visible").click(function (event) { + $("#table_data tr:visible input[type='checkbox']:checked").each( function (_,x) { + x.checked = false; + } ); + event.preventDefault(); + }); + + $("#check_visible").click(function (event) { + $("#table_data tr:visible input[type='checkbox']").each( function (_,x) { + x.checked = true; + } ); + event.preventDefault(); + }); + + $("#filter_apply").click(function () { + var act = $("#filter_act")[0].value; + var redist = $("#filter_redist")[0].value; + var header; + var ct; + var handle_header = function ( nh ) { + if ( header != undefined ) + if ( ct == 0 ) + header.hide(); + else + header.show(); + header = nh; + ct = 0; + } + $("#table_data tr").each( function (_,x) { + var xj = $(x); + if ( xj.attr('data-header') ) + return handle_header( xj ); + var vl = $("input[type='checkbox']", x)[0]; + var show = 1; + if ( show && act == "active" ) + show = vl.checked ? 1 : 0; + else if ( show && act == "inactive" ) + show = vl.checked ? 0 : 1; + if ( show && redist.length > 0 && + xj.attr('data-redist').indexOf( redist ) == -1 ) + show = false; + if ( show ) { + ct++; + xj.show(); + } else { + xj.hide(); + } + }); + handle_header(); + }); +}); diff -r 09d54b296645 -r c89cce13dcc4 htdocs/js/admin/themes/index.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/htdocs/js/admin/themes/index.js Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,37 @@ +jQuery(function($) { + var select = $( '#edit_theme' ); + var optgr = $( 'optgroup', select ); + + var theme_layers = {}; + var out_layers = $( '<select />' ); + select.before( out_layers ); + + $.each( optgr, function(_, x) { + var themes = $( 'option', x ); + theme_layers[ x.label ] = $.map( themes, function (y) { + return y.text; + }); + out_layers.append( $("<option/>", { + 'value': x.label, + 'text': x.label + }) ); + }); + select.empty(); + + var update_themes = function () { + select.empty(); + var lay = out_layers[0].value; + if ( theme_layers[ lay ] == undefined ) return; + $.each( theme_layers[ lay ], function(_, x) { + select.append( $("<option/>", { + 'value': lay + "/" + x, + 'text': x + }) ); + }); + }; + + out_layers.change( update_themes ); + update_themes(); + + window._dbg = theme_layers; +}); diff -r 09d54b296645 -r c89cce13dcc4 views/admin/themes/category.tt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/views/admin/themes/category.tt Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,47 @@ +[%- sections.title = '.title' | ml ( category = category ) -%] +[%- dw.need_res( { group => 'jquery' }, 'js/admin/themes/category.js' ) -%] +[%- CALL dw.active_resource_group( 'jquery' ) -%] +[%- sections.head = BLOCK -%] +<style type="text/css"> +td, th { padding: 4px; } +</style> +[%- END -%] + +</tr> +<p><a href="[% roots.site %]/admin/themes/">[% '.back.link' | ml %]</a></p> +<strong>[% '.filter.label' | ml %]</strong> +<select id="filter_act"> + <option value="all">[% '.filter.act.all' | ml %]</option> + <option value="active">[% '.filter.act.on' | ml %]</option> + <option value="inactive">[% '.filter.act.off' | ml %]</option> +</select> +<input id="filter_redist" /> +<input type="button" value="[% '.filter.apply' | ml %]" id="filter_apply" /> +<form method="post" action="/admin/themes/category"> +[% dw.form_auth %] +<input type="hidden" name="category" value="[% category %]" /> +<input type="submit" value="[% '.commit_all' | ml %]" /> +<input type="button" value="[% '.visible.clear' | ml %]" id="clear_visible" /> +<input type="button" value="[% '.visible.check' | ml %]" id="check_visible" /> +[%- UNLESS is_system -%][%- IF can_delete %] +<input type="submit" value="[% '.delete' | ml %]" name="delete" /> +[%- ELSE -%] +[% '.delete.note' | ml %] +[%- END -%][%- END -%]<br/> +<table> +<tbody id="table_data"> +[%- FOREACH lay IN layers.keys.sort -%] +<tr data-header="1"> + <td colspan="2"><strong>[% lay %]</strong></td></td> +</tr> +[%- FOREACH theme IN layers.$lay.keys.sort -%] +[%- s2lid = layers.$lay.$theme.s2lid -%] +<tr data-redist='[% lay %]/[% theme %]'> + <td><input type="checkbox" id="s2lid_act_[% s2lid %]" value="1" name="s2lid_act_[% s2lid %]" [% active.$s2lid ? "checked='checked'" : "" %] /></td> + <td><label for="s2lid_act_[% s2lid %]">[% theme %]</label></td> +</tr> +[%- END -%][%- END -%] +</tbody> +</table> +<input type="submit" value="[% '.commit_all' | ml %]" /> +</form> diff -r 09d54b296645 -r c89cce13dcc4 views/admin/themes/category.tt.text --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/views/admin/themes/category.tt.text Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,25 @@ +;; -*- coding: utf-8 -*- + +.back.link=<< Back + +.commit_all=Commit All + +.delete.note=( Clear all and commit to be able to delete ) + +.delete=Delete + +.filter.act.all=All + +.filter.act.off=Inactive Only + +.filter.act.on=Active Only + +.filter.apply=Apply + +.filter.label=Filtering: + +.title=Edit Category: [[category]] + +.visible.check=Check Visible + +.visible.clear=Clear Visible diff -r 09d54b296645 -r c89cce13dcc4 views/admin/themes/index.tt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/views/admin/themes/index.tt Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,26 @@ +[%- sections.title = '.admin.link' | ml -%] +[%- dw.need_res( { group => 'jquery' }, 'js/admin/themes/index.js' ) -%] +[%- CALL dw.active_resource_group( 'jquery' ) -%] + +<form action="/admin/themes/theme" method="get"><strong>[% '.edit_theme.label' | ml %]</strong> +<select name="theme" id="edit_theme"> +[%- FOREACH lay IN layers.keys.sort -%] +<optgroup label="[% lay %]"> +[%- FOREACH theme IN layers.$lay.sort -%] +<option value="[% lay %]/[% theme %]">[% theme %]</option> +[%- END -%] +</optgroup> +[%- END -%] +</select> <input type="submit" value="[% '.edit_theme.btn' | ml %]" /></form> + +<form action="/admin/themes/category" method="get"><strong>[% '.edit_category.label' | ml %]</strong> +<select name="category" id="cat_sel">[% FOREACH cat IN categories %] +<option value="[% cat %]" [% IF cat == "featured" %]selected='selected'[% END %]>[% cat %]</option> +[% END %]</select> +<input type="submit" value="[% '.edit_category.btn' | ml %]" /> +</form> + +<form action="/admin/themes/category" method="get"><strong>[% '.add_category.label' | ml %]</strong> +<input name="category" id="cat_text" /> +<input type="submit" value="[% '.add_category.btn' | ml %]" /> +</form> diff -r 09d54b296645 -r c89cce13dcc4 views/admin/themes/index.tt.text --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/views/admin/themes/index.tt.text Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,13 @@ +;; -*- coding: utf-8 -*- + +.add_category.btn=Add / Edit +.add_category.label=Add Category: + +.admin.link=Theme Metadata +.admin.text=Manage theme metadata ( categories ) + +.edit_category.btn=Edit +.edit_category.label=Edit Category: + +.edit_theme.btn=Edit +.edit_theme.label=Edit Theme: diff -r 09d54b296645 -r c89cce13dcc4 views/admin/themes/theme.tt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/views/admin/themes/theme.tt Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,50 @@ +[%- sections.title = '.title' | ml ( layout = theme.layout_name, theme = theme.name ) -%] +[%- sections.head = BLOCK -%] +<style type="text/css"> +td, th { padding: 4px; } +.action_links { font-size: 1em; } +</style> +[%- END -%] + +<form method="post" action="[% roots.site %]/admin/themes/theme"> +[% dw.form_auth %] +<input type="hidden" name="theme" value="[% theme_arg %]" /> +<p class="action_links"> +<a href="[% roots.site %]/admin/themes/">[% '.back.link' | ml %]</a> || +<a href="[% roots.site %]/customize/preview_redirect?themeid=[% theme.s2lid %]" target="_blank">[% '.preview.link' | ml %]</a> || [% '.source' | ml %] ( +<a href="[% roots.site %]/customize/advanced/layersource?id=[% theme.b2lid %]&fmt=html" target="_blank">[% '.source.theme' | ml %]</a> || +<a href="[% roots.site %]/customize/advanced/layersource?id=[% theme.s2lid %]&fmt=html" target="_blank">[% '.source.layer' | ml %]</a> ) +</p> +<p><strong>[% '.designer' | ml %]</strong> [% theme.designer %]</p> + +<img src="[% theme.preview_imgurl %]" alt="" /> +<br/> + +<input type="submit" value="[% '.commit' | ml %]" /> + +<p>[% '.categories' | ml %]</p> +<table> +<thead> +<tr> + <th>[% '.header.active' | ml %]</th> + <th>[% '.header.category' | ml %]</th> + <th>[% '.header.remove' | ml %]</th> +</tr> +</thead> +<tbody> +[% FOREACH key IN cat_keys %][%- cat = cats.$key -%] +<tr> + <td><input type="checkbox" id="cat_act_[% cat.kwid %]" value="[% cat.keyword %]" name="cat_act_[% cat.kwid %]" [% cat.active ? "checked='checked'" : "" %] /></td> + [% IF cat.special %] + <td><strong>[% cat.keyword %]</strong></td> + <td>[% '.remove.na' | ml %]</td> + [% ELSE %] + <td><label for="cat_act_[% cat.kwid %]">[% cat.keyword %]</label></td> + <td><input type="checkbox" id="cat_remove_[% cat.kwid %]" value="[% cat.keyword %]" name="cat_remove_[% cat.kwid %]" /></td> + [% END %] +</tr> +</tbody> +[% END %]</table> +<p><label for="cat_add">[% '.add.label' | ml %]</label>[% '.add.hint' | ml %]<br/><input name="cat_add" id="cat_add" /></p> +<input type="submit" value="[% '.commit' | ml %]" /> +</form> diff -r 09d54b296645 -r c89cce13dcc4 views/admin/themes/theme.tt.text --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/views/admin/themes/theme.tt.text Fri Oct 29 16:39:24 2010 +0800 @@ -0,0 +1,29 @@ +;; -*- coding: utf-8 -*- + +.add.hint=( comma seperated ) + +.add.label=Add Categories: + +.back.link=<< Back + +.categories=Categories: + +.commit=Commit + +.designer=Designer: + +.header.active=Active + +.header.category=Category + +.header.remove=Remove + +.preview.link=Preview + +.remove.na=N/A + +.source=Source +.source.layer=Layer +.source.theme=Theme + +.title=Edit Metadata: [[layout]]/[[theme]] --------------------------------------------------------------------------------