Added an object path in Page TSconfig called "TSFE.constants" which allows developers...
[Packages/TYPO3.CMS.git] / TODO.txt
index 1c22c55..c77393b 100755 (executable)
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,4 +1,4 @@
-*****************
+******************
 TODO LIST
 *****************
 
@@ -24,7 +24,7 @@ General:
 - 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: 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 cmodules for their extension.
 
 TCEmain:
@@ -181,7 +181,7 @@ 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). 
+- 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). 
 
 Interface:
 - Icons (see Bugs/Additions folder)
@@ -257,6 +257,7 @@ EM:
 - 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)
@@ -277,7 +278,7 @@ EM:
 - 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: 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: Clear cache files should remove ALL "temp_CACHED_*" files in typo3conf/ (not just the current two)
@@ -332,6 +333,201 @@ NOTES
 
 
   
+******************************************
+APPENDIX 1: CLEANING UP FOR TYPO3 3.6.0
+******************************************
+Cleaning for 3.6 involves:
+- XHTML 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
+
+
+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
+
+---------------------------------------------------------------
+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
+               t3lib/class.t3lib_diff.php
+XQCR: t3lib/class.t3lib_div.php
+               t3lib/class.t3lib_dmailer.php
+               t3lib/class.t3lib_exec.php              [Rene]
+               t3lib/class.t3lib_extfilefunc.php
+-QCR: t3lib/class.t3lib_extmgm.php
+-QCR: t3lib/class.t3lib_extobjbase.php
+               t3lib/class.t3lib_foldertree.php
+-QCR: t3lib/class.t3lib_formmail.php
+               t3lib/class.t3lib_fullsearch.php
+               t3lib/class.t3lib_htmlmail.php
+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
+               t3lib/class.t3lib_pagetree.php
+XQCR: t3lib/class.t3lib_parsehtml.php
+               a.Q..: t3lib/class.t3lib_parsehtml_proc.php (45)
+               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
+               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
+               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
+
+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
+
+lang___________________________________________:
+XQCR: lang.php
+
+
+
+typo3___________________________________________:
+XQCR: alt_clickmenu.php
+XQCR: alt_db_navframe.php
+               alt_doc.php             TODO: Check "redirect" GPvar for XSS hole!?
+               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
+               alt_palette.php
+XQCR: alt_shortcut.php
+XQCR: alt_toplogo.php
+XQCR: alt_topmenu_dummy.php
+               browse_links.php
+               browser.php
+XQCR: class.alt_menu_functions.inc
+               class.db_layout.inc
+               class.db_list.inc
+               class.db_list_extra.inc
+XQCR: class.file_list.inc
+               class.show_rechis.inc
+               db_layout.php
+               db_list.php
+XQCR: db_new.php
+               db_new_content_el.php
+default.htm
+default.html
+XQCR: dummy.php
+XQCR: file_edit.php
+XQCR: file_list.php
+               file_newfolder.php
+               file_rename.php
+               file_upload.php
+               index.php               TODO: Check "redirect" GPvar for XSS hole!?
+-QC-:  index_re.php
+-Q-R: init.php
+XQCR: listframe_loader.php
+               login_frameset.php
+-QC-:  logout.php              TODO: Check "redirect" GPvar for XSS hole!?
+               move_el.php
+               rte_cleaner.php
+               rte_select_image.php
+               rte_user.php
+               show_item.php
+XQCR: show_rechis.php
+               status_file.php
+-QCR:  tce_db.php
+-QCR: tce_file.php
+XQCR: template.php
+XQCR:  view_help.php
+               wizard_add.php
+               wizard_colorpicker.php          [Matthias]
+               wizard_edit.php
+               wizard_forms.php
+               wizard_list.php
+               wizard_rte.php
+               wizard_table.php
+               wizard_tsconfig.php
+
+
+XQCR: mod/help/about/index.php:                TODO: Modernize content
+               mod/tools/em/index.php
+XQCR: mod/web/info/index.php
+XQCR: mod/web/func/index.php
+               mod/web/perm/index.php
+
+  
 *******************
 APPENDIX 2: XHTML
 *******************
@@ -366,6 +562,68 @@ Practical steps for creating XHTML compliance:
 
 
 
+
+*****************
+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-versioninig: 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.
+       
+- 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.
+
+
+
+
+
+
+
+
+
 ******************
 APPENDIX: Charsets
 ******************
@@ -383,8 +641,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?