Class that may be used to compose and send e-mail messages.
It features:
- User definable headers and body parts.
- MIME encoding of text and HTML body parts with user defined character encoding using quoted-printable.
- Addition of file parts (attachments) with automatic content type detection.
- Forwarding of messages received from somebody else as intact attachments
- Support for multipart/related messages (eg. HTML messages with embedded images, stylesheets, frames, etc..)
- Support for multipart/alternative messages (eg. text and HTML versions in the same message).
- Encoding of message headers with user defined character encoding using q-encoding.
- Definition of the error delivery address setting the Return-Path header calling sendmail program directly.
- Several sub-classes for sending messages by different methods: PHP mail() function, sendmail, qmail, SMTP (with support for authentication and direct delivery mode), maildrop in Microsoft IIS or Exchange Pickup folder.
- Wrappers that emulate the mail() function using the SMTP, sendmail and qmail delivery sub-classes.
- Support for sending personalized bulk mail by replacing the contents of the message parts that differ for each recipient.
- HTML and plain text message parts can be composed using template engines. An example that works with Smarty template engine is provided.
- Retrieving the composed message data or size without sending the message
- Multiple inputs may be interconnected in such way that client side events that occur on one input can trigger actions on the context of other inputs. Developers may use input interconnection support without writing Javascript code.
- Can be extended with new types of input controls plug-in classes.
- Custom input plug-in classes can be used to support for handling client site events on the server side without submitting the form or redrawing the whole form page
- Some control plug-in classes are made available:
* AJAX based form submission (without reloading the whole page)
* Auto-complete text inputs
* Select a location on a map using Google Maps API
* Calendar date input
* CAPTCHA test to prevent automated access by robots
* Linked select input to switch select options when the value of another input changes. An unlimited number of selected can be linked in cascade. Additional plug-in subclasses are provided to retrive option groups from a MySQL database or many other SQL databases using the Metabase PEAR::MDB2 PHP database abstraction layer APIs
* Manage animations that apply visual effects to the page form elements, like: fade-in, fade-out, show, hide, update content, etc..
- XHTML compliant output.
- Load submitted form field values even with register_globals option Off and strip slashes when magic_quotes_gpc option is On.
- Keyboard navigation support:
* Attachment of labels with activation keys to each form field.
* Tab navigation order index.
- Built-in server side (PHP based) and client side (Javascript 1.0 or better) field validation for:
* E-mail address
* Credit card numbers (Visa, Mastercard, American Express, Discover, Diners Club, Carte Blanche, enRoute, JCB, any of these or even determined by a select field).
* Regular expressions.
* Field not empty.
* Field equal to another (useful for password confirmation fields).
* Field different from another (useful for reminder fields that must not be equal to the actual password).
* As set (for check boxes, radio buttons and select multiple fields).
* As integer number (with range limitation).
* As floating point number (with range limitation).
* Programmer defined client and server validation functions.
- Highlight invalid fields rendering them distinct CSS styles
- Security attack prevention by optionally discarding invalid values passed in fields that could not be edited by users but may be spoofed by attackers.
- Option to define a value that, when used in a field, it is accepted without performing any of the validations defined for the field.
- Ability to stop the user from submiting a form more than once inadvertdly.
- Sub form validation (validate only smaller set of field depending on the submit button that was used).
- Composition and generation of the form HTML output with fields displayed as fully accessible or in read-only mode.
- Generation of Javascript functions (useful to set to the page ONLOAD event):
* Set the input focus to a field.
* Select the text of a field.
* Set the input focus and select the text of a field.
* Enable and disable input fields
- Automatic capitalization of the text of a field:
* Upper case.
* Lower case.
* Word initials
- Replacement of text field expressions to perform adjustments like trimming whitespace or auto-complete values based on rules defined by regular expressions
- Compose forms with templates using plain HTML files with embedded PHP code or using the Smarty template engine with a supplied pre-filter plugin
- Etc.
This class can be used to authenticate and manage user accounts stored in SQLite.
It implements several operations and display HTML forms to authenticate users and manage their account records stored in a SQLite database.
Currently it can register a new account, activate registered accounts, authenticate an user and start a session, end a logged user session, change the user password or e-mail address.
This class can be used to split MySQL query results displayed in pages retrieved using AJAX.
It takes a MySQL query and computes the total number of rows it returns to generate HTML links in order to browse different pages of the query results.
Each page displays up to a given limit number of results.
The generated links trigger the execution of JavaScript code that retrieves the contents of the respective page using AJAX requests.
The class can also execute queries to perform searches for information in given columns.
It has a jquery plugin that handles requests and responses just for flexibility
This class can check whether an VAT (Value Added Tax) number is valid according to rules of each European country.
The class loads VAT number structure using regular expressions for each European country defined in a separate XML file.
If the given VAT number structure is correct, the class checks the VIES site (VAT Information Exchange System) to verify whether the VAT number is valid.
The class can present error messages in either English are French. Support for more idioms can add easily updating the error XML file.
This class can be used to get the last lines of a file like the Unix tail command.
It can also filter the retrieved lines so only the lines that have a certain keyword or match a given regular expression are returned, like when using the Unix grep command.
It uses pure PHP commands so it can work on non-Unix like systems.
The maximum number of returned lines is configurable. The retrieved lines are returned as a text string. The retuned text may be highlighted or even formatted as an HTML list, or as XML document.
This class can be used to limit (throttle) the speed of files served for download.
It intercepts the PHP script output by setting a buffering handler that is called every time a given number of bytes are served to the browser.
The class measures the time since the last time the PHP output buffer was flushed and hold on PHP for a while if the average download speed is above a given limit.
---------------------------------------------------------------------------
There are three different bandwidth shaping mechanisms to ensure adequate Quality of Service:
1) burst transfer rate will be switched off after sending X bytes to the user (this can be helpful to send small images quickly, and limit the download speed of huge files)
2) burst transfer rate will be switched off after given period of time in seconds, then it will revert to the standard throttle speed
3) burst transfer rate will not be activated at all, the download speed limit will be constant during the whole downloading process (in this case $config->burstLimit must be equal to the $config->rateLimit)
Access to e-mail mailboxes using the POP3 protocol
Class that implements the access to mail boxes using the POP3 protocol.
It features:
- Support secure connections using TLS
- Provides a stream wrapper class to access messages like files using fopen('pop3://user:pass@localhost/1', 'r');
- POP3 server access using normal and apop login methods
- Authentication mechanisms implemented by SASL client class like: PLAIN, LOGIN, CRAM-MD5, NTLM (Windows or Linux/Unix via Samba), etc..
- Determining mailbox statistics (mail box size in bytes and the number of stored messages)
- Listing of individual message sizes and identifier numbers
- Retrieving messages in data blocks of limited size to not exceed the available memory
- Retrieving messages all at once separating the headers from the body and limiting the number of message lines that may be retrieved at once
- Marking messages to be deleted
- Resetting the list of messages to be deleted
- Issuing of protocol NOOP command to avoid connection shutdown while in idle state
This class can be used to convert text to speech using Google Translate API.
It may take a text string or an HTML excerpt and sends a request to Google Translate API Web servers to return an MP3 audio file with text converted into speech.
The class may also generate HTML with JavaScript to play the supplied text speech audio in a Web page.