Revision 2.0.367


Revision 367
Modified Fri Jul 10 12:49:04 2009 UTC by jschneiderameos

  -> modernized a bit the executeAjaxResponse() method

  -> added a lightweight class that handled CSV generation

  -> added method getPreviousParams() that returns the parameters of the n-1th ajax event

  -> added method getPreviousAjaxParams() that do the same as formidableajax->getPreviousParams()
  -> added method div_arrayToCsvFile($aData, $sFilePath=FALSE); converts the given array to CSV, and writes it to the given filepath, or to a temp file if none given; returns the csv file path
  -> added method div_arrayToCsvString($aData) that converts the givven array to a CSV string

Revision 366
Modified Thu Jul 9 08:25:21 2009 UTC by jschneiderameos

  -> better management of template markers in the current scope
  -> if parseTemplate() is asked to not clear unused markers, it also won't remove perimeters that failed (when return code is AMEOSFORMIDABLE_LEXER_FAILED or AMEOSFORMIDABLE_LEXER_BREAKED), thus giving a chance for later passes to catch the perimeter if condition is based upon data that are out of the current scope

  -> added method i18n_getThisStoredParent() to ease porting from Branch 1 to Branch 2

  -> upgraded from to 1.6.1-RC3 to fix bugs with Firefox 3.5

Revision 365
Modified Wed Jul 8 07:21:01 2009 UTC by jschneiderameos

Modifications have been made to allow Formidable to deliver the value of multiple renderlets when rendered in the lister by simply requesting the renderlet name as a param. Returned value is an array of values, hashed by row uid.

Revision 364
Modified Mon Jul 6 16:13:07 2009 UTC by jschneiderameos

  -> bugs have been corrected in the parameter handling (context was empty when executing arguments passed to a method)
  -> some template methods calls have been passed from object to static, to allow static template parsing (when formidable is used as a template engine)

Revision 363

Modified Fri Jul 3 14:00:16 2009 UTC by jschneiderameos

  -> default values are applied also in edition mode if the field is empty

  -> method div_rteToHtml(); parameters table and column are now optional

  -> html is now passed thru div_rteToHtml() before usage in the TinyMCE

Revision 362
Modified Thu Jul 2 20:46:10 2009 UTC by jschneiderameos

Revision 361
Modified Thu Jul 2 20:43:10 2009 UTC by jschneiderameos

Revision 360
Modified Thu Jun 25 09:34:21 2009 UTC by jschneiderameos

Ajax events now autorize the usage of params="$this" to get the value of the current rdt

Revision 359
Modified Thu Jun 25 08:39:15 2009 UTC by jschneiderameos

 -> added /afterSearch=runneable, default false checkpoint on searchform

Revision 358
Modified Tue Jun 23 08:42:05 2009 UTC by jschneiderameos

  -> added new renderlet MODALBOX2; implementation of open source modalbox

  -> added new method Formidable.globalEval(sScript); evals the given script string in the GLOBAL execution scope, in a synchronous and cross browser way
  -> majixFx(): one may now use afterFinish in the parameters, to execute another majix task after Fx is completed; this is useful, as javascript Fx are asynchronously executed

Revision 357
Modified Tue Jun 16 15:20:29 2009 UTC by jschneiderameos

Added tooltip library and swfupload images

Revision 356
Modified Tue Jun 16 15:18:21 2009 UTC by jschneiderameos

  -> title on sort headers is now passed thru strip_tag()

  -> button image is now translated in DE, EN and FR

  -> if /title given, one can now declare /tooltip=boolean, default false; if TRUE, an unobtrusive js-tooltip will substitute the default one; advantages are: may contain HTML; content-size is not restricted; will not automatically close after some seconds; can be multiline
  -> thanks to wildbit labs for their open-source tooltip library;

Revision 355
Modified Mon Jun 15 13:44:34 2009 UTC by jschneiderameos

  -> fixed

  -> added method getItem(sValue); returns the dom node for the checkbox corresponding to the given value
  -> added method disableAll()
  -> added method disableItem(sValue)
  -> added method enableAll()
  -> added method enableItem(sValue)

  -> fixed a bug in _renderList_displayRows(), resulting in unavailable current rowData when templating a row

  -> added /effects=boolean, default false; if true, progressbar will animate the progress

  -> complete rewrite to cope with flash 10 security updates; less flexible than it was, notably because the file dialog cannot be opened by a javascript event anymore, but exclusively by a button in the flash itselves

  -> new template method "sImagePath".imageMaxWidth(iPwWidth); returns the path of the given image resized to the given width (if needed)
  -> new template method parent(); return the parent of Formidable (typically the plugin or backend module that initialized Formidable)
  -> new template syntax for looping in collections; use it like this:


        {item.date_timestamp.strftime("%d/%m/%Y")} {item.title}

  -> dynamic script inclusion evaluation is not done by prototype anymore; scripts are now eval'd in the global scope instead of the local scope as with prototype

Revision 354
Modified Fri May 29 14:09:11 2009 UTC by jschneiderameos

  -> parameters in codebehind calls are added declared as the first parameters of the method, even when used in a codebehind that defines system parameters (like the validators, for instance, automatically passing the rdt value)

  -> new property /visible, boolean, default true; if false, the renderlet and it's label won't be displayed (display: none)

Revision 353
Modified Fri May 29 08:26:04 2009 UTC by jschneiderameos

  -> maySubmit() is now always TRUE, as all renderlet may submit via majix, even if they're not natural submitters
  -> /search/overrideSql now works with /search/onfields; if onfields given, overrideSql (if runneable) will be executed for each given fields; otherwise, the name of the renderlet will be used as the only fieldname

  -> passthru is now written again in DB
  -> improved the /fillStandardTypo3Fields mechanism

  -> setSelected(), setAllSelected() and setNoneSelected() don't trigger javascript error when the listbox is not present in the page

  -> If /listheader not given on a column, Formidable will try to search for the renderlet's absolute name + '.listheader' in the default locallang file (either the piX/locallang.xml, or the one defined via /meta/defaultLLL)

  -> if the parent is an extension of tslib_pibase (if it's a standard TYPO3 frontend plugin), Formidable will look for the file piX/locallang.xml to use it as a default LLL file for the application; if /meta/defaultLLL is provided, this automation is bypassed of course

Revision 352
Modified Thu May 14 16:54:07 2009 UTC by jschneiderameos

  -> /get is not required anymore
  -> dset_alwaysNeedsToBeWritten() always TRUE

  -> now returns empty string if image does not exists
  -> sets image size in the 'filesize.' template channel

  -> corrected bug on styles, that was added to every single <option>-tag

  -> added new properties followScrollVertical and followScrollHorizontal, default TRUE; if FALSE given, the modalbox will not follow the movement when the user scrolls the page

  -> fixed

  -> new method dset_alwaysNeedsToBeWritten(); returns FALSE; if TRUE, the dataset will be written even if the system does not detect that a column has changed (useful notably on non-array based datasources)

  -> atomic management of style definitions
  -> server event may now be executed at when="start"; they are executed way before the renderlets are mounted in memory, and thus may not access renderlet properties, but it offers a chance to modify some things before the application begins it's execution.

  -> the "unique" validator is now datasource-aware

  -> xmlbuilder may now execute a codebehind method
  -> the API will resolve string beginning with EXTCONF: as pointers to configuration lying in the $GLOBALS["TYPO3_CONF_VARS"]["EXTCONF"] array; exemple:

Revision 351
Modified Mon Apr 6 08:25:25 2009 UTC by jschneiderameos

  -> working on Fluid

Revision 350
Modified Thu Apr 2 19:55:31 2009 UTC by jschneiderameos

  -> added experimental renderer:FLUID, using the fluid template engine; needs the extensions extbase and fluid to be installed, as well as TYPO3 4.3

Revision 349
Modified Thu Apr 2 13:07:17 2009 UTC by jschneiderameos

  -> /value=boolean on validators is not evaluated anymore; for instance /required, if defined, is always evaluated

  -> creation of the first unit test on Formidable

Revision 348
Modified Thu Apr 2 11:38:08 2009 UTC by jschneiderameos

  -> the whole validation process has been modernized and moved from tx_ameosformidable to tx_mainrenderlet
  -> validator:CAPTCHA has been removed, as it is not needed anymore (renderlet:CAPTCHA includes automatic validation)

Revision 347
Modified Thu Apr 2 06:46:00 2009 UTC by jschneiderameos

  -> applied a patch provided by Oliver Klee that restores the XHTML validity of label elements

Revision 346
Modified Wed Apr 1 15:47:28 2009 UTC by jschneiderameos

  -> new method _setSyncDataFloating(); inserts the data in the datasource when CREATE
  -> new method _setSyncDataAnchored(); inserts the data in the datasource when UPDATE
  -> dset_writeDataSet() now uses setSyncDataFloating() and setSyncDataAnchored()

  -> added /custom validator; replaces the/userobj validator; has to be runnable
  -> temporary fix of a bug related to unsetRdt(); when process=false on a rdt, we should also remove the rdt from the aChilds collection of it's parent, so that /sameAs validator is not executed with on a removed renderlet (when called by mainrenderlet->processDataBridge()); but by doing so, the subpart-templates for the unset rdt (boxes) are not substituted by "" in the template

  -> new checkpoints before-actionlets and after-actionlets; executed only when the actionlets have to be executed
  -> added a constructor to the tx_ameosformidable() method, to have a chance to initialize a cObj without having to call init() on the object; useful when a formidable object is used only for templating purposes by an external script
  -> template method rdt() is now chainable, to access the childs of renderlets
  -> if called without being prefixed by a call to rdt(), hasErrors() will evaluate if there are errors at datahandler-level
  -> new template method codeBehind(sCBName); returns the corresponding codebehind object
  -> codeBehinds have now arguments passed directly to the methods (maximum 10)

Revision 345
Modified Mon Mar 30 13:58:09 2009 UTC by jschneiderameos

new rdt_autocomplete+debug ticker