Only changes to function indexes, comments and stripping of trailing whitespace in...
authorKasper Skårhøj <kasper@typo3.org>
Wed, 14 Apr 2004 09:12:47 +0000 (09:12 +0000)
committerKasper Skårhøj <kasper@typo3.org>
Wed, 14 Apr 2004 09:12:47 +0000 (09:12 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@196 709f56b5-9817-0410-a4d7-c38de5d9e867

133 files changed:
CVSreadme.txt
ChangeLog
GPL.txt
LICENSE.txt
TODO.txt
t3lib/README.txt
t3lib/class.gzip_encode.php
t3lib/class.t3lib_admin.php
t3lib/class.t3lib_arraybrowser.php
t3lib/class.t3lib_basicfilefunc.php
t3lib/class.t3lib_bedisplaylog.php
t3lib/class.t3lib_befunc.php
t3lib/class.t3lib_beuserauth.php
t3lib/class.t3lib_browsetree.php
t3lib/class.t3lib_cs.php
t3lib/class.t3lib_diff.php
t3lib/class.t3lib_div.php
t3lib/class.t3lib_dmailer.php
t3lib/class.t3lib_exec.php
t3lib/class.t3lib_extfilefunc.php
t3lib/class.t3lib_extmgm.php
t3lib/class.t3lib_extobjbase.php
t3lib/class.t3lib_foldertree.php
t3lib/class.t3lib_formmail.php
t3lib/class.t3lib_fullsearch.php
t3lib/class.t3lib_htmlmail.php
t3lib/class.t3lib_iconworks.php
t3lib/class.t3lib_loaddbgroup.php
t3lib/class.t3lib_loadmodules.php
t3lib/class.t3lib_matchcondition.php
t3lib/class.t3lib_modsettings.php
t3lib/class.t3lib_pagetree.php
t3lib/class.t3lib_parsehtml.php
t3lib/class.t3lib_parsehtml_proc.php
t3lib/class.t3lib_positionmap.php
t3lib/class.t3lib_querygenerator.php
t3lib/class.t3lib_readmail.php
t3lib/class.t3lib_recordlist.php
t3lib/class.t3lib_rteapi.php
t3lib/class.t3lib_scbase.php
t3lib/class.t3lib_sqlengine.php
t3lib/class.t3lib_stdgraphic.php
t3lib/class.t3lib_superadmin.php
t3lib/class.t3lib_svbase.php
t3lib/class.t3lib_syntaxhl.php
t3lib/class.t3lib_tceforms.php
t3lib/class.t3lib_tcemain.php
t3lib/class.t3lib_timetrack.php
t3lib/class.t3lib_transferdata.php
t3lib/class.t3lib_treeview.php
t3lib/class.t3lib_tsfebeuserauth.php
t3lib/class.t3lib_tsparser.php
t3lib/class.t3lib_tsparser_ext.php
t3lib/class.t3lib_tsstyleconfig.php
t3lib/class.t3lib_tstemplate.php
t3lib/class.t3lib_userauth.php
t3lib/class.t3lib_userauthgroup.php
t3lib/class.t3lib_xml.php
t3lib/jsfunc.evalfield.js
t3lib/jsfunc.menu.js
t3lib/jsfunc.updateform.js
t3lib/jsfunc.validateform.js
t3lib/stddb/tables.php
t3lib/stddb/tbl_be.php
t3lib/thumbs.php
typo3/GPL.txt
typo3/LICENSE.txt
typo3/alt_doc.php
typo3/alt_doc_nodoc.php
typo3/alt_file_navframe.php
typo3/alt_intro.php
typo3/alt_menu.php
typo3/alt_menu_sel.php
typo3/alt_mod_frameset.php
typo3/alt_palette.php
typo3/alt_shortcut.php
typo3/alt_toplogo.php
typo3/alt_topmenu_dummy.php
typo3/browse_links.php
typo3/browser.php
typo3/class.alt_menu_functions.inc
typo3/class.db_list.inc
typo3/class.db_list_extra.inc
typo3/class.file_list.inc
typo3/class.show_rechis.inc
typo3/close.html
typo3/db_list.php
typo3/db_new.php
typo3/dummy.php
typo3/file_edit.php
typo3/file_list.php
typo3/file_newfolder.php
typo3/file_rename.php
typo3/file_upload.php
typo3/index.php
typo3/index_re.php
typo3/init.php
typo3/listframe_loader.php
typo3/login_frameset.php
typo3/logout.php
typo3/md5.js
typo3/mod/web/func/index.php
typo3/mod/web/info/index.php
typo3/mod/web/perm/index.php
typo3/move_el.php
typo3/show_item.php
typo3/show_rechis.php
typo3/stylesheet.css
typo3/sysext/cms/tslib/class.tslib_content.php
typo3/sysext/cms/tslib/class.tslib_fetce.php
typo3/sysext/cms/tslib/class.tslib_gifbuilder.php
typo3/sysext/cms/tslib/class.tslib_pagegen.php
typo3/sysext/cms/tslib/class.tslib_pibase.php
typo3/sysext/cms/tslib/class.tslib_search.php
typo3/sysext/cms/tslib/media/scripts/example_callfunction.php
typo3/sysext/cms/tslib/media/scripts/example_itemArrayProcFunc.php
typo3/sysext/cms/tslib/media/scripts/example_keepRollover.php
typo3/sysext/cms/tslib/media/scripts/example_typolinkpop.php
typo3/sysext/cms/tslib/media/scripts/fe_adminLib.inc
typo3/sysext/cms/tslib/media/scripts/makeMenu_datedirectory.inc
typo3/sysext/cms/tslib/media/scripts/plaintextLib.inc
typo3/tce_db.php
typo3/tce_file.php
typo3/template.php
typo3/view_help.php
typo3/wizard_add.php
typo3/wizard_colorpicker.php
typo3/wizard_edit.php
typo3/wizard_forms.php
typo3/wizard_list.php
typo3/wizard_rte.php
typo3/wizard_table.php
typo3/wizard_tsconfig.php

index c9e90bc..6d0d466 100644 (file)
@@ -5,7 +5,7 @@ checked out source before it will work for you. Follow these guidelines:
 
 
 - Go to the module directory (default is "TYPO3core")
-- Create symlink for tslib:    
+- Create symlink for tslib:
        ln -s typo3/sysext/cms/tslib
 - Go to typo3/ folder:
        cd typo3/
@@ -18,7 +18,7 @@ checked out source before it will work for you. Follow these guidelines:
 - Create two symlinks to fonts:
        ln -s vera.ttf verdana.ttf
        ln -s nimbus.ttf arial.ttf
-       
+
 OR
 
 - Go to the module directory (default is "TYPO3core")
index dc3664b..3e4430b 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,7 +9,7 @@ Fixed bugs in Mount Points / Status:
 - Fixed support for correct MP-vars for any entryLevel number for HMENU
 - Added option to overlay the mount point with the mounted page; This means the mount point gets substituted with the mounted page and not only the subpages of the mounted page. This is called "Overlay" mode. Can be set on a per-mount level (checkbox in the pages record). Only doktypes < 200 can be mounted in overlay mode.
 - Checked consistency of exclude pages/hidden/starttime/endtime and found it to be ok.
-- HMENU special types supported: 
+- HMENU special types supported:
        rootline : full support
        list,directory : Supported, but only if the ID values supplied are in the main rootline of the site. The pages in the menus are allowed to be mount points of course. If the supplied IDs are outside the rootline they will loose their connection to the rootline unless "config.MP_mapRootPoints" is configured to supply some mapping.
        browse : Not supported: Didn't have time to do it, but should be possible to implement technically.
@@ -41,7 +41,7 @@ Fixed bugs in Mount Points / Status:
 
 2004-04-01  Kasper Skårhøj,,,  <kasper@typo3.com>
 
-       * Added full safety for the internal TYPO3 formmail; email addresses in the fields "recipient" and "recipient_copy" are encrypted in the transfer and the "formmail" interface is safe for spam-misuse (since a proper recipient address cannot be forged automatically). 
+       * Added full safety for the internal TYPO3 formmail; email addresses in the fields "recipient" and "recipient_copy" are encrypted in the transfer and the "formmail" interface is safe for spam-misuse (since a proper recipient address cannot be forged automatically).
 !!!If someone are using the "formmail" API from other renderers than the FORM cObject in TypoScript you will have to set the recipient address to the encrypted value by default OR alternatively disabled the check by TYPO3_CONF_VARS[FE][strictFormmail] = FALSE
 
 2004-04-01  Kasper Skårhøj,,,  <kasper@typo3.com>
@@ -86,7 +86,7 @@ Fixed bugs in Mount Points / Status:
 
 2004-03-31  Kasper Skårhøj,,,  <kasper@typo3.com>
 
-       * Fixed an error for form wizard (and others...) where the return URL would be wrong if the wizard was activated right after having saved a new record (would like back to a new record again). 
+       * Fixed an error for form wizard (and others...) where the return URL would be wrong if the wizard was activated right after having saved a new record (would like back to a new record again).
        * Further, I added the option of xmlOutput from the table and form wizards. This option is configured in the wizard setup. There is NO frontend rendering supporting the XML format yet. But it might be very handy (and recommended) for other applications wanting to use the table and formwizards.
 
 2004-03-31  Kasper Skårhøj,,,  <kasper@typo3.com>
@@ -103,8 +103,8 @@ Fixed bugs in Mount Points / Status:
 
 2004-03-24  Kasper Skårhøj,,,  <kasper@typo3.com>
 
-       * Added RTE API and changed the "rte" extension to use that. 
-       * Added t3lib_div::getUserObj() which returns an OBJECT , instead of executing a method call like callUserFunc() does. 
+       * Added RTE API and changed the "rte" extension to use that.
+       * Added t3lib_div::getUserObj() which returns an OBJECT , instead of executing a method call like callUserFunc() does.
 
 2004-03-23  Kasper Skårhøj,,,  <kasper@typo3.com>
 
@@ -151,7 +151,7 @@ Generally:
 
 2004-02-12  Robert Lemke  <rl@robertlemke.de>
 
-       * 
+       *
 Made changes to class.tslib_content.php:
 - added function getAltParam () which acts as an abstraction method / API creating alt and title parameters for img tags
 - added a new TypoScript configuration property: "titleText" (string / stdWrp) similar to "altText". If only altText is specified, it will also be used for the "title" parameter
@@ -164,7 +164,7 @@ Kasper Sk
  - Added processing option to RTE, "proc.plainImageMode"
  - Added options for select and group types in TCA to set the selector box style.
  - Added $altPageId parameter to function linkTP*() in tslib_pibase + pi_list_linkSingle()
- - Changed the order of <?xml> and <!DOCTYPE> in the frontend for XHTML around again. And added an option, "doctypeSwitch" which will reverse the order for those needing that. And finally the "doctype" option fed with a value that is not "xhtml_frames", "xhtml_trans" or "xhtml_strict" will be outputted AS the doctype! 
+ - Changed the order of <?xml> and <!DOCTYPE> in the frontend for XHTML around again. And added an option, "doctypeSwitch" which will reverse the order for those needing that. And finally the "doctype" option fed with a value that is not "xhtml_frames", "xhtml_trans" or "xhtml_strict" will be outputted AS the doctype!
  - Implemented checkbox for show thumbnails in Element browser/file and RTE select image dialog.
  - Implemented pop-up window size selector in link wizard
 
@@ -209,7 +209,7 @@ PHP:
 !!! The global var $AB has been removed (since the "alternative backend" is now THE backend and the classic is totally gone. If you use this var, you can safely expect $AB's value to be TRUE and therefore remove all code which would excute if it was FALSE.
 !!! Removed what looked like unused functions and variables in the backend frameset JavaScript.
 !!! Change db_list_frame and file_list_frame to just "list_frame".
-!!! Cleaned up a lot in the template-class. 
+!!! Cleaned up a lot in the template-class.
 !!! dfw() and rfw() functions must be substituted with $GLOBALS["TBE_TEMPLATE"]->dfw() / ->rfw()
 !!! fw() is highly depreciated (and does NOT wrap strings anymore!)
 !!! if (top.theMenu) top.theMenu.recentuid
diff --git a/GPL.txt b/GPL.txt
index 4fe5df7..b7d4b47 100755 (executable)
--- a/GPL.txt
+++ b/GPL.txt
@@ -1,4 +1,5 @@
-                   GNU GENERAL PUBLIC LICENSE
+
+                       GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.
index 5f24293..3cf0dad 100755 (executable)
@@ -2,7 +2,7 @@
  The TYPO3 licensing conditions
  2003, Kasper Skårhøj (kasper@typo3.com)
  Document version 2.00, 24-02-2003
---------------------------------- 
+---------------------------------
 
 The TYPO3 project is free software under the terms of the GNU General Public License.
 The GNU/GPL license is found in the file GPL.txt
index d62ee39..485c584 100755 (executable)
--- a/TODO.txt
+++ b/TODO.txt
@@ -22,9 +22,9 @@ TCEmain:
        - Implement field evaluation in TCEmain: Evaluate min/max? Checking references exists?
        - 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.
        - "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.
-       - pre and post processing by user functions of the data? (Message-ID: <C018FF617C61AB4588D15494126A5C0F23E431@Soulman.hanno-kirchhoff.de>) 
+       - pre and post processing by user functions of the data? (Message-ID: <C018FF617C61AB4588D15494126A5C0F23E431@Soulman.hanno-kirchhoff.de>)
        - "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>)
-       - 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. 
+       - 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
@@ -33,29 +33,29 @@ 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)
-       - Transformation API: Implement the possibility of custom to/from transformations for the "user" type (or any field?) 
+       - Transformation API: Implement the possibility of custom to/from transformations for the "user" type (or any field?)
                - Custom transformations for RTE fields/API?
-       - Selector box type: 
+       - 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 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.
 - VERSIONING:
        - 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.
-- LOGGING: 
+- LOGGING:
        - Finish the logging of TCEmain actions (delete/copy) + finally define the API to the "sys_log" table!
-- CLEAN_UP: 
+- CLEAN_UP:
        - Implement kill/restore of "deleted" records.
        - 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)
-- PERMISSIONS: 
-       - Permission management on selector box/radio button values 
+- PERMISSIONS:
+       - 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? 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"!
-- BUG: 
+- BUG:
        - 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!):"
        - 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.
        - CHECK: hideAtCopy - does it work??
@@ -68,16 +68,16 @@ TCEmain:
 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) 
+- 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)  
+       - 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: 
+- 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.
        - 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!
@@ -89,8 +89,8 @@ TCEmain/TCEforms for FlexForms:
        - 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!?
 - FEATURES:
@@ -112,7 +112,7 @@ 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")
@@ -127,11 +127,11 @@ TCEforms:
        - 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:
-               - "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>) 
+               - "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>)
        - TRANSLATION:
                - Concept for translation of other language versions simultaneously? (Showing the default/any language side-by-side?)
                - Would require UTF-8 display in backend.
-               - Support for "original/translation" relationships: 
+               - Support for "original/translation" relationships:
                  - 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)
                    - If the record is "default" then ALL fields are shown.
                    - 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).
@@ -170,7 +170,7 @@ 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)
 - 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). 
+- 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:
@@ -200,7 +200,7 @@ Web>List:
 - 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).
 - Support for display of relations: Files, 1-M, M-M
-- FlexForm tree view / editing: 
+- 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?)
@@ -209,8 +209,8 @@ 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.
 
 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 
+- 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)
@@ -242,7 +242,7 @@ 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: 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: 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: Security: Can HTTP_SERVER_VARS be overridden from URL if global vars are enabled???
 - TYPO3_PORT bug (Message-ID: <005f01c2df3f$4006db00$0100a8c0@knoell>)
@@ -273,7 +273,7 @@ NOTES
 
 
 
-  
+
 ******************************************
 APPENDIX 1: CLEANING UP FOR TYPO3 3.6.0
 ******************************************
@@ -512,12 +512,12 @@ OK                skin1/
 OK             static_file_edit/
                sys_action/                     (1/400)
                sys_messages/           (1/450)
-OK             sys_note/               
+OK             sys_note/
                sys_notepad/            (1/130)
 OK             sys_stat/
-               sys_todos/                      (1/1100)                
-OK             sys_workflows/          
-               taskcenter/                     (4/400)                 
+               sys_todos/                      (1/1100)
+OK             sys_workflows/
+               taskcenter/                     (4/400)
                taskcenter_modules/             (1/100)
                taskcenter_recent/              (1/150)
                taskcenter_rootlist/    (1/50)
@@ -534,7 +534,7 @@ OK          ts_language_no/
                tstemplate_info/                (1/450)
                tstemplate_objbrowser/  (1/500)
                tstemplate_styler/              (1/1700)
-OK             tt_address/     
+OK             tt_address/
                tt_board/                               (3/1200)
                tt_calender/                    (1/170)         [testsite...]
                tt_guest/                               (2/350)         [testsite...]
@@ -543,7 +543,7 @@ OK          tt_address/
                tt_products/                    (5/2000)        [testsite...], [? Peter Kuehn]
                tt_rating/                              (3/550)         [testsite...], [Rene F]
                viewpage/                               (2/200)
-XQRC:  wizard_crpages/                 
+XQRC:  wizard_crpages/
 XQRC:  wizard_sortpages/
 
 32,5 K Codes lines....
@@ -614,7 +614,7 @@ Authors: Julle and Kasper.
          - tt_content
          - pages_lang_overlay
 
-- Versioning (for single elements including single "pages" record) is based on 
+- 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!
@@ -651,15 +651,15 @@ Authors: Julle and Kasper.
        - 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: 
+  - copies:
     - What about a page alias?
-- Trunk/Branch: 
+- 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.
@@ -844,15 +844,15 @@ Notes:
 imagecopymerge
 
 jonny at sanriowasteland dot net
-29-Sep-2002 06:36 
+29-Sep-2002 06:36
+
 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).
+
+
 Also see:
-- [Kasper] "ImageManipulation" folder in Mailbox 
+- [Kasper] "ImageManipulation" folder in Mailbox
+
 
 ******************************
 APPENDIX: Idea about "Roles"
 ******************************
@@ -883,7 +883,7 @@ SITE-CRAWLER:
 BACKEND TOOLS:
 - Global search and replace of records (Rene F?)
 - Export the complete typo3 site/database, in a big file like mycompletesite.t3d
-  
+
 
 **************************************
 APPENDIX: PATTERN-control
@@ -896,26 +896,26 @@ APPENDIX: PATTERN-control
 
 
 **************************************
-Rapport of "deleted"-check in typoscripts (190500) 
+Rapport of "deleted"-check in typoscripts (190500)
 **************************************
-TYPO3: 
+TYPO3:
 - "deleted"-field must be set manually in userauth for user-tables!
-Hardcoding: 
-- "pages" in load_tree.php 
-- "sys_filemounts" in userauth_group 
-- "user-group tables" in userauth_groups 
-- "pages" in ti_inc.php 
-- "pages" in transferdata.php 
-
-TypoScript: 
-- sys_domain is NOT checked for deleted in "page.php" 
-- getForeignRecords() (page.php) does not check for deleted!!! (this is even not used any more!! 
-Hardcoding: 
-- "pages" in page.php 
-- "pages" in t_search.php 
-- "pages" in index_ts.php (caching) 
-- "sys_template" in t_template.php 
-- "fe_groups" in index_ts.php 
+Hardcoding:
+- "pages" in load_tree.php
+- "sys_filemounts" in userauth_group
+- "user-group tables" in userauth_groups
+- "pages" in ti_inc.php
+- "pages" in transferdata.php
+
+TypoScript:
+- sys_domain is NOT checked for deleted in "page.php"
+- getForeignRecords() (page.php) does not check for deleted!!! (this is even not used any more!!
+Hardcoding:
+- "pages" in page.php
+- "pages" in t_search.php
+- "pages" in index_ts.php (caching)
+- "sys_template" in t_template.php
+- "fe_groups" in index_ts.php
 
 
 **************************************
@@ -923,10 +923,10 @@ Bugs, considerations, notes
 **************************************
 - mail() hangs in 90 second (approx) if computer is not on the net! (deliver to mail-server)
 - REWRITE of files when they already exists? shortMD5 is guilty?
-- "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. 
-- mysql_query() function should not be used I think as this queries the current database. mysql() should be used instead. 
-- 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? 
+- "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.
+- mysql_query() function should not be used I think as this queries the current database. mysql() should be used instead.
+- 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)
 
index 07727d8..828e91e 100755 (executable)
@@ -1,9 +1,9 @@
 TYPO3 Library
 
 
-The "t3lib/" contains PHP-classes providing core 
-functionalities of TYPO3 such as manipulation the 
-database (tce_main.php), providing user authentication 
+The "t3lib/" contains PHP-classes providing core
+functionalities of TYPO3 such as manipulation the
+database (tce_main.php), providing user authentication
 and datatransfer to the TYPO3 backend to name a few.
 
 Please refer to the document "Inside TYPO3" for details on the TYPO3 core.
index 3b175ff..12dd9e5 100755 (executable)
@@ -9,7 +9,7 @@
 // It will calculate the effects of this class on a page.
 // compression level, cpu time, download time, etc
 
-// Note: this may better for some sites: 
+// Note: this may better for some sites:
 // http://www.remotecommunications.com/apache/mod_gzip/
 // I've read that the above doesn't work with php output.
 
@@ -18,12 +18,12 @@ class gzip_encode {
      * gzip_encode - a class to gzip encode php output
      *
      * By Sandy McArthur, Jr. <Leknor@Leknor.com>
-     * 
+     *
      * Copyright 2001 (c) All Rights Reserved, All Responsibility Yours.
      *
      * This code is released under the GNU LGPL Go read it over here:
      * http://www.gnu.org/copyleft/lesser.html
-     * 
+     *
      * I do make one optional request, I would like an account on or a
      * copy of where this code is used. If that is not possible then
      * an email would be cool.
@@ -203,7 +203,7 @@ class gzip_encode {
 
        echo $gzdata;
     }
-   
+
 
     /*
      * gzip_accepted() - Test headers for Accept-Encoding: gzip
@@ -311,7 +311,7 @@ class gzip_encode {
        ereg("averag(es|e): ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]), ([0-9][.][0-9][0-9]*)", $buffer, $load);
 
        return max((float)$load[2], (float)$load[3], (float)$load[4]);
-    } 
+    }
 }
 
 ?>
\ No newline at end of file
index 6d976ed..26379e3 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Contains a class for evaluation of database integrity according to $TCA
  *
  * $Id$
  *
  *
  *
- *   90: class t3lib_admin 
- *  116:     function genTree($theID, $depthData)      
- *  156:     function lostRecords($pid_list)   
- *  187:     function fixLostRecord($table,$uid)       
- *  208:     function countRecords($pid_list)  
- *  236:     function getGroupFields($mode)    
- *  270:     function getFileFields($uploadfolder)     
- *  293:     function getDBFields($theSearchTable)     
- *  321:     function selectNonEmptyRecordsWithFkeys($fkey_arrays)     
- *  394:     function testFileRefs ()  
- *  445:     function testDBRefs($theArray)    
- *  483:     function whereIsRecordReferenced($searchTable,$id)        
- *  520:     function whereIsFileReferenced($uploadfolder,$filename)   
+ *   90: class t3lib_admin
+ *  116:     function genTree($theID, $depthData)
+ *  156:     function lostRecords($pid_list)
+ *  187:     function fixLostRecord($table,$uid)
+ *  208:     function countRecords($pid_list)
+ *  236:     function getGroupFields($mode)
+ *  270:     function getFileFields($uploadfolder)
+ *  293:     function getDBFields($theSearchTable)
+ *  321:     function selectNonEmptyRecordsWithFkeys($fkey_arrays)
+ *  394:     function testFileRefs ()
+ *  445:     function testDBRefs($theArray)
+ *  483:     function whereIsRecordReferenced($searchTable,$id)
+ *  520:     function whereIsFileReferenced($uploadfolder,$filename)
  *
  * TOTAL FUNCTIONS: 12
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -94,7 +94,7 @@ class t3lib_admin {
                // internal
        var $genTree_idlist = '';       // Will hold the id-list from genTree()
        var $getTree_HTML = '';         // Will hold the HTML-code visualising the tree. genTree()
-       var $backPath='';       
+       var $backPath='';
 
                // internal
        var $checkFileRefs = Array();
@@ -115,10 +115,10 @@ class t3lib_admin {
         */
        function genTree($theID, $depthData)    {
                $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
-                                       'uid,title,doktype,deleted'.(t3lib_extMgm::isLoaded('cms')?',hidden':''), 
-                                       'pages', 
-                                       'pid='.intval($theID).' '.((!$this->genTree_includeDeleted)?'AND deleted=0':'').$this->perms_clause, 
-                                       '', 
+                                       'uid,title,doktype,deleted'.(t3lib_extMgm::isLoaded('cms')?',hidden':''),
+                                       'pages',
+                                       'pid='.intval($theID).' '.((!$this->genTree_includeDeleted)?'AND deleted=0':'').$this->perms_clause,
+                                       '',
                                        'sorting'
                                );
                $a=0;
@@ -126,7 +126,7 @@ class t3lib_admin {
                while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))      {
                        $a++;
                        $newID =$row['uid'];
-                       if ($this->genTree_makeHTML)    {       
+                       if ($this->genTree_makeHTML)    {
                                $this->genTree_HTML.=chr(10).'<div><span class="nobr">';
                                $PM = 'join';
                                $LN = ($a==$c)?'blank':'line';
@@ -141,12 +141,12 @@ class t3lib_admin {
                        if ($row['deleted']) {$this->recStat['deleted']++;}
                        if ($row['hidden']) {$this->recStat['hidden']++;}
                        $this->recStat['doktype'][$row['doktype']]++;
-                       
+
                        $this->genTree($newID,$this->genTree_HTML ? $depthData.'<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$LN.'.gif','width="18" height="16"').' align="top" alt="" />'  : '');
                }
                return $GLOBALS['TYPO3_DB']->sql_num_rows($res);
        }
-       
+
        /**
         * Fills $this->lRecords with the records from all tc-tables that are not attached to a PID in the pid-list.
         *
@@ -161,8 +161,8 @@ class t3lib_admin {
                        while (list($table)=each($TCA)) {
                                t3lib_div::loadTCA($table);
                                $garbage = $GLOBALS['TYPO3_DB']->exec_SELECTquery (
-                                                               'uid,pid,'.$TCA[$table]['ctrl']['label'], 
-                                                               $table, 
+                                                               'uid,pid,'.$TCA[$table]['ctrl']['label'],
+                                                               $table,
                                                                'pid NOT IN ('.$pid_list.')'
                                                        );
                                $lostIdList=Array();
@@ -244,7 +244,7 @@ class t3lib_admin {
                        while (list($field,$config)=each($cols))        {
                                if ($config['config']['type']=='group') {
                                        if (
-                                               ((!$mode||$mode=='file') && $config['config']['internal_type']=='file') || 
+                                               ((!$mode||$mode=='file') && $config['config']['internal_type']=='file') ||
                                                ((!$mode||$mode=='db') && $config['config']['internal_type']=='db')
                                                )       {
                                                $result[$table][]=$field;
@@ -483,20 +483,20 @@ class t3lib_admin {
        function whereIsRecordReferenced($searchTable,$id)      {
                global $TCA;
                $fileFields = $this->getDBFields($searchTable); // Gets tables / Fields that reference to files...
-               $theRecordList=Array(); 
+               $theRecordList=Array();
                while (list(,$info)=each($fileFields))  {
                        $table=$info[0];        $field=$info[1];
                        t3lib_div::loadTCA($table);
                        $mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
-                                                       'uid,pid,'.$TCA[$table]['ctrl']['label'].','.$field, 
-                                                       $table, 
+                                                       'uid,pid,'.$TCA[$table]['ctrl']['label'].','.$field,
+                                                       $table,
                                                        $field.' LIKE "%'.$GLOBALS['TYPO3_DB']->quoteStr($id, $table).'%"'
                                                );
                        while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($mres))     {
                                        // Now this is the field, where the reference COULD come from. But we're not garanteed, so we must carefully examine the data.
                                $fieldConf = $TCA[$table]['columns'][$field]['config'];
                                $allowedTables = ($fieldConf['type']=='group') ? $fieldConf['allowed'] : $fieldConf['foreign_table'];
-                       
+
                                $dbAnalysis = t3lib_div::makeInstance('t3lib_loadDBGroup');
                                $dbAnalysis->start($row[$field],$allowedTables,$fieldConf['MM'],$row['uid']);
                                reset($dbAnalysis->itemArray);
@@ -520,12 +520,12 @@ class t3lib_admin {
        function whereIsFileReferenced($uploadfolder,$filename) {
                global $TCA;
                $fileFields = $this->getFileFields($uploadfolder);      // Gets tables / Fields that reference to files...
-               $theRecordList=Array(); 
+               $theRecordList=Array();
                while (list(,$info)=each($fileFields))  {
                        $table=$info[0];        $field=$info[1];
                        $mres = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
-                                                       'uid,pid,'.$TCA[$table]['ctrl']['label'].','.$field, 
-                                                       $table, 
+                                                       'uid,pid,'.$TCA[$table]['ctrl']['label'].','.$field,
+                                                       $table,
                                                        $field.' LIKE "%'.$GLOBALS['TYPO3_DB']->quoteStr($filename, $table).'%"'
                                                );
                        while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($mres))     {
index 6c7c82a..64d5d2e 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Class for displaying an array as a tree
  *
  * $Id$
  *
  *
  *
- *   75: class t3lib_arrayBrowser      
- *   91:     function tree($arr, $depth_in, $depthData)        
- *  154:     function getSearchKeys($keyArr, $depth_in, $searchString, $keyArray)              
- *  186:     function fixed_lgd($string,$chars)        
- *  203:     function depthKeys($arr,$settings)        
+ *   75: class t3lib_arrayBrowser
+ *   91:     function tree($arr, $depth_in, $depthData)
+ *  154:     function getSearchKeys($keyArr, $depth_in, $searchString, $keyArray)
+ *  186:     function fixed_lgd($string,$chars)
+ *  203:     function depthKeys($arr,$settings)
  *
  * TOTAL FUNCTIONS: 4
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -75,9 +75,9 @@
 class t3lib_arrayBrowser       {
        var $depthKeys = array();               // Array defining which keys to expand. Typically set from outside from some session variable - otherwise the array will collapse.
        var $searchKeys = array();              // After calling the getSearchKeys function this array is populated with the key-positions in the array which contains values matching the search.
-       var $fixedLgd=1;                                // If set, the values are truncated with "..." appended if longer than a certain length. 
+       var $fixedLgd=1;                                // If set, the values are truncated with "..." appended if longer than a certain length.
        var $regexMode=0;                               // If set, search for string with regex, otherwise stristr()
-       
+
        /**
         * Make browsable tree
         * Before calling this function you may want to set some of the internal vars like depthKeys, regexMode and fixedLgd. For examples see SC_mod_tools_config_index::main()
@@ -93,7 +93,7 @@ class t3lib_arrayBrowser      {
                $a=0;
 
                if ($depth_in)  {$depth_in = $depth_in.'.';}
-               
+
                $c=count($arr);
                reset($arr);
                while (list($key,)=each($arr))  {
@@ -132,9 +132,9 @@ class t3lib_arrayBrowser    {
                                } else {
                                        $HTML.='=<b>'.htmlspecialchars($theValue).'</b>';
                                }
-                       } 
+                       }
                        $HTML.='<br />';
-                               
+
                        if ($deeper)    {
                                $HTML.=$this->tree($arr[$key], $depth, $depthData.'<img'.t3lib_iconWorks::skinImg($GLOBALS['BACK_PATH'],'gfx/ol/'.$LN.'.gif','width="18" height="16"').' align="top" alt="" />');
                        }
@@ -158,13 +158,13 @@ class t3lib_arrayBrowser  {
                while (list($key,)=each($keyArr))       {
                        $depth=$depth_in.$key;
                        $deeper = is_array($keyArr[$key]);
-                       
+
                        if ($this->regexMode)   {
                                if (ereg($searchString,$keyArr[$key]))  {       $this->searchKeys[$depth]=1;    }
                        } else {
                                if (stristr($keyArr[$key],$searchString))       {       $this->searchKeys[$depth]=1;    }
                        }
-                       
+
                        if ($deeper)    {
                                $cS = count($this->searchKeys);
                                $keyArray = $this->getSearchKeys($keyArr[$key], $depth, $searchString, $keyArray);
@@ -172,7 +172,7 @@ class t3lib_arrayBrowser    {
                                        $keyArray[$depth]=1;
                                }
                        }
-               }       
+               }
                return $keyArray;
        }
 
index 1423352..3ed377f 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Contains class with basic file management functions
  *
  * $Id$
  *
  *
  *
- *   80: class t3lib_basicFileFunctions        
+ *   80: class t3lib_basicFileFunctions
  *
  *              SECTION: Checking functions
- *  132:     function init($mounts, $f_ext)    
- *  149:     function getTotalFileInfo($wholePath)     
- *  169:     function is_allowed($iconkey,$type)       
- *  194:     function checkIfFullAccess($theDest)      
- *  208:     function is_webpath($path)        
- *  228:     function checkIfAllowed($ext, $theDest, $filename='')     
- *  238:     function checkFileNameLen($fileName)      
- *  248:     function is_directory($theDir)    
- *  265:     function isPathValid($theFile)    
- *  280:     function getUniqueName($theFile, $theDest, $dontCheckForUnique=0) 
- *  323:     function checkPathAgainstMounts($thePath) 
- *  341:     function blindPath($thePath)      
- *  357:     function findTempFolder() 
+ *  132:     function init($mounts, $f_ext)
+ *  149:     function getTotalFileInfo($wholePath)
+ *  169:     function is_allowed($iconkey,$type)
+ *  194:     function checkIfFullAccess($theDest)
+ *  208:     function is_webpath($path)
+ *  228:     function checkIfAllowed($ext, $theDest, $filename='')
+ *  238:     function checkFileNameLen($fileName)
+ *  248:     function is_directory($theDir)
+ *  265:     function isPathValid($theFile)
+ *  280:     function getUniqueName($theFile, $theDest, $dontCheckForUnique=0)
+ *  323:     function checkPathAgainstMounts($thePath)
+ *  341:     function blindPath($thePath)
+ *  357:     function findTempFolder()
  *
  *              SECTION: Cleaning functions
- *  386:     function cleanDirectoryName($theDir)      
- *  396:     function rmDoubleSlash($string)   
- *  406:     function slashPath($path) 
- *  419:     function cleanFileName($fileName) 
- *  430:     function formatSize($sizeInBytes) 
+ *  386:     function cleanDirectoryName($theDir)
+ *  396:     function rmDoubleSlash($string)
+ *  406:     function slashPath($path)
+ *  419:     function cleanFileName($fileName)
+ *  430:     function formatSize($sizeInBytes)
  *
  * TOTAL FUNCTIONS: 18
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
 
+
 
 
 /**
@@ -87,11 +87,11 @@ class t3lib_basicFileFunctions      {
                // internal
        var $f_ext = Array();                   // See comment in header
        var $mounts = Array();                  // See comment in header
-       var $webPath ='';                               // Set to DOCUMENT_ROOT. 
+       var $webPath ='';                               // Set to DOCUMENT_ROOT.
        var $isInit=0;                                  // Set to true after start();
 
-       
-       
+
+
        /**********************************
         *
         * Checking functions
@@ -134,7 +134,7 @@ class t3lib_basicFileFunctions      {
                $this->f_ext['webspace']['deny'] = t3lib_div::uniqueList(strtolower($f_ext['webspace']['deny']));
                $this->f_ext['ftpspace']['allow'] = t3lib_div::uniqueList(strtolower($f_ext['ftpspace']['allow']));
                $this->f_ext['ftpspace']['deny'] = t3lib_div::uniqueList(strtolower($f_ext['ftpspace']['deny']));
-               
+
                $this->mounts = $mounts;
                $this->webPath = t3lib_div::getIndpEnv('TYPO3_DOCUMENT_ROOT');
                $this->isInit=1;
@@ -155,7 +155,7 @@ class t3lib_basicFileFunctions      {
                $info['owner']=@fileowner($wholePath);
                $info['perms']=@fileperms($wholePath);
                $info['writeable'] = ($info['perms']&2 || ($theuser==$info['owner'] && $info['perms']&128));
-               $info['readable'] = ($info['perms']&4 || ($theuser==$info['owner'] && $info['perms']&256));     
+               $info['readable'] = ($info['perms']&4 || ($theuser==$info['owner'] && $info['perms']&256));
                return $info;
        }
 
@@ -205,7 +205,7 @@ class t3lib_basicFileFunctions      {
         * @param       string          Absolute path to check
         * @return      boolean
         */
-       function is_webpath($path)      {               
+       function is_webpath($path)      {
                if ($this->isInit)      {
                        $testPath = $this->slashPath($path);
                        $testPathWeb = $this->slashPath($this->webPath);
@@ -226,7 +226,7 @@ class t3lib_basicFileFunctions      {
         * @return      boolean         True if extension/filename is allowed
         */
        function checkIfAllowed($ext, $theDest, $filename='')   {
-               return t3lib_div::verifyFilenameAgainstDenyPattern($filename) && $this->is_allowed($ext,($this->is_webpath($theDest)?'webspace':'ftpspace'));   
+               return t3lib_div::verifyFilenameAgainstDenyPattern($filename) && $this->is_allowed($ext,($this->is_webpath($theDest)?'webspace':'ftpspace'));
        }
 
        /**
@@ -406,9 +406,9 @@ class t3lib_basicFileFunctions      {
        function slashPath($path)       {
                if (substr($path,-1)!='/')      {
                        return $path.'/';
-               } 
+               }
                return $path;
-       }       
+       }
 
        /**
         * Returns a string where any character not matching [.a-zA-Z0-9_-] is substituted by '_'
index 707ff1b..6e75a9d 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Contains class for display of backend log
  *
  * $Id$
  *
  *
  *
- *   81: class t3lib_BEDisplayLog 
- *  100:     function initArray()      
- *  117:     function getTimeLabel($code)      
- *  132:     function getUserLabel($code)      
- *  146:     function getTypeLabel($code)      
- *  160:     function getActionLabel($code)    
- *  178:     function getDetails($code,$text,$data,$sys_log_uid=0)     
- *  210:     function reset()  
- *  224:     function getErrorFormatting($sign)        
- *  234:     function formatDetailsForList($row)       
- *  251:     function stripPath($inArr)        
+ *   81: class t3lib_BEDisplayLog
+ *  100:     function initArray()
+ *  117:     function getTimeLabel($code)
+ *  132:     function getUserLabel($code)
+ *  146:     function getTypeLabel($code)
+ *  160:     function getActionLabel($code)
+ *  178:     function getDetails($code,$text,$data,$sys_log_uid=0)
+ *  210:     function reset()
+ *  224:     function getErrorFormatting($sign)
+ *  234:     function formatDetailsForList($row)
+ *  251:     function stripPath($inArr)
  *
  * TOTAL FUNCTIONS: 10
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -83,7 +83,7 @@ class t3lib_BEDisplayLog {
        var $lastUserLabel='';
        var $lastTypeLabel='';
        var $lastActionLabel='';
-       
+
        var $detailsOn = 1;     // If detailsOn, %s is substituted with values from the data-array (see getDetails())
        var $stripPath = 1;     // This strips the path from any value in the data-array when the data-array is parsed through stripPath()
        var $errorSign = Array(
@@ -120,7 +120,7 @@ class t3lib_BEDisplayLog {
                        $this->lastTimeLabel=$t;
                        return $t;
                } else return '.';
-               
+
        }
 
        /**
@@ -190,7 +190,7 @@ class t3lib_BEDisplayLog {
                                $text = str_replace('%s','',$text);
                        }
                }
-               
+
                        // Finding the history for the record
                $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid,fieldlist', 'sys_history', 'sys_log_uid='.intval($sys_log_uid));
                $newRow = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
@@ -253,7 +253,7 @@ class t3lib_BEDisplayLog {
                        while(list($key,$val)=each($inArr))     {
                                $inArr[$key]=basename($val);
                        }
-               }       
+               }
                return $inArr;
        }
 }
index d781f32..9da2e44 100755 (executable)
  *
  *              SECTION: Page tree, TCA related
  *  488:     function BEgetRootLine ($uid,$clause='')
- *  539:     function getRecordPath($uid,$clause,$titleLimit)
- *  564:     function getExcludeFields()
- *  599:     function readPageAccess($id,$perms_clause)
- *  629:     function getTCAtypes($table,$rec,$useFieldNameAsKey=0)
- *  675:     function getTCAtypeValue($table,$rec)
- *  698:     function getSpecConfParts($str)
- *  723:     function getSpecConfParametersFromArray($pArr)
- *  748:     function getFlexFormDS($conf,$row,$table)
+ *  540:     function getRecordPath($uid, $clause, $titleLimit, $fullTitleLimit=0)
+ *  578:     function getExcludeFields()
+ *  613:     function readPageAccess($id,$perms_clause)
+ *  643:     function getTCAtypes($table,$rec,$useFieldNameAsKey=0)
+ *  697:     function getTCAtypeValue($table,$rec)
+ *  721:     function getSpecConfParts($str, $defaultExtras)
+ *  752:     function getSpecConfParametersFromArray($pArr)
+ *  777:     function getFlexFormDS($conf,$row,$table)
  *
  *              SECTION: Caching related
- *  853:     function storeHash($hash,$data,$ident)
- *  874:     function getHash($hash,$expTime)
+ *  882:     function storeHash($hash,$data,$ident)
+ *  903:     function getHash($hash,$expTime)
  *
  *              SECTION: TypoScript related
- *  911:     function getPagesTSconfig($id,$rootLine='',$returnPartArray=0)
- *  962:     function updatePagesTSconfig($id,$pageTS,$TSconfPrefix,$impParams='')
- * 1018:     function implodeTSParams($p,$k='')
+ *  940:     function getPagesTSconfig($id,$rootLine='',$returnPartArray=0)
+ *  991:     function updatePagesTSconfig($id,$pageTS,$TSconfPrefix,$impParams='')
+ * 1047:     function implodeTSParams($p,$k='')
  *
  *              SECTION: Users / Groups related
- * 1056:     function getUserNames($fields='username,usergroup,usergroup_cached_list,uid',$where='')
- * 1075:     function getGroupNames($fields='title,uid', $where='')
- * 1093:     function getListGroupNames($fields='title,uid')
- * 1113:     function blindUserNames($usernames,$groupArray,$excludeBlindedFlag=0)
- * 1147:     function blindGroupNames($groups,$groupArray,$excludeBlindedFlag=0)
+ * 1085:     function getUserNames($fields='username,usergroup,usergroup_cached_list,uid',$where='')
+ * 1104:     function getGroupNames($fields='title,uid', $where='')
+ * 1122:     function getListGroupNames($fields='title,uid')
+ * 1142:     function blindUserNames($usernames,$groupArray,$excludeBlindedFlag=0)
+ * 1176:     function blindGroupNames($groups,$groupArray,$excludeBlindedFlag=0)
  *
  *              SECTION: Output related
- * 1191:     function daysUntil($tstamp)
- * 1204:     function date($tstamp)
- * 1216:     function datetime($value)
- * 1229:     function time($value)
- * 1246:     function calcAge ($seconds,$labels)
- * 1273:     function dateTimeAge($tstamp,$prefix=1,$date='')
- * 1292:     function titleAttrib($content='',$hsc=0)
- * 1304:     function titleAltAttrib($content)
- * 1329:     function thumbCode($row,$table,$field,$backPath,$thumbScript='',$uploaddir='',$abs=0,$tparams='',$size='')
- * 1398:     function getThumbNail($thumbScript,$theFile,$tparams='',$size='')
- * 1416:     function titleAttribForPages($row,$perms_clause='',$includeAttrib=1)
- * 1471:     function getRecordIconAltText($row,$table='pages')
- * 1506:     function getLabelFromItemlist($table,$col,$key)
- * 1533:     function getItemLabel($table,$col,$printAllWrap='')
- * 1559:     function getRecordTitle($table,$row,$prep=0)
- * 1596:     function getProcessedValue($table,$col,$value,$fixed_lgd_chars=0,$defaultPassthrough=0)
- * 1691:     function getProcessedValueExtra($table,$fN,$fV,$fixed_lgd_chars=0)
- * 1716:     function getFileIcon($ext)
- * 1731:     function getCommonSelectFields($table,$prefix)
- * 1758:     function makeConfigForm($configArray,$defaults,$dataPrefix)
+ * 1220:     function daysUntil($tstamp)
+ * 1233:     function date($tstamp)
+ * 1245:     function datetime($value)
+ * 1258:     function time($value)
+ * 1275:     function calcAge ($seconds,$labels)
+ * 1302:     function dateTimeAge($tstamp,$prefix=1,$date='')
+ * 1321:     function titleAttrib($content='',$hsc=0)
+ * 1333:     function titleAltAttrib($content)
+ * 1358:     function thumbCode($row,$table,$field,$backPath,$thumbScript='',$uploaddir='',$abs=0,$tparams='',$size='')
+ * 1427:     function getThumbNail($thumbScript,$theFile,$tparams='',$size='')
+ * 1445:     function titleAttribForPages($row,$perms_clause='',$includeAttrib=1)
+ * 1503:     function getRecordIconAltText($row,$table='pages')
+ * 1538:     function getLabelFromItemlist($table,$col,$key)
+ * 1565:     function getItemLabel($table,$col,$printAllWrap='')
+ * 1591:     function getRecordTitle($table,$row,$prep=0)
+ * 1628:     function getProcessedValue($table,$col,$value,$fixed_lgd_chars=0,$defaultPassthrough=0)
+ * 1723:     function getProcessedValueExtra($table,$fN,$fV,$fixed_lgd_chars=0)
+ * 1748:     function getFileIcon($ext)
+ * 1763:     function getCommonSelectFields($table,$prefix)
+ * 1790:     function makeConfigForm($configArray,$defaults,$dataPrefix)
  *
  *              SECTION: Backend Modules API functions
- * 1835:     function helpTextIcon($table,$field,$BACK_PATH,$force=0)
- * 1857:     function helpText($table,$field,$BACK_PATH)
- * 1878:     function editOnClick($params,$backPath='',$requestUri='')
- * 1895:     function viewOnClick($id,$backPath='',$rootLine='',$anchor='',$altUrl='')
- * 1922:     function getModTSconfig($id,$TSref)
- * 1944:     function getFuncMenu($id,$elementName,$currentValue,$menuItems,$script='',$addparams='')
- * 1974:     function getFuncCheck($id,$elementName,$currentValue,$script='',$addparams='',$tagParams='')
- * 1995:     function getFuncInput($id,$elementName,$currentValue,$size=10,$script="",$addparams="")
- * 2012:     function unsetMenuItems($modTSconfig,$itemArray,$TSref)
- * 2036:     function getSetUpdateSignal($set='')
- * 2087:     function getModuleData($MOD_MENU, $CHANGED_SETTINGS, $modName, $type='', $dontValidateList='', $setDefaultList='')
+ * 1867:     function helpTextIcon($table,$field,$BACK_PATH,$force=0)
+ * 1889:     function helpText($table,$field,$BACK_PATH)
+ * 1910:     function editOnClick($params,$backPath='',$requestUri='')
+ * 1927:     function viewOnClick($id,$backPath='',$rootLine='',$anchor='',$altUrl='')
+ * 1954:     function getModTSconfig($id,$TSref)
+ * 1976:     function getFuncMenu($id,$elementName,$currentValue,$menuItems,$script='',$addparams='')
+ * 2006:     function getFuncCheck($id,$elementName,$currentValue,$script='',$addparams='',$tagParams='')
+ * 2027:     function getFuncInput($id,$elementName,$currentValue,$size=10,$script="",$addparams="")
+ * 2044:     function unsetMenuItems($modTSconfig,$itemArray,$TSref)
+ * 2068:     function getSetUpdateSignal($set='')
+ * 2119:     function getModuleData($MOD_MENU, $CHANGED_SETTINGS, $modName, $type='', $dontValidateList='', $setDefaultList='')
  *
  *              SECTION: Core
- * 2164:     function lockRecords($table='',$uid=0,$pid=0)
- * 2194:     function isRecordLocked($table,$uid)
- * 2235:     function exec_foreign_table_where_query($fieldValue,$field='',$TSconfig=array(),$prefix='')
- * 2317:     function getTCEFORM_TSconfig($table,$row)
- * 2365:     function getTSconfig_pidValue($table,$uid,$pid)
- * 2394:     function getPidForModTSconfig($table,$uid,$pid)
- * 2411:     function getTSCpid($table,$uid,$pid)
- * 2428:     function firstDomainRecord($rootLine)
- * 2451:     function getDomainStartPage($domain, $path='')
- * 2482:     function RTEsetup($RTEprop,$table,$field,$type='')
- * 2503:     function isModuleSetInTBE_MODULES($modName)
+ * 2195:     function lockRecords($table='',$uid=0,$pid=0)
+ * 2225:     function isRecordLocked($table,$uid)
+ * 2266:     function exec_foreign_table_where_query($fieldValue,$field='',$TSconfig=array(),$prefix='')
+ * 2348:     function getTCEFORM_TSconfig($table,$row)
+ * 2396:     function getTSconfig_pidValue($table,$uid,$pid)
+ * 2425:     function getPidForModTSconfig($table,$uid,$pid)
+ * 2442:     function getTSCpid($table,$uid,$pid)
+ * 2459:     function firstDomainRecord($rootLine)
+ * 2482:     function getDomainStartPage($domain, $path='')
+ * 2513:     function RTEsetup($RTEprop,$table,$field,$type='')
+ * 2571:     function isModuleSetInTBE_MODULES($modName)
  *
  *              SECTION: Miscellaneous
- * 2553:     function typo3PrintError ($header,$text,$js='',$head=1)
- * 2600:     function getPathType_web_nonweb($path)
- * 2613:     function ADMCMD_previewCmds($pageinfo)
- * 2636:     function processParams($params)
- * 2663:     function getListOfBackendModules($name,$perms_clause,$backPath='',$script='index.php')
+ * 2621:     function typo3PrintError ($header,$text,$js='',$head=1)
+ * 2668:     function getPathType_web_nonweb($path)
+ * 2681:     function ADMCMD_previewCmds($pageinfo)
+ * 2704:     function processParams($params)
+ * 2731:     function getListOfBackendModules($name,$perms_clause,$backPath='',$script='index.php')
  *
  * TOTAL FUNCTIONS: 78
  * (This index is automatically created/updated by the extension "extdeveval")
index 8b46c5b..8e145ea 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Contains class for TYPO3 backend user authentication
  *
  * $Id$
  *
  *
  *
- *   75: class t3lib_beUserAuth extends t3lib_userAuthGroup 
- *  151:     function trackBeUser($flag)       
- *  169:     function checkLockToIP()  
- *  189:     function backendCheckLogin()      
- *  219:     function backendSetUC()   
- *  254:     function overrideUC()     
- *  264:     function resetUC()        
- *  277:     function emailAtLogin()   
- *  329:     function veriCode()       
+ *   75: class t3lib_beUserAuth extends t3lib_userAuthGroup
+ *  150:     function trackBeUser($flag)
+ *  168:     function checkLockToIP()
+ *  188:     function backendCheckLogin()
+ *  218:     function backendSetUC()
+ *  253:     function overrideUC()
+ *  263:     function resetUC()
+ *  276:     function emailAtLogin()
+ *  328:     function veriCode()
  *
  * TOTAL FUNCTIONS: 8
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
 
+
 
 
 
@@ -82,7 +82,7 @@ class t3lib_beUserAuth extends t3lib_userAuthGroup {
        var $userid_column = 'uid';                                     // Column for user-id
        var $lastLogin_column = 'lastlogin';
        var $notifyHeader = 'From: TYPO3 Login notify <no_reply@no_reply.no_reply>';
-       
+
        var $enablecolumns = Array (
                'rootLevel' => 1,
                'deleted' => 'deleted',
@@ -90,7 +90,7 @@ class t3lib_beUserAuth extends t3lib_userAuthGroup {
                'starttime' => 'starttime',
                'endtime' => 'endtime'
        );
-       
+
        var $formfield_uname = 'username';                      // formfield with login-name
        var $formfield_uident = 'userident';            // formfield with password
        var $formfield_chalvalue = 'challenge';         // formfield with a unique value which is used to encrypt the password and username
@@ -99,9 +99,9 @@ class t3lib_beUserAuth extends t3lib_userAuthGroup {
 
        var $writeStdLog = 1;                                   // Decides if the writelog() function is called at login and logout
        var $writeAttemptLog = 1;                               // If the writelog() functions is called if a login-attempt has be tried without success
-       
+
        var $auth_include = '';                                         // this is the name of the include-file containing the login form. If not set, login CAN be anonymous. If set login IS needed.
-       
+
        var $auth_timeout_field = 6000;                         // if > 0 : session-timeout in seconds. if false/<0 : no timeout. if string: The string is fieldname from the usertable where the timeout can be found.
        var $lifetime = 0;                              // 0 = Session-cookies. If session-cookies, the browser will stop session when the browser is closed. Else it keeps the session for $lifetime seconds.
 
@@ -138,7 +138,7 @@ class t3lib_beUserAuth extends t3lib_userAuthGroup {
                'navFrameResizable' => 0,
        );
 
-       
+
        /**
         * If flag is set and the extensions 'beuser_tracking' is loaded, this will insert a table row with the REQUEST_URI of current script - thus tracking the scripts the backend users uses...
         * This function works ONLY with the "beuser_tracking" extension and is depreciated since it does nothing useful.
@@ -154,7 +154,7 @@ class t3lib_beUserAuth extends t3lib_userAuthGroup {
                                'tstamp' => time(),
                                'script' => t3lib_div::getIndpEnv('REQUEST_URI')
                        );
-                       
+
                        $GLOBALS['TYPO3_DB']->exec_INSERTquery('sys_trackbeuser', $insertFields);
                }
        }
@@ -192,7 +192,7 @@ class t3lib_beUserAuth extends t3lib_userAuthGroup {
                                exit;
                        }
                } else {        // ...and if that's the case, call these functions
-                       $this->fetchGroupData();        //      The groups are fetched and ready for permission checking in this initialization.        Tables.php must be read before this because stuff like the modules has impact in this 
+                       $this->fetchGroupData();        //      The groups are fetched and ready for permission checking in this initialization.        Tables.php must be read before this because stuff like the modules has impact in this
                        if ($this->checkLockToIP())     {
                                if (!$GLOBALS['TYPO3_CONF_VARS']['BE']['adminOnly'] || $this->isAdmin())        {
                                        $this->backendSetUC();          // Setting the UC array. It's needed with fetchGroupData first, due to default/overriding of values.
@@ -279,7 +279,7 @@ class t3lib_beUserAuth extends t3lib_userAuthGroup {
                        $subject = 'At "'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'].'"'.
                                                ' from '.t3lib_div::getIndpEnv('REMOTE_ADDR').
                                                (t3lib_div::getIndpEnv('REMOTE_HOST') ? ' ('.t3lib_div::getIndpEnv('REMOTE_HOST').')' : '');
-                       $msg = sprintf ('User "%s" logged in from %s (%s) at "%s" (%s)', 
+                       $msg = sprintf ('User "%s" logged in from %s (%s) at "%s" (%s)',
                                $this->user['username'],
                                t3lib_div::getIndpEnv('REMOTE_ADDR'),
                                t3lib_div::getIndpEnv('REMOTE_HOST'),
index 4616e91..4a5f682 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Generate a page-tree, browsable.
  *
  * $Id$
  *
  *
  *
- *   74: class t3lib_browseTree extends t3lib_treeView 
- *   83:     function init($clause='') 
- *  106:     function getTitleAttrib($row) 
- *  118:     function wrapIcon($icon,$row)     
+ *   74: class t3lib_browseTree extends t3lib_treeView
+ *   83:     function init($clause='')
+ *  106:     function getTitleAttrib($row)
+ *  118:     function wrapIcon($icon,$row)
  *
  * TOTAL FUNCTIONS: 3
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
+
 require_once (PATH_t3lib.'class.t3lib_treeview.php');
 
 
@@ -106,7 +106,7 @@ class t3lib_browseTree extends t3lib_treeView {
        function getTitleAttrib($row) {
                return t3lib_BEfunc::titleAttribForPages($row,'1=1 '.$this->clause,0);
        }
-       
+
        /**
         * Wrapping the image tag, $icon, for the row, $row (except for mount points)
         *
index f396e87..00e43b4 100755 (executable)
@@ -1,19 +1,19 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 2003-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the Typo3 project. The Typo3 project is 
+*  This script is part of the Typo3 project. The Typo3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -21,8 +21,8 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
- * Class for conversion between charsets. 
+/**
+ * Class for conversion between charsets.
  *
  * $Id$
  *
  *
  *
  *
- *  108: class t3lib_cs 
- *  237:     function parse_charset($charset)  
- *  254:     function conv($str,$fromCS,$toCS,$useEntityForNoChar=0)   
- *  288:     function utf8_encode($str,$charset)       
- *  329:     function utf8_decode($str,$charset,$useEntityForNoChar=0) 
- *  377:     function utf8_to_entities($str)   
- *  410:     function entities_to_utf8($str,$alsoStdHtmlEnt=0) 
- *  441:     function utf8_to_numberarray($str,$convEntities=0,$retChar=0)     
- *  482:     function initCharset($charset)    
- *  553:     function UnumberToChar($cbyte)    
- *  597:     function utf8CharToUnumber($str,$hex=0)   
+ *  119: class t3lib_cs
+ *  261:     function parse_charset($charset)
+ *  278:     function conv($str,$fromCS,$toCS,$useEntityForNoChar=0)
+ *  312:     function utf8_encode($str,$charset)
+ *  359:     function utf8_decode($str,$charset,$useEntityForNoChar=0)
+ *  407:     function utf8_to_entities($str)
+ *  440:     function entities_to_utf8($str,$alsoStdHtmlEnt=0)
+ *  474:     function utf8_to_numberarray($str,$convEntities=0,$retChar=0)
+ *  515:     function initCharset($charset)
+ *  586:     function UnumberToChar($cbyte)
+ *  630:     function utf8CharToUnumber($str,$hex=0)
+ *
+ *              SECTION: String operation functions
+ *  682:     function strtrunc($charset,$string,$len)
+ *  716:     function substr($charset,$str,$start,$len=null)
+ *  755:     function strlen($charset,$string)
  *
  *              SECTION: UTF-8 String operation functions
- *  648:     function utf8_strtrunc($str,$len) 
- *  680:     function utf8_substr($str,$start,$len=null)       
- *  719:     function utf8_strlen($str)        
- *  745:     function utf8_strpos($haystack,$needle,$offset=0) 
- *  768:     function utf8_strrpos($haystack,$needle)  
- *  787:     function utf8_char2byte_pos($str,$pos)    
- *  812:     function utf8_byte2char_pos($str,$pos)    
+ *  803:     function utf8_strtrunc($str,$len)
+ *  831:     function utf8_substr($str,$start,$len=null)
+ *  857:     function utf8_strlen($str)
+ *  879:     function utf8_strpos($haystack,$needle,$offset=0)
+ *  902:     function utf8_strrpos($haystack,$needle)
+ *  921:     function utf8_char2byte_pos($str,$pos)
+ *  946:     function utf8_byte2char_pos($str,$pos)
+ *
+ *              SECTION: EUC String operation functions
+ *  994:     function euc_strtrunc($str,$len,$charset)
+ * 1028:     function euc_substr($str,$start,$charset,$len=null)
+ * 1055:     function euc_strlen($str,$charset)
+ * 1082:     function euc_char2byte_pos($str,$pos,$charset)
  *
- * TOTAL FUNCTIONS: 17
+ * TOTAL FUNCTIONS: 24
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
  */
 class t3lib_cs {
        var $noCharByteVal=127;         // ASCII Value for chars with no equalent.
-               
-               // This is the array where parsed conversion tables are stored (cached) 
+
+               // This is the array where parsed conversion tables are stored (cached)
        var $parsedCharsets=array();
 
                // This tells the converter which charsets has two bytes per char:
@@ -300,7 +311,7 @@ class t3lib_cs {
         */
        function utf8_encode($str,$charset)     {
 
-                       // Charset is case-insensitive. 
+                       // Charset is case-insensitive.
                if ($this->initCharset($charset))       {       // Parse conv. table if not already...
                        $strLen = strlen($str);
                        $outStr='';
@@ -347,7 +358,7 @@ class t3lib_cs {
         */
        function utf8_decode($str,$charset,$useEntityForNoChar=0)       {
 
-                       // Charset is case-insensitive. 
+                       // Charset is case-insensitive.
                if ($this->initCharset($charset))       {       // Parse conv. table if not already...
                        $strLen = strlen($str);
                        $outStr='';
@@ -376,7 +387,7 @@ class t3lib_cs {
                                                        $mByte = $this->parsedCharsets[$charset]['utf8'][$buf]; // The local number
                                                        if ($mByte>255) {       // If the local number is greater than 255 we will need to split the byte (16bit word assumed) in two chars.
                                                                $outStr.= chr(($mByte >> 8) & 255).chr($mByte & 255);
-                                                       } else $outStr.= chr($mByte);   
+                                                       } else $outStr.= chr($mByte);
                                                } elseif ($useEntityForNoChar) {        // Create num entity:
                                                        $outStr.='&#'.$this->utf8CharToUnumber($buf,1).';';
                                                } else $outStr.=chr($this->noCharByteVal);      // No char exists
@@ -410,15 +421,15 @@ class t3lib_cs {
                                                        $buf.=substr($str,$a,1);        // ... and add the next char.
                                                } else break;
                                        }
-                                       
+
                                        $outStr.='&#'.$this->utf8CharToUnumber($buf,1).';';
                                } else $outStr.=chr($this->noCharByteVal);      // No char exists (MIDDLE of MB sequence!)
                        } else $outStr.=$chr;   // ... otherwise it's just ASCII 0-127 and one byte. Transparent
                }
-               
+
                return $outStr;
        }
-       
+
        /**
         * Converts numeric entities (UNICODE, eg. decimal (&#1234;) or hexadecimal (&#x1b;)) to UTF-8 multibyte chars
         *
@@ -448,10 +459,10 @@ class t3lib_cs {
                                }
                        }
                }
-               
+
                return implode('',$parts);
        }
-       
+
        /**
         * Converts all chars in the input UTF-8 string into integer numbers returned in an array
         *
@@ -482,12 +493,12 @@ class t3lib_cs {
                                                        $buf.=substr($str,$a,1);        // ... and add the next char.
                                                } else break;
                                        }
-                                       
+
                                        $outArr[]=$retChar?$buf:$this->utf8CharToUnumber($buf);
                                } else $outArr[]=$retChar?chr($this->noCharByteVal):$this->noCharByteVal;       // No char exists (MIDDLE of MB sequence!)
                        } else $outArr[]=$retChar?chr($ord):$ord;       // ... otherwise it's just ASCII 0-127 and one byte. Transparent
                }
-               
+
                return $outArr;
        }
 
@@ -507,7 +518,7 @@ class t3lib_cs {
 
                                // Conversion table filename:
                        $charsetConvTableFile = PATH_t3lib.'csconvtbl/'.$charset.'.tbl';
-                       
+
                                // If the conversion table is found:
                        if ($charset && t3lib_div::validPathStr($charsetConvTableFile) && @is_file($charsetConvTableFile))      {
                                        // Cache file for charsets:
@@ -517,18 +528,18 @@ class t3lib_cs {
                                        $this->parsedCharsets[$charset]=unserialize(t3lib_div::getUrl($cacheFile));
                                } else {
                                                // Parse conversion table into lines:
-                                       $lines=t3lib_div::trimExplode(chr(10),t3lib_div::getUrl($charsetConvTableFile),1);      
+                                       $lines=t3lib_div::trimExplode(chr(10),t3lib_div::getUrl($charsetConvTableFile),1);
                                                // Initialize the internal variable holding the conv. table:
-                                       $this->parsedCharsets[$charset]=array('local'=>array(),'utf8'=>array());        
+                                       $this->parsedCharsets[$charset]=array('local'=>array(),'utf8'=>array());
                                                // traverse the lines:
                                        $detectedType='';
                                        foreach($lines as $value)       {
                                                if (trim($value) && substr($value,0,1)!='#')    {       // Comment line or blanks are ignored.
-                                                       
+
                                                                // Detect type if not done yet: (Done on first real line)
                                                                // The "whitespaced" type is on the syntax      "0x0A   0x000A  #LINE FEED"     while   "ms-token" is like              "B9 = U+00B9 : SUPERSCRIPT ONE"
                                                        if (!$detectedType)             $detectedType = ereg('[[:space:]]*0x([[:alnum:]]*)[[:space:]]+0x([[:alnum:]]*)[[:space:]]+',$value) ? 'whitespaced' : 'ms-token';
-                                                       
+
                                                        if ($detectedType=='ms-token')  {
                                                                list($hexbyte,$utf8) = split('=|:',$value,3);
                                                        } elseif ($detectedType=='whitespaced') {
@@ -574,7 +585,7 @@ class t3lib_cs {
         */
        function UnumberToChar($cbyte)  {
                $str='';
-               
+
                if ($cbyte < 0x80) {
                        $str.=chr($cbyte);
                } else if ($cbyte < 0x800) {
@@ -607,7 +618,7 @@ class t3lib_cs {
                }
                return $str;
        }
-       
+
        /**
         * Converts a UTF-8 Multibyte character to a UNICODE number
         *
@@ -618,7 +629,7 @@ class t3lib_cs {
         */
        function utf8CharToUnumber($str,$hex=0) {
                $ord=ord(substr($str,0,1));     // First char
-               
+
                if (($ord & 192) == 192)        {       // This verifyes that it IS a multi byte string
                        $binBuf='';
                        for ($b=0;$b<8;$b++)    {       // for each byte in multibyte string...
@@ -631,7 +642,7 @@ class t3lib_cs {
 
                        $int = bindec($binBuf);
                } else $int = $ord;
-               
+
                return $hex ? 'x'.dechex($int) : $int;
        }
 
@@ -667,7 +678,7 @@ class t3lib_cs {
         * @return      string          the shortened string
         * @see mb_strcut()
         * @author      Martin Kutschker <martin.t.kutschker@blackbox.net>
-        */     
+        */
        function strtrunc($charset,$string,$len)        {
                if ($GLOBALS['TYPO3_CONF_VARS']['SYS']['t3lib_cs_utils'] == 'mbstring') {
                        return mb_strcut($string,0,$len,$charset);
@@ -721,7 +732,7 @@ class t3lib_cs {
                } elseif ($charset == 'shift_jis')      {
                        return $this->euc_substr($string,$start,$len,'shift_jis');
                } elseif ($this->eucBasedSets[$charset])        {
-                       return $this->euc_substr($string,$start,$len);          
+                       return $this->euc_substr($string,$start,$len);
                } elseif ($this->twoByteSets[$charset]) {
                        return substr($string,$start*2,$len*2);
                } elseif ($this->fourByteSets[$charset])        {
@@ -733,14 +744,14 @@ class t3lib_cs {
        }
 
        /**
-        *  Counts the number of characters.
+        * Counts the number of characters.
         *
         * @param       string          the character set
         * @param       string          character string
         * @return      integer         the number of characters
         * @see strlen()
         * @author      Martin Kutschker <martin.t.kutschker@blackbox.net>
-        */     
+        */
        function strlen($charset,$string)       {
                if ($GLOBALS['TYPO3_CONF_VARS']['SYS']['t3lib_cs_utils'] == 'mbstring') {
                        return mb_strlen($string,$charset);
@@ -979,7 +990,7 @@ class t3lib_cs {
         * @return      string          the shortened string
         * @see mb_strcut()
         * @author      Martin Kutschker <martin.t.kutschker@blackbox.net>
-        */     
+        */
        function euc_strtrunc($str,$len,$charset)        {
                if ($len <= 0)  return '';
 
@@ -1010,9 +1021,9 @@ class t3lib_cs {
         * @param       string          EUC multibyte character string
         * @param       int             start position (character position)
         * @param       int             length (in characters)
+        * @param       [type]          $len: ...
         * @return      string          the substring
         * @author      Martin Kutschker <martin.t.kutschker@blackbox.net>
-        *
         */
        function euc_substr($str,$start,$charset,$len=null)     {
                if ($len===0)   return '';
index e53ca6b..5cd5b61 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Contains class which has functions that generates a difference output of a content string
  *
  * $Id$
  * Revised for TYPO3 3.6 November/2003 by Kasper Skaarhoj
- * XHTML Compliant  
+ * XHTML Compliant
  *
  * @author     Kasper Skaarhoj <kasper@typo3.com>
  */
  *
  *
  *
- *   67: class t3lib_diff 
- *   86:     function makeDiffDisplay($str1,$str2)     
- *  160:     function getDiff($str1,$str2)     
- *  187:     function addClearBuffer($clearBuffer,$last=0)     
- *  203:     function explodeStringIntoWords($str)     
- *  224:     function tagSpace($str,$rev=0)    
+ *   67: class t3lib_diff
+ *   86:     function makeDiffDisplay($str1,$str2)
+ *  160:     function getDiff($str1,$str2)
+ *  187:     function addClearBuffer($clearBuffer,$last=0)
+ *  203:     function explodeStringIntoWords($str)
+ *  224:     function tagSpace($str,$rev=0)
  *
  * TOTAL FUNCTIONS: 5
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -69,13 +69,13 @@ class t3lib_diff {
                // External, static:
        var $stripTags = 0;                     // If set, the HTML tags are stripped from the input strings first.
        var $diffOptions = '';          // Diff options. eg "--unified=3"
-       
+
                // Internal, dynamic:
        var $clearBufferIdx=0;          // This indicates the number of times the function addClearBuffer has been called - and used to detect the very first call...
-       
-       
-       
-       
+
+
+
+
        /**
         * This will produce a color-marked-up diff output in HTML from the input strings.
         *
@@ -112,7 +112,7 @@ class t3lib_diff {
                                        $diffResArray[$c]['new'][]=substr($lValue,2);
                                }
                        }
-                       
+
                        $outString='';
                        $clearBuffer='';
                        for ($a=-1;$a<count($str1Lines);$a++)   {
@@ -139,7 +139,7 @@ class t3lib_diff {
                                }
                        }
                        $outString.=$this->addClearBuffer($clearBuffer,1);
-                       
+
                        $outString = str_replace('  ',chr(10),$outString);
                        if (!$this->stripTags)  {
                                $outString = $this->tagSpace($outString,1);
@@ -171,11 +171,11 @@ class t3lib_diff {
 
                        unlink($file1);
                        unlink($file2);
-                       
+
                        return $res;
                }
        }
-       
+
        /**
         * Will bring down the length of strings to < 150 chars if they were longer than 200 chars. This done by preserving the 70 first and last chars and concatenate those strings with "..." and a number indicating the string length
         *
index d37cb0d..81caaeb 100755 (executable)
  *
  *
  *
- *  202: class t3lib_div 
+ *  203: class t3lib_div
  *
  *              SECTION: GET/POST Variables
- *  231:     function _GP($var)        
- *  245:     function _GET($var='')    
- *  259:     function _POST($var='')   
- *  272:     function _GETset($inputGet,$key='')       
- *  296:     function GPvar($var,$strip=0)     
- *  313:     function setGPvars($list,$strip=0)        
- *  330:     function GParrayMerged($var)      
+ *  232:     function _GP($var)
+ *  246:     function _GET($var='')
+ *  260:     function _POST($var='')
+ *  273:     function _GETset($inputGet,$key='')
+ *  297:     function GPvar($var,$strip=0)
+ *  314:     function setGPvars($list,$strip=0)
+ *  331:     function GParrayMerged($var)
  *
  *              SECTION: IMAGE FUNCTIONS
- *  375:     function gif_compress($theFile, $type)    
- *  403:     function png_to_gif_by_imagemagick($theFile)      
- *  427:     function read_png_gif($theFile,$output_png=0)     
+ *  376:     function gif_compress($theFile, $type)
+ *  404:     function png_to_gif_by_imagemagick($theFile)
+ *  428:     function read_png_gif($theFile,$output_png=0)
  *
  *              SECTION: STRING FUNCTIONS
- *  476:     function fixed_lgd($string,$chars,$preStr='...')  
- *  498:     function fixed_lgd_pre($string,$chars)    
- *  512:     function breakTextForEmail($str,$implChar="\n",$charWidth=76)     
- *  532:     function breakLinesForEmail($str,$implChar="\n",$charWidth=76)    
- *  568:     function cmpIP($baseIP, $list)    
- *  615:     function inList($in_list,$item)   
- *  628:     function rmFromList($element,$list)       
- *  647:     function intInRange($theInt,$min,$max=2000000000,$zeroValue=0)    
- *  664:     function intval_positive($theInt) 
- *  678:     function int_from_ver($verNumberStr)      
- *  691:     function md5int($str)     
- *  703:     function uniqueList($in_list)     
- *  716:     function split_fileref($fileref)  
- *  753:     function dirname($path)   
- *  770:     function modifyHTMLColor($color,$R,$G,$B) 
- *  791:     function modifyHTMLColorAll($color,$all)  
- *  803:     function rm_endcomma($string)     
- *  816:     function danish_strtoupper($string)       
- *  831:     function convUmlauts($str)        
- *  846:     function shortMD5($input, $len=10)        
- *  858:     function testInt($var)    
- *  871:     function isFirstPartOfStr($str,$partStr)  
- *  888:     function formatSize($sizeInBytes,$labels='')      
- *  924:     function convertMicrotime($microtime)     
- *  938:     function splitCalc($string,$operators)    
- *  960:     function calcPriority($string)    
- * 1000:     function calcParenthesis($string) 
- * 1027:     function htmlspecialchars_decode($value)  
- * 1041:     function deHSCentities($str)      
- * 1054:     function slashJS($string,$extended=0,$char="'")   
- * 1068:     function rawUrlEncodeJS($str)     
- * 1079:     function rawUrlEncodeFP($str)     
- * 1091:     function validEmail($email)       
- * 1107:     function formatForTextarea($content)      
+ *  477:     function fixed_lgd($string,$chars,$preStr='...')
+ *  499:     function fixed_lgd_pre($string,$chars)
+ *  513:     function breakTextForEmail($str,$implChar="\n",$charWidth=76)
+ *  533:     function breakLinesForEmail($str,$implChar="\n",$charWidth=76)
+ *  569:     function cmpIP($baseIP, $list)
+ *  616:     function inList($in_list,$item)
+ *  629:     function rmFromList($element,$list)
+ *  648:     function intInRange($theInt,$min,$max=2000000000,$zeroValue=0)
+ *  665:     function intval_positive($theInt)
+ *  679:     function int_from_ver($verNumberStr)
+ *  692:     function md5int($str)
+ *  704:     function uniqueList($in_list)
+ *  717:     function split_fileref($fileref)
+ *  754:     function dirname($path)
+ *  771:     function modifyHTMLColor($color,$R,$G,$B)
+ *  792:     function modifyHTMLColorAll($color,$all)
+ *  804:     function rm_endcomma($string)
+ *  817:     function danish_strtoupper($string)
+ *  832:     function convUmlauts($str)
+ *  847:     function shortMD5($input, $len=10)
+ *  859:     function testInt($var)
+ *  872:     function isFirstPartOfStr($str,$partStr)
+ *  889:     function formatSize($sizeInBytes,$labels='')
+ *  925:     function convertMicrotime($microtime)
+ *  939:     function splitCalc($string,$operators)
+ *  961:     function calcPriority($string)
+ * 1001:     function calcParenthesis($string)
+ * 1028:     function htmlspecialchars_decode($value)
+ * 1042:     function deHSCentities($str)
+ * 1055:     function slashJS($string,$extended=0,$char="'")
+ * 1069:     function rawUrlEncodeJS($str)
+ * 1080:     function rawUrlEncodeFP($str)
+ * 1092:     function validEmail($email)
+ * 1108:     function formatForTextarea($content)
  *
  *              SECTION: ARRAY FUNCTIONS
- * 1139:     function inArray($in_array,$item) 
- * 1157:     function intExplode($delim, $string)      
- * 1177:     function revExplode($delim, $string, $count=0)    
- * 1198:     function trimExplode($delim, $string, $onlyNonEmptyValues=0)      
- * 1223:     function uniqueArray($valueArray) 
- * 1246:     function removeArrayEntryByValue($array,$cmpValue)        
- * 1275:     function implodeArrayForUrl($name,$theArray,$str='',$skipBlank=0,$rawurlencodeParamName=0)
- * 1302:     function compileSelectedGetVarsFromArray($varList,$getArray,$GPvarAlt=1)  
- * 1326:     function addSlashesOnArray(&$theArray)    
- * 1351:     function stripSlashesOnArray(&$theArray)  
- * 1374:     function slashArray($arr,$cmd)    
- * 1391:     function array_merge_recursive_overrule ($arr0,$arr1,$notAddKeys=0) 
- * 1421:     function array_merge($arr1,$arr2) 
- * 1435:     function csvValues($row,$delim=',',$quote='"')    
+ * 1140:     function inArray($in_array,$item)
+ * 1158:     function intExplode($delim, $string)
+ * 1178:     function revExplode($delim, $string, $count=0)
+ * 1199:     function trimExplode($delim, $string, $onlyNonEmptyValues=0)
+ * 1224:     function uniqueArray($valueArray)
+ * 1247:     function removeArrayEntryByValue($array,$cmpValue)
+ * 1276:     function implodeArrayForUrl($name,$theArray,$str='',$skipBlank=0,$rawurlencodeParamName=0)
+ * 1303:     function compileSelectedGetVarsFromArray($varList,$getArray,$GPvarAlt=1)
+ * 1327:     function addSlashesOnArray(&$theArray)
+ * 1352:     function stripSlashesOnArray(&$theArray)
+ * 1375:     function slashArray($arr,$cmd)
+ * 1392:     function array_merge_recursive_overrule ($arr0,$arr1,$notAddKeys=0)
+ * 1422:     function array_merge($arr1,$arr2)
+ * 1436:     function csvValues($row,$delim=',',$quote='"')
  *
  *              SECTION: HTML/XML PROCESSING
- * 1478:     function get_tag_attributes($tag) 
- * 1516:     function split_tag_attributes($tag)       
- * 1551:     function implodeParams($arr,$xhtmlSafe=FALSE,$dontOmitBlankAttribs=FALSE) 
- * 1579:     function wrapJS($string, $linebreak=TRUE) 
- * 1608:     function xml2tree($string,$depth=999) 
- * 1693:     function array2xml($array,$NSprefix='',$level=0,$docTag='phparray',$spaceInd=0, $options=array(),$parentTagName='')       
- * 1775:     function xml2array($string,$NSprefix='') 
- * 1862:     function xmlRecompileFromStructValArray($vals)    
- * 1905:     function xmlGetHeaderAttribs($xmlData)    
+ * 1479:     function get_tag_attributes($tag)
+ * 1517:     function split_tag_attributes($tag)
+ * 1552:     function implodeParams($arr,$xhtmlSafe=FALSE,$dontOmitBlankAttribs=FALSE)
+ * 1580:     function wrapJS($string, $linebreak=TRUE)
+ * 1609:     function xml2tree($string,$depth=999)
+ * 1694:     function array2xml($array,$NSprefix='',$level=0,$docTag='phparray',$spaceInd=0, $options=array(),$parentTagName='')
+ * 1776:     function xml2array($string,$NSprefix='')
+ * 1863:     function xmlRecompileFromStructValArray($vals)
+ * 1906:     function xmlGetHeaderAttribs($xmlData)
  *
  *              SECTION: FILES FUNCTIONS
- * 1938:     function getURL($url)     
- * 1981:     function writeFile($file,$content)
- * 2004:     function get_dirs($path)  
- * 2030:     function getFilesInDir($path,$extensionList='',$prependPath=0,$order='')  
- * 2075:     function getAllFilesAndFoldersInPath($fileArr,$path,$extList='',$regDirs=0,$recursivityLevels=99)
- * 2097:     function removePrefixPathFromList($fileArr,$prefixToRemove)       
- * 2114:     function fixWindowsFilePath($theFile)     
- * 2124:     function resolveBackPath($pathStr)        
- * 2152:     function locationHeaderUrl($path) 
+ * 1939:     function getURL($url)
+ * 1982:     function writeFile($file,$content)
+ * 2002:     function mkdir($theNewFolder)
+ * 2019:     function get_dirs($path)
+ * 2045:     function getFilesInDir($path,$extensionList='',$prependPath=0,$order='')
+ * 2098:     function getAllFilesAndFoldersInPath($fileArr,$path,$extList='',$regDirs=0,$recursivityLevels=99)
+ * 2120:     function removePrefixPathFromList($fileArr,$prefixToRemove)
+ * 2137:     function fixWindowsFilePath($theFile)
+ * 2147:     function resolveBackPath($pathStr)
+ * 2175:     function locationHeaderUrl($path)
  *
  *              SECTION: DEBUG helper FUNCTIONS
- * 2192:     function debug_ordvalue($string,$characters=100)  
- * 2209:     function view_array($array_in)    
- * 2237:     function print_array($array_in)   
- * 2253:     function debug($var="",$brOrHeader=0)     
+ * 2215:     function debug_ordvalue($string,$characters=100)
+ * 2232:     function view_array($array_in)
+ * 2260:     function print_array($array_in)
+ * 2276:     function debug($var="",$brOrHeader=0)
  *
  *              SECTION: SYSTEM INFORMATION
- * 2322:     function getThisUrl()     
- * 2339:     function linkThisScript($getParams=array())
- * 2363:     function linkThisUrl($url,$getParams=array())     
- * 2385:     function getIndpEnv($getEnvName)  
- * 2569:     function milliseconds()   
- * 2582:     function clientInfo($useragent='')
+ * 2345:     function getThisUrl()
+ * 2362:     function linkThisScript($getParams=array())
+ * 2386:     function linkThisUrl($url,$getParams=array())
+ * 2412:     function getIndpEnv($getEnvName)
+ * 2604:     function milliseconds()
+ * 2617:     function clientInfo($useragent='')
  *
  *              SECTION: TYPO3 SPECIFIC FUNCTIONS
- * 2671:     function getFileAbsFileName($filename,$onlyRelative=1,$relToTYPO3_mainDir=0)      
- * 2707:     function validPathStr($theFile)   
- * 2719:     function isAbsPath($path) 
- * 2731:     function isAllowedAbsPath($path)  
- * 2749:     function verifyFilenameAgainstDenyPattern($filename)      
- * 2767:     function upload_copy_move($source,$destination)   
- * 2795:     function upload_to_tempfile($uploadedFileName)    
- * 2812:     function unlink_tempfile($uploadedTempFileName)   
- * 2827:     function tempnam($filePrefix)     
- * 2840:     function stdAuthCode($uid_or_record,$fields='')   
- * 2874:     function loadTCA($table)  
- * 2893:     function resolveSheetDefInDS($dataStructArray,$sheet='sDEF')      
- * 2921:     function resolveAllSheetsInDS($dataStructArray)   
- * 2950:     function callUserFunction($funcName,&$params,&$ref,$checkPrefix='user_',$silent=0)
- * 3053:     function makeInstanceService($serviceType, $serviceSubType='', $excludeServiceKeys='')
- * 3092:     function makeInstanceClassName($className)
- * 3112:     function plainMailEncoded($email,$subject,$message,$headers='',$enc='',$charset='ISO-8859-1',$dontEncodeSubject=0)        
- * 3159:     function quoted_printable($string,$maxlen=76)     
- * 3202:     function substUrlsInPlainText($message,$urlmode='76',$index_script_url='')        
- * 3237:     function makeRedirectUrl($inUrl,$l=0,$index_script_url='')        
- * 3265:     function freetypeDpiComp($font_size)      
- * 3284:     function devLog($msg, $extKey, $severity=0, $dataVar=FALSE)       
+ * 2706:     function getFileAbsFileName($filename,$onlyRelative=1,$relToTYPO3_mainDir=0)
+ * 2742:     function validPathStr($theFile)
+ * 2754:     function isAbsPath($path)
+ * 2766:     function isAllowedAbsPath($path)
+ * 2784:     function verifyFilenameAgainstDenyPattern($filename)
+ * 2802:     function upload_copy_move($source,$destination)
+ * 2830:     function upload_to_tempfile($uploadedFileName)
+ * 2847:     function unlink_tempfile($uploadedTempFileName)
+ * 2862:     function tempnam($filePrefix)
+ * 2875:     function stdAuthCode($uid_or_record,$fields='')
+ * 2909:     function loadTCA($table)
+ * 2928:     function resolveSheetDefInDS($dataStructArray,$sheet='sDEF')
+ * 2956:     function resolveAllSheetsInDS($dataStructArray)
+ * 2986:     function callUserFunction($funcName,&$params,&$ref,$checkPrefix='user_',$silent=0)
+ * 3165:     function makeInstanceService($serviceType, $serviceSubType='', $excludeServiceKeys='')
+ * 3204:     function makeInstanceClassName($className)
+ * 3224:     function plainMailEncoded($email,$subject,$message,$headers='',$enc='',$charset='ISO-8859-1',$dontEncodeSubject=0)
+ * 3271:     function quoted_printable($string,$maxlen=76)
+ * 3314:     function substUrlsInPlainText($message,$urlmode='76',$index_script_url='')
+ * 3349:     function makeRedirectUrl($inUrl,$l=0,$index_script_url='')
+ * 3377:     function freetypeDpiComp($font_size)
+ * 3396:     function devLog($msg, $extKey, $severity=0, $dataVar=FALSE)
  *
- * TOTAL FUNCTIONS: 108
+ * TOTAL FUNCTIONS: 109
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
index aa4afd5..fd3837e 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Class, doing the sending of Direct-mails, eg. through a cron-job
  * Belongs to/See "direct_mail" extension.
  *
  *
  *
  *
- *   86: class t3lib_dmailer extends t3lib_htmlmail 
- *   97:     function dmailer_prepare($row)    
- *  145:     function dmailer_sendAdvanced($recipRow,$tableNameChar)   
- *  217:     function dmailer_sendSimple($addressList) 
- *  239:     function dmailer_getBoundaryParts($cArray,$userCategories)        
- *  261:     function dmailer_masssend($query_info,$table,$mid)        
- *  297:     function dmailer_masssend_list($query_info,$mid)  
- *  358:     function shipOfMail($mid,$recipRow,$tKey) 
- *  376:     function convertFields($recipRow) 
- *  391:     function dmailer_setBeginEnd($mid,$key)   
- *  415:     function dmailer_howManySendMails($mid,$rtbl='')  
- *  429:     function dmailer_isSend($mid,$rid,$rtbl)  
- *  441:     function dmailer_getSentMails($mid,$rtbl) 
- *  460:     function dmailer_addToMailLog($mid,$rid,$size,$parsetime,$html)   
- *  482:     function runcron()        
+ *   86: class t3lib_dmailer extends t3lib_htmlmail
+ *   97:     function dmailer_prepare($row)
+ *  145:     function dmailer_sendAdvanced($recipRow,$tableNameChar)
+ *  216:     function dmailer_sendSimple($addressList)
+ *  238:     function dmailer_getBoundaryParts($cArray,$userCategories)
+ *  260:     function dmailer_masssend($query_info,$table,$mid)
+ *  296:     function dmailer_masssend_list($query_info,$mid)
+ *  357:     function shipOfMail($mid,$recipRow,$tKey)
+ *  375:     function convertFields($recipRow)
+ *  390:     function dmailer_setBeginEnd($mid,$key)
+ *  414:     function dmailer_howManySendMails($mid,$rtbl='')
+ *  428:     function dmailer_isSend($mid,$rid,$rtbl)
+ *  440:     function dmailer_getSentMails($mid,$rtbl)
+ *  459:     function dmailer_addToMailLog($mid,$rid,$size,$parsetime,$html)
+ *  481:     function runcron()
  *
  * TOTAL FUNCTIONS: 14
  * (This index is automatically created/updated by the extension "extdeveval")
 /**
  *
  * SETTING UP a cron job on a UNIX box for distribution:
- * 
+ *
  * Write at the shell:
- * 
+ *
  * crontab -e
- * 
- * 
+ *
+ *
  * Then enter this line follow by a line-break:
- * 
+ *
  * * * * * /www/[path-to-your-typo3-site]/typo3/mod/web/dmail/dmailerd.phpcron
- * 
- * Every minute the cronjob checks if there are mails in the queue. 
+ *
+ * Every minute the cronjob checks if there are mails in the queue.
  * If there are mails, 100 is sent at a time per job.
  */
 /**
@@ -114,7 +114,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                $this->dmailer['messageID'] = $this->messageid;
                $this->dmailer['sys_dmail_uid'] = $sys_dmail_uid;
                $this->dmailer['sys_dmail_rec'] = $row;
-       
+
                $this->dmailer['boundaryParts_html'] = explode($this->dmailer['sectionBoundary'], '_END-->'.$this->dmailer['html_content']);
                while(list($bKey,$bContent)=each($this->dmailer['boundaryParts_html'])) {
                        $this->dmailer['boundaryParts_html'][$bKey] = explode('-->',$bContent,2);
@@ -130,7 +130,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                while(list($bKey,$bContent)=each($this->dmailer['boundaryParts_plain']))        {
                        $this->dmailer['boundaryParts_plain'][$bKey] = explode('-->',$bContent,2);
                }
-               
+
                $this->flag_html = $this->theParts['html']['content'] ? 1 : 0;
                $this->flag_plain = $this->theParts['plain']['content'] ? 1 : 0;
        }
@@ -168,7 +168,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                                $this->theParts['html']['content'] = $this->encodeMsg($tempContent_HTML);
                                $returnCode|=1;
                        } else $this->theParts['html']['content'] = '';
-       
+
                                // Plain
                        if ($this->flag_plain)          {
                                $tempContent_Plain = $this->dmailer_getBoundaryParts($this->dmailer['boundaryParts_plain'],$recipRow['module_sys_dmail_category']);
@@ -183,7 +183,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                                $tempContent_Plain = str_replace('###SYS_TABLE_NAME###', $tableNameChar, $tempContent_Plain);   // Put in the tablename of the userinformation
                                $tempContent_Plain = str_replace('###SYS_MAIL_ID###', $this->dmailer['sys_dmail_uid'], $tempContent_Plain);     // Put in the uid of the mail-record
                                $tempContent_Plain = str_replace('###SYS_AUTHCODE###', $authCode, $tempContent_Plain);
-                               
+
                                if (trim($this->dmailer['sys_dmail_rec']['long_link_rdct_url']))        {
                                        $tempContent_Plain = t3lib_div::substUrlsInPlainText($tempContent_Plain,$this->dmailer['sys_dmail_rec']['long_link_mode']?'all':'76',trim($this->dmailer['sys_dmail_rec']['long_link_rdct_url']));
                                }
@@ -195,12 +195,12 @@ class t3lib_dmailer extends t3lib_htmlmail {
                                // Set content
                        $this->Xid = $midRidId.'-'.md5($midRidId);
                        $this->returnPath = str_replace('###XID###',$midRidId,$this->dmailer['sys_dmail_rec']['return_path']);
-                       
+
                        $this->part=0;
                        $this->setHeaders();
                        $this->setContent();
                        $this->setRecipient($recipRow['email']);
-                       
+
                        $this->message = str_replace($this->dmailer['messageID'], $uniqMsgId, $this->message);  // Put in the unique message id in whole message body
                        $this->sendtheMail();
                }
@@ -220,7 +220,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                if ($this->theParts['plain']['content'])                {
                        $this->theParts['plain']['content'] = $this->encodeMsg($this->dmailer_getBoundaryParts($this->dmailer['boundaryParts_plain'],-1));
                } else $this->theParts['plain']['content'] = '';
-               
+
                $this->setHeaders();
                $this->setContent();
                $this->setRecipient($addressList);
@@ -358,7 +358,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                if (!$this->dmailer_isSend($mid,$recipRow['uid'],$tKey))        {
                        $pt = t3lib_div::milliseconds();
                        $recipRow=$this->convertFields($recipRow);
-                       
+
 //                     debug('->'.$recipRow['uid'],1);
 //                     $recipRow['email']='kasper@typo3.com';
                        $rC=$this->dmailer_sendAdvanced($recipRow,$tKey);
@@ -458,7 +458,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
         */
        function dmailer_addToMailLog($mid,$rid,$size,$parsetime,$html) {
                $temp_recip = explode('_',$rid);
-               
+
                $insertFields = array(
                        'mid' => intval($mid),
                        'rtbl' => $temp_recip[0],
@@ -469,7 +469,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                        'parsetime' => $parsetime,
                        'html_sent' => intval($html)
                );
-               
+
                $GLOBALS['TYPO3_DB']->exec_INSERTquery('sys_dmail_maillog', $insertFields);
        }
 
@@ -486,7 +486,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                        die ($GLOBALS['TYPO3_DB']->sql_error());
                }
                $this->logArray[]='Invoked at '.date('h:i:s d-m-Y');
-               
+
                if ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
                        $this->logArray[]='sys_dmail record '.$row['uid'].", '".$row['subject']."' processed...";
                        $this->dmailer_prepare($row);
@@ -498,7 +498,7 @@ class t3lib_dmailer extends t3lib_htmlmail {
                                $finished = $this->dmailer_masssend($query_info,'fe_users',$row['uid']);
                        }*/
                        $finished = $this->dmailer_masssend_list($query_info,$row['uid']);
-                       
+
                        if ($finished)  {$this->dmailer_setBeginEnd($row['uid'],'end');}
                } else {
                        $this->logArray[]='Nothing to do.';
index 0f62a4e..dfb56d5 100755 (executable)
@@ -1,7 +1,7 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 2002-2004 René Fritz (r.fritz@colorcube.de)
 *  All rights reserved
 *
  *
  *
  *
- *   81: class t3lib_exec 
- *   91:     function checkCommand($cmd, $handler='')  
- *  162:     function getCommand($cmd, $handler='', $handlerOpt='')    
- *  191:     function addPaths($paths) 
- *  201:     function _getPaths()      
- *  269:     function _init()  
- *  285:     function _initPaths($paths='')    
- *  340:     function _getOS() 
- *  351:     function _fixPath($path)  
+ *   81: class t3lib_exec
+ *   91:     function checkCommand($cmd, $handler='')
+ *  162:     function getCommand($cmd, $handler='', $handlerOpt='')
+ *  191:     function addPaths($paths)
+ *  201:     function _getPaths()
+ *  269:     function _init()
+ *  285:     function _initPaths($paths='')
+ *  340:     function _getOS()
+ *  351:     function _fixPath($path)
  *
  * TOTAL FUNCTIONS: 8
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -107,7 +107,7 @@ class t3lib_exec {
                if (isset($GLOBALS['t3lib_exec']['apps'][$cmd]['valid'])) {
                        return false;
                }
-               
+
                reset($GLOBALS['t3lib_exec']['paths']);
                foreach($GLOBALS['t3lib_exec']['paths'] as $path => $validPath) {
                                // ignore invalid (false) paths
@@ -150,7 +150,7 @@ class t3lib_exec {
 
                return false;
        }
-       
+
        /**
         * returns a command string for exec(), system()
         *
@@ -223,7 +223,7 @@ class t3lib_exec {
                }
 
 
-               
+
 
 # ???? t3lib_div::getIndpEnv('REQUEST_URI');
 
index 193cf75..4324165 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -26,9 +26,9 @@
 ***************************************************************/
 /**
  * extending class to class t3lib_basicFileFunctions
- * 
+ *
  * $Id$
- * 
+ *
  * @author     Kasper Skaarhoj <kasper@typo3.com>
  */
 /**
  *
  *
  *
- *  123: class t3lib_extFileFunctions extends t3lib_basicFileFunctions 
- *  157:     function start($data)     
- *  183:     function init_actionPerms($setup) 
- *  216:     function mapData($inputArray)             
- *  225:     function processData()    
- *  274:     function printLogErrorMessages($redirect) 
- *  343:     function findRecycler($theFile)   
+ *  123: class t3lib_extFileFunctions extends t3lib_basicFileFunctions
+ *  157:     function start($data)
+ *  183:     function init_actionPerms($setup)
+ *  216:     function mapData($inputArray)
+ *  225:     function processData()
+ *  274:     function printLogErrorMessages($redirect)
+ *  343:     function findRecycler($theFile)
  *
  *              SECTION: File operation functions
- *  385:     function func_upload($cmds)       
- *  427:     function func_copy($cmds) 
- *  517:     function func_move($cmds) 
- *  608:     function func_delete($cmds)       
- *  674:     function func_rename($cmds)       
- *  722:     function func_newfolder($cmds)    
- *  756:     function func_unzip($cmds)        
- *  791:     function func_newfile($cmds)      
- *  829:     function func_edit($cmds) 
- *  878:     function writeLog($action,$error,$details_nr,$details,$data)      
+ *  385:     function func_upload($cmds)
+ *  427:     function func_copy($cmds)
+ *  517:     function func_move($cmds)
+ *  608:     function func_delete($cmds)
+ *  674:     function func_rename($cmds)
+ *  722:     function func_newfolder($cmds)
+ *  755:     function func_unzip($cmds)
+ *  790:     function func_newfile($cmds)
+ *  828:     function func_edit($cmds)
+ *  877:     function writeLog($action,$error,$details_nr,$details,$data)
  *
  * TOTAL FUNCTIONS: 16
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
+
 
 
 
 
 /**
  * COMMENT:
- * 
+ *
  * see basicFileFunctions
  * see tce_file.php for SYNTAX!
- * 
+ *
  * This class contains functions primarily used by tce_file.php (Typo Core Engine for filemanipulation)
  * Functions include copying, moving, deleting, uploading and so on...
- * 
+ *
  * Important internal variables:
- * 
+ *
  * $filemounts         (see basicFileFunctions)
  * $f_ext      (see basicFileFunctions)
  *     ... All fileoperations must be within the filemount-paths. Further the fileextension MUST validate true with the f_ext array
- * 
+ *
  * $actionPerms        :       This array is self-explaning (look in the class below). It grants access to the functions. This could be set from outside in order to enabled functions to users. see also the function init_actionPerms() which takes input directly from the user-record
  * $maxCopyFileSize = 10000;   // max copy size for files
  * $maxMoveFileSize = 10000;   // max move size for files
  * $maxUploadFileSize = 10000; // max upload size for files. Remember that PHP has an inner limit often set to 2 MB
- * 
+ *
  * $recyclerFN='_recycler_'            :       This is regarded to be the recycler folder
- * 
+ *
  * The unzip-function allows unzip only if the destination path has it's f_ext[]['allow'] set to '*'!!
  * You are allowed to copy/move folders within the same 'space' (web/ftp).
  * You are allowed to copy/move folders between spaces (web/ftp) IF the destination has it's f_ext[]['allow'] set to '*'!
- * 
- * 
+ *
+ *
  * Advice:
  * You should always exclude php-files from the webspace. This will keep people from uploading, copy/moving and renaming files to the php3/php-extension.
  * You should never mount a ftp_space 'below' the webspace so that it reaches into the webspace. This is because if somebody unzips a zip-file in the ftp-space so that it reaches out into the webspace this will be a violation of the safety
  * Eg. THIS IS A BAD IDEA: you have an ftp-space that is '/www/' and a web-space that is '/www/htdocs/'
- * 
- * 
- * 
+ *
+ *
+ *
  * Dependencies:
  * t3lib_div
  * t3lib_basicfilefunctions
@@ -143,13 +143,13 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions     {
                'renameFile' => 0,
                'renameFolder' => 0
        );
-       
-       var $recyclerFN = '_recycler_'; 
+
+       var $recyclerFN = '_recycler_';
        var $useRecycler = 1;                           // 0 = no, 1 = if available, 2 = always
        var $PHPFileFunctions=0;                        // If set, all fileoperations are done by the default PHP-functions. This is necessary under windows! On UNIX the system commands by exec() can be used unless safe_mode is enabled
-       var $dont_use_exec_commands=0;          // This is necessary under windows! 
-       
-               
+       var $dont_use_exec_commands=0;          // This is necessary under windows!
+
+
        /**
         * @param       [type]          $data: ...
         * @return      [type]          ...
@@ -226,7 +226,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                if (!$this->isInit) return false;
                if (is_array($this->datamap))   {
                        #t3lib_div::stripSlashesOnArray($this->datamap);        // NOT needed anymore since $this->datamap is required to be stripped already!
-               
+
                        reset($this->datamap);
                        while (list($action, $content) = each($this->datamap))  {
                                if (is_array($content)) {
@@ -266,7 +266,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                        }
                }
        }
-       
+
        /**
         * @param       [type]          $redirect: ...
         * @return      [type]          ...
@@ -361,11 +361,11 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions     {
 
 
 
-       
 
 
 
-       
+
+
 
        /*************************************
         *
@@ -430,11 +430,11 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions     {
                $theDest = $this->is_directory($cmds['target']);        // Clean up destination directory
                $altName = $cmds['altName'];
                if (!$theDest)  {
-                       $this->writelog(2,2,100,"Destination '%s' was not a directory",Array($cmds['target'])); 
+                       $this->writelog(2,2,100,"Destination '%s' was not a directory",Array($cmds['target']));
                        return false;
                }
                if (!$this->isPathValid($theFile) || !$this->isPathValid($theDest))     {
-                       $this->writelog(2,2,101,"Target or destination had invalid path ('..' and '//' is not allowed in path). T='%s', D='%s'",Array($theFile,$theDest)); 
+                       $this->writelog(2,2,101,"Target or destination had invalid path ('..' and '//' is not allowed in path). T='%s', D='%s'",Array($theFile,$theDest));
                        return false;
                }
                if (@is_file($theFile)) {       // If we are copying a file...
@@ -447,7 +447,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                                        } else {
                                                $theDestFile=$theDest.'/'.$fI['file'];
                                        }
-                                       if ($theDestFile && !@file_exists($theDestFile))        {       
+                                       if ($theDestFile && !@file_exists($theDestFile))        {
                                                if ($this->checkIfAllowed($fI['fileext'], $theDest, $fI['file'])) {
                                                        if ($this->checkPathAgainstMounts($theDestFile) && $this->checkPathAgainstMounts($theFile))     {
                                                                if ($this->PHPFileFunctions)    {
@@ -463,12 +463,12 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions     {
                                                                } else $this->writelog(2,2,109,"File '%s' WAS NOT copied to '%s'! Write-permission problem?",Array($theFile,$theDestFile));
                                                        } else  $this->writelog(2,1,110,"Target or destination was not within your mountpoints! T='%s', D='%s'",Array($theFile,$theDestFile));
                                                } else $this->writelog(2,1,111,"Fileextension '%s' is not allowed in '%s'!",Array($fI['fileext'],$theDest.'/'));
-                                       } else $this->writelog(2,1,112,"File '%s' already exists!",Array($theDestFile));        
+                                       } else $this->writelog(2,1,112,"File '%s' already exists!",Array($theDestFile));
                                } else $this->writelog(2,1,113,"File '%s' exceeds the size-limit of %s bytes",Array($theFile,$this->maxCopyFileSize*1024));
                        } else $this->writelog(2,1,114,"You are not allowed to copy files",'');
                        // FINISHED copying file
 
-               } elseif (@is_dir($theFile) && !$this->dont_use_exec_commands) {                // if we're copying a folder 
+               } elseif (@is_dir($theFile) && !$this->dont_use_exec_commands) {                // if we're copying a folder
                        if ($this->actionPerms['copyFolder'])   {
                                $theFile = $this->is_directory($theFile);
                                if ($theFile)   {
@@ -494,9 +494,9 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                                                                } else $this->writelog(2,1,120,"Target or destination was not within your mountpoints! T='%s', D='%s'",Array($theFile,$theDestFile));
                                                        } else $this->writelog(2,1,121,"You don't have full access to the destination directory '%s'!",Array($theDest.'/'));
                                                } else $this->writelog(2,1,122,"Destination cannot be inside the target! D='%s', T='%s'",Array($theDestFile.'/',$theFile.'/'));
-                                       } else $this->writelog(2,1,123,"Target '%s' already exists!",Array($theDestFile));      
-                               } else $this->writelog(2,2,124,"Target seemed not to be a directory! (Shouldn't happen here!)",'');     
-                       } else $this->writelog(2,1,125,"You are not allowed to copy directories",'');   
+                                       } else $this->writelog(2,1,123,"Target '%s' already exists!",Array($theDestFile));
+                               } else $this->writelog(2,2,124,"Target seemed not to be a directory! (Shouldn't happen here!)",'');
+                       } else $this->writelog(2,1,125,"You are not allowed to copy directories",'');
                        // FINISHED copying directory
 
                } else {
@@ -520,11 +520,11 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions     {
                $theDest = $this->is_directory($cmds['target']);        // Clean up destination directory
                $altName = $cmds['altName'];
                if (!$theDest)  {
-                       $this->writelog(3,2,100,"Destination '%s' was not a directory",Array($cmds['target'])); 
+                       $this->writelog(3,2,100,"Destination '%s' was not a directory",Array($cmds['target']));
                        return false;
                }
                if (!$this->isPathValid($theFile) || !$this->isPathValid($theDest))     {
-                       $this->writelog(3,2,101,"Target or destination had invalid path ('..' and '//' is not allowed in path). T='%s', D='%s'",Array($theFile,$theDest)); 
+                       $this->writelog(3,2,101,"Target or destination had invalid path ('..' and '//' is not allowed in path). T='%s', D='%s'",Array($theFile,$theDest));
                        return false;
                }
                if (@is_file($theFile)) {       // If we are moving a file...
@@ -537,7 +537,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                                        } else {
                                                $theDestFile=$theDest.'/'.$fI['file'];
                                        }
-                                       if ($theDestFile && !@file_exists($theDestFile))        {       
+                                       if ($theDestFile && !@file_exists($theDestFile))        {
                                                if ($this->checkIfAllowed($fI['fileext'], $theDest, $fI['file'])) {
                                                        if ($this->checkPathAgainstMounts($theDestFile) && $this->checkPathAgainstMounts($theFile))     {
                                                                if ($this->PHPFileFunctions)    {
@@ -553,7 +553,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                                                                } else $this->writelog(3,2,109,"File '%s' WAS NOT moved to '%s'! Write-permission problem?",Array($theFile,$theDestFile));
                                                        } else $this->writelog(3,1,110,"Target or destination was not within your mountpoints! T='%s', D='%s'",Array($theFile,$theDestFile));
                                                } else $this->writelog(3,1,111,"Fileextension '%s' is not allowed in '%s'!",Array($fI['fileext'],$theDest.'/'));
-                                       } else $this->writelog(3,1,112,"File '%s' already exists!",Array($theDestFile));        
+                                       } else $this->writelog(3,1,112,"File '%s' already exists!",Array($theDestFile));
                                } else $this->writelog(3,1,113,"File '%s' exceeds the size-limit of %s bytes",Array($theFile,$this->maxMoveFileSize*1024));
                        } else $this->writelog(3,1,114,"You are not allowed to move files",'');
                        // FINISHED moving file
@@ -587,16 +587,16 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions     {
                                                                } else $this->writelog(3,1,120,"Target or destination was not within your mountpoints! T='%s', D='%s'",Array($theFile,$theDestFile));
                                                        } else $this->writelog(3,1,121,"You don't have full access to the destination directory '%s'!",Array($theDest.'/'));
                                                } else $this->writelog(3,1,122,"Destination cannot be inside the target! D='%s', T='%s'",Array($theDestFile.'/',$theFile.'/'));
-                                       } else $this->writelog(3,1,123,"Target '%s' already exists!",Array($theDestFile));      
-                               } else $this->writelog(3,2,124,"Target seemed not to be a directory! (Shouldn't happen here!)",'');     
-                       } else $this->writelog(3,1,125,"You are not allowed to move directories",'');   
+                                       } else $this->writelog(3,1,123,"Target '%s' already exists!",Array($theDestFile));
+                               } else $this->writelog(3,2,124,"Target seemed not to be a directory! (Shouldn't happen here!)",'');
+                       } else $this->writelog(3,1,125,"You are not allowed to move directories",'');
                        // FINISHED moving directory
 
                } else {
                        $this->writelog(3,2,130,"The item '%s' was not a file or directory!",Array($theFile));
                }
        }
-       
+
        /**
         * Deleting files and folders (action=4)
         * $cmds['data'] is the the file/folder to delete
@@ -609,7 +609,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                if (!$this->isInit) return false;
                $theFile = $cmds['data'];
                if (!$this->isPathValid($theFile))      {
-                       $this->writelog(4,2,101,"Target '%s' had invalid path ('..' and '//' is not allowed in path).",Array($theFile)); 
+                       $this->writelog(4,2,101,"Target '%s' had invalid path ('..' and '//' is not allowed in path).",Array($theFile));
                        return false;
                }
                if ($this->useRecycler && $recyclerPath=$this->findRecycler($theFile))  {
@@ -620,7 +620,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                        $newCmds['altName']=1;
                        $this->func_move($newCmds);
                        $this->writelog(4,0,4,"Item '%s' moved to recycler at '%s'",Array($theFile,$recyclerPath));
-                       return true;                    
+                       return true;
                } elseif ($this->useRecycler != 2) {    // if $this->useRecycler==2 then we cannot delete for real!!
                        if (@is_file($theFile)) {       // If we are deleting a file...
                                if ($this->actionPerms['deleteFile'])   {
@@ -632,7 +632,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                                        } else $this->writelog(4,1,111,"Target was not within your mountpoints! T='%s'",Array($theFile));
                                } else $this->writelog(4,1,112,"You are not allowed to delete files",'');
                                // FINISHED deleting file
-       
+
                        } elseif (@is_dir($theFile) && !$this->dont_use_exec_commands) {        // if we're deleting a folder
                                if ($this->actionPerms['deleteFolder']) {
                                        $theFile = $this->is_directory($theFile);
@@ -655,9 +655,9 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                                                        }
                                                } else $this->writelog(4,1,121,"Target was not within your mountpoints! T='%s'",Array($theFile));
                                        } else $this->writelog(4,2,122,"Target seemed not to be a directory! (Shouldn't happen here!)",'');
-                               } else $this->writelog(4,1,123,"You are not allowed to delete directories",''); 
+                               } else $this->writelog(4,1,123,"You are not allowed to delete directories",'');
                                // FINISHED copying directory
-       
+
                        } else $this->writelog(4,2,130,"The item was not a file or directory! '%s'",Array($theFile));
                } else $this->writelog(4,1,131,"No recycler found!",'');
        }
@@ -725,7 +725,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                if ($theFolder) {
                        if ($this->checkFileNameLen($theFolder))        {
                                $theTarget = $this->is_directory($cmds['target']);      // Check the target dir
-                               if ($theTarget) {       
+                               if ($theTarget) {
                                        if ($this->actionPerms['newFolder'])    {
                                                $theNewFolder = $theTarget.'/'.$theFolder;
                                                if ($this->checkPathAgainstMounts($theNewFolder))       {
@@ -736,12 +736,12 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions     {
                                                                } else $this->writelog(6,1,100,"Directory '%s' not created. Write-permission problem in '%s'?",Array($theFolder,$theTarget.'/'));
                                                        } else $this->writelog(6,1,101,"File or directory '%s' existed already!",Array($theNewFolder));
                                                } else $this->writelog(6,1,102,"Destination path '%s' was not within your mountpoints!",Array($theTarget.'/'));
-                                       } else $this->writelog(6,1,103,"You are not allowed to create directories!",'');        
+                                       } else $this->writelog(6,1,103,"You are not allowed to create directories!",'');
                                } else $this->writelog(6,2,104,"Destination '%s' was not a directory",Array($cmds['target']));
                        } else $this->writelog(6,1,105,"New name '%s' was too long (max %s characters)",Array($theFolder,$this->maxInputNameLen));
                }
        }
-       
+
        /**
         * Unzipping file (action=7)
         * This is permitted only if the user has fullAccess or if the file resides
@@ -764,7 +764,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                        if ($theDest)   {
                                if ($this->actionPerms['unzipFile'])    {
                                        if ($fI['fileext']=='zip')      {
-                                               if ($this->checkIfFullAccess($theDest)) {                               
+                                               if ($this->checkIfFullAccess($theDest)) {
                                                        if ($this->checkPathAgainstMounts($theFile) && $this->checkPathAgainstMounts($theDest.'/'))     {
                                                                        // No way to do this under windows.
                                                                $cmd = $this->unzipPath.'unzip -qq "'.$theFile.'" -d "'.$theDest.'"';
@@ -774,7 +774,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                                                } else $this->writelog(7,1,101,"You don't have full access to the destination directory '%s'!",Array($theDest));
                                        } else $this->writelog(7,1,102,"Fileextension is not 'zip'",'');
                                } else $this->writelog(7,1,103,"You are not allowed to unzip files",'');
-                       } else $this->writelog(7,2,104,"Destination '%s' was not a directory",Array($cmds['target'])); 
+                       } else $this->writelog(7,2,104,"Destination '%s' was not a directory",Array($cmds['target']));
                } else $this->writelog(7,2,105,"The file '%s' did not exist!",Array($theFile));
        }
 
@@ -811,12 +811,12 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions     {
                                                                } else $this->writelog(8,1,106,"Fileextension '%s' was not allowed!",Array($fI['fileext']));
                                                        } else $this->writelog(8,1,101,"File '%s' existed already!",Array($theNewFile));
                                                } else $this->writelog(8,1,102,"Destination path '%s' was not within your mountpoints!",Array($theTarget.'/'));
-                                       } else $this->writelog(8,1,103,"You are not allowed to create files!",'');      
+                                       } else $this->writelog(8,1,103,"You are not allowed to create files!",'');
                                } else $this->writelog(8,2,104,"Destination '%s' was not a directory",Array($cmds['target']));
                        } else $this->writelog(8,1,105,"New name '%s' was too long (max %s characters)",Array($newName,$this->maxInputNameLen));
                }
        }
-       
+
        /**
         * Editing textfiles or foldes (action=9)
         * $cmds['data'] is the new content
@@ -833,7 +833,7 @@ class t3lib_extFileFunctions extends t3lib_basicFileFunctions       {
                $type = filetype($theTarget);
                if ($type=='file')      {               // $type MUST BE file
                        $fileInfo = t3lib_div::split_fileref($theTarget);               // Fetches info about path, name, extention of $theTarget
-                       $fI =$fileInfo; 
+                       $fI =$fileInfo;
                        if ($this->checkPathAgainstMounts($fileInfo['path']))   {
                                if ($this->actionPerms['editFile'])     {
                                        $fI = t3lib_div::split_fileref($theTarget);
index 48786d7..fa95085 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
  *
  *
  *
- *  113: class t3lib_extMgm 
+ *  113: class t3lib_extMgm
  *
  *              SECTION: PATHS and other evaluation
- *  129:     function isLoaded($key,$exitOnError=0)    
- *  144:     function extPath($key,$script='') 
- *  158:     function extRelPath($key) 
- *  172:     function siteRelPath($key)        
- *  183:     function getCN($key)      
+ *  129:     function isLoaded($key,$exitOnError=0)
+ *  144:     function extPath($key,$script='')
+ *  158:     function extRelPath($key)
+ *  172:     function siteRelPath($key)
+ *  183:     function getCN($key)
  *
  *              SECTION: Adding BACKEND features
- *  215:     function addTCAcolumns($table,$columnArray,$addTofeInterface=0)   
- *  238:     function addToAllTCAtypes($table,$str,$specificTypesList='',$beforeList='')       
- *  289:     function allowTableOnStandardPages($table)        
- *  305:     function addModule($main,$sub='',$position='',$path='')   
- *  366:     function insertModuleFunction($modname,$className,$classPath,$title,$MM_key='function')   
- *  383:     function addPageTSConfig($content)        
- *  396:     function addUserTSConfig($content)        
- *  410:     function addLLrefForTCAdescr($tca_descr_key,$file_ref)    
+ *  215:     function addTCAcolumns($table,$columnArray,$addTofeInterface=0)
+ *  238:     function addToAllTCAtypes($table,$str,$specificTypesList='',$beforeList='')
+ *  289:     function allowTableOnStandardPages($table)
+ *  305:     function addModule($main,$sub='',$position='',$path='')
+ *  366:     function insertModuleFunction($modname,$className,$classPath,$title,$MM_key='function')
+ *  383:     function addPageTSConfig($content)
+ *  396:     function addUserTSConfig($content)
+ *  410:     function addLLrefForTCAdescr($tca_descr_key,$file_ref)
  *
  *              SECTION: Adding SERVICES features
- *  452:     function addService($extKey, $serviceType, $serviceKey, $info)    
- *  517:     function findService($serviceType, $serviceSubType='', $excludeServiceKeys='') 
- *  584:     function deactivateService($serviceType, $serviceKey) 
+ *  452:     function addService($extKey, $serviceType, $serviceKey, $info)
+ *  517:     function findService($serviceType, $serviceSubType='', $excludeServiceKeys='')
+ *  584:     function deactivateService($serviceType, $serviceKey)
  *
  *              SECTION: Adding FRONTEND features
- *  623:     function addPlugin($itemArray,$type='list_type')  
- *  647:     function addPiFlexFormValue($piKeyToMatch,$value) 
- *  666:     function addToInsertRecords($table,$content_table='tt_content',$content_field='records')  
- *  696:     function addPItoST43($key,$classFile='',$prefix='',$type='list_type',$cached=0)   
- *  770:     function addStaticFile($extKey,$path,$title)      
- *  788:     function addTypoScriptSetup($content)     
- *  801:     function addTypoScriptConstants($content) 
- *  817:     function addTypoScript($key,$type,$content,$afterStaticUid=0)     
+ *  623:     function addPlugin($itemArray,$type='list_type')
+ *  647:     function addPiFlexFormValue($piKeyToMatch,$value)
+ *  666:     function addToInsertRecords($table,$content_table='tt_content',$content_field='records')
+ *  696:     function addPItoST43($key,$classFile='',$prefix='',$type='list_type',$cached=0)
+ *  770:     function addStaticFile($extKey,$path,$title)
+ *  788:     function addTypoScriptSetup($content)
+ *  801:     function addTypoScriptConstants($content)
+ *  817:     function addTypoScript($key,$type,$content,$afterStaticUid=0)
  *
  *              SECTION: INTERNAL EXTENSION MANAGEMENT:
- *  879:     function typo3_loadExtensions()   
- *  958:     function _makeIncludeHeader($key,$file)   
- *  978:     function isCacheFilesAvailable($cacheFilePrefix)  
- *  990:     function isLocalconfWritable()    
- * 1002:     function cannotCacheFilesWritable($cacheFilePrefix)       
- * 1025:     function currentCacheFiles()      
- * 1047:     function writeCacheFiles($extensions,$cacheFilePrefix)    
+ *  879:     function typo3_loadExtensions()
+ *  958:     function _makeIncludeHeader($key,$file)
+ *  978:     function isCacheFilesAvailable($cacheFilePrefix)
+ *  990:     function isLocalconfWritable()
+ * 1002:     function cannotCacheFilesWritable($cacheFilePrefix)
+ * 1025:     function currentCacheFiles()
+ * 1047:     function writeCacheFiles($extensions,$cacheFilePrefix)
  *
  * TOTAL FUNCTIONS: 31
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 /**
  * Extension Management functions
  *
@@ -118,7 +118,7 @@ class t3lib_extMgm {
         *       PATHS and other evaluation
         *
         ***************************************/
-       
+
        /**
         * Returns true if the extension with extension key $key is loaded.
         *
@@ -184,22 +184,22 @@ class t3lib_extMgm {
                return substr($key,0,5)=='user_' ? 'user_'.str_replace('_','',substr($key,5)) : 'tx_'.str_replace('_','',$key);
        }
 
-       
-       
 
 
 
-       
-       
-       
-       
+
+
+
+
+
+
        /**************************************
         *
-        *       Adding BACKEND features 
+        *       Adding BACKEND features
         *       (related to core features)
         *
         ***************************************/
-       
+
        /**
         * Adding fields to an existing table definition in $TCA
         * Adds an array with $TCA column-configuration to the $TCA-entry for that table.
@@ -214,7 +214,7 @@ class t3lib_extMgm {
         */
        function addTCAcolumns($table,$columnArray,$addTofeInterface=0) {
                global $TCA;
-               t3lib_div::loadTCA($table);     
+               t3lib_div::loadTCA($table);
                if (is_array($columnArray) && is_array($TCA[$table]) && is_array($TCA[$table]['columns']))      {
                        $TCA[$table]['columns'] = array_merge($TCA[$table]['columns'],$columnArray);    // Candidate for t3lib_div::array_merge() if integer-keys will some day make trouble...
                        if ($addTofeInterface)  $TCA[$table]['feInterface']['fe_admin_fieldList'].=','.implode(',',array_keys($columnArray));
@@ -241,7 +241,7 @@ class t3lib_extMgm {
                $beforeFields=t3lib_div::trimExplode(',',$beforeList,1);
                $before=count($beforeFields);
 
-               t3lib_div::loadTCA($table);     
+               t3lib_div::loadTCA($table);
                if (trim($str) && is_array($TCA[$table]) && is_array($TCA[$table]['types']))    {
                        foreach($TCA[$table]['types'] as $k => $v)      {
                                if (!$specificTypesList || t3lib_div::inList($specificTypesList,$k))    {
@@ -288,7 +288,7 @@ class t3lib_extMgm {
         */
        function allowTableOnStandardPages($table)      {
                global $PAGES_TYPES;
-               
+
                $PAGES_TYPES['default']['allowedTables'].=','.$table;
        }
 
@@ -304,10 +304,10 @@ class t3lib_extMgm {
         */
        function addModule($main,$sub='',$position='',$path='') {
                global $TBE_MODULES;
-               
+
                if (isset($TBE_MODULES[$main]) && $sub) {       // If there is already a main module by this name:
 
-                               // Adding the submodule to the correct position:        
+                               // Adding the submodule to the correct position:
                        list($place,$modRef)=t3lib_div::trimExplode(':',$position,1);
                        $mods = t3lib_div::trimExplode(',',$TBE_MODULES[$main],1);
                        if (!in_array($sub,$mods))      {
@@ -343,7 +343,7 @@ class t3lib_extMgm {
                        $TBE_MODULES[$main]=$sub;
                }
 
-                       // Adding path:                 
+                       // Adding path:
                if ($path)      {
                        $TBE_MODULES['_PATHS'][$main.($sub?'_'.$sub:'')]=$path;
                }
@@ -420,9 +420,9 @@ class t3lib_extMgm {
                }
        }
 
-       
-       
-       
+
+
+
 
 
 
@@ -591,23 +591,23 @@ class t3lib_extMgm {
 
 
 
-       
-       
-       
-       
-       
-       
-       
-       
-       
+
+
+
+
+
+
+
+
+
 
        /**************************************
         *
-        *       Adding FRONTEND features 
+        *       Adding FRONTEND features
         *       (related specifically to "cms" extension)
         *
         ***************************************/
-       
+
        /**
         * Adds an entry to the list of plugins in content elements of type "Insert plugin"
         *
@@ -697,22 +697,22 @@ class t3lib_extMgm {
                global $TYPO3_LOADED_EXT;
                $classFile = $classFile ? $classFile : 'pi/class.tx_'.str_replace('_','',$key).$prefix.'.php';
                $cN = t3lib_extMgm::getCN($key);
-               
+
                        // General plugin:
                if ($cached)    {
                        $pluginContent = trim('
 includeLibs.'.$cN.$prefix.' = '.$TYPO3_LOADED_EXT[$key]['siteRelPath'].$classFile.'
 plugin.'.$cN.$prefix.' = USER
-plugin.'.$cN.$prefix.' { 
+plugin.'.$cN.$prefix.' {
   userFunc = '.$cN.$prefix.'->main
-}');   
+}');
                } else {
                        $pluginContent = trim('
 plugin.'.$cN.$prefix.' = USER_INT
-plugin.'.$cN.$prefix.' { 
+plugin.'.$cN.$prefix.' {
   includeLibs = '.$TYPO3_LOADED_EXT[$key]['siteRelPath'].$classFile.'
   userFunc = '.$cN.$prefix.'->main
-}');   
+}');
                }
                t3lib_extMgm::addTypoScript($key,'setup','
 # Setting '.$key.' plugin TypoScript
@@ -732,7 +732,7 @@ plugin.'.$cN.$prefix.' {
                        case 'CType':
                                $addLine = trim('
 tt_content.'.$key.$prefix.' = COA
-tt_content.'.$key.$prefix.' { 
+tt_content.'.$key.$prefix.' {
        10 = < lib.stdheader
        20 = < plugin.'.$cN.$prefix.'
 }
@@ -816,7 +816,7 @@ tt_content.'.$key.$prefix.' {
         */
        function addTypoScript($key,$type,$content,$afterStaticUid=0)   {
                global $TYPO3_CONF_VARS;
-               
+
                if ($type=='setup' || $type=='editorcfg' || $type=='constants')         {
                        $content = '
 
@@ -844,7 +844,7 @@ tt_content.'.$key.$prefix.' {
 
 
 
-       
+
 
 
 
@@ -859,7 +859,7 @@ tt_content.'.$key.$prefix.' {
         *       INTERNAL EXTENSION MANAGEMENT:
         *
         ***************************************/
-       
+
        /**
         * Loading extensions configured in $TYPO3_CONF_VARS['EXT']['extList']
         *
@@ -884,8 +884,8 @@ tt_content.'.$key.$prefix.' {
 
                        // Empty array as a start.
                $extensions = array();
-               
-                       // 
+
+                       //
                if ($rawExtList)        {
                                // The cached File prefix.
                        $cacheFilePrefix = 'temp_CACHED';
@@ -908,7 +908,7 @@ tt_content.'.$key.$prefix.' {
                                        } elseif (@is_dir(PATH_site.TYPO3_mainDir.'sysext/'.$temp_extKey))      {
                                                $extensions[$temp_extKey]=array('type'=>'S','siteRelPath'=>TYPO3_mainDir.'sysext/'.$temp_extKey.'/','typo3RelPath'=>'sysext/'.$temp_extKey.'/');
                                        }
-                                       
+
                                        $files = t3lib_div::trimExplode(',','
                                                ext_localconf.php,
                                                ext_tables.php,
@@ -927,8 +927,8 @@ tt_content.'.$key.$prefix.' {
                                        }
                                }
                                unset($extensions['_CACHEFILE']);
-                               
-                               
+
+
                                // write cache?
                                if ($TYPO3_CONF_VARS['EXT']['extCache'])        {
                                        $wrError = t3lib_extMgm::cannotCacheFilesWritable($cacheFilePrefix);
@@ -976,8 +976,8 @@ $_EXTCONF = $TYPO3_CONF_VARS[\'EXT\'][\'extConf\'][$_EXTKEY];
         * @internal
         */
        function isCacheFilesAvailable($cacheFilePrefix)        {
-               return 
-                       @is_file(PATH_typo3conf.$cacheFilePrefix.'_ext_localconf.php') && 
+               return
+                       @is_file(PATH_typo3conf.$cacheFilePrefix.'_ext_localconf.php') &&
                        @is_file(PATH_typo3conf.$cacheFilePrefix.'_ext_tables.php');
        }
 
@@ -1004,11 +1004,11 @@ $_EXTCONF = $TYPO3_CONF_VARS[\'EXT\'][\'extConf\'][$_EXTKEY];
                if (!@is_writeable(PATH_typo3conf))     {
                        $error[]=PATH_typo3conf;
                }
-               if (@is_file(PATH_typo3conf.$cacheFilePrefix.'_ext_localconf.php') && 
+               if (@is_file(PATH_typo3conf.$cacheFilePrefix.'_ext_localconf.php') &&
                        !@is_writeable(PATH_typo3conf.$cacheFilePrefix.'_ext_localconf.php'))   {
                                $error[]=PATH_typo3conf.$cacheFilePrefix.'_ext_localconf.php';
                }
-               if (@is_file(PATH_typo3conf.$cacheFilePrefix.'_ext_tables.php') && 
+               if (@is_file(PATH_typo3conf.$cacheFilePrefix.'_ext_tables.php') &&
                        !@is_writeable(PATH_typo3conf.$cacheFilePrefix.'_ext_tables.php'))      {
                                $error[]=PATH_typo3conf.$cacheFilePrefix.'_ext_tables.php';
                }
@@ -1024,7 +1024,7 @@ $_EXTCONF = $TYPO3_CONF_VARS[\'EXT\'][\'extConf\'][$_EXTKEY];
         */
        function currentCacheFiles()    {
                global $TYPO3_LOADED_EXT;
-               
+
                if ($TYPO3_LOADED_EXT['_CACHEFILE'])    {
                        if (t3lib_extMgm::isCacheFilesAvailable($TYPO3_LOADED_EXT['_CACHEFILE']))       {
                                return array(
@@ -1034,7 +1034,7 @@ $_EXTCONF = $TYPO3_CONF_VARS[\'EXT\'][\'extConf\'][$_EXTKEY];
                        }
                }
        }
-       
+
        /**
         * Compiles/Creates the two cache-files in typo3conf/ based on $cacheFilePrefix
         * Returns a array with the key "_CACHEFILE" set to the $cacheFilePrefix value
index 6736471..50a99f4 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Contains the base class for 'Extension Objects' in backend modules.
  *
  * $Id$
  *
  *
  *
- *  145: class t3lib_extobjbase 
- *  197:     function init(&$pObj,$conf)       
- *  221:     function handleExternalFunctionValue()    
- *  237:     function incLocalLang()   
- *  250:     function checkExtObj()    
- *  265:     function extObjContent()  
- *  276:     function modMenu()        
+ *  145: class t3lib_extobjbase
+ *  197:     function init(&$pObj,$conf)
+ *  221:     function handleExternalFunctionValue()
+ *  237:     function incLocalLang()
+ *  250:     function checkExtObj()
+ *  265:     function extObjContent()
+ *  276:     function modMenu()
  *
  * TOTAL FUNCTIONS: 6
  * (This index is automatically created/updated by the extension "extdeveval")
 
 /**
  * EXAMPLE: One level.
- * 
+ *
  * This can be seen in the extension 'cms' where the info module have a function added. In 'ext_tables.php' this is done by this function call:
- * 
+ *
  *     t3lib_extMgm::insertModuleFunction(
  *             'web_info',
  *             'tx_cms_webinfo_page',
  *             t3lib_extMgm::extPath($_EXTKEY).'web_info/class.tx_cms_webinfo.php',
  *             'LLL:EXT:cms/locallang_tca.php:mod_tx_cms_webinfo_page'
  *     );
- * 
- * 
- * 
+ *
+ *
+ *
  * EXAMPLE: Two levels.
- * This is the advanced example. You can see it with the extension 'func_wizards' which is the first layer but then providing another layer for extensions to connect by. 
+ * This is the advanced example. You can see it with the extension 'func_wizards' which is the first layer but then providing another layer for extensions to connect by.
  * The key used in TBE_MODULES_EXT is normally 'function' (for the 'function menu') but the 'func_wizards' extension uses an alternative key for its configuration: 'wiz'.
  * In the 'ext_tables.php' file of an extension ('wizard_crpages') which uses the framework provided by 'func_wizards' this looks like this:
- * 
+ *
  *     t3lib_extMgm::insertModuleFunction(
  *             'web_func',
  *             'tx_wizardcrpages_webfunc_2',
  *             'LLL:EXT:wizard_crpages/locallang.php:wiz_crMany',
  *             'wiz'
  *     );
- *     
+ *
  * But for this two-level thing to work it also requires that the parent module (the real backend module) supports it.
  * This is the case for the modules web_func and web_info since they have two times inclusion sections in their index.php scripts. For example (from web_func):
- * 
+ *
  *     // Make instance:
  *     $SOBE = t3lib_div::makeInstance("SC_mod_web_func_index");
  *     $SOBE->init();
- *     
+ *
  *     // Include files?
  *     foreach($SOBE->include_once as $INC_FILE)       include_once($INC_FILE);
  *     $SOBE->checkExtObj();   // Checking for first level external objects
- *     
+ *
  *     // Repeat Include files! - if any files has been added by second-level extensions
  *     foreach($SOBE->include_once as $INC_FILE)       include_once($INC_FILE);
  *     $SOBE->checkSubExtObj();        // Checking second level external objects
- *     
+ *
  *     $SOBE->main();
- *     $SOBE->printContent();  
- * 
+ *     $SOBE->printContent();
+ *
  * Notice that the first part is as usual: Include classes and call $SOBE->checkExtObj() to initialize any level-1 sub-modules
  * But then again ->include_once is traversed IF the initialization of the level-1 modules might have added more files!!
  * And after that $SOBE->checkSubExtObj() is called to initialize the second level.
  * In this way even a third level could be supported - but most likely that is a too layered module to be practical.
- * 
+ *
  * Anyways, the final interesting thing is to see what the framework "func_wizard" actually does:
- * 
+ *
  *     require_once(PATH_t3lib."class.t3lib_extobjbase.php");
  *     class tx_funcwizards_webfunc extends t3lib_extobjbase {
  *             var $localLangFile = "locallang.php";
  *                     $this->handleExternalFunctionValue();
  *             }
  *     ....
- * 
+ *
  * Notice that the handleExternalFunctionValue of this class (t3lib_extobjbase) is called and that the ->function_key internal var is set!
- * 
+ *
  * The two level-2 sub-module "wizard_crpages" and "wizard_sortpages" are totally normal "submodules".
  */
 
  * @see t3lib_SCbase,tx_funcwizards_webfunc::init(), tx_funcwizards_webfunc, tx_wizardsortpages_webfunc_2
  */
 class t3lib_extobjbase {
-       
+
        /**
         * Contains a reference to the parent object.
         * @see init()
         */
        var $pObj;      // parent SC object
-       
+
        /**
         * Set to the directory name of this class file.
         * @see init()
@@ -161,21 +161,21 @@ class t3lib_extobjbase {
         * @see incLocalLang()
         */
        var $localLangFile = 'locallang.php';
-       
+
        /**
         * Contains module configuration parts from TBE_MODULES_EXT if found
         *
         * @see handleExternalFunctionValue()
-        */ 
+        */
        var $extClassConf;
-       
+
        /**
         * If this value is set it points to a key in the TCE_MODULES_EXT array (not on the top level..) where another classname/filepath/title can be defined for sub-subfunctions.
         * This is a little hard to explain, so see it in action; it used in the extension 'func_wizards' in order to provide yet a layer of interfacing with the backend module.
         * The extension 'func_wizards' has this description: 'Adds the 'Wizards' item to the function menu in Web>Func. This is just a framework for wizard extensions.' - so as you can see it is designed to allow further connectivity - 'level 2'
         *
         * @see handleExternalFunctionValue(), tx_funcwizards_webfunc
-        */ 
+        */
        var $function_key='';
 
 
@@ -198,16 +198,16 @@ class t3lib_extobjbase {
                global $LANG;
 
                $this->pObj = &$pObj;
-               
+
                        // Path of this script:
                $this->thisPath = dirname($conf['path']);
                if (!@is_dir($this->thisPath))  {
                        die('Error: '.$this->thisPath.' was not a directory as expected...');
                }
-               
+
                        // Local lang:
                $this->incLocalLang();
-               
+
                        // Setting MOD_MENU items as we need them for logging:
                $this->pObj->MOD_MENU = array_merge($this->pObj->MOD_MENU,$this->modMenu());            // Candidate for t3lib_div::array_merge() if integer-keys will some day make trouble...
        }
index 155e48f..c682538 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *
  *
  *
- *   81: class t3lib_folderTree extends t3lib_treeView  
- *   88:     function t3lib_folderTree()       
- *  106:     function wrapIcon($icon,$row)     
- *  126:     function getId($v) 
- *  136:     function getJumpToParm($v) 
- *  148:     function getTitleStr($row,$titleLen=30)   
- *  158:     function getBrowsableTree()       
- *  221:     function getFolderTree($files_path, $depth=999, $depthData='')    
- *  301:     function getCount($files_path)    
- *  317:     function initializePositionSaving()       
+ *   81: class t3lib_folderTree extends t3lib_treeView
+ *   88:     function t3lib_folderTree()
+ *  106:     function wrapIcon($icon,$row)
+ *  126:     function getId($v)
+ *  136:     function getJumpToParm($v)
+ *  148:     function getTitleStr($row,$titleLen=30)
+ *  158:     function getBrowsableTree()
+ *  221:     function getFolderTree($files_path, $depth=999, $depthData='')
+ *  301:     function getCount($files_path)
+ *  317:     function initializePositionSaving()
  *
  * TOTAL FUNCTIONS: 9
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -94,7 +94,7 @@ class t3lib_folderTree extends t3lib_treeView  {
                $this->titleAttrib=''; //don't apply any title
                $this->domIdPrefix = 'folder';
        }
-       
+
        /**
         * Wrapping the folder icon
         *
@@ -192,7 +192,7 @@ class t3lib_folderTree extends t3lib_treeView  {
                                $row['path']=$val['path'];
                                $row['uid']=$specUID;
                                $row['title']=$val['name'];
-                               
+
                                // Add the root of the mount to ->tree
                        $this->tree[]=array('HTML'=>$firstHtml,'row'=>$row,'bank'=>$this->bank);
 
@@ -253,8 +253,8 @@ class t3lib_folderTree extends t3lib_treeView  {
 
                                if ($depth>1 && $this->expandNext($specUID))    {
                                        $nextCount=$this->getFolderTree(
-                                               $path, 
-                                               $depth-1, 
+                                               $path,
+                                               $depth-1,
                                                $this->makeHTML ? $depthData.'<img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/ol/'.$LN.'.gif','width="18" height="16"').' alt="" />' : ''
                                        );
                                        $exp=1;         // Set "did expand" flag
@@ -262,7 +262,7 @@ class t3lib_folderTree extends t3lib_treeView  {
                                        $nextCount=$this->getCount($path);
                                        $exp=0;         // Clear "did expand" flag
                                }
-       
+
                                        // Set HTML-icons, if any:
                                if ($this->makeHTML)    {
                                        $HTML=$depthData.$this->PMicon($row,$a,$c,$nextCount,$exp);
@@ -283,7 +283,7 @@ class t3lib_folderTree extends t3lib_treeView  {
 
                                        // Finally, add the row/HTML content to the ->tree array in the reserved key.
                                $this->tree[$treeKey] = Array(
-                                       'row'=>$row, 
+                                       'row'=>$row,
                                        'HTML'=>$HTML,
                                        'bank'=>$this->bank
                                );
@@ -307,7 +307,7 @@ class t3lib_folderTree extends t3lib_treeView  {
                }
                return $c;
        }
-       
+
        /**
         * Get stored tree structure AND updating it if needed according to incoming PM GET var.
         *
@@ -340,9 +340,9 @@ class t3lib_folderTree extends t3lib_treeView  {
                                }
                        }
                }
-       }       
+       }
 }
+
 if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_foldertree.php'])       {
        include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_foldertree.php']);
 }
index 668ffeb..d66439d 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -37,9 +37,9 @@
  *
  *
  *
- *   69: class t3lib_formmail extends t3lib_htmlmail 
- *   95:     function start($V,$base64=1)      
- *  166:     function addAttachment($file, $filename)  
+ *   69: class t3lib_formmail extends t3lib_htmlmail
+ *   95:     function start($V,$base64=1)
+ *  166:     function addAttachment($file, $filename)
  *
  * TOTAL FUNCTIONS: 2
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -94,11 +94,11 @@ class t3lib_formmail extends t3lib_htmlmail {
         */
        function start($V,$base64=1)    {
                if ($base64 && !$V['quoted_printable']) {$this->useBase64();}
-               
+
                if (isset($V['recipient']))     {
                                // Sets the message id
                        $this->messageid = '<'.md5(microtime()).'@domain.tld>';
-               
+
                        $this->subject = ($V['subject']) ? $V['subject'] : 'Formmail on '.t3lib_div::getIndpEnv('HTTP_HOST');
                        $this->from_email = ($V['from_email']) ? $V['from_email'] : (($V['email'])?$V['email']:'');
                        $this->from_name = ($V['from_name']) ? $V['from_name'] : (($V['name'])?$V['name']:'');
@@ -109,10 +109,10 @@ class t3lib_formmail extends t3lib_htmlmail {
 
                                // Auto responder.
                        $this->auto_respond_msg = (trim($V['auto_respond_msg']) && $this->from_email) ? trim($V['auto_respond_msg']) : '';
-                       
+
                        $Plain_content = '';
                        $HTML_content = '<table border="0" cellpadding="2" cellspacing="2">';
-                       
+
                                // Runs through $V and generates the mail
                        if (is_array($V))       {
                                reset($V);
@@ -137,7 +137,7 @@ class t3lib_formmail extends t3lib_htmlmail {
                                $varname = 'attachment'.(($a)?$a:'');
                                $theFile = t3lib_div::upload_to_tempfile($GLOBALS['HTTP_POST_FILES'][$varname]['tmp_name']);
                                $theName = $GLOBALS['HTTP_POST_FILES'][$varname]['name'];
-                               
+
                                if ($theFile && @file_exists($theFile)) {
                                        if (filesize($theFile) < 250000)        {
                                                $this->addAttachment($theFile, $theName);
@@ -145,7 +145,7 @@ class t3lib_formmail extends t3lib_htmlmail {
                                }
                                t3lib_div::unlink_tempfile($theFile);
                        }
-                       
+
                        $this->setHeaders();
                        $this->setContent();
                        $this->setRecipient($V['recipient']);
@@ -171,7 +171,7 @@ class t3lib_formmail extends t3lib_htmlmail {
                if ($fileInfo['fileext'] == 'jpg' || $fileInfo['fileext'] == 'jpeg')    {$content_type = 'image/jpeg';}
                if ($fileInfo['fileext'] == 'html' || $fileInfo['fileext'] == 'htm')    {$content_type = 'text/html';}
                if (!$content_type) {$content_type = 'application/octet-stream';}
-               
+
                if ($content)   {
                        $theArr['content_type']= $content_type;
                        $theArr['content']= $content;
index 114d3c3..b0390a0 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Class used in module tools/dbint (advanced search) and which may hold code specific for that module
  * However the class has a general principle in it which may be used in the web/export module.
  *
  *
  *
  *
- *   83: class t3lib_fullsearch 
- *   98:     function form()   
- *  112:     function makeStoreControl()       
- *  151:     function initStoreArray() 
- *  171:     function cleanStoreQueryConfigs($storeQueryConfigs,$storeArray)   
- *  188:     function addToStoreQueryConfigs($storeQueryConfigs,$index)        
- *  204:     function saveQueryInAction($uid)  
- *  251:     function loadStoreQueryConfigs($storeQueryConfigs,$storeIndex,$writeArray)        
- *  267:     function procesStoreControl()     
- *  339:     function queryMaker()     
- *  402:     function getQueryResultCode($mQ,$res,$table)      
- *  509:     function csvValues($row,$delim=",",$quote='"')    
- *  519:     function tableWrap($str)  
- *  528:     function search() 
- *  583:     function resultRowDisplay($row,$conf,$table)      
- *  606:     function resultRowTitles($row,$conf,$table)       
+ *   83: class t3lib_fullsearch
+ *   98:     function form()
+ *  112:     function makeStoreControl()
+ *  151:     function initStoreArray()
+ *  171:     function cleanStoreQueryConfigs($storeQueryConfigs,$storeArray)
+ *  188:     function addToStoreQueryConfigs($storeQueryConfigs,$index)
+ *  204:     function saveQueryInAction($uid)
+ *  251:     function loadStoreQueryConfigs($storeQueryConfigs,$storeIndex,$writeArray)
+ *  267:     function procesStoreControl()
+ *  339:     function queryMaker()
+ *  402:     function getQueryResultCode($mQ,$res,$table)
+ *  509:     function csvValues($row,$delim=",",$quote='"')
+ *  519:     function tableWrap($str)
+ *  528:     function search()
+ *  583:     function resultRowDisplay($row,$conf,$table)
+ *  606:     function resultRowTitles($row,$conf,$table)
  *
  * TOTAL FUNCTIONS: 15
  * (This index is automatically created/updated by the extension "extdeveval")
  *
  */
 
+
 
 
 
@@ -85,7 +85,7 @@ class t3lib_fullsearch {
        var $downloadScript = "index.php";
        var $formW=48;
        var $noDownloadB=0;
-       
+
 
 
 
@@ -100,7 +100,7 @@ class t3lib_fullsearch {
                Search Word:<BR>
                <input type="text" name="SET[sword]" value="'.htmlspecialchars($GLOBALS["SOBE"]->MOD_SETTINGS["sword"]).'"'.$GLOBALS["TBE_TEMPLATE"]->formWidth(20).'><input type="submit" name="submit" value="Search All Records">
                ';
-               
+
                return $out;
        }
 
@@ -113,14 +113,14 @@ class t3lib_fullsearch {
                        // Load/Save
                $storeArray = $this->initStoreArray();
                $cur="";
-               
+
                        // Store Array:
                $opt=array();
                reset($storeArray);
                while(list($k,$v)=each($storeArray))    {
                        $opt[]='<option value="'.$k.'"'.(!strcmp($cur,$v)?" selected":"").'>'.htmlspecialchars($v).'</option>';
                }
-               
+
                        // Actions:
                if (t3lib_extMgm::isLoaded("sys_action"))       {
                        $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'sys_action', 'type=2', '', 'title');
@@ -136,11 +136,11 @@ class t3lib_fullsearch {
                $TDparams=' nowrap="nowrap" class="bgColor4"';
                $tmpCode='
                <table border=0 cellpadding=3 cellspacing=1>
-               <tr'.$TDparams.'><td><select name="storeControl[STORE]" onChange="document.forms[0][\'storeControl[title]\'].value= this.options[this.selectedIndex].value!=0 ? this.options[this.selectedIndex].text : \'\';">'.implode(chr(10),$opt).'</select><input type="submit" name="storeControl[LOAD]" value="Load"></td></tr>         
+               <tr'.$TDparams.'><td><select name="storeControl[STORE]" onChange="document.forms[0][\'storeControl[title]\'].value= this.options[this.selectedIndex].value!=0 ? this.options[this.selectedIndex].text : \'\';">'.implode(chr(10),$opt).'</select><input type="submit" name="storeControl[LOAD]" value="Load"></td></tr>
                <tr'.$TDparams.'><td nowrap><input name="storeControl[title]" value="" type="text" max=80'.$GLOBALS["SOBE"]->doc->formWidth().'><input type="submit" name="storeControl[SAVE]" value="Save" onClick="if (document.forms[0][\'storeControl[STORE]\'].options[document.forms[0][\'storeControl[STORE]\'].selectedIndex].value<0) return confirm(\'Are you sure you want to overwrite the existing query in this action?\');"><input type="submit" name="storeControl[REMOVE]" value="Remove"></td></tr>
                </table>
                ';
-               return $tmpCode;        
+               return $tmpCode;
        }
 
        /**
@@ -154,7 +154,7 @@ class t3lib_fullsearch {
                );
 
                $savedStoreArray = unserialize($GLOBALS["SOBE"]->MOD_SETTINGS["storeArray"]);
-               
+
                if (is_array($savedStoreArray)) {
                        $storeArray = array_merge($storeArray,$savedStoreArray);
                }
@@ -209,19 +209,19 @@ class t3lib_fullsearch {
                        while(list(,$k)=each($keyArr))  {
                                $saveArr[$k]=$GLOBALS["SOBE"]->MOD_SETTINGS[$k];
                        }
-       
+
                        $qOK = 0;
-                               // Show query                           
+                               // Show query
                        if ($saveArr["queryTable"])     {
                                $qGen = t3lib_div::makeInstance("t3lib_queryGenerator");
                                $qGen->init("queryConfig",$saveArr["queryTable"]);
                                $qGen->makeSelectorTable($saveArr);
-                               
+
                                $qGen->enablePrefix=1;
                                $qString = $qGen->getQuery($qGen->queryConfig);
                                $qCount = $GLOBALS['TYPO3_DB']->SELECTquery('count(*)', $qGen->table, $qString.t3lib_BEfunc::deleteClause($qGen->table));
                                $qSelect = $qGen->getSelectQuery($qString);
-       
+
                                $res = @$GLOBALS['TYPO3_DB']->sql(TYPO3_db,$qCount);
                                if (!$GLOBALS['TYPO3_DB']->sql_error()) {
                                        $dA = array();
@@ -359,11 +359,11 @@ class t3lib_fullsearch {
                        // Make form elements:
                if ($qGen->table && is_array($TCA[$qGen->table]))       {
                        if ($mQ)        {
-                                       // Show query                           
+                                       // Show query
                                $qGen->enablePrefix=1;
                                $qString = $qGen->getQuery($qGen->queryConfig);
 //                             debug($qGen->queryConfig);
-               
+
                                switch($mQ)     {
                                        case "count":
                                                $qExplain = $GLOBALS['TYPO3_DB']->SELECTquery('count(*)', $qGen->table, $qString.t3lib_BEfunc::deleteClause($qGen->table));
@@ -387,7 +387,7 @@ class t3lib_fullsearch {
                                        $output.=$GLOBALS["SOBE"]->doc->section($cPR["header"],$cPR["content"],0,1);
                                }
                        }
-               }               
+               }
                return $output;
        }
 
@@ -435,7 +435,7 @@ class t3lib_fullsearch {
                                if (count($rowArr))     {
                                        $out.='<textarea name="whatever" rows="20" wrap="off"'.$GLOBALS["SOBE"]->doc->formWidthText($this->formW,"","off").'>'.t3lib_div::formatForTextarea(implode(chr(10),$rowArr)).'</textarea>';
                                        if (!$this->noDownloadB)        {
-                                               $out.='<BR><input type="submit" name="download_file" value="Click to download file" onClick="document.location=\''.$this->downloadScript.'\';">';               // document.forms[0].target=\'_blank\'; 
+                                               $out.='<BR><input type="submit" name="download_file" value="Click to download file" onClick="document.location=\''.$this->downloadScript.'\';">';               // document.forms[0].target=\'_blank\';
                                        }
                                                // Downloads file:
                                        if (t3lib_div::_GP("download_file"))    {
@@ -470,7 +470,7 @@ class t3lib_fullsearch {
                                        $xmlData=$xmlObj->getResult();
                                        $out.='<textarea name="whatever" rows="20" wrap="off"'.$GLOBALS["SOBE"]->doc->formWidthText($this->formW,"","off").'>'.t3lib_div::formatForTextarea($xmlData).'</textarea>';
                                        if (!$this->noDownloadB)        {
-                                               $out.='<BR><input type="submit" name="download_file" value="Click to download file" onClick="document.location=\''.$this->downloadScript.'\';">';               // document.forms[0].target=\'_blank\'; 
+                                               $out.='<BR><input type="submit" name="download_file" value="Click to download file" onClick="document.location=\''.$this->downloadScript.'\';">';               // document.forms[0].target=\'_blank\';
                                        }
                                                // Downloads file:
                                        if (t3lib_div::_GP("download_file"))    {
@@ -538,7 +538,7 @@ class t3lib_fullsearch {
                                        // Get fields list
                                t3lib_div::loadTCA($table);
                                $conf=$TCA[$table];
-                               
+
                                reset($conf["columns"]);
                                $list=array();
                                while(list($field,)=each($conf["columns"]))     {
@@ -546,7 +546,7 @@ class t3lib_fullsearch {
                                }
                                        // Get query
                                $qp = $GLOBALS['TYPO3_DB']->searchQuery(array($swords), $list, $table);
-                               
+
                                        // Count:
                                $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('count(*)', $table, $qp.t3lib_BEfunc::deleteClause($table));
                                list($count) = $GLOBALS['TYPO3_DB']->sql_fetch_row($res);
@@ -554,7 +554,7 @@ class t3lib_fullsearch {
                                                // Output header:
                                        $out.="<strong>TABLE:</strong> ".$GLOBALS["LANG"]->sL($conf["ctrl"]["title"])."<BR>";
                                        $out.="<strong>Results:</strong> ".$count."<BR>";
-       
+
                                                // Show to limit
                                        if ($count)     {
                                                $rowArr = array();
index 10fdb20..c5639c4 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -26,9 +26,9 @@
 ***************************************************************/
 /**
  * HTML mail class
- * 
+ *
  * $Id$
- * 
+ *
  * @author     Kasper Skaarhoj <kasper@typo3.com>
  */
 /**
  *
  *
  *
- *  190: class t3lib_htmlmail 
- *  253:     function start () 
- *  263:     function useBase64()      
- *  275:     function encodeMsg($content)      
- *  285:     function addPlain ($content)      
- *  297:     function addAttachment($file)     
- *  315:     function addHTML ($file)  
- *  338:     function extractHtmlInit($html,$url)      
- *  349:     function send($recipient) 
+ *  190: class t3lib_htmlmail
+ *  253:     function start ()
+ *  263:     function useBase64()
+ *  275:     function encodeMsg($content)
+ *  285:     function addPlain ($content)
+ *  297:     function addAttachment($file)
+ *  315:     function addHTML ($file)
+ *  338:     function extractHtmlInit($html,$url)
+ *  349:     function send($recipient)
  *
  *              SECTION: Main functions
- *  378:     function setHeaders ()    
- *  432:     function setRecipient ($recip)    
- *  450:     function getHTMLContentType()     
- *  459:     function setContent()     
- *  486:     function constructMixed ($boundary)       
- *  525:     function constructHTML ($boundary)        
- *  549:     function constructAlternative($boundary)  
- *  570:     function constructHTML_media ($boundary)  
- *  603:     function sendTheMail () 
- *  637:     function getBoundary()    
- *  649:     function setPlain ($content)      
- *  660:     function setHtml ($content)       
- *  671:     function add_header ($header)     
- *  682:     function add_message ($string)    
- *  693:     function getContent($type)        
- *  702:     function preview()        
+ *  378:     function setHeaders ()
+ *  432:     function setRecipient ($recip)
+ *  450:     function getHTMLContentType()
+ *  459:     function setContent()
+ *  486:     function constructMixed ($boundary)
+ *  525:     function constructHTML ($boundary)
+ *  549:     function constructAlternative($boundary)
+ *  570:     function constructHTML_media ($boundary)
+ *  603:     function sendTheMail ()
+ *  637:     function getBoundary()
+ *  649:     function setPlain ($content)
+ *  660:     function setHtml ($content)
+ *  671:     function add_header ($header)
+ *  682:     function add_message ($string)
+ *  693:     function getContent($type)
+ *  702:     function preview()
  *
  *              SECTION: Functions for acquiring attachments, HTML, analyzing and so on  **
- *  730:     function fetchHTML($file) 
- *  748:     function fetchHTMLMedia() 
- *  769:     function extractMediaLinks()      
- *  845:     function extractHyperLinks()      
- *  894:     function extractFramesInfo()      
- *  920:     function substMediaNamesInHTML($absolute) 
- *  947:     function substHREFsInHTML()       
- *  975:     function substHTTPurlsInPlainText($content)       
- * 1015:     function fixRollOvers()   
+ *  730:     function fetchHTML($file)
+ *  748:     function fetchHTMLMedia()
+ *  769:     function extractMediaLinks()
+ *  845:     function extractHyperLinks()
+ *  894:     function extractFramesInfo()
+ *  920:     function substMediaNamesInHTML($absolute)
+ *  947:     function substHREFsInHTML()
+ *  975:     function substHTTPurlsInPlainText($content)
+ * 1015:     function fixRollOvers()
  *
  *              SECTION: File and URL-functions
- * 1062:     function makeBase64($inputstr)    
- * 1073:     function getExtendedURL($url)     
- * 1093:     function addUserPass($url)        
- * 1108:     function getURL($url)     
- * 1129:     function getStrippedURL($url)     
- * 1150:     function getMimeType($url)        
- * 1179:     function absRef($ref)     
- * 1199:     function split_fileref($fileref)  
- * 1226:     function extParseUrl($path)       
- * 1241:     function tag_regex($tagArray)     
- * 1263:     function get_tag_attributes($tag) 
- * 1303:     function quoted_printable($string)        
- * 1341:     function convertName($name)       
+ * 1062:     function makeBase64($inputstr)
+ * 1073:     function getExtendedURL($url)
+ * 1093:     function addUserPass($url)
+ * 1108:     function getURL($url)
+ * 1129:     function getStrippedURL($url)
+ * 1150:     function getMimeType($url)
+ * 1179:     function absRef($ref)
+ * 1199:     function split_fileref($fileref)
+ * 1226:     function extParseUrl($path)
+ * 1241:     function tag_regex($tagArray)
+ * 1263:     function get_tag_attributes($tag)
+ * 1303:     function quoted_printable($string)
+ * 1341:     function convertName($name)
  *
  * TOTAL FUNCTIONS: 46
  * (This index is automatically created/updated by the extension "extdeveval")
  * Plain + HTML
  *     multipart/alternative   (text, html)
  *     multipart/alternative   (text, html)
- *     
+ *
  * Plain + HTML + image
  *     multipart/related (m/a, cids)
  *             multipart/alternative (text, html)
- * 
+ *
  *     multipart/related  (m/a, cids)
  *             multipart/alternative   (text, html)
- * 
+ *
  * plain + attachment
- *     multipart/mixed 
- *     
+ *     multipart/mixed
+ *
  * HTML + Attachment:
  *     multipart/mixed         (text/html , attachments)
- * 
+ *
  * Plain + HTML + Attachments:
  *     multipart/mixed         (m/a, attachments)
  *             multipart/alternative   (text, html)
- * 
+ *
  * Plain + HTML + image + attachment
- * 
+ *
  *             Outlook expr.
  *     multipart/mixed (m/r, attachments)
  *             multipart/related  (m/a, cids)
  *
  *
  * FROM RFC 1521:
- * 
+ *
  * 5.1 Quoted-Printable Content-Transfer-Encoding
- * The Quoted-Printable encoding is intended to represent data that largely consists of octets that correspond to printable characters in the ASCII character set. It encodes the data in such a way that the resulting octets are unlikely to be modified by mail transport. If the data being encoded are mostly ASCII text, the encoded form of the data remains largely recognizable by humans. A body which is entirely ASCII may also be encoded in Quoted-Printable to ensure the integrity of the data should the message pass through a character- translating, and/or line-wrapping gateway. 
- * 
- * In this encoding, octets are to be represented as determined by the following rules: 
- * Rule #1: (General 8-bit representation) Any octet, except those indicating a line break according to the newline convention of the canonical (standard) form of the data being encoded, may be represented by an "=" followed by a two digit hexadecimal representation of the octet's value. The digits of the hexadecimal alphabet, for this purpose, are "0123456789ABCDEF". Uppercase letters must be used when sending hexadecimal data, though a robust implementation may choose to recognize lowercase letters on receipt. Thus, for example, the value 12 (ASCII form feed) can be represented by "=0C", and the value 61 (ASCII EQUAL SIGN) can be represented by "=3D". Except when the following rules allow an alternative encoding, this rule is mandatory. 
- * Rule #2: (Literal representation) Octets with decimal values of 33 through 60 inclusive, and 62 through 126, inclusive, MAY be represented as the ASCII characters which correspond to those octets (EXCLAMATION POINT through LESS THAN, and GREATER THAN through TILDE, respectively). 
- * Rule #3: (White Space): Octets with values of 9 and 32 MAY be represented as ASCII TAB (HT) and SPACE characters, respectively, but MUST NOT be so represented at the end of an encoded line. Any TAB (HT) or SPACE characters on an encoded line MUST thus be followed on that line by a printable character. In particular, an 
- * "=" at the end of an encoded line, indicating a soft line break (see rule #5) may follow one or more TAB (HT) or SPACE characters. It follows that an octet with value 9 or 32 appearing at the end of an encoded line must be represented according to Rule #1. This rule is necessary because some MTAs (Message Transport Agents, programs which transport messages from one user to another, or perform a part of such transfers) are known to pad lines of text with SPACEs, and others are known to remove "white space" characters from the end of a line. Therefore, when decoding a Quoted-Printable body, any trailing white space on a line must be deleted, as it will necessarily have been added by intermediate transport agents. 
- * Rule #4 (Line Breaks): A line break in a text body, independent of what its representation is following the canonical representation of the data being encoded, must be represented by a (RFC 822) line break, which is a CRLF sequence, in the Quoted-Printable encoding. Since the canonical representation of types other than text do not generally include the representation of line breaks, no hard line breaks (i.e. line breaks that are intended to be meaningful and to be displayed to the user) should occur in the quoted-printable encoding of such types. Of course, occurrences of "=0D", "=0A", "0A=0D" and "=0D=0A" will eventually be encountered. In general, however, base64 is preferred over quoted-printable for binary data. 
- * Note that many implementations may elect to encode the local representation of various content types directly, as described in Appendix G. In particular, this may apply to plain text material on systems that use newline conventions other than CRLF delimiters. Such an implementation is permissible, but the generation of line breaks must be generalized to account for the case where alternate representations of newline sequences are used. 
- * Rule #5 (Soft Line Breaks): The Quoted-Printable encoding REQUIRES that encoded lines be no more than 76 characters long. If longer lines are to be encoded with the Quoted-Printable encoding, 'soft' line breaks must be used. An equal sign as the last character on a encoded line indicates such a non-significant ('soft') line break in the encoded text. Thus if the "raw" form of the line is a single unencoded line that says: 
- * Now's the time for all folk to come to the aid of their country. 
- * 
- * This can be represented, in the Quoted-Printable encoding, as 
- * 
- * Now's the time = 
- * for all folk to come= 
- * to the aid of their country. 
- * 
- * This provides a mechanism with which long lines are encoded in such a way as to be restored by the user agent. The 76 character limit does not count the trailing CRLF, but counts all other characters, including any equal signs. 
- * Since the hyphen character ("-") is represented as itself in the Quoted-Printable encoding, care must be taken, when encapsulating a quoted-printable encoded body in a multipart entity, to ensure that the encapsulation boundary does not appear anywhere in the encoded body. (A good strategy is to choose a boundary that includes a character sequence such as "=_" which can never appear in a quoted- printable body. See the definition of multipart messages later in this document.) 
- * NOTE: The quoted-printable encoding represents something of a compromise between readability and reliability in transport. Bodies encoded with the quoted-printable encoding will work reliably over most mail gateways, but may not work perfectly over a few gateways, notably those involving translation into EBCDIC. (In theory, an EBCDIC gateway could decode a quoted-printable body and re-encode it using base64, but such gateways do not yet exist.) A higher level of confidence is offered by the base64 Content-Transfer-Encoding. A way to get reasonably reliable transport through EBCDIC gateways is to also quote the ASCII characters 
- * !"#$@[\]^`{|}~ 
- * according to rule #1. See Appendix B for more information. 
- * Because quoted-printable data is generally assumed to be line- oriented, it is to be expected that the representation of the breaks between the lines of quoted printable data may be altered in transport, in the same manner that plain text mail has always been altered in Internet mail when passing between systems with differing newline conventions. If such alterations are likely to constitute a corruption of the data, it is probably more sensible to use the base64 encoding rather than the quoted-printable encoding. 
- * WARNING TO IMPLEMENTORS: If binary data are encoded in quoted- printable, care must be taken to encode CR and LF characters as "=0D" and "=0A", respectively. In particular, a CRLF sequence in binary data should be encoded as "=0D=0A". Otherwise, if CRLF were represented as a hard line break, it might be incorrectly decoded on 
- * platforms with different line break conventions. 
- * For formalists, the syntax of quoted-printable data is described by the following grammar: 
- * 
+ * The Quoted-Printable encoding is intended to represent data that largely consists of octets that correspond to printable characters in the ASCII character set. It encodes the data in such a way that the resulting octets are unlikely to be modified by mail transport. If the data being encoded are mostly ASCII text, the encoded form of the data remains largely recognizable by humans. A body which is entirely ASCII may also be encoded in Quoted-Printable to ensure the integrity of the data should the message pass through a character- translating, and/or line-wrapping gateway.
+ *
+ * In this encoding, octets are to be represented as determined by the following rules:
+ * Rule #1: (General 8-bit representation) Any octet, except those indicating a line break according to the newline convention of the canonical (standard) form of the data being encoded, may be represented by an "=" followed by a two digit hexadecimal representation of the octet's value. The digits of the hexadecimal alphabet, for this purpose, are "0123456789ABCDEF". Uppercase letters must be used when sending hexadecimal data, though a robust implementation may choose to recognize lowercase letters on receipt. Thus, for example, the value 12 (ASCII form feed) can be represented by "=0C", and the value 61 (ASCII EQUAL SIGN) can be represented by "=3D". Except when the following rules allow an alternative encoding, this rule is mandatory.
+ * Rule #2: (Literal representation) Octets with decimal values of 33 through 60 inclusive, and 62 through 126, inclusive, MAY be represented as the ASCII characters which correspond to those octets (EXCLAMATION POINT through LESS THAN, and GREATER THAN through TILDE, respectively).
+ * Rule #3: (White Space): Octets with values of 9 and 32 MAY be represented as ASCII TAB (HT) and SPACE characters, respectively, but MUST NOT be so represented at the end of an encoded line. Any TAB (HT) or SPACE characters on an encoded line MUST thus be followed on that line by a printable character. In particular, an
+ * "=" at the end of an encoded line, indicating a soft line break (see rule #5) may follow one or more TAB (HT) or SPACE characters. It follows that an octet with value 9 or 32 appearing at the end of an encoded line must be represented according to Rule #1. This rule is necessary because some MTAs (Message Transport Agents, programs which transport messages from one user to another, or perform a part of such transfers) are known to pad lines of text with SPACEs, and others are known to remove "white space" characters from the end of a line. Therefore, when decoding a Quoted-Printable body, any trailing white space on a line must be deleted, as it will necessarily have been added by intermediate transport agents.
+ * Rule #4 (Line Breaks): A line break in a text body, independent of what its representation is following the canonical representation of the data being encoded, must be represented by a (RFC 822) line break, which is a CRLF sequence, in the Quoted-Printable encoding. Since the canonical representation of types other than text do not generally include the representation of line breaks, no hard line breaks (i.e. line breaks that are intended to be meaningful and to be displayed to the user) should occur in the quoted-printable encoding of such types. Of course, occurrences of "=0D", "=0A", "0A=0D" and "=0D=0A" will eventually be encountered. In general, however, base64 is preferred over quoted-printable for binary data.
+ * Note that many implementations may elect to encode the local representation of various content types directly, as described in Appendix G. In particular, this may apply to plain text material on systems that use newline conventions other than CRLF delimiters. Such an implementation is permissible, but the generation of line breaks must be generalized to account for the case where alternate representations of newline sequences are used.
+ * Rule #5 (Soft Line Breaks): The Quoted-Printable encoding REQUIRES that encoded lines be no more than 76 characters long. If longer lines are to be encoded with the Quoted-Printable encoding, 'soft' line breaks must be used. An equal sign as the last character on a encoded line indicates such a non-significant ('soft') line break in the encoded text. Thus if the "raw" form of the line is a single unencoded line that says:
+ * Now's the time for all folk to come to the aid of their country.
+ *
+ * This can be represented, in the Quoted-Printable encoding, as
+ *
+ * Now's the time =
+ * for all folk to come=
+ * to the aid of their country.
+ *
+ * This provides a mechanism with which long lines are encoded in such a way as to be restored by the user agent. The 76 character limit does not count the trailing CRLF, but counts all other characters, including any equal signs.
+ * Since the hyphen character ("-") is represented as itself in the Quoted-Printable encoding, care must be taken, when encapsulating a quoted-printable encoded body in a multipart entity, to ensure that the encapsulation boundary does not appear anywhere in the encoded body. (A good strategy is to choose a boundary that includes a character sequence such as "=_" which can never appear in a quoted- printable body. See the definition of multipart messages later in this document.)
+ * NOTE: The quoted-printable encoding represents something of a compromise between readability and reliability in transport. Bodies encoded with the quoted-printable encoding will work reliably over most mail gateways, but may not work perfectly over a few gateways, notably those involving translation into EBCDIC. (In theory, an EBCDIC gateway could decode a quoted-printable body and re-encode it using base64, but such gateways do not yet exist.) A higher level of confidence is offered by the base64 Content-Transfer-Encoding. A way to get reasonably reliable transport through EBCDIC gateways is to also quote the ASCII characters
+ * !"#$@[\]^`{|}~
+ * according to rule #1. See Appendix B for more information.
+ * Because quoted-printable data is generally assumed to be line- oriented, it is to be expected that the representation of the breaks between the lines of quoted printable data may be altered in transport, in the same manner that plain text mail has always been altered in Internet mail when passing between systems with differing newline conventions. If such alterations are likely to constitute a corruption of the data, it is probably more sensible to use the base64 encoding rather than the quoted-printable encoding.
+ * WARNING TO IMPLEMENTORS: If binary data are encoded in quoted- printable, care must be taken to encode CR and LF characters as "=0D" and "=0A", respectively. In particular, a CRLF sequence in binary data should be encoded as "=0D=0A". Otherwise, if CRLF were represented as a hard line break, it might be incorrectly decoded on
+ * platforms with different line break conventions.
+ * For formalists, the syntax of quoted-printable data is described by the following grammar:
+ *
  *    quoted-printable := ([*(ptext / SPACE / TAB) ptext] ["="] CRLF)
  *         ; Maximum line length of 76 characters excluding CRLF
- * 
+ *
  *    ptext := octet /<any ASCII character except "=", SPACE, or TAB>
  *         ; characters not listed as "mail-safe" in Appendix B
  *         ; are also not recommended.
- * 
+ *
  *    octet := "=" 2(DIGIT / "A" / "B" / "C" / "D" / "E" / "F")
  *         ; octet must be used for characters > 127, =, SPACE, or TAB,
  *         ; and is recommended for any characters not listed in
- *         ; Appendix B as "mail-safe". 
+ *         ; Appendix B as "mail-safe".
  */
 
 /**
@@ -192,7 +192,7 @@ class t3lib_htmlmail {
        var $recipient = "recipient@whatever.com";
        var $recipient_copy = "";               // This recipient (or list of...) will also receive the mail. Regard it as a copy.
        var $subject = "This is the subject";
-       var $from_email = "sender@php-mailer.com";      
+       var $from_email = "sender@php-mailer.com";
        var $from_name = "Mr. Sender";
        var $replyto_email = "reply@mailer.com";
        var $replyto_name = "Mr. Reply";
@@ -205,14 +205,14 @@ class t3lib_htmlmail {
        var $mediaList="";                              // If set, this is a list of the media-files (index-keys to the array) that should be represented in the html-mail
        var $http_password="";
        var $http_username="";
-       
+
 
        // Internal
 
 /*             This is how the $theParts-array is normally looking
        var $theParts = Array(
                "plain" => Array (
-                       "content"=> ""  
+                       "content"=> ""
                ),
                "html" => Array (
                        "content"=> "",
@@ -234,19 +234,19 @@ class t3lib_htmlmail {
        var $part=0;
        var $image_fullpath_list = "";
        var $href_fullpath_list = "";
-       
+
        var $plain_text_header = "Content-Type: text/plain; charset=iso-8859-1\nContent-Transfer-Encoding: quoted-printable";
        var $html_text_header = "Content-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: quoted-printable";
 
-       
-       
-       
-       
-       
-       
-       
-       
-       
+
+
+
+
+
+
+
+
+
        /**
         * @return      [type]          ...
         */
@@ -324,7 +324,7 @@ class t3lib_htmlmail {
                $this->extractHyperLinks();
                $this->fetchHTMLMedia();
                $this->substMediaNamesInHTML(0);        // 0 = relative
-               $this->substHREFsInHTML();      
+               $this->substHREFsInHTML();
                $this->setHTML($this->encodeMsg($this->theParts["html"]["content"]));
        }
 
@@ -368,10 +368,10 @@ class t3lib_htmlmail {
 
        /*****************************************
         *
-        * Main functions 
+        * Main functions
         *
         *****************************************/
-        
+
        /**
         * @return      [type]          ...
         */
@@ -532,7 +532,7 @@ class t3lib_htmlmail {
                        $this->add_message('');
 
                        $this->constructAlternative($newBoundary);      // Adding the plaintext/html mix
-                       
+
                        $this->constructHTML_media($boundary);
                        $this->add_message("--".$boundary."--\n");
                } else {
@@ -573,10 +573,10 @@ class t3lib_htmlmail {
                // htmlcode is added
                $this->add_message($this->html_text_header);
                $this->add_message('');
-               $this->add_message($this->getContent("html"));  
-               
+               $this->add_message($this->getContent("html"));
+
                OLD stuf...
-               
+
                */
                // media is added
                if (is_array($this->theParts["html"]["media"])) {
@@ -601,7 +601,7 @@ class t3lib_htmlmail {
         * @return      [type]          ...
         */
        function sendTheMail () {
-                       // Sends the mail. 
+                       // Sends the mail.
                        // Requires the recipient, message and headers to be set.
 #debug(array($this->recipient,$this->subject,$this->message,$this->headers));
                if (trim($this->recipient) && trim($this->message))     {       //  && trim($this->headers)
@@ -704,7 +704,7 @@ class t3lib_htmlmail {
                echo "<BR>";
                echo nl2br(HTMLSpecialChars($this->message));
        }
-       
+
 
 
 
@@ -722,7 +722,7 @@ class t3lib_htmlmail {
         * Functions for acquiring attachments, HTML, analyzing and so on  **
         *
         ***************************************************/
-        
+
        /**
         * @param       [type]          $file: ...
         * @return      [type]          ...
@@ -852,7 +852,7 @@ class t3lib_htmlmail {
                for($i=1; $i < $pieces; $i++)   {
                        $tag = strtolower(strtok(substr($html_code,$len+1,10)," "));
                        $len+=strlen($tag)+strlen($codepieces[$i])+2;
-                       
+
                        $dummy = eregi("[^>]*", $codepieces[$i], $reg);
                        $attributes = $this->get_tag_attributes($reg[0]);       // Fetches the attributes for the tag
                        $hrefData="";
@@ -929,7 +929,7 @@ class t3lib_htmlmail {
                                        $theSubstVal = ($absolute) ? $val["absRef"] : "cid:part".$key.".".$this->messageid;
                                }
                                $this->theParts["html"]["content"] = str_replace(
-                                               $val["subst_str"], 
+                                               $val["subst_str"],
                                                $val["quotes"].$theSubstVal.$val["quotes"],
                                                $this->theParts["html"]["content"]      );
                        }
@@ -959,7 +959,7 @@ class t3lib_htmlmail {
                                        $theSubstVal = $val["absRef"];
                                }
                                $this->theParts["html"]["content"] = str_replace(
-                                               $val["subst_str"], 
+                                               $val["subst_str"],
                                                $val["quotes"].$theSubstVal.$val["quotes"],
                                                $this->theParts["html"]["content"]      );
                        }
@@ -973,7 +973,7 @@ class t3lib_htmlmail {
         * @return      [type]          ...
         */
        function substHTTPurlsInPlainText($content)     {
-               // This substitutes the http:// urls in plain text with links 
+               // This substitutes the http:// urls in plain text with links
                if ($this->jumperURL_prefix)    {
                        $textpieces = explode("http://", $content);
                        $pieces = count($textpieces);
@@ -983,10 +983,10 @@ class t3lib_htmlmail {
                                if (trim(substr($textstr,-1))=="" && $len)      {
                                        $lastChar=substr($textpieces[$i],$len-1,1);
                                        if (!ereg("[A-Za-z0-9\/#]",$lastChar)) {$len--;}                // Included "\/" 3/12
-       
+
                                        $parts[0]="http://".substr($textpieces[$i],0,$len);
                                        $parts[1]=substr($textpieces[$i],$len);
-                                       
+
                                        if ($this->jumperURL_useId)     {
                                                $this->theParts["plain"]["link_ids"][$i]=$parts[0];
                                                $parts[0] = $this->jumperURL_prefix."-".$i;
@@ -997,7 +997,7 @@ class t3lib_htmlmail {
                                        $textstr.=$parts[0].$parts[1];
                                } else {
                                        $textstr.='http://'.$textpieces[$i];
-                               }                               
+                               }
                        }
                        $content = $textstr;
 //                     debug(array($textstr));
@@ -1034,7 +1034,7 @@ class t3lib_htmlmail {
                }
        }
 
-       
+
 
 
 
@@ -1054,7 +1054,7 @@ class t3lib_htmlmail {
         * File and URL-functions
         *
         *******************************************/
-        
+
        /**
         * @param       [type]          $inputstr: ...
         * @return      [type]          ...
@@ -1166,7 +1166,7 @@ class t3lib_htmlmail {
                                }
                }
                fclose($fp);
-               }       
+               }
                return $res;
        }
 
@@ -1270,7 +1270,7 @@ class t3lib_htmlmail {
                        $value = "";
                        $reg = split("[[:space:]=>]",$tag,2);
                        $attrib = $reg[0];
-                       
+
                        $tag = ltrim(substr($tag,strlen($attrib),$tagLen));
                        if (substr($tag,0,1)=="=")      {
                                $tag = ltrim(substr($tag,1,$tagLen));
@@ -1306,7 +1306,7 @@ class t3lib_htmlmail {
                $theLines = explode(chr(10),$string);   // Break lines. Doesn't work with mac eol's which seems to be 13. But 13-10 or 10 will work
                while (list(,$val)=each($theLines))     {
                        $val = ereg_replace(chr(13)."$","",$val);               // removes possible character 13 at the end of line
-                       
+
                        $newVal = "";
                        $theValLen = strlen($val);
                        $len = 0;
index 2d4c358..290d983 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Contains class for icon generation in the backend
  *
  * $Id$
  *
  *
  *
- *   85: class t3lib_iconWorks 
- *   99:     function getIconImage($table,$row=array(),$backPath,$params='',$shaded=FALSE)     
- *  116:     function getIcon($table,$row=array(),$shaded=FALSE)       
- *  251:     function skinImg($backPath,$src,$wHattribs='',$outputMode=0)      
+ *   85: class t3lib_iconWorks
+ *   99:     function getIconImage($table,$row=array(),$backPath,$params='',$shaded=FALSE)
+ *  116:     function getIcon($table,$row=array(),$shaded=FALSE)
+ *  251:     function skinImg($backPath,$src,$wHattribs='',$outputMode=0)
  *
  *              SECTION: Other functions
- *  325:     function makeIcon($iconfile,$mode, $user, $protectSection,$absFile,$iconFileName_stateTagged)     
- *  441:     function imagecopyresized(&$im, $cpImg, $Xstart, $Ystart, $cpImgCutX, $cpImgCutY, $w, $h, $w, $h) 
- *  474:     function imagecreatefrom($file)   
- *  491:     function imagemake($im, $path)    
+ *  325:     function makeIcon($iconfile,$mode, $user, $protectSection,$absFile,$iconFileName_stateTagged)
+ *  441:     function imagecopyresized(&$im, $cpImg, $Xstart, $Ystart, $cpImgCutX, $cpImgCutY, $w, $h, $w, $h)
+ *  474:     function imagecreatefrom($file)
+ *  491:     function imagemake($im, $path)
  *
  * TOTAL FUNCTIONS: 7
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -83,7 +83,7 @@
  * @subpackage t3lib
  */
 class t3lib_iconWorks  {
-       
+
        /**
         * Returns an icon image tag, 18x16 pixels, based on input information.
         * This function is recommended to use in your backend modules.
@@ -138,14 +138,14 @@ class t3lib_iconWorks     {
                if (!strstr($iconfile,'/'))     {
                        $iconfile = 'gfx/i/'.$iconfile;
                }
-               
+
                        // Setting the absolute path where the icon should be found as a file:
                if (substr($iconfile,0,3)=='../')       {
                        $absfile=PATH_site.substr($iconfile,3);
                } else {
                        $absfile=PATH_typo3.$iconfile;
                }
-               
+
                        // Initializing variables, all booleans except otherwise stated:
                $hidden = FALSE;
                $timing = FALSE;
@@ -155,12 +155,12 @@ class t3lib_iconWorks     {
                $protectSection = FALSE;        // Set, if a page-record (only pages!) has the extend-to-subpages flag set.
                $noIconFound = $row['_NO_ICON_FOUND'] ? TRUE : FALSE;
                // + $shaded which is also boolean!
-               
+
                        // Icon state based on "enableFields":
                if (is_array($TCA[$table]['ctrl']['enablecolumns']))    {
                        $enCols = $TCA[$table]['ctrl']['enablecolumns'];
                                // If "hidden" is enabled:
-                       if ($enCols['disabled'])        { if ($row[$enCols['disabled']]) { $hidden = TRUE; }}   
+                       if ($enCols['disabled'])        { if ($row[$enCols['disabled']]) { $hidden = TRUE; }}
                                // If a "starttime" is set and higher than current time:
                        if ($enCols['starttime'])       { if (time() < intval($row[$enCols['starttime']]))      { $timing = TRUE; }}
                                // If an "endtime" is set:
@@ -168,10 +168,10 @@ class t3lib_iconWorks     {
                                if (intval($row[$enCols['endtime']]) > 0)       {
                                        if (intval($row[$enCols['endtime']]) < time())  {
                                                $timing = TRUE; // End-timing applies at this point.
-                                       } else {        
+                                       } else {
                                                $futuretiming = TRUE;           // End-timing WILL apply in the future for this element.
                                        }
-                               } 
+                               }
                        }
                                // If a user-group field is set:
                        if ($enCols['fe_group'])        {
@@ -179,7 +179,7 @@ class t3lib_iconWorks       {
                                if ($user && $doNotRenderUserGroupNumber)       $user=100;      // Limit for user number rendering!
                        }
                }
-               
+
                        // If "deleted" flag is set (only when listing records which are also deleted!)
                if ($col=$row[$TCA[$table]['ctrl']['delete']])  {
                        $deleted = TRUE;
@@ -188,7 +188,7 @@ class t3lib_iconWorks       {
                if ($table=='pages' && $row['extendToSubpages'] && ($hidden || $timing || $futuretiming || $user))      {
                        $protectSection = TRUE;
                }
-               
+
                        // If ANY of the booleans are set it means we have to alter the icon:
                if ($hidden || $timing || $futuretiming || $user || $deleted || $shaded || $noIconFound)        {
                        $flags='';
@@ -205,7 +205,7 @@ class t3lib_iconWorks       {
                                if (!$string && $futuretiming) {
                                        $string='futuretiming';
                                }
-                               
+
                                $flags.=
                                        ($hidden ? 'h' : '').
                                        ($timing ? 't' : '').
@@ -214,7 +214,7 @@ class t3lib_iconWorks       {
                                        ($protectSection ? 'p' : '').
                                        ($shaded ? 's' : '');
                        }
-                       
+
                                // Create tagged icon file name:
                        $iconFileName_stateTagged = ereg_replace('.([[:alnum:]]+)$','__'.$flags.'.\1',basename($iconfile));
 
@@ -236,7 +236,7 @@ class t3lib_iconWorks       {
                        return $iconfile;
                }
        }
-       
+
        /**
         * Returns the src=... for the input $src value OR any alternative found in $TBE_STYLES['skinImg']
         * Used for skinning the TYPO3 backend with an alternative set of icons
@@ -253,31 +253,31 @@ class t3lib_iconWorks     {
                        // Setting source key. If the icon is refered to inside an extension, we homogenize the prefix to "ext/":
                $srcKey = ereg_replace('^(\.\.\/typo3conf\/ext|sysext|ext)\/','ext/',$src);
 #if ($src!=$srcKey)debug(array($src,$srcKey));
-               
+
                        // LOOKING for alternative icons:
                if ($GLOBALS['TBE_STYLES']['skinImg'][$srcKey]) {       // Slower or faster with is_array()? Could be used.
                        list($src,$wHattribs) = $GLOBALS['TBE_STYLES']['skinImg'][$srcKey];
                } elseif ($GLOBALS['TBE_STYLES']['skinImgAutoCfg'])     {       // Otherwise, test if auto-detection is enabled:
-               
+
                                // Search for alternative icon automatically:
                        $fExt = $GLOBALS['TBE_STYLES']['skinImgAutoCfg']['forceFileExtension'];
                        $scaleFactor = $GLOBALS['TBE_STYLES']['skinImgAutoCfg']['scaleFactor'] ? $GLOBALS['TBE_STYLES']['skinImgAutoCfg']['scaleFactor'] : 1;   // Scaling factor
                        $lookUpName = $fExt ? ereg_replace('\.[[:alnum:]]+$','',$srcKey).'.'.$fExt : $srcKey;   // Set filename to look for
-                       
+
                                // If file is found:
                        if (@is_file($GLOBALS['TBE_STYLES']['skinImgAutoCfg']['absDir'].$lookUpName))   {       // If there is a file...
                                $iInfo = @getimagesize($GLOBALS['TBE_STYLES']['skinImgAutoCfg']['absDir'].$lookUpName); // Get width/height:
-                               
+
                                        // Set $src and $wHattribs:
                                $src = $GLOBALS['TBE_STYLES']['skinImgAutoCfg']['relDir'].$lookUpName;
                                $wHattribs = 'width="'.round($iInfo[0]*$scaleFactor).'" height="'.round($iInfo[1]*$scaleFactor).'"';
                        }
-                       
+
                                // In anycase, set currect src / wHattrib - this way we make sure that an entry IS found next time we hit the function, regardless of whether it points to a alternative icon or just the current.
                        $GLOBALS['TBE_STYLES']['skinImg'][$srcKey] = array($src,$wHattribs);            // Set default...
                }
-       
-                       // DEBUG: This doubles the size of all icons - for testing/debugging:   
+
+                       // DEBUG: This doubles the size of all icons - for testing/debugging:
 #              if (ereg('^width="([0-9]+)" height="([0-9]+)"$',$wHattribs,$reg))       $wHattribs='width="'.($reg[1]*2).'" height="'.($reg[2]*2).'"';
 
                        // Return icon source/wHattributes:
@@ -293,8 +293,8 @@ class t3lib_iconWorks       {
                        break;
                }
        }
-       
-       
+
+
 
 
 
@@ -326,8 +326,8 @@ class t3lib_iconWorks       {
                $iconFileName = 'icon_'.t3lib_div::shortMD5($iconfile.'|'.$mode.'|-'.$user.'|'.$protectSection).'_'.$iconFileName_stateTagged.'.'.($GLOBALS['TYPO3_CONF_VARS']['GFX']['gdlib_png']?'png':'gif');
                $mainpath = '../typo3temp/'.$iconFileName;
                $path = PATH_site.'typo3temp/'.$iconFileName;
-               
-                       
+
+
                if (@file_exists(PATH_typo3.'icons/'.$iconFileName))    {       // Returns if found in typo3/icons/
                        return 'icons/'.$iconFileName;
                } elseif (@file_exists($path))  {       // Returns if found in ../typo3temp/icons/
@@ -335,7 +335,7 @@ class t3lib_iconWorks       {
                } else {        // Makes icon:
                        if (@file_exists($absFile))     {
                                if ($GLOBALS['TYPO3_CONF_VARS']['GFX']['gdlib'])        {
-                               
+
                                                // Create image pointer, if possible:
                                        $im = t3lib_iconworks::imagecreatefrom($absFile);
                                        if ($im<0)      return $iconfile;
@@ -355,11 +355,11 @@ class t3lib_iconWorks     {
                                                if ($user < 100)        {       // Apply user number only if lower than 100
                                                        $black = ImageColorAllocate($im, 0,0,0);
                                                        imagefilledrectangle($im, 0,0,(($user>10)?9:5),8,$black);
-                                                       
+
                                                        $white = ImageColorAllocate($im, 255,255,255);
                                                        imagestring($im, 1, 1, 1, $user, $white);
                                                }
-               
+
                                                $ol_im = t3lib_iconworks::imagecreatefrom($GLOBALS['BACK_PATH'].'gfx/overlay_group.gif');
                                                if ($ol_im<0)   return $iconfile;
 
@@ -398,7 +398,7 @@ class t3lib_iconWorks       {
                                                if ($ol_im<0)   return $iconfile;
                                                t3lib_iconworks::imagecopyresized($im, $ol_im, 0, 0, 0, 0, imagesx($ol_im), imagesy($ol_im), imagesx($ol_im), imagesy($ol_im));
                                        }
-                                       
+
                                                // Create the image as file, destroy GD image and return:
                                        @t3lib_iconWorks::imagemake($im, $path);
                                        t3lib_div::gif_compress($path, 'IM');
@@ -412,7 +412,7 @@ class t3lib_iconWorks       {
                        }
                }
        }
-       
+
        /**
         * The necessity of using this function for combining two images if GD is version 2 is that
         *      GD2 cannot manage to combine two indexed-color images without totally spoiling everything.
@@ -445,7 +445,7 @@ class t3lib_iconWorks       {
                                                ($GLOBALS['TYPO3_CONF_VARS']['GFX']['im_combine_filename']?$GLOBALS['TYPO3_CONF_VARS']['GFX']['im_combine_filename']:'combine').
                                                ' -compose over ';
                                $tempBaseName = PATH_site.'typo3temp/ICRZ_'.md5(uniqid('.'));
-                               
+
                                ImagePng($im, $tempBaseName.'_im.png');
                                ImagePng($cpImg, $tempBaseName.'_cpImg.png');
                                exec($cmd.
index 2c00bd5..06ab26d 100755 (executable)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * Contains class for loading database groups
  *
  * $Id$
  *
  *
  *
- *   72: class t3lib_loadDBGroup       
- *   99:     function start ($itemlist,$tablelist, $MMtable='',$MMuid=0)
+ *   72: class t3lib_loadDBGroup
+ *   99:     function start($itemlist,$tablelist, $MMtable='',$MMuid=0)
  *  140:     function readList($itemlist)
- *  186:     function readMM($tableName,$uid)  
- *  215:     function writeMM($tableName,$uid,$prependTableName=0)     
- *  251:     function getValueArray($prependTableName='')      
- *  279:     function convertPosNeg($valueArray,$fTable,$nfTable)      
- *  301:     function getFromDB()      
- *  333:     function readyForInterface()      
+ *  186:     function readMM($tableName,$uid)
+ *  215:     function writeMM($tableName,$uid,$prependTableName=0)
+ *  251:     function getValueArray($prependTableName='')
+ *  279:     function convertPosNeg($valueArray,$fTable,$nfTable)
+ *  301:     function getFromDB()
+ *  333:     function readyForInterface()
  *
  * TOTAL FUNCTIONS: 8
  * (This index is automatically created/updated by the extension "extdeveval")
@@ -83,8 +83,8 @@ class t3lib_loadDBGroup       {
        var $dbPaths=Array();
        var $firstTable = '';                           // Will contain the first table name in the $tablelist (for positive ids)
        var $secondTable = '';                          // Will contain the second table name in the $tablelist (for negative ids)
-       
-       
+
+
 
 
        /**
@@ -112,7 +112,7 @@ class t3lib_loadDBGroup     {
                                $this->additionalWhere[$tName].=' AND NOT '.$fieldN;
                        }
                }
-               
+
                if (is_array($this->tableArray))        {
                        reset($this->tableArray);
                } else {return 'No tables!';}
@@ -121,16 +121,16 @@ class t3lib_loadDBGroup   {
                $this->firstTable = key($this->tableArray);             // Is the first table
                next($this->tableArray);
                $this->secondTable = key($this->tableArray);    // If the second table is set and the ID number is less than zero (later) then the record is regarded to come from the second table...
-               
+
                        // Now, populate the internal itemArray and tableArray arrays:
                if ($MMtable)   {       // If MM, then call this function to do that:
                        $this->readMM($MMtable,$MMuid);
                } else {
                                // If not MM, then explode the itemlist by "," and traverse the list:
                        $this->readList($itemlist);
-               }               
+               }
        }
-       
+
        /**
         * Explodes the item list and stores the parts in the internal arrays itemArray and tableArray from MM records.
         *
@@ -143,7 +143,7 @@ class t3lib_loadDBGroup     {
                        foreach($tempItemArray as $key => $val) {
                                $isSet = 0;     // Will be set to "1" if the entry was a real table/id:
 
-                                       // Extract table name and id. This is un the formular [tablename]_[id] where table name MIGHT contain "_", hence the reversion of the string!                                   
+                                       // Extract table name and id. This is un the formular [tablename]_[id] where table name MIGHT contain "_", hence the reversion of the string!
                                $val = strrev($val);
                                $parts = explode('_',$val,2);
                                $theID = strrev($parts[0]);
@@ -164,7 +164,7 @@ class t3lib_loadDBGroup     {
                                                $isSet=1;
                                        }
                                }
-                               
+
                                        // If it turns out that the value from the list was NOT a valid reference to a table-record, then we might still set it as a NO_TABLE value:
                                if (!$isSet && $this->registerNonTableValues)   {
                                        $this->itemArray[$key]['id'] = $tempItemArray[$key];
@@ -174,7 +174,7 @@ class t3lib_loadDBGroup     {
                        }
                }
        }
-       
+
        /**
         * Reads the record tablename/id into the internal arrays itemArray and tableArray from MM records.
         * You can call this function after start if you supply no list to start()
@@ -216,8 +216,8 @@ class t3lib_loadDBGroup     {
 
                        // Delete all relations:
                $GLOBALS['TYPO3_DB']->exec_DELETEquery($tableName, 'uid_local='.intval($uid));
-               
-                       // If there are tables...                       
+
+                       // If there are tables...
                $tableC = count($this->tableArray);
                if ($tableC)    {
                        $prep = ($tableC>1||$prependTableName) ? 1 : 0;
@@ -227,7 +227,7 @@ class t3lib_loadDBGroup     {
                                // For each item, insert it:
                        foreach($this->itemArray as $val)       {
                                $c++;
-                               
+
                                $insertFields = array(
                                        'uid_local' => $uid,
                                        'uid_foreign' => $val['id'],
@@ -252,12 +252,12 @@ class t3lib_loadDBGroup   {
                        // INIT:
                $valueArray=Array();
                $tableC = count($this->tableArray);
-               
+
                        // If there are tables in the table array:
                if ($tableC)    {
                                // If there are more than ONE table in the table array, then always prepend table names:
                        $prep = ($tableC>1||$prependTableName) ? 1 : 0;
-                       
+
                                // Traverse the array of items:
                        foreach($this->itemArray as $val)       {
                                $valueArray[]=(($prep && $val['table']!='_NO_TABLE') ? $val['table'].'_' : '').
@@ -265,7 +265,7 @@ class t3lib_loadDBGroup     {
                        }
                }
                        // Return the array
-               return $valueArray;     
+               return $valueArray;
        }
 
        /**
@@ -283,15 +283,15 @@ class t3lib_loadDBGroup   {
                                $parts = explode('_',$val,2);
                                $theID = strrev($parts[0]);
                                $theTable = strrev($parts[1]);
-                               
+
                                if ( t3lib_div::testInt($theID) && (!$theTable || !strcmp($theTable,$fTable) || !strcmp($theTable,$nfTable)) )  {
                                        $valueArray[$key]= $theTable && strcmp($theTable,$fTable) ? $theID*-1 : $theID;
                                }
                        }
                }
-               return $valueArray;     
+               return $valueArray;
        }
-       
+
        /**
         * Reads all records from internal tableArray into the internal ->results array where keys are table names and for each table, records are stored with uids as their keys.
         * If $this->fromTC is set you can save a little memory since only uid,pid and a few other fields are selected.
@@ -299,7 +299,7 @@ class t3lib_loadDBGroup     {
         * @return      void
         */
        function getFromDB()    {
-                       // Traverses the tables listed:         
+                       // Traverses the tables listed:
                foreach($this->tableArray as $key => $val)      {
                        if (is_array($val))     {
                                $itemList = implode($val,',');
@@ -332,7 +332,7 @@ class t3lib_loadDBGroup     {
         */
        function readyForInterface()    {
                global $TCA;
-               
+
                if (!is_array($this->itemArray))        {return false;}
 
                $output=array();
index ec1e9ca..e8250e1 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /***************************************************************
 *  Copyright notice
-*  
+*
 *  (c) 1999-2004 Kasper Skaarhoj (kasper@typo3.com)
 *  All rights reserved
 *
-*  This script is part of the TYPO3 project. The TYPO3 project is 
+*  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
-* 
+*
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
-*  A copy is found in the textfile GPL.txt and important notices to the license 
+*  A copy is found in the textfile GPL.txt and important notices to the license
 *  from the author is found in LICENSE.txt distributed with these scripts.
 *
-* 
+*
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
@@ -24,7 +24,7 @@
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/
-/** 
+/**
  * This document provides a class that loads the modules for the TYPO3 interface.
  *
  * $Id$
  *
  *
  *
- *   78: class t3lib_loadModules 
- *   97:     function load($modulesArray,$BE_USER='')  
- *  366:     function checkExtensionModule($name)      
- *  385:     function checkMod($name, $fullpath)       
- *  458:     function checkModAccess($name,$MCONF)     
- *  481:     function parseModulesArray ($arr) 
- *  511:     function cleanName ($str) 
+ *   78: class t3lib_loadModules
+ *   97:     function load($modulesArray,$BE_USER='')
+ *  366:     function checkExtensionModule($name)
+ *  385:     function checkMod($name, $fullpath)
+ *  458:     function checkModAccess($name,$MCONF)
+ *  481:     function parseModulesArray ($arr)
+ *  511:     function cleanName ($str)
  *  522:     function getRelativePath($baseDir,$destDir)
  *
  * TOTAL FUNCTIONS: 7
 class t3lib_loadModules {
        var $modules = Array();         // After the init() function this array will contain the structure of available modules for the backend user.
        var $absPathArray=array();      // Array with paths pointing to the location of modules from extensions
-       
+
        var $modListGroup= Array();             // this array will hold the elements that should go into the select-list of modules for groups...
        var $modListUser= Array();              // this array will hold the elements that should go into the select-list of modules for users...
 
        var $BE_USER='';        // The backend user for use internally
-       
+
 
        /**
         * Init.
@@ -103,7 +103,7 @@ class t3lib_loadModules {
                }
 
                        /*
-                       
+
                         $modulesArray might look like this when entering this function.
                         Notice the two modules added by extensions - they have a path attached
 
@@ -111,8 +111,8 @@ class t3lib_loadModules {
                        (
                            [web] => list,info,perm,func
                            [file] => list
-                           [doc] => 
-                           [user] => 
+                           [doc] =>
+                           [user] =>
                            [tools] => em,install,txphpmyadmin
                            [help] => about
                            [_PATHS] => Array
@@ -120,17 +120,17 @@ class t3lib_loadModules {
                                    [tools_install] => /www/htdocs/typo3/32/coreinstall/typo3/ext/install/mod/
                                    [tools_txphpmyadmin] => /www/htdocs/typo3/32/coreinstall/typo3/ext/phpmyadmin/modsub/
                                )
-                       
+
                        )
-                        
+
                         */
-                       // 
+                       //
                $this->absPathArray = $modulesArray['_PATHS'];
                unset($modulesArray['_PATHS']);
 
                        /*
                                With the above data for modules the result of this function call will be:
-                               
+
                                Array
                                (
                                    [web] => Array
@@ -140,12 +140,12 @@ class t3lib_loadModules {
                                            [2] => perm
                                            [3] => func
                                        )
-                               
+
                                    [file] => Array
                                        (
                                            [0] => list
                                        )
-                               
+
                                    [doc] => 1
                                    [user] => 1
                                    [tools] => Array
@@ -154,13 +154,13 @@ class t3lib_loadModules {
                                            [1] => install
                                            [2] => txphpmyadmin
                                        )
-                               
+
                                    [help] => Array
                                        (
                                            [0] => about
                                        )
-                               
-                               )                                                       
+
+                               )
                        */
                $theMods = $this->parseModulesArray($modulesArray);
 
@@ -174,14 +174,14 @@ class t3lib_loadModules {
                $paths=array();
                $paths['defMods'] = PATH_typo3.'mod/';  // Path of static modules
                $paths['userMods'] = PATH_typo3.'../typo3conf/';  // local modules (maybe frontend specific)
-               
+
                        // Traverses the module setup and creates the internal array $this->modules
                while(list($mods,$subMod)=each($theMods))       {
                        unset ($path);
 
                        $extModRelPath = $this->checkExtensionModule($mods);
                        if ($extModRelPath)     {       // EXTENSION module:
-                               $theMainMod = $this->checkMod($mods,PATH_site.$extModRelPath);  
+                               $theMainMod = $this->checkMod($mods,PATH_site.$extModRelPath);
                                if (is_array($theMainMod) || $theMainMod!='notFound')   {
                                        $path = 1;      // ... just so it goes on... submodules cannot be within this path!
                                }
@@ -202,7 +202,7 @@ class t3lib_loadModules {
                                // if $theMainMod is not set (false) there is no access to the module !(?)
                        if ($theMainMod && isset($path))        {
                                $this->modules[$mods]=$theMainMod;
-                               
+
                                        // SUBMODULES - if any - are loaded (The 'doc' module cannot have submodules...)
                                if ($mods!='doc' && is_array($subMod))  {
                                        while(list(,$valsub)=each($subMod))     {
@@ -219,7 +219,7 @@ class t3lib_loadModules {
                                                                $this->modules[$mods]['sub'][$valsub]=$theTempSubMod;
                                                        } elseif ($path == $paths['defMods'])   {               // If the submodule did not exist in the default module path, then check if there is a submodule in the submodule path!
                                                                $theTempSubMod=$this->checkMod($mods.'_'.$valsub,$paths['userMods'].$mods.'/'.$valsub);
-                                                               if (is_array($theTempSubMod))   {       
+                                                               if (is_array($theTempSubMod))   {
                                                                        $this->modules[$mods]['sub'][$valsub]=$theTempSubMod;
                                                                }
                                                        }
@@ -237,7 +237,7 @@ class t3lib_loadModules {
        /*
                At this point $this->modules should look like this:
                Only modules which were accessible to the $BE_USER is listed in this array.
-       
+
                Array
                (
                    [web] => Array
@@ -252,29 +252,29 @@ class t3lib_loadModules {
                                            [name] => web_list
                                            [script] => mod/web/list/../../../db_list.php
                                        )
-               
+
                                    [info] => Array
                                        (
                                            [name] => web_info
                                            [script] => mod/web/info/index.php
                                        )
-               
+
                                    [perm] => Array
                                        (
                                            [name] => web_perm
                                            [script] => mod/web/perm/index.php
                                        )
-               
+
                                    [func] => Array
                                        (
                                            [name] => web_func
                                            [script] => mod/web/func/index.php
                                        )
-               
+
                                )
-               
+
                        )
-               
+
                    [file] => Array
                        (
                            [name] => file
@@ -286,24 +286,24 @@ class t3lib_loadModules {
                                            [name] => file_list
                                            [script] => mod/file/list/../../../file_list.php
                                        )
-               
+
                                )
-               
+
                        )
-               
+
                    [doc] => Array
                        (
                            [name] => doc
                            [script] => mod/doc/../../alt_doc.php
                        )
-               
+
                    [user] => Array
                        (
                            [name] => user
                            [script] => dummy.php
                            [defaultMod] => task
                        )
-               
+
                    [tools] => Array
                        (
                            [name] => tools
@@ -315,23 +315,23 @@ class t3lib_loadModules {
                                            [name] => tools_em
                                            [script] => mod/tools/em/index.php
                                        )
-               
+
                                    [install] => Array
                                        (
                                            [name] => tools_install
                                            [script] => ext/install/mod/../../../install/index.php
                                        )
-               
+
                                    [txphpmyadmin] => Array
                                        (
                                            [name] => tools_txphpmyadmin
                                            [script] => ext/phpmyadmin/modsub/index.php
                                        )
-               
+
                                )
-               
+
                        )
-               
+
                    [help] => Array
                        (
                            [name] => help
@@ -344,13 +344,13 @@ class t3lib_loadModules {
                                            [name] => help_about
                                            [script] => mod/help/about/index.php
                                        )
-               
+
                                )
-               
+
                        )
-               
-               )       
-       
+
+               )
+
        */
 
 #debug($this->modules);
@@ -365,7 +365,7 @@ class t3lib_loadModules {
         */
        function checkExtensionModule($name)    {
                global $TYPO3_LOADED_EXT;
-               
+
                if (isset($this->absPathArray[$name]))  {
                        return ereg_replace ('\/$', '', substr($this->absPathArray[$name],strlen(PATH_site)));
                }
@@ -394,7 +394,7 @@ class t3lib_loadModules {
                                                // $MLANG['default']['tabs_images']['tab'] is for modules the reference to the module icon.
                                                // Here the path is transformed to an absolute reference.
                                        if ($MLANG['default']['tabs_images']['tab'])    {
-                                               
+
                                                        // Initializing search for alternative icon:
                                                $altIconKey = 'MOD:'.$name.'/'.$MLANG['default']['tabs_images']['tab'];         // Alternative icon key (might have an alternative set in $TBE_STYLES['skinImg']
                                                $altIconAbsPath = is_array($GLOBALS['TBE_STYLES']['skinImg'][$altIconKey]) ? t3lib_div::resolveBackPath(PATH_typo3.$GLOBALS['TBE_STYLES']['skinImg'][$altIconKey][0]) : '';
@@ -406,7 +406,7 @@ class t3lib_loadModules {
                                                                // Setting default icon:
                                                        $MLANG['default']['tabs_images']['tab']=$this->getRelativePath(PATH_typo3,$fullpath.'/'.$MLANG['default']['tabs_images']['tab']);
                                                }
-                       
+
                                                        // Finally, setting the icon with correct path:
                                                if (substr($MLANG['default']['tabs_images']['tab'],0,3)=='../') {
                                                        $MLANG['default']['tabs_images']['tab'] = PATH_site.substr($MLANG['default']['tabs_images']['tab'],3);
@@ -427,7 +427,7 @@ class t3lib_loadModules {
                                                $GLOBALS['LANG']->addModuleLabels($MLANG[$GLOBALS['LANG']->lang],$name.'_');
                                        }
                                }
-                       
+
                                        // Default script setup
                                if ($MCONF['script'] && @file_exists($path.'/'.$MCONF['script']))       {
                                        $modconf['script']= $this->getRelativePath(PATH_typo3,$fullpath.'/'.$MCONF['script']);
@@ -525,23 +525,23 @@ class t3lib_loadModules {
                if ($baseDir == $destDir){
                        return './';
                }
-               
+
                $baseDir = ereg_replace ('^/', '', $baseDir);   // remove beginning
                $destDir = ereg_replace ('^/', '', $destDir);
-               
+
                $found = true;
                $slash_pos=0;
-               
+
                do {
                        $slash_pos = strpos ($destDir, '/');
-                       if (substr($destDir, 0, $slash_pos) == substr($baseDir, 0, $slash_pos)){ 
+                       if (substr($destDir, 0, $slash_pos) == substr($baseDir, 0, $slash_pos)){
                                $baseDir = substr($baseDir, $slash_p