a:1:{s:4:"rows";a:31:{i:0;a:6:{s:8:"property";s:12:"templateFile";s:8:"datatype";s:8:"resource";s:11:"description";s:67:"The template file, see examples in media/scripts/fe_user_admin.tmpl";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:1;a:6:{s:8:"property";s:15:"templateContent";s:8:"datatype";s:6:"string";s:11:"description";s:78:"Alternatively you can set this property directly to the value of the template.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:2;a:6:{s:8:"property";s:5:"table";s:8:"datatype";s:9:"tablename";s:11:"description";s:289:"The table to edit. <br>Notice: The ultimate lsit of fields allowed to be edited for the table is defined in TCA with the key [&quot;feInterface&quot;][&quot;fe_admin_fieldList&quot;] for each table in question. For an example, see the table definition for fe_users which is a good example.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:3;a:6:{s:8:"property";s:10:"defaultCmd";s:8:"datatype";s:6:"string";s:11:"description";s:86:"Defines which action should be default (if &amp;cmd= is not set when calling the page)";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:4;a:6:{s:8:"property";s:17:"clearCacheOfPages";s:8:"datatype";s:25:"<i>[list of integers]</i>";s:11:"description";s:114:"This is a list of page-ids for which to clear the cache on any successfull operation be it EDIT, CREATE og DELETE.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:5;a:6:{s:8:"property";s:5:"debug";s:8:"datatype";s:7:"boolean";s:11:"description";s:86:"If set, debug information will be output from fe_adminLib which helps to track errors.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:6;a:6:{s:8:"property";s:15:"<b>Actions:</b>";s:8:"datatype";N;s:11:"description";N;s:7:"default";N;s:12:"column_count";i:1;s:16:"is_propertyTable";i:1;}i:7;a:6:{s:8:"property";s:5:"edit ";s:8:"datatype";s:21:"boolean /actionObject";s:11:"description";s:1880:"If set, editing is basically allowed.<br>But you need to specify:<br>&nbsp;<br>&nbsp;<b>.fields </b>(list of fieldnames) which determines the fields allowed for editing. Every field in this list must be found as well in the [&quot;feInterface&quot;][&quot;fe_admin_fieldList&quot;] found in the TCA array which ultimately determines which fields can be edited by the fe_adminLib.<b><br>&nbsp;</b><br>&nbsp;<b>.overrideValues.[fieldname]</b> (value string) defines values for specific fields which will override ANY input from the form. Overriding values happens after the outside values has been parsed by the .parseValues-property of fe_adminLib but before the evaluation by .required and .evalValues below. For example this may be useful if you wish to hide a record which is being edited, because you want to preview it first.<b><br>&nbsp;</b><br>&nbsp;<b>.required </b>(list of fieldnames, subset of .fields) which determines which fields are required to return a true value. The valid fields entered here will have the subpart ###SUB_REQUIRED_FIELD_<i>[fieldname]</i>### removed from the templates if they evaluates to being true and thereby OK. See below for information about this subpart.<b><br>&nbsp;</b><br>&nbsp;<b>.evalValues.[fieldname]</b> (list of eval-codes) defines specific evaluation forms for the individual fiels of the form. See below.<b><br>&nbsp;</b><br>&nbsp;<b>.preview</b> (boolean) will enable the form submitted to be previewed first. This requires a template for preview to be found in the template file. See below for subpart marker names.<b><br>&nbsp;</b><br>&nbsp;<b>.menuLockPid</b> (boolean will force the menu of editable items to be locked to the .pid (edit only)<b><br>&nbsp;</b><br>&nbsp;<b>.userFunc_afterSave </b>(function-name) is called after the record is saved. The content passed is an array with the current (and previous) record in.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:8;a:6:{s:8:"property";s:7:"create ";s:8:"datatype";s:21:"boolean /actionObject";s:11:"description";s:443:"The same as .edit above except where otherwise stated.<br>Plus there is these additional properties:<b><br>&nbsp;</b><br>&nbsp;<b>.noSpecialLoginForm </b>(boolean) - if set, fe_adminLib does NOT look for the subpart marker TEMPLATE_CREATE_LOGIN but always for TEMPLATE_CREATE<b><br>&nbsp;</b><br>&nbsp;<b>.defaultValues.[fieldname]</b> (value string); Like .overrideValues but this sets the default values the first time the form is displayed.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:9;a:6:{s:8:"property";s:6:"delete";s:8:"datatype";s:7:"boolean";s:11:"description";s:218:"Whether or not records may be deleted. Still regular authentication (ownership or email authCode) is required. Setting the var &#x201c;preview&#x201d; lets you make a delete-preview before actually deleting the record.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:10;a:6:{s:8:"property";s:8:"infomail";s:8:"datatype";s:7:"boolean";s:11:"description";s:374:"Infomails are plaintext mails based on templates found in the template file. They may be used for such as sending a forgotten password to a user, but what goes into the infomail is totally up to your design of the template.<br>Normally you may have only a default infomail (infomail.default) for instance for sending the password. But you can use other keys also. See below.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:11;a:6:{s:8:"property";s:14:"infomail.[key]";s:8:"datatype";s:38:"(configuration of infomail properties)";s:11:"description";s:619:"In order to make fe_adminLib send an infomail, you must specify these vars in your GET vars or HTML-form.<br>&nbsp;<br>&nbsp;<b>fetch</b> - if integer, it searches for the uid being the value of &#039;fetch&#039;. If not, it searches for the email-field (defined by a property of fe_adminLib, see below). <br>&nbsp;<br>&nbsp;<b>key</b> - points to the infomail.[key] configuration to use<b><br>&nbsp;</b><b><br>Properties:</b><br>&nbsp;<b>.dontLockPid</b> (boolean) - selects only records from the .pid of fe_adminLib.<br>&nbsp;<b>.label </b>(string) - The suffix for the markers, see &#039;Email Markers&#039; beneath.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:12;a:6:{s:8:"property";s:8:"setfixed";s:8:"datatype";s:19:"boolean /properties";s:11:"description";s:3167:"Allows set-fixed input, probably coming from a link in an infomail or notification mail.<b><br>Syntax: </b><br>&nbsp;<br>&nbsp;<b>.[fix</b><b><i>key</b></i><b>].[</b><b><i>fieldname</b></i><b>] = </b><b><i>fieldvalue</b></i><i> </i>- is used to setup a setfixed-link insertable in the infomail by the SYS_SETFIXED_*-markers. See above (setfixed-property of fe_adminLib).<br>Special fixkey &#039;DELETE&#039; is just a boolean.<br>&nbsp;<br>&nbsp;<b>.userFunc_afterSave </b>(function-name) is called after the record is saved. The content passed is an array with the current (and previous) record in.<br>&nbsp;<b><br>Concept:</b><br>The &#039;setfixed&#039; concept is best explained by describing a typical scenario - in fact the most common situation of its use:<br>Imagine you have some users submitting information on your website. But before that information enters the database, you would like to moderate it - simply preview it and then either delete it or approve it. In the &#039;create&#039; configuration of fe_adminLib, you set up the hidden field of the record to be overridden to 1. Thus the record is hidden by default. Then you configure a setfixed-fixkey to set the hidden field to 0. This set up generates a list of parameters for use in an URL and those parameters are finally inserted by a corresponding marker in the email template. The link includes all necessary authentication to perform the change of values and thus a single click on that link is enough to change the field values. So this will - by a single click of a link in a notification mail sent to an admin - enable the record! Or of course a similar link with a cmd=delete link will delete it...<br>There is a special &#x201c;fieldname&#x201d; you can use, which is &#039;_FIELDLIST&#x201d; and that lets you specify a list of fields in the record to base the auth-code on. If nothing is specifyed the md5-hash is based on the whole record which means that any changes will disable the setfixed link. If on the other hand, you set _FIELDLIST = uid,pid then that record will be editable as long as the uid and pid values are intact.<b><br>Example:</b><br>This is a common configuration of the email-properties with a simple setfixed setting:<br>&nbsp;&nbsp;&nbsp;email.from = kasper@typo3.com<br>&nbsp;&nbsp;&nbsp;email.fromName = Kasper Sk&#xe5;rh&#xf8;j<br>&nbsp;&nbsp;&nbsp;email.admin = kasper@typo3.com<br>&nbsp;&nbsp;&nbsp;setfixed.approve {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hidden = 0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_FIELDLIST = uid,pid<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;setfixed.DELETE = 1<br>&nbsp;&nbsp;&nbsp;setfixed.DELETE._FIELDLIST = uid<br>&nbsp;<br>Now, if you insert this marker in your email template <br>&nbsp;<br>&nbsp;&nbsp;&nbsp;###SYS_SETFIXED_approve### <br>&nbsp;<br>if will get substituted with something like these parameters:<br>&nbsp;<br>&amp;cmd=setfixed&amp;rU=9&amp;fD[hidden]=0&amp;aC=5c403d90 <br>&nbsp;<br>Now, all you need is to point that to the correct url (where fe_adminLib is invoked!), eg:<br>&nbsp;<br>###THIS_URL######FORM_URL######SYS_SETFIXED_approve###<br>&nbsp;<br>and for deletion:<br>&nbsp;<br>...###SYS_SETFIXED_DELETE###";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:13;a:6:{s:8:"property";s:13:"<b>Others</b>";s:8:"datatype";N;s:11:"description";N;s:7:"default";N;s:12:"column_count";i:1;s:16:"is_propertyTable";i:1;}i:14;a:6:{s:8:"property";s:15:"authcodeFields ";s:8:"datatype";s:23:"<i>[list of fields]</i>";s:11:"description";s:1352:"Comma separated list of fields to base the authCode generation on. Basically this list would include &#x201c;uid&#x201d; only in most cases. If the list includes more fields, you should be aware that the authCode will change when the value of that field changes. And then the user will have to re-send an email to himself with a new code.<br>&nbsp;<br>&nbsp;<b>.addKey </b>(string) adds the string to the md5-hash of the authCode. Just enter any random string here. Point is that people from outside doesn&#039;t know this code and therefore are not able to reconstruct the md5-hash solely based on the uid<br>&nbsp;<br>&nbsp;<b>.addDate</b> (date-config) You can use this to make the code time-disabled. Say if you enter &#x201c;d-m-Y&#x201d; here as value, the code will work until midnight and then a new code will be valid.<br>&nbsp;<br>&nbsp;<b>.codeLength</b> (int) Defines how long the authentication code should be. Default is 8 characters.<br>In any case TYPO3_CONF_VARS[SYS][encryptionKey] is prepended.<br>&nbsp;<b><br>Advice:</b><br>If you want to generate authCodes compatible with the standard authCodes (used by the direct mailer by t3lib_div::stdAuthCode()), please set TYPO3_CONF_VARS[SYS][encryptionKey] to a unique and secret key (like you should in any case) and add &#x201c;uid&#x201d; as authcodeField ONLY. This is secure enough.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:15;a:6:{s:8:"property";s:5:"email";s:8:"datatype";s:6:"&nbsp;";s:11:"description";s:558:"&nbsp;<b>.from </b>(string, email) Defines the sender email address of mails sent out<br>&nbsp;<br>&nbsp;<b>.fromName </b>(string) Defines the name of the sender. If set, this will be used on the form NAME &lt;EMAIL&gt;<br>&nbsp;<b><br>.admin</b><br>&nbsp;<br>&nbsp;<b>.field </b>(string/integer) Defines the fieldname of the record where the email address to send to is found. If the field content happens to be an integer, this is assumed to be the uid of the fe_user owning the record and the email address of that user is fetched for the purpose instead.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:16;a:6:{s:8:"property";s:3:"pid";s:8:"datatype";s:4:"int+";s:11:"description";s:42:"The pid in which to store/get the records.";s:7:"default";s:12:"Current page";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:17;a:6:{s:8:"property";s:14:"fe_userOwnSelf";s:8:"datatype";s:7:"boolean";s:11:"description";s:361:"If set, fe_users created by this module has their fe_cruser_id-field set to their own uid which means they &#039;own&#039; their own record and can thus edit their own data. <br>All other tables which has a fe_cruser_id field configured in the &#039;ctrl&#039; section of their $TCA-configuration will automatically get this field set to the current fe_user id.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:18;a:6:{s:8:"property";s:15:"fe_userEditSelf";s:8:"datatype";s:7:"boolean";s:11:"description";s:102:"If set, fe_users - regardless of whether they own themselves or not - will be allowed to edit himself.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:19;a:6:{s:8:"property";s:13:"allowedGroups";s:8:"datatype";s:18:"[list of integers]";s:11:"description";s:141:"List of fe_groups uid numbers which are allowed to edit the records through this form. Normally only the owner fe_user is allowed to do that.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:20;a:6:{s:8:"property";s:8:"evalFunc";s:8:"datatype";s:13:"function-name";s:11:"description";s:280:"Function by which you can manipulate the dataArray before it&#039;s saved. <br>The dataArray is passed to the function as $content and MUST be returned again from the function.<br>The property &#x201c;parentObj&#x201d; is a hardcoded reference to the fe_adminLib object.<br>&nbsp;";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:21;a:6:{s:8:"property";s:7:"formurl";s:8:"datatype";s:13:"-&gt;typolink";s:11:"description";s:66:"Contains typolink properties for the URL (action tag) of the form.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:22;a:6:{s:8:"property";s:19:"parseValues.[field]";s:8:"datatype";s:20:"[list of parseCodes]";s:11:"description";s:1510:"<b>ParseCodes:</b><br>&nbsp;<b>int </b>- returns the integer value of the input<br>&nbsp;<b>lower</b> - returns lowercase version of the input<br>&nbsp;<b>upper </b>- returns uppercase version of the input<br>&nbsp;<b>nospace</b> - strips all space<br>&nbsp;<b>alpha, num, alphanum, alphanum_x</b> - only alphabetic (a-z) and/or numeric chars. alphanum_x also allows _ and -<br>&nbsp;<b>trim </b>- trims whitespace in the ends of the string<br>&nbsp;<b>setEmptyIfAbsent </b>- will make sure the field is set to empty if the value is not submitted. This ensures a field to be updated an is handy with checkboxes<br>&nbsp;<b>random[x]</b> - Returns a random number between 0 and x<br>&nbsp;<b>files[semicolon-list(!) of extensions, none=all][maxsize in kb, none=no limit]</b> - Defining the field to hold files. See below for details!<br>&nbsp;<b>multiple </b>- Set this, if the input comes from a multiple-selector box (remember to add ...[] to the fieldname so the values come in an array!)<br>&nbsp;<b>checkArray</b> - Set this, if you want several checkboxes to set bits in a single field. In that case you must prepend every checkbox with [x] where x is the bitnumber to set starting with zero. The default values of the checkbox form elements must be false.<br>&nbsp;<b>uniqueHashInt[semicolon-list(!) of other fields]</b> - This makes a unique hash (32 bit integer) of the content in the specified fields. The values of those fields are first converted to lowercase and only alphanum chars are preserved. ";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:23;a:6:{s:8:"property";s:20:"userFunc_updateArray";s:8:"datatype";s:13:"function-name";s:11:"description";s:148:"Points to a user function which will have the value-array passed to it before the value array is used to construct the update-JavaScript statements.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:24;a:6:{s:8:"property";s:29:"evalErrors.[field].[evalCode]";s:8:"datatype";s:6:"&nbsp;";s:11:"description";s:165:"This lets you specify the error messages inserted in the ###EVAL_ERROR_FIELD_[fieldname]### markers upon an evaluation error.<br>See description of evaluation below.";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:25;a:6:{s:8:"property";s:22:"cObjects.[marker_name]";s:8:"datatype";s:7:"cObject";s:11:"description";s:389:"This is cObjects you can insert by markers in the template.<br>&nbsp;<b><br>Example:</b><br>Say, you set up a cObject like this:<br>&nbsp;<br>cObject.myHeader = TEXT<br>cObject.myHeader.value = This is my header<br>&nbsp;<br>then you can include this cObject in most of the templates through a marker named ###CE_myHeader### or ###PCE_myHeader### (see below for details on the difference).";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:26;a:6:{s:8:"property";s:5:"wrap1";s:8:"datatype";s:12:"-&gt;stdWrap";s:11:"description";s:225:"Global Wrap 1. This will be splitted into the markers ###GW1B### and ###GW1E###. Don&#039;t change the input value by the settings, only wrap it in something.<br>&nbsp;<b><br>Example:</b><br>wrap1.wrap = &lt;b&gt; |&lt;/B&gt;";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:27;a:6:{s:8:"property";s:5:"wrap2";s:8:"datatype";s:12:"-&gt;stdWrap";s:11:"description";s:25:"Global Wrap 2 (see above)";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:28;a:6:{s:8:"property";s:6:"color1";s:8:"datatype";s:15:"string /stdWrap";s:11:"description";s:43:"Value for ###GC1### marker (Global color 1)";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:29;a:6:{s:8:"property";s:6:"color2";s:8:"datatype";s:15:"string /stdWrap";s:11:"description";s:43:"Value for ###GC2### marker (Global color 2)";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}i:30;a:6:{s:8:"property";s:6:"color3";s:8:"datatype";s:15:"string /stdWrap";s:11:"description";s:43:"Value for ###GC3### marker (Global color 3)";s:7:"default";s:6:"&nbsp;";s:12:"column_count";i:4;s:16:"is_propertyTable";i:1;}}}