* Fixed problem in Extension Manager where files and directories was not written...
[Packages/TYPO3.CMS.git] / TODO.txt
index 9ea689b..d62ee39 100755 (executable)
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,31 +1,15 @@
-*****************
+******************
 TODO LIST
 *****************
 
 General:
-- BUG: Row-highlighting for both Page and Folder trees are not stable enough.
-- BUG: when editing records from Web>View the palette will not show properly in the topframe!
-- BUG: Email forms wizard: "Checked: " for checkboxes does not work!
-- BUG: CSM disappears too fast in MSIE4 (does not register the width of layer?)
-- BUG: is_executable on windows does not exist/work/make sense.
-- BUG: "if (count($fieldArr)) -> t3lib_page.php, ln. 270"
-- BUG: File>List , list-frame: Click menu does NOT work in Mozilla! cannot find the bug!
-- BUG: (Not) using "rawurlencode" in links (breaks when spaces/special chars are in either dirname or filename):
-  - cImage... (see Rene Fritz report)
-  - RTE images break
-  - RTE drag'n'drop WORKS!
-  - RTE links break.
-  - thumbnails display break.
-  - attachment of records break.
-  - CHECK: header links in content elements?
 - CHECK: What is the number of supported page levels? 20 or 100?
 - CHECK: possible XSS problem with alt_mod_frameset.php taking parameters for scripts to display in frames.
-- Convert selecting of filemounts from GROUP selector to a selectorbox.
 - Option: Turn of "onBlur" in backend (Message-ID: <001801c2a28c$bb020c70$963afea9@bla8kdvxpl8glk>)
-- Option: Frameset modules without the "border" frame and therefore adjustable freely.
 - Feature: "admin" can click a button which wipes out all record-lockings. (Message-Id: <200301281752.23246.mundaun@gmx.ch>)
-- Feature: Controlling access to function menu modules as well (thus we could have a user-module inside \93Template\94 which could edit the constants field)
-- Feature: Web >plugins -> to be a main module where people can place cmodules for their extension.
+- Feature: Controlling access to function menu modules as well (thus we could have a user-module inside ?Template? which could edit the constants field)
+- Feature: Web >plugins -> to be a main module where people can place modules for their extension.
+
 
 TCEmain:
 - Commenting of the class.
@@ -43,6 +27,9 @@ TCEmain:
        - Support for "grouping": - eg. tt_content elements are grouped by "column" + "language". But copy/cut operations must understand this. And Web>List should reflect this as categorizing. 
        - "child records" - records which MUST be related to another table - and will be moved along with the main record if moved.
        - Implement *real* record locking?
+               - Configure on a per-table basis
+                       - For instance, the TCEforms will render non-editable fields for ordinary users, while editable fields for "admin" users still
+                       - Should the check be done only in TCEforms - or also in TCEmain?
        - If an input value in the data array is NOT a string/integer but an array then just serialize this array and store (thus allowing customly build forms from PHP scripts to submit hierarchical information)
                - Could be solved by PRE-processing of content in user functions!
        - Implement "last_edited_by" field saving the BE-user UID just like tstamps are... (JH asked)
@@ -64,7 +51,7 @@ TCEmain:
        - Permission management on selector box/radio button values 
                - so certain "CType" / "Insert plugin" / "FlexForm datatypes" values could be blocked
                - Could it be considered to implement some "access pool" where elements on any level (like here selectorboxes or for FlexForms elements/types there) could add their element by an API and then it would A) automatically be listed for groups access lists and B) automatically enforced.
-       - Permission management for translations?
+       - Permission management for translations? Users are allowed to edit certain languages? (Setup with general access list API?)
        - Permissions on record-level
        - CHECK: That permissions are properly evaluated (especially for moving content?)
        - Security in tcemain: Uploaded/Attached files are allowed to be in ONLY a relative path OR in the "lockDir"!
@@ -75,22 +62,21 @@ TCEmain:
        - CHECK: copyAfterDuplFields - check it (tt_content).
 - RELATED: DBint/admin, logging-display, TCEforms, Web>List
 - IDEA: check for potential dangerous php-extension
-- Multiple DBs:
-       - The ability to configure "any" table to be stored in another database. 
-       - Think DBAL into this and also notice that joins could ONLY be done if tables are in the same DB! (since other databases could also be from non-MySQL dbs when the DBAL comes)
-       - Affects: Basically anywhere records are selected -> requires a check of $TCA[ctrl] for the table first before the query is done!
-       - Maybe this feature should wait till DBAL is implemented anyways.
+- TCEforms/TCEmain available for frontend?
 
 
 TCEmain/TCEforms for FlexForms:
 - Affects: "lowlevel" ext/DBint , "impexp" extension. Must/Should be extended.
 - Permissions handled per-field in FlexForms?
 - What to do if data structure was not found? (Both TCEmain, TCEforms, templavoila_pi1, t3lib_transferdata) 
+- block the creation of FlexForm in FlexForm inside TCEforms.
+- ['pi_flexform']['config']['ds'] must be set to some default message making sense!
 - TCEmain features:
        - caching of references/files in meta data (for analysis tools)?
        - mapping values to a plain-text search field(s)  
        - Offering API functions for add/delete/move/copy
        - Cleaning the original data in field since this may have an invalid structure if the data structure has changed in the meantime.
+       - Possibility to write the XML data values into a table instead (see Marc Schlingers idea, stored on paper in my red organizer).
 - TCEforms: 
        - Support for checkboxes which can expand/collapse sections/containers? fold-in, fold-out, passing a list of fields to show (with sub-levels for horizontal display).
        - Visual interface for forms, DHTML for sheets etc, various sheet modes, language menu form.
@@ -99,7 +85,11 @@ TCEmain/TCEforms for FlexForms:
        - NiceToHave: Attaching an image to the Data Structure. This image is a preview of what the data structure can create. When rolling over the image you can have the form fields highlighted which affects the area. (by a red border or so...)
                - visual: Table with condition in top header, condition value column + block column. Not user supplied. -> OR just a selector box deciding what is shown below!? (possibly "ALL")
        - Displaying partial branch of the data structure (and to a certain level)
-       
+       - FlexForms cannot be possible if the record is not saved? No, should be ok, BUT a data source can of course not be referenced from another field since that fields value is NOT actually there! So only for fixed references to flex form definitions can this be done.
+       - If you have a multiple selector field (or checkbox array) an array of objects could be forced to reflect exactly the fieldnames there 1-1 thus giving us configuration option possibilities per field! For newloginbox extension: You set up a selector box with multiple choice where you can select fields from the fe_users table to display. In an array of elements in the DS you configure that the VALUE of that field is dictating that the same number of objects should be shown for configuration of each field. A "hidden" value would point each object to which value from the field it was for! The same would be very useful for M-M lists of records.
+       - Implement "<displayCond>EXT:templavoila:LOADED:true</displayCond>" for flexforms. (needed for mininews!!)
+       - Implement CSH for FF fields.
+               
                
 TCEforms:
 - Support for other backend charsets / right-aligned charsets!?
@@ -122,7 +112,8 @@ TCEforms:
                - making copies of select fields etc - check that remapped records are OK treated (with foreign/neg_foreign + free string values)
                - Letting one selectorbox set another hidden fields value apart from its own? [USE: When selecting a template, that also sets the DS value! (Thus a template is always selected!)]
                - Exclude field selection better, in a tree?
-               - set the width of the selector field.
+               - set the width of the selector field 
+               - BUG: itemsArrayProcFunc only active IF there is an array! Shouldn't it be in any case?
        - GROUP type:
                - [file] allow the selection of files from the system to be added as REFERENCES, not copied! (Message-ID: <003f01c23503$8cdd69d0$55333bd4@comtech>, + notify "illuminatus")
                - In the thumbnail list add the Edit and view icons as in the good old days.
@@ -132,6 +123,7 @@ TCEforms:
                  - See JH mail: Message-ID: <C018FF617C61AB4588D15494126A5C0F23E410@Soulman.hanno-kirchhoff.de>
                - IFRAME alternative for Element Browser.
                - Like in CB: Copy image/reference from a record to clipboard, then insert that file/reference in another record again (Element Browser change).
+               - set the width of the selector field(s)
        - INPUT type:
                - having a selectorbox from which a default value can be selected (which is just transferred to the input field). Of course the selectorbox can have its content added by a PHP script.
        - ? type:
@@ -154,7 +146,6 @@ TCEforms:
 - DONE?: Support for label for main palette: (Rene: Message-Id: <200210011646.10346.r.fritz@colorcube.de>)
 
 Charset:
-
 - checking (for XML) if there is "character data" in a string?
 
 TCEforms/RTE API:
@@ -178,27 +169,18 @@ Element Browser:
 Wizards:
 - Finish the colorpicker! Some other person can be in charge of this (See "APPENDIX: Colorpicker")
 - Add wizard icon to TSconfig and Setup/Constants fields for immediate syntax highlighting (in popup window)
-- wizard_add, _edit and _list can be used fantastic to lead the user through multiple 1:n relations but than he starts to be confused if the records he created apear somewhere else, tries to edit them directly there, relations get lost, phone rings. (Peter Kühn). 
+- Add wizard icon to see/clean up FlexForm data?
+- wizard_add, _edit and _list can be used fantastic to lead the user through multiple 1:n relations but than he starts to be confused if the records he created apear somewhere else, tries to edit them directly there, relations get lost, phone rings. (Peter K?hn). 
+- forms and table wizards should be configurable for making XML structures alternatively to the currently formatting (programming wise ok, needs implementation)
 
 Interface:
-- Icons (see Bugs/Additions folder)
 - Showing in "frameset-modules" which submodule you are currently inside. And ability to change submodule in the rightmost frame anyways - maybe as a panel in top of the pages (must be cached so all submodules must not be loaded each time...)? (Message-ID: <3ADE655892793D499E2FBF623045AF4B54E9A4@dbwdfx2f.wdf.sap-ag.de>)
-- Make a "NavFrame adjustment bar" which allows people to click on an images under the navigation bar of "Frameset modules" and set the width of it (permanently). (Message-ID: <3ADE655892793D499E2FBF623045AF4B54EA0D@dbwdfx2f.wdf.sap-ag.de>)
-- Review the template/stylesheet interface. Document it -> Skinning API. (also how to substitute icons from gfx/ etc.)
 - Ability to create another Main/sub module structure in the backend (Daniel H: Message-ID: <BAB9A920.E95D%daniel@typo3.com>)
        - Change order, level, title, icon.
        - Use User TSconfig... and allow someone to create an extension to visually create a TSconfig output
        - See DHs mail: Message-ID: <mailman.1060763871.6396.typo3-metadev@lists.netfielders.de>
        - Links could be going directly to the function menus inside modules as well!
 
-Login:
-- admin-only flag in TYPO3_CONF_VARS so only administrators can log in/be authenticated.
-- New login form. (see mailbox)
-       
-Context Sensitive Menus (CSM):
-- Click menu does not work in task-center/weblist
-- Click menu does not work in Opera.
-
 Context Sensitive Help (CSH):
 - Add multimedia?
 
@@ -217,12 +199,12 @@ Web>List:
 - Support for "grouping": - eg. tt_content elements are grouped by "column" + "language". This should be reflected in the LISTING order (before ordered by the "sorting" column) OR maybe in a hierarchical display?
 - Support for tree-tables (that can be browsed).
 - Support for a "tree-group" -> a chain of tables which are displayed in a tree since each table has a config for a parent field in a former table. (Eg. DS: brand -> domain -> product).
-- BUG: no label when copying an item into the Web>List module...
+- Support for display of relations: Files, 1-M, M-M
 - FlexForm tree view / editing: 
        - When a record contains a FlexForm the web>List module could display the fields inside in a nice tree structure which one could expand/collapse! Then by clicking "edit" for a brand you get an interface where you can edit *that branch* of the flexform! Brilliant way to manage large structures inside of flexforms!
                - Can you picture it? That would be like expanding an XML document by a node-tree and add/edit/delete/rearrange any of the internal informational pieces!
+- Fikse copy/paste så at list-module reloader (løser også problemet med paste fra sidetræet/foldertræet?)
 
-               
 File>List:
 - BUG: UNIX: "RW" flag looks only on the permissions for the USER - not the group. So even if PHP via the group of a file can delete it, it is reported that it cannot.
 
@@ -230,77 +212,40 @@ History/Undo:
 - Must present a page/content element view, so a page with content elements can be restored as a whole 
 - Undo must be able to restore attached files as well 
 - Should be possible to disable for certain tables (can it be done already with TSconfig?)
-- Delete saved states (and save whole record content). 
-- Need to implement the diff-feature for windows as well (that is set configuration)
-  
+- Delete saved states (and save whole record content).
+- Need to implement the diff-feature for windows as well (that is; set configuration)
+
 LDAP support:
 - See "APPENDIX: LDAP"
 
-DBAL:
-- Next step: Create PHP-test scripts which performs 98% of the SQL operations we need in TYPO3 and then let people try to implement this; We will then know about all the obstacles first-hand before we do any efforts to implement it.
-- See "APPENDIX: DBAL" for Kaspers internal notes on the subject.
-- "TCEmain/Multiple DBs" as well.
-- MySQL practice: "Maybe it's a good idea to quote all table and column names in later versions of typo3 to avoid further problems like this one." (Message-ID: <mailman.1052907363.19535.typo3-english@lists.netfielders.de>) Also good for DBAL? + create API functions for making INSERT/UPDATE query strings.
-
 EM:
-- Code commenting
-- Display: Adding "back" buttons a few places.
 - Display: review-flag + link to review - cannot be overridden?
-- Display: Link to Introduction + other sections (typo3.org-API-script), getting started manual in doc/index.html (See extension "tstemplate_styler" which has a prototype!), homepage link
 - Display: After import, link to Install/Details.
-- Display: Clean up the red errors: Major / Minor errors, and make sure it does not report non-errors.
-- Display: Warning for extension of same classes?
 - Display: Better filtering, quicker listing
-- Feature: Specify preferred order of certain extensions.
-- Feature: Change order of loaded extensions
-- Feature: Dependencies includes minimum/max-version (Typo3, PHP, PHP-extensions, T3extensions)
+- Feature: [suggested by robert] resolving of dependencies like in apt-get (Debian package manager). Necessary extensions can be downloaded and installed automatically (idea: create dummy extension which depends on several extensions and acts like a package of extensions)
 - Feature: EM suggest clear-cache af scripts?
-- Feature: New category, "templates"
-- Feature: New review state: security-screened (light review, not quality oriented)
 - Install: Select other repository URLS in selector box?
 - Install: Extensions which can point the import/export to a directory with import-files.
-- Install: Updates of plugin checks if there is a local manual.sxw file. If there is the manual is also downloaded. Maybe people can set a flag in the configuration that manuals should always be fetched. (Some of this is already implemented)
-- Install: Upgrade multiple extensions at a time.
-- Install: Upgrade single extension without getting full list from TER
-- Install: Import from online rep: search freetext, enter extension key etc...
 - Install: Getting from TER only already installed extensions.
 - Install: Flag: "Import ext"; "Show non-secure extensions" (show ALL ext., not only reviewed ones)
-- Install: Update button for an extension in the details view.
-- Install: After upload of extension then we should return to the "Information" view, not "Upload"
-- Install: At upgrade: That an extension can display the total changelog between the formerly installed version and the new one.
-- Install: Configuration for EM: Request most recent translations by default?
 - Upload: emconf.php should have the md5-part updated when upload to TER
-- CHECK: flag in [EXT] about if local/global extensions can be updated. (does it work?)
-- CHECK: Are single quotes accepted when writing the "conf.php" files?
 - CHECK: Better failure-tolerance when "fatal errors" occur in ext_localconf/ext_tables.php files!?
 - CHECK: Can Install Tool bypass including ext_localconf/ext_tables if there are errors in them?
-- BUG: EM-extMgm: caching af localconf + extTables configuration in ARRAY? Plus ændringer til API specs. (problem when those files includes classes etc... probably not possible)
-- BUG: Fix memory consumption problem.
-- BUG: backend shortcut links to EM pages does not carry the edit-file information. They should.
+- BUG: EM-extMgm: caching af localconf + extTables configuration in ARRAY? Plus ?ndringer til API specs. (problem when those files includes classes etc... probably not possible)
 - BUG: Clear cache files should remove ALL "temp_CACHED_*" files in typo3conf/ (not just the current two)
-- BUG: detection of single quotes in XCLASS and CONF.PHP file cases (and wherever a regex searches for code snippets!). 
-- BUG: MSIE4: Cannot make backup of extensions (and probably not export them either) because the header-mime-typen is not registered as it should be.
+- BUG: Download of extensions (compressed...) will sometimes NOT get the same MD5 key after being saved (with any browser it seems) as shown at the download link. Origin of error not know. Please help if you encounter the problem.
 - DOC: "Extension API" manual.sxw!
 - Check mailbox for more... ?
 - Related: The KickStarter Wizard, in particular a) cleaner code output, b) merging updates.
 
-
 The REGEX-{} problem:
 - BUG: Regexs; "Warning: Unmatched \{ in /home/sites/site14/typo3_src-3.5b3/typo3/mod/tools/em/index.php on line 1983" which is a ereg with { WITHOUT preceeding slash! (Message-ID: <003c01c275aa$c0c60c10$e3a1a33e@pentiumriv4v9a>, Message-ID: <20030729082437.79900.qmail@web11305.mail.yahoo.com>)
-  
+
 Install/Servers:
-- FIX: Check safe_mode? Check open_base_dir? (Message-ID: <B9B8E356.1CE0%typo3@ilveneto.net>)
 - FIX: To get PHP to handle PATH_INFO and PATH_TRANSLATED information correctly with this setup, the php parser should be compiled with the --enable-discard-path configure option. 
 - FIX: The "php_sapi_name()=="cgi"||php_sapi_name()=="isapi"" problems (Message-ID: <ADEEJCHPNMOFKAAOJJKKCEKMCAAA.martin.kokes@sitewell.cz>, Message-ID: <200304071146520757.0097D495@smtp.worldonline.dk>, Message-ID: <BACDA028.F428%daniel@typo3.com>)
-- CHECK: MD5 problem on Apache/Windows (Message-ID: <001901c26aeb$99db4c60$a9695651@NIGELJ>)
 - CHECK: Security: Can HTTP_SERVER_VARS be overridden from URL if global vars are enabled???
-- [Ask Michael Stucki for an overview of bugs...?]
 - TYPO3_PORT bug (Message-ID: <005f01c2df3f$4006db00$0100a8c0@knoell>)
-- BUG: open_base_dir problem with tempnam() (affects: tidy, diff, new resource textfiles created in Web>Template/Info, Indexer (using temp-name for input from pdftotext)
-       -> Renes t3lib_exec class useful here?
-
-BE Language:
-- There are a few mails in the Translations mail folder. These files contains some translations which must be integrated manually...
 
 Filepermissions of source:
 - Test that these permissions work OK:
@@ -329,12 +274,296 @@ NOTES
 
 
   
+******************************************
+APPENDIX 1: CLEANING UP FOR TYPO3 3.6.0
+******************************************
+Cleaning for 3.6 involves:
+- XHTML transitional compliance
+- " to '
+- Commented functions
+
+1: Add comments
+ * NOTICE: This will also detect JavaScript functions, but if you place a comment line like "// ..." in the end of the function definition line they will not have the JavaDoc style comment added. Eg. "      function blabla()       {       //    "
+2: Write comments, organize them, add sections etc. (search [type])
+2a: Set "@access private"
+3: double to single quote (check for "\n")
+4: XHTML
+5: $Id$ CVS keyword expansion
+6: @package tags
+7: Function Index in scripts
+8: Depreciated use of t3lib_BEfunc::titleAttrib
+9: Generally, try to read all GPvars in init() functions and set them as internal variables - gives a nice, natural overview of what is used from the outsite
+
+
+Status 27/10 (TYPO3 Core + extensions "cms" and "lang" in sysext/ (but without global extensions in ext/ !)):
+- 2000 @param and @return tags in 800 functions still needs commenting (3800 tags in 1400 functions has already been done)
+- 50 scripts still needs cleaning for XHTML, comments and single-quotes
+
+Note on XHTML compliance:
+- We strive for XHTML transitional / frames
+- Certain incompatibilities has been allowed for practical reasons (for now). These include:
+       - align="absmiddle" for images
+       - width/height properties for input tags when images are used
+       - missing "cols" attribute for textarea tags.
+       - Some attributes for framesets.
+       [The reason for allowing this is probably that I do not know any workaround to achieve the same effect. The problem of non-allowed attributes/values also rate very low in my understanding of XHTML compliancy - it is far more important with nesting integrity, char case of tags/attributes, etc.]
+
+
+---------------------------------------------------------------
+NOTES ABOUT WHICH SCRIPTS HAS BEEN CLEANED AND WHICH REMAINS:
+---------------------------------------------------------------
+Finished (XHTML, quotes, comments, revised-note), XQCR:
+(Indented scripts are still missing clean-up)
+
+t3lib/________________________________________:
+XQCR: t3lib/class.t3lib_admin.php
+XQCR: t3lib/class.t3lib_arraybrowser.php
+-QCR: t3lib/class.t3lib_basicfilefunc.php
+XQCR: t3lib/class.t3lib_bedisplaylog.php
+XQCR: t3lib/class.t3lib_befunc.php
+XQCR: t3lib/class.t3lib_beuserauth.php
+XQCR: t3lib/class.t3lib_browsetree.php
+XQCR: t3lib/class.t3lib_clipboard.php
+-QC-: t3lib/class.t3lib_cs.php
+XQCR: t3lib/class.t3lib_diff.php
+XQCR: t3lib/class.t3lib_div.php
+               t3lib/class.t3lib_dmailer.php   [Pekue?]
+               t3lib/class.t3lib_exec.php              [Rene]
+               t3lib/class.t3lib_extfilefunc.php
+-QCR: t3lib/class.t3lib_extmgm.php
+-QCR: t3lib/class.t3lib_extobjbase.php
+XQCR: t3lib/class.t3lib_foldertree.php
+-QCR: t3lib/class.t3lib_formmail.php
+               t3lib/class.t3lib_fullsearch.php
+               t3lib/class.t3lib_htmlmail.php  [Pekue?]
+XQCR: t3lib/class.t3lib_iconworks.php
+               t3lib/class.t3lib_install.php
+-QCR: t3lib/class.t3lib_loaddbgroup.php
+-QCR: t3lib/class.t3lib_loadmodules.php
+-QCR: t3lib/class.t3lib_matchcondition.php
+               t3lib/class.t3lib_modsettings.php       [Rene]
+XQCR: t3lib/class.t3lib_page.php
+XQCR: t3lib/class.t3lib_pagetree.php
+XQCR: t3lib/class.t3lib_parsehtml.php
+XQCR: t3lib/class.t3lib_parsehtml_proc.php
+XQCR: t3lib/class.t3lib_positionmap.php
+               t3lib/class.t3lib_querygenerator.php
+-QCR: t3lib/class.t3lib_readmail.php
+XQCR: t3lib/class.t3lib_recordlist.php
+-QCR: t3lib/class.t3lib_scbase.php
+-QCR: t3lib/class.t3lib_stdgraphic.php
+XQCR: t3lib/class.t3lib_superadmin.php
+               t3lib/class.t3lib_svbase.php            [Rene]
+-QCR: t3lib/class.t3lib_tceforms.php
+               t3lib/class.t3lib_tcemain.php
+XQCR: t3lib/class.t3lib_timetrack.php
+-QCR: t3lib/class.t3lib_transferdata.php
+XQCR: t3lib/class.t3lib_treeview.php
+XQCR: t3lib/class.t3lib_tsfebeuserauth.php
+-QCR: t3lib/class.t3lib_tsparser.php
+               t3lib/class.t3lib_tsparser_ext.php
+               t3lib/class.t3lib_tsstyleconfig.php
+-QCR: t3lib/class.t3lib_tstemplate.php
+XQCR: t3lib/class.t3lib_userauth.php
+XQCR: t3lib/class.t3lib_userauthgroup.php
+-QCR: t3lib/class.t3lib_xml.php
+
+-QCR: t3lib/config_default.php
+-QCR: t3lib/thumbs.php
+XQCR: template.php
+-QCR: t3lib/stddb/load_ext_tables.php
+-QCR: t3lib/stddb/tables.php
+-QCR: t3lib/stddb/tbl_be.php
+
+
+sysext/lang/___________________________________________:
+XQCR: lang.php
+
+sysext/cms/___________________________________________:
+XQCR: tslib/class.tslib_content.php
+XQCR: tslib/class.tslib_fe.php
+-QCR: tslib/class.tslib_fetce.php
+-QCR: tslib/class.tslib_feuserauth.php
+-QCR: tslib/class.tslib_gifbuilder.php
+XQCR: tslib/class.tslib_menu.php
+XQCR: tslib/class.tslib_pagegen.php
+XQCR: tslib/class.tslib_pibase.php
+XQC-: tslib/class.tslib_search.php
+XQCR: tslib/media/scripts/example_callfunction.php
+XQCR: tslib/media/scripts/example_itemArrayProcFunc.php
+XQCR: tslib/media/scripts/example_keepRollover.php
+XQ-R: tslib/media/scripts/example_languageMenu.php
+XQCR: tslib/media/scripts/example_typolinkpop.php
+XQCR: tslib/media/scripts/fe_adminLib.inc
+XQ-R: tslib/media/scripts/freesite_dummy_page_menu.php
+XQCR: tslib/media/scripts/gmenu_foldout.php
+XQCR: tslib/media/scripts/gmenu_layers.php
+-QCR: tslib/media/scripts/makeMenu_datedirectory.inc
+-QCR: tslib/media/scripts/makeMenu_keywords_updated.inc
+XQCR: tslib/media/scripts/plaintextLib.inc
+XQCR: tslib/media/scripts/postit.inc
+----: tslib/media/scripts/testscript.inc
+----: tslib/media/scripts/testscript_EXT.php
+----: tslib/media/scripts/testscript_INT.php
+XQCR: tslib/media/scripts/tmenu_layers.php
+XQCR: tslib/media/scripts/wapversionLib.inc
+XQCR: tslib/media/scripts/xmlversionLib.inc
+-Q-R: tslib/index_ts.php
+-Q-R: tslib/pagegen.php
+-Q-.: tslib/publish.php
+.QCR: tslib/showpic.php
+XQCR: web_info/class.tx_cms_webinfo.php
+XQCR: layout/db_layout.php
+XQCR: layout/class.tx_cms_layout.php
+XQCR: layout/db_new_content_el.php
+
+typo3/___________________________________________:
+XQCR: alt_clickmenu.php
+XQCR: alt_db_navframe.php
+XQCR: alt_doc.php              TODO: Check "redirect" GPvar for XSS hole!?
+XQCR: alt_doc_nodoc.php
+XQCR: alt_file_navframe.php
+XQCR: alt_intro.php
+XQCR: alt_main.php
+XQCR: alt_menu.php
+XQCR: alt_menu_sel.php
+XQCR: alt_mod_frameset.php
+XQCR: alt_palette.php
+XQCR: alt_shortcut.php
+XQCR: alt_toplogo.php
+XQCR: alt_topmenu_dummy.php
+XQCR: browse_links.php
+XQCR: browser.php
+XQCR: class.alt_menu_functions.inc
+XQCR: class.db_list.inc
+XQCR: class.db_list_extra.inc
+XQCR: class.file_list.inc
+XQCR: class.show_rechis.inc
+XQCR: db_list.php
+XQCR: db_new.php
+XQCR: db_new_content_el.php
+default.htm
+default.html
+XQCR: dummy.php
+XQCR: file_edit.php
+XQCR: file_list.php
+XQCR: file_newfolder.php
+XQCR: file_rename.php
+XQCR: file_upload.php
+XQCR: index.php                TODO: Check "redirect" GPvar for XSS hole!?
+-QC-: index_re.php
+-Q-R: init.php
+XQCR: listframe_loader.php
+XQCR: login_frameset.php
+-QC-: logout.php               TODO: Check "redirect" GPvar for XSS hole!?
+XQCR: move_el.php
+               show_item.php                           [Peter Kuehn]
+XQCR: show_rechis.php
+-QCR: tce_db.php
+-QCR: tce_file.php
+XQCR: template.php
+XQCR: view_help.php
+XQCR: wizard_add.php
+               wizard_colorpicker.php          [Matthias]
+XQCR: wizard_edit.php
+XQCR: wizard_forms.php
+XQCR: wizard_list.php
+XQCR: wizard_rte.php
+XQCR: wizard_table.php
+XQCR: wizard_tsconfig.php
+
+XQCR: mod/help/about/index.php:                TODO: Modernize content
+XQCR: mod/tools/em/index.php
+XQCR: mod/web/info/index.php
+XQCR: mod/web/func/index.php
+XQCR: mod/web/perm/index.php
+
+
+typo3/ext/_____________________________________:
+OK             aboutmodules/
+               belog/          (2 / 500)
+               beuser/         (1 / 1300)
+               cms_plaintext_import/   (1/200)
+OK             conf_userts/
+OK             context_help/
+               css_styled_content/             (1/200)         [H]
+               direct_mail/            (3/2500)                [Peter Kuehn] + class.t3lib_htmlmail.php
+OK             direct_mail_subscription/
+XQCR:  extra_page_cm_options/
+               extrep_wizard/          (2/4500)                [H]
+               feuser_admin/                                           [testsite...] - XHTML
+               freesite/                       (2/1600)
+XQCR:  func_wizards/
+               imagelist/                      (1/250)
+               impexp/                         (2/2000)                [H]
+               indexed_search/         (4/3500)                [H] [testsite...]
+               info_pagetsconfig/      (1/200)
+OK             install/                                                        + class.t3lib_install.php / class.t3lib_superadmin.php
+               lowlevel/                       (2/800)                 [H]
+XQ-R:  metatags/
+               phpmyadmin/                     (1/130)
+               plugin_mgm/                     (1/300)         ->move? remove?
+               quickhelp/                      (1/80)
+               rte/                            (5/1900)                [H]
+OK             rte_conf/
+OK             setoldpluginlist/
+               setup/                          (1/400)
+OK             skin1/
+OK             static_file_edit/
+               sys_action/                     (1/400)
+               sys_messages/           (1/450)
+OK             sys_note/               
+               sys_notepad/            (1/130)
+OK             sys_stat/
+               sys_todos/                      (1/1100)                
+OK             sys_workflows/          
+               taskcenter/                     (4/400)                 
+               taskcenter_modules/             (1/100)
+               taskcenter_recent/              (1/150)
+               taskcenter_rootlist/    (1/50)
+               tipafriend/                             (1/260)         [testsite...]
+OK             tsconfig_help/
+OK             ts_language_de/
+OK             ts_language_dk/
+OK             ts_language_fr/
+OK             ts_language_nl/
+OK             ts_language_no/
+               tstemplate/                             (1/450)         + class.t3lib_tsparser_ext.php (1700)
+               tstemplate_analyzer/    (1/250)
+               tstemplate_ceditor/             (1/250)
+               tstemplate_info/                (1/450)
+               tstemplate_objbrowser/  (1/500)
+               tstemplate_styler/              (1/1700)
+OK             tt_address/     
+               tt_board/                               (3/1200)
+               tt_calender/                    (1/170)         [testsite...]
+               tt_guest/                               (2/350)         [testsite...]
+               tt_news/                                (1/750)         [testsite...]
+               tt_poll/                                (2/400)         [testsite...], [Rene F]
+               tt_products/                    (5/2000)        [testsite...], [? Peter Kuehn]
+               tt_rating/                              (3/550)         [testsite...], [Rene F]
+               viewpage/                               (2/200)
+XQRC:  wizard_crpages/                 
+XQRC:  wizard_sortpages/
+
+32,5 K Codes lines....
+
+For all extensions (even those approved):
+- Remember to add package tags to all classes!
+- Write documentation for each
+- Check HTML source / CSS usage / XHTML compliancy / That icons are skinnable (add to "skin360")
+- $LANG->getLL() are htmlspecialchars()'ed
+
+
+
+
+
 *******************
 APPENDIX 2: XHTML
 *******************
 Overview of implications before implementation:
 - UTF-8 encoding is in fact expected by XML! So the real charset must be set
-- Wellformedness: Nesting ok. All img tags must be ended with />
+- Wellformedness: Nesting ok. All img tags must be ended with /> (frame,base,meta,link,img,br,hr,area,input)
 - Lowercase for elements and attributes (and everything else...) + stylesheet element and attribute names.
 - All attributes in quotes
 - Minimized values not allowed: Must do this: selected="selected"
@@ -352,12 +581,93 @@ Practical steps for creating XHTML compliance:
 
 - lowercase: <(td|tr|p|div|table|b|i|u|a)
 - attributes in lowercase and ""; TYP: bgColor, border=0 cellspacing=0 cellpadding=0, valign=top, onClick, onChange, onSubmit, method="POST", type="Submit"
-- Ending tags: <br>, <hr>, <input>, <img>
+- Ending tags: <br>, <hr>, <input>, <img> (Longer list: frame,base,meta,link,img,br,hr,area,input)
 - shorthand: checked, selected, multiple, nowrap
 - href="", action="", src="", onclick= tags: htmlspecialchars() of URLS
-- <img -> ' alt="" />'    REGEX: <img[^>]*>
+- <img -> ' alt="" />'    REGEX: <img[^>]*[^-]>
 - FINDING attributes with no quotes:
 ([[:space:]]+)(class|face|hspace|vspace|rowspan|bgcolor|src|colspan|align|color|valign|border|width|height|cellpadding|cellspacing)=([^[:space:]>"']+)
+... and replace with: \1\2="\3"
+
+
+
+
+
+*******************
+APPENDIX 2: Debugging / varoius
+*******************
+
+Teststring for XSS bugs and SQL injection:
+       >><b><i>asdf</i></b>-\-\\-\"-\'-"-'-
+
+debug_backtrace() - nice function for debug-output.
+
+
+*****************
+APPENDIX: Versioning thoughts:
+Authors: Julle and Kasper.
+*****************
+- Versions can be done on page level or element level
+- In any case a pure copy of the element is produced
+- For pages only configured tables will be copied, eg:
+       - Page
+         - tt_content
+         - pages_lang_overlay
+
+- Versioning (for single elements including single "pages" record) is based on 
+       - ONE element having an official position in the TYPO3 page tree, thus holding the official "uid" of the element! (If this element was deleted from the system, so are all versions of that element!)
+       - All versions of this one element being a) at pid "-1" and b) a field "real_id" pointing to the official UID
+       - Pages-versioning: For all elements belonging to a version of a page; They are just copied and has no official new version or binding back to whatever element they came from. They just came along. And in fact, they could even have their own version history for them selves!
+       - Backend user access to elements is based on the access restrictions for the official element. THis must be implemented on core level.
+- Tables supporting versioning will have these fields:
+  - real_id    - Pointing back to official in-tree version
+  - ver_id     - Incremental integer (version number)
+  - ver_label  - Version label, eg. "1.1.1" or "Christmas edition"
+  - editlock   - Flag (core support independant of versioning) which IF SET makes it impossible for anyone to edit the record. The flag must be unset before editing can occur. (Is a feature which can be used to write-protect a version)
+  - pid/uid should have "signed" attributes in MySQL (pid = -1, uid =-xxxx for swapping).
+
+- Preview in fronend
+  - At page level, done with a simple selector in the AdminPanel. Just like date/user/hidden is done.
+  - For other element, time will show.
+
+- Backend module for versioning:
+  - Diff-ing between versions.
+
+- Version-swapping log?
+
+- ID-swapping for versioned elements
+  - Version from archive (future/past) will get the uid of the "real_id", the official element with "real_id" will get the new versions old uid.
+  - For pages-records: We will have to swap the "pid" values of all (versioning-included) elements on the pages.
+  - Swapping three-step process:
+       uid             uid     real_id
+  PUB: 13      -->     -13     247
+       247     -->     13      -
+       -13     -->     247     13
+  - Pages-versioning and the impact of NOT swapping tt_content element uids:
+       - Loose anchor-points, manually made (could be hack-fixed by some intelligent copying tracking)
+       - TemplaVoila references to elements from other pages (will break, however bad practice to reference elements not in some sort of central library which will NEVER be page-versioned anyways)
+       - Insert-records could potentially do the same
+       - Impact assesment: Low.
+       - Clean-up module (in templavoila?) could also track such things
+       - Problems for non-templavoila sites would be low.
+  - Swapping might need to exclude fields like "sorting" etc. Others could be imagined.
+  - copies: 
+    - What about a page alias?
+- Trunk/Branch: 
+    - Create version of single page (as above)
+       - Create version of page branch (1-... levels)
+               - Either create version of EACH page individually (like tagging in CVS)
+               - Or create single-point-of-reference so that pages INSIDE can be swapped, deleted and created (just like content elements can)
+                       - Requirement: Intelligent swapping of "sub-element" ids that CAN be traced back to the original!
+       
+- Backend:
+  - For single-editing of records we will show a version list from which to choose a version to edit (just like the delete button is also hidden at multi-edit)
+  - In list-module we might display a) an icon to a version selector (where diff-ing could be done, swapping performed etc.), b) show archive versions as children in the listing.
+  - In Page module + TemplaVoila page module: There will be a version selector implemented so users can switch around between versions.
+
+
+
+
 
 
 
@@ -380,8 +690,8 @@ Here are a few notes:
 ******************
 APPENDIX: LDAP
 ******************
-- hash of base-dn skal være cleaned op. Måske prefixe usernames med 10-char hash af base-dn.
-- Moduler som "User Admin" og andre steder, hvor "usergroups" feltet benyttes skal slå det op i LDAP uden authentication. -> Faktisk er det IKKE kun usergroups men ALLE felter, som kan mappes!!!
+- hash of base-dn skal v?re cleaned op. M?ske prefixe usernames med 10-char hash af base-dn.
+- Moduler som "User Admin" og andre steder, hvor "usergroups" feltet benyttes skal sl? det op i LDAP uden authentication. -> Faktisk er det IKKE kun usergroups men ALLE felter, som kan mappes!!!
 - Ved record creation: LDAP default group.
 
 ? Getting info like usergroups, email, name?
@@ -399,149 +709,111 @@ So we are looking at two scenarios:
 
 - Also have the possibility of local users: Thus 1) FIRST a lookup is done in LDAP, 2) THEN if this fails we look in the local mysql table. (Well, this solution is straight forward since a user must ALWAYS have a record in the local MySQL table...)
 
+- Make API so that other authentication solutions than LDAP can be used (eg. another MySQL table!)  [See Rene Fritz's prototype work with services...]
+
 
 Also see:
-- [Kasper] "LDAP" folder in Mailbox 
+- [Kasper] "LDAP" folder in Mailbox
 
 
 ********************
-APPENDIX: DBAL
+APPENDIX: DBAL (moved to TODO.txt of extension "dbal")
 ********************
-Issues:
-- Install tool, analysing SQL files, comparing, dumping etc. How? (MetaDatabase, MetaTables)
-- case-folding?
-- reserved words (uid!!) Which R-words?
-- LIMIT. selectLimit(x,x)
-- mysql_fetch_assoc substitute (seems to be there)
-- escaping chars with special function!!!
-- datatypes? Integer not there? LOB's a problem?
-- Internal functions: AVG, SUM, count
-- mysql_num_rows() = recordCount()
-- autoinc. of numbers with GenID()
-- how about joining?
-- ALTER TABLE syntax?
-
-Analysis:
-- SUPPORT: Core (+ 'cms') will support all DBs, extension MAY support a SUBSET of DBs only.
-- EM: MySQL will be the main supported database. sql-files for install tool follows MySQL syntax. Comparison can be done if ADOdb allows us to read table/field info (will need mapping of datatypes), updates may only be done if we support it. Not important. People CAN update manually with other DBs.
-- NAMING: Reserved words and case restrictions are a real problem. For now, lets call it unacceptable. Handling of this would include 1) conversion table in ADOdb for result set assoc. key mapping AND mapping of fields in the queries!
-- ESCAPING: Escaping characters will be very annoying because we'll have to pass an array first to stripslashes, then to add DB-specific slashes, then make Query. But we can for MySQL (and similar) bypass this...
-- LOBs: Working with LOBs seems to be extremely irritating, inserting them separately (In oracle)!! How are we knowing anyways that this is a LOB? Solution might be to bypass for MySQL and for problem DBs send the UPDATE/INSERT row (must be array then!!!) through a filter which returns new row plus a blob row for update afterwards.
-- AUTO-ID: Auto-incrementing is also a BIG irritation! Currently all inserts DO NOT set the id column!!! All insert statements must include the new, correct field (at least for the problem DB's like Oracle)
-- BTW: Escaping and BLOB handling seems to require the same for all INSERTs and UPDATEs: A field_array passed to function. Auto-id may relate to this (at least it will be required all places ...)
-- SQL: Will have to split up LIMIT selects. New escaping in SELECT queries. INSERT/UPDATE from field_arrays + processing, mysql_fetch_assoc() function "pandan"
-
-API:
-SELECT: 
-- Separate LIMIT from the rest. 
-- JOINS ? Functions like AVG, SUM?
-- Escaping of search strings
-
-UPDATE/INSERT:
-- Array passed to function if not MySQL
-  Function has: possible "autoincrement" field argument; If Oracle, auto-id is handled; If Oracle, BLOB-array is returned for separate insertion.
-
-
-ORACLE does not allow us to CHANGE existing fields into something else - only create new fields, otherwise we must export/import database.
-
-Other notes:
-- Datatypes to use for integers and others? Date/Time not a problem because typo3 uses integers.
-- AVG, SUM, COUNT - will they be there?
-- I'll need access to Oracle, MSSQL, PostGres - basically the databases we are going to connect to!!!
-- JOINS???
-- Having some lookup table (not TCA, because this is very individual from site to site) telling us which database (name+brand+server) a table is coming from, if not the default database. This also means that we will have an array of databases set up (one being default)!
-
-180303 / Oracle:
-- all fields/tablenames must be quoted
-- a quoted value cannot be inserted into an integerfield!!!
-
-
-insert... "kasper"
-
-Related issues: 
-- LPE: DB/DB sync.
-
-ORACLE / DB2:
-- u: db2admin
-- p: password
 
-Also see:
-- [Kasper] "DB Abstraction" folder in Mailbox 
 
 
 **********************
 APPENDIX: LPE
 *********************
-Syncronization:
+Also see:
+- [Kasper] "LPE" folder in Mailbox
+
+Syncronization (JH thoughts, general LPE):
 DB -> DB (1):
 - Production environment, which can dump configured set of tables to live server database and back. This is controlled from Production env.
 - Live server has two databases: One which accepts content from P (and is never written to) (P->L). One which ARE written to and is READ back by P (L->P).
 - The "P->L" database has a "backup" (db1, db2) where the "idle" database is the one being updated and after the update it's switched with the live db, which is now idle. The "L->P" database is not affected by this timing issue.
-- uploads/* dirs (and any files at all) might be syncronized by general rsync/ftp syncronization. Both ways? Primarily from P->L. Basically this sync. might take the whole sourcecode with it... 
+- uploads/* dirs (and any files at all) might be syncronized by general rsync/ftp syncronization. Both ways? Primarily from P->L. Basically this sync. might take the whole sourcecode with it...
 
 Req to T3:
 - That EACH table can be found in its own database (configurable). This means the TYPO3_db constant might have to be wasted? And not just another MySQL database - at another Database server or type (like Oracle). This is related to DBAL.
-- Q's: FTP-functions in php; How to syncronize? MySQL working across databases, connecting to more than one database? 
+- Q's: FTP-functions in php; How to syncronize? MySQL working across databases, connecting to more than one database?
 
 DB->HTML
 - Basically this is an rsync/ftp sync question which requires a set of static files.
 - Also a "mixed mode" concept where static files not found are server dynamically by TYPO3, but where the TYPO3 install does NOT allow backend access at all - only frontend delivery.
 
-Two situation:
+Two situations:
 - Publish static for local server, using mod_rewrite to direct requests transparently (static/dynamic). So all *.html requests WILL be found, static or dynamically! (Static/Dynamic blend)
 - Publish static for FTP server. All *.html requests MUST exist. (Purely static, limitations acceptable.)
 
-A HTML-filename which contains parameters__________:
- - Two solutions: using base64 or md5/db to encode/store parameters, adding md5/base64 to html-filename (either the real staticly written filename or the "fake" one)
- - Examples:
-&tt_board_uid=233&cHash=alkdfjlaskdf
-&tx_mininews_pi1[pointer]=0&tx_mininews_pi1[sword]=asdf&tx_mininews_pi1[mode]=asdf
-+1/3 length:
-This_is_my_page.123.1.64WAoaFRW9BXWTlzZ0ow53Dx8PEgASxh9namzMWxYIBDMdGnDx8PEgASxh9namzMWxYIBDMdGn.html
-
-This_is_my_page.123.1.m5abe83fd83e.html
-&tt_board_uid=233&blablabla=342&cHash=alkdfjlaskdf
-
-de dk
-This_is_my_page.123.1.m5abe83fd83e.html
-This_is_my_page.123.1.m5edf837afde.html
-
-Management__________________:
-- Clear-all-static-pages button; Staticly written filenames are retrieved from database table where those filenames are stored when ever they are written to disk (includes TTL time etc)
-- Clear-page-cache might also clear-page-static files.
-
----------------------------------------
-General config:        
-    For each page-id:
-        &lang=   (dk|de)
-        &cur=     (Euro/DKK)
-        &type=     (1)
-            2x2 = 4  (here we have some limit applied!)
-
-MAIN PAGE    &type=  (0|1|2|3)    4*4 = 16
-- Page 1    
-- Page 2    
-- Page 3    (Adresselist):    &tx_address_list[pointer]=    (0|1|2|3|4)    4*5 = 20 pages
-
-Various______________:
-- SearchEngine friendly / cachable URLs in board, products, tt_news
-- "Publish" funktionen brugte images_on_page. Genskab dette.
-
-THOUGHTS from Dassault work:
-# WriteToStatic function [Basically the static publishing system] (core feature: Kasper).
-  - writes static file IF simulateStaticDocument uses HTML *without* any parameters
-  - setting a "config.disableStaticCreation = 1" flag can disable it (for conditions situations)
-  - setting a value from PHP function (eg. if a search form needs to submit to the page) can disabled it
-  - registering the filename related to ID [and other parameters] so that "clear page cache" can also remove the file automatically.
-  - Also registeres: a) resources on the page (images/stylesheets), b) GET parameters from M5/B6 encryption.
-  - a browsing mechanism for creating static versions; could browse page, then show all links with checkboxes. Then checking of which links to follow and press button; browses the new pages. Then again checkboxes and so on. Which links were checked should be stored so that a process of publising could thus be followed automatically. This feature would include "clear files" function and also warn if a requested page was NOT written. (Problem; what if user-requests would generate the file? Possibly use a cookie or GET parameter or backend flag to request this.)
-  - includes an overview module showing all files and which pages they related to, possible "lost files" (those not registered in database) and "missing files" (in the database but not there).
-  - To create new versions doesn't have to REMOVE the existing! Just overwrite!
-
-Also see:
-- [Kasper] "LPE" folder in Mailbox 
-
-
+_____________________________________
+Server sync. extension, PLAN:
+Create an extension which syncronizes a set of tables to another database, using DBAL extension to determine handler for the remove tables
+- Use "tstamp" for update, "crdate" for inserts; does not dump full tables, only pushes updated content!
+- "Complete Sync": Feature for MD5 checking whole tables, thereby pushing content not based on timestamps but Md5 sum of content. This is if the timestamps are not getting updated correctly.
+
+_______________________________________
+General Crawler ("crawler"):
+- Crawls pages on TYPO3 site by URLs (using PHP fetching)
+       Config:
+       - Preload queue
+               - with previous crawler session log
+               - page tree pages / single top page?
+                       - For this; variable parameters, eg. "&lang=(dk|de)&cur=(Euro/DKK)&type=(0|1)" giving 3x2 combinations. Challenge; cHash?
+       - Set max-depth
+       - Adds GET parameter to identify operation (handler)?
+               - (re)index pages
+               - (re)cache pages
+               - Export as static HTML...
+       Session log:
+       - Identifies session by handler/id
+       - Can look up if a crawler has opened/closed/is-stalled etc.
+       - Multithreading crawlers (in IFRAMES or whatever)
+       - From session log we can read out the status-arrays of the threads and display in backend (handler shows as it likes.)
+       - Start / stop crawler session
+
+__________________________________________-
+CACHE MANAGEMENT EXTENSION
+
+- cache_pages -> API for adding key1/key2 custom content!
+- automatic clear-pages cache protection? (global flag)
+- Configuration: Configure "cache_" tables to clear when "Clear all cache"
+- "clear-cache" might not DELETE records but rather mark them "update-cache" or something like that... (would require the URL to be around...)
+- protect-flag which will disable the *automatic* clearing of page cache for a single page (in page header; expiry set to never -> setting flag in "cache_pages" table and records with that flag set cannot be flushed!)
+- "key1" and "key2" for granularity in caching!
+       -> used in manual clear-cache situations (cache mgm)
+       -> used in configurable clear-cache situations (clearing cache for a single document on TYPO3.org!)
+- "registerElement" per page for cache clearing (frontend scripts; function puts record reference in internal array and writes to disk only when cache table is written to! Flushes table with cache table also! Just like cache_pagessection)
+       -> For TV: ->registerElement('tt_content','uid'); when elements are NOT on the physical page
+       -> For 3dsplm: ->registerElement('bfs_brand','catia')
+       -> For 3dsplm: ->registerElement('bfs_skills','')       [saying that ANY bfs_skill changed will clear cache of front-page where all are shown.]
+
+cache-extension ("cachemgm")
+- in click menu, link to cache mgm
+- Web>Info "Cache overview":
+       - Overview of cached versions in tree (with stat like time, expiry, content size, parameter content, URL, key1/2) - standard categorizing, eg. [parameter1]:[param2]:[param3], page title!
+       - clear cache for page/section of page tree.
+- RE-generation of branches of this tree! (crawling the pages)
+- overview of cache_hash table.
+- overview of pages-section table.
+- tracking pages which are shown non-cached
+
+_____________________________________
+Static publishing ("staticpub" extension)
+- Writes static file (automatically) IF simulateStaticDocument uses HTML / Speaking URLs and allows caching of page
+       - root of the publishing dir MUST be hardcoded in TYPO3_CONF_VARS etc.; The extension has full power inside of this dir!
+       - Support for both speaking URLs (hierarchy of directories) and regular simulate static document types (flat dir)
+       - Using mod_rewrite to access static versions of documents.
+               - Checks existence of files
+               - Can bypass GET/QUERY string and POST requests!
+       - File location is tracked in a table tied to page-cache table uids - thus making a flush very easy
+       - File write should probably happen together with inserting cached version in database (system hook)
+- setting a "config.disableStaticCreation = 1" flag (in TS template) can disable it (for conditions situations)
+- Also registeres: a) resources on the page (images/stylesheets), b) GET parameters from M5/B6 encryption. (not used yet!)
+- Publishing can be done by remote-client requests (default) or using the general crawler (for re-caching pages)
+- Web>Info module "Static publishing": overview showing all files and which pages they are related to, possible "lost files" (those not registered in database) and "missing files" (in the database but not there).
+- To create new versions doesn't have to REMOVE the existing! Just overwrite!
 
 
 ******************************
@@ -558,7 +830,7 @@ To get rid of ImageMagick totally we need a GD with...:
 - masking
 - reduce colors / dithering
 - jpg quality control
-- 96 dpi / 72 dpi 
+- 96 dpi / 72 dpi
 - other effects?
 - Support for many file formats.
 This is currently implemented for GD2 by Kasper/Rene but the changes are not used. Just proof-of-concept. We are in contact with Pierre-Alain from the PHP-dev team about the issue and hope that his changes will make the future GDlib in PHP5 so powerful that ImageMagick is not needed anymore and most importantly: We can rely on a totally standard PHP installation available at any webhotel (in the future).
@@ -656,7 +928,7 @@ Bugs, considerations, notes
 - JavaScript: escape() doesn't rawurlencode the "+"-character. This can be a problem, eg. when trying to rename files with a plus in the name. I have made an alternative escape-function. 
 - PDF-files over 600 k are not rendered by ImageMagick. Less than 270 is! How come and is this true. Number of pages? 
 - When GDlib is disabled it can be very confusing that record icons does not change their look according to hidden/starttime/endtime etc...
-
+- many files in typo3temp/ slows down processing. Eg. a image resize with 33.000 files in typo3temp/ took 3 seconds where it would take 40 ms when the folder is clean. (on linux)
 
 
 **************************************
@@ -666,3 +938,35 @@ Innovation, brainstorming for future
 - Drop tt_content for content rendering and let extensions be the sole source of new content element types?
 - Check sitecore ideas for adding new fields etc.
 - Backend for PDAs/Lynx
+
+
+************************************
+Translation of Extensions
+************************************
+
+These [global] extensions has priority when translating extensions:
+
+lang
+cms
+extra_page_cm_options
+rte
+imagelist
+aboutmodules
+lowlevel
+beuser
+setup
+taskcenter
+sys_action
+sys_messages
+sys_notepad
+taskcenter_recent
+taskcenter_rootlist
+sys_todos
+sys_workflows
+func_wizards
+wizard_crpages
+wizard_sortpages
+info_pagetsconfig
+indexed_search
+tt_guest
+mininews