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 ]

denis.royer@myasterisk.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 ]

Screenshots

Front end administration interface

Made by Meta FE Edit

img-1

List mode (browse and search features)

Made by Meta FE Edit

With alphabetical, full text and advanced search features

img-2

List mode (table mode)

Made by Meta FE Edit

With full text search, alphabetical search, and advanced search

img-3 Edit mode

Made by Meta FE Edit

With tab mode

img-4

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

img-5

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 ....

img-6

In «Quick StartTab».

In flexform configuration of plugin.

img-7

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

img-8

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».

img-9

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 :

img-10 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....

img-11

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

img-12

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)

Advanced Search Ajax selectors

Flexform Setup Field

Advanced Search Ajax selectors

Description

img-14 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 ....

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

img-17

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

img-18

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.

Sum Fields

Flexform Setup Field

Sum Fields

Description

Fields ton which to calculate sum

pdf

Flexform Setup Field

pdf

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

img-20

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

img-21

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

img-22

img-23

img-24

Edit Tab

img-25 img-26

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

img-27 img-23

img-28

Delete Tab

img-29

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

img-30 img-31

Set fixed Templates

img-32 img-33

Preview

img-34

Not implemented yet

Mails Tab

img-35

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 ...

img-36 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}&nbsp;|
                        stdWrap=1
                        stdWrap {
                                case=upper
                                field=last_name
                        }
                }
                postWrap=1
                postWrap {
                ifEmpty {
                        dataWrap={field:first_name}&nbsp;|
                        stdWrap=1
                        stdWrap {
                                case=upper
                                field=last_name
                        }
                        }
                }
}

Mails

((generated))

Notification Mails

Admin : This mail will be sent to webmaster

Fe-user : This mail will be sent to the fe user editing the record

DataMail : This mail will be sent to a mail contained in the record.

Moderation (setInfo)

List Mode

Headers

Errors

Top Actions

Screen shot :

img-37 Actions :

Back

New Element

Excel export

Csv export

Pdf Export

Associated markers:

Actions

Bottom Actions :

img-41

Back,New, XLS, CSV, PDF

Print, RSS, Graph(NOT IMPLEMENTED YET)

Row specific Actions

Ex:

img-42 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.'];

Tricks

Removing Actions label

Use following TS :

plugin.tx_metafeedit_pi1._LOCAL_LANG.default.actions=&nbsp;
plugin.tx_metafeedit_pi1._LOCAL_LANG.fr.actions=&nbsp;

Events

AfterSave ....I should put a hook on this ...

OnCreation ....

Edit Mode

((generated))

Edit Specific Actions

Create Mode

((generated))

Create Specific Actions

To be documented

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 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&eacute;</h1>
<div class="tx-metafeedit-message tx-metafeedit-message-edit-saved">Vos informations ont &eacute;t&eacute; mises &agrave; 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 &eacute;l&eacute;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###&amp;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?&amp;tx_metafeedit[sort]=company%3A%23%23%23SORT_DIR_company%23%23%23&amp;cHash=4b224b22c7"><i>&nbsp;</i>Société:</a></th><th><a class="###SORT_CLASS_name###" href="58.0.html?&amp;tx_metafeedit[sort]=name%3A%23%23%23SORT_DIR_name%23%23%23&amp;cHash=d9f0b85e71"><i>&nbsp;</i>Nom:</a></th><th><a class="###SORT_CLASS_address###" href="58.0.html?&amp;tx_metafeedit[sort]=address%3A%23%23%23SORT_DIR_address%23%23%23&amp;cHash=71b56ea5b7"><i>&nbsp;</i>Adresse:</a></th><th><a class="###SORT_CLASS_zip###" href="58.0.html?&amp;tx_metafeedit[sort]=zip%3A%23%23%23SORT_DIR_zip%23%23%23&amp;cHash=88fa0cedfe"><i>&nbsp;</i>Code postal:</a></th><th><a class="###SORT_CLASS_city###" href="58.0.html?&amp;tx_metafeedit[sort]=city%3A%23%23%23SORT_DIR_city%23%23%23&amp;cHash=d50019f377"><i>&nbsp;</i>Ville:</a></th><th><a class="###SORT_CLASS_telephone###" href="58.0.html?&amp;tx_metafeedit[sort]=telephone%3A%23%23%23SORT_DIR_telephone%23%23%23&amp;cHash=11a17fef7f"><i>&nbsp;</i>Téléphone:</a></th><th><a class="###SORT_CLASS_fax###" href="58.0.html?&amp;tx_metafeedit[sort]=fax%3A%23%23%23SORT_DIR_fax%23%23%23&amp;cHash=fede72380e"><i>&nbsp;</i>Fax:</a></th><th><a class="###SORT_CLASS_email###" href="58.0.html?&amp;tx_metafeedit[sort]=email%3A%23%23%23SORT_DIR_email%23%23%23&amp;cHash=82240c0226"><i>&nbsp;</i>Email:</a></th><th><a class="###SORT_CLASS_www###" href="58.0.html?&amp;tx_metafeedit[sort]=www%3A%23%23%23SORT_DIR_www%23%23%23&amp;cHash=3e636bdf08"><i>&nbsp;</i>www:</a></th><th><a class="###SORT_CLASS_image###" href="58.0.html?&amp;tx_metafeedit[sort]=image%3A%23%23%23SORT_DIR_image%23%23%23&amp;cHash=8ae0d6b9ac"><i>&nbsp;</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 &eacute;l&eacute;ment</h1>
            <div class="tx-metafeedit-message tx-metafeedit-message-editmenu-noitems">Il n'y a aucun &eacute;l&eacute;ment &agrave; &eacute;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

img-43

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.

img-44

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 :

img-45

Yoy will then have at the bottom and at the top of your plugin the following icons:

img-46 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 :

img-47

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

Tutorial

To be written....

Tutorial to use templates

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

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 ..

img-48

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_catmenu.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 ...

img-49 EXT: Meta FE EDIT - 98