matts       2003/02/05 08:29:47

  Added:       lib/Apache/AxKit/Language Petal.pm
  Log:
  Start of a Petal Language module. This is broken though - so don't try it yet 
;-)
  
  Revision  Changes    Path
  1.1                  xml-axkit/lib/Apache/AxKit/Language/Petal.pm
  
  Index: Petal.pm
  ===================================================================
  # $Id: Petal.pm,v 1.1 2003/02/05 16:29:47 matts Exp $
  
  package Apache::AxKit::Language::Petal;
  
  use strict;
  use vars qw/@ISA $VERSION/;
  use Petal;
  use Apache;
  use Apache::Request;
  use Apache::AxKit::Language;
  use Apache::AxKit::Provider;
  use XML::Simple;
  
  @ISA = 'Apache::AxKit::Language';
  
  $VERSION = 1.0; # this fixes a CPAN.pm bug. Bah!
  
  sub handler {
      my $class = shift;
      my ($r, $xml, $style, $last_in_chain) = @_;
      
      my $xmlstring;
      
      AxKit::Debug(7, "[Petal] getting the XML");
      
      if (my $dom = $r->pnotes('dom_tree')) {
          $xmlstring = $dom->toString;
          delete $r->pnotes()->{'dom_tree'};
      }
      else {
          $xmlstring = $r->pnotes('xml_string');
      }
      
      # Setup petal variables
      local $Petal::INPUT = 'XML';
      local $Petal::OUTPUT = $last_in_chain ? 'XHTML' : 'XML';
      local $Petal::DISK_CACHE = 1;
      local $Petal::MEMORY_CACHE = 1;
      
      AxKit::Debug(7, "[Petal] parsing stylesheet");
      my $stylesheet = Petal->new(file => ugh);
      
      AxKit::Debug(7, "[Petal] parsing input");
      my $hash = XMLin($xmlstring, forcearray => 1);
      
      AxKit::Debug(7, "[Petal] performing transformation");
      $r->print( $stylesheet->process($hash) );
      
      return Apache::Constants::OK;
  }
  
  1;
  
  
  
  

Reply via email to