Zum Inhalt springen

Neue Felder hinzufügen

Erstellt am 22. Juni 2004 · 16 Antworten · letzte Antwort am 10. Juli 2005

Tags: TCA, tt_news, Frage

ben ·

Ich bin gerade dabei das Newsformular an unsere Bedürfnisse anzupassen. Designmäßig bin ich soweit fertig nur bräuchte ich noch andere Felder für die Eingabe.

Der Autor soll nacher die Möglichkeit haben dem Leser 2 Kontaktmöglichkeiten bereit zu stellen.

Bisher gibt es ja die Felder "author" und "author_email".
Diese sind dafür sehr gut geeignet. nur bräuchte ich das Ganze nun 2 mal.

Habe nun in der "tca.php" folgendes eingetragen:

'author' => Array (
			'exclude' => 1,	
			'label' => 'LLL:EXT:lang/locallang_general.php:LGL.author',
			'config' => Array (
				'type' => 'input',
				'size' => '20',
				'eval' => 'trim',
				'max' => '80'
			)
		),
		'author_email' => Array (
			'exclude' => 1,	
			'label' => 'LLL:EXT:lang/locallang_general.php:LGL.email',
			'config' => Array (
				'type' => 'input',
				'size' => '20',
				'eval' => 'trim',
				'max' => '80'
			)
),



'author2' => Array (
			'exclude' => 1,	
			'label' => 'LLL:EXT:lang/locallang_general.php:LGL.author2',
			'config' => Array (
				'type' => 'input',
				'size' => '20',
				'eval' => 'trim',
				'max' => '80'
			)
		),
		'author_email2' => Array (
			'exclude' => 1,	
			'label' => 'LLL:EXT:lang/locallang_general.php:LGL.email',
			'config' => Array (
				'type' => 'input',
				'size' => '20',
				'eval' => 'trim',
				'max' => '80'
			)

),

Ganz oben in dieser Datei habe ich es ebenfalls mit eingetragen:

$TCA['tt_news'] = Array (
	'ctrl' => $TCA['tt_news']['ctrl'],
	'interface' => Array (
		'showRecordFieldList' => 'title,hidden,datetime,starttime,archivedate,category,author,author_email,author2,author_email2,short,image,imagecaption,links,related'
	),

in die "ext_tables.sql" habe ich folgendes geschrieben:

  author tinytext NOT NULL,
  author_email tinytext NOT NULL,

  author2 tinytext NOT NULL,
  author_email2 tinytext NOT NULL,

Trotz all dem bekomme ich, wenn ich eine News erstelle keine weiteren Eingabefelder?!

Dass ich letztendlich dem array noch einen marker zuweisen muss und den Marker im template verwenden muss, dass der 2. Kontakt in meiner News angezeigt wird weiss ich. Hier geht es in erster Linie darum, dass ich überhaupt mal das Eingabefeld bekomme.

Ich wüsste leider nicht, wo mein Fehler liegt und ein änliches Problem gibt es hier im Forum leider nicht..

Gruß, Ben

ben ·

Naja, Problem gelöst..

Auf meine Art kann man das glaube ich nicht machen. Habe es nun über den Kickstarter gelöst und einfach meine extension erweitert.

~Ben~

Drachenkind ·

Hi!

Ich bin auch gerade dabei ein neues Feld hinzuzufügen.

Kannst Du mir kurz erklären wie ich mit dem Kickstarter vorgehen muß?

Das wäre echt super. Hatte nämlich auch angefangen im Quellcode rumzuspielen.

Schönen Gruß

René

PeterParker ·

falls jemand die lösung dieses problems kennt, würde ich mich für eine meldung an dieser stelle sehr freuen!!!

ben ·

ok sorry, hab leider in den letzten Tagen hier nicht mehr reingeschaut.

Ihr installiert euch zuerst die extension
"Extension Repository Kickstarter - extrep_wizard"
Wenn ihr nun auf "Extension manager" geht habt ihr im Menu Links oben eine neue Option "make new extension"

Hier müsst ihr nun folgendes tun:

+General:

Titel und Description bleibt euch selbst überlassen (zum Beispiel "Erweiterung für Newsmodul"
Kategory: Frontend Plugins
Dependencies: ka, hab ich immer leer gelassen
Author Name: euer Name
Author eMail: eure email

-->UPDATE

+Extend existing Tables

Which table: in diesem Falle tt_news, da ihr diese Extension erweitern wollt

nun könnt ihr unten mit "new field" weitere Felder für die extension hinzufügen. Die Felder, welche die extension bisher schon beinhaltet, werden hier nicht nochmal aufgeführt, da dies lediglich eine "erweiterung" für die extension ist!

wenn ihr alle Felder hinzugefügt habt, welche ihr wollt, dann
--> UPDATE

Letztendlich noch bei "Enter extension key:" (linke seite unter dem menu) eurer Extension einen Key zuweisen. nicht (!) den key der news-extension nehmen!!!

Dann links auf "view result" und das ganze updaten und abspeichern.
Damit das Ganze funktioniert müssen beide Extension laufen. Sowohl die tt_news als auch die, welche ihr gerade erstellt habt.

solltet ihr nachträglich eure eben geschriebene extension nochmal ändern wollen geht ihr am besten auf "extension manager" --> "loaded extension"
hier sucht ihr eure extension raus und klickt einmal drauf. dann rechts oben auf "backup/delete" und dann ganz unten auf "start new"

manchen wird es etwas zu ausführlich sein, wie ich es eben beschrieben habe, aber ich hoffe so verstehen es auch diejenigen, welche in typo3 noch nicht so bewandert sind.

Gruß, ~Ben~

doku ·
ben schrieb

manchen wird es etwas zu ausführlich sein, ...

also für mich kann ich sagen, daß es gar nicht ausführlich genug sein kann... 8-)
ich bedanke mich sehr!!

ben ·

keine ursache, aber du als typo3-guru wusstest denke ich sowieso wie man eine extension um weitere Felder erweitert, oder etwa nicht? :p

doku ·
ben schrieb

keine ursache, aber du als typo3-guru wusstest denke ich sowieso wie man eine extension um weitere Felder erweitert, oder etwa nicht? :p

nö, kann halt nur copy & paste, und sehr genau hingucken, bzw. gut suchen kann ich auch noch. damit komme ich ganz gut über die runden.

ben ·

ich bediene mich eigentlich auch täglich hier im forum.. gibt immer mal wieder Dinge, die man nicht kennt, welche hier schon gut erklärt sind.
Das mit der Extension hab ich auch z.T hier aus dem Forum. In irgendeinem Threat wurden par Videos empfohlen und die habe ich mir angeschaut und parallel mitgearbeitet #giggle#

jmc ·

hallo,

ich habe nach eurer anleitung nun ein paar felder in der feuser hinzugefügt und ich sehe auch alles im backend. kann die von mir definierten werte auch dort eingeben und die werden abgespeichert.

komisch ist das ich kein p1 verzeichnis habe.

wie bekomme ich denn nun die neuen felder in das abfrageformular bei der anmeldung neuer user?

was mache ich falsch?

mfg
jmc

ben ·

Da ich deine Extension nicht nutze, kann ich nicht viel dazu sagen..

Dass es kein p1-Verzeichnis gibt kann normal sein, gibt es nicht in jeder Extension.

Welche feuser?

Front End User Admin  -  feuser_admin

oder

FEUser->BELogin  -  dkd_feuser_belogin

??

jmc ·

hallo,

ich habe das problem mit der ext: admin-interface gelöst. die ist echt der hit.

danke
allen zusammen.

jeff

doku ·
jmc schrieb

ich habe das problem mit der ext: admin-interface gelöst....

na dann erzähl mal...

ben ·

warscheinlich beinhaltet diese extension jene Felder,
die er in die andere Extension integrieren wollte.
somit braucht er den kickstarter nicht mehr und hat auch keine Probleme 🙂

Trotzdem muss ich docu zustimmen..
etwas mehr hättest ruhig schreiben können,
dann wäre anderen Usern,
die evtl mal die selben Probleme haben wie du
mehr geholfen.

jmc ·

hallo,

kein problem. wenn es hilft sicherlich.

also: die extension verwendet eine mit dem kickstarter eigens erstellte erweiterung und fügt die funktionen view, edit und delete hinzu und greift dabei auf die tca der erweiterung zu. bedeutet ich lege im kickstarter einfach meine db so wie ich sie brauche an. mit allen feldern. es ist nicht nötig ein plugin oder dergleichen zu definieren. also nur die felder. der kickstarter baut daraus dann die notwendigen datein inkl. der tca die ja die felder des be definiert. und nun kommt die stunde des ai. dieser nimmt sich die tca und macht daraus eine administration im frontend. ich kann sogar sagen er soll nur ein view oder edit zulassen wenn ein user angemeldet.

ich musste zwar einige kleine änderungen vornehmen, da er leider keine checkbottom erkennt und das mit der tabellensize ging auch nicht direkt aber sonst alles optimal. die ai erkennt selectfelder und füllt sie auch mt den richtigen werten. also nicht mit dem internen variablen, sondern mit den von dir definierten.

der rest steht prima im docu.

viel spaß
mfg
jeff

Cod ·

Hier nochmal eine Gesamtanleitung für typo3 3.8 - so hats bei mir geklappt (sonst muss man sich alles mühsam zusammensuchen):

tt_news installieren, im Template entsprechendes "static" von tt_news mit einbinden, sonst wird nix angezeigt.

tt_news Handbuch: http://typo3.org/documentation/document-library/tt_news/

Ausgangsseite ist die, wo die News erfasst werden, für Einzelanzeige am besten eine andere Unterseite anlegen, die nicht im Menü erscheint.

1. tt_news installieren (für Vers. 3.8: 2.2.24 oder höher)

2. Im Extension Manager "Extension Kickstarter" aus "online repository" laden (einfach beim erstenmal Name, Passwort - beliebig - unter "Settings" eingeben), wenn unmöglich, s. Tip "ext. repository enablen"

3. im Menü des Ext Manager "Make new Extension" wählen.

4. weiter wie hier beschrieben (#12740)

+General:

Titel und Description bleibt euch selbst überlassen (zum Beispiel "Erweiterung für Newsmodul"
Kategory: Frontend Plugins
Dependencies: ka, hab ich immer leer gelassen
Author Name: euer Name
Author eMail: eure email

-->UPDATE

+Extend existing Tables

Which table: in diesem Falle tt_news, da ihr diese Extension erweitern wollt

nun könnt ihr unten mit "new field" weitere Felder für die extension hinzufügen. Die Felder, welche die extension bisher schon beinhaltet, werden hier nicht nochmal aufgeführt, da dies lediglich eine "erweiterung" für die extension ist!

wenn ihr alle Felder hinzugefügt habt, welche ihr wollt, dann
--> UPDATE

Letztendlich noch bei "Enter extension key:" (linke seite unter dem menu) eurer Extension einen Key zuweisen. nicht (!) den key der news-extension nehmen!!!

Dann links auf "view result" und das ganze updaten und abspeichern. ("Write ...")

Damit das Ganze funktioniert müssen beide Extension laufen (neue Extension auch laden). Sowohl die tt_news als auch die, welche ihr gerade erstellt habt.

solltet ihr nachträglich eure eben geschriebene extension nochmal ändern wollen geht ihr am besten auf "extension manager" --> "loaded extension"
hier sucht ihr eure extension raus und klickt einmal drauf. dann rechts oben auf "backup/delete" und dann ganz unten auf "start new" (bzw. einfach weiter "existing table" erweitern).

6. die neuen Felder werden (ergänzt um Präfix = Name der neuen Extension) der Tabelle tt_news hinzugefügt. Sollten jetzt im Backend beim Erfassen neuer News zur VErfügung stehen.

Damit sie auf der Seite ausgegeben werden können, müssen noch Marker für die neuen Felder definiert werden:

7. in der Datei typo3conf/ext/tt_news/pi/class.tx_txttnews.php per Suchen ein vordefiniertes Feld wie "news title" (####NEWS_TITLE###) suchen - sieht so aus:

$markerArray['###NEWS_TITLE###'] = $this->local_cObj->stdWrap($row['title'], $lConf['title_stdWrap.'])

und danach exakt identisch diese Marker-Definitionen für alle neuen Felder einfügen (Achtung: am besten via pHpMyAdmin in der Datenbank den exakten Feldnamen eruieren, da als Präfix der Name der neuen Extension davorsteht), für ein Feld "Miete" z.B.

$markerArray['###MIETE###'] = $this->local_cObj->stdWrap($row['tx_ccwohnungsanzeigen_miete'], $lConf['tx_ccwohnungsanzeigen_miete_stdWrap.']);

dann speichern und uploaden.

8. Nun stehen diese Marker auch für die Ausgabe des Feldinhalts im FE via Template zur Verfügung.

Template: typo3conf/ext/tt_news/pi/news_template.tmpl

Tip: Template nicht über die Konfiguration von tt_news einbinden, sondern im Template-Setup:

plugin.tt_news.templateFile = fileadmin/news_template.tmpl

(das Template muss natürlich an die angegebene Stelle kopiert werden).