GT::SQL::Admin - instant admin for any sql table.
my $cgi = new GT::CGI; my $db = new GT::SQL '/path/to/def'; my $admin = new GT::SQL::Admin; if ($admin->for_me($cgi)) { $admin->process ( db => $db, cgi => $cgi ); }
GT::SQL::Admin provides an easy way to build a table/relation management application. It provides all the HTML and code to easily:
1. Add records 2. Delete records 3. Modify records 4. Search records 5. Add columns 6. Drop columns 7. Alter table properties 8. Import data 9. Export data
all in about 6 lines of code.
To use GT::SQL::Admin you need to pass in an existing the GT::SQL manpage object, and a the GT::CGI manpage object.
In it's simplest usage, you can simply call:
my $admin = new GT::SQL::Admin; $admin->process ( db => $db, cgi => $cgi );
and the admin module will figure out what was requested and display the appropriate screen. There is a $admin->for_me method that will look to see if the cgi object contains something for the admin to do, returning 1 if yes, 0 otherwise. You would then do:
my $cgi = new GT::CGI; my $admin = new GT::SQL::Admin; if ($admin->for_me($cgi)) { $admin->process ( db => $db, cgi => $cgi ); }
You can also call any of the methods individually. You can create an add form like:
$admin->add_form;
and it will be printed to STDOUT.
To change the look of a page, you can pass in strings or code refs to display any of the following items:
start_html header start_form end_form footer end_html
and the admin will use your html/code when displaying. You can also pass in to process:
record => 'MyObject'
and the admin will use that string when displaying titles like 'Add MyObject'. If you don't specify, it will default to the name of the table.
You can enhance the functionality of an admin quite easily. By default GT::SQL::Admin expects to find a GT::SQL object, a GT::CGI object, and uses internally a GT::SQL::Display::HTML object for any form/record html generation.
Alternatively, you can subclass one or more of the above and use your
own libraries. For instance, if you wanted to expand the form generation,
you could subclass the GT::SQL::Display::HTML object and override the display()
and form()
method with your own.
The admin will pass in a 'mode' to both display and form that will tell you what it is using the form for. This can be one of:
search_form search_results add_form add_success delete_search_form delete_search_results download_file modify_search_form modify_search_results modify_form modify_success modify_multi_search_results modify_multi_results_norec modify_multi_result_changed modify_multi_results_err
There are also several options that can be passed in. See the the GT::SQL::Display::HTML manpage module for more information.
Also be sure to read about subclassing in the GT::SQL manpage.
Copyright (c) 2004 Gossamer Threads Inc. All Rights Reserved. http://www.gossamer-threads.com/
Revision: $Id: Admin.pm,v 1.146 2005/03/15 00:35:29 brewt Exp $