Added more comments, $Id$ keywords etc for the whole core of TYPO3.
[Packages/TYPO3.CMS.git] / TODO.txt
1 *****************
2 TODO LIST
3 *****************
4
5 General:
6 - BUG: Row-highlighting for both Page and Folder trees are not stable enough.
7 - BUG: when editing records from Web>View the palette will not show properly in the topframe!
8 - BUG: Email forms wizard: "Checked: " for checkboxes does not work!
9 - BUG: CSM disappears too fast in MSIE4 (does not register the width of layer?)
10 - BUG: is_executable on windows does not exist/work/make sense.
11 - BUG: "if (count($fieldArr)) -> t3lib_page.php, ln. 270"
12 - BUG: File>List , list-frame: Click menu does NOT work in Mozilla! cannot find the bug!
13 - BUG: (Not) using "rawurlencode" in links (breaks when spaces/special chars are in either dirname or filename):
14   - cImage... (see Rene Fritz report)
15   - RTE images break
16   - RTE drag'n'drop WORKS!
17   - RTE links break.
18   - thumbnails display break.
19   - attachment of records break.
20   - CHECK: header links in content elements?
21 - CHECK: What is the number of supported page levels? 20 or 100?
22 - CHECK: possible XSS problem with alt_mod_frameset.php taking parameters for scripts to display in frames.
23 - Convert selecting of filemounts from GROUP selector to a selectorbox.
24 - Option: Turn of "onBlur" in backend (Message-ID: <001801c2a28c$bb020c70$963afea9@bla8kdvxpl8glk>)
25 - Option: Frameset modules without the "border" frame and therefore adjustable freely.
26 - Feature: "admin" can click a button which wipes out all record-lockings. (Message-Id: <200301281752.23246.mundaun@gmx.ch>)
27 - 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)
28 - Feature: Web >plugins -> to be a main module where people can place cmodules for their extension.
29
30 TCEmain:
31 - Commenting of the class.
32 - Charset:
33         - Currently the upper/lower case conversion converts danish/german letters as if they were iso-8859-1. This will be a problem if other charsets are used. What to do?
34         - Note: No charset conversion is done in TCEmain. It is expected that the content enters TCEmain in the charset of the backend in general.
35 - FEATURES:
36         - Support for submitting dates in non-UNIX-time format (eg. DD-MM-YYYY) (is there a PHP function to which you can directly pass something like "DD-MM-YYYY" and then it will clean it all up? Or convert?
37         - Recyclebin: If an item is deleted and is NOT in the recyclebin, then move it (all pages to the root of) the closest recyclebin (in a rootline pid AND with write permissions) in the pagetree. If that is not present, then delete normally. If you delete anything in a recycle bin, it's totally deleted.
38         - Implement field evaluation in TCEmain: Evaluate min/max? Checking references exists?
39         - Implement a feature, "max_number_of_records_in_pid" which means the TCEmain will check if a number of records of a kind has been exceeded for the page.
40         - "Pattern-control" for relation fields? (See "APPENDIX: PATTERN-control") Probably create an API by which you can do your own evaluating, return true/false, return an error message.
41         - pre and post processing by user functions of the data? (Message-ID: <C018FF617C61AB4588D15494126A5C0F23E431@Soulman.hanno-kirchhoff.de>) 
42         - "Tree-tables": Adding TCA-feature which can describe a field being a internal_pid for the table so tables can be listed as a tree in Web>List (and for TCEmain this means that copying an element). "parent" items. Rene needs this for "categories". See (Message-Id: <200212201257.24705.r.fritz@colorcube.de>)
43         - 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. 
44         - "child records" - records which MUST be related to another table - and will be moved along with the main record if moved.
45         - Implement *real* record locking?
46                 - Configure on a per-table basis
47                         - For instance, the TCEforms will render non-editable fields for ordinary users, while editable fields for "admin" users still
48                         - Should the check be done only in TCEforms - or also in TCEmain?
49         - 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)
50                 - Could be solved by PRE-processing of content in user functions!
51         - Implement "last_edited_by" field saving the BE-user UID just like tstamps are... (JH asked)
52         - Transformation API: Implement the possibility of custom to/from transformations for the "user" type (or any field?) 
53                 - Custom transformations for RTE fields/API?
54         - Selector box type: 
55                 - MM support for strings
56         - Support for MM-records which does NOT get deleted, but is kept... and then support for having data in those!!
57         - Support that the content of a single field can be stored in an external file instead.
58         - Support that a list of fields can be stored in an external XML file instead.
59 - VERSIONING:
60         - Swapping API: A page can be copied for making modifications. Afterwards swapped with the original (page/tt_content uids preserved if possible). The original page is stored in archive of some kind.
61 - LOGGING: 
62         - Finish the logging of TCEmain actions (delete/copy) + finally define the API to the "sys_log" table!
63 - CLEAN_UP: 
64         - Implement kill/restore of "deleted" records.
65         - Remove references to records when deleting totally (or also deleted-to-recycler records? Maybe "deleted-to-recycler" references are important to remove in order to make sure "recycler" records are not selected!) (refs to MM for both tables/files)
66 - PERMISSIONS: 
67         - Permission management on selector box/radio button values 
68                 - so certain "CType" / "Insert plugin" / "FlexForm datatypes" values could be blocked
69                 - 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.
70         - Permission management for translations?
71         - Permissions on record-level
72         - CHECK: That permissions are properly evaluated (especially for moving content?)
73         - Security in tcemain: Uploaded/Attached files are allowed to be in ONLY a relative path OR in the "lockDir"!
74 - BUG: 
75         - if a file is uploaded (directly in the form) and there is an upper limit to the number of files which is then exceeded, the uploaded file is STILL copied to the upload folder and will thus be listed as "Files with no references at all (delete them!):"
76         - TCEmain: If there is a comma in the filename supplied as an uploaded file it will confuse the handling of files because the comma is also used to split the filename from each other. (29/04/2003). This is a problem with Inter-Photo Netprint where files uploaded by FTP with comma in the name will not be attached as they should. I think the solution should be found in TCEmain so any filename can be supplied as uploaded.
77         - CHECK: hideAtCopy - does it work??
78         - CHECK: copyAfterDuplFields - check it (tt_content).
79 - RELATED: DBint/admin, logging-display, TCEforms, Web>List
80 - IDEA: check for potential dangerous php-extension
81 - Multiple DBs:
82         - The ability to configure "any" table to be stored in another database. 
83         - 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)
84         - Affects: Basically anywhere records are selected -> requires a check of $TCA[ctrl] for the table first before the query is done!
85         - Maybe this feature should wait till DBAL is implemented anyways.
86
87
88 TCEmain/TCEforms for FlexForms:
89 - Affects: "lowlevel" ext/DBint , "impexp" extension. Must/Should be extended.
90 - Permissions handled per-field in FlexForms?
91 - What to do if data structure was not found? (Both TCEmain, TCEforms, templavoila_pi1, t3lib_transferdata) 
92 - TCEmain features:
93         - caching of references/files in meta data (for analysis tools)?
94         - mapping values to a plain-text search field(s)  
95         - Offering API functions for add/delete/move/copy
96         - Cleaning the original data in field since this may have an invalid structure if the data structure has changed in the meantime.
97 - TCEforms: 
98         - 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).
99         - Visual interface for forms, DHTML for sheets etc, various sheet modes, language menu form.
100         - Fix the JavaScript in TCEform which keeps track of REG/CM images and required values etc. These things does not work for flex forms yet!
101         - Add many "types" of sections at a time when "add new"
102         - 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...)
103                 - 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")
104         - Displaying partial branch of the data structure (and to a certain level)
105         
106                 
107 TCEforms:
108 - Support for other backend charsets / right-aligned charsets!?
109 - FEATURES:
110         - GENERAL:
111                 - Customized display of a field, possibly passing an array with code that should be displayed and then people can themselves put it together from PHP?
112                 - Ability to set up user functions for pre and post processing of the data?
113                 - API for adding JS-functions to the onchange-event.
114                 - Make STORAGE_FOLDERs a LIST of pages - not just one page (still the first page could be the default while other pages will be where stuff is selected from).
115         - SELECT type:
116                 - select a filepath as a source of the items you can add to the box (single/multiple) without copying the files of course.
117                 - Ability to see icon/image from record of selected value in the selector box.
118                 - IFRAME alternative for the selectorboxes where a HTML view can be shown. Possibly having an external script show the content which would be useful for display of tree-tables.
119                 - Reflect possible tree-structure for records in Select/Items list
120                 - a way to grant read for the selectors without displaying the storagefolder in the treeview?
121                 - move one up / one down buttons for the list (also for GROUP element)
122                 - Ability to move items when selecting/deselecting them. Or ability to gray out elements in the right list if selected.
123                 - CHECK: "multiple" feature, single, sorted and non-sorted selections.
124                 - Having elements ordered by the "list-order" of the selection selector must be done in JS (or tcemain)
125                 - making copies of select fields etc - check that remapped records are OK treated (with foreign/neg_foreign + free string values)
126                 - 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!)]
127                 - Exclude field selection better, in a tree?
128                 - set the width of the selector field.
129         - GROUP type:
130                 - [file] allow the selection of files from the system to be added as REFERENCES, not copied! (Message-ID: <003f01c23503$8cdd69d0$55333bd4@comtech>, + notify "illuminatus")
131                 - In the thumbnail list add the Edit and view icons as in the good old days.
132                 - BUG: By the way, isn't there a bug in the listing of the thumbnails of records?
133                 - Nested records:
134                   - Group-fields of DB-type could be made to actually SHOW the records it contains in the very same form! Possibly with Add/Delete facilities.
135                   - See JH mail: Message-ID: <C018FF617C61AB4588D15494126A5C0F23E410@Soulman.hanno-kirchhoff.de>
136                 - IFRAME alternative for Element Browser.
137                 - Like in CB: Copy image/reference from a record to clipboard, then insert that file/reference in another record again (Element Browser change).
138         - INPUT type:
139                 - 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.
140         - ? type:
141                 - "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>) 
142         - TRANSLATION:
143                 - Concept for translation of other language versions simultaneously? (Showing the default/any language side-by-side?)
144                 - Would require UTF-8 display in backend.
145                 - Support for "original/translation" relationships: 
146                   - The idea is that a) one field from a record is configured in [ctrl] to hold the sys_language (0=default, x=translation of default) value AND b) another field is configured to keep a reference back to the original element (for the translated records)
147                     - If the record is "default" then ALL fields are shown.
148                     - If the record is "translated" then SOME fields are disabled for editing (as configured) BUT shown in the form for information (the value from the original).
149                         - When the record is selected for display or whatever an API call can fetch the original record and take the value of those configured fields and overlay in the translation (exactly like we do with page_overlay_records)
150                         - The core support basically is, that TCEforms automatically understands to disable the fields if needed and display the original content.
151                         - see Message-ID: <200205300155190552.08F5563C@smtp.worldonline.dk>, Message-ID: <mailman.1055945641.8348.typo3-english@lists.netfielders.de>
152         - DISPLAY_CONDITIONS:
153                 - "readonly" flag, or user group dependant. See "Message-Id: <200210241441.50295.r.fritz@colorcube.de>"
154 - BUGS:
155         - Ask to save record when you want to add a category with the "Plus" icon.
156         - CHECK: ###STORAGE_PID### incorrectly calculated?
157 - DONE?: Support for label for main palette: (Rene: Message-Id: <200210011646.10346.r.fritz@colorcube.de>)
158
159 Charset:
160
161 - checking (for XML) if there is "character data" in a string?
162
163 TCEforms/RTE API:
164 [Dominic Brander and Martin Schmidt has shown interest in the ekit Java RTE and may work on that.]
165 - API for RTE's (plus converting current RTE to using that!)
166   - review of class.t3lib_parsehtml_proc.php
167 - Make TYPO3 ready to accept alternative RTE made in Java. Needs data exchange to (config+data)/from (data) applet.
168 - Implement Ekit as Proof-of-concept: http://www.hexidec.com/ekit.php
169 - Implement another ActiveX editor as Proof-of-concept.
170
171 Element Browser:
172 - Support for DAM
173 - Support for browsing custom category-trees (passed by some PHP script)
174 - Support for deleting files in the listing there.
175 - Disable thumbnail option for faster display.
176 - Element Browser configurable a) without the page tree but hardcoded to specific PID, b) just default PID (possibly able to override from TSconfig)
177 - 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?)
178 - Ability to insert images when their info page (larger thumbnail) is displayed. Maybe a small + (plus) icon would do. (Notify Patrick Roeder)
179 - Some quick-lookup feature (like we have on TER)
180
181 Wizards:
182 - Finish the colorpicker! Some other person can be in charge of this (See "APPENDIX: Colorpicker")
183 - Add wizard icon to TSconfig and Setup/Constants fields for immediate syntax highlighting (in popup window)
184 - 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). 
185
186 Interface:
187 - Icons (see Bugs/Additions folder)
188 - 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>)
189 - 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>)
190 - Review the template/stylesheet interface. Document it -> Skinning API. (also how to substitute icons from gfx/ etc.)
191 - Ability to create another Main/sub module structure in the backend (Daniel H: Message-ID: <BAB9A920.E95D%daniel@typo3.com>)
192         - Change order, level, title, icon.
193         - Use User TSconfig... and allow someone to create an extension to visually create a TSconfig output
194         - See DHs mail: Message-ID: <mailman.1060763871.6396.typo3-metadev@lists.netfielders.de>
195         - Links could be going directly to the function menus inside modules as well!
196
197 Login:
198 - admin-only flag in TYPO3_CONF_VARS so only administrators can log in/be authenticated.
199 - New login form. (see mailbox)
200         
201 Context Sensitive Menus (CSM):
202 - Click menu does not work in task-center/weblist
203 - Click menu does not work in Opera.
204
205 Context Sensitive Help (CSH):
206 - Add multimedia?
207
208 WEB main module/page tree:
209 - The "Page Stop" flag, clicking the red "+" simply makes that point the NEW root in the tree frame (temporarily of course...), see JHs mail: Message-ID: <C018FF617C61AB4588D15494126A5C0F1F660B@Soulman.hanno-kirchhoff.de>
210 - Option: For a frameset module, register the ID per sub-module, not just globally (see JH mail: Message-ID: <C018FF617C61AB4588D15494126A5C0F1F67AB@Soulman.hanno-kirchhoff.de>)
211
212 Web>List:
213 - Add "New" to the clickmenu of eg. "be_users" (non-sorted items) when you want to copy a user into the list.
214 - Add email function where you can 0) send email to single records email field, 1) all records on the clipboard, 2) all emails in a list of shown records, 3) all records in the PID. By emailing you can select to receive a copy yourself. Backend user must have name/email configured as from/reply-to/return-path information. Mails can be sent Bcc,CC or seperately. Can be used for lightweight newsletter feature! Maybe implement through some API to the Web>List module.
215 - Page-tree-stop: Click on red "+" brings forth some kind of browser (list of pages, browseable, Web>List module feature?)
216 - Add flag to TCA/[interface] which keeps a table from being listed in the list module. Probably an option which allows the display for admin-users.
217 - Check that permissions are respected for the buttons in the control-panel of the List module
218 - Why is web>list slow on new typo3.org?
219 - Page TSconfig option: Only to select the table-headers for display (with record count), and only the extended view will show the records inside.
220 - 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?
221 - Support for tree-tables (that can be browsed).
222 - 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).
223 - BUG: no label when copying an item into the Web>List module...
224 - FlexForm tree view / editing: 
225         - 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!
226                 - 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!
227
228                 
229 File>List:
230 - 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.
231
232 History/Undo:
233 - Must present a page/content element view, so a page with content elements can be restored as a whole 
234 - Undo must be able to restore attached files as well 
235 - Should be possible to disable for certain tables (can it be done already with TSconfig?)
236 - Delete saved states (and save whole record content). 
237 - Need to implement the diff-feature for windows as well (that is set configuration)
238   
239 LDAP support:
240 - See "APPENDIX: LDAP"
241
242 DBAL:
243 - 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.
244 - See "APPENDIX: DBAL" for Kaspers internal notes on the subject.
245 - "TCEmain/Multiple DBs" as well.
246 - 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.
247
248 EM:
249 - Code commenting
250 - Display: Adding "back" buttons a few places.
251 - Display: review-flag + link to review - cannot be overridden?
252 - 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
253 - Display: After import, link to Install/Details.
254 - Display: Clean up the red errors: Major / Minor errors, and make sure it does not report non-errors.
255 - Display: Warning for extension of same classes?
256 - Display: Better filtering, quicker listing
257 - Feature: Specify preferred order of certain extensions.
258 - Feature: Change order of loaded extensions
259 - Feature: Dependencies includes minimum/max-version (Typo3, PHP, PHP-extensions, T3extensions)
260 - Feature: EM suggest clear-cache af scripts?
261 - Feature: New category, "templates"
262 - Feature: New review state: security-screened (light review, not quality oriented)
263 - Install: Select other repository URLS in selector box?
264 - Install: Extensions which can point the import/export to a directory with import-files.
265 - 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)
266 - Install: Upgrade multiple extensions at a time.
267 - Install: Upgrade single extension without getting full list from TER
268 - Install: Import from online rep: search freetext, enter extension key etc...
269 - Install: Getting from TER only already installed extensions.
270 - Install: Flag: "Import ext"; "Show non-secure extensions" (show ALL ext., not only reviewed ones)
271 - Install: Update button for an extension in the details view.
272 - Install: After upload of extension then we should return to the "Information" view, not "Upload"
273 - Install: At upgrade: That an extension can display the total changelog between the formerly installed version and the new one.
274 - Install: Configuration for EM: Request most recent translations by default?
275 - Upload: emconf.php should have the md5-part updated when upload to TER
276 - CHECK: flag in [EXT] about if local/global extensions can be updated. (does it work?)
277 - CHECK: Are single quotes accepted when writing the "conf.php" files?
278 - CHECK: Better failure-tolerance when "fatal errors" occur in ext_localconf/ext_tables.php files!?
279 - CHECK: Can Install Tool bypass including ext_localconf/ext_tables if there are errors in them?
280 - 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)
281 - BUG: Fix memory consumption problem.
282 - BUG: backend shortcut links to EM pages does not carry the edit-file information. They should.
283 - BUG: Clear cache files should remove ALL "temp_CACHED_*" files in typo3conf/ (not just the current two)
284 - BUG: detection of single quotes in XCLASS and CONF.PHP file cases (and wherever a regex searches for code snippets!). 
285 - 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.
286 - DOC: "Extension API" manual.sxw!
287 - Check mailbox for more... ?
288 - Related: The KickStarter Wizard, in particular a) cleaner code output, b) merging updates.
289
290
291 The REGEX-{} problem:
292 - 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>)
293   
294 Install/Servers:
295 - FIX: Check safe_mode? Check open_base_dir? (Message-ID: <B9B8E356.1CE0%typo3@ilveneto.net>)
296 - 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. 
297 - 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>)
298 - CHECK: MD5 problem on Apache/Windows (Message-ID: <001901c26aeb$99db4c60$a9695651@NIGELJ>)
299 - CHECK: Security: Can HTTP_SERVER_VARS be overridden from URL if global vars are enabled???
300 - [Ask Michael Stucki for an overview of bugs...?]
301 - TYPO3_PORT bug (Message-ID: <005f01c2df3f$4006db00$0100a8c0@knoell>)
302 - 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)
303         -> Renes t3lib_exec class useful here?
304
305 BE Language:
306 - There are a few mails in the Translations mail folder. These files contains some translations which must be integrated manually...
307
308 Filepermissions of source:
309 - Test that these permissions work OK:
310   - chmod 555 typo3_src/ -R
311   - cd typo3_src/typo3/
312   - chmod 755 ext/
313
314
315
316 **************************
317 DOCUMENTATION TODO list
318 **************************
319 Extensions:
320 - Document how to make "static_template_files" in an extension (Example: How to make a standard templates in extensions to TYPO3) => Rene Fritz doing that?
321
322
323
324
325
326
327 *****************
328 NOTES
329 *****************
330 - Undo/Redo behaviour strange?  => This bug report turned out to be about frontend caching: If you saved a value and quickly after (probably within a second) pressed "Undo" button, then the (browser)cached content would be shown. It was obvious because the sys_history table WAS updated, only the form wasnt.
331
332
333
334   
335 ******************************************
336 APPENDIX 1: CLEANING UP FOR TYPO3 3.6.0
337 ******************************************
338 Cleaning for 3.6 involves:
339 - XHTML compliance
340 - " to '
341 - Commented functions
342
343 1: Add comments
344  * 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()       {       //    "
345 2: Write comments, organize them, add sections etc. (search [type])
346 2a: Set "@access private"
347 3: double to single quote (check for "\n")
348 4: XHTML
349
350
351 Status 27/10 (TYPO3 Core + extensions "cms" and "lang" in sysext/ (but without ext/)):
352 - 2000 @param and @return tags in 800 functions still needs commenting (3800 tags in 1400 functions has already been done)
353 - 50 scripts still needs cleaning for XHTML, comments and single-quotes
354
355 ---------------------------------------------------------------
356 NOTES ABOUT WHICH SCRIPTS HAS BEEN CLEANED AND WHICH REMAINS:
357 ---------------------------------------------------------------
358 Finished (XHTML, quotes, comments, revised-note), XQCR:
359 (Indented scripts are still missing clean-up)
360
361 t3lib________________________________________:
362 XQCR: t3lib/class.t3lib_admin.php
363 XQCR: t3lib/class.t3lib_arraybrowser.php
364 -QCR: t3lib/class.t3lib_basicfilefunc.php
365 XQCR: t3lib/class.t3lib_bedisplaylog.php
366 XQCR: t3lib/class.t3lib_befunc.php
367 XQCR: t3lib/class.t3lib_beuserauth.php
368 XQCR: t3lib/class.t3lib_browsetree.php
369 XQCR: t3lib/class.t3lib_clipboard.php
370 -QC-: t3lib/class.t3lib_cs.php
371                 t3lib/class.t3lib_diff.php
372 XQCR: t3lib/class.t3lib_div.php
373                 t3lib/class.t3lib_dmailer.php
374                 t3lib/class.t3lib_exec.php              [Rene]
375                 t3lib/class.t3lib_extfilefunc.php
376 -QCR: t3lib/class.t3lib_extmgm.php
377 -QCR: t3lib/class.t3lib_extobjbase.php
378                 t3lib/class.t3lib_foldertree.php
379 -QCR: t3lib/class.t3lib_formmail.php
380                 t3lib/class.t3lib_fullsearch.php
381                 t3lib/class.t3lib_htmlmail.php
382 XQCR: t3lib/class.t3lib_iconworks.php
383                 t3lib/class.t3lib_install.php
384 -QCR: t3lib/class.t3lib_loaddbgroup.php
385 -QCR: t3lib/class.t3lib_loadmodules.php
386 -QCR: t3lib/class.t3lib_matchcondition.php
387                 t3lib/class.t3lib_modsettings.php       [Rene]
388 XQCR: t3lib/class.t3lib_page.php
389                 t3lib/class.t3lib_pagetree.php
390 XQCR: t3lib/class.t3lib_parsehtml.php
391                 a.Q..: t3lib/class.t3lib_parsehtml_proc.php (45)
392                 t3lib/class.t3lib_positionmap.php
393                 t3lib/class.t3lib_querygenerator.php
394 -QCR: t3lib/class.t3lib_readmail.php
395 XQCR: t3lib/class.t3lib_recordlist.php
396 -QCR: t3lib/class.t3lib_scbase.php
397 -QCR: t3lib/class.t3lib_stdgraphic.php
398                 t3lib/class.t3lib_superadmin.php
399                 t3lib/class.t3lib_svbase.php            [Rene]
400 -QCR: t3lib/class.t3lib_tceforms.php
401                 t3lib/class.t3lib_tcemain.php
402 XQCR: t3lib/class.t3lib_timetrack.php
403 -QCR: t3lib/class.t3lib_transferdata.php
404                 t3lib/class.t3lib_treeview.php
405 XQCR: t3lib/class.t3lib_tsfebeuserauth.php
406 -QCR: t3lib/class.t3lib_tsparser.php
407                 t3lib/class.t3lib_tsparser_ext.php
408                 t3lib/class.t3lib_tsstyleconfig.php
409 -QCR: t3lib/class.t3lib_tstemplate.php
410 XQCR: t3lib/class.t3lib_userauth.php
411 XQCR: t3lib/class.t3lib_userauthgroup.php
412 -QCR: t3lib/class.t3lib_xml.php
413
414 -QCR: t3lib/config_default.php
415 -QCR: t3lib/thumbs.php
416 XQCR: template.php
417 -QCR: t3lib/stddb/load_ext_tables.php
418 -QCR: t3lib/stddb/tables.php
419 -QCR: t3lib/stddb/tbl_be.php
420
421 cms_______________________________________:
422 XQCR: tslib/class.tslib_content.php
423 XQCR: tslib/class.tslib_fe.php
424 -QCR: tslib/class.tslib_fetce.php
425 -QCR: tslib/class.tslib_feuserauth.php
426 -QCR: tslib/class.tslib_gifbuilder.php
427 XQCR: tslib/class.tslib_menu.php
428 XQCR: tslib/class.tslib_pagegen.php
429 XQCR: tslib/class.tslib_pibase.php
430 XQC-: tslib/class.tslib_search.php
431 XQCR: tslib/media/scripts/example_callfunction.php
432 XQCR: tslib/media/scripts/example_itemArrayProcFunc.php
433 XQCR: tslib/media/scripts/example_keepRollover.php
434 XQ-R: tslib/media/scripts/example_languageMenu.php
435 XQCR: tslib/media/scripts/example_typolinkpop.php
436 XQCR: tslib/media/scripts/fe_adminLib.inc
437 XQ-R: tslib/media/scripts/freesite_dummy_page_menu.php
438 XQCR: tslib/media/scripts/gmenu_foldout.php
439 XQCR: tslib/media/scripts/gmenu_layers.php
440 -QCR: tslib/media/scripts/makeMenu_datedirectory.inc
441 -QCR: tslib/media/scripts/makeMenu_keywords_updated.inc
442 XQCR: tslib/media/scripts/plaintextLib.inc
443 XQCR: tslib/media/scripts/postit.inc
444 ----: tslib/media/scripts/testscript.inc
445 ----: tslib/media/scripts/testscript_EXT.php
446 ----: tslib/media/scripts/testscript_INT.php
447 XQCR: tslib/media/scripts/tmenu_layers.php
448 XQCR: tslib/media/scripts/wapversionLib.inc
449 XQCR: tslib/media/scripts/xmlversionLib.inc
450 -Q-R: tslib/index_ts.php
451 -Q-R: tslib/pagegen.php
452 -Q-.: tslib/publish.php
453 .QCR: tslib/showpic.php
454 XQCR: web_info/class.tx_cms_webinfo.php
455
456 lang___________________________________________:
457 XQCR: lang.php
458
459
460
461 typo3___________________________________________:
462 XQCR: alt_clickmenu.php
463 XQCR: alt_db_navframe.php
464                 alt_doc.php             TODO: Check "redirect" GPvar for XSS hole!?
465                 alt_doc_nodoc.php
466 XQCR: alt_file_navframe.php
467 XQCR: alt_intro.php
468 XQCR: alt_main.php
469 XQCR: alt_menu.php
470 XQCR: alt_menu_sel.php
471 XQCR: alt_mod_frameset.php
472                 alt_palette.php
473 XQCR: alt_shortcut.php
474 XQCR: alt_toplogo.php
475 XQCR: alt_topmenu_dummy.php
476                 browse_links.php
477                 browser.php
478 XQCR: class.alt_menu_functions.inc
479                 class.db_layout.inc
480                 class.db_list.inc
481                 class.db_list_extra.inc
482 XQCR: class.file_list.inc
483                 class.show_rechis.inc
484                 db_layout.php
485                 db_list.php
486 XQCR: db_new.php
487                 db_new_content_el.php
488 default.htm
489 default.html
490 XQCR: dummy.php
491 XQCR: file_edit.php
492 XQCR: file_list.php
493                 file_newfolder.php
494                 file_rename.php
495                 file_upload.php
496                 index.php               TODO: Check "redirect" GPvar for XSS hole!?
497 -QC-:   index_re.php
498 -Q-R: init.php
499 XQCR: listframe_loader.php
500                 login_frameset.php
501 -QC-:   logout.php              TODO: Check "redirect" GPvar for XSS hole!?
502                 move_el.php
503                 rte_cleaner.php
504                 rte_select_image.php
505                 rte_user.php
506                 show_item.php
507 XQCR: show_rechis.php
508                 status_file.php
509 -QCR:   tce_db.php
510 -QCR: tce_file.php
511 XQCR: template.php
512 XQCR:   view_help.php
513                 wizard_add.php
514                 wizard_colorpicker.php          [Matthias]
515                 wizard_edit.php
516                 wizard_forms.php
517                 wizard_list.php
518                 wizard_rte.php
519                 wizard_table.php
520                 wizard_tsconfig.php
521
522
523 XQCR: mod/help/about/index.php:         TODO: Modernize content
524                 mod/tools/em/index.php
525 XQCR: mod/web/info/index.php
526 XQCR: mod/web/func/index.php
527                 mod/web/perm/index.php
528
529   
530 *******************
531 APPENDIX 2: XHTML
532 *******************
533 Overview of implications before implementation:
534 - UTF-8 encoding is in fact expected by XML! So the real charset must be set
535 - Wellformedness: Nesting ok. All img tags must be ended with />
536 - Lowercase for elements and attributes (and everything else...) + stylesheet element and attribute names.
537 - All attributes in quotes
538 - Minimized values not allowed: Must do this: selected="selected"
539 - Wrapping scripts and style element contents in CDATA - or alternatively they should have entitites converted.
540 - name/id attribute double
541 - Certain nesting of elements not allowed. Most interesting, <PRE> cannot contain img, big,small,sub,sup ...
542 - Setting charsets may put some special requirements on both XML declaration/ meta-http-equiv. (C.9)
543 - ampersands (and entities in general I think) MUST be converted to an entity reference! (&amps;). This may mean further conversion of non-tag content before output to page. May be related to the charset issue as a whole.
544
545 Related issues:
546 - Charset / encoding issues
547
548 ---------
549 Practical steps for creating XHTML compliance:
550
551 - lowercase: <(td|tr|p|div|table|b|i|u|a)
552 - attributes in lowercase and ""; TYP: bgColor, border=0 cellspacing=0 cellpadding=0, valign=top, onClick, onChange, onSubmit, method="POST", type="Submit"
553 - Ending tags: <br>, <hr>, <input>, <img>
554 - shorthand: checked, selected, multiple, nowrap
555 - href="", action="", src="", onclick= tags: htmlspecialchars() of URLS
556 - <img -> ' alt="" />'    REGEX: <img[^>]*>
557 - FINDING attributes with no quotes:
558 ([[:space:]]+)(class|face|hspace|vspace|rowspan|bgcolor|src|colspan|align|color|valign|border|width|height|cellpadding|cellspacing)=([^[:space:]>"']+)
559
560
561
562
563
564 ******************
565 APPENDIX: Charsets
566 ******************
567 In TYPO3s backend charsets used has traditionally been the the charset of the backend user language. This is of course a big problem since the encoding of content is thus depending on the charset of the user and not of the system
568 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.
569 You set the global charset in a localconf file like this: $TYPO3_CONF_VARS["BE"]["forceCharset"] = "utf-8";
570
571 Here are a few notes:
572 - JavaScript functions to convert cases to upper/lower seemed to work with all letters from any charset. In the old days this was not the case and thus functions in eg. "jsfunc.evalfield.js" compensated. This is now disabled since it is apparently not needed anymore.
573 - PHP Upper/Lowercase - not tested.
574 - When one enters eg. danish letters in a form when the russian charset is used, these letters are converted to HTML entities, eg. "&#248;" - this is NOT changed. The philosophy is that IF anyone needs to use characters outside the range of the used backend character set he should use UTF-8 instead. Theoretically we COULD allow the entities to be shown correctly but we dont for now. Better use the right charset.
575
576
577
578 ******************
579 APPENDIX: LDAP
580 ******************
581 - hash of base-dn skal være cleaned op. Måske prefixe usernames med 10-char hash af base-dn.
582 - 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!!!
583 - Ved record creation: LDAP default group.
584
585 ? Getting info like usergroups, email, name?
586 ? Case-sensitivity of the DN in general?
587 ? DN entering..
588 ! MD5-hashed passwords
589
590 1) AUTO -DN : Array of DN's, searched in order.
591 2) Select dn: User selects the DN he is from.
592 --------------------------
593 So we are looking at two scenarios:
594 1) fe_/be_user records are automatically created when a LDAP authenticated user loggs in. Configurable is: Where it applies (fe/be) and if any additional LDAP info we can get should be mapped to MySQL records (like name, email, address or user-groups uid's)
595 2) fe_/be_user records basically is the same as before (they hold a reference to LDAP user) and authentication is the same, BUT in this case fe_/be_ users are created manually, maybe using a tool of some sort which can look up the whole list of users in LDAP and allow the T3 admin to check off which users to make references to (this would be "Batch create").
596 3) Mapping of ONE typo3 user to MANY LDAP users...
597
598 - 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...)
599
600
601 Also see:
602 - [Kasper] "LDAP" folder in Mailbox 
603
604
605 ********************
606 APPENDIX: DBAL
607 ********************
608 Issues:
609 - Install tool, analysing SQL files, comparing, dumping etc. How? (MetaDatabase, MetaTables)
610 - case-folding?
611 - reserved words (uid!!) Which R-words?
612 - LIMIT. selectLimit(x,x)
613 - mysql_fetch_assoc substitute (seems to be there)
614 - escaping chars with special function!!!
615 - datatypes? Integer not there? LOB's a problem?
616 - Internal functions: AVG, SUM, count
617 - mysql_num_rows() = recordCount()
618 - autoinc. of numbers with GenID()
619 - how about joining?
620 - ALTER TABLE syntax?
621
622 Analysis:
623 - SUPPORT: Core (+ 'cms') will support all DBs, extension MAY support a SUBSET of DBs only.
624 - 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.
625 - 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!
626 - 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...
627 - 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.
628 - 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)
629 - 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 ...)
630 - SQL: Will have to split up LIMIT selects. New escaping in SELECT queries. INSERT/UPDATE from field_arrays + processing, mysql_fetch_assoc() function "pandan"
631
632 API:
633 SELECT: 
634 - Separate LIMIT from the rest. 
635 - JOINS ? Functions like AVG, SUM?
636 - Escaping of search strings
637
638 UPDATE/INSERT:
639 - Array passed to function if not MySQL
640   Function has: possible "autoincrement" field argument; If Oracle, auto-id is handled; If Oracle, BLOB-array is returned for separate insertion.
641
642
643 ORACLE does not allow us to CHANGE existing fields into something else - only create new fields, otherwise we must export/import database.
644
645 Other notes:
646 - Datatypes to use for integers and others? Date/Time not a problem because typo3 uses integers.
647 - AVG, SUM, COUNT - will they be there?
648 - I'll need access to Oracle, MSSQL, PostGres - basically the databases we are going to connect to!!!
649 - JOINS???
650 - 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)!
651
652 180303 / Oracle:
653 - all fields/tablenames must be quoted
654 - a quoted value cannot be inserted into an integerfield!!!
655
656
657 insert... "kasper"
658
659 Related issues: 
660 - LPE: DB/DB sync.
661
662 ORACLE / DB2:
663 - u: db2admin
664 - p: password
665
666 Also see:
667 - [Kasper] "DB Abstraction" folder in Mailbox 
668
669
670 **********************
671 APPENDIX: LPE
672 *********************
673 Syncronization:
674 DB -> DB (1):
675 - Production environment, which can dump configured set of tables to live server database and back. This is controlled from Production env.
676 - 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).
677 - 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.
678 - 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... 
679
680 Req to T3:
681 - 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.
682 - Q's: FTP-functions in php; How to syncronize? MySQL working across databases, connecting to more than one database? 
683
684 DB->HTML
685 - Basically this is an rsync/ftp sync question which requires a set of static files.
686 - 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.
687
688 Two situation:
689 - 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)
690 - Publish static for FTP server. All *.html requests MUST exist. (Purely static, limitations acceptable.)
691
692 A HTML-filename which contains parameters__________:
693  - 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)
694  - Examples:
695 &tt_board_uid=233&cHash=alkdfjlaskdf
696 &tx_mininews_pi1[pointer]=0&tx_mininews_pi1[sword]=asdf&tx_mininews_pi1[mode]=asdf
697 +1/3 length:
698 This_is_my_page.123.1.64WAoaFRW9BXWTlzZ0ow53Dx8PEgASxh9namzMWxYIBDMdGnDx8PEgASxh9namzMWxYIBDMdGn.html
699
700 This_is_my_page.123.1.m5abe83fd83e.html
701 &tt_board_uid=233&blablabla=342&cHash=alkdfjlaskdf
702
703 de dk
704 This_is_my_page.123.1.m5abe83fd83e.html
705 This_is_my_page.123.1.m5edf837afde.html
706
707 Management__________________:
708 - 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)
709 - Clear-page-cache might also clear-page-static files.
710
711 ---------------------------------------
712 General config:        
713     For each page-id:
714         &lang=   (dk|de)
715         &cur=     (Euro/DKK)
716         &type=     (1)
717             2x2 = 4  (here we have some limit applied!)
718
719 MAIN PAGE    &type=  (0|1|2|3)    4*4 = 16
720 - Page 1    
721 - Page 2    
722 - Page 3    (Adresselist):    &tx_address_list[pointer]=    (0|1|2|3|4)    4*5 = 20 pages
723
724 Various______________:
725 - SearchEngine friendly / cachable URLs in board, products, tt_news
726 - "Publish" funktionen brugte images_on_page. Genskab dette.
727
728 THOUGHTS from Dassault work:
729 # WriteToStatic function [Basically the static publishing system] (core feature: Kasper).
730   - writes static file IF simulateStaticDocument uses HTML *without* any parameters
731   - setting a "config.disableStaticCreation = 1" flag can disable it (for conditions situations)
732   - setting a value from PHP function (eg. if a search form needs to submit to the page) can disabled it
733   - registering the filename related to ID [and other parameters] so that "clear page cache" can also remove the file automatically.
734   - Also registeres: a) resources on the page (images/stylesheets), b) GET parameters from M5/B6 encryption.
735   - 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.)
736   - 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).
737   - To create new versions doesn't have to REMOVE the existing! Just overwrite!
738
739 Also see:
740 - [Kasper] "LPE" folder in Mailbox 
741
742
743
744
745 ******************************
746 APPENDIX: Image Processing
747 *****************************
748 Generally we want:
749 - Full PNG main support
750 - Full IM5.x support
751 - Non-ImageMagick version which CAN scale images (with GD/JPG)
752
753 To get rid of ImageMagick totally we need a GD with...:
754 - blur/sharpening
755 - scaling
756 - masking
757 - reduce colors / dithering
758 - jpg quality control
759 - 96 dpi / 72 dpi 
760 - other effects?
761 - Support for many file formats.
762 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).
763
764 Notes:
765 - Consider imageprocessing issues like PNG / GDlib2 / Freetype2 / IM5.4.x  / T1lib
766 - Other options: PHPImLib? GIMP?
767 - Improve Install Tool
768
769 --------------------
770 imagecopymerge
771
772 jonny at sanriowasteland dot net
773 29-Sep-2002 06:36 
774  
775 If you need to merge 2 png's (or  presumably 2 gifs) with different color palettes, I have found this is the function to use.  Just set pct to 99, and you are rocking.  With pct set to 100, or imagecopy for that matter, the palette seems to go wonky.  (It probably just uses the palette of the source image. but don't quote me on that).
776  
777  
778 Also see:
779 - [Kasper] "ImageManipulation" folder in Mailbox 
780
781  
782 ******************************
783 APPENDIX: Idea about "Roles"
784 ******************************
785 This is a few ideas about adding roles to the permission concept of TYPO3:
786 - There could be, say, 4 default roles:  author, editor, administrator, developer
787 - Users can be assigned "membership" of a role (basically a "role" is like a hardcoded "user-group"?)
788 - Like you can configure database fields in TCA to be an "excludeField" you could also configure which ROLES can edit the field.
789 - Possibly each role could assign membership of some groups.
790
791
792 *************************************
793 APPENDIX: Various ideas for extensions
794 *************************************
795 EMAIL publication:
796 - People can publish stuff by sending email to certain adresse piping the content into database.
797 - This could also be upload of files, eg. a word document to a place in fileadmin/ (such a document could contain information inside which was displayed on the website).
798 - See mail from DH, subject; "Last day for feature requests" Message-ID: <200202181821120933.01CA5B9F@smtp.worldonline.dk>
799
800 IMPORT WEBSITE:
801 - Import external website! (Rene's extension). Includes some crawler feature (locally og external url)
802
803 SITE-CRAWLER:
804 - A crawler which crawls either local or external site, invoked from a) backend or b) cron-script.
805 - Used for 1) Indexed Search, 2) External website import, 3) Just walking through a site for indexing/caching all pages.
806 - Trying to define a sitemap/menu structure + find "content" on page
807   - maybe with some kind of "hint" facility to tell what html-elements wraps content or maybe for each page visually pick out the content area: OR this could be done by the TemplaVoila tool?
808
809 BACKEND TOOLS:
810 - Global search and replace of records (Rene F?)
811 - Export the complete typo3 site/database, in a big file like mycompletesite.t3d
812   
813
814 **************************************
815 APPENDIX: PATTERN-control
816 **************************************
817 - Specify a pattern of allowed/required values.
818 - Those values are on the basic level just "table:uids". On the next level it would also set requirements on one or more field values inside!
819 - How can this be done?
820 - 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...?
821
822
823
824 **************************************
825 Rapport of "deleted"-check in typoscripts (190500) 
826 **************************************
827 TYPO3: 
828 - "deleted"-field must be set manually in userauth for user-tables!
829 Hardcoding: 
830 - "pages" in load_tree.php 
831 - "sys_filemounts" in userauth_group 
832 - "user-group tables" in userauth_groups 
833 - "pages" in ti_inc.php 
834 - "pages" in transferdata.php 
835
836 TypoScript: 
837 - sys_domain is NOT checked for deleted in "page.php" 
838 - getForeignRecords() (page.php) does not check for deleted!!! (this is even not used any more!! 
839 Hardcoding: 
840 - "pages" in page.php 
841 - "pages" in t_search.php 
842 - "pages" in index_ts.php (caching) 
843 - "sys_template" in t_template.php 
844 - "fe_groups" in index_ts.php 
845
846
847 **************************************
848 Bugs, considerations, notes
849 **************************************
850 - mail() hangs in 90 second (approx) if computer is not on the net! (deliver to mail-server)
851 - REWRITE of files when they already exists? shortMD5 is guilty?
852 - "Fields not properly updated:" - error: Varchar(xx) cannot included spaces AFTER the last character and therefore TYPO3 interface reports an error. Solve this error by setting "eval" to "trim" in $TCA for inputfields of the type VARCHAR. 
853 - mysql_query() function should not be used I think as this queries the current database. mysql() should be used instead. 
854 - 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. 
855 - PDF-files over 600 k are not rendered by ImageMagick. Less than 270 is! How come and is this true. Number of pages? 
856 - When GDlib is disabled it can be very confusing that record icons does not change their look according to hidden/starttime/endtime etc...
857
858
859
860 **************************************
861 Innovation, brainstorming for future
862 **************************************
863 - TSconfig defined through FlexForms?
864 - Drop tt_content for content rendering and let extensions be the sole source of new content element types?
865 - Check sitecore ideas for adding new fields etc.
866 - Backend for PDAs/Lynx