General:
- BUG: in TEMPLATE cObj? -> That markers with NO content are not substituted...
- Add a data type getting value from t3lib_div::getIndpVar() to "data" in TS
- Add a condition, "PIDInFullRootline"
- Add a data type "level" (general version of eg. "leveltitle") which defines the fieldname as second parameter (see Carlos suggestion in Message-ID: <mailman.1054748584.21635.typo3-features@lists.netfielders.de>)
- Add "doctype" setting from TS
- The feature "Get content from page" -> should that be active with "Standard" page type?
- Some way to show the previous content element in a column ONLY when default display is on (useful for plugins where the default listing normally uses the previous content element, but doesn't want it when showing some details etc.) - probably this is not possible to do well. FlexForms will probably be the long-term answer for many plugins.
- error-messages in TYPO3 (like "no template found") -> linking (config option)
- Finally implement the idea of "dividers" for content elements.
- Option for adding global onblur code to the page, see Message-ID: <17459949362.20021029003751@unlimited-vision.net>
- Adding ways to manipulate the window-parameters of the click-enlarge windows (Nigel: Message-ID: <002301c29242$adc7e250$a9695651@NIGELJ>)
- NiceToHave: A standard-framework for front-end scripts like "showpic.php" (Ingmar needed that for JPgraph for instance). Could be used for many small, nice things.
- Add TS property to tslib_content::imageLinkWrap() which allows to set the JS parameters for the open-window command.
- Option: Turn of "onBlur" in frontend (Message-ID: <001801c2a28c$bb020c70$963afea9@bla8kdvxpl8glk>)
- IDEA: For "HTML" CEs: A wizard which can browse HTML files in fileadmin/ and grab a part out of there, correct paths etc and insert the code in the HTML field. (Using TemplaVoila API)
- IDEA: To create a new page WITH a content element right away (like in the Classic Backend)

Languages:
- Create a relation from translated versions of a content element to the "original" and thereby allow the translation to disable some fields (like images) in its form because such fields should - when displayed - look up the value in the "original" record. Might need core support for this. (Message-ID: <200205300155190552.08F5563C@smtp.worldonline.dk>)
- Produce an official handling of mapping browser's ACCEPT_LANGUAGE to a "&L=xxx" variable.

Translation handling:
- "Create new translation" -> which copies all content elements from the default language (or those for which no translation exists), into the new language. (Message-ID: <BA4DE7D0.C31C%daniel@typo3.com>)
- translation module?

"Web>Page" module:
- QuickEdit: If you click "Close" in QuickEdit for new elements you will be redirected to the Columns view; It would be more logical to go back to a normal element in the QE
- QuickEdit: If you change language for a content element it is not shown in the selectorbox anymore - how can we make sure that it does?
- Page information: implement sessions + multilevel stat
- Check that permissions are properly respected for "Create pages" in the Page module.
- Ability to "paste-in" records in other columns (if there is not previously a CE there)

Caching:
- Create an API which allows the page generating code to register all starttime/endtime/other-changes times for elements. This information can then be used by the cache to set the expiry of the cache to the NEXT timestamp where something "happens" in the content.
- Create an API which allows the page generating code to register records displayed on a page! This information can then be used by clear-cache functions to clear cache for all pages where a certain record has been detected.
- Caching of GIFBUILDER images?
- HMENU menu object cache?

M5/B6 Urls:
- md5-url method: Create an expiretime setting and last hit setting. Thus we can detect for MD5 urls when it was last used (this is what we needed on typo3.org in order to clean up the 2M number of records...)
- Luites idea about shorter parameters... (Message-ID: <mailman.1053940143.8027.typo3-dev@lists.netfielders.de>)
- problem: That "cHash" becomes a part of the M5 url IF there are external parameters!

FE editing:
- Config for at page-admin-panel kan vises sammen med edit icons (opret nyt indholdselement/opret ny side)  [I don't know what I originally wanted to say with this...]
- Make sure that edit-icons are shown even if the content is empty.
- Show edit icons with the "HTML" type content elements
- Link to the Page module from the frontend?
- CHECK: Does DB mounts really limit page edit access? (it should)
- Offer alternative to the "edit-icon", probably in <div>-layers which does not spoil the page layout. we could simulate "RedDot"... :-)

Admin Panel:
- Improve Text color/style in Admin Panel. Possibly with a wrapping class you can control in the stylesheet. Plus the options of hardcoded formatting in style="" attributes? (Notify Ben/JH)
- Improve display of Admin Panel in case of pages made by <div> tags (like typo3.org) (See what Ingmar has done?)

cObject HMENU:
- Show access restricted pages in menus, but A) either without a link or B) with an alternative link pointing to a login-page (possibly with re-direct URL sent)
- Allow manual menu items on outer levels of a multilevel menu - not just on the first level as the special property does now. For instance it should be possible for a plugin to add a selectorbox to a page record which relates to a category-entry and when THIS page is queried for its subpages the plugin is given control to return an artificial array of menu items as it pleases!
- Support for LINK-navigation (used by some browsers). See mail: Message-ID: <10454203861.20021220234743@gmx.net>

TMENU:
- Add a property "titleAttr" which inserts a "title" attribute in the link tag for TMENU items, value from stdWrap. See Bens mail, Message-ID: <000501c27f26$da4a9180$680a0a0a@CGI>

xMENU_LAYERS
- BUG: Konqueror does not read the layer-width -> strange menus with GMENU_LAYERS etc...

JSMENU:
- Message-Id: <20030710080936.2D5273D0058@p15113832.pureserver.info>

cObject FORM:
- BUG: Check the security of the Email forms in Content Elements - can it be tricked to send spammail?
- implement the ability to set the value of checkboxes so that the value is not just "1" but eg. "Yes" in the mail people receives.
- implement encoding of the recipient address so it does not get caught by spam-bots.
- checkvalidmail -> this would check to see if the user entered a valid email into the form (Joe Feldman asking for this and the next...)
- checkempty -> check to see if form is empty
- checkoptional -> form is an optional entry
- checknotoptional -> form is not an optional entry
- Setting email sender header for formmails in TypoScript.
- Using an email-form, there is no check for the email-adress. And it is not possible to add a javascript-function  for that. Feature request: ".params = " To add onChange-events or something like that.... (JH)
- Support for saving emails in the database, not sending. Or both. (Notify jan holzmann)

imgResource/ClickEnlarge images:
- Way to support teleport pro grabbing a site when it comes to the clickenlarged images (probably just disable the JS to open the new window...?)

HRULER:
- Add width attribute in TS. Message-ID: <001301c28a89$78a1fdb0$f7b6fea9@NIGELJ>

parseFunc:
- Ability to set up more than one userFunc processing (with user defined string keys?)
- Ability use stdWrap for ".short" property? (JH has asked + Message-Id: <200301291437394.SM00221@millsoft.de>)

Stdgraphics
- Support for T1fonts. Message-Id: <8553D071-F766-11D6-8B11-00039388D8E6@gmx.net>

Fe_users:
- Support for md5-passwords? (Message-ID: <JFELJEBGDAHIABICLJFFAEAMCEAA.Typo3@Walsleben.at>)
- Support for login session lasting till next time user visits (or just a configurable amount)

Templates:
- More neat/useful standard templates (see RFs concept for "Template Extensions")

typolink:
- BUG: get content from and typolinkCheckRootline gives bad result across domains. [We had that problem sharing pages between TYPO3.org and TYPO3.com]
- Add feature so that typolink/sitemaps detect sys_domain records in the root line of links and automatically prepend the right URL. (Julle asked for this) + check this "bug-report": Message-Id: <20030401211300.082fe299.julle@diku.dk>






********************************
APPENDIX: Note on caching / cHash:
********************************

Scenario: A page has a plugin which delivers output based on a GET variable. Since pages are cached based on the id the plugin has various options:
1: Either disable caching for the page so any parameter is passed through to the plugin
2: Use a "USER_INT" object which allows a dynamic content area on the page.
3: Use "cHash" to validate GET parameters that can be cached.
The problem is solution 3, because here the plugin accepts its content based on GET parameters to be cached and there is a possibility that wrong content may be cached for the page id.
Examples
- "?id=12" -> plugin delivers "frontpage" content - no problem
- "?id=12&showuid=1&cHash=abcefd87" -> plugin shows a single id; 1) If cHash MATCHES the calculated hash from _GET, page is cached. 2) If cHash does NOT match, the page cache is disabled. In both cases the correct content is delivered, cache integrity is maintained but there might be delivery of non-cached pages if things fail.
- "?id=12&showuid=1" -> THIS IS THE PROBLEM: If "id 12" is already cached, no problem. The "showuid" parameter is just ignored. But if "id 12" is NOT cached the plugin will generate its content and the plugin does NOT know that the cHash parameter has been left out; result: A page with content based on "showuid=1" is made BUT cached under "id 12" only.
Possible solution:
- The burden is on the plugin which generates content based on GET parameters; If the plugin calls itself with caching enabled (cHash is made) then the plugin should also generate parameter based content ONLY if 1) $GLOBALS['TSFE']->cHash is set (meaning that cHash processing has taken place and all is safe) or 2) if $GLOBALS['TSFE']->no_cache is true (caching disabled) or 3) if the plugin itself disables caching.



----------------------
TYPO3 CVS ID: $Id: TODO.txt 195 2004-04-14 07:49:07Z typo3 $
