-
Notifications
You must be signed in to change notification settings - Fork 13
Plugins
eseyman edited this page Nov 3, 2012
·
1 revision
There are a number of modules on CPAN that have been designed to work as a plugin for CGI::Application. They usually export useful methods that you can use in your application module.
- Ajax - see CGI::Application::Plugin::HTMLPrototype plugin
- CGI::Application::Plugin::ActionDispatch -- Catalyst-style URL-to-runmode-mapping.
- CGI::Application::Plugin::AnyTemplate -- unified API to multiple templating systems (HTML::Template, Template::Toolkit, Petal)
- CGI::Application::Plugin::Apache -- integration with ModPerl Apache::* modules -- Apache::Request, Apache::Cookie, etc.
- CGI::Application::Plugin::AutoRunmode -- offers several ways to automatically register run modes
- CGI::Application::Plugin::Authentication -- offers several ways to authenticate users. Includes a default login screen.
- CGI::Application::Plugin::Authorization -- authorize users for specific tasks
- CGI::Application::Plugin::BREAD - offers database management (browsing, reading, editing, adding and deleting)
- CGI::Application::Plugin::CAPTCHA - for generating and validating simple captchas
- CGI::Application::Plugin::CaptureIO - A caching plugin.
- CGI::Application::Plugin::CHI - Integration with CHI caching framework
- CGI::Application::Plugin::CompressGzip -- add automatic gzip encoding to text output (works under plain cgi and mod_perl!)
- CGI::Application::Plugin::ConfigAuto -- easy config file management
- CGI::Application::Plugin::Config::Context -- hierarchical, context-based configuration
- CGI::Application::Plugin::Config::Simple -- integration with Config::Simple
- CGI::Application::Plugin::ProtectCSRF -- protection from Cross Site Request Forgery. See also this ProtectCSRF discussion
- CGI::Application::Plugin::DebugScreen -- provide helpful debugging context instead of an internal server error screen.
- CGI::Application::Plugin::DevPopup -- Runtime cgiapp info in a popup window
- CGI::Application::Plugin::DBIProfiler - Provides graphical profiling of DBI queries. Currently unreleased.
- CGI::Application::Plugin::DBH -- easy DBI access
- CGI::Application::Plugin::Eparam -- helps with language encoding of parameters, but currently lacks any documentation or tests.
- CGI::Application::Plugin::ErrorPage -- A simple error page shortcut
- CGI::Application::Plugin::Feedback -- helps store and return bits of feedback to the user.
- CGI::Application::Plugin::FillInForm -- HTML::FillInForm integration
- CGI::Application::Plugin::Forward -- Keep the current run mode up to date when forwarding run modes
- CGI::Application::Plugin::HTDot -- Integration with HTML::Template::Plugin::Dot
- CGI::Application::Plugin::HTMLPrototype -- Integration with HTML::Prototype
- CGI::Application::Plugin::HtmlTidy -- adds html validation; optionally it can also make your output (x)html conformant
- CGI::Application::Plugin::I18N -- Internationalization (I18N) and localization (l10n) functionality
- CGI::Application::Plugin::JSON -- easily produce JSON output
- CGI::Application::Plugin::LinkIntegrity -- adds helper methods to check if links have been tampered with.
- CGI::Application::Plugin::LogDispatch -- Integration with Log::Dispatch
- CGI::Application::Plugin::MessageStack -- a message passing system which can store messages in a session and integrate with templating systems.
- CGI::Application::Plugin::Output::XSV -- Simplifies generating XSV output in a run mode via Text::CSV_XS
- CGI::Application::Plugin::PageBuilder -- tries to simplify building pages that require multiple templates. See the AnyTemplate plugin for an alternate solution.
- CGI::Application::Plugin::RateLimit -- limits runmode call rate per user. Good for limiting login attempts, contact form email submissions, etc.
- CGI::Application::Plugin::Redirect -- provides a shortcut for redirecting.
- CGI::Application::Plugin::Routes - brings to Perl some of the goodies of Rails routes by creating a routes table that is parsed at the prerun stage against CGI path_info data
- CGI::Application::Plugin::RunmodeDeclare - declare runmodes with keywords (startmode, errormode, runmode), and optionally pull named parameters
- CGI::Application::Plugin::Session -- adds CGI::Session support
- CGI::Application::Plugin::Stash -- use Catalyst "stash" syntax as an alternative for param().
- CGI::Application::Plugin::Stream -- adds file streaming support
- CGI::Application::Plugin::TemplateRunner -- provides a runmode to automatically display HTML::Templates
- CGI::Application::Plugin::TT -- adds Template Toolkit support
- CGI::Application::Plugin::ValidateRM -- helps validate run modes using cpan Data::FormValidator
- CGI::Application::Plugin::ViewCode -- view source and code of the running application.
- CGI::Application::Plugin::YAML -- Easy YAML parsing.
- CGI::Application::Plugin::Nes -- Use Nes templates, object, plugin, PHP, SH, PYTHON, ... in CGI::Application
Some other modules are designed for use with CGI::Application, even if they do not call themselves a plugin:
- CGI::Application::Dispatch is used to dispatch a request to one or more CGI::Application based objects
- CGI::Application::Dispatch::BuildURI provides consistent URIs when dispatching to making links in templates more consistent.
- CGI::Application::Dispatch::Server provides a stand-alone HTTP server based on C::A::Dispatch...useful for offline development.
- CGI::Application::FastCGI -- integration with FastCGI
- CGI::Application::Generator -- a solution for setting up a new CGI::Appication project based on your own templates. (Using Template Toolkit's ttree would be a more general solution.)
- CGI::Application::MailPage -- adds functionality to easily mail a web page to a friend.
- CGI::Application::PhotoGallery -- a simple photo gallery application
- CGI::Application::Search -- integration with Swish-e search engine
- CGI::Application::Server -- a simple web server for CGI::Application projects, making it easier to test and work offline without a full Apache install.
- CGI::Application::URIMapping - a dispatcher / permalink builder, implemented as a wrapper of CGI::Application::Dispatch.
- Test::WWW::Mechanize::CGIApp -- Test CGI::App-based projects directly with Test::WWW::Mechanize, without a "real" web server.
The CGI::Application documentation has the primary reference for how to write a plugin. Here are some supplemental references.
- list discussion about how to handle internal plugins methods (link dead, 2011-12-08)
- All CGI::App plugins on CPAN (which is always more up-to-date than this page)
- PluginsWanted
- OtherUsefulModules
Originally transferred from http://cgi-app.org/index.cgi?Plugins