Zum Inhalt springen

Falsche Zuweisung der Adresse

Erstellt am 14. Juli 2009 · 2 Antworten · letzte Antwort am 15. Juli 2009

Tags: tt_news, Frage

SirRuddy ·

Hallo,

ich habe eine kleine Extension geschrieben, um in der Single-View-Ansicht von tt_news Adressen aus tt_address anzuzeigen. Das Funktioniert auch wunderbar, solange ich nicht:

plugin.tt_news.showRelatedNewsByCategory = 1

...verwende. Dann wird die Adresse der ersten NEWS_RELATEDBYCATEGORY verwendet. Es scheint also ein reines zuweisungsproblem zu sein. Oder der Hook greift an der falschen Stelle.

Hat jemand eine Idee dazu:

<?php
require_once(PATH_tslib."class.tslib_pibase.php"); 

class tx_amextttaddressinttnews_markerhooks extends tslib_pibase {
	var $prefixId = 'tx_amextttaddressinttnews_pi1';
	var $scriptRelPath = 'pi1/class.tx_amextttaddressinttnews_pi1.php';
	var $extKey = 'am_ext_tt_address_in_tt_news';
  
	function extraItemMarkerProcessor($markerArray,$row,$lConf,$parentObject) { 
  
	$this->adresse = $parentObject->local_cObj->data['tx_amextttaddressinttnews_adresse'];

	$uid = '(uid='.$this->adresse.')';
	$uid .= ' AND (deleted = 0 ';
	$uid .= ' AND hidden = 0)';

	$content = '';

	if (strcasecmp(trim($this->adresse), '')) {
		
		$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'tt_address', $uid);
		$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);

		$content = $this->makeAddressView($row, $parentObject);
	}

        $markerArray["###TT_ADDRESS###"] = $content;
        return  $markerArray;
}

	function makeAddressView($row, $parentObject) {
		$templateCode = $parentObject->local_cObj->fileResource($parentObject->conf['templateFileAddress']);
		
		//Bereich im tmpl auswählen
		$subpart = $parentObject->local_cObj->getSubpart($templateCode,'###ADDRESS###');

      		$web = array(
			"parameter" => $row['www'],
			"extTarget" => "_blank"
		);
      		$www = $parentObject->local_cObj->typoLink($row['www'], $web); 

      		$mail = array(
			"parameter" => 'mailto:'.$row['email']
		);
      		$email = $parentObject->local_cObj->typoLink($row['email'], $mail); 

    		$markerArray2["###ADDRESS_NAME###"]=$row['name']; 
    		$markerArray2["###ADDRESS_COMPANY###"]=$row['company']; 
		$markerArray2["###ADDRESS_ADDRESS###"]=$row['address'];
		$markerArray2["###ADDRESS_PHONE###"]=$row['phone'];
		$markerArray2["###ADDRESS_WWW###"]=$www;
		$markerArray2["###ADDRESS_FAX###"]=$row['fax'];
		$markerArray2["###ADDRESS_MOBILE###"]=$row['mobile'];
    		$markerArray2["###ADDRESS_EMAIL###"]=$email; 
		$markerArray2["###ADDRESS_CITY###"]=$row['city'];
		$markerArray2["###ADDRESS_ZIP###"]=$row['zip'];
		$markerArray2["###ADDRESS_COUNTRY###"]=$row['country'];
		$markerArray2["###ADDRESS_DESCRIPTION###"]=$row['description'];

 		$content = $parentObject->local_cObj->substituteMarkerArray($subpart, $markerArray2);

    		return $content;
	}
}
?>

Gruß
SirRuddy

ThBodi ·

Ich würde mal

$this->adresse = $row['tx_amextttaddressinttnews_adresse'];

anstatt

$this->adresse = $parentObject->local_cObj->data['tx_amextttaddressinttnews_adresse'];

versuchen, damit sollte es funktionieren.