Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #1  
Alt 03.02.07, 16:59
Forum Stammgast
 
Registriert seit: 05.01.07
Alter: 24
Beiträge: 227
Sareen eine Nachricht über ICQ schicken Sareen eine Nachricht über Yahoo! schicken

Ein Textfeld für eine Extention in's Back-End einfügen


Hi ihr,

ich bastele gerade an einer Extention und möchte in Back-End für meine Extention ein zusätzliches Text-Feld einfügen und den Inhalt irgendwo in der Datenbank speichern.

Ich habe aber keinen blassen Schimmer wie das gehen kann.

hat wer einen Hinweis für mich?

beste Grüße

Sareen
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 04.02.07, 09:02
Forum Stammgast
 
Registriert seit: 05.01.07
Alter: 24
Beiträge: 227
Sareen eine Nachricht über ICQ schicken Sareen eine Nachricht über Yahoo! schicken

Also liebe Sareen,

das geht doch ganz einfach ...
... ups, das bin ja ich. - Führe also schon Selbstgespräche. - aber ist auch für alle anderen vielleicht interessant:

Zuerst erweiterst Du die Datei "ext_tables.php". Dann weiss das Backend, dass es ein Flexform laden soll und aus welcher Datei:
Code:
$TCA['tt_content']['types']['list']['subtypes_excludelist'][$_EXTKEY.'_pi1']='layout,select_key,pages,recursive';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1'] = 'pi_flexform';
t3lib_extMgm::addPiFlexFormValue($_EXTKEY.'_pi1', 'FILE:EXT:'.$_EXTKEY.'/flexform_ds.xml');
Die erste Zeile ist mir nicht ganz klar, die zweite ermöglicht den "Flexform"-Bereich im Back-End, die dritte Zeile lädt den Inhalt des Flexforms.

Dann erstellst Du eine Datei "flexform_ds.xml". Das ist also die Datei die Du eben agegeben hast, dass daraus das Flexform geladen wird. In die Datei kommt am einfachsten:
Code:
<T3DataStructure>
  <meta>
    <langDisable>1</langDisable>
    <!--  <langChildren>1</langChildren>!-->
  </meta>
  <sheets>
    <sDEF>
      <ROOT>
        <TCEforms>
          <sheetTitle>Main</sheetTitle>
        </TCEforms>
        <type>array</type>      
 
       <el>            
          <ein_imput_field>
            <TCEforms>
              <exclude>1</exclude>
              <label>Ein Input-Field</label>
              <config>
                <type>input</type>       
              </config>
            </TCEforms>
          </ein_input_field>   
        </el>
        
      </ROOT>
    </sDEF>
  </sheets>
</T3DataStructure>
So wird nun im Flexform-Bereich der Extention im Back-End in der Sektion "Main" ein Input-Feld mit der Beschriftung "Ein Input-Field" angezeigt.

Da das für Mehrsprachigkeit noch etwas unflexibel ist ersetzt Du das Wort "Main" und den Satz "Ein Input-Field" mit:
Code:
LLL:EXT:dein_ext_key/locallang_db.php:dein_ext_key.pi_flexform.sheet_main
LLL:EXT:dein_ext_key/locallang_db.php:dein_ext_key.pi_flexform.ein_input_field
So, nun wird statt eines festen Textes der Text angezeigt, der in der Datei "locallang_db.php" festgelegt ist. In dieser Datei mußt Du natürlich noch entsprechenden Text eintragen:
Code:
<label index="dein_ext_key.pi_flexform.sheet_main">Main</label>
<label index="dein_ext_key.pi_flexform.ein_input_field">Ein Input-Field</label>
Da kannst Du ganz bequem dann den Text in den verschiedenen Bereichen für die verschiedenen Sprachen eingeben. Wichtig ist natürlich, dass zunächst mal de "default" Sprache einen Text hat.

Zu guter letzt kannst Du den Inhalt den ein Backend-User in Dein Flex-Form eingetragen hat in Deinem PHP-Skript der Extention abrufen (Also in der Datei "class.tx_deinextkey_pi1.php"). Das geht mit folgendem PHP-Code:
Code:
$this->pi_getFFvalue($this->cObj->data['pi_flexform'], ein_input_field, sDEF)
Also zuerst steht da der Name des Feldes und dann der Name des Sheets im Flexform.

... so einfach ist das. Und funktioniert sogar!

Bin mächtig stolz das nun endlich rausgeklügelt zu haben.

beste Grüße (auch den anderen)

Sareen
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 04.02.07, 09:03
Forum Stammgast
 
Registriert seit: 05.01.07
Alter: 24
Beiträge: 227
Sareen eine Nachricht über ICQ schicken Sareen eine Nachricht über Yahoo! schicken

P.S.:
Auch wenn das so schon mal ganz gut funktioniert, würde ich mich über Feedaback freuen. Nicht dass ich da irgendwas ungeschicktes fabriziere.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
cooluri -> nach Domainnamen eine Raute einfügen candyman23 Alle anderen Extensions 0 08.07.08 14:47
Link bei Textfeld david Extension modifizieren oder neu erstellen 5 01.02.08 13:54
Textfeld löschen max50000 TYPO3 4.x Fragen und Probleme 2 19.12.07 17:00
Back-End Benutzer soll nur Zugriff auf eine Extension erhalten nepomuk TYPO3 3.x Backend 0 19.11.06 16:02
Navielement in Textfeld laden FLEXUS TYPO3 4.x Fragen und Probleme 2 10.10.06 14:26


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.


Powered by vBulletin® Version 3.6.8 Patch Level 2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0
Template-Modifikationen durch TMS