HTML/Ballot/Trusting version 0.2 ================================= A simple module for inseucre web ballots. This is a very beta version that will mature over the next week or so. Please let me know how it breaks. Features: * no test is made of who is voting, so users may vote any number of times, or may even vote (and surely will) thousands of times using a "LWP" hack. * a HTML page of voting options and one of the results of votes so far is generated from a single HTML template, and it is in these pages that ballot status is maintained, so no additional file access is required. * HTML output into the template is minimal, but all unique entities are given a "class" attribute for easy CSS re-definitions. * simple bar charts of results are generated using HTML. * users may submit a comment with thier vote, though no connection between the value of the vote and the user is recorded * users' IP addresses may be recorded, and displayed, and a chart of the IP addresses from which communication has been received the most may be displayed. In future these features may be added: * A more secure version is being considered, which uses simple e-mail authentication of users, sending ony one voting password to any e-mail address: this may appear as "HTML::Ballot::MoreCynical". * This may be extended to include a ballot `time out'. * Options to have graphs based on single-pixels, or using the "GD" interface will arrive some time in the future. USE 1. Construct an HTML template that can be used to generate the question and answer pages. Where you wish the questions and answers to appear, insert the following element: <TEMPLATEITEM name='QUESTIONS'></TEMPLATEITEM> The template should at least define the CSS representation for "votehighscorebar" and "votebar" as having a coloured background, or you will not be able to view the results' bar graph. See the CSS SPECIFICATION entry elsewhere in this document for more details on other CSS classes employed. Other functions may be included as below. Note that "TEMPLATEITEM"s may require some minimal content of at least a space character, I'm not sure, I'd better check. * If you wish to allow a user to submit a comment with their vote, include the following element: <TEMPLATEITEM name='COMMENT'> This is what voter's have said: </TEMPLATEITEM> Unlike the "QUESTIONS TEMPLATEITEM", any text you include in this block will be reatained at the top of a list of users' comments. * If you wish to have the result page display a list of the names entered by voters, also include: <TEMPLATEITEM name='VOTERLIST'> Here is the voterlist... </TEMPLATEITEM> This acts in the manner of the "COMMENT TEMPLATEITEM", above. * If you wish to have the result page display a list of the most frequently-posting IP addresses, include: <TEMPLATEITEM name='IPCHART'> <H2>Top IP Addresses To Post To This Ballot</H2> </TEMPLATEITEM> To this, the module will add a "SPAN" of HTML that lists the top posters. Anything before that span (in this example, the "H2" element) will remain. 2. Initiate the ballot by constructnig an HTML::Ballot::Trusting object and calling "create" method upon it in a manner simillar to that described in the SYNOPSIS entry elsewhere in this document. In response, you should receive a list of the locations of files used and dynamically created by the process. INSTALLATION To install this module, do the usual: perl Makefile.PL make - nmake on Win32 make test - etc make install Then please read the POD. DEPENDENCIES As well as the pragmas 'strict' and 'warnings', this module requires CGI.pm, HTML::EasyTemplate version 0.985 or higher, HTML::Entities. AUTHOR Lee Goddard - email@example.com COPYRIGHT AND LICENCE This module and all associated code is Copyright (C) Lee Goddard 2001. All rights reserved. This is free software and may be used under the same terms as Perl itself.