Zum Inhalt springen

Add Content Element Type!?

Erstellt am 4. Februar 2003 · 9 Antworten · letzte Antwort am 12. Oktober 2004

Tags: Frage

dj.​picasso ·

Hi,

hat sich jemand schon mal an eine Extension mit einem neuen Content Element rangewagt?
Hänge an einem Punkt, wo mir ein kleiner Tip aller Wahrscheinlichkeit nach schon weiterhelfen würde!

Ciao
Der DJ

dj.​picasso ·

Sieht ganz so aus, als wäre es nicht interessant genug.

Falls es jemanden doch noch interessieren sollte, kann er/sie sich ja melden.
... habe es nämlich zum Laufen gebracht!! 😉
... und auch noch gleich mit übergabe von Variablen, .... weils besser kommt! 😃
Ciao
DJ Picasso

shOrt ·

Hi!

Mich interessierts. Was ich haben möchte ist ein Content-Type ähnlich TEXT, allerdings zusätzlich noch mit einem Link. Wie genau geht das?

shOrt ·

Also:

Ich möchte dem Editor die Möglichkeit geben, Content genau so einzugeben, wie es im Moment der Fall ist (also über Web->Page->Add New Content Element) Wenn du das machst, bekommst du ein Fenster indem du den Typ des Content Elements verändern kannst, den Header und den Text spezifizieren, Start und Stop-Zeit für dieses Content Element angeben kannst usw.

Vorgefertigt vorhanden in Typo sind die Typen Text, Text mit Bild, Header Tabelle...
Worum es mir geht, ist, einen eigenen solchen Content Element Type zu integrieren, nennem wir ihn beispielsweise "Header mit Emoticon". Wenn der Benutzer diesen Typ Content einfügt, soll er nach dem Titel des Headers gefragt werden, zusätzlich soll er eine Auswahlliste von Emoticons bekommen, aus denen er sich eines aussuchen kann. Wird der Header dann später gerendert, soll dieses Emoticon neben dem Header erscheinen....

Hoffentlich verstehst Du das jetzt, weiss nicht wie ich es besser erklären soll o.O

dj.​picasso ·

Hi,

ehrlich gesagt verstehe ich immer noch nicht so richtig was Du machen möchtest.
Dennoch, um eine Extension vom Typ "Add as a totally new Content Element type" zu erstellen bedarf es folgender Vorgehensweise.

1. Extension Manager
2. Make a new extension
3. General Info
--> Enter extension key: Beispiel: mein_content
4. Frontend-Plugin
--> Add as a totally new Content Element type
5. Extend existing Table
--> Wich Table: Content (tt_content)
6. Wenn Du dann den Button "View result" klickst und dann die Extension erstellst, erzeugt Typo Dir unter /typo3/ext einen Ordner (hier: mein_content)
7. Jetzt mußt Du (in diesem Beispiel) die Datei /typo3/ext/mein_content/pi1/class.tx_meincontent_pi1.php anpassen, da dies erst einmal Deine "Template-Darstellung" im Frontend ist.
8. Die Datei /typo3/ext/mein_content/ext_tables.php definiert Deine Darstellung im BE. Hier kannst Du dann Deine Content-Maske für den "Redakteur" erstellen und definieren, ob der RTE mit dargestellt werden soll etc.
Die Definition dafür findest Du ab der Stelle:

t3lib_div::loadTCA("tt_content");
$TCA["tt_content"]["types"][$_EXTKEY."_pi1"]["showitem"]="CType;;4;button;1-1-1, header;;3;;2-2-2, .....................................

So könnte dann beispielsweise der Code für die Nutzung des RTE mit Header usw. usw. aussehen.

/*t3lib_div::loadTCA("tt_content");
$TCA["tt_content"]["types"][$_EXTKEY."_pi1"]["showitem"]="CType;;4;button;1-1-1, header;;3;;2-2-2, bodytext;;9;richtext[paste|bold|italic|underline|formatblock|class|left|center|right|orderedlist|unorderedlist|outdent|indent|link|image]:rte_transform[flag=rte_enabled|mode=ts];3-3-3, rte_enabled, text_properties, --div--, image;;;;4-4-4, imageorient;;2, imagewidth;;13, 
	--palette--;Image Link|Billedlink|Bild-Link|Bildehyperkobling|Link immagine|Liens sur Image|Liga a imágen|Afbeelding link|Odkaz obrázku|Odno¶nik obrazka|Povezava slike|Kuvan linkki|Resim Linki;7, 
	--palette--;Image Options|Billedvalg|Bild Optionen|Bildevalg|Opzioni immagine|Options d'image|Opciones de imágen|Afbeelding opties|Vlastnosti obrázku|Parametry obrazka|Nastavitve slike|Kuvan ominaisuudet|Resim Seçenekleri;11, .......................

WICHTIG:
Du mußt es aber wiederum auch in der Datei /typo3/ext/mein_content/pi1/class.tx_meincontent_pi1.php mit berücksichtigen.

Bemerkung:
Dies ist lediglich eine Anleitung dazu, wie man vorgeht. Jetzt hier auf Einzelheiten einzugehen würde den Rahmen eines Forum vollkommen sprengen. Auch den Einbau von "Static TypoScript code" usw. usw.

Ich hoffe ich konnte Dir zumindest eine Starthilfe geben.
Ciao
Der DJ
PS: Achte auch auf den Ordner typo3conf falls Du Änderungen machst, aber Dir Typo3 keine Änderungen anzeigt, zwischendurch mal säubern. 😉

shOrt ·

Schade, wollte grad n Bild hochladen was das klar macht, geht aber nich.
Ich versuch es mal so (Beispielpost des Redaktuers):

 * Neues Content einfügen
  
     Wie allgemein bekannt, hat shOrt es noch immer nicht geschafft, eigenen Content in Typo zu integrieren. Aber mit der Hilfe der fleissigen Forenbenutzer wird er es sicher noch schaffen. =)

Tip abgeben wann er es schafft

So in etwa soll das Resultat aussehen. Da wo der Stern (*) ist, soll ein kleines Bild neben dem Header erscheinen, dieses sollte vom Redakteur aus einer vom Admin definierten Liste ausgewählt werden können. "Tip abgeben..." soll ein Link sein, der jedoch nur auftauchen soll, wenn der Redakteur einen Link wünscht....

Inzwischen bin ich zu der Erkenntnis gekommen, daß ich dazu ja gar keinen neuen Content Typ benötige. Inzwischen bin ich der Meinung, folgender Weg könnte funktionieren:

1. Mit Extension Manager eine neue Extension erstellen
2. Feld für den Link und Bild-ID zu tt_content hinzufügen
3. Neue Table erstellen, in der die Liste der Bilder für den Header verwaltet wird
4. ext_tables.php erstellen (so wie von dir erwähnt), so daß der Redakteur den Link und das Bild angeben kann
5. statisches Script erstellen, was die Darstellung übernimmt (Header Wrapping, optionaler Link)

Jetzt gibts noch 2 Probleme:
1. wie bekomme ich das genau hin in ext_tables.php, daß für den Content Type TEXT die neuen Optionen angezeigt werden? Ich dachte mal so:

t3lib_div::loadTCA("tt_content")
$TCA["tt_content"]["types"]["text"]["showitem"]= <-- hier dann den Standard von text hinkopieren und anpassen

Geht das so?

2. Wie ist die komfortabelste Möglichkeit dem Redaktuer die Bilder zu präsentieren? Wär mir lieb, wenn ich das nicht mit dem Standard ("Bild auswählen aus fileadmin") machen könnte, denn ich hab ja eine feste Anzahl von kleinen Bildern. Am besten wäre es, den Backend-Form-Generator irgendwie so anzupassen, daß er mir eine Liste mit Thumbs der Bilder anzeigt, und der Redakteur wählt sich eins... Ne Ahnung ob und wie sowas geht?

Stoneage ·

t3lib_div::loadTCA("tt_content")
$TCA["tt_content"]["types"]["text"]["showitem"]= <-- hier dann den Standard von text hinkopieren und anpassen

das Problem habe ich auch und ich glaube so funktioniert das nicht.

ich kann zwar mir

t3lib_div::loadTCA("tt_content");
t3lib_extMgm::addTCAcolumns("tt_content",$tempColumns,1);
t3lib_extMgm::addToAllTCAtypes("tt_content","tx_chbilderrahmen_ch_bilderrahmen;;;;1-1-1");
meine Checkbox zu all ctypes hinzufügen, aber genau das will ich auch nicht. Gibt es nicht eine Möglichkeit gezielt eine Checkbox nur einem Type, zb. IMAGE hinzuzufügen?

Grüße,

C.

T.​uX ·

da habe ich direkt mal ne frage..

Wenn ich ein content element type erstelle hat es im BE immer das tt_content Icon, wie kann ich meinem content element type ein eigenes Icon verpassen oder ein anderes schon vorhandenes.

EDIT:

Hat sich erledigt. einfach in der extTables

$TCA['tt_content']['ctrl']['typeicons']['EXTNAME'] = 'tt_content_div.gif';

eintragen