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: KB Content Table

Created:2012-07-13T02:28:36
Changed:2012-07-13T20:37:51
Author:Bernhard Kraft
Email:kraftb@seicht.co.at
Info 3:
Info 4:

EXT: KB Content Table

Extension Key: kb_conttable

Copyright 2004-2012, Bernhard Kraft, <kraftb@seicht.co.at>

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: KB Content Table 1

Introduction 1

What does it do? 1

Users manual 1

Creating the content element 2

The Tabs 2

Using the Wizard 3

Selecting a template 4

The RTE Mode 5

Caching 5

Character Sets 5

Administration 5

Table Locking 5

Cell locking 6

Action locking 7

Creating Templates 7

FAQ 8

Installation 8

Applying the patch 8

Configuration 8

mustache optionSplit 8

Page TS Config Configuration 9

EM Configuration 9

Fast mode 10

FAQ 10

Known problems 10

Intention 10

Credits 10

To-Do list 10

Changelog 11

Introduction

What does it do?

The KB Content Table Extensions primarily allows a User to insert a Table as an Content Element and insert Content Elements into each cell. This is what was already supported in the previous version of this extension. But the extension has been completely rewritten and many new Features got implemented. Here a short list.

  • Completely Flexform based
  • Table configuration via Flexform tabs (Locking)
  • Templating(Save table templates to storage folder and reuse on a user/group basis)
  • Normal or RTE mode (Content elements inside cells vs. Rich Text Editor fields)
  • Inter operablewith standard clipboard
  • TemplaVoilacompatible
  • Configuration of cell properties via new “mustache”optionSplit:)

Users manual

Here you will learn how to create a new Table. Possibly select a template as basis and edit the table and it's contents. The actual editable fields can differ from installation to installation as the admincan restrict which fields you are allowed to edit.

Creating the content element

To do this just go to the Page Module (Either the traditional or the one from Templa Voila) and click the create new content element button as you would do when creating a “Text” or “Text w. Image” content element. You will have a new option at the bottom of your normal elements replacing the default table. (This can be disabled when installing the Extension). When you selected the new multi-colored Content Table element you will get to the well known record edit screen of TYPO3. If you are not using TemplaVoila you will have to save the record in order to see the table wizard icon instead of a text area. If you use TemplaVoila the record is already created in database as soon as you see the record edit screen and the table wizard icon will be there from the beginning. If you saved the form once or used the wizard to initialize the everything you will see the Flexform containing the Table Settings and other tabs. If your are an administrator your edit area will look like this, if you are a normal user you will have less tabs:

img-1

Now you could start to enter data in the Flexform defining the settings for the starting <table> tag.

The Tabs

Here is a listing what the different Tabs are for. If a Tab is visible for Users and Adminsit is explained further in the User (this) section. If it is just visible for Admins it gets described in the Administration section of this manual:

Table setting

Visibility : User & AdminThe values defined in here are used to generate the opening <table> tag of the resulting table. Here also the RTE mode can get set. When it is active each cell will contain an RTE field instead of content elements.

Template

Visibility : User & AdminThe only option in here is “Select Template” which lets a normal User select a template to use. Whetherthe mode of the Template is set to Empty, Copy or Reference it will be filled with Content Elements.

New template

Visibility : AdminThis Tab is creating new Templates. When the field “Name” gets filled out or an existing template gets selected via the “Overwrite Existing” and the form gets saved then a new template will get created. The form will be empty again afterwards.

Table locking

Visibility : AdminHere you can define to which values the fields of the tab “Table Setting” will be set by default. If you set them to some other value than the default the value will be locked and a normal User can't edit the field but just can see its value.

Cell locking

Visibility: AdminIn this table you can define to which values the properties of each cell (colspan, rowspan, align, etc.) will be set. This is done via the extended “mustache”optionSplit mechanism. This is explained further in the Configuration section.

Action locking

Visibility : AdminHere you can define which actions a user may perform on each row, column or cell. If he is allowed to move or delete, or edit content or properties at all.

Row (n)

Visibility : (User) & AdminThose tabs are numbered from one one till the number of default rows which get created when a new table was made. The admin can forbid you to see those tabs or some of them. In those tabs you can make all settings which you can also make in the table wizard. It is up to your choice where you do the changes - although it is more comfortable in the wizard as you see the changes

Using the Wizard

To activate the table wizard just click on the red-bordered wizard icon. A new page will appear in the right TYPO3 frame which will look like this if you are an admin or aren't restricted in any way:

img-2

On the top right you have a select box which you can use to switch the table to a bigger frame or to no frameat all (“Edit table”). In this mode the table will alway use the full width.

The cellproperties can be edited by clicking the well known edit pencil in the middle of a cell (between the move up/down arrows). The properties dialog will appear below the table wizard and look like this, some fields could be disabled if you are not allowed to edit them (This screen shothas been taken in “Edit table” mode. With smaller frames it will be possible that lines are broken):

Move Row/Column/Cell: With the Buttons for Move up/down/left/right you can move each row/column/cell in each possible direction. There is a move right and move left button next to each other although those two buttons have the same effect. The intention is usability.

The delete button can get used to delete a complete row or column.

The create new content element icon does what its name implies that it does :)

The create new column/row icon create a new record or column.

Below the Location information on the Left side you have the default save, save and close and close buttons. It may be misleading that changes to the table like moving a row or deleting a column is saved as it is done and not after pressing the save button. The save button is just for saving changes to the cell properties.

In RTE mode you dont have (5) but can edit the cell properties and also the RTE content with (2).

Cell properties

If you click the “Edit cell properties” pencil (2) a new form will open up on the bottom of the wizard.

img-3 If you edit some properties and click the save or save and close button next to the “Edit Properties” form then the content will just be saved temporary just like when you edit different Flexform tabs (You could of course edit other table cell properties). The properties of the cells will just get saved finally if you click the save or save and close button on the top of the wizard. If the actual properties are unsaved when clicking the top save button they get saved automatically.

Selecting a template

If you have the necessary access rights and there are ready made templates you can select a pre-made template and your actual table (best try with a newly created) will get changed to the template. The template can have default settings for some values so your configuration possibilities are restricted but this is for achieving a common CI all over your site. You admin made the settings in such a way that the table always looks good together with the rest of your site - and you don't want to change that.

To select a template just edit to the default content element edit screen (not the table wizard) where you normally edit a content element. There you have a tab called “Template” in the Flexform. Select it by clicking on it.

Then the only option you have is to select an already existing template. Choose an existing template from the select box and click the Save Button of the element. After saving the new template will override the actual content and design.

WARNING: If you select a different template, then switch to another tab and make some changes, and want to just save the changes you will have to reset the “Select Template” drop-down box to “None”. Else your actual template will be OVERWRITTEN !!!

The RTE Mode

In When you set the checkbox “RTE Mode” in the Tab “Table Setting” then you will not be able to insert content elements into each cell but have an RTE for each cell. Currently each RTE has to be implemented on its own as there isn't a Javascript API for getting and setting the RTE content. If this would be possible this general API could be used but now each RTE must be handled on its own. So the only currently supported RTEs are:

  • Default RTE (Windows IE)
  • RTE HTMLArea (Windows IE & FF & NS, Linux FF & NS)

perhaps if another RTE becomes popular it will also be added.

Currently if you have both the standard RTE and RTE HTMLArea installed then under Windows IE the standard RTE will be used. In all other cases will rtehtmlarea be the only working choice.

Currently there is no software implementation of copy & paste for RTE content. Cou can just copy and paste it using the clipboard of your OS.

Caching

Normally pages from TYPO3 which are generated on the FE are cached by the T3 caching mechanism. To render a table with 40 rows takes a huge amount of time as a large XML has to get parsed several times. So it is best practice to not set pages which contain Content Tables to no_cache except for debugging purposes (And don't forget to set it back ! I told you !)

Character Sets

Currently the extension is tested with utf-8 and iso-8859-1. It seems to work in all browsers which support the RTE Area except Netscape which isn't tested (Mail me for information). The tests with utf-8 were made by setting forceCharset to utf-8 in the Install Tool.

Administration

You can configure the Table in such a way that you can lock values to a specific value and then save the fully-defined table as a template which can get reused many times. To do this you will first need to set your table to proper values.

There are three “Locking” Tabs which are used for setting the Table to default values and allowing the User just certain actions. These tabs are:

  • Table Locking
  • Cell Locking
  • Action Locking

and will be described here in detail.

By default all fields of those tabs which have common types will have common default values. For example Integer values will have -1 as default which means to not lock. Luckily no value of a table can be negative.

Table Locking

This tab is used for locking the values which generate the starting <table> tag.

Field Name :

Field Name

Field Name :

Type

Type :

Default

Default :

Description

Description :

Table Setting

Field Name

Table Setting

Type

Check

Default

not checked

Description

When this checkboxgets set the complete Table Setting Tab will be hidden from the User.

RTE Mode

Field Name

RTE Mode

Type

Integer

Default

-1

Description

If set to 0 RTE Mode will always be disabled. If set to some higher value RTE Mode will always be enabled. With -1 the User can decide.

Cellspacing

Field Name

Cellspacing

Type

Integer

Default

-1

Description

If not smaller than 0 the cellspacinggets locked to this value.

Cellpadding

Field Name

Cellpadding

Type

Integer

Default

-1

Description

If not smaller than 0 the cellpaddinggets locked to this value.

Border

Field Name

Border

Type

Integer

Default

-1

Description

If not smaller than 0 the border gets locked to this value.

Width

Field Name

Width

Type

Integer

Default

-1

Description

If not smaller than 0 the width gets locked to this value.

Width format

Field Name

Width format

Type

Select

Default

None

Description

If other than “None” the value gets locked to the selected item.

Height

Field Name

Height

Type

Integer

Default

-1

Description

If not smaller than 0 the height gets locked to this value.

Height format

Field Name

Height format

Type

Select

Default

None

Description

If other than “None” the value gets locked to the selected item.

Align

Field Name

Align

Type

Select

Default

None

Description

If other than “None” the value gets locked to the selected item.

Style

Field Name

Style

Type

String

Default

'' (empty)

Description

If set to some value the style will be locked to it (field gets trimmed !)

Class

Field Name

Class

Type

String

Default

'' (empty)

Description

If set to some value the class will be locked to it (field gets trimmed !)

Id

Field Name

Id

Type

String

Default

'' (empty)

Description

If set to some value the id will be locked to it (field gets trimmed !)

Additional Attributes

Field Name

Additional Attributes

Type

String

Default

'' (empty)

Description

If set to some value the additional attributes will be locked to it (field gets trimmed !)

Rows

Field Name

Rows

Type

Integer (optionSplit)

Default

Description

This field gets optionSplittedwith the number of existing rows as length. Each item gets evaluated if it is an integer bigger than zero. If it is so this row is locked and you wont see the Tab of it.

Columns

Field Name

Columns

Type

Integer (optionSplit)

Default

Description

The same for columns as with the Rows field of this Tab. If the lock value is set to 1 the column is not shown.

Cell locking

This tab can be used for locking the values/properties of each cell, which mostly describe the opening <td> tag of each cell, to some values. All of the fields in this table use the “mustache”(Schnurrbart) optionSplit. It is called this way because it is two optionSplitsinserted in each other. And the inner one needs another split token for which I choose “ ~*~ “ which looks like a mustache, instead of “ |*| “ . But this if further explained in the Chapter configuration with some examples.

Field Name :

Field Name

Field Name :

Type

Type :

Default

Default :

Description

Description:

Properties

Field Name

Properties

Type

Integer(mustacheoptionSplit)

Default

'' (empty) == 0

Description

If a cell value is not equal zero then the properties for this cell will be completelydisabled.

Content

Field Name

Content

Type

Integer(mustacheoptionSplit)

Default

'' (empty) == 0

Description

If a cell value is not equal zero then the content edit possibilities forthis cell willbe completelydisabled.

Colspan

Field Name

Colspan

Type

Integer(mustacheoptionSplit)

Default

'' (empty) == 0

Description

If a cell value is not equal zero the colspan of this cell will be locked to this value.

Rowspan

Field Name

Rowspan

Type

Integer(mustacheoptionSplit)

Default

'' (empty) == 0

Description

If a cell value is not equal zero the rowspan of this cell will be locked to this value.

Celltype

Field Name

Celltype

Type

Select

(mustacheoptionSplit)

Default

-1

Description

If a cell value is not equal -1 the celltypeof this cell will be locked to this value.

Horizontal align

Field Name

Horizontal align

Type

Select

(mustacheoptionSplit)

Default

-1

Description

If a cell value is not equal -1 the horizontal align of this cell will be locked to this value.

Vertical align

Field Name

Vertical align

Type

Select

(mustacheoptionSplit)

Default

-1

Description

If a cell value is not equal -1 the vertical align of this cell will be locked to this value.

Fontweight

Field Name

Fontweight

Type

Select

(mustacheoptionSplit)

Default

-1

Description

If a cell value is not equal -1 the font weight of this cell will be locked to this value.

Fontfamily

Field Name

Fontfamily

Type

String(mustacheoptionSplit)

Default

'' (empty)

Description

If a cell value is set to some value the font familyof this cell will be set to the specified value.

Cellwidth

Field Name

Cellwidth

Type

Integer(mustacheoptionSplit)

Default

'' (empty) == 0

Description

If a cell value is not equal zero the cellwidthof this cell will be locked to this value.

Cellwidth format

Field Name

Cellwidth format

Type

Select

(mustacheoptionSplit)

Default

-1

Description

If a cell value is not equal -1 the cellwidth format of this cell will be locked to this value.

Cellheight

Field Name

Cellheight

Type

Integer(mustacheoptionSplit)

Default

'' (empty) == 0

Description

If a cell value is not equal zero the cellheightof this cell will be locked to this value.

Cellheight format

Field Name

Cellheight format

Type

Select

(mustacheoptionSplit)

Default

-1

Description

If a cell value is not equal -1 the cellheight format of this cell will be locked to this value.

Wordwrap

Field Name

Wordwrap

Type

Select

(mustacheoptionSplit)

Default

-1

Description

If a cell value is not equal -1 the wordwrapof this cell will be locked to this value. Wordwrap defines if the content of this cell will be wrapped if it is too long. If set to no-wrapno line-break will occur.

Fontsize

Field Name

Fontsize

Type

Integer(mustacheoptionSplit)

Default

'' (empty) == 0

Description

If a cell value is not equal zero the fontsizeof this cell will be locked to this value.

Fontsize format

Field Name

Fontsize format

Type

Select

(mustacheoptionSplit)

Default

-1

Description

If a cell value is not equal -1 the fontsize format of this cell will be locked to this value.

Class

Field Name

Class

Type

String

(mustacheoptionSplit)

Default

'' (empty)

Description

If a cell value is set to some value the class of this cell will be set to the specified value.

Id

Field Name

Id

Type

String

(mustacheoptionSplit)

Default

'' (empty)

Description

If a cell value is set to some value the id of this cell will be set to the specified value.

Text color

Field Name

Text color

Type

String (6 chars max)

(mustacheoptionSplit)

Default

'' (empty)

Description

If a cell value is set to some value the text color of this cell will be set to the specified value. This value is what comes after the # of the color definition in hex RGB.

Background color

Field Name

Background color

Type

String (6 chars max)

(mustacheoptionSplit)

Default

'' (empty)

Description

If a cell value is set to some value the background color of this cell will be set to the specified value. This value is what comes after the # of the color definition in hex RGB.

Style

Field Name

Style

Type

String

(mustacheoptionSplit)

Default

'' (empty)

Description

If a cell value is set to some value the style of this cell will be set to the specified value.

Additional

Field Name

Additional

Type

String

(mustacheoptionSplit)

Default

'' (empty)

Description

If a cell value is set to some value the additional attributesof this cell will be set to the specified value.

Action locking

This gets used for defining which actions a User can perform on the table. For each possible action there is a optionSplitted field which defines the rights.

Field Name :

Field Name

Field Name :

Type

Type :

Default

Default :

Description

Description :

Move column left

Field Name

Move column left

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each column value specifies if a user can move the corresponding column to the left.

Move column right

Field Name

Move column right

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each column value specifies if a user can move the corresponding column to the right.

Move row up

Field Name

Move row up

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each row value specifies if a user can move the corresponding row up.

Move row down

Field Name

Move row down

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each row value specifies if a user can move the corresponding row down.

Delete Column

Field Name

Delete Column

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each column value specifies if a user can delete the corresponding column.

Delete Row

Field Name

Delete Row

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each row value specifies if a user can delete the corresponding row.

Hide Column

Field Name

Hide Column

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each column value specifies if a user can hide the corresponding column.

Hide Row

Field Name

Hide Row

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each row value specifies if a user can hide the corresponding row.

Insert column before

Field Name

Insert column before

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each column value specifies if a user can insert a column before the corresponding column.

Insert column after

Field Name

Insert column after

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each column value specifies if a user can insert a column after the corresponding column.

Insert row before

Field Name

Insert row before

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each row value specifies if a user can insert a row before the corresponding row.

Insert row after

Field Name

Insert row after

Type

Integer

(Option-Split)

Default

'' (empty) == 0

Description

Each row value specifies if a user can insert a row after the corresponding row.

Creating Templates

If you have fully configured a table you may want to archive your work and make it reusable so others can easily make pre-designed tables. This gets achieved by templates.If you have finished configuring your table and locking (Also content elements will be copied if template is configured that way) finally press the save button again wherever you are and switch to the content element edit screen where you have the Flexform.

IMPORTANT : Don't forget to save your changes. Unsaved changes will not be stored in the template.

Then choose the tab “New Template” . I will shortly explain what the Fields are for.

  • Overwrite Existing If you choose some existing template from this drop-down box the selected template will get overwritten if the rest of the form is filled out correctly.
  • Name If no existingtemplate is selected in “Overwrite Existing” and a name is given here then a new template with this name will get created.
  • TSConfig Name This is the name the template will have for TSConfig configuration. This is not used actually but is required for future compatibility intentions.
  • Storage Folder This is the storage folder where the templates get stored to. You must select some “General Storage Page” in the Page Header of your Site Root-Page. Else no Storage Folders are configured. This is the same as for Templa Voila DS and TO records.
  • Allowed BE Users Just those BE Users will have access to this Template
  • Allowed BE Groups If the User is a member of the herein listed groups or one of the allowed BE Users he will have access to the template.
  • Content Mode This selects whetherthe new table has empty content, the content is copied from the template table (if it still exists), or is referenced (also just if it still exists).

Note that a new template gets just created or an existing one overwritten if a Storage Folder gets selected. If “overwrite” is selected no name needs to be given - the template will just be untitled.

FAQ

Can I set different lockings for different users ? No. Actually it is just possible to set lockings which get applied to any non-admin user. I will implement better access restrictions in the future ... Perhapsusing some ACL extension.

Why is such a complicated thing as Option-Split chosen for configuration ? If you ever have learned to configure menus with optionSplit to do some tricky things you will already love it ... And if you get to know what powerful things can be done with optionSplit in conjunctions with things like tables you will never want to miss them again.

And this mustache makes the mess perfect ? If you understand simple optionSplit you should understand mustacheoptionSplit after reading section “Configuration > mustacheoptionSplit”.

How does locking inter operate with templates. It's simply this way: The complete table and all it's locking information is stored in the template and copied to the actually edited table when a template is selected. So the complete locking will be used 1:1.

Installation

The extension gets installed as any usual extension via the EM. You have a few options to set when you install the extension but those are described in the configuration screen.

Applying the patch

If you have a TYPO3 version below 3.8.0 you will have to apply a patch to your source code for Templating and Locking to work properly. You need this patch exactly from versions from and below 3.8.0beta2. If no other version than 3.8.0 is out at the point when you read this document then you will have to check out the latest sources from CVS. Do that by reading the sourceforge TYPO3 CVS pages.

To apply this patch just change in the directory “TYPO3ROOT/t3lib/”

and execute the following command on your UNIX shell (don't know what to do under windows :)

patch -p 0 ./class.t3lib_befunc.php < TYPO3ROOT/typo3conf/ext/kb_conttable/patch_t3lib_befunc_hook.diff

Hopefully the patch will succeed. Afterwards you will be rewarded with the full functionality of the extension. You don't have to worry that you source code get's messed up. Just a simple hook gets added.

Configuration

Here the special configuration method, newly introduced by this extension, called “mustache”-Option-Split will get explained further. It mainly is a 2 dimensional extension of the well known optionSplit. Also the Configuration which is available when installing the Extension with the EM is documented.

mustacheoptionSplit

First of all you will need to know what optionSplit does. If you see a string like:

1 |*| 1 || 0 || 1 |*| 1

You should not be scared. If you are you should first read:

TSref 3.1.4 optionSplit

If you are already advanced read on.

The second dimension

optionSplit does nothing more than looping a defined amount of cycles and setting each value determined by the split definition pattern. Normally you would expect each value of the optionSplit to be some value which get used for wrapping or something. In this extension the values are used directly. But they are also used for replacing a second split-token - the mustache“ ~*~ “ by the default split token “ |*| “ and get feed to optionSplit again.

Such a extended optionSplit string looks like the following for example. It could get used as class definition in the Cell locking tab:

cell-empty ~*~ cell-header |*| cell-default |*| cell-default

the first optionSplit results it letting the middle rows and last row have “cell-default” as class. But for the first row there is an inner optionSplit which results in letting the first cell of the first row have “cell-empty” and all other cells of the first row have “cell- header” as style.

As you can see this really opens up many possibilities. You may think: Yes but I would have more fine grained control over the table if I could set access restrictions for each cell. In my opinion: maybe. You would not have the power of configuring how new cells are handled except if you create a lot of extra information. With this kind of configuration you also have the possibilityto configure each cell of each table completelybut you will most probably need to restrict the creation of new cells else your defined configuration will not be valid any more. What I'm talking about is a configuration like the following for the font-weight of a 3x3 table:

bold ~~ bold ~~ normal || bold ~~ normal ~~ bold || normal ~~ bold ~~ bold

This would result in a table like the following:

bold

a

bold

b

bold

c

normal

bold

a

bold

b

normal

c

bold

normal

a

normal

b

bold

c

bold

Most probably you will recognize that the mustacheoptionSplit definition is nothing more than a simple listing of each row. If you now inhibit the creation of new cells the table fontweightwill be absolutely defined.

Examples

Make a “border” of cells with a different background-color around a center of cells with white background.

a07020 |*| a07020 ~*~ ffffff ~*~ a07020 |*| a07020

Allow a user to add just columns at the very end

Insert Column before = 1
Insert Column after = 1 |*| 0
Conclusion

At the moment I am not completely sure which possibilities are hidden inside 2-dimensional optionSplit. It could perhapsopen up the doors for many new ideas and usages. Feel free to invent !

Page TS Config Configuration

This extensions does at the moment only rarely support Page TSConfig configuration. It will become more advanced in the future as you can already see from the Templates which got a TSConfig name.

Here are the preliminary configuration options.

tx_kbconttable.{keys}
Field Name :

Field Name

Field Name :

Type

Type :

Description

Description :

likeAdminsUser

Field Name

likeAdminsUser

Type

string list

Description

This field contains a comma separated list of (mixed) uids or usernames of BE users who have the same rights as admins regarding the table. This is just valid for the Flexform. The wizard is also restricted at the moment. Let me know if I should change this behaviour.

likeAdminsGroup

Field Name

likeAdminsGroup

Type

string list

Description

This field contains a comma separated list of BE group uids which have the same rights as admins regarding the Flexform of the conten table.

previewTextLen

Field Name

previewTextLen

Type

integer

Description

Sets the length of the Text which gets shown in each table cell for a content element or the RTE. Default value is setable when installing the extension.

Example:
tx_kbconttable.likeAdminsUser = 1,5,tester
tx_kbconttable.likeAdminsGroup = 1,8

EM Configuration

When you install this extension via the TYPO3 EM you should get presented a configuration screen after creating the required table (changes) which shows you some options to configure. Some of them will also be configurable via TSConfig in the future (Make requests to me: what option and how !)

Field Name :

Field Name

Field Name :

Type

Type :

Default

Default :

Range

Range :

Description

Description :

RTE Configuration RTEconf

Field Name

RTE Configuration RTEconf

Type

string

Default

richtext[cut|copy|paste|formatblock|textcolor|bold|italic|under line|left|center|right|orderedlist|unorderedlist|outdent|indent |link|table|image|line|chMode]:rte_transform[mode=ts_css|imgpa th=uploads/tx_kbconttable/rte/]

Range

any TCA RTE configuration string

Description

This is the RTE configuration which you normally find inside a TCA.php file. I will enhance RTE customization further (on a per Page basis).

Preview Text Length previewTextLen

Field Name

Preview Text Length previewTextLen

Type

integer

Default

100

Range

0-MAXINT

Description

Defines how many characters of a Content Element or of the RTE are shown in a cell.

Default colPos value colPos

Field Name

Default colPos value colPos

Type

integer

Default

10

Range

0-MAXINT

Description

Defines to which T3 column (Left, Normal, Right, Border) the Content Elements are saved by default. As this extension is compatible with the default Page module they can't get saved to the Normal column by default as this would disturb the normal elements. So it will get saved to the 10th column by default. If you use the 10th column already (wow :) ) enter another number.

Show content column in page module showContentCol

Field Name

Show content column in page module showContentCol

Type

boolean

Default

FALSE

Range

true/false

Description

Normally the 10th column is hidden. This will show it (If you have overwritten )”mod.SHARED.colPos_list” it will not be shown - somebody knows how to “append” something in TSConfig ?)

New Table Columns defaultColumns

Field Name

New Table Columns defaultColumns

Type

integer

Default

2

Range

1 - 20

Description

The number of columns a newly created table will have by default. This is configurable via Page TSConfig also

New Table Rows defaultRows

Field Name

New Table Rows defaultRows

Type

integer

Default

2

Range

1 - 20

Description

The number of rows a newly created table will have by default. This is configurable via Page TSConfig also.

Fast mode

Field Name

Fast mode

fastMode

Type

boolean

Default

TRUE

Range

true/false

Description

When this checkbox gets checked the Table uses the “Fast-mode”.

See following section “Fast mode” for more information.

Fast mode

In this mode the cell properties can't get edited in the T3 record editing screen (alt_doc.php) but rather only in the table wizard. This is because the properties are stored in a serialized array which increases performance compared to XML.

When fast-mode gets enabled or disabled or when updating from a previous version without fast-mode (But above 0.1.0) then the table gets automatically converted to fast-mode when saving the first time in the table wizard. You will notice the changes in the Flexform only after this task.

FAQ

Do i have to use optionSplitall the time ?If you simply want to lock all cellwidth values to one value just write the value in the locking field. Then all values will be set to the same value. This is also why “-1” is the default for all select fields. It means to don't lock all values.

I don't get that optionSplit what shall I do ?Just do it after a combined principle reading TSref 3.1.4 optionSplit and trial-and-error by using the locking fields. Just log into TYPO3 twice (Tip for Firefoxusers: start Firefoxwith option -ProfileManger (edit shortcut or call from commandline) and create two different profiles) once as Admin and a second time as User. Then lock some fields and look what happens.

Known problems

Slow because of the really large Flexforms. Even with “fast” mode where all cell properties are combined into one field which is not editable directly through the Flexform though. New solution: Restructure large parts of the extension so single records get created for each cell and now de/serializiation and/or XML decoding/encoding has to get performed. If you experience long loading times of the wizard please inform me and tell me about the type, size and content of your table and the server hardware you use.

Intention

If you like this extension. Or any other of my extension, you are invited to contribute to my idea of a beautiful world. You could spend money to any non-profit environmental or humanitarian organization like Greenpeace, WWF, Global 2000, Amnesty International, Care, etc.

Credits

This extensions was sponsored by the Austrian company Active Solution ( http://www.activesolution.at ) for their customer IT-Austria. Thanks to Petra Forman and Markus Thannhäuser from Active Solution and Walter Wasinger from IT-Austria for the good cooperation. Also thanks go to Stefan Beylen for proofreading the documentation.

The work of updating the extension to work with current TYPO3 versions 4.x was partially sponsored by the German company Dynamic Lines GmbH ( http://www.dynamiclines.de/ )

To-Do list

  • Add more configuration possibilities via TSConfig.
  • Make RTE more configurable.
  • Make it multi-language compatible
  • When item cut from “Normal” clipboard it doesn't get removed.

Changelog

Version :

Version

Version :

Date

Date :

Changelog

Changelog :

0.0.0

Version

0.0.0

Date

( ? )

Changelog

Initial release

0.0.1

Version

0.0.1

Date

( ? )

Changelog

Fixed paths to get fetched from TYPO3. Hardcoded before.

0.0.2

Version

0.0.2

Date

2005-01-24 20:30 CET

Changelog

Fixed the irritating red “not saved” message appearing after changing cell properties. Table gets saved automatically now.

0.1.0

Version

0.1.0

Date

2005-05-02 22:45 CET

Changelog

Completely rewritten !!!* Now completely Flexform based.

* Configuration via 2D optionSplit

* Many other new features: see first documentation paragraph.

0.1.1

Version

0.1.1

Date

2005-05-03 19:15 CET

Changelog

Updated manual (now includes screenshots directly - upload limit was raised :)

Added section regarding the “ERROR: NEW4277ac44005ea” error.

0.1.2

Version

0.1.2

Date

2005-05-12 18:45 CET

Changelog

Included a workaround for a bug in T3 3.7.0 so now templating should also work in this version if the included patch gets applied.

0.1.3

Version

0.1.3

Date

2005-06-17 12:42 CET

Changelog

Updated documentation

0.1.4

Version

0.1.4

Date

2005-07-10 19:00 CET

Changelog

Fixed a bug which caused that the content element couldn't be copied or imported.

Included German translations

0.2.0

Version

0.2.0

Date

2005-07-23 19:15 CET

Changelog

Introduced “Fast-Mode” which stores the cell properties in a serialized array. This increases speed but cell properties can't get edited from the T3 record editing screen anymore but rather from the table wizard. Also the RTE fields now only get inserted into the Flexform when RTE Mode is switched on. This also increases speed. For speed comparison see: http://www.think- open.org/kraftb/kb_conttable_speedimprovements.pdf

For more information on Fast mode see section “Fast mode” in the documentation.

0.2.1

Version

0.2.1

Date

2005-07-29, 15:30 CET

Changelog

Fixed a bug which resulted in not being able to save RTE content. This bug occured only when creating new tables with version 0.2.0 because of the change that the RTE editor is only included when needed.

0.2.2

Version

0.2.2

Date

2005-10-28, 08:15 CET

Changelog

Fixed a small issue which caused locked fields to not be set/locked properly.

0.2.3

Version

0.2.3

Date

2005-11-03, 23:30 CET

Changelog

Fixed a problem which lead to not working locking.

Completed locking mechanism by adding fields for the last actions which weren't lockable (Hide Cells, Move cells)

0.2.4

Version

0.2.4

Date

2005-11-16, 12:30, CET

Changelog

Fixed 2 bugs with RTE mode

0.2.5

Version

0.2.5

Date

2006-01-02, 12:30, CET

Changelog

Implemented the Template “Keep” mode. This allows to save a template in such a way that when it get's used only the style definitions get copied to the actual table but not any information about the number of rows and their content: Content stays - Style changes.

0.2.6

Version

0.2.6

Date

2006-02-13, 21:15 CET

Changelog

Now works together with kb_pm_paste

0.2.7

Version

0.2.7

Date

2009-11-28, 11:50 CET

Changelog

Updated the extension to work with TYPO3 versions 4.2 and 4.3

0.2.8

Version

0.2.8

Date

2009-11-28, 12:15 CET

Changelog

Fixed a small issue with dynamically generated content element wizard in table wizardRaised TER state from "alpha" to "stable"Initial import into forge SVN

Updated documentation

0.3.0

Version

0.3.0

Date

2009-11-28, 13:00 CET

Changelog

Raised version to 0.3.0Set proper version requirements for TYPO3 and PHP in ext_emconf.php

0.3.1

Version

0.3.1

Date

2009-11-30, 12:15 CET

Changelog

Fixed a bug: Commented out not fully implemented feature “DB mode”

0.3.2

Version

0.3.2

Date

2009-11-30, 15:15 CET

Changelog

Updated documentation: Added information about sponsor

0.3.3

Version

0.3.3

Date

2009-12-02, 13:30 CET

Changelog

Removed debug statementsIncorporated the templavoila xml/api handling classes completly into the extension. So the extension does not depend on specific templavoila versions any moreFixed the new content elements wizard

0.4.0

Version

0.4.0

Date

2010-05-05, 12:00 CET

Changelog

Updated all PHP doc references for methods at beginning of files using extdeveval

Updated the copyright date and email address in all files, switched first and lastname of author

Added a link to the table wizard, directly from the Web>Page module using a hook of recent TYPO3 versions

Added support for new RTE in RTE mode: tinymce_rte is now also supported

Fixed an issue with the RTE mode (thanks to Raymond Irwin for pointing this out)

Fixed a charset issue concerning XML/ARRAY conversion of DS and FLEX structures (thanks to Markus Dellmann for pointing out this issue and sponsoring the bugfix)

Removed a debug statement

Removed a path for adding a hook (this was only required in TYPO3 < 3.8.0)

Added a configuration option which allows combining posted cell properties to one POST variable to overcome mod_security/suhosin restrictions when posting too many fields

0.4.1

Version

0.4.1

Date

2012-07-12, 12:00 CET

Changelog

Fixed bug: At some places the deprecated/removed method “t3lib_div::GPvar” has been used. Changed this occurences to use “t3lib_div::GP”

Fixed bug: The XCLASSing of “template.php” didn't work anymore because t3lib_div now caches the names of classes instanciated via “t3lib_div::makeInstance”

0.4.2

Version

0.4.2

Date

2012-07-13, 20:30 CET

Changelog

Updated documentation

img-4 EXT: KB Content Table - 12