Hooks in tslib_fe, Frontend login mode feature for pages; various other things. see...
[Packages/TYPO3.CMS.git] / TODO.txt
index 89a5b92..23dcda5 100755 (executable)
--- a/TODO.txt
+++ b/TODO.txt
@@ -41,7 +41,7 @@ TCEmain:
        - Transformation API: Implement the possibility of custom to/from transformations for the "user" type (or any field?)
        - Selector box type:
                - MM support for strings
-       - Support for MM-records which does NOT get deleted, but is kept... and then support for having data in those!!
+       - Support for MM-records which does NOT get deleted, but is kept... and then support for having data in those!! NOTE 3/12 04: This will cause severe problems in the import/export interface and probably many other places where the MM relations are stored only as the uid of another table and nothing more. That makes it impossible to track the record in the middle....
        - Support that the content of a single field can be stored in an external file instead.
        - Support that a list of fields can be stored in an external XML file instead.
        - Record Reference tracking in a table in TCEmain; Used to:
@@ -135,6 +135,7 @@ TCEforms:
                - "readonly" flag, or user group dependant. See "Message-Id: <200210241441.50295.r.fritz@colorcube.de>"
        - ? type:
                - "Inverse relations"/"Foreign relations": A "Pseudo field", which lists records REFERING TO this record (foreign relations, eg. many small price-records belonging to ONE shop-article). Possibly this could also EDIT those references (attaching/adding new, removing old, no manual ordering though! - This is what RENE is doing (Message-Id: <E17LO4D-0002hj-00@cube.colorcube>)
+       - Concealed password fields, support for two fields with the same password being submitted... (JavaScript evaluated?)
 - BUGS:
        - Ask to save record when you want to add a category with the "Plus" icon.
        - CHECK: ###STORAGE_PID### incorrectly calculated?
@@ -152,6 +153,7 @@ Element Browser:
 - Selecting files from other resource-fields of records (which the user can actually read) - maybe with the Element Browser, browsing for record, clicking it, seeing a list of files inside the record?)
 - Ability to insert images when their info page (larger thumbnail) is displayed. Maybe a small + (plus) icon would do. (Notify Patrick Roeder)
 - Some quick-lookup feature (like we have on TER)
+- Showing more than the title column for records listing and making it possible to sort by the columns.
 
 Wizards:
 - Add wizard icon to TSconfig and Setup/Constants fields for immediate syntax highlighting (in popup window)
@@ -194,7 +196,7 @@ Web>List:
 - 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?)
+- Fikse copy/paste s�at list-module reloader (lser ogs�problemet med paste fra sidetr�t/foldertr�t?)
 
 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.
@@ -417,7 +419,7 @@ XQCR: t3lib/class.t3lib_positionmap.php
 -QCR: t3lib/class.t3lib_readmail.php
 XQCR: t3lib/class.t3lib_recordlist.php
 -QCR: t3lib/class.t3lib_scbase.php
-               t3lib/class.t3lib_sqlengine.php                 [Kasper]
+               t3lib/class.t3lib_sqlengine.php                 [Kasper/Karsten?]
 -QCR: t3lib/class.t3lib_stdgraphic.php
 XQCR: t3lib/class.t3lib_superadmin.php
                t3lib/class.t3lib_svbase.php                    [Rene]
@@ -494,8 +496,7 @@ OK          context_help/
                        - Manual written?
 XQCR:  extra_page_cm_options/
 XQCR:  func_wizards/
-               impexp                          (2/2000)
-                       - Extend support and finish it with the efforts soon to be done for "DBint" (lowlevel) and TCEmain
+XQC-:  impexp
                indexed_search          (4/3500)
                        - Templates?
                        - Speedoptimizations?
@@ -524,9 +525,9 @@ XQRC:       wizard_sortpages/
 
 For all extensions (even those approved):
 - Remember to add package tags to all classes!
-- Write documentation for each
+- Write documentation for each (CSH is fine enough).
 - Check HTML source / CSS usage / XHTML compliancy / That icons are skinnable (add to "skin360")
-- $LANG->getLL() are htmlspecialchars()'ed
+- $LANG->getLL() are htmlspecialchars()'ed / second argument is "1"
 
 
 
@@ -651,7 +652,7 @@ Authors: Julle and Kasper.
 ******************
 APPENDIX: Charsets
 ******************
-In TYPO3s backend charsets used has traditionally been the the charset of the backend user language. This is of course a big problem (when other than western european languages are involved) since the encoding of content is thus depending on the charset of the user and not of the system
+In TYPO3s backend charsets used have traditionally been the charset of the backend user language. This is of course a big problem (when other than western european languages are involved) since the encoding of content is thus depending on the charset of the user and not of the system
 From TYPO3 3.6.0 you can define a global charset for the whole database. This can be any local charset like iso-8859-1 or windows-1250. But for multilingual sites it is recommended to use utf-8 since that can represent all languages.
 You set the global charset in a localconf file like this: $TYPO3_CONF_VARS["BE"]["forceCharset"] = "utf-8";
 
@@ -722,61 +723,20 @@ Two situations:
 - Publish static for FTP server. All *.html requests MUST exist. (Purely static, limitations acceptable.)
 
 _____________________________________
-Server sync. extension, PLAN:
-Create an extension which syncronizes a set of tables to another database, using DBAL extension to determine handler for the remote 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)
-- OK - 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.]
-- &no_cache can be disabled (allows DoS attacks!)
-- cHash problems?
-
-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
+Server sync. extension ("dbsync"):
+Create an extension which syncronizes a set of tables to/from another TYPO3 installation
+- Using SOAP for information exchange
+       - Local machine (production) = Client
+       - Remote machine (live) = Server
+       - Must have the "dbsync" extension installed both places
+               - client has a set of table names configured, where each is marked with the *direction* (possibly bi-directional in future?)
+               - For each table, client asks for a "header" which contains list of uid/tstamp/crdata/possibly MD5 sum of content (if tstamp/crdate is not present)
+               - Client compares this with local table, finds records to add/remove/delete
+               - Client pushes / retrieves records
 
 _____________________________________
 Static publishing ("staticpub" extension)
+[2/2005: Today, a reverse proxy (using cache control) is a better solution than static publishing if you want to speed up a TYPO3 site. Therefore static publishing is a concept mostly interesting if you want to export a TYPO3 site as static files to an ordinary webhoster.]
 - 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)
@@ -785,6 +745,7 @@ Static publishing ("staticpub" extension)
                - 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)
+               - Resource files on the page can optionally be written to a sub-dir of the publishing dir.
 - 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)
@@ -879,7 +840,6 @@ APPENDIX: PATTERN-control
 - Will be hard to manage that records being a part of the pattern are not changed after having been added to the pattern. But at least this could be a beginning...?
 
 
-
 **************************************
 Rapport of "deleted"-check in typoscripts (190500)
 **************************************
@@ -925,77 +885,49 @@ Innovation, brainstorming for future
 - Backend for PDAs/Lynx
 
 
-
-
 *********************************
 Translation of Backend
 *********************************
-Overview of missing translations. (UPDATED before 3.7.0 final)
-Numbers in format: (New / Changed)
-
-- de [German]          0/0
-- no [Norwegian]       0/0
-- it [Italian]         0/0
-- fr [French]          0/7
-- es [Spanish]         1/3
-- nl [Dutch]           0/0
-- cz [Czech]           111/23 (inactive!)      - 11/15: same
-- pl [Polish]          0/0
-- si [Slovenian]       98/19 (inactive!)       - 11/15: same
-- fi [Finnish]         0/0
-- tr [Turkish]         0/0
-- se [Swedish]         0/0
-- pt [Portuguese]      127/23 (inactive!)  - 11/15: same
-- ru [Russian]         0/0
-- ro [Romanian]                7/19    (inactive??)   - 11/15: same
-- ch [Chinese (Simpl)] 141/21  (inactive??)  - 11/15: same
-- sk [Slovak]          106/21  (inactive??)    - 11/15: same
-- lt [Lithuanian]      5/7   - 11/15: 1/0
-- is [Icelandic]       483/9   (inactive!)  - 11/15: same
-- hr [Croatian]                76/25   (inactive!)  - 11/15: same
-- hu [Hungarian]       0/0
-- gl [Greenlandic]     890/1   (inactive!)  - 11/15: same
-- th [Thai]                    6/21     - 11/15: 0/0
-- gr [Greek]           1121/0  (inactive!)  - 11/15: same
-- hk [Chinese (Trad)]  72/1   - 11/15: 41/1
-- eu [Basque]          797/8   (inactive!)  - 11/15: same
-- bg [Bulgarian]       192/18  (inactive!) - 11/15: same
-- br [Brazilian Portuguese]    6/0       - 11/15: same
-- et [Estonian]                137/25  (inactive!) - 11/15: same
-- ar [Arabic]          550/10  (inactive!)     - 11/15: same
-- he [Hebrew]          12/0            - 11/15: same
-- ua [Ukrainian]       679/11  (inactive!) - 11/15: same
-- lv [Latvian]         170/15  (inactive!) - 11/15: same
-- jp [Japanese]                1120/0  (inactive!) - 11/15: same
-- vn [Vietnamese]      1104/0  (inactive!) - 11/15: same
-- ca [Catalan]         1121/0  (inactive!) - 11/15: same
-- ba [Bosnian]         789/0           - 11/15 : 0/0!
-- kr [Korean]          1121/0  (inactive!)     - 11/15: same
-
-
-
-Same password:
-
-       no                      f4e72bc32f2c636059d5f3ba44323921        Norwegian
-       pt                      f4e72bc32f2c636059d5f3ba44323921        Portuguese
-       gr                      f4e72bc32f2c636059d5f3ba44323921        Greek
-       jp                      f4e72bc32f2c636059d5f3ba44323921        Japanese
-       vn                      f4e72bc32f2c636059d5f3ba44323921        Vietnamese
-       ba                      f4e72bc32f2c636059d5f3ba44323921        Bosnian
-       kr                      f4e72bc32f2c636059d5f3ba44323921        Korean
-       it                      f4e72bc32f2c636059d5f3ba44323921        Italian
-       fr                      f4e72bc32f2c636059d5f3ba44323921        French
-       cz                      f4e72bc32f2c636059d5f3ba44323921        Czech
-       tr                      f4e72bc32f2c636059d5f3ba44323921        Turkish
-       se                      f4e72bc32f2c636059d5f3ba44323921        Swedish
-       ro                      f4e72bc32f2c636059d5f3ba44323921        Romanian
-       ch                      f4e72bc32f2c636059d5f3ba44323921        Chinese (Simpl)
-       sk                      f4e72bc32f2c636059d5f3ba44323921        Slovak
-       is                      f4e72bc32f2c636059d5f3ba44323921        Icelandic
-       hr                      f4e72bc32f2c636059d5f3ba44323921        Croatian
-       eu                      f4e72bc32f2c636059d5f3ba44323921        Basque
-       bg                      f4e72bc32f2c636059d5f3ba44323921        Bulgarian
-       br                      f4e72bc32f2c636059d5f3ba44323921        Brazilian Portuguese
-       et                      f4e72bc32f2c636059d5f3ba44323921        Estonian
-       ua                      f4e72bc32f2c636059d5f3ba44323921        Ukrainian
+Overview of missing translations. (UPDATED 18/11 after major change to ll-XML and csh_* language packs)
+Numbers are new labels needing translation (changed labels are not measured)
+
+- dk [Danish]          55
+- de [German]          9
+- no [Norwegian]       57
+- it [Italian]         9
+- fr [French]          36
+- es [Spanish]         63
+- nl [Dutch]           9
+- cz [Czech]           9
+- pl [Polish]          9
+- si [Slovenian]       90
+- fi [Finnish]         9
+- tr [Turkish]         9
+- se [Swedish]         9
+- pt [Portuguese]      136
+- ru [Russian]         79
+- ro [Romanian]                74
+- ch [Chinese (Simpl)] 282
+- sk [Slovak]          188
+- lt [Lithuanian]      142
+- is [Icelandic]       624
+- hr [Croatian]                121
+- hu [Hungarian]       9
+- gl [Greenlandic]     1031
+- th [Thai]                    141
+- gr [Greek]           1262
+- hk [Chinese (Trad)]  168
+- eu [Basque]          938
+- bg [Bulgarian]       319
+- br [Brazilian Portuguese]    15
+- et [Estonian]                243
+- ar [Arabic]          691
+- he [Hebrew]          153
+- ua [Ukrainian]       662
+- lv [Latvian]         307
+- jp [Japanese]                1261
+- vn [Vietnamese]      1245
+- ca [Catalan]         1262
+- ba [Bosnian]         141
+- kr [Korean]          1262