Zum Inhalt springen

sr_feuser_register + encoding

Erstellt am 3. Mai 2005 · 1 Antwort · letzte Antwort am 3. Mai 2005

Tags: Frage

BastianBalthasarBux ·

Hi Leute!

typo3 3.7.0
sr_feuser_register 1.3.13

Folgendes Problem: Hab mir, wie schon oft, eine mini ext geschrieben, die mir diesfalls die fe_users aufbohrt. soweit auch no prob. jetzt hab ich aber ein zusätzliches feld für ein image hinzugefügt. (tinyblob, max =6 min = 0) seitdem hab ich in der sr_feuser_register ein handfestes encoding problem.
und zwar scheint es so, als ob die ext. defaultmässig das encoding auf utf8 setzt. ich hab dann mit metaCharset (setup) und forceCharset (localconf) das charset richtig gestellt, ohne auch nur irgendeinen effekt.
Aufgrund dieses encoding problems wirfts jetzt im ie js-errors und im ff führt er einfach bestimmte js-funktionen nicht mehr aus.

bin verzweifelt, mach da jetzt schon 5h rum und weiss nimmer weiter.

die codestelle in der ext hab ich auch schon gefunden.

function getUpdateJS($dataArray, $formName, $arrPrefix, $fieldList) {
			$JSPart = '';
			$updateValues = t3lib_div::trimExplode(',', $fieldList);
			$mbstring_is_available = in_array('mbstring', get_loaded_extensions());
			while (list(, $fKey) = each($updateValues)) {
				$value = $dataArray[$fKey];
				if (is_array($value)) {

					reset($value);
					while (list(, $Nvalue) = each($value)) {
						if ($this->typoVersion >= 3006000 ) {
							$convValue = $GLOBALS['TSFE']->csConvObj->conv($Nvalue, $this->charset, 'utf-8');
						} elseif ($mbstring_is_available) {
							$convValue = mb_convert_encoding ( $Nvalue, 'utf-8', $this->charset);
						} elseif ($this->charset == 'iso-8859-1') {
							$convValue = utf8_encode($Nvalue);
						} else {
							$convValue = $Nvalue;   // giving up!
						}
						$JSPart .= "
							if (window.decodeURIComponent) { unesc = decodeURIComponent('".rawurlencode($convValue)."') } else { unesc = unescape('".rawurlencode($Nvalue)."') };
							updateForm('".$formName."','".$arrPrefix."[".$fKey."][]',unesc);";
					}
					 
				} else {
					if ($this->typoVersion >= 3006000 ) {
						$convValue = $GLOBALS['TSFE']->csConvObj->conv($value, $this->charset, 'utf-8');
					} elseif ($mbstring_is_available) {
						$convValue = mb_convert_encoding ( $value, 'utf-8', $this->charset);
					} elseif ($this->charset == 'iso-8859-1') {
						$convValue = utf8_encode($value);
					} else {
						$convValue = $value;  // giving up!
					}
					$JSPart .= "
						if (window.decodeURIComponent) { unesc = decodeURIComponent('".rawurlencode($convValue)."') } else { unesc = unescape('".rawurlencode($value)."') };
						updateForm('".$formName."','".$arrPrefix."[".$fKey."]',unesc);";
				}
			}
			$JSPart = '<script type="text/javascript">
				/*<![CDATA[*/ '.$JSPart.'
				/*]]>*/
				</script>
				';
			$GLOBALS['TSFE']->additionalHeaderData['JSincludeFormupdate'] = '<script type="text/javascript" src="'.$GLOBALS['TSFE']->absRefPrefix.'t3lib/jsfunc.updateform.js"></script>';
			return $JSPart;
		}
BastianBalthasarBux ·

Hat sich erledigt. hatte soviele modifications in der class für user registration, dass ich wohl selber nicht mehr ganz durchgestiegen bin. jetzt passts. trotzdem danke! 😃