Class: MF_Widget_ref extends MF_Widget_select

  • Package: saf.MailForm
  • Author: John Luxford <lux@simian.ca>
  • Copyright: Copyright (C) 2001-2003, Simian Systems Inc.
  • License: http://www.sitellite.org/index/license Simian Open Software License
  • Version: 1.6, 2002-08-05, $Id: Ref.php,v 1.4 2007/10/06 00:06:30 lux Exp $
  • Access: public

Ref widget. Displays a select box with a list of options from another
table to choose from. Optionally configurable to be self-referencial and
organizes the options intuitively into a hierarchy.

Note: This widget requires a global $db database object to be available.

New in 1.2:
- Added a $self_ref property, to determine whether or not this widget is self-
referencial.

New in 1.4:
- Added the $popup and $popup_limit properties, which give some control over the
popup behaviour of this widget.

New in 1.6:
- Added an $addblank property.


Usage Example


<?php

$widget 
= new MF_Widget_ref ('name');
$widget->validation ('is "foo"');
$widget->error_message 'Oops!  This widget is being unruly!';
$widget->table 'tablename';
$widget->primary_key 'id';
$widget->display_column 'title';
$widget->ref_column 'refcolumn';
echo 
$widget->display ();

?>

Return to Top



Properties


$invalid_field = ''

  • Access: public

Contains the name of the widget that did not validate during
the last call to the invalid () method.


$method

  • Access: public

The value of the method attribute of the HTML form tag.
$method is actually an alias for $_attrs['method'].


$action

  • Access: public

The value of the action attribute of the HTML form tag.
$action is actually an alias for $_attrs['action'].


$widgets = array ()

  • Access: public

An array of form widgets.


$template

  • Access: public

The optional template file or data used to customize the look
of the form.


$title

  • Access: public

The title to be displayed at the top of the form.


$message

  • Access: public

The initial message to be displayed at the top of the form.


$extra = ''

  • Access: public

A way to pass extra parameters to the HTML form tag, for
example 'enctype="multipart/formdata"'.


$error_message

  • Access: public

Contains the message from any internal errors.


$error_mode = 'single'

  • Access: public

Determines the way in which error messages are displayed.
The default ('single') is to display the error message for the first
invalid field only. The other ('all') is to display a list of all
invalid fields with their corresponding error messages. Please note
that $error_mode 'all' assumes that a custom error message is provided
for every rule.


$invalid = array ()

  • Access: public

A list of all invalid fields in the form, and their corresponding
error messages.


$submitted = false

  • Access: private

Contains a true or false value as to whether the form has been
submitted successfully or not. An invalid form will contain false.
This value is used internally by the setValues() method.


$name

  • Access: public

The name of the widget.


$_attrs = array ()

  • Access: private

This contains a list of attributes of the HTML form tag.


$sendTo

  • Access: public

The email address to send the form to in the default handler.


$sendFrom = ''

  • Access: public

The email address to send the form from in the default handler.


$sendExtra = ''

  • Access: public

Any extra parameters for the mail() function in the default handler.


$sendSubject = 'Mail Form'

  • Access: public

The subject line of the email to send from the default handler.


$screenReply = 'Thank you.  Your form has been sent.'

  • Access: public

The response to return upon a successfully submitted form in the
default handler. Defaults to "Thank you. Your form has been sent."


$handler

  • Access: public

The function or object method to use to handle the submitted form.
This function or method will be called by the run() method. Use the
setHandler() method to change this setting.


$uploadFiles = true

  • Access: public

Whether to upload files automatically or to leave them for a custom
saving mechanism.


$verify_sender = false

  • Access: public

Whether to verify the REQUEST_METHOD and HTTP_REFERER headers to make
it more difficult (although not impossible) for spammers to abuse your
form. Note that this can be enabled in a form's settings file under
the [Form] block via: verify_sender = yes


$clean_input = false

  • Access: public

Whether to strip all HTML and PHP tags/code from all input parameters.
This is off by default because it would break forms with the Xed editor
by default, so it must be enabled as needed. Note that this can be
enabled in a form's settings file under the [Form] block via:
clean_input = yes


$blacklist = true

  • Access: public

Whether to verify the remote address of the form submitter against
a list of invalid IP addresses in the database table
sitellite_form_blacklist so as to prevent repeated abuse from a single
source.


$verify_session = true

  • Access: public

Whether to verify that the submitter can accept session data, which
helps ensure they are a legitimate human user. Passing session
verification requires cookies to be enabled for the submitter, which
may help prevent abuse in combination with the other abuse-prevention
techniques because a spambot may ignore the cookie, however this
restricts forms for legitimate visitors who have cookies disabled
in their browser (only a very small number of users disable cookies,
but some do). To disable for a single form, add verify_session = no
to its settings.php form.


$autosave = false

  • Access: public

Whether this form should tie into Sitellite's autosave capabilities.
Please note that the autosave handler is only available to authenticated
users and not to anonymous forms.


$rule

  • Access: public

The original unmodified rule definition.


$msg

  • Access: public

The error message for this rule.


$type = 'ref'

  • Access: public

This is the short name for this widget. The short name is
the class name minus the 'MF_Widget_' prefix.


$value

  • Access: public

The rule value. This corresponds to the part of the rule
in double quotes (ie. type "value").


$negated = false

  • Access: public

If a 'not' is present at the start of the rule, this will be
set to true, otherwise false.


$allowed = array ()

  • Access: public

The access levels the user is allowed to access.


$nullable

  • Access: public

Can this field contain a null value.


$tables = array ()

  • Access: public

The list of elements that are to be displayed.


$allow_all_text = 'Allow All'

  • Access: public

The text to display for the first element, which defaults to 'Allow All'.


$size

  • Access: public

The height in rows of the select field. The constructor sets this
to default to 3.


$addLink = 'addAttachment.php'

  • Access: public

This is the link to send the 'Add' button to. Defaults to
'addAttachment.php'.


$removeLink = 'removeAttachment.php'

  • Access: public

This is the link to send the 'Remove' button to. Defaults to
'removeAttachment.php'.


$format = '%Y-%m-%d'

  • Access: public

This determines the format of the date stored in the hidden
field, and also the format submitted by the form widget.


$displayFormat = '%a, %e %b, %Y'

  • Access: public

This determines the format of the date displayed to the user.


$lang = 'en'

  • Access: public

This determines the language file to load for the calendar
user interface. See the folder /js/calendar/lang for a list
of available languages.


$style = 'sitellite'

  • Access: public

This determines the stylesheet to load for the calendar
user interface. See the CSS files in the folder /js/calendar
for a list of available stylesheets, or information on
writing your own.


$showsTime = false

  • Access: public

Determines whether to show the time selection options under the
calendar.


$timeFormat = '12'

  • Access: public

Sets the display time to 24 hours, or 12 hours with AM/PM option.
The default is 12 hours.


$fieldset = true

  • Access: public

Set this to false if you don't want the fieldset and legend tags.


$align = 'vertical'

  • Access: public

This determines the alignment of the buttons. The default is vertical,
which puts each button on its own row. Setting this to horizontal will put
the buttons all on the same row.


$_vertical_template = '    <tr>
        <td colspan="2">
            {if obj.fieldset}
            <fieldset>
                <legend{filter none}{invalid}{end filter}>{display_value}</legend>
            {end if}

            {loop obj.value}
    <input
                    type="radio"
                    {filter none}{attrstr}{end filter}
                    value="{loop/_key}"
                    id="{name}_{loop/_key}"
                    {if obj.data_value eq loop._key}checked="checked"{end if}
                    {filter none}{extra}{end filter}
                />
                <label for="{name}_{loop/_key}">{loop/_value}</label><br />

            {end loop}
            {if obj.fieldset}
            </fieldset>
            {end if}
        </td>
    </tr>
'


$_horizontal_template = '    <tr>
        <td colspan="2">
            <table width="100%"><tr><td width="35%" valign="top">
            <span{filter none}{invalid}{end filter}>{display_value}</span> &nbsp;
            </td>

            {loop obj.value}
    <td valign="top"><input
                    type="radio"
                    {filter none}{attrstr}{end filter}
                    value="{loop/_key}"
                    id="{name}_{loop/_key}"
                    {if obj.data_value eq loop._key}checked="checked"{end if}
                    {filter none}{extra}{end filter}
                />
                <label for="{name}_{loop/_key}">{loop/_value}</label></td>

            {end loop}
            </tr></table>
        </td>
    </tr>
'


$year

  • Access: private

Unused and deprecated.


$month

  • Access: private

Unused and deprecated.


$day

  • Access: private

Unused and deprecated.


$lowest_year

  • Access: public

The lowest year to be displayed in the year select box. Set to a
default value of 25 years ago by the constructor method.


$highest_year

  • Access: public

The highest year to be displayed in the year select box. Set to a
default value of one year into the future by the constructor method.


$date

  • Access: private

Unused and deprecated.


$time

  • Access: private

Unused and deprecated.


$extensions = array ()

  • Access: public

Contains a list of valid file extensions to display from the
directory.


$directory

  • Access: public

Contains the directory to read the list of files from.


$data_value_DIRLIST

  • Access: private

Contains the data value of this widget.


$show_viewbutton

  • Access: public

Determines whether or not to display a 'view' link next to
the select box, which will pop up a view of the item from the list.


$web_path = ''

  • Access: public

The web path to the directory in which to place the uploaded file.


$formname

  • Access: public

Contains the name property of the current form. Required only if
$show_viewbutton is true.


$recursive

  • Access: public

Whether or not the list should display recursively into sub-directories.


$path = false

  • Access: public

Base directory path under which all images must be kept. If $setPath is
set to true and this is given a value, it will set a session variable
called "imagechooser_path" which will be used by the imagechooser app.
If no value is given for this, the default path used by the imagechooser
app is "/pix".


$mode = false

  • Access: public

Specifies a mode to chmod() the newly uploaded file to during
the move() method. The mode is also known as the permissions of the
file. Must be set as a 4-digit octal value with the first digit on
the left being a zero (0), for example 0755. See the PHP documentation
for the chmod() function for more information.


$user = false

  • Access: public

Specifies a user to chown() the newly uploaded file to during
the move() method. This is not likely to work on most systems, but
it exists for the few strange (and highly suspect) configurations
where it will. See the PHP documentation for the chown() function
for more information.


$group = false

  • Access: public

Specifies a group to chgrp() the newly uploaded file to during
the move() method. Can only be changed to any group that the PHP user
belongs to. See the PHP documentation for the chgrp() function for
more information.


$clear = false

  • Access: public

This determines whether to provide a "Clear" button when a file exists
in an edit form, so that the current value can be reset without being
replaced.


$hideInSearches = true

  • Access: public

This allows you to specify whether or not you want this widget to
show in search results (used primarily in the Sitellite CMS database manager)
so that it can be hidden in the form, but not everywhere. Defaults to
true, as in "yes, hide it everywhere".


$field = ''

  • Access: public

The field to use to determine the key in the key/value $set property.


$setPath = true

  • Access: public

Tells imagechooser whether or not to set the session variable
"imagechooser_path" upon display() of this widget.


$filter = false

  • Access: public

A filter function to apply to the value before displaying it. Note that
htmlentities_compat() is still called afterwards.


$filter_import = false

  • Access: public

A library to import which contains the filter function.


$htmlentities = true

  • Access: public

Set this to false to skip calling htmlentities_compat() on the displayed
data.


$table

  • Access: public

Contains the table to read from.


$self_ref

  • Access: public

Whether or not this widget is self-referencial.


$primary_key

  • Access: public

The column in the other table that is the primary key.


$display_column

  • Access: public

The column in the other table that should be shown in the select box.


$ref_column

  • Access: public

The column in the current table that refers to the other table.


$addblank

  • Access: public

Whether or not to add a blank line to the list. $addblank is
useful in the Sitellite CMS because cms.Versioning.Rev returns the
column value as NULL if $nullable is set to true, and getData() is
called automatically by display(), so there's no chance to add a
blank array element at the bottom of the list.


$popup

  • Access: public

If true, this will prompt a popup to occur at $popup_limit number of options
in the Ref, so that they all aren't loaded at once into the select box. This is true
by default. It is good for references to large tables. This feature is Sitellite
Content Manager specific.


$popup_limit

  • Access: public

This determines the limit at which a popup occurs instead of a select box,
if $popup is set to true.


$buttons = array ()

  • Access: public

A list of "inner" radio buttons, which are MF_Widget_radio
objects.


$ignoreEmpty = true

  • Access: public

Determines whether or not this password field should be ignored
if left blank. This is useful for situations where a password change
field may be present in a form but is not required to be filled out to
change it since the current value cannot or should not be sent
back to the browser. Defaults to true.


$headers = array ()

  • Access: public

A list of headers, which are displayed above the radio buttons.

Return to Top



Methods


MF_Widget_ref ($name)

  • Access: public

Constructor Method.


getNumRows ()

  • Access: public
  • Return: integer

Returns the number of rows in the table being referenced.


getData ($val = '', $dashes = '')

  • Access: public
  • Return: associative array

Returns an associative array of values from the database. This
method is recursive, and used to generate hierarchical views.


display ($generate_html = 0)

  • Access: public
  • Return: string

Returns the display HTML for this widget. The optional
parameter determines whether or not to automatically display the widget
nicely, or whether to simply return the widget (for use in a template).

Return to Top

Copyright © 2008 Sitellite CMS Project

Powered by Sitellite 5.0 Content Management System