Error" . shift; }; my $dbr = LJ::get_db_reader(); my $remote = LJ::get_remote(); my $id = $GET{'id'}; return BML::redirect('layerbrowse.bml') unless $id =~ /^\d+$/; my $lay = defined $pub->{$id} ? $pub->{$id} : LJ::S2::load_layer($id); return $err->("The specified layer does not exist.") unless $lay; my $layerinfo = {}; LJ::S2::load_layer_info($layerinfo, [ $id ]); my $srcview = exists $layerinfo->{$id}->{'source_viewable'} ? $layerinfo->{$id}->{'source_viewable'} : undef; # authorized to view this layer? my $isadmin = !defined $pub->{$id} && # public styles are pulled from the system (LJ::check_priv($remote, 'canview', 'styles') || # account, so we don't want to check privileges LJ::check_priv($remote, 'canview', '*')); # in case they're private styles return $err->("You are not authorized to view this layer.") unless defined $pub->{$id} && (! defined $srcview || $srcview != 0) || $srcview == 1 || LJ::can_manage($remote, $lay->{'userid'}) || $isadmin; my $s2code = $dbr->selectrow_array("SELECT s2code FROM s2source WHERE s2lid=?", undef, $id); # get html version of the code? if ($GET{'fmt'} eq "html") { my $html; my ($md5, $save_cache); if ($pub->{$id}) { # let's see if we have it cached $md5 = Digest::MD5::md5_hex($s2code); my $cache = $dbr->selectrow_array("SELECT value FROM blobcache WHERE bckey='s2html-$id'"); if ($cache =~ s/^\[$md5\]//) { $html = $cache; } else { $save_cache = 1; } } unless ($html) { my $cr = new S2::Compiler; $cr->compile_source({ 'source' => \$s2code, 'output' => \$html, 'format' => "html", 'type' => $pub->{$id}->{'type'}, }); } if ($save_cache) { my $dbh = LJ::get_db_writer(); $dbh->do("REPLACE INTO blobcache (bckey, dateupdate, value) VALUES (?,NOW(),?)", undef, "s2html-$id", "[$md5]$html"); } return $html; } # return text version BML::set_content_type("text/plain"); BML::noparse(); return $s2code; } _code?>