Commit 9f2c299a authored by Michael Stucki's avatar Michael Stucki
Browse files

* Added new stdWrap property "stdWrap" for calling stdWrap recursively

	* Added new hook in t3lib_tcemain::process_cmdmap (closes #0000823)
	* Removed typeNum = 0 in some places (a previous change already sets them to 0 by default)
	* !!! Use nimbus.ttf and vera.ttf as default truetype fonts for the GIFBUILDER. This is generally not a problem because they were always used (arial.ttf is a symlink to nimbus.ttf, verdana.ttf is pointing to vera.ttf). However it could change your page design if you just overwrote the symlinks with a different file and did not set the fontFile in the GIFBUILDER configuration.
	* File- and foldernames in the fileadmin could be cut to some lenght. Therefore a tool tip is added to show the full name.
	* Fixed bug #0000286: spamProtectEmailAddresses sometimes wrecked table content elements
	* New feature #0000490: Optionally remove duplicate parameters in typolinks
	* Fixed bug #0000675: Context menu did not work with Opera
	* Corrected a hook in index_ts.php


git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@639 709f56b5-9817-0410-a4d7-c38de5d9e867
parent 7decf5b6
2005-04-14 Michael Stucki <michael@typo3.org>
* Added new stdWrap property "stdWrap" for calling stdWrap recursively
* Added new hook in t3lib_tcemain::process_cmdmap (closes #0000823)
* Removed typeNum = 0 in some places (a previous change already sets them to 0 by default)
* !!! Use nimbus.ttf and vera.ttf as default truetype fonts for the GIFBUILDER. This is generally not a problem because they were always used (arial.ttf is a symlink to nimbus.ttf, verdana.ttf is pointing to vera.ttf). However it could change your page design if you just overwrote the symlinks with a different file and did not set the fontFile in the GIFBUILDER configuration.
* File- and foldernames in the fileadmin could be cut to some lenght. Therefore a tool tip is added to show the full name.
* Fixed bug #0000286: spamProtectEmailAddresses sometimes wrecked table content elements
* New feature #0000490: Optionally remove duplicate parameters in typolinks
* Fixed bug #0000675: Context menu did not work with Opera
* Corrected a hook in index_ts.php
2005-04-13 Ingmar Schlecht <ingmar@typo3.org>
* Corrected earlier bugfix by Karsten: Reverted require_once(PATH_t3lib.'config_default.php') to require() in index_ts.php
......@@ -21,7 +33,8 @@
* Added hook for TIMTAW extension in t3lib_userauth
* Changed typo3/mod/tools/em/index.php to support new "Overwrite" checkbox feature of Kickstarter
2005-04-10 Jan-Erik <jer@moccompany.com>
2005-04-10 Jan-Erik Revsbech <jer@moccompany.com>
* The earlier attempts to fix the problem of Return-Path with Postfix below version 2.0 seems not to work on all systems. The t3lib_htmlmail class now only forces the return-path if forceReturnPath is enabled in the install tool.
* Added an option to the install tool mail test form. Send the testmail via t3lib_htmlmail with the return-path set to null@<HTTP_HOST>.
......
......@@ -74,13 +74,13 @@ SUMMARY:
[F] Version number scheme
Versioning scheme:
- major.minor.patch[A/B/RC][-dev]
- major.minor.patch[alpha/beta/RC][-dev]
- major and minor: Incremented based on the extend of new features (in HEAD branch)
- patch: incremented only for important bugfixes in a release branch.
- dev is always used for intermediate CVS stuff.
- [A/B/RC] is used only for major releases where this procedure is necessary.
- [alpha/beta/RC] is used only for major releases where this procedure is necessary. These releases have always a trailing number, counting from 1 to n.
- HEAD branch is the continuous development of TYPO3. We use only this branch for new development of the Core.
- Each time we have a Release Candidate which is so stable we believe it to be the final release we will make a "release branch" tagged "TYPO3_[major]-[minor]". The Quality Ensurance team / Package team represented by Ingmar Schlecht and Michael Stucki are in charge of managing the release branches and make new patch releases. Kasper is still in charge of a) tagging and b) merging bugfixes in the release branches.
- Each time we have a Release Candidate which is so stable we believe it to be the final release we will make a "release branch" tagged "TYPO3_[major]-[minor]". The Quality Ensurance team / Package team represented by Ingmar Schlecht and Michael Stucki are in charge of managing the release branches, make new patch releases, tag and merge bugfixes in the release branches.
- In the release branches tagging is used for each release on the form "TYPO3_[major]-[minor]-[patch]"
Examples of BRANCHES (major/minor releases):
......@@ -100,4 +100,4 @@ Example:
For the 3.7.0 launch the RC2 event will be a feature freeze. Therefore the branch "TYPO3_3-7" is created there meaning:
- Final fixes (and future hotfixes) is done in that branch
- Development for 3.8.0 could go on in HEAD
At the same time the tag "TYPO3_3-7-0RC2" was applied basically because the branch-point coincided with the RC2. If an RC3 would come that would be tagged in the "TYPO3_3-7-0RC3" branch. Maybe the final release gets the tag "TYPO3_3-7-0" to indicate the point of release.
At the same time the tag "TYPO3_3-7-0RC2" was applied basically because the branch-point coincided with the RC2. If an RC3 would come that would be tagged in the "TYPO3_3-7-0RC3" branch. The final release gets the tag "TYPO3_3-7-0" to indicate the point of release.
......@@ -133,7 +133,7 @@ class t3lib_folderTree extends t3lib_treeView {
if ($GLOBALS['TYPO3_CONF_VARS']['BE']['useOnContextMenuHandler']) {
$CSM = ' oncontextmenu="'.htmlspecialchars($GLOBALS['TBE_TEMPLATE']->wrapClickMenuOnIcon('',$row['path'],'',0,'','',TRUE)).'"';
}
return '<a href="#" onclick="'.htmlspecialchars($aOnClick).'"'.$CSM.'>'.$title.'</a>';
return '<a href="#" title="'.htmlspecialchars($row['title']).'" onclick="'.htmlspecialchars($aOnClick).'"'.$CSM.'>'.$title.'</a>';
}
/**
......
......@@ -2648,7 +2648,14 @@ class t3lib_TCEmain {
* @return void
*/
function process_cmdmap() {
global $TCA;
global $TCA, $TYPO3_CONF_VARS;
$hookObjectsArr = array();
if (is_array ($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass'])) {
foreach ($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass'] as $classRef) {
$hookObjectsArr[] = &t3lib_div::getUserObj($classRef);
}
}
// Traverse command map:
reset ($this->cmdmap);
......@@ -2672,6 +2679,12 @@ class t3lib_TCEmain {
$command = key($incomingCmdArray);
$value = current($incomingCmdArray);
foreach($hookObjectsArr as $hookObj) {
if (method_exists($hookObj, 'processCmdmap_preProcess')) {
$hookObj->processCmdmap_preProcess($command, $table, $id, $value, $this);
}
}
// Init copyMapping array:
$this->copyMappingArray = Array(); // Must clear this array before call from here to those functions: Contains mapping information between new and old id numbers.
......@@ -2713,6 +2726,13 @@ class t3lib_TCEmain {
}
break;
}
foreach($hookObjectsArr as $hookObj) {
if (method_exists($hookObj, 'processCmdmap_postProcess')) {
$hookObj->processCmdmap_postProcess($command, $table, $id, $value, $this);
}
}
// Merging the copy-array info together for remapping purposes.
$this->copyMappingArray_merged= t3lib_div::array_merge_recursive_overrule($this->copyMappingArray_merged,$this->copyMappingArray);
}
......
......@@ -1327,7 +1327,21 @@ class t3lib_TStemplate {
$LD['no_cache'] = (trim($page['no_cache']) || $no_cache) ? '&no_cache=1' : '';
// linkVars
$LD['linkVars'] = $GLOBALS['TSFE']->linkVars.$addParams;
if ($GLOBALS['TSFE']->config['config']['uniqueLinkVars']) {
if ($addParams) {
$lV = array();
$addParamsArr = t3lib_div::trimExplode('&',$GLOBALS['TSFE']->linkVars.$addParams,1);
while(list($k,$e)=each($addParamsArr)) if ($e) {
list($k,$v) = explode('=',$e, 2);
$lV[$k] = $v;
}
$LD['linkVars'] = t3lib_div::implodeArrayForUrl('',$lV);
} else {
$LD['linkVars'] = $GLOBALS['TSFE']->linkVars;
}
} else {
$LD['linkVars'] = $GLOBALS['TSFE']->linkVars.$addParams;
}
// If simulateStaticDocuments is enabled:
if ($GLOBALS['TSFE']->config['config']['simulateStaticDocuments']) {
......
......@@ -2,8 +2,8 @@ Fonts:
***********************************************
Nimbus Sans L regular (the Arial substitute)
"nimbus.ttf" - A "arial"-look-alike font, see below
"arial.ttf" - is a symlink (equal to) "nimbus.ttf". If you want a real arial font you should just substitute this file with a arial-normal ttf file from your windows system (fonts/ARIAL.TTF)
"nimbus.ttf" - An "arial"-look-alike font, see below
"arial.ttf" - is a symlink (equal to) "nimbus.ttf" because some setups might need this file. If you want to use the real Arial font you should just substitute this file with a arial-normal ttf file from your Windows system (fonts/arial.ttf)
***********************************************
From "http://www.math.utah.edu/~beebe/fonts/urw.html":
......@@ -25,9 +25,9 @@ Fax: +49 (40) 60 60 5 111
***********************************************
Bitstream Vera Sans (the Verdana substitute)
Bitstream Vera Sans (a Verdana substitute)
"vera.ttf" - A "arial"-look-alike font,
"verdana.ttf" - is a symlink (equal to) "vera.ttf". If you want a real verdana font you should just substitute this file with a verdana-normal ttf file from your windows system (fonts/verdana.TTF)
"verdana.ttf" - is a symlink (equal to) "vera.ttf" because some setups might need this file. If you want to use the real Verdana font you should just substitute this file with a verdana-normal ttf file from your Windows system (fonts/verdana.ttf)
***********************************************
More information:
......
......@@ -340,7 +340,7 @@ class fileList extends t3lib_recordList {
$theData[$field]=Date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'], $theFile['tstamp']);
break;
case 'file':
$theData[$field]= $this->linkWrapDir(t3lib_div::fixed_lgd($title,$this->fixedL),$path);
$theData[$field]= $this->linkWrapDir($title,$path);
break;
case '_CLIPBOARD_':
$theData[$field]=$this->makeClip($theFile);
......@@ -367,7 +367,7 @@ class fileList extends t3lib_recordList {
*/
function linkWrapDir($code,$path) {
$href = $this->script.'?id='.rawurlencode($path);
return '<a href="'.htmlspecialchars($href).'">'.$code.'</a>';
return '<a href="'.htmlspecialchars($href).'" title="'.htmlspecialchars($code).'">'.t3lib_div::fixed_lgd($code,$this->fixedL).'</a>';
}
/**
......@@ -378,10 +378,11 @@ class fileList extends t3lib_recordList {
* @return string HTML
*/
function linkWrapFile($code,$path) {
if (t3lib_div::isFirstPartOfStr($path,t3lib_div::getIndpEnv('TYPO3_DOCUMENT_ROOT'))) {
$href = substr($path,strlen(t3lib_div::getIndpEnv('TYPO3_DOCUMENT_ROOT')));
$aOnClick = "return top.openUrlInWindow('".$href."','WebFile');";
$code = '<a href="#" onclick="'.htmlspecialchars($aOnClick).'">'.$code.'</a>';
$code = '<a href="#" title="'.htmlspecialchars($code).'" onclick="'.htmlspecialchars($aOnClick).'">'.t3lib_div::fixed_lgd($code,$this->fixedL).'</a>';
}
return $code;
}
......@@ -469,7 +470,7 @@ class fileList extends t3lib_recordList {
$theData[$field]=$this->makeClip($theFile);
break;
case 'file':
$theData[$field] = $this->linkWrapFile(t3lib_div::fixed_lgd($theFile[$field],$this->fixedL),$theFile['path'].$theFile['file']);
$theData[$field] = $this->linkWrapFile($theFile[$field],$theFile['path'].$theFile['file']);
break;
default:
$theData[$field]=t3lib_div::fixed_lgd($theFile[$field],$this->fixedL);
......
......@@ -1642,7 +1642,6 @@ This TypoScript configuration will also demonstrate it:
includeLibs.something = media/scripts/example_callfunction.php
page = PAGE
page.typeNum=0
page.10 = TEXT
page.10 {
value = Hello World
......@@ -1658,7 +1657,6 @@ This TypoScript configuration will also demonstrate it:
includeLibs.something = media/scripts/example_callfunction.php
page = PAGE
page.typeNum=0
page.10 = USER_INT
page.10 {
userFunc = user_printTime
......@@ -1678,7 +1676,6 @@ This TypoScript configuration will also demonstrate it:
includeLibs.something = media/scripts/example_callfunction.php
page = PAGE
page.typeNum=0
page.30 = USER
page.30 {
userFunc = user_various->listContentRecordsOnPage
......@@ -1705,7 +1702,6 @@ This TypoScript configuration will also demonstrate it ("fake menu items"):
includeLibs.fakemenuitems = media/scripts/example_itemArrayProcFunc.php
page = PAGE
page.typeNum = 0
page.10 = HMENU
page.10.1 = TMENU
page.10.1.expAll = 1
......@@ -1752,7 +1748,6 @@ includeLibs.popup = media/scripts/example_typolinkpop.php
config.setJS_openPic = 1
page = PAGE
page.typeNum = 0
page.10 < styles.content.get
(Plus the "content (default)" static template included as well)
......
......@@ -3022,6 +3022,10 @@ class tslib_cObj {
}
if ($conf['trim']){$content=trim($content);}
// Call stdWrap recursively
if ($conf['stdWrap']){$content=$this->stdWrap($content,$conf['stdWrap.']);}
if ( ($conf['required'] && (string)$content=='') || ($conf['if.'] && !$this->checkIf($conf['if.'])) || ($conf['fieldRequired'] && !trim($this->data[$conf['fieldRequired']])) ){
$content = '';
} else {
......@@ -5203,12 +5207,14 @@ class tslib_cObj {
* @return string Returns a numerical array with two elements: 1) $mailToUrl, string ready to be inserted into the href attribute of the <a> tag, b) $linktxt: The string between starting and ending <a> tag.
*/
function getMailTo($mailAddress,$linktxt,$initP='?') {
$mailToUrl = 'mailto:'.$mailAddress;
if (!$GLOBALS['TSFE']->config['config']['jumpurl_enable'] || $GLOBALS['TSFE']->config['config']['jumpurl_mailto_disable']) {
if ($GLOBALS['TSFE']->spamProtectEmailAddresses) {
if ($GLOBALS['TSFE']->spamProtectEmailAddresses === 'ascii') {
$mailToUrl = $GLOBALS['TSFE']->encryptEmail('mailto:'.$mailAddress);
$mailToUrl = $GLOBALS['TSFE']->encryptEmail($mailToUrl);
} else {
$mailToUrl = "javascript:linkTo_UnCryptMailto('".$GLOBALS['TSFE']->encryptEmail('mailto:'.$mailAddress)."');";
$mailToUrl = "javascript:linkTo_UnCryptMailto('".$GLOBALS['TSFE']->encryptEmail($mailToUrl)."');";
}
if ($GLOBALS['TSFE']->config['config']['spamProtectEmailAddresses_atSubst']) {
$atLabel = trim($GLOBALS['TSFE']->config['config']['spamProtectEmailAddresses_atSubst']);
......@@ -5219,11 +5225,9 @@ class tslib_cObj {
$lastDotLabel = $lastDotLabel ? $lastDotLabel : '(dot)';
$linktxt = preg_replace('/\.([^\.]+)$/', $lastDotLabel.'$1', $linktxt);
}
} else {
$mailToUrl = 'mailto:'.$mailAddress;
}
} else {
$mailToUrl = $GLOBALS['TSFE']->absRefPrefix.$GLOBALS['TSFE']->config['mainScript'].$initP.'&jumpurl='.rawurlencode('mailto:'.$mailAddress).$GLOBALS['TSFE']->getMethodUrlIdToken;
$mailToUrl = $GLOBALS['TSFE']->absRefPrefix.$GLOBALS['TSFE']->config['mainScript'].$initP.'&jumpurl='.rawurlencode($mailToUrl).$GLOBALS['TSFE']->getMethodUrlIdToken;
}
return array($mailToUrl,$linktxt);
}
......
......@@ -492,7 +492,7 @@ class tslib_gifBuilder extends t3lib_stdGraphic {
*/
function checkTextObj($conf) {
$conf['fontFile']=$this->checkFile($conf['fontFile']);
if (!$conf['fontFile']){$conf['fontFile']='t3lib/fonts/arial.ttf';}
if (!$conf['fontFile']){$conf['fontFile']='t3lib/fonts/nimbus.ttf';}
if (!$conf['iterations']){$conf['iterations'] = 1;}
if (!$conf['fontSize']){$conf['fontSize']=12;}
if ($conf['spacing'] || $conf['wordSpacing']) { // If any kind of spacing applys, we cannot use angles!!
......
......@@ -136,7 +136,7 @@ class TSpagegen {
if ($GLOBALS['TSFE']->config['config']['spamProtectEmailAddresses'] === 'ascii') {
$GLOBALS['TSFE']->spamProtectEmailAddresses = 'ascii';
} else {
$GLOBALS['TSFE']->spamProtectEmailAddresses = t3lib_div::intInRange($GLOBALS['TSFE']->config['config']['spamProtectEmailAddresses'],-5,5,0);
$GLOBALS['TSFE']->spamProtectEmailAddresses = t3lib_div::intInRange($GLOBALS['TSFE']->config['config']['spamProtectEmailAddresses'],-2,2,0);
if ($GLOBALS['TSFE']->spamProtectEmailAddresses) {
$GLOBALS['TSFE']->additionalJavaScript['UnCryptMailto()']='
// JS function for uncrypting spam-protected emails:
......
......@@ -167,7 +167,7 @@ $TT->pull();
if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/index_ts.php']['preBeUser'])) {
foreach($TYPO3_CONF_VARS['SC_OPTIONS']['tslib/index_ts.php']['preBeUser'] as $_funcRef) {
$_params = array();
t3lib_div::callUserFunction($_funcRef, $_params ,$this);
t3lib_div::callUserFunction($_funcRef, $_params , $_params);
}
}
......
......@@ -51,7 +51,6 @@
*
* includeLibs.something = media/scripts/example_callfunction.php
* page = PAGE
* page.typeNum=0
* page.10 = TEXT
* page.10 {
* value = Hello World
......@@ -79,7 +78,6 @@ function user_reverseString($content,$conf) {
*
* includeLibs.something = media/scripts/example_callfunction.php
* page = PAGE
* page.typeNum=0
* page.10 = USER_INT
* page.10 {
* userFunc = user_printTime
......@@ -129,7 +127,6 @@ class user_various {
*
* includeLibs.something = media/scripts/example_callfunction.php
* page = PAGE
* page.typeNum=0
* page.30 = USER
* page.30 {
* userFunc = user_various->listContentRecordsOnPage
......
......@@ -53,7 +53,6 @@
*
* includeLibs.fakemenuitems = media/scripts/example_itemArrayProcFunc.php
* page = PAGE
* page.typeNum = 0
* page.10 = HMENU
* page.10.1 = TMENU
* page.10.1.expAll = 1
......
......@@ -58,7 +58,6 @@
* config.setJS_openPic = 1
*
* page = PAGE
* page.typeNum = 0
* page.10 < styles.content.get
*
* (Plus the "content (default)" static template included as well)
......
......@@ -11,7 +11,6 @@ To use these stylesheets in a very simple TypoScript configuration you can use s
page = PAGE
page.typeNum = 0
page.stylesheet = EXT:css_styled_content/css/example.css
page.10 < styles.content.get
......
......@@ -2316,7 +2316,7 @@ From sub-directory:
$background_color = imagecolorallocate ($im, 255, 255, 55);
$text_color = imagecolorallocate ($im, 233, 14, 91);
$test = @imagettftext($im, t3lib_div::freetypeDpiComp(20), 0, 10, 20, $text_color, PATH_t3lib."/fonts/verdana.ttf", "Testing Truetype support");
$test = @imagettftext($im, t3lib_div::freetypeDpiComp(20), 0, 10, 20, $text_color, PATH_t3lib."/fonts/vera.ttf", "Testing Truetype support");
if (t3lib_div::_GP("testingTrueTypeSupport")) {
if ($this->isGIF()) {
header ("Content-type: image/gif");
......@@ -2842,7 +2842,7 @@ From sub-directory:
"text" => "HELLO WORLD",
"fontColor" => "#003366",
"fontSize" => 18,
"fontFile" => $this->backPath."t3lib/fonts/verdana.ttf",
"fontFile" => $this->backPath."t3lib/fonts/vera.ttf",
"offset" => "17,40"
);
$conf["BBOX"] = $imageProc->calcBBox($conf);
......
......@@ -756,7 +756,7 @@ $str.=$this->docBodyTagBegin().
/**
* Returns a blank <div>-section with a height
*
* @param integer Padding-top for the div-section (should be margin-top but konquorer (3.1) don't like it :-(
* @param integer Padding-top for the div-section (should be margin-top but konqueror (3.1) doesn't like it :-(
* @return string HTML content
*/
function spacer($dist) {
......@@ -1265,8 +1265,8 @@ $str.=$this->docBodyTagBegin().
this.ref= bw.ns4?this.el.document:document;
this.x= (bw.ns4||bw.op)?this.css.left:this.el.offsetLeft;
this.y= (bw.ns4||bw.op)?this.css.top:this.el.offsetTop;
this.height= (bw.ie4||bw.ie5||bw.ns6||this.konq||bw.op7)?this.el.offsetHeight:bw.ns4?this.ref.height:bw.op?this.css.pixelHeight:0;
this.width= (bw.ie4||bw.ie5||bw.ns6||this.konq||bw.op7)?this.el.offsetWidth:bw.ns4?this.ref.width:bw.op?this.css.pixelWidth:0;
this.height= (bw.ie4||bw.dom)?this.el.offsetHeight:bw.ns4?this.ref.height:0;
this.width= (bw.ie4||bw.dom)?this.el.offsetWidth:bw.ns4?this.ref.width:0;
return this;
}
// GL_getObjCss(obj)
......@@ -1309,8 +1309,8 @@ $str.=$this->docBodyTagBegin().
if (tempLayerObj && (level==0 || GLV_isVisible[level-1])) {
tempLayerObj.el.innerHTML = html;
tempLayerObj.width= (bw.ie4||bw.ie5||bw.ns6||bw.konq||bw.op7)?this.el.offsetWidth:bw.ns4?this.ref.width:bw.op?this.css.pixelWidth:0;
tempLayerObj.height= (bw.ie4||bw.ie5||bw.ns6||bw.konq||bw.op7)?this.el.offsetHeight:bw.ns4?this.ref.height:bw.op?this.css.pixelHeight:0;
tempLayerObj.width= (bw.ie4||bw.dom)?this.el.offsetWidth:bw.ns4?this.ref.width:0;
tempLayerObj.height= (bw.ie4||bw.dom)?this.el.offsetHeight:bw.ns4?this.ref.height:0;
// konqueror (3.2.2) workaround
winHeight = (bw.konq)?window.innerHeight:winHeight;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment