Zum Inhalt springen

tt_address anpassen

Erstellt am 26. März 2004 · 19 Antworten · letzte Antwort am 5. Februar 2007

Tags: Frage

marsian ·

Hi Leutz 😃

Wie kann ich die extension tt_address erweitern. Ich möchte eine weitere Spalte für das Alter einfügen. Ich habs mit dem Object Browser versucht, leider erfolglos.

Ich hoffe jemand kann mir helfen.

marsian ·

hat sich erledigt #giggle#

tca.php von tt_address anpassen 😃

"age" => Array (	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.age",
			"config" => Array (
				"type" => "input",
				"size" => "20",
				"eval" => "trim",
				"max" => "30"
			)
		),
marsian ·

Ein neues Problem zum gleichen Thema 😢

Also:
Das Feld im Backend konnte ich mit der Anpassung in tca.php erstellen.

<?php

// ******************************************************************
// This is the standard TypoScript address table, tt_address
// ******************************************************************
$TCA["tt_address"] = Array (
	"ctrl" => $TCA["tt_address"]["ctrl"],
	"interface" => Array (
		"showRecordFieldList" => "name,age,address,city,zip,country,phone,fax,email,www,title,company,image"
	),
	"feInterface" => $TCA["tt_address"]["feInterface"],
	"columns" => Array (	
		"hidden" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.hidden",
			"config" => Array (
				"type" => "check"
			)
		),
		"name" => Array (
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.name",
			"config" => Array (
				"type" => "input",
				"size" => "40",
				"max" => "256"
			)
		),
                               "age" => Array (
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.age",
			"config" => Array (
				"type" => "input",
				"size" => "10",
				"max" => "20"
			)
		),		"title" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.title",
			"config" => Array (
				"type" => "input",
				"size" => "20",
				"eval" => "trim",
				"max" => "40"
			)
		),
		"address" => Array (
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.address",
			"config" => Array (
				"type" => "text",
				"cols" => "20",	
				"rows" => "3"
			)
		),
		"phone" => Array (
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.phone",
			"config" => Array (
				"type" => "input",
				"eval" => "trim",
				"size" => "20",
				"max" => "30"
			)
		),
		"fax" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.fax",
			"config" => Array (
				"type" => "input",
				"size" => "20",
				"eval" => "trim",
				"max" => "30"
			)
		),
		"mobile" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:tt_address/locallang_tca.php:tt_address.mobile",
			"config" => Array (
				"type" => "input",
				"eval" => "trim",
				"size" => "20",
				"max" => "30"
			)
		),
		"www" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.www",
			"config" => Array (
				"type" => "input",
				"eval" => "trim",
				"size" => "20",
				"max" => "80"
			)
		),
		"email" => Array (
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.email",
			"config" => Array (
				"type" => "input",
				"size" => "40",
				"eval" => "trim",
				"max" => "80"
			)
		),
		"company" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.company",
			"config" => Array (
				"type" => "input",
				"eval" => "trim",
				"size" => "20",
				"max" => "80"
			)
		),
		"city" => Array (
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.city",
			"config" => Array (
				"type" => "input",
				"size" => "20",
				"eval" => "trim",
				"max" => "80"
			)
		),
		"zip" => Array (
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.zip",
			"config" => Array (
				"type" => "input",
				"eval" => "trim",
				"size" => "10",
				"max" => "20"
			)
		),
		"country" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.country",
			"config" => Array (
				"type" => "input",
				"size" => "20",
				"eval" => "trim",
				"max" => "30"
			)
		),
		"image" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.image",
			"config" => Array (
				"type" => "group",
				"internal_type" => "file",
				"allowed" => $GLOBALS["TYPO3_CONF_VARS"]["GFX"]["imagefile_ext"],
				"max_size" => "1000",
				"uploadfolder" => "uploads/pics",
				"show_thumbs" => "1",
				"size" => "3",
				"maxitems" => "6",
				"minitems" => "0"
			)
		),
		"description" => Array (
			"exclude" => 1,	
			"label" => "LLL:EXT:lang/locallang_general.php:LGL.description",
			"config" => Array (
				"type" => "text",
				"rows" => 5,
				"cols" => 48
			)
		)
	),
	"types" => Array (	
		"1" => Array("showitem" => "hidden;;;;1-1-1, name;;2;;3-3-3, address, zip, city;;3, email;;5, phone;;4, image;;;;4-4-4, description")
	),
	"palettes" => Array (
		"2" => Array("showitem" => "age, title, company"),
		"3" => Array("showitem" => "country"),
		"4" => Array("showitem" => "mobile, fax"),
		"5" => Array("showitem" => "www")
	)
);
?>

Dies wird auch wie gewollt im Backend angezeigt.

typo3/sysext/lang/locallang_general.php:
angepasst damit die Sprachausgabe richtig funzt. Dies funktioniert auch.

Die ext_tables.sql habe ich auch angepasst:

#
# Table structure for table 'tt_address'
#
CREATE TABLE tt_address (
  uid int(11) unsigned DEFAULT '0' NOT NULL auto_increment,
  pid int(11) unsigned DEFAULT '0' NOT NULL,
  tstamp int(11) unsigned DEFAULT '0' NOT NULL,
  hidden tinyint(4) unsigned DEFAULT '0' NOT NULL,
  name tinytext NOT NULL,
  age varchar(10) DEFAULT '' NOT NULL,
  title varchar(40) DEFAULT '' NOT NULL,
  email varchar(80) DEFAULT '' NOT NULL,
  phone varchar(30) DEFAULT '' NOT NULL,
  mobile varchar(30) DEFAULT '' NOT NULL,
  www varchar(80) DEFAULT '' NOT NULL,
  address tinytext NOT NULL,
  company varchar(80) DEFAULT '' NOT NULL,
  city varchar(80) DEFAULT '' NOT NULL,
  zip varchar(20) DEFAULT '' NOT NULL,
  country varchar(30) DEFAULT '' NOT NULL,
  image tinyblob NOT NULL,
  fax varchar(30) DEFAULT '' NOT NULL,
  deleted tinyint(3) unsigned DEFAULT '0' NOT NULL,
  description text NOT NULL,
  PRIMARY KEY (uid),
  KEY parent (pid),
  KEY pid (pid,email)
);

Im template für dircetMailsubscrition habe ich ein Input-Feld für das Alter erzeugt und das Setupfeld des Templates angepasst, gleich wie die andern Felder. Wird auch korrekt angezeigt.

Wenn ich nun aber die Daten im FE eingebe wird das Alter im BE nicht angezeigt. In der Datenbank ist auch kein Eintrag zu finden. #evil#

Ich hoffe jemand kennt sich damit aus, denn ich bin mit meinem Latein am Ende.

Verzweifelte Grüsse
Simon

MaxxGoo ·

Dieser Beitrag bzw. die Anleitung zur Erweiterung der tt_address ist einwandfrei! *respektaussprech*

Aber eine Frage habe ich da noch.
Wie bekomme ich im Backend in der Ansicht meiner Adressen meine neuen Felder angezeigt??? *grübel*
Ich find da keine Möglichkeit meine neuen Felder anzeigen zu lassen....

Hat jemand eine Ahnung wie ich das machen kann?

MaxxGoo ·

lol #paralyzed#

Ich habs gefunden!

In der "ext_typoscript_setup.txt " erweitert man die Liste bzw. das Layout mit seinen neuen Feldern! 🙂

"Wer suchet, der findet" 😉

MaxxGoo ·

So. Bin kein HIRSCH geworden aber habe den Fehler gefunden. 🙂

In der Datei tca.php muß ganz am Ende beim Array "palettes" das o. die neue/n Felder mit rein!!!

kleines Beispiel:

"palettes" => Array (
"2" => Array("showitem" => "age, title, company, neues_feld_1, neues_feld_2"),
"3" => Array("showitem" => "country"),
"4" => Array("showitem" => "mobile, fax"),
"5" => Array("showitem" => "www")
)

Die beiden Felder die rot geschrieben sind, müssen dort unbedingt rein. Zumindest in das Array. Könne also auch an anderer Stelle eingetragen werden. z. B. unter 3, 4 oder 5. 🙂

*Schweißabwisch*
Geschafft! *froi*

outdoor ·

Hi MaxGoo

Vielen dank für den responds; bei mir siehr dies folgendermassen aus:

        'types' => Array (
                '1' => Array('showitem' => 'hidden;;;;1-1-1, name;;2;;3-3-3, address, zip, city;;3, email;;5, phone;;4,image;;;;4-4-4')
        ),
        'palettes' => Array (
                '2' => Array('showitem' => 'prename, Anrede, title, country, entrysun, exitsun, entrytnc, amt, exittnc')
,
                '3' => Array('showitem' => 'company, c_address, c_zip, c_city'),
                '4' => Array('showitem' => 'c_phone, c_fax, c_mail, c_www, c_description, description'),
                '5' => Array('showitem' => 'mobile, fax'),
                '6' => Array('showitem' => 'www')
        )
);

Ich habe also jede Menge add-fields, die auch munter im BE erscheinen und funktionieren. Nur die Gliederung ist sehr unübersichtlich; so finden sich die felder des Array 3 und 4 (die Companyinfos) alle in einer einzigen Zelle - ist also seitwärtsscrollen angesagt, was nicht wirklich komfortabel ist. Hast Du eine Ahnung, wie ich hier erreichen kann, dass ich einen simplen Zeilenumbruch hinkriege? Bei den fest vorgegebenen feldern klappt dies ja auch, aber ich fürchte, ich habe das prinzip nicht ganz gecheckt...

Die Site findet sich übrigens unter http://demo.handshake.ch

Gruss
Outdoor

Mendossa ·

Hi,

bei mir funzt diese anleitung nicht.

ich habe folgendes editiert:

in der tca.php

"kategorie" => Array (    
         "label" => "LLL:EXT:lang/locallang_general.php:LGL.kategorie", 
         "config" => Array ( 
            "type" => "input", 
            "size" => "20", 
            "max" => "30" 
         ) 
      ),
"palettes" => Array (
		"2" => Array("showitem" => "kategorie, title, company, neues_feld"),
		"3" => Array("showitem" => "kategorie, country"),
		"4" => Array("showitem" => "kategorie, mobile, fax"),
		"5" => Array("showitem" => "kategorie, www")
	)

die locallang_general.php

'de' => Array (
'LGL.kategorie' => 'Kategorie',
),

und in der ext_typoscript_setup.txt folgendes hinzugefügt:

29 = TEXT
    29.if.isTrue.field = kategorie
    29.dataWrap = <br />Kategorie {field:kategorie}

Bei mir wird aber nichts im BE angezeigt.

Ich möchte ja nur, dass im BE eine Spalte mit Kategorie angezeigt wird.

Diesen Spalten will ich dann mit Daten aus der Datenbank füllen. Es sollen zu den einzelnen angemeldeten Usern am Newsletter die entsprechende Kategorie mit angezeigt werden. So dass man sehen kann, welche kategorie der user bei der anmeldung angegeben hat.

Hoffe mir kann jemand helfen

Desperant ·

bitte!! dringend um Hilfe. Habe tca.php geändert und eine Klammer vergessen. jetzt funktioniert typo3 nicht mehr. Ich komme nich mal rein. Ich kann die Datei per FTP nicht überschreiben (permission denided). Ich kann auch die Rechte der Datei nicht ändern, es geht woll nur über Typo3..komme aber nicht rein.

Ich werde erschossen, wenn das nicht funktioniert...mein Gotttt hellllp...wie kann ich noch die **** Datei überschreiben...

Fehlermeldung:
Parse error: syntax error, unexpected ';', expecting ')' in /home/host/public_html/typo3conf/ext/tt_address/tca.php on line 177

HIIIILFE
bitte

just2b ·

Zieh dir eine kopie, probier die datei zu löschen und die geänderte und korrekte datei hinaufzuladen.

noch ein weg: probier das ganze bei den 2 temp-files in localconf/

georg
PS: bitte keine solchen Worte mehr hier verwenden

Desperant ·

danke für dein Antwort.

also, löschen geht nicht. Die Dateien in tt_address Ordner haben alle "644" Rechte. Die Attribute kann ich nicht ändern.

Was meinst du mit "2 temp-files in localconf"?

Kann sein, dass der Hostanbieter für mich die Datei löschen kann
...
Wieso funktioniert das Ganze Typo3 nicht, wegen der Datei...

just2b ·

der hoster sollte auf alle fälle die datei löschen können und typo3 funktioniert nicht, weil die tca.php eben abgefragt werden und die keinen fehler haben darf

es gibt die datei localconf/temp_CACHED_ps01e1_ext_tables.php > hier ist sind alle tca's zusammengefasst, also die gecachete version davon

georg

just2b ·
Desperant schrieb

oh ne, die Datei lasse ich lieber. Man sollte schon genau wissen,was man da verändert.
😢

sin nur temporäre dateien, kannst löschen und nach 1 aufruf von typo3 sind beide wieder da 😉

aber sonst ist das ne korrekte einstellung, die einem immer nützlich ist 😉)))

georg

Desperant ·

ok, ich habs;, mein Provaider hat die Rechte auf die Datei verändert. So könnte ich dann die Datei überschreiben..
😃

Desperant ·

ah, auf das Thema zurück.
Habe gleiches Problem, wie "Mendossa". Ich bekomme nichts in BE und in DB angezeigt!?
Muss vileicht noch welche Dateien ergenzt werden?
danke

just2b ·

mach doch einfach mittels der ext kickstarter eine eigene extension, die das eine feld ergänzt. dann ist das ganze auch sauber und updatesicher

georg