[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SF.net SVN: ledger-smb: [1293] trunk/lsmb-request.pl



Revision: 1293
          http://svn.sourceforge.net/ledger-smb/?rev=1293&view=rev
Author:   einhverfr
Date:     2007-06-21 12:24:27 -0700 (Thu, 21 Jun 2007)

Log Message:
-----------
Adding first draft at new handler.

Added Paths:
-----------
    trunk/lsmb-request.pl

Added: trunk/lsmb-request.pl
===================================================================
--- trunk/lsmb-request.pl	                        (rev 0)
+++ trunk/lsmb-request.pl	2007-06-21 19:24:27 UTC (rev 1293)
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+=head1 NAME
+The LedgerSMB Request Handler
+
+=head1 SYNOPSYS
+This file receives the web request, instantiates the proper objects, and passes
+execution off to the appropriate workflow scripts.  This is for use with new 
+code only and should not be used with old SQL-Ledger(TM) code as it is 
+architecturally dissimilar.
+
+=head1 COPYRIGHT
+
+Copyright (C) 2007 The LedgerSMB Core Team
+
+This file is licensed under the GNU General Public License (GPL)  version 2 or 
+at your option any later version.  A copy of the GNU GPL has been included with
+this software.
+
+=cut
+
+package LedgerSMB::Handler;
+
+use LedgerSMB::Sysconfig;
+use Digest::MD5;
+use Error qw(:try);
+
+$| = 1;
+
+use LedgerSMB::User;
+use LedgerSMB;
+use LedgerSMB::Locale;
+use LedgerSMB::Session;
+use Data::Dumper;
+
+# for custom preprocessing logic
+eval { require "custom.pl"; };
+
+$request = new LedgerSMB;
+
+$0 =~ m/([^\/\\]*.pl)$/;
+if (!$1){
+	$0 =~ m/([^\/\\]*.pl)[? ]/;
+}
+
+$script = $1;
+
+$locale = LedgerSMB::Locale->get_handle( ${LedgerSMB::Sysconfig::language} )
+  or $form->error( __FILE__ . ':' . __LINE__ . ": Locale not loaded: $!\n" );
+
+if (!$script){
+	$request->error($locale->text('No workflow script specified'));
+}
+
+eval { require "scripts/$script" } || $request->error($locale->text('Unable to open script' . ": $!";
+
+$script =~ s/\.pl$//;
+$script = "LedgerSMB::Scripts::$script";
+$script->can($request->{action}) || $request->error($locale->text("Action Not Defined: ") . $request->{action};
+
+$script->can($request->{action})->($request);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.