DEPRECATION WARNING
This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
EXT: Meta FE EDIT¶
Author: | Kasper Skårhøj |
---|---|
Created: | 2002-11-01T00:32:00 |
Changed by: | Christophe Balisky |
Changed: | 2009-08-28T11:09:51.430000000 |
Classification: | Front end editing module |
Author: | Christophe Balisky |
Email: | cbalisky@metaphore.fr |
Info 3: | |
Info 4: |
EXT: Meta FE EDIT¶
Extension Key: meta_feedit
Copyright 07 2006, Christophe Balisky, <christophe@balisky.org>
This document is published under the Open Content License
available from http://www.opencontent.org/opl.shtml
The content of this document is related to TYPO3
- a GNU/GPL CMS/Framework available from www.typo3.com
Table of Contents¶
EXT: Meta FE EDIT 1
Introduction 4
Version 4
What does it do? 4
Overall Notes 4
Special Thanks 4
Screenshots 6
Front end administration interface 6
List mode (browse and search features) 6
List mode (table mode) 6
Edit mode 7
How does it work ? 8
Principle 9
Media Players 9
Cache 9
FAQ 11
Quick Start 12
Add plugin to your page 12
In «Quick StartTab». 13
Template 13
Plugin Configuration 14
«General settingsTab». 14
List Tab 18
Create Tab 27
Create Templates Tab 33
Edit Tab 36
Edit Templates 41
Delete Tab 43
Delete Templates 44
Set fixed Templates 45
Preview 46
Mails Tab 47
Template Tab 48
Typoscript configuration 49
Std Wraps 49
To be documented 49
Page Browser 50
Data handling 50
Language Overrides 50
Images 51
MediaPlayer 51
Post data processing 51
RELATIONS 51
Examples : 52
Front end user Join 52
email wrap: 52
cropping content of field : 52
date format: 52
Page browser TS 52
plugin.tx_metafeedit_pi1.pagefloat=center 52
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_t o=à 52
To be documented : 53
Mails 54
Notification Mails 54
Moderation (setInfo) 54
List Mode 55
Top Actions 55
Search BOX 56
Full Text Search 56
Alphabetical Search 57
Advanced Search 57
Advanced Search FieldSets 57
AjaxSearchSelector 57
AdvancedSearch FlexForm 57
AdvancedSearch Typoscript 58
Actions 59
Bottom Actions : 59
Row specific Actions 59
Custom Actions 59
Field Sets 59
Events 60
Edit Mode 61
Edit Specific Actions 61
Create Mode 62
Create Specific Actions 62
To be documented 62
Markers 63
Default markers are : 63
###FIELD_<fieldname>### 63
###FEUSER_<fieldname>### contains all fields of connected feuser. 63
Templates 64
Introduction 64
Example templates 65
Authentification Template 65
No permissions Template 65
Confirmation Email to user on creation Template 65
Email to admin on creation Template 66
Data Email on creation Template 67
Email to admin on creation Template 68
Email to user on deletion Template 69
Email to user on approval Template 69
Email to user on update Template 70
Email to admin on update Template 71
Data Email on update Template 72
Email to admin on update Template with approval and deletion link 73
Email to user on deletion Template 74
Email to user on approval Template 74
Edit Template 75
Edit preview Template 75
Edit save confirmation Template 75
List Template 75
List no data template 76
Media player Template 76
Tutorial creating a specific html template 76
Language marks 77
Tutorial creating a specific pdf template 77
DEBUGGING 78
Mode Debug : 78
Wether to activate debugging or not 78
Use krumo to debug 78
Use krumo extension if loaded 78
Generated SQL 78
Wether to display executed sql requests or no 78
Performances 78
Wether to display execution time info 78
Marker Array 78
Wether to display template array info or no 78
Language Array 78
Will replace all language data with the lanaguage key associated with it. Very useful when you don't know what key to modify to display a header. 78
Template 78
Will display generated templates if checked. Usefull to get example templates before creating ones own. 78
Conf 78
Display configuration array. 78
POST, GET, PIVars 79
Display POST, GET and PIVars array; 79
TSFE 79
Not recommended will display complete TSFE object. 79
GP Vars 80
Edit commands 80
Origin Table 80
FeUser 80
List filtering 80
INPUT DATA ARRAY 80
PiVars 81
Full text Search 81
Page Browser 81
Alphabetical Search 81
Advanced Search 81
Field Sorting 81
Media Player 81
Session Vars 82
Reporting and Exporting 83
Configuring Reports 83
XLS Reports 83
CSV Reports 83
PDF Reports 83
RSS Export (not started) 84
JPGRAPH Reporting (not started) 84
WorkSpaces 85
Workspace Configuration 85
Work Flows 86
Model page tree template 86
TS constant template 86
Tutorial 86
Programming 87
How does it work ? 87
userFunc_afterInitConf 87
list.userFunc_afterWhere 87
userFunc_afterParse 87
userFunc_afterOverride 87
userFunc_afterEval 87
userFunc_afterSave 87
userFunc_afterMark 87
userFunc_afterItemMark 87
Other recommended plugins 91
FormWidgets 91
rlmp_dateselectlib 91
rtehtmlarea 91
kb_md5fepw 91
sr_static_info 91
xajax 91
fpdf 91
sr_freecap 91
eu_ldap 91
TCA 92
Software Architecture 93
class.tx_metafeedit_pi1.php : 93
class.tx_metafeedit.php : 93
fe_adminLib.inc : 93
Libraries : 94
class.tx_metafeedit_lib.php : 94
class.tx_metafeedit_ajax.php : 94
class.tx_metafeedit_ajaxlib.php : 94
class.tx_metafeedit_calendar.php : 94
class.tx_metafeedit_catmenu.php : 94
class.tx_metafeedit_export.php : 94
class.tx_metafeedit_grid.php : 94
class.tx_metafeedit_flexfill.php : 94
class.tx_metafeedit_treecopy.php : 94
class.tx_metafeedit_widgets.php : 94
class.tx_metafeedit_srfeuserregister_hookshandler.php : 94
class.tx_metafeedit_srfeuserregister_pi1_urlvalidator.php : 94
Roadmap 95
Version 0.1.0 (done) 95
Version 0.1.1 (November) 95
Version 0.2.0 (December) 95
JPGraph Reporting 95
Version 0.3.0 (January) 95
Version 0.4.0 (6 months) 95
Version 3.0 (years) 96
Version 4.0 (2 Years) 96
TO-DOs and notes (still in French ;-) 97
KNOWN BUGS 99
Introduction¶
Version¶
This documentation has been updated for version 0.1.6 of the meta_feedit.
What does it do?¶
The purpose of this plugin is to allow developpers to quickly and easily create FE administration screens for your web site. It handles File uploads, check boxes, select lists, radio buttons, RTE editing and so forth. In list mode it also provides different search boxes: full text search, alphabetical search and advanced search.
In addition, it is possible to trigger email notification upon creation and updating of records. It can also provide for email moderation (classic example is user registration: upon registration user recieves email requiring confirmation; upon confirmation administrator recieves mail requiring adminstrator validation of user record; upon administrator validation user recives email notification that his account has been accepted).
Upon creation of elements, it also allows the addition of a sub site model to a part of you site tree, thus allowing easy creation of member sections (in case of fe_users editing), workspace pages (in case of editing of a project element) and whatever else you can imagine. The principle is pretty simple. You create a page tree template for the work space with TS config template. Upon creation the page tree template is copied to the specified root tree and TS Config template is instanciated with different values to make evrything work.
It is also possible to add special actions to record editing.
A default template is generated based on the TCA definition of table, but this template can be customized through the plugin's flexform.
Note: This extension is still in development. Please see further documentation notes about what features are or are not yet implemented.
Overall Notes¶
The plugin uses TCA definition of tables to print data on screen. It is very important that your TCA configuration is correct before you use this plugin. Please refer to www.typo3.org documentation on TCA. We also recommend the Extension Kickstarter as a way to build proper TCA extensions and tables.
Special Thanks¶
I used developments made in the fe_adminLib.inc (Kasper Skarhoj) and from the mth_feedit extension (Morten Tranberg & Kasper Ligaard) which I both heavilly modified. Thank your efforts in developing those extensions.
Thanks to all users that gave me feedback and help me make this extension better :
Chris Paige [ chris@ready-set-go.biz ]
Kraus, Bjoern [ kraus@phoenix-medien.de ]
Karl-Ernst Kiel [ kekiel@kekiel.de ]
and my employees who helped me design this extension :
Olivier St Clair [ olivier@metaphore.fr ]
Christophe Monard[ cmonard@metaphore.fr ]
Luc Lérot [ lelerot@metaphore.fr ]
How does it work ?¶
Config analyse (/pi1/class.tx_metafeedit_pi.php)
Preparation of templates (class.tx_metafeedit.php)
FE ADMIN
class.tx_metafeedit.php callbacks...
Principle¶
By default the plugin will show a List screen when first called with no parameters, it will edit all data of the specified table with required PID (if set).
It is possible if editUnique option is set to go directly to edit mode if there is an element in the list (or the create Mode if the list is empty).
Media Players¶
Cache¶
Performance issues :
feAdmin_lib.inc : dynamic part of the template
Preview mode will work for cache
Create and edit mode : no_cache for the moment ...
Cache Modes :
No Cache : page is regenerated everytime,
Mixt Cache : Template code is put into cache and dynamic parts of page are regenerated..
Full Cache : Page is entirely put into cache .... Works for preview mode ...
FAQ¶
We don't handle multi table relations yet on field <field> of table <table>
If you get a message «We don't handle multi table relations yet on field <field> of table <table>» it means one of the default fields is multi table which we don't handle yet, you then have to choose your fields manually in the editing, creation and list tabs.... This will soon be fixed....
No elements
If you get a screen with no elements check that you chose a Page in the quick start tab, check also that it contains records. If empty rember it is the currents page Pid which is used.
See TCA section for other kinds of problems ...
Quick Start¶
((generated))¶
Add plugin to your page¶
In the add content wizard choose the FE Edition Meta ....
In «Quick StartTab».¶
In flexform configuration of plugin.
Select table you want to edit
Select page contaning the data you want to edit. If not set it will take the PID of the current page.
For the moment we don't allow record editing independantly of PID.
Save configuration.
Template¶
If you want to see a quick result you must first add static templates «Meta FE Edit CSS Styles» and «Meta FE document icons» to your page template.
You should then be able to edit records of the specified table. You will need to read the rest of the documentation to specialize functionalities of the extension.
Plugin Configuration¶
«General settingsTab».¶
Default Command¶
Flexform Setup Field
Default Command
Description
Edit or Create, if not set it defaults to edit.
Ultimately I should add list, preview , setInfo and status commands ...
Edit:
Edit mode.
Create :
Create mode by default opens create record form.
Auto:
Default mode in which to set the plugin (if not selected , plugin sets itself to auto mode).
In auto mode the plugin will first show lits of elements to edit and allows creation, deletion, modification of elements from list.
Default List Mode¶
Flexform Setup Field
Default List Mode
Description
List:
Calendar:
Grid:
Cache Mode¶
Flexform Setup Field
Cache Mode
Description
Still experimental
XHTML Compliancy¶
Flexform Setup Field
XHTML Compliancy
Description
Selected by default (why wouldn't you want this) should be deprecated.
Reference Metafeedit¶
Flexform Setup Field
Reference Metafeedit
Description
Reference Metafeedit uid¶
Flexform Setup Field
Reference Metafeedit uid
Description
Reference excluded db relation¶
Flexform Setup Field
Reference excluded db relation
Description
???
Reference excluded fields¶
Flexform Setup Field
Reference excluded fields
Description
???
Tab mode¶
Flexform Setup Field
Tab mode
Description
Enables Tabs in FE forms. Ex :
See Tab labels and show fields (in edit and create mode). It will render «Tabs» defined in show field with Tab labels of Tab labels field
Note: Tab mode must be selected and the flexform must be saved before the [Tab] item will show up to be selected in the Show fields area.
Tab labels¶
Flexform Setup Field
Tab labels
Description
Labels of tabs in create and edit screens. Labels are given in order of tabs and should match tab tags in show fields of create and edit mode.(See «Show Fields» of edit and create tabs...
TODO : generalize this to every mode.
User Connection required¶
Flexform Setup Field
User Connection required
Description
FE User must be connected for display of plugin.
If set and FE User is not connected will redirect to login page ...
I haven't tested every configuration yet...
Don't display headers¶
Flexform Setup Field
Don't display headers
Description
Do not display Screen Heders, If set default Screen Title Heders will not be shown.
Show Help Icons¶
Flexform Setup Field
Show Help Icons
Description
Will display Help Icons. There is no typoscript options to override Help text for the moment....
Check T3 rights¶
a
Check T3 rights
b
If set only allowed records according to T3 rights of connected user will be shown.
I had to add this parameter so that we could create forms to edit any data in T3 database whatever the rights on these objects were...
Is required to select records only accessible to feuser.
Use enable columns¶
a
Use enable columns
b
If set will check T3 enable columns rights (deleted=0, datestart <= date <= dateend, ....
No actions¶
a
No actions
b
If set Action buttons will not be shown ...
Foreign Tables¶
a
Foreign Tables
b
Allows to show foreign table fields in edit screens ....
For the moment only first relation foreign tables are shown..
Editing of foreign table fields has not been tested...
Once you have selected foreign Tables you must save configuration twice (bug ???) for the foreign table fields to be taken into account by plugin.
If foreign table list is empty make sure you selected the propoer table to edit in Quick Start tab and that you saved it ...Or maybe you table has no foreign tables in rleation according to TCA defintions....
Id Field¶
a
Id Field
b
By default the plugin considers $TCA[$table]['ctrl']['label'] as default label field. You may select another field if you wish.
Alphabetical search will use this field as search field ....
Use Id Field¶
a
Use Id Field
b
If set, only records where this field equals connected FE USER uid will beshown. This is usefull to show only records edit by Fe User.
User Group Field¶
a
User Group Field
b
If set, only records where this field equals one of the group uids of connected FE USER uid will be shown. This is usefull to show only records edited by a group of FE Users. Not completely tested ...
parseValues¶
a
parseValues
b
Alters entering data :
example :
name=trim,upper
will trim white space from field name and will transform text to uppercase.
- int : Evaluates the input to an integer.
- upper : Converts to uppercase (only A-Z plus a selected set of Western European special chars).
- lower : Converts the string to lowercase (only A-Z plus a selected set of Western European special chars).
- alpha : Allows only a-zA-Z characters.
- num :Allows only 0-9 characters in the field.
- alphanum : Same as "alpha" but allows also "0-9"
- alphanum_x : Same as "alphanum" but allows also "_" and "-" chars.
- trim : The value in the field will have whitespace around it trimmed away.
- nospace : Removes all occurencies of space characters (chr(32))
- invert : useful on boolean values to invert boolean display
- random
- files
- setEmptyIfAbsent
- multiple
- checkArray
- uniqueHashInt
Required Fields¶
a
Required Fields
b
List of mandatory fields. If one of these fields in unset an error message will be shown uppon validation ... A * indicates these fields in genrated Template.
Pages to clear cache of¶
a
Pages to clear cache of
b
The cache of these pages will be cleared upon update or insert of records edited through this plugin.
List Tab¶
List Page Pid¶
Flexform Setup Field
List Page Pid
Description
If set this will be the default list pid taken into acount in all list links
Back Page Pid¶
Flexform Setup Field
Back Page Pid
Description
If set this is the page Pid of the page linked to in the retrun button
if not set will take _GP var backURL (still not perfect)
Show Full Text SearchBox¶
Flexform Setup Field
Show Full Text SearchBox
Description
This will show the fulltext searchbox on top of the list.
Full text search will be done on all text fields of table
Advanced Search¶
Flexform Setup Field
Advanced Search
Description
This will show the advancd search box, if no field is specified in the advanced search fields, it will make a search box for all fields (except group type)
Advanced Search Ajax selectors¶
Flexform Setup Field
Advanced Search Ajax selectors
Description
Instead of the normal selector you will get an ajaxselector :
The ajax data selector replaces the normal dropdown menu allowing data filtering through a widget.
The arrow key will allow normal dro down action section.
The text field allows to search interactively on uid field or label field ....
Alphabetical search¶
Flexform Setup Field
Alphabetical search
Description
If true we show alphabetical search box.
It considers $TCA[$table]['ctrl']['label'] as default search field. You may select another field if you wish by specifying id field in General Settings Tab.
Calendar Search¶
Flexform Setup Field
Calendar Search
Description
To be documented
Pagination¶
Flexform Setup Field
Pagination
Description
Wether to show a page navigator or not.
Page Size¶
Flexform Setup Field
Page Size
Description
Number of record lines shown in list
Nb Cols table presentation¶
Flexform Setup Field
Nb Cols table presentation
Description
Number of columns , default is 0 implementing list mode...
If Ncols > 0 table mode,
For example to activate teable mode set number of columns to 2.
Max Pages¶
Flexform Setup Field
Max Pages
Description
Max number of pages shown page browser box
Display Direction¶
Flexform Setup Field
Display Direction
Description
For table mode, if display direction is right table elements will be drawn from left to right then top to bottom.
if display direction is down table elements will be drawn from top to bottom then left to right.
Pagesize is use to determine number of rows shown.
Field Sorting¶
Flexform Setup Field
Field Sorting
Description
Allows field sorting in column headers (first ascendant, then descendant)
No back buttons¶
Flexform Setup Field
No back buttons
Description
Wetehr to display back buttons or not
Show Media player¶
Flexform Setup Field
Show Media player
Description
If field contains a media file appropriate media player will be displayed
Nb alt colors¶
Flexform Setup Field
Nb alt colors
Description
How many alternate colors should be displayed in list view, css class will be tx-metafeedit-list-row-1,tx-metafeedit-list-row-2, ..tx- metafeedit-list-row-N
Row field¶
Flexform Setup Field
Row field
Description
For grid view we specifiy field to be used as Row header
Col Field¶
Flexform Setup Field
Col Field
Description
For grid view we specifiy field to be used as Row header
Begin date field¶
Flexform Setup Field
Begin date field
Description
Allows to specifiy begin date field if not set by TCA
End date field¶
Flexform Setup Field
End date field
Description
Allows to specifiy end date field if not set by TCA
List Fields¶
Flexform Setup Field
List Fields
Description
Fields to be shown in list.
Extra Fields¶
Flexform Setup Field
Extra Fields
Description
Fields to be selected in query and not necessarily shown
SQL Calculated fields¶
Flexform Setup Field
SQL Calculated fields
Description
Adds calculated columns to request. Allows to add custom calculated sql fields. Must be valid sql see http://dev.mysql.com/doc/refman/5.0/en/functions.html ! Syntax is :
columname=sql function
One must save the flexform once to see the calculated fields appear in the field list choices.
Ex :
mydate=date-format('%Y%M%d',date)
mycount=count(*)
myselcount=sum(if(mybooleanfield,1,0))
you may specify columns header for each language by :
plugin.tx_metafeedit_pi1._LOCAL_LANG.default.mydate=My beautiful date
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.mydate=Ma très belle date
This functionnality id very usefull if you need to do sums, counts, etc . In this case remember to choose group by fields !
PHP Calculated fields¶
Flexform Setup Field
PHP Calculated fields
Description
Not implemented yet
Pre Order By string¶
Flexform Setup Field
Pre Order By string
Description
SQL added at the beginning of the order by string
Group By Fields¶
Flexform Setup Field
Group By Fields
Description
Fields to groupby
Group By Field Breaks¶
Flexform Setup Field
Group By Field Breaks
Description
List of group bys on which to make a field break (with subtotals).
Group By Size¶
Flexform Setup Field
Group By Size
Description
Size of a group by row for page size calculations, defaults to 1.
Having string¶
Flexform Setup Field
Having string
Description
If you want a specific having string you may add it here.
No group by detail¶
Flexform Setup Field
No group by detail
Description
Wether group bys should have a subtotals footer or not ..
Jump page on group by¶
Flexform Setup Field
Jump page on group by
Description
Wether to jump page on every new group by.
Category Search¶
Flexform Setup Field
Category Search
Description
Not implemented yet will alow category tree search lik in tt_news ...
Sum Fields¶
Flexform Setup Field
Sum Fields
Description
Fields ton which to calculate sum
pdf¶
Flexform Setup Field
Description
Wether to have a PDF export of records or not. Templates may be specified see pdf template tutorial for more information.
csv¶
Flexform Setup Field
csv
Description
Wether to have a csv export of records or not
excel¶
Flexform Setup Field
excel
Description
Wether to have a exce export of records or not
Euros¶
Flexform Setup Field
Euros
Description
Deprecated
List Record Actions¶
Flexform Setup Field
List Record Actions
Description
You can add user defined links here, for example to add a link to Google put :
google|http://www.google.fr
syntax is : |
<label>|<link>|<id>
Example :
Download image pack|#|telecharger
Typoscript stdWrap:
plugin.tx_metafeedit_pi1.list.actionStdWrap.telecharger.stdWrap.dataWrap= <a class="telchargerPack" href="/index.php?eID=tx_rgsmoothgallery_pi3&type=9002&hhgallery={field:uid}" title="Download image pack">|</a>
You may also use Field markers in the link part to replace values in generated URL :
Détail|152.0.html?lV=###FIELD_uid###&lField=articles
This will generate a link to detailed view of record on page 152. So you can have a list/detail screen.
rU Join Field¶
Flexform Setup Field
rU Join Field
Description
Select field on which ru Joins must be performed (see GP Vars section).
WhereString¶
Flexform Setup Field
WhereString
Description
Specific sql where statement added to query , must be valid sql.
Post order by string¶
Flexform Setup Field
Post order by string
Description
SQL added at the end of the order by string
Order by fields¶
Flexform Setup Field
Order by fields
Description
Default order by fields, simply check the order by fields you want and in which order.
Language marks¶
Flexform Setup Field
Language marks
Description
Not implemented
Create Tab¶
Last fields are explained in WorkSpace section...
Disable Create¶
Flexform Setup Field
Disable Create
Description
If set it will not be possible to create new recors (no add element button)
Create Preview¶
Flexform Setup Field
Create Preview
Description
A preview of insertion fields will be shown for validation before definite submission of elements
Show status screen¶
Flexform Setup Field
Show status screen
Description
If set a status screen will be shown after creation or preview.
Show no special form when logged in¶
Flexform Setup Field
Show no special form when logged in
Description
...
Creation Fields¶
Flexform Setup Field
Creation Fields
Description
List of fields to handle during creation (including hidden override fields ..)
Creation show fields¶
Flexform Setup Field
Creation show fields
Description
List of fields to appear on screen (in order of appearance). It is possible to add 'tab' field where you wish. Fields appearing after tab field will only appear in selected tab (if tab setting is set in general settings).
Note : Tab mode must be selected (see General Settings fields) and the flexform must be saved before the [Tab] item will show up as an option in the Show fields area. Then, only one Tab marker can be added at a time. Save the flexform and you will be able to add another Tab marker.
It is possible to select a single field more than once in this area (if you save the flexform in between). However, only the first occurance will be rendered. [This is necessary in order to allow more than one Tab marker]
Read Only Fields¶
Flexform Setup Field
Read Only Fields
Description
List of fields that will appear in read only (preview) mode. It will not be possible to modify these fields.
Create Override values¶
Flexform Setup Field
Create Override values
Description
Override values of fields. These values will be set upon insert.
Possible values are :
- integers and strings .
- All values of the getData function
field : [fieldname from the current $cObj ->data-array in the cObj.]
As default the $cObj ->data-array is $GLOBALS["TSFE"]->page (record of the current page!)
In TMENU: $cObj ->data is set to the page-record for each menuitem.
In CONTENT/RECORDS $cObj ->data is set to the actual record
In GIFBUILDER $cObj ->data is set to the data GIFBUILDER is supplied with.
parameters : [fieldname from the current $cObj ->parameters- array in the cObj.]
See ->parseFunc!
register : [fieldname from the $GLOBALS["TSFE"]->register]
See cObject "LOAD_REGISTER"
leveltitle, leveluid, levelmedia: [levelTitle, uid or media in rootLine, 0- , negative = from behind, “ , slide” parameter forces a walk to the bottom of the rootline until there's a “true” value to return. Useful with levelmedia.]
levelfield: Like “leveltitle” et al. but where the second parameter is the rootLine field you want to fetch. Syntax: [pointer, integer], [fieldname], [“slide”]
global : [GLOBAL-var, split with | if you want to get from an array! DEPRECIATED, use GPvar, TSFE or getenv]
date : [date-conf]
page : [current page record]
current : 1 (gets 'current' value)
level : 1 (gets the rootline level of the current page)
GPvar: Value from GET or POST method. Use this instead of global
TSFE: Value from TSFE global main object
getenv: Value from environment vars
getIndpEnv: Value from t3lib_div::getIndpEnv()
DB: Value from database, syntax is [tablename] : [uid] : [field]. Any record from a table in TCA can be selected here. Only marked- deleted records does not return a value here.
fullRootLine : This gets the title “1. page before” in a page tree like the one below provided we are are the page “Here you are!” (or “Site root”) and this TypoScript is in the template with root at “Site root”. Red numbers indicate what values of keynumber would point to:
- Page tree root -2
|- 1. page before -1
|- Site root (root template here!) 0
|- Here you are! 1
LLL: Reference to a locallang (php or xml) label. Reference consists of [fileref]:[labelkey]
path: path to a file, possibly placed in an extension, returns empty if the file doesn't exist.
cObj : [internal variable from list: “parentRecordNumber”]
debug : Returns HTML formated content of PHP variable defined by keyword. Available keys are “rootLine”, “fullRootLine”, “data”
--------------------
Getting more values.
By separating the value of getText with "//" (double slash) you let getText fetch the first value. If it appears empty ("" or zero) the next value is fetched and so on. Example:
= field:header // field:title // field:uid
This gets "title" if "header" is empty. If "title" is also empty it gets field "uid"
fullRootLine :
Getting a value from the rootline (TSFE->rootLine) going all the way to the root of the page tree.
[keynumber, fieldname, “slide”]
Keynumber is relative to the current site root, so negative numbers refer to subsequent levels below the site root. Fieldname is the name of the datafield to get. For “slide”, see levelmedia type above.
I added a few new ones to this :
- feuser : Reference to the connected feuser, key of feuser record is returned. Ex feuser:email returns email of connected user ...
- dbf : Reference to result of sql data query. Syntax dbf:selecttabl e:idfield:uidfieldindatarecord:where:groupby:orderby:limit:returnvalue field
- Example : to override opertaor field with connected
Example : to override opertaor field with connected
((Unknown Property))¶
Flexform Setup Field
Description
Example : to override operator field with fe_user uid field :
operator=feuser:uid
Create Eval Values¶
Flexform Setup Field
Create Eval Values
Description
Configuration of field evaluation.
Some of these evaluation keywords will trigger a JavaScript pre- evaluation in the form. Other evaluations will be performed in the backend.
The eval-functions will be executed in the list-order.
Keywords:
required : A non-empty value is required in the field (otherwise the form cannot be saved).
unique,uniqueGlobal : Requires the field to be unique for the whole table. (Evaluated on the server only). NOTICE: When selecting on unique-fields, make sure to select using “AND pid>=0” since the field CAN contain duplicate values in other versions of records (always having PID = -1). This also means that if you are using versioning on a table where the unique-feature is used you cannot set the field to be truely unique in the database either!
UniqueInPid,UniqueLocal : Requires the field to be unique for the current PID (among other records on the same page). (Evaluated on the server only)
date : The field will evaluate the input as a date, automatically converting the input to a UNIX-time in seconds. The display will be like "12-8-2003" while the database value stored will be "1060639200".
datetime : The field will evaluate the input as a date with time (detailed to hours and minutes), automatically converting the input to a UNIX-time in seconds. The display will be like "16:32 12-8-2003" while the database value will be "1060698720".
time : The field will evaluate the input as a timestamp in seconds for the current day (with a precision of minutes). The display will be like "23:45" while the database will be "85500".
md5 : Will convert the inputted value to the md5-hash of it (The JavaScript MD5() function is found in typo3/md5.js)
password : Will show "*******" in the field after entering the value and moving to another field. Thus passwords can be protected from display in the field. Notice that the value during entering it is visible!
To be documented
twice
uniqueFields
atLeast
atMost
invert
inBranch
unsetEmpty
I added a few new ones to this :
email : Requires the field to be in email format
wwwUrl : Requires field to be a vallid URI
To be implemented :
timesec : The field will evaluate the input as a timestamp in seconds for the current day (with a precision of seconds). The display will be like "23:45:13" while the database will be "85513".
year : Evaluates the input to a year between 1970 and 2038. If you need any year, then use "int" evaluation instead.
is_in : Will filter out any character in the input string which is not found in the string entered in the key "is_in" (see below).
double2 : Converts the input to a floating point with 2 decimal positions, using the "." (period) as the decimal delimited (accepts also "," for the same).
All the above evaluations (unless noted) are done by JavaScript with the functions found in the script t3lib/jsfunc.evalfield.js
"(TCE)" means the evaluation is done in the TCE on the server. The class used for this is t3lib_TCEmain.
Example:
Setting the field to evaluate the input to a date returned to the database in UNIX-time (seconds) which is mandatory
myfield=date,required
Create Page Pid¶
Flexform Setup Field
Create Page Pid
Description
Pid of create page allows to seperate FE editing onto a different page...
Not tested
((Unknown Property))¶
Flexform Setup Field
Description
Create Templates Tab¶
Edit Tab¶
Disable Edit¶
Flexform Setup Fields
Disable Edit
Description
If set it will not be possible to edit records (no add element button)
Disable edit delete¶
Flexform Setup Fields
Disable edit delete
Description
If set no delete button will appear on edit screen
Edit Preview¶
Flexform Setup Fields
Edit Preview
Description
A preview of insertion fields will be shown for validation before definite submission of elements
Show status screen¶
Flexform Setup Fields
Show status screen
Description
If set a status screen will be shown after edit or preview.
Edit unique¶
Flexform Setup Fields
Edit unique
Description
If set no list screen will be shown and edit screen will be shown if a record to edit exists. If no record exists create screen will be shown ...
Edit Fields¶
Flexform Setup Fields
Edit Fields
Description
List of fields to handle during editing (including hidden override fields ..)
Fe User Own Self¶
Flexform Setup Fields
Fe User Own Self
Description
If set feuser can own hos record (if editing feuse rtable ...).
Can user edit his info¶
Flexform Setup Fields
Can user edit his info
Description
If editing feuser table , if this si set feuser can edit his record...
Edit show fields¶
Flexform Setup Fields
Edit show fields
Description
List of fields to appear on screen (in order of appearance). It is possible to add 'tab' field where you wish. Fields appearing after tab field will only appear in selected tab (if tab setting is set in general settings).
Note : Tab mode must be selected (see General Settings fields) and the flexform must be saved before the [Tab] item will show up as an option in the Show fields area. Then, only one Tab marker can be added at a time. Save the flexform and you will be able to add another Tab marker.
It is possible to select a single field more than once in this area (if you save the flexform in between). However, only the first occurance will be rendered. [This is necessary in order to allow more than one Tab marker]
Read Only Fields¶
Flexform Setup Fields
Read Only Fields
Description
List of fields that will appear in read only (preview) mode. It will not be possible to modify these fields.
Edit Override values¶
Flexform Setup Fields
Edit Override values
Description
Override values of fields. These values will be set upon insert.
Possible values are :
- integers and strings .
- All values of the getData function
field : [fieldname from the current $cObj ->data-array in the cObj.]
As default the $cObj ->data-array is $GLOBALS["TSFE"]->page (record of the current page!)
In TMENU: $cObj ->data is set to the page-record for each menuitem.
In CONTENT/RECORDS $cObj ->data is set to the actual record
In GIFBUILDER $cObj ->data is set to the data GIFBUILDER is supplied with.
parameters : [fieldname from the current $cObj ->parameters- array in the cObj.]
See ->parseFunc!
register : [fieldname from the $GLOBALS["TSFE"]->register]
See cObject "LOAD_REGISTER"
leveltitle, leveluid, levelmedia: [levelTitle, uid or media in rootLine, 0- , negative = from behind, “ , slide” parameter forces a walk to the bottom of the rootline until there's a “true” value to return. Useful with levelmedia.]
levelfield: Like “leveltitle” et al. but where the second parameter is the rootLine field you want to fetch. Syntax: [pointer, integer], [fieldname], [“slide”]
global : [GLOBAL-var, split with | if you want to get from an array! DEPRECIATED, use GPvar, TSFE or getenv]
date : [date-conf]
page : [current page record]
current : 1 (gets 'current' value)
level : 1 (gets the rootline level of the current page)
GPvar: Value from GET or POST method. Use this instead of global
TSFE: Value from TSFE global main object
getenv: Value from environment vars
getIndpEnv: Value from t3lib_div::getIndpEnv()
DB: Value from database, syntax is [tablename] : [uid] : [field]. Any record from a table in TCA can be selected here. Only marked- deleted records does not return a value here.
fullRootLine : This gets the title “1. page before” in a page tree like the one below provided we are are the page “Here you are!” (or “Site root”) and this TypoScript is in the template with root at “Site root”. Red numbers indicate what values of keynumber would point to:
- Page tree root -2
|- 1. page before -1
|- Site root (root template here!) 0
|- Here you are! 1
LLL: Reference to a locallang (php or xml) label. Reference consists of [fileref]:[labelkey]
path: path to a file, possibly placed in an extension, returns empty if the file doesn't exist.
cObj : [internal variable from list: “parentRecordNumber”]
debug : Returns HTML formated content of PHP variable defined by keyword. Available keys are “rootLine”, “fullRootLine”, “data”
--------------------
Getting more values.
By separating the value of getText with "//" (double slash) you let getText fetch the first value. If it appears empty ("" or zero) the next value is fetched and so on. Example:
= field:header // field:title // field:uid
This gets "title" if "header" is empty. If "title" is also empty it gets field "uid"
fullRootLine :
Getting a value from the rootline (TSFE->rootLine) going all the way to the root of the page tree.
[keynumber, fieldname, “slide”]
Keynumber is relative to the current site root, so negative numbers refer to subsequent levels below the site root. Fieldname is the name of the datafield to get. For “slide”, see levelmedia type above.
I added a few new ones to this :
- feuser : Reference to the connected feuser, key of feuser record is returned. Ex feuser:email returns email of connected user ...
- dbf : Reference to result of sql data query. Syntax dbf:selecttabl e:idfield:uidfieldindatarecord:where:groupby:orderby:limit:returnvalue field
Create Eval Values¶
Flexform Setup Fields
Create Eval Values
Description
Configuration of field evaluation.
Some of these evaluation keywords will trigger a JavaScript pre- evaluation in the form. Other evaluations will be performed in the backend.
The eval-functions will be executed in the list-order.
Keywords:
required : A non-empty value is required in the field (otherwise the form cannot be saved).
unique,uniqueGlobal : Requires the field to be unique for the whole table. (Evaluated on the server only). NOTICE: When selecting on unique-fields, make sure to select using “AND pid>=0” since the field CAN contain duplicate values in other versions of records (always having PID = -1). This also means that if you are using versioning on a table where the unique-feature is used you cannot set the field to be truely unique in the database either!
UniqueInPid,UniqueLocal : Requires the field to be unique for the current PID (among other records on the same page). (Evaluated on the server only)
date : The field will evaluate the input as a date, automatically converting the input to a UNIX-time in seconds. The display will be like "12-8-2003" while the database value stored will be "1060639200".
datetime : The field will evaluate the input as a date with time (detailed to hours and minutes), automatically converting the input to a UNIX-time in seconds. The display will be like "16:32 12-8-2003" while the database value will be "1060698720".
time : The field will evaluate the input as a timestamp in seconds for the current day (with a precision of minutes). The display will be like "23:45" while the database will be "85500".
md5 : Will convert the inputted value to the md5-hash of it (The JavaScript MD5() function is found in typo3/md5.js)
password : Will show "*******" in the field after entering the value and moving to another field. Thus passwords can be protected from display in the field. Notice that the value during entering it is visible!
To be documented
twice
uniqueFields
atLeast
atMost
invert
inBranch
unsetEmpty
I added a few new ones to this :
email : Requires the field to be in email format
wwwUrl : Requires field to be a vallid URI
To be implemented :
timesec : The field will evaluate the input as a timestamp in seconds for the current day (with a precision of seconds). The display will be like "23:45:13" while the database will be "85513".
year : Evaluates the input to a year between 1970 and 2038. If you need any year, then use "int" evaluation instead.
is_in : Will filter out any character in the input string which is not found in the string entered in the key "is_in" (see below).
double2 : Converts the input to a floating point with 2 decimal positions, using the "." (period) as the decimal delimited (accepts also "," for the same).
All the above evaluations (unless noted) are done by JavaScript with the functions found in the script t3lib/jsfunc.evalfield.js
"(TCE)" means the evaluation is done in the TCE on the server. The class used for this is t3lib_TCEmain.
Example:
Setting the field to evaluate the input to a date returned to the database in UNIX-time (seconds) which is mandatory
myfield=date,required
Edit Page Pid¶
Flexform Setup Fields
Edit Page Pid
Description
Pid of edit page allows to seperate FE creation on a different page ..
Not tested
AllowedEditorGroups¶
Flexform Setup Fields
AllowedEditorGroups
Description
FE User Groups allowed to edit record .
Not tested
((Unknown Property))¶
Flexform Setup Fields
Description
((Unknown Property))¶
Flexform Setup Fields
Description
((Unknown Property))¶
Flexform Setup Fields
Description
Edit Templates¶
Delete Tab¶
Disable Delete¶
Flexform Setup Field
Disable Delete
Description
Delete action buttons will not appear in list and edit screens.
Delete Fields¶
Flexform Setup Field
Delete Fields
Description
Not used for the moment
Delete Templates¶
Set fixed Templates¶
Preview¶
Not implemented yet
Mails Tab¶
Send Admin Mail¶
Flexform Setup Fields
Send Admin Mail
Description
If set a notification will be sent to administrator upon insert ,deletion or update of records.
Send Fe User Mail¶
Flexform Setup Fields
Send Fe User Mail
Description
If set a notification will be sent to front end user upon insert, deletion or update of records.
Send Data Mail¶
Flexform Setup Fields
Send Data Mail
Description
If set a notification will be sent email containe in edited record upon insert, deletion or update of records.
Mail Field For dataMail¶
Flexform Setup Fields
Mail Field For dataMail
Description
Field containing email in record
Send Admin Info Mail¶
Flexform Setup Fields
Send Admin Info Mail
Description
If set a moderation mail for approval will be sent to administrator upon insert or update of records.
If Send Fe User Info Mail field is also set, this mail will only be sent once Front end user has confirmed.
If Send Fe User Info Mail field is also set, this mail will only be sent once Front end user has confirmed.
Not tested
Send Fe User Info Mail¶
Flexform Setup Fields
Send Fe User Info Mail
Description
If set a moderation mail for confirmation will be sent to front end user upon insert or update of records.
Not tested
Send Data Info Mail¶
Flexform Setup Fields
Send Data Info Mail
Description
If set a moderation mail for confirmation will be sent to mail contained in edited record, upon insert or update of records.
If Send Fe User Info Mail field is also set, this mail will only be sent once Front end user has confirmed.
Not tested
From Mail¶
Flexform Setup Fields
From Mail
Description
From Mail which will appear in sent emails
Todo (if empty use default T3 configuration)
From Mail Name¶
Flexform Setup Fields
From Mail Name
Description
From Mail which will appear in sent emails
Todo (if empty use default T3 configuration)
Admin Mail¶
Flexform Setup Fields
Admin Mail
Description
Email of administrator(s) ',' is seperator for multiple emails...
Todo (if empty use default T3 configuration)
Approve Fields¶
Flexform Setup Fields
Approve Fields
Description
Lsit of fields used to caculate Hash for update, if value of one of thse fields change links sent in emails will not work ...
Template Tab¶
Generate template in browser¶
Flexform Setup Field
Generate template in browser
Description
if checked default template is printed on browser screen, if you copy source page code, in template field you can modify different parts of the template for your needs.
Use Template¶
Flexform Setup Field
Use Template
Description
If set will use content of template field for template instead of default genrated template.
Template¶
Flexform Setup Field
Template
Description
The content of this field will be used as default template instead of generated template.
This field will become obsolete once I manage to port all templates in Create Template, Edit Templates, Delete Templates and Set fIxedTemplates tabs ...
The problem with this field is that you have to copy the whole template here... Even if you just want to change one elementary template...
Another problem is that I haven't tested this template in every configuration. In particular with the page browser and other dynamic elements. Problems may occur...
Typoscript configuration¶
((generated))¶
Setup
Description
plugintx_metafeedit_pi1.stdWrap.<fieldName>.(stdWrap Conf)¶
Setup
plugintx_metafeedit_pi1.stdWrap.<fieldName>.(stdWrap Conf)
or
plugintx_metafeedit_pi1.stdWrap.<tableName>.<fieldName>.(stdWrap Conf)
Description
Wrap for fieldName in all modes
plugintx_metafeedit_pi1.<mode>.stdWrap.<field>.(stdWrap Conf)¶
Setup
plugintx_metafeedit_pi1.<mode>.stdWrap.<field>.(stdWrap Conf)
or
plugintx_metafeedit_pi1.<mode>.stdWrap.<tableName>.<fieldName>.(stdW rap Conf)
Description
Wrap for fieldName in specific mode (edit,create,list,..)
((Unknown Property))¶
Setup
Description
plugin.tx_metafeedit_pi1.list_groupByFields_stdWrap.<field>.(stdWr¶
Setup
plugin.tx_metafeedit_pi1.list_groupByFields_stdWrap.<field>.(stdWr ap Conf)
Description
Wrap for group by field in list mode
plugin.tx_metafeedit_pi1.list.item_stdWrap.<table name>.(stdWrap¶
Setup
plugin.tx_metafeedit_pi1.list.item_stdWrap.<table name>.(stdWrap Conf)
Description
Wrap for single list element in list mode (wraps entire row).
plugin.tx_metafeedit_pi1.listFormWrap.<table name>.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.listFormWrap.<table name>.(stdWrap Conf)
Description
Wrap for list form.
plugin.tx_metafeedit_pi1.wrap1.¶
Setup
plugin.tx_metafeedit_pi1.wrap1.
Description
plugin.tx_metafeedit_pi1.wrap2.¶
Setup
plugin.tx_metafeedit_pi1.wrap2.
Description
plugin.tx_metafeedit_pi1.color1.¶
Setup
plugin.tx_metafeedit_pi1.color1.
Description
plugin.tx_metafeedit_pi1.color2.¶
Setup
plugin.tx_metafeedit_pi1.color2.
Description
plugin.tx_metafeedit_pi1.color3.¶
Setup
plugin.tx_metafeedit_pi1.color3.
Description
plugin.tx_metafeedit_pi1.edit.field_stdWrap.<field name>.(stdWrap¶
Setup
plugin.tx_metafeedit_pi1.edit.field_stdWrap.<field name>.(stdWrap Conf)
Description
plugin.tx_metafeedit_pi1.text_in_top_of_form.¶
Setup
plugin.tx_metafeedit_pi1.text_in_top_of_form.
Description
plugin.tx_metafeedit_pi1.text_in_top_of_preview.¶
Setup
plugin.tx_metafeedit_pi1.text_in_top_of_preview.
Description
plugin.tx_metafeedit_pi1.editFormWrap.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.editFormWrap.(stdWrap Conf)
Description
plugin.tx_metafeedit_pi1.stdWrap.<field name>.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.stdWrap.<field name>.(stdWrap Conf)
Description
Wrap for field
plugin.tx_metafeedit_pi1.stdWrap.<table name>.<field name>.(stdWrap¶
Setup
plugin.tx_metafeedit_pi1.stdWrap.<table name>.<field name>.(stdWrap Conf)
Description
Wrap for table field
plugin.tx_metafeedit_pi1.previewWrap.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.previewWrap.(stdWrap Conf)
Description
Wrap for Preview Form.
plugin.tx_metafeedit_pi1.blogWrap.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.blogWrap.(stdWrap Conf)
Description
plugin.tx_metafeedit_pi1.searchBox.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.searchBox.(stdWrap Conf)
Description
Wrap for search box
plugin.tx_metafeedit_pi1.advancedSearch.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.advancedSearch.(stdWrap Conf)
Description
Wrap for advanced search box
plugin.tx_metafeedit_pi1.alphabeticalSearch.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.alphabeticalSearch.(stdWrap Conf)
Description
Wrap for alphabetical search box
plugin.tx_metafeedit_pi1.fileWrap.<field name>.(stdWrap Conf)¶
Setup
plugin.tx_metafeedit_pi1.fileWrap.<field name>.(stdWrap Conf)
Description
To be documented¶
Setup
Description
Filewrap¶
Setup
Filewrap
Description
evalWrap¶
Setup
evalWrap
Description
evalLastSep¶
Setup
evalLastSep
Description
evalSep¶
Setup
evalSep
Description
field_stdWrap¶
Setup
field_stdWrap
Description
formWrap¶
Setup
formWrap
Description
((Unknown Property))¶
Setup
Description
((Unknown Property))¶
Setup
Description
((Unknown Property))¶
Setup
Description
((Unknown Property))¶
Setup
Description
((Unknown Property))¶
Setup
Description
Page Browser¶
Setup
Description
Example :
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_d isplays=Affichage des enregistrements ###SPAN_BEGIN###%s à %s</span> sur ###SPAN_BEGIN###%s</span>
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_searchBox_searc h=Chercher
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_p rev =< Précédent
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_n ext =Suivant >
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult s_displays
Description
Language overide for page browser results display
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_searchBox_s¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_searchBox_s earch
Description
Language overide for page browser search button
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult s_prev
Description
Language overide for page browser prev link
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult s_next
Description
Language overide for page browser next link
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult s_last
Description
Language overide for page browser last link
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult s_first
Description
Language overide for page browser first link
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult s_to
Description
Language overide for «to» text
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.pi_list_browseresult s_page
Description
Language oveeride for page text.
plugin.tx_metafeedit_pi1.showResultCount¶
Setup
plugin.tx_metafeedit_pi1.showResultCount
Description
If set Result Count text is shown in list mode.
plugin.tx_metafeedit_pi1.showFirstLast¶
Setup
plugin.tx_metafeedit_pi1.showFirstLast
Description
If set Last and first buttons ar shown
plugin.tx_metafeedit_pi1.browseBoxWrap¶
Setup
plugin.tx_metafeedit_pi1.browseBoxWrap
Description
Wrap for the browse box.
plugin.tx_metafeedit_pi1.activeLinkWrap¶
Setup
plugin.tx_metafeedit_pi1.activeLinkWrap
Description
Wrap for the active links
plugin.tx_metafeedit_pi1.inactiveLinkWrap¶
Setup
plugin.tx_metafeedit_pi1.inactiveLinkWrap
Description
Wrap for inactive links
plugin.tx_metafeedit_pi1.disabledLinkWrap¶
Setup
plugin.tx_metafeedit_pi1.disabledLinkWrap
Description
Wrap for disabled links
plugin.tx_metafeedit_pi1.prevLinkWrap¶
Setup
plugin.tx_metafeedit_pi1.prevLinkWrap
Description
Wrap for previous link
plugin.tx_metafeedit_pi1.nextLinkWrap¶
Setup
plugin.tx_metafeedit_pi1.nextLinkWrap
Description
Wrap for next link
plugin.tx_metafeedit_pi1.firstLinkWrap¶
Setup
plugin.tx_metafeedit_pi1.firstLinkWrap
Description
Wrap for first link
plugin.tx_metafeedit_pi1.lastLinkWrap¶
Setup
plugin.tx_metafeedit_pi1.lastLinkWrap
Description
Wrap for last link
Data handling¶
Setup
Description
These fields allow to edit only records linked to a field of a record of a specified table ....
This information can also be transferred through GP Vars (see further).
(Todo Give example)
originUid¶
Setup
originUid
Description
Origin Table Uid
originTable¶
Setup
originTable
Description
Origin Table
originUidsField¶
Setup
originUidsField
Description
Origin Table Field for jointure
Language Overrides¶
Setup
Description
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.<table>.<field>¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.<lang>.<table>.<field>
Description
Language override for field of edited table ....
Example French ovverride for job offer table ...
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.tx_cljoboffers_offer.pos ition=Poste recherché
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.tx_cljoboffers_offer.dut ies=Responsabilités affectées
plugin.tx_metafeedit_pi1.pi1_title¶
Setup
plugin.tx_metafeedit_pi1.pi1_title
Description
plugin.tx_metafeedit_pi1.label.¶
Setup
plugin.tx_metafeedit_pi1.label.
Description
plugin.tx_metafeedit_pi1.evalErrors.¶
Setup
plugin.tx_metafeedit_pi1.evalErrors.
Description
plugin.tx_metafeedit_pi1._LOCAL_LANG.¶
Setup
plugin.tx_metafeedit_pi1._LOCAL_LANG.
Description
Images¶
Setup
Description
plugin.tx_metafeedit_pi1.edit.imgConf.<field name>¶
Setup
plugin.tx_metafeedit_pi1.edit.imgConf.<field name>
Description
IMAGE (see TSREF for parameters)
plugin.tx_metafeedit_pi1.create.imgConf.<field name>¶
Setup
plugin.tx_metafeedit_pi1.create.imgConf.<field name>
Description
IMAGE (see TSREF for parameters)
plugin.tx_metafeedit_pi1.list.imgConf.<field name>¶
Setup
plugin.tx_metafeedit_pi1.list.imgConf.<field name>
Description
IMAGE(see TSREF for parameters)
plugin.tx_metafeedit_pi1.edit.icon_thumbSize.<field name>¶
Setup
plugin.tx_metafeedit_pi1.edit.icon_thumbSize.<field name>
Description
For Edit Screen Image fields.
Max Size of image field default is '20'.
You may specify WxH example : 100x50 (Max 100 pixel wide, Max 50 Height).
0, no control on image size, images will be displayed in their natural size (carefull with this one, it may explode your template if image sizes are big)..
plugin.tx_metafeedit_pi1.create.icon_thumbSize.<field name>¶
Setup
plugin.tx_metafeedit_pi1.create.icon_thumbSize.<field name>
Description
For Create Screen Image fields.
Max Size of image field default is '20'.
You may specify WxH example : 100x50 (Max 100 pixel wide, Max 50 Height).
0, no control on image size, images will be displayed in their natural size (carefull with this one, it may explode your template if image sizes are big)..
plugin.tx_metafeedit_pi1.list.icon_thumbSize.<field name>¶
Setup
plugin.tx_metafeedit_pi1.list.icon_thumbSize.<field name>
Description
For List Screen Images.
Max Size of image field default is '20'.
You may specify WxH example : 100x50 (Max 100 pixel wide, Max 50 Height).
0, no control on image size, images will be displayed in their natural size (carefull with this one, it may explode your template if image sizes are big)..
plugin.tx_metafeedit_pi1.list.stdWrap.thumbnail.stdWrap.wrap¶
Setup
plugin.tx_metafeedit_pi1.list.stdWrap.thumbnail.stdWrap.wrap
Description
To modifiy default wrapping link ...
MediaPlayer¶
Setup
Description
plugin.tx_metafeedit_pi1.mediaImgConf¶
Setup
plugin.tx_metafeedit_pi1.mediaImgConf
Description
IMAGE (see TSREF)
plugin.tx_metafeedit_pi1.list.mediaImgConf¶
Setup
plugin.tx_metafeedit_pi1.list.mediaImgConf
Description
IMAGE (see TSREF)
plugin.tx_metafeedit_pi1.create.mediaImgConf¶
Setup
plugin.tx_metafeedit_pi1.create.mediaImgConf
Description
IMAGE (see TSREF)
plugin.tx_metafeedit_pi1.edit.mediaImgConf¶
Setup
plugin.tx_metafeedit_pi1.edit.mediaImgConf
Description
IMAGE (see TSREF)
Post data processing¶
Setup
Description
meta_feedit_afterSave¶
Setup
meta_feedit_afterSave
Description
((Unknown Property))¶
Setup
Description
RELATIONS¶
Setup
Description
['create.']['whereString.']¶
Setup
['create.']['whereString.']
['edit.']['whereString.']
['list.']['whereString.']
whereString
['create.']['orderBy.']
['edit.']['orderBy .']
['list.']['orderBy .']
orderBy
Description
Examples :¶
Front end user Join¶
plugin.tx_metafeedit_pi1.listeSpectacles.fUKeyField = tx_metabookingdb_entite_juridique_uid
plugin.tx_metafeedit_pi1.listeSpectacles.fUField = tx_metabookingdbextfeusers_tx_metabookingdb_entite_juridique_uid
email wrap:¶
plugin.tx_metafeedit_pi1.stdWrap.email {
dataWrap=<a href="mailto:{field:email}">|</a>
override=e-mail
fieldRequired=email
}
plugin.tx_metafeedit_pi1.stdWrap.image {
if {
value.field=title
equals=Assistante
negate=1
}
wrap=
typolink {
parameter=62,98 600x700:scrollbars=1
additionalParams.dataWrap=&rU={field:uid}&cmd=edit
JSwindow = 1
JSwindow_params = scrollbars=1
}
postWrap=1
postWrap {
ifEmpty {
dataWrap=<img src="/uploads/tx_srfeuserregister/{field:image}"/>
}
}
}
cropping content of field :¶
plugin.tx_metafeedit_pi1.stdWrap.bodytext{
stripHtml=1
crop=50|..|1
}
date format:¶
plugin.tx_metafeedit_pi1.dateformat=%e %b %Y
Page browser TS¶
plugin.tx_metafeedit_pi1.pagefloat=center
plugin.tx_metafeedit_pi1.showResultCount=0
plugin.tx_metafeedit_pi1.showFirstLast=0
plugin.tx_metafeedit_pi1.browseBoxWrap=<div class="browseBoxWrap">|</div>
plugin.tx_metafeedit_pi1.activeLinkWrap=<td><div class="activeLinkWrap">|</div></td>
plugin.tx_metafeedit_pi1.inactiveLinkWrap=<td><div class="inactiveLinkWrap">|</div></td>
plugin.tx_metafeedit_pi1.disabledLinkWrap=<td><div class="disabledLinkWrap">|</div></td>
plugin.tx_metafeedit_pi1.prevLinkWrap=<td><div class="prev"><div class="vishack">|</div></div></td>
plugin.tx_metafeedit_pi1.nextLinkWrap=<td><div class="next"><div class="vishack">|</div></div></td>
plugin.tx_metafeedit_pi1.firstLinkWrap=<td><div class="first">|</div></td>
plugin.tx_metafeedit_pi1.lastLinkWrap=<td><div class="last">|</div></td>
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_displays=Affichage des enregistrements ###SPAN_BEGIN###%s à %s</span> sur ###SPAN_BEGIN###%s</span>
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_searchBox_search=Chercher
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_prev = <
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_next = >
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_first=<< Début
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_last =Fin >>
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_page =
plugin.tx_metafeedit_pi1._LOCAL_LANG.de.pi_list_browseresults_page =
plugin.tx_metafeedit_pi1._LOCAL_LANG.en.pi_list_browseresults_page =
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.pi_list_browseresults_to=à
To be documented :¶
plugin.tx_metafeedit._LOCAL_LANG.fr.pi_list_searchBox_search=Chercher
plugin.tx_metafeedit_pi1.edit.icon_thumbSize.image=0
plugin.tx_metafeedit_pi1.mthfeedit.map_type_to_icon.pdf = pdf.gif
plugin.tx_metafeedit_pi1.stdWrap.first_name {
if {
value.field=title
equals=Assistante
negate=1
}
typolink {
parameter=62,98 600x600:scrollbars=1
additionalParams.dataWrap=&rU={field:uid}&cmd=edit
JSwindow = 1
JSwindow_params = scrollbars=1
}
stdWrap=1
stdWrap {
dataWrap={field:first_name} |
stdWrap=1
stdWrap {
case=upper
field=last_name
}
}
postWrap=1
postWrap {
ifEmpty {
dataWrap={field:first_name} |
stdWrap=1
stdWrap {
case=upper
field=last_name
}
}
}
}
Mails¶
List Mode¶
Headers¶
Errors¶
Search BOX¶
Search Box is displayed in List,Calendar and Grid mode.
Search Actions :
Full Text Search¶
Alphabetical Search¶
Advanced Search¶
Advanced Search FieldSets¶
AjaxSearchSelector¶
The ajax data selector replaces the normal dropdown menu allowing data filtering through a widget.
The arrow key will allow normal dro down action section.
The text field allows to search interactively on uid field or label field ....
plugin.tx_metafeedit_pi1.listeSpectacles.list.advancedSearchAjaxSelector.tx_metabookingdb_type_spectacle_uid=1
plugin.tx_metafeedit_pi1.listeSpectacles.list.asFieldSetNames.0=test
AdvancedSearch FlexForm¶
In the List Tab ...
AdvancedSearch Typoscript¶
plugin.tx_metafeedit_pi1 {advancedSearch.configOverride.columns.user_groups.size=1}
plugin.tx_metafeedit_pi1.[pluginId].list.advancedSearchAjaxSelector. [fieldName]=1
plugin.tx_metafeedit_pi1.[pluginId].list.asFieldSetNames.0=test
plugin.tx_metafeedit_pi1.listeSpectacles.list.advancedSearchAjaxSele ctor.tx_metabookingdb_type_spectacle_uid=1
plugin.tx_metafeedit_pi1.listeSpectacles.whereClause.tx_metabooking db_type_spectacle_uid = and tx_metabookingdb_type_spectacle.tx_ metabookingdb_entite_juridique_uid=###FEUSER_tx_metabookingdbextf eusers_tx_metabookingdb_entite_juridique_uid###
plugin.tx_metafeedit_pi1.listeSpectacles.whereClause.tx_metabooking db_categorie_spectacle_uid = and tx_metabookingdb_categorie_spec tacle.tx_metabookingdb_entite_juridique_uid=###FEUSER_tx_metaboo kingdbextfeusers_tx_metabookingdb_entite_juridique_uid###
plugin.tx_metafeedit_pi1.listeSpectacles.whereClause.tx_metabooking db_discipline_uid = and tx_metabookingdb_discipline_spectacle.tx_metabookingdb_entite_juridique_uid=###FEUSER_tx_metabookingdbext feusers_tx_metabookingdb_entite_juridique_uid###
plugin.tx_metafeedit_pi1.listeSpectacles.whereClause.tx_metabooking db_organisateur_uid = and tx_metabookingdb_organisateur_spectacle .tx_metabookingdb_entite_juridique_uid=###FEUSER_tx_metabookingd bextfeusers_tx_metabookingdb_entite_juridique_uid###
plugin.tx_metafeedit_pi1.listeSpectacles.whereClause.tx_metabooking db_saison_uid = and tx_metabookingdb_saison.tx_metabookingdb_ent ite_juridique_uid=###FEUSER_tx_metabookingdbextfeusers_tx_metabo okingdb_entite_juridique_uid###
plugin.tx_metafeedit_pi1.listeSpectacles.whereClause.tva = and tx_m etabookingdb_tva.entite_juridique=###FEUSER_tx_metabookingdbextfeu sers_tx_metabookingdb_entite_juridique_uid###
plugin.tx_metafeedit_pi1.caisse.advancedSearch.crdate.default.val=no w
plugin.tx_metafeedit_pi1.caisse.advancedSearch.crdate.default.op==
plugin.tx_metafeedit_pi1.caisse.advancedSearch.caisse.default.val=fe user:tx_metabookingdbextfeusers_tx_metabookingdb_caisse_uid
plugin.tx_metafeedit_pi1.caisse.advancedSearch.entite_juridique.def ault.val=feuser:tx_metabookingdbextfeusers_tx_metabookingdb_entite _juridique_uid
plugin.tx_metafeedit_pi1.listeSpectacles.list.advancedSearchAjaxSele ctor.tx_metabookingdb_type_spectacle_uid=1
Row specific Actions¶
Ex:
Edit, Delete
Print, PDF,Create (NOT IMPLEMENTED YET)
Custom Actions¶
Custom actions can also be defined for nearly every mode.
The action label should be seperated from the link by a pipe (i.e. «|» without the quotes).
HTML (such as an img tag) is acceptable in the label.
Dynamic database values can be defined with a marker such as ###FIELD_uid###. Such a marker will be replaced with data from the current record when the link is rendered.
Field Sets¶
$conf['mthfeedit.']['list.']['asFieldSetNames.']=$conf[$pluginId.'.'][ 'list.']['asFieldSetNames.'];
$conf['mthfeedit.']['list.']['fieldSetNames.']=$conf[$pluginId.'.']['l ist.']['fieldSetNames.'];
Markers¶
Default markers are :
###FIELD_<fieldname>###
###FEUSER_<fieldname>### contains all fields of connected feuser.
Templates¶
All templates in this section may change without adjustment to the documentaion.
Introduction¶
The template mecanism of the meta_feedit is based on the following procedure :
We get either a generated template or a user defined template.
We build a data array from database data.
We complete data array with front end user fields
We complete data array with calculated fields
We complete data array with language marks.
We apply typoscript stdwraps to data array
4 we apply data array to template.
Example templates¶
Authentification Template¶
<!-- ###TEMPLATE_AUTH### begin -->
<h1 class="tx-metafeedit-header tx-metafeedit-header-auth">Authentification failed</h1>
<div class="tx-metafeedit-message tx-metafeedit-message-auth">For some reason the authentication failed. </div>
<!-- ###TEMPLATE_AUTH### end-->
No permissions Template¶
<!-- ###TEMPLATE_NO_PERMISSIONS### begin -->
<h1 class="tx-metafeedit-header tx-metafeedit-header-no-permissions">No permissions to edit record</h3>
<div class="tx-metafeedit-message tx-metafeedit-message-no-permissions">Sorry, you did not have permissions to edit the record.</div>
<!-- ###TEMPLATE_NO_PERMISSIONS### end-->
Confirmation Email to user on creation Template¶
<!-- ###EMAIL_TEMPLATE_CREATE_SAVED### begin -->
[Auto Generated Message] Your information has been saved.
<!--###SUB_RECORD###-->
You have submitted the following informations at http://cric.ard.fr/:
Nom d'utilisateur:
###FIELD_username###
Mot de passe:
###FIELD_password###
Groupes:
###FIELD_EVAL_usergroup###
Bloqué au domaine:
###FIELD_lockToDomain###
Nom:
###FIELD_name###
Mr./Mme:
###FIELD_EVAL_gender###
Prénom:
###FIELD_first_name###
Nom:
###FIELD_last_name###
Statut:
###FIELD_EVAL_status###
Date de naissance:
###FIELD_EVAL_date_of_birth###
Titre:
###FIELD_title###
Société:
###FIELD_company###
Adresse:
###FIELD_address###
Code postal:
###FIELD_zip###
Ville:
###FIELD_city###
État/province:
###FIELD_zone###
Pays:
###FIELD_static_info_country###
Pays:
###FIELD_country###
Langue:
###FIELD_language###
Email:
###FIELD_email###
www:
###FIELD_www###
Téléphone:
###FIELD_telephone###
Fax:
###FIELD_fax###
Désactiver:
###FIELD_EVAL_disable###
Lancement:
###FIELD_EVAL_starttime###
Arrêt:
###FIELD_EVAL_endtime###
Last login:
###FIELD_EVAL_lastlogin###
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_CREATE_SAVED### end-->
Email to admin on creation Template¶
<!-- ###EMAIL_TEMPLATE_CREATE_SAVED-ADMIN_NOTIFY### begin -->
[Auto Generated Message] New record created.
<!--###SUB_RECORD###-->
Nom d'utilisateur:
###FIELD_username###
Mot de passe:
###FIELD_password###
Groupes:
###FIELD_EVAL_usergroup###
Bloqué au domaine:
###FIELD_lockToDomain###
Nom:
###FIELD_name###
Mr./Mme:
###FIELD_EVAL_gender###
Prénom:
###FIELD_first_name###
Nom:
###FIELD_last_name###
Statut:
###FIELD_EVAL_status###
Date de naissance:
###FIELD_EVAL_date_of_birth###
Titre:
###FIELD_title###
Société:
###FIELD_company###
Adresse:
###FIELD_address###
Code postal:
###FIELD_zip###
Ville:
###FIELD_city###
État/province:
###FIELD_zone###
Pays:
###FIELD_static_info_country###
Pays:
###FIELD_country###
Langue:
###FIELD_language###
Email:
###FIELD_email###
www:
###FIELD_www###
Téléphone:
###FIELD_telephone###
Fax:
###FIELD_fax###
Désactiver:
###FIELD_EVAL_disable###
Lancement:
###FIELD_EVAL_starttime###
Arrêt:
###FIELD_EVAL_endtime###
Last login:
###FIELD_EVAL_lastlogin###
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_CREATE_SAVED-ADMIN_NOTIFY### end-->
Data Email on creation Template¶
<!-- ###EMAIL_TEMPLATE_CREATE_SAVED-DATA### begin -->
[Auto Generated Message] You have been invited.
<!--###SUB_RECORD###-->
Nom d'utilisateur:
###FIELD_username###
Mot de passe:
###FIELD_password###
Groupes:
###FIELD_EVAL_usergroup###
Bloqué au domaine:
###FIELD_lockToDomain###
Nom:
###FIELD_name###
Mr./Mme:
###FIELD_EVAL_gender###
Prénom:
###FIELD_first_name###
Nom:
###FIELD_last_name###
Statut:
###FIELD_EVAL_status###
Date de naissance:
###FIELD_EVAL_date_of_birth###
Titre:
###FIELD_title###
Société:
###FIELD_company###
Adresse:
###FIELD_address###
Code postal:
###FIELD_zip###
Ville:
###FIELD_city###
État/province:
###FIELD_zone###
Pays:
###FIELD_static_info_country###
Pays:
###FIELD_country###
Langue:
###FIELD_language###
Email:
###FIELD_email###
www:
###FIELD_www###
Téléphone:
###FIELD_telephone###
Fax:
###FIELD_fax###
Désactiver:
###FIELD_EVAL_disable###
Lancement:
###FIELD_EVAL_starttime###
Arrêt:
###FIELD_EVAL_endtime###
Last login:
###FIELD_EVAL_lastlogin###
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_CREATE_SAVED-DATA### end-->
Email to admin on creation Template¶
<!-- ###EMAIL_TEMPLATE_CREATE_SAVED-ADMIN### begin -->
[Auto Generated Message] New record created.
<!--###SUB_RECORD###-->
Nom d'utilisateur:
###FIELD_username###
Mot de passe:
###FIELD_password###
Groupes:
###FIELD_EVAL_usergroup###
Bloqué au domaine:
###FIELD_lockToDomain###
Nom:
###FIELD_name###
Mr./Mme:
###FIELD_EVAL_gender###
Prénom:
###FIELD_first_name###
Nom:
###FIELD_last_name###
Statut:
###FIELD_EVAL_status###
Date de naissance:
###FIELD_EVAL_date_of_birth###
Titre:
###FIELD_title###
Société:
###FIELD_company###
Adresse:
###FIELD_address###
Code postal:
###FIELD_zip###
Ville:
###FIELD_city###
État/province:
###FIELD_zone###
Pays:
###FIELD_static_info_country###
Pays:
###FIELD_country###
Langue:
###FIELD_language###
Email:
###FIELD_email###
www:
###FIELD_www###
Téléphone:
###FIELD_telephone###
Fax:
###FIELD_fax###
Désactiver:
###FIELD_EVAL_disable###
Lancement:
###FIELD_EVAL_starttime###
Arrêt:
###FIELD_EVAL_endtime###
Last login:
###FIELD_EVAL_lastlogin###
Approve:
###THIS_URL######FORM_URL######SYS_SETFIXED_approve###
Delete:
###THIS_URL######FORM_URL######SYS_SETFIXED_DELETE###
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_CREATE_SAVED-ADMIN### end-->
Email to user on deletion Template¶
<!-- ###EMAIL_TEMPLATE_SETFIXED_DELETE### begin -->
Consultancy DELETED!
<!--###SUB_RECORD###-->
Record name: ###FIELD_username###
Your entry has been deleted by the admin for some reason.
- kind regards.
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_SETFIXED_DELETE### end →
Email to user on approval Template¶
<!-- ###EMAIL_TEMPLATE_SETFIXED_approve### begin -->
Update approved
<!--###SUB_RECORD###-->
Record name: ###FIELD_username###
Your entry has been approved!
- kind regards.
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_SETFIXED_approve### end →
Email to user on update Template¶
<!-- ###EMAIL_TEMPLATE_EDIT_SAVED### begin -->
[Auto Generated Message] Your information has been saved.
<!--###SUB_RECORD###-->
You have submitted the following information at http://cric.ard.fr/:
Nom d'utilisateur:
###FIELD_username###
Mot de passe:
###FIELD_password###
Groupes:
###FIELD_EVAL_usergroup###
Bloqué au domaine:
###FIELD_lockToDomain###
Nom:
###FIELD_name###
Mr./Mme:
###FIELD_EVAL_gender###
Prénom:
###FIELD_first_name###
Nom:
###FIELD_last_name###
Statut:
###FIELD_EVAL_status###
Date de naissance:
###FIELD_EVAL_date_of_birth###
Titre:
###FIELD_title###
Société:
###FIELD_company###
Adresse:
###FIELD_address###
Code postal:
###FIELD_zip###
Ville:
###FIELD_city###
État/province:
###FIELD_zone###
Pays:
###FIELD_static_info_country###
Pays:
###FIELD_country###
Langue:
###FIELD_language###
Email:
###FIELD_email###
www:
###FIELD_www###
Téléphone:
###FIELD_telephone###
Fax:
###FIELD_fax###
Désactiver:
###FIELD_EVAL_disable###
Lancement:
###FIELD_EVAL_starttime###
Arrêt:
###FIELD_EVAL_endtime###
Last login:
###FIELD_EVAL_lastlogin###
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_EDIT_SAVED### end-->
Email to admin on update Template¶
<!-- ###EMAIL_TEMPLATE_EDIT_SAVED-ADMIN_NOTIFY### begin -->
[Auto Generated Message] Consultancy record edited.
<!--###SUB_RECORD###-->
Nom d'utilisateur:
###FIELD_username###
Mot de passe:
###FIELD_password###
Groupes:
###FIELD_EVAL_usergroup###
Bloqué au domaine:
###FIELD_lockToDomain###
Nom:
###FIELD_name###
Mr./Mme:
###FIELD_EVAL_gender###
Prénom:
###FIELD_first_name###
Nom:
###FIELD_last_name###
Statut:
###FIELD_EVAL_status###
Date de naissance:
###FIELD_EVAL_date_of_birth###
Titre:
###FIELD_title###
Société:
###FIELD_company###
Adresse:
###FIELD_address###
Code postal:
###FIELD_zip###
Ville:
###FIELD_city###
État/province:
###FIELD_zone###
Pays:
###FIELD_static_info_country###
Pays:
###FIELD_country###
Langue:
###FIELD_language###
Email:
###FIELD_email###
www:
###FIELD_www###
Téléphone:
###FIELD_telephone###
Fax:
###FIELD_fax###
Désactiver:
###FIELD_EVAL_disable###
Lancement:
###FIELD_EVAL_starttime###
Arrêt:
###FIELD_EVAL_endtime###
Last login:
###FIELD_EVAL_lastlogin###
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_EDIT_SAVED-ADMIN_NOTIFY### end-->
Data Email on update Template¶
<!-- ###EMAIL_TEMPLATE_EDIT_SAVED-DATA### begin -->
[Auto Generated Message] Consultancy record edited.
<!--###SUB_RECORD###-->
Nom d'utilisateur:
###FIELD_username###
Mot de passe:
###FIELD_password###
Groupes:
###FIELD_EVAL_usergroup###
Bloqué au domaine:
###FIELD_lockToDomain###
Nom:
###FIELD_name###
Mr./Mme:
###FIELD_EVAL_gender###
Prénom:
###FIELD_first_name###
Nom:
###FIELD_last_name###
Statut:
###FIELD_EVAL_status###
Date de naissance:
###FIELD_EVAL_date_of_birth###
Titre:
###FIELD_title###
Société:
###FIELD_company###
Adresse:
###FIELD_address###
Code postal:
###FIELD_zip###
Ville:
###FIELD_city###
État/province:
###FIELD_zone###
Pays:
###FIELD_static_info_country###
Pays:
###FIELD_country###
Langue:
###FIELD_language###
Email:
###FIELD_email###
www:
###FIELD_www###
Téléphone:
###FIELD_telephone###
Fax:
###FIELD_fax###
Désactiver:
###FIELD_EVAL_disable###
Lancement:
###FIELD_EVAL_starttime###
Arrêt:
###FIELD_EVAL_endtime###
Last login:
###FIELD_EVAL_lastlogin###
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_EDIT_SAVED-DATA### end-->
Email to admin on update Template with approval and deletion link¶
<!-- ###EMAIL_TEMPLATE_EDIT_SAVED-ADMIN### begin -->
[Auto Generated Message] Consultancy record edited.
<!--###SUB_RECORD###-->
Nom d'utilisateur:
###FIELD_username###
Mot de passe:
###FIELD_password###
Groupes:
###FIELD_EVAL_usergroup###
Bloqué au domaine:
###FIELD_lockToDomain###
Nom:
###FIELD_name###
Mr./Mme:
###FIELD_EVAL_gender###
Prénom:
###FIELD_first_name###
Nom:
###FIELD_last_name###
Statut:
###FIELD_EVAL_status###
Date de naissance:
###FIELD_EVAL_date_of_birth###
Titre:
###FIELD_title###
Société:
###FIELD_company###
Adresse:
###FIELD_address###
Code postal:
###FIELD_zip###
Ville:
###FIELD_city###
État/province:
###FIELD_zone###
Pays:
###FIELD_static_info_country###
Pays:
###FIELD_country###
Langue:
###FIELD_language###
Email:
###FIELD_email###
www:
###FIELD_www###
Téléphone:
###FIELD_telephone###
Fax:
###FIELD_fax###
Désactiver:
###FIELD_EVAL_disable###
Lancement:
###FIELD_EVAL_starttime###
Arrêt:
###FIELD_EVAL_endtime###
Last login:
###FIELD_EVAL_lastlogin###
Approve:
###THIS_URL######FORM_URL######SYS_SETFIXED_approve###
Delete:
###THIS_URL######FORM_URL######SYS_SETFIXED_DELETE###
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_EDIT_SAVED-ADMIN### end-->
Email to user on deletion Template¶
<!-- ###EMAIL_TEMPLATE_SETFIXED_DELETE### begin -->
Consultancy DELETED!
<!--###SUB_RECORD###-->
Record name: ###FIELD_username###
Your entry has been deleted by the admin for some reason.
- kind regards.
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_SETFIXED_DELETE### end -->
Email to user on approval Template¶
<!-- ###EMAIL_TEMPLATE_SETFIXED_approve### begin -->
Consultancy approved
<!--###SUB_RECORD###-->
Record name: ###FIELD_username###
Your consultancy entry has been approved!
- kind regards.
<!--###SUB_RECORD###-->
<!-- ###EMAIL_TEMPLATE_SETFIXED_approve### end →
Edit Template¶
<!-- ###TEMPLATE_EDIT### begin --><h1 class="tx-metafeedit-header tx-metafeedit-header-edit">Edition de : "###FIELD_username###"</h1>
<div class="tx-metafeedit-error"><!-- -->###EVAL_ERROR###</div>
<div class="tx-metafeedit-form-wrap">
<form name="fe_users_form" method="post" action="###FORM_URL###" enctype="multipart/form-data" onsubmit="">
<div class="tx-metafeedit-form-row">
###HIDDENFIELDS###
###ACTION-SAVE###
</div>
</form><table style="width:100%"><tr><td align="left">###ACTION-BACK###</td><td>###ACTION-NEW###</td><td align="right"><div class="tx-metafeedit-actions tx-metafeedit-edit-actions"></div></td><td>###ACTION-PDF###</td></tr></td></div><!-- ###TEMPLATE_EDIT### end-->
Edit preview Template¶
<!-- ###TEMPLATE_EDIT_PREVIEW### begin -->
<h1 class="tx-metafeedit-header tx-metafeedit-header-edit-preview">Edition de : "###FIELD_username###"</h1>
<div class="tx-metafeedit-preview-wrap">
<form name="fe_users_form" method="post" action="###FORM_URL###" enctype="multipart/form-data">
<div class="tx-metafeedit-preview-row">
###HIDDENFIELDS###
<!-- ###PREVIEWACTIONS### begin -->
<table style="width:100%"><tr><td align="left"><div class="tx-metafeedit-link tx-metafeedit-link-back"><a title="Retour" href="###BACK_URL_HSC###">Retour</a></div></td><td align="right"><div class="tx-metafeedit-actions tx-metafeedit-preview-actions"></div></td></tr></table>
<!-- ###PREVIEWACTIONS### end -->
</div>
</form>
</div><!-- ###TEMPLATE_EDIT_PREVIEW### end-->
Edit save confirmation Template¶
<!-- ###TEMPLATE_EDIT_SAVED### begin-->
<h1 class="tx-metafeedit-header tx-metafeedit-header-edit-saved">Enregistré</h1>
<div class="tx-metafeedit-message tx-metafeedit-message-edit-saved">Vos informations ont été mises à jour.</div>
<div class="tx-metafeedit-link tx-metafeedit-link-edit-saved"><div class="tx-metafeedit-link tx-metafeedit-link-back"><a title="Retour" href="###BACK_URL_HSC###">Retour</a></div></div>
<!-- ###TEMPLATE_EDIT_SAVED### end-->
List Template¶
<!-- ###TEMPLATE_EDITMENU### begin --><table style="width:100%"><tr><td align="left" valign="top">###ACTIONS-LIST-TOP###</td></tr></table><div class="tx-metafeedit-editmenu"><h1 class="tx-metafeedit-header tx-metafeedit-header-editmenu">Liste des éléments</h1><div class="tx-metafeedit-message tx-metafeedit-message-editmenu">Modifiez ou consultez vos enregistrements ci dessous</div>
<div class="tx-metafeedit-error"><!-- -->###EVAL_ERROR###</div>
<div class="tx-metafeedit-editmenu-list"><div class="tx-metafeedit-advancedSearch"><form name="fe_users_asform" method="post" action="###FORM_URL###" enctype="multipart/form-data"><ul class="astabnav"><li class="active"><a id="tx-metafeedit-as_asfilter_175_a" href="#">Recherche</a></li><li><a id="tx-metafeedit-as_name_175_a" href="#">Nom:</a></li><li><a id="tx-metafeedit-as_company_175_a" href="#">Société:</a></li><li><a id="tx-metafeedit-as_city_175_a" href="#">Ville:</a></li></ul><div id="tx-metafeedit-as_asfilter_175" class="tx-metafeedit-as tx-metafeedit-advancedSearch-text tx-metafeedit-advancedSearch--text tx-metafeedit-advancedSearch--text-"><div id="blockfiltre"></div></div><div id="tx-metafeedit-as_name_175" style="display:none;" class="tx-metafeedit-as tx-metafeedit-advancedSearch-input tx-metafeedit-advancedSearch-fe_users-input tx-metafeedit-advancedSearch-fe_users-input-name"><div class="tx-metafeedit-asl">Nom:</div><input type="text" name="tx_metafeedit[advancedSearch][175][name]" value="###ASFIELD_name_VAL###" class="tx-metafeedit-form-asfield" /></div><div id="tx-metafeedit-as_company_175" style="display:none;" class="tx-metafeedit-as tx-metafeedit-advancedSearch-input tx-metafeedit-advancedSearch-fe_users-input tx-metafeedit-advancedSearch-fe_users-input-company"><div class="tx-metafeedit-asl">Société:</div><input type="text" name="tx_metafeedit[advancedSearch][175][company]" value="###ASFIELD_company_VAL###" class="tx-metafeedit-form-asfield" /></div><div id="tx-metafeedit-as_city_175" style="display:none;" class="tx-metafeedit-as tx-metafeedit-advancedSearch-input tx-metafeedit-advancedSearch-fe_users-input tx-metafeedit-advancedSearch-fe_users-input-city"><div class="tx-metafeedit-asl">Ville:</div><input type="text" name="tx_metafeedit[advancedSearch][175][city]" value="###ASFIELD_city_VAL###" class="tx-metafeedit-form-asfield" /></div><div class="tx-metafeedit-advancedSearch-actions"><div class="tx-metafeedit-advancedSearch-action"><div class="tx-metafeedit-advancedSearch-action"><input type="submit" name="submit" value="Recherche" class="tx-metafeedit-form-submit" /></div><div class="tx-metafeedit-link tx-metafeedit-advancedSearch-action tx-metafeedit-as_reset"><a href="###FORM_URL_NO_PRM###&tx_metafeedit[reset][175]=1">Enlever critères de recherche</a></div></div></div></form></div><table class="tx-metafeedit-editmenu-list-table" style="width: 100%;"><tr class="tx-metafeedit-editmenu-list-table-header">###ACTIONS-LIST-LIB###<th><a class="###SORT_CLASS_company###" href="58.0.html?&tx_metafeedit[sort]=company%3A%23%23%23SORT_DIR_company%23%23%23&cHash=4b224b22c7"><i> </i>Société:</a></th><th><a class="###SORT_CLASS_name###" href="58.0.html?&tx_metafeedit[sort]=name%3A%23%23%23SORT_DIR_name%23%23%23&cHash=d9f0b85e71"><i> </i>Nom:</a></th><th><a class="###SORT_CLASS_address###" href="58.0.html?&tx_metafeedit[sort]=address%3A%23%23%23SORT_DIR_address%23%23%23&cHash=71b56ea5b7"><i> </i>Adresse:</a></th><th><a class="###SORT_CLASS_zip###" href="58.0.html?&tx_metafeedit[sort]=zip%3A%23%23%23SORT_DIR_zip%23%23%23&cHash=88fa0cedfe"><i> </i>Code postal:</a></th><th><a class="###SORT_CLASS_city###" href="58.0.html?&tx_metafeedit[sort]=city%3A%23%23%23SORT_DIR_city%23%23%23&cHash=d50019f377"><i> </i>Ville:</a></th><th><a class="###SORT_CLASS_telephone###" href="58.0.html?&tx_metafeedit[sort]=telephone%3A%23%23%23SORT_DIR_telephone%23%23%23&cHash=11a17fef7f"><i> </i>Téléphone:</a></th><th><a class="###SORT_CLASS_fax###" href="58.0.html?&tx_metafeedit[sort]=fax%3A%23%23%23SORT_DIR_fax%23%23%23&cHash=fede72380e"><i> </i>Fax:</a></th><th><a class="###SORT_CLASS_email###" href="58.0.html?&tx_metafeedit[sort]=email%3A%23%23%23SORT_DIR_email%23%23%23&cHash=82240c0226"><i> </i>Email:</a></th><th><a class="###SORT_CLASS_www###" href="58.0.html?&tx_metafeedit[sort]=www%3A%23%23%23SORT_DIR_www%23%23%23&cHash=3e636bdf08"><i> </i>www:</a></th><th><a class="###SORT_CLASS_image###" href="58.0.html?&tx_metafeedit[sort]=image%3A%23%23%23SORT_DIR_image%23%23%23&cHash=8ae0d6b9ac"><i> </i>Image:</a></th></tr><!-- ###ALLITEMS### begin --><!-- ###ITEM### begin --><tr class="tx-metafeedit-list-row-###LIST-ROW-ALT###">###ACTIONS-LIST-ELEMENT###<td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_company"><input type="hidden" name="FE[fe_users][company]" />###FIELD_company###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_company###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_name"><input type="hidden" name="FE[fe_users][name]" />###FIELD_name###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_name###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_address"><input type="hidden" name="FE[fe_users][address]" />###FIELD_address###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_address###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_zip"><input type="hidden" name="FE[fe_users][zip]" />###FIELD_zip###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_zip###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_city"><input type="hidden" name="FE[fe_users][city]" />###FIELD_city###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_city###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_telephone"><input type="hidden" name="FE[fe_users][telephone]" />###FIELD_telephone###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_telephone###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_fax"><input type="hidden" name="FE[fe_users][fax]" />###FIELD_fax###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_fax###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_email"><input type="hidden" name="FE[fe_users][email]" />###FIELD_email###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_email###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_www"><input type="hidden" name="FE[fe_users][www]" />###FIELD_www###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_www###</div></div></td><td ><div class="tx-metafeedit-list_field tx-metafeedit-list_field_image"><input type="hidden" name="FE[fe_users][image]" /><input type="hidden" name="FE[fe_users][image_file]" value="###FIELD_image_file###"/>###FIELD_EVAL_image###<div class="tx-metafeedit-form-error-field">###EVAL_ERROR_FIELD_image###</div></div></td></tr><!-- ###ITEM### end --><!-- ###ALLITEMS### end --></table>###MEDIAPLAYER######PAGENAV###</div><table style="width:100%"><tr><td align="left" valign="top">###ACTIONS-LIST-BOTTOM###</td></tr></table></div><!-- ###TEMPLATE_EDITMENU### end →
List no data template¶
<!-- ###TEMPLATE_EDITMENU_NOITEMS### begin -->
<h1 class="tx-metafeedit-header tx-metafeedit-header-editmenu-noitems">Aucun élément</h1>
<div class="tx-metafeedit-message tx-metafeedit-message-editmenu-noitems">Il n'y a aucun élément à éditer.</div>
<!-- ###TEMPLATE_EDITMENU_NOITEMS### →
Media player Template¶
<!-- ###TEMPLATE_MEDIAPLAYER### begin --><!-- ###TEMPLATE_MEDIAPLAYER### end-->
Tutorial creating a specific html template¶
Before creating specific templates it is very important to configure your plugin with all the options you want (advanced search, different action buttons) . The template file is only a guildline to display your data, if you do not tell the plugin to generate it, it won't appear in the template even if you put the correct marker for it.
Language marks¶
Tutorial creating a specific pdf template¶
DEBUGGING¶
Mode Debug :¶
a
Mode Debug :
b
Wether to activate debugging or not
Use krumo to debug¶
a
Use krumo to debug
b
Use krumo extension if loaded
Generated SQL¶
a
Generated SQL
b
Wether to display executed sql requests or no
Performances¶
a
Performances
b
Wether to display execution time info
Marker Array¶
a
Marker Array
b
Wether to display template array info or no
Language Array¶
a
Language Array
b
Will replace all language data with the lanaguage key associated with it. Very useful when you don't know what key to modify to display a header.
Template¶
a
Template
b
Will display generated templates if checked. Usefull to get example templates before creating ones own.
Conf¶
a
Conf
b
Display configuration array.
POST, GET, PIVars¶
a
POST, GET, PIVars
b
Display POST, GET and PIVars array;
TSFE¶
a
TSFE
b
Not recommended will display complete TSFE object.
GP Vars¶
These variables are used to create links from other extensions, pages or actions of Meta Feedit Extension ...
((generated))¶
GP Var
Description
rU¶
GP Var
rU
Description
Uid of record to edit, default join field is uid, you may specify another field in the ruJoinField section of the list flexform.
cmd¶
GP Var
cmd
Description
Edit mode : (create or edit)
preview¶
GP Var
preview
Description
Preview mode : if 1 all fields are read only
Origin Table¶
GP Var
Description
These commands allow to limit records to uid fields of record of a foreign table called «Origin Table»
oU¶
GP Var
oU
Description
Uid of record containing uids of records to edit.
oUTable¶
GP Var
oUTable
Description
Origin Table
oUField¶
GP Var
oUField
Description
Field containing uids of records to edit
oUKeyField¶
GP Var
oUKeyField
Description
Not tested yet
FeUser¶
GP Var
Description
These commands allow to limit records to value fields of connected FeUser.
fUField¶
GP Var
fUField
Description
FeUser Field containing data to be joined
fUKeyField¶
GP Var
fUKeyField
Description
Data field to make join on
((Unknown Property))¶
GP Var
Description
Example : fUField=username
fUKeyName=name
will generate wherestring : and table.name = 'johndoe'
List filtering¶
GP Var
Description
These commands allow to limit records to values of variables sent.
<table>[lV]¶
GP Var
<table>[lV]
Description
value
<table>[lField]¶
GP Var
<table>[lField]
Description
Generates wherestring :and table.field=value
<table>-rU¶
GP Var
<table>-rU
Description
['list.']['rUJoinField'] ???
lV¶
GP Var
lV
Description
INPUT DATA ARRAY¶
GP Var
Description
FE¶
GP Var
FE
Description
PiVars¶
Full Text Search Field Values
Advanced Search Field Values
Alphabetical Search Values
((generated))¶
PiVar
Description
sword¶
PiVar
sword
Description
Text to search for
Page Browser¶
PiVar
Description
pointer¶
PiVar
pointer
Description
Page id
Alphabetical Search¶
PiVar
Description
sortLetter¶
PiVar
sortLetter
Description
Letter to search
Advanced Search¶
PiVar
Description
advancedSearch¶
PiVar
advancedSearch
Description
AdvancedSearch Array
Field Sorting¶
PiVar
Description
sort¶
PiVar
sort
Description
Sortfield followed by direction
Media Player¶
PiVar
Description
mediaplayer¶
PiVar
mediaplayer
Description
mediafile¶
PiVar
mediafile
Description
((Unknown Property))¶
PiVar
Description
Session Vars¶
TODOs...
Handle Selected Tab :
[pid][pluginid][list][selectedTab] Currently selected Tab
Handle Backwords navigation ...
[pid][pluginid][list][back]..
[pid][pluginid][edit][back]..
[pid][pluginid][create][back]..
[pid][pluginid][delete][back]..
[pid][pluginid][editPreview][back]..
[pid][pluginid][createPreview][back]..
[pid][pluginid][deletePreview][back]..
Search Filter
[pid][pluginid][list][advancedSearch][field]..
[pid][pluginid][list][page]..
[pid][pluginid][list][column][field]
[pid][pluginid][list][column][orderby]
[pid][pluginid][list][fulltextsearch]
....plugin conf ?
Reporting and Exporting¶
The aim of this functionnality is to provide easy creation of PDF, XLS,CSV, RSS and JPGRAPH reports.
Configuring Reports¶
In the list tab you must check the type of reports you want :
Yoy will then have at the bottom and at the top of your plugin the following icons:
Clicking on the corresponding icon will generate the corresponding report.
XLS Reports¶
This generation is based on the HTML to xls default transformation of Excel it therfore allows to preserrve colors, format and
images.
It may be slow on certain window versions
Specific Typoscript :
CSV Reports¶
Generates a on the fly comma seperated data file.
No format data will be preserved.
Specific Typoscript :
PDF Reports¶
Requires fpdf library to be loaded (is this tested ?).
Specific Typoscript :
plugin.tx_metafeedit_pi1.listeSpectacles.list.affiche.width=15
plugin.tx_metafeedit_pi1.listeSpectacles.list.spect_code.width=14
plugin.tx_metafeedit_pi1.listeSpectacles.list.spect_titre.width=50
plugin.tx_metafeedit_pi1.listeSpectacles.list.tx_metabookingdb_typ e_spectacle_uid.width=25
plugin.tx_metafeedit_pi1.listeSpectacles.list.tx_metabookingdb_sai son_uid.width=16
plugin.tx_metafeedit_pi1.listeSpectacles.list.tx_metabookingdb_dis cipline_uid.width=30
plugin.tx_metafeedit_pi1.listeSpectacles.list.tx_metabookingdb_org anisateur_uid.width=30
plugin.tx_metafeedit_pi1.listeSpectacles.list.tva.width=12
plugin.tx_metafeedit_pi1.listeSpectacles.list.height=6
RSS Export (not started)¶
JPGRAPH Reporting (not started)¶
WorkSpaces¶
The aim of this functionnality is to provide easy creation of workspaces upon record creation.
Workspace Configuration¶
In creation tab of the plugin's flexform you must define :
Source tree to copy¶
Setup
Source tree to copy
Description
Pid of page tree template
Tree Copy Target¶
Setup
Tree Copy Target
Description
Pide of root page of workspaces
BE user to use to copy¶
Setup
BE user to use to copy
Description
Account to use for copy (default is admin).
Page to store fe group¶
Setup
Page to store fe group
Description
Pid of page which will contain administration group of workspace
Field storing Copied Tree Pid¶
Setup
Field storing Copied Tree Pid
Description
Name of field which will hold pid of root page of generated workspace.
TO-DO :
List Actions
RSS Flow
CSV Flow
XLS Flow
XML Flow
PDF Flow
Print ...
Edit Actions
Edit
New
Delete
User Actions
Navigation actions
Back, Next
Work Flows¶
Model page tree template¶
TS constant template¶
Programming¶
((generated))¶
How does it work ?¶
Hooks allow call of user functions at differnt moments of the display process.
Here is an example of the TS setup of the page where a meta_feedit plugin of uid=202 is set.
userFunc_afterInitConf¶
This allows to modify attributes of the calling object right after intialisation before all other processing starts.
plugin.tx_metafeedit_pi1.202.userFunc_afterInitConf =EXT:meta_fe edit/tests/class.tx_metafeedit_testfunc.php:&tx_metafeedit_testfun c->afterInitConf
list.userFunc_afterWhere¶
This allows to modify the wherestring of the list mode programmaticly
plugin.tx_metafeedit_pi1.202.list.userFunc_afterWhere=EXT:meta_f eedit/tests/class.tx_metafeedit_testfunc.php:&tx_metafeedit_testfu nc->afterWhere
userFunc_afterParse¶
This allows to modify attributes of the calling object right after parsing of dataArray, allows to add specific tests and processing.
plugin.tx_metafeedit_pi1.202.userFunc_afterParse = EXT:meta_feed it/tests/class.tx_metafeedit_testfunc.php:&tx_metafeedit_testfunc- >afterParse
userFunc_afterOverride¶
This allows to modify attributes of the calling object right after default overriding of dataArray, it allows to add specific overrides and processing.
plugin.tx_metafeedit_pi1.202.userFunc_afterOverride =EXT:meta_fe edit/tests/class.tx_metafeedit_testfunc.php:&tx_metafeedit_testfun c->afterOverride
userFunc_afterEval¶
This allows to modify attributes of the calling object right after default evaluation of dataArray, it allows to add specific transformations on data array and processing.
plugin.tx_metafeedit_pi1.202.userFunc_afterEval =EXT:meta_feedit /tests/class.tx_metafeedit_testfunc.php:&tx_metafeedit_testfunc->a fterEval
userFunc_afterSave¶
This allows to modify attributes of the calling object right after save process, it allows to add specific after save processing.
plugin.tx_metafeedit_pi1.202.userFunc_afterSave =EXT:meta_feedit /tests/class.tx_metafeedit_testfunc.php:&tx_metafeedit_testfunc->a fterSave
userFunc_afterMark¶
This allows to modify attributes of the calling object right after calculation of general markerArray, it allows to add specific overrides and processing for the template.
plugin.tx_metafeedit_pi1.202.list.userFunc_afterMark =EXT:meta_f eedit/tests/class.tx_metafeedit_testfunc.php:&tx_metafeedit_testfu nc->afterMark
userFunc_afterItemMark¶
This allows to modify attributes of the calling object right after default calculation of list row template, it allows to add specific overrides and processing of template before display. You just have to modify the calling objects makerArray to modify a specific display in template programaticly.
plugin.tx_metafeedit_pi1.202.list.userFunc_afterItemMark=EXT:meta _feedit/tests/class.tx_metafeedit_testfunc.php:&tx_metafeedit_tes tfunc->afterItemMark
And I created a class (example EXT:meta_feedit/tests/class.tx_metafeedit_testfunc.php) of which the code follows :
If you wonder where to put your code... Create a new extension with the kickstarter and simply add your class definition to it.
Here's a first example just to check that it works and that all function calls are operational ...
<?
class tx_metafeedit_testfunc {
function afterWhere($conf,$conf2) {
$fe_adminLib = &$conf['parentObj'];
echo "afterWhere : $where<br>";
//print_r($conf);
return $where;
}
function afterSave($conf,$c2) {
//$fe_adminLib = &$conf[0]['parentObj'];
print_r($conf[0]->dataArr);
}
function afterMark($conf,$c2) {
$fe_adminLib = &$conf['parentObj'];
echo "afterMark<br>";
}
function afterItemMark($conf,$c2) {
$fe_adminLib = &$conf['parentObj'];
echo "afterItemMark<br>";
}
function afterParse($conf,$c2) {
$fe_adminLib = &$conf['parentObj'];
echo "afterParse<br>";
}
function afterOverride($conf,$c2) {
$fe_adminLib = &$conf['parentObj'];
echo "afterOverride<br>";
}
function afterEval($conf,$c2) {
$fe_adminLib = &$conf['parentObj'];
echo "afterEval<br>";
}
function afterInitConf($conf,$vars) {
$fe_adminLib = &$conf['parentObj'];
echo "afterInitConf<br>";
}
}
?>
Through $fe_adminLib passed by reference you can modify all the values of the calling object at the moment of the call.
It allows to modifiy the current data array ($fe_adminLib->dataArr) so you can modify create values, overridvalues and template markers.
Another example :
Setup is :
plugin.tx_metafeedit_pi1.listeSeances.userFunc_afterOverride =EXT :meta_booking/class.tx_metabooking_userfunc.php:&tx_metabooking_u serfunc->seanceAfterOverride
And class code called is :
<?
class tx_metabooking_userfunc {
function seanceAfterOverride($conf,$conf2) {
$fe_adminLib = &$conf['parentObj'];
$table="tx_metabookingdb_blocage_operateur";
$identite=$fe_adminLib->dataArr['tx_metabookingdb_entite_juridiq ue_uid'];
$entiteRecArr = $GLOBALS['TSFE']->sys_page->getRawRecord('tx_metab ookingdb_entite_juridique',$identite);
$idspectacle=$fe_adminLib->dataArr['tx_metabookingdb_spectacle_u id'];
$spectacleRecArr = $GLOBALS['TSFE']->sys_page->getRawRecord('tx_me tabookingdb_spectacle',$idspectacle);
$datecode=date('ymd',$fe_adminLib->dataArr['sea_dateheure']);
$sql="select uid from tx_metabookingdb_seance where tx_metabookingdb_spectacle_uid='$idspectacle' and sea_dateheure < '".$fe_adminLib->dataArr['sea_dateheure']."'";
$res = $GLOBALS['TYPO3_DB']->sql_query($sql);
$numseance=str_pad($GLOBALS['TYPO3_DB']->sql_num_rows($res)+1,2, '0',STR_PAD_LEFT);
$fe_adminLib->dataArr['sea_code']=$entiteRecArr['code'].$datecode. $numseance;
}
}
?>
This is to modify the sea_code of the object created or modified so that it respects it's own order of incrementing...
Possibilities are limitless, but a deep knowledge of how the fe_adminLib.inc works is a definite pre requisit for advanced features.
Program Flow
Other recommended plugins¶
There are several other extensions that you may find useful to use with meta_feedit.
((generated))¶
FormWidgets¶
Provides nice form widgets for Check boxes and radio buttons.
rlmp_dateselectlib¶
Provides date selector component for date fields
rtehtmlarea¶
Provides RTE editing of text fields
kb_md5fepw¶
Provides MD5 encryption of passwords and MD5 fields ...
sr_static_info¶
If you edit static info, it will be possible to overide language fields of static tables in typoscript configuration.
Am experiencing problems with latest version ...
xajax¶
Adds ajax functionnalities.
fpdf¶
Adds pdf functionnalities.
sr_freecap¶
If you want to use captcha anti-spam functionnality.
eu_ldap¶
Experimental, upon fe_user creation and update, we update ldap information...Needs special «adapted»version of eu_ldap..
May be incompatible with TER version of eu_ldap (haven't checked yet).
TCA¶
TCA configuration of tables pilots everything, therefore bad TCA definitions generate bugs or often prevent fields to show which can sometimes be hard to debug ...
Keep in mind following notes :
- You might have to add fe_cruser_id, fe_crgroup_id fields to tables you want to edit, if you want to allow per fe_user or per fe_group editing of records.$TCA['{$table}']['ctrl']['fe_cruser_id']='{$my_f e_cruser_id_field}';$TCA['{$table}']['ctrl']['fe_crgroup_id']='{$ my_fe_crgroup_id_field}';
- Concerning upload files make sure you have a definition of the kind:$T CA['{$table}']['columns']['{$my_file_field}']['config']['uploadfolde r']='fileadmin/<table>/';or whatever other path you use.
- Make sure your table has a label field defined.Ex : $TCA['{$table}']['ctrl']['label']=title
Keep in mind that Debugging with Back End Configuration can help a lot ..
Software Architecture¶
((generated))¶
class.tx_metafeedit_pi1.php :¶
This class loads conf data from typoscript and flexform.
It then calls class.tx_metafeedit.php.
The purpose of this class is to generate a clean conf file.
It is the only file that should check for the .default or .pluginid data...
This should be the only file allowed to handle get and post variables
class.tx_metafeedit.php :¶
This class generates templates (this should go into a specific template generating class).
It handles also the different cache modes ...(this should go into the pi1) ...
Typo3 only handles Get and post variables CHASH. It should handle also session variables CHASH.
We will probably have to write our own cache handler....
It then calls fe_adminLib.inc
fe_adminLib.inc :¶
This is the main class it handles create,edit, list modes...
There should be no call to get and post variables here ...
In mixt cache mode only this file is called...
It then calls fe_adminLib.inc.
Libraries :¶
((generated))¶
class.tx_metafeedit_lib.php :¶
This class
class.tx_metafeedit_ajax.php :¶
This class
class.tx_metafeedit_ajaxlib.php :¶
This class
class.tx_metafeedit_calendar.php :¶
This class
class.tx_metafeedit_export.php :¶
This class
class.tx_metafeedit_grid.php :¶
This class
class.tx_metafeedit_flexfill.php :¶
This class
class.tx_metafeedit_treecopy.php :¶
This class
class.tx_metafeedit_widgets.php :¶
This class
class.tx_metafeedit_srfeuserregister_hookshandler.php :¶
This class
class.tx_metafeedit_srfeuserregister_pi1_urlvalidator.php :¶
This class
Roadmap¶
((generated))¶
Version 0.1.0 (done)¶
- Full Multiple Table SQL Support. (done).
- Multiple plugin in same page support (done).
- Functional List, Edit, Create & Preview Mode. (done)
- Field Sets support (done)
- Full mediaPlayer Support. (done)
- Minimal blogging functionality. (done)
- Fluid navigation. (done)
- Programming Framework (done)
- T3Unit testing (started)
- Final Email moderation and notification system (done)
- remove ldap support (done)
- DataGrid functionnality. (done)
- Basic Reporting (html, pdf, xls, csv, ...) done
- Ajax introduction (done)
- Functional Debug mode (done)
Version 0.1.1 (November)¶
- Cache & Performances & Navigation (still experimental)
- Blog support (done).
Version 0.2.0 (December)¶
JPGraph Reporting
Version 0.3.0 (January)¶
- - RSS Exporting
- ...
Version 0.4.0 (6 months)¶
- Template wizards in flexform. (started)
- Move to typo3 5.0 framework
s
- DataGrid functionnality. (done)
- Full multimedia Support (done).
- Category search mode for lists.
- Calendar mode display for lists. (started)
- avatars, rss and trace backs on blog mode.
- Workflow support.
- XHTML compliant output (tidy ?)
- TCA override functionnality (started)
- Full T3Unit testing
Version 3.0 (years)¶
- extbase + fluid
- Full Ajax support
- Full Workflow support
- Full calendar mode display
- Advanced Debugger
- recursive meta_feedit ?
- Advanced reporting
- Graphs ?
Version 4.0 (2 Years)¶
MVC Framework ?
TO-DOs and notes (still in French ;-)¶
-Handle RTE without creating it in every template ... Dirty Hack for the moment ...(All RTEs ar loaded whatever mode you are in)..
-Handle correctly List Id ...
-Load flexform according too language ...
-utiliser le répertoire de chargement de la TCA et non en dur dans le code ...
-maj dynamique la TCA (est ce possible ?) cela eviterait d'avoir à mettre à jour les fichiers tca.php ou ext_tables.php des structures de données à éditer.
- Handle user rights correctly (to be tested).
- gérer les mails (envoi mail à l'administrateur pour validation des données...)...
- faire des tests sur la structure et afficher des messages quand mauvaise configuration (on peut passer des heures à chercher d'où vient le problème de configuration).
- Corriger pb affichage mois des dates (a priori juste une configuration du selecteur de date à faire).
- Optimize performances
- Check security issues (dos, Cross scripting and sql injection)...
- Add workflow management
- use MVC framework ?
- Add PMK Text Area Widget ....
- Add Ajax Widgets (Rico's Live Grid?) ...
- remove all GP & POST & GET & piVar intelligence from class.tx_metafeedit.php so that it can be cacheable at least in mixt mode ...
- add group type to page to tx_metafeedit_admin_actions (with default setup to make admin screens).
- add meta_media to meta_feedit ...
- NAVIGATION(Back URL)
- keep page pointer when deleting element ...
- list ACTIONS (XML, RSS, PRINT,)
- Multi level tables update ...
- Category tree search by (like in tt_news)...or maybe a new widget ...
- RTE Parameters
- Overrid values not displayed hidden ?
- File upload problems
- small & big icons ?
- Multiple file upload.
- Accessibility
- add plugin ID for multiple plugins in same page ...
- Handle rollovers on images
- Handle multiple languages
- Keep page tab when saving
- Add per field dateformat modification in typoscript...
- Add order iconagraphy for list column fields..+ ajax ...
- Check that plugin id is not 'default'.
- Add Tooltips basesd on help ???
- Show selected search Filter .
- * plugin.tx_metafeedit.default. is root typoscript for everything that should be applied to all plugins .. (that means you cannot have a plugin with an id called default... must be checked ...).
- * plugin.tx_metafeedit.[pluginid]. is root typoscript for all plugin specific typoscript...
- * plugin.tx_metafeedit.default. field.[fieldName] or plugin.tx_metafeedit.[pluginid]. field.[fieldName] is root typoscript for all field specific typoscript.
- * plugin.tx_metafeedit.default. table.[tableName] or plugin.tx_metafeedit.[pluginid]. table.[tableName] is root typoscript for all table specific typoscript. (is this still useful ?).
- * plugin.tx_metafeedit.default. lang.[llanguage] or plugin.tx_metafeedit.[pluginid]. lang.[llanguage] is root typoscript for all language specific typoscript. field and table specific roots may follow
KNOWN BUGS¶
You have to save flexform twice sometimes to get table fields filled...
If you get an obscure javascript error implying : «containsValue» upgrade to version 0.2.5 of xajax...
XLS version of reporting can be very slow on windows XP machines ... Use CSV export instead.
Minor navigation problems
Typo 3 Page browser does not allow several instances in same page...
I you are losing user sessions when using the meta_feedit , You probably have to increase the max_allowed_packet value of your mysql in the my.cnf configuration of your mysql database ...If it is too small it will break your session, and if you don't log sql errors you won't see a thing ... For the moment I use a very big 20M value ..
On windows if you are experiencing problems with dates not appearing try adding this
plugin.tx_metafeedit_pi1.datetimeformat=%H:%M %d-%m-%Y
plugin.tx_metafeedit_pi1.dateformat=%d-%m-%Y
Apparently on windows php %e does not work ...
EXT: Meta FE EDIT - 98