%META:TOPICINFO{author="TWikiContributor" date="1115527529" format="1.0" version="4"}%
---+!! <nop>%TOPIC%

Allows editing of preferences using fields predefined in a %SYSTEMWEB%.TWikiForms. However, the edit fields are inlined in the text, similar to how tables are edited in TWiki:Plugins/EditTablePlugin.

%TOC%

Insert the =%<nop>EDITPREFERENCES%= variable (see below) anywhere in your topic. It will be replaced by a button that allows editing each preference in its predefined input format (or a text box, when no format is defined for this preference).

In edit mode, the edit button is replaced by Save and Cancel buttons, with their obvious meanings.

---++ Syntax Rules

	* =%<nop>EDITPREFERENCES{ "= _topic_ =" }%=
		* _topic_ references a [[%SYSTEMWEB%.TWikiForms][TWikiForm]] defining the format of the edit fields for preferences. It may be prefixed by a web.
		* If a preference setting is not mentioned in the form referenced by _topic_, a text input box of the specified length is provided.
		* Otherwise, the input can be through textareas, select, radio, checkbox, date, or text, as provided by %SYSTEMWEB%.TWikiForms.
   * =%<nop>EDITPREFERENCES%=
      * Edit existing preferences in the topic using a simple text field.
---++ Examples
	* =%<nop>EDITPREFERENCES%= 
	* =%<nop>EDITPREFERENCES{ "%<nop>SYSTEMWEB%.TWikiPreferencesForm" }%= 

---++ Plugin Settings
	* One line description, shown in the %SYSTEMWEB%.TextFormattingRules topic:
		* Set SHORTDESCRIPTION = Allows editing of preferences using fields predefined in a form

---++ Plugin Installation Instructions
You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server where TWiki is running.

Like many other TWiki extensions, this module is shipped with a fully automatic installer script written using the Build<nop>Contrib.
   * If you have TWiki 4.1 or later, you can install from the =configure= interface (Go to Plugins->Find More Extensions)
      * The webserver user has to have permission to write to all areas of your installation for this to work.
   * If you have a permanent connection to the internet, you are recommended to use the automatic installer script
      * Just download the =PreferencesPlugin_installer= perl script and run it.
   * *Notes:*
      * The installer script will:
         * Automatically resolve dependencies,
         * Copy files into the right places in your local install (even if you have renamed data directories),
         * check in new versions of any installed files that have existing RCS histories files in your existing install (such as topics).
         * If the $TWIKI_PACKAGES environment variable is set to point to a directory, the installer will try to get archives from there. Otherwise it will try to download from twiki.org or cpan.org, as appropriate.
         * (Developers only: the script will look for twikiplugins/PreferencesPlugin/PreferencesPlugin.tgz before downloading from TWiki.org)
      * If you don't have a permanent connection, you can still use the automatic installer, by downloading all required TWiki archives to a local directory.
         * Point the environment variable =$TWIKI_PACKAGES= to this directory, and the installer script will look there first for required TWiki packages.
            * =$TWIKI_PACKAGES= is actually a path; you can list several directories separated by :
         * If you are behind a firewall that blocks access to CPAN, you can pre-install the required !CPAN libraries, as described at http://twiki.org/cgi-bin/view/TWiki/HowToInstallCpanModules
   * If you don't want to use the installer script, or have problems on your platform (e.g. you don't have Perl 5.8), then you can still install manually:
      1 Download and unpack one of the =.zip= or =.tgz= archives to a temporary directory.
      1 Manually copy the contents across to the relevant places in your TWiki installation.
      1 Check in any installed files that have existing =,v= files in your existing install (take care *not* to lock the files when you check in)
      1 Manually edit !LocalSite.cfg to set any configuration variables.
      1 Run =configure= and enable the module, if it is a plugin.
      1 Repeat from step 1 for any missing dependencies.

__Note__ if you are installing this extension in TWiki version < 4.2, please add these definitions to your Main<nop>.WebPreferences, if they are not already there:
   * <nop>Set SYSTEMWEB = %<nop>TWIKIWEB%
   * <nop>Set USERSWEB = %<nop>MAINWEB%


	* If the installation was successful, an edit button should appear below:
%EDITPREFERENCES%

---++ Plugin Info

|  Plugin Author: | TWiki:Main.ThomasWeigert |
|  Plugin Version: | 14751 (20 Sep 2007) |
|  Change History: | <!-- versions below in reverse order -->&nbsp; |
|  23 Jun 2007: | Crawford Currie added testcases, recoded to work without a form definition, fixed for TWiki 4.2 |
|  08 Feb 2007: | Arthur Clemens added access keys for Save and Cancel, bold style for editable preference names, and a descriptive Save button label. |
|  15 Apr 2006: | Adding css classes to buttons. Removed debug print statement causing 500s on !SunOne. Prevent extra space in settings on saves. Switched to earlier handler. Converted all SCRIPTURL to SCRIPTURLPATH, and added support. The only SCRIPTURLs should be the one in the BASE tag and those in mail notification templates. Because the forms package was throwing an exception when it failed to create a form, the edit preferences plugin was aborting the whole of the session whenever the form specified in EDITPREFERENCES didn't exist. Changed it so that the Form constructor does not throw, but returns undef on a non-existant form, and changed preferences plugin to be tolerant of missing forms (ie defaults all fields to text if the form is missing, of is a Set exists which is not in the form). | 
|  26 May 2005: | Crawford Currie recoded to use code from Form.pm to render form fields. |
|  08 May 2005: | Add plugin preference to define default input length  |
|  07 May 2005: | Initial version |
|  TWiki Dependency: | $TWiki::Plugins::VERSION 1.026 |
|  CPAN Dependencies: | none |
|  Other Dependencies: | none |
|  Perl Version: | 5.005 |
|  License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) |
|  TWiki:Plugins/Benchmark: | %SYSTEMWEB%.GoodStyle nn%, %SYSTEMWEB%.FormattedSearch nn%, %TOPIC% nn% |
|  Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% |
|  Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev |
|  Appraisal: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Appraisal |

__Related Topics:__ %SYSTEMWEB%.TWikiPreferences, %SYSTEMWEB%.TWikiForms


