Bild und Videoextension bauen
| Autor | Nachricht |
|---|---|
|
Verfasst am: 20. 12. 2009 [17:46]
|
|
|
Sturmi
Themenersteller
Dabei seit: 11.12.2006
Beiträge: 149
|
Hallo zusammen, ich brauche mal eine Idee oder vielmehr einen Denkanstoss für eine Extension, die ich selber bauen möchte, da es so eine wahrscheinlich nicht gibt. Die Extension soll folgendes können. Ich möchte das man per Auswahl im Backend bzw. in der Plugin-Konfiguration (o.ä.) sagen kann, welche Art Inhalt es sein soll (z.B. ein Bild oder ein Video). Wenn Bild ausgewählt, soll man natürlich auch sagen können, ob das Bild zusätzlich eingefadet- oder mit anderen Effekten erscheinen soll. Die Effekte würde ich mich JQUERY realisieren. Mir geht es hauptsächlich auch darum, dass mein Redakteur es einfach hat, dies einzubinden. Einen Datensatz einzubinden über das Listemodul für einen unerfahren Redakteur halte ich für zu schwer, oder was meint ihr? Über Anregungen würde ich mich sehr freuen. Mit besten weihnachtlichen Grüßen André |
|
Verfasst am: 21. 12. 2009 [17:19]
|
|
|
karlchen
Dabei seit: 19.10.2006
Beiträge: 748
|
hmmm, ich denke auch ein Redakteur sollte ein bisschen was lernen wenn er ein CMS mit Inhalt füllen will. Doch um die Usability hier ein wenig zu erhöhen, könntest du IRRE oder Sections nutzen. Ein Bespiel für IRRE ist z.B. powermail oder die Besipeil Extension zu IRRE irre_hotel. Ein gutes Beispiel für Sections kannst du in der neuen TYPO3 4.3 im MEDIA Element finden. Mit beiden Methoden kann man im Inhalts element, die benötigten Datensätze anlegen und verwalten, um es ganz grob zu umreißen. |
|
Verfasst am: 21. 12. 2009 [17:46]
|
|
|
Synap
Dabei seit: 02.12.2009
Beiträge: 10
|
Vielen Dank, das mit den Sections würde ich mir mal gerne anschauen ... Wo finde ich es in der neuen TYPO3-Version? Danke! |
|
Verfasst am: 21. 12. 2009 [18:54]
|
|
|
Sturmi
Themenersteller
Dabei seit: 11.12.2006
Beiträge: 149
|
Hallo, ok, das mit den Sections sieht für mich sehr interessant aus ... Leider habe ich mich damit noch nie beschäftigt. Gibt es irgendwo ein brauchbares Tutorial dafür? Vielen Dank! |
|
Verfasst am: 22. 12. 2009 [10:39]
|
|
|
karlchen
Dabei seit: 19.10.2006
Beiträge: 748
|
hallo, ein gutes Tutorial dazu habe ich leider auch nie gefunden, ich habe es bisher einmal probiert und mir da die Sachen aus der Extension pbsurvey abgeschaut. In der neuen TYPO3 4.3, ist es aber mit dem MEDIA Seiteninhaltselement etwas eleganter gelöst, wie ich finde. (@ Synap, das sollte deine Frage beantworten -> MEDIA Element ) die Grundlagen für Sections ist die Verwendung von Flexforms, zur Einbindung und Verwendung findet man hier eine Menge in google. Innerhalb der Flexform wird ein neues array "aktiviert", mit folgendem Befehl. <section>1</section> Danach kommt dann wiederum ein array mit den elementen die man nutzen will. Hier gibt es ein flexform beispiel dazu, http://wiki.typo3.org/index.php/Talk:Extension_Development,_using_Flexforms wenn bis hier alles klappt, sollte man die Punkte auch schon im Backend eingeben können. Das auslesen der richtigen Daten, passiert in der neuen T3 Version mit der Funktion readFlexformIntoConf($flexParams, $conf['parameter.']), welches in der class.tslib_content.php zu finden ist. sollte dementsprechend über PHP $this->cObj->readFlexformIntoConf($flexData, &$conf) ansprechbar sein. Habe es bis dahin allerdings auch noch nicht weiter probiert. Alle Daten aus der Flexform werden dann in das übergebene array $conf zurückgeschrieben geschrieben. Damit kann man dann wieder normal die Daten verarbeiten. Ich glaube ich werde demnächst auch mal ne kleine Extension schreiben um das ein wenig auszuprobieren. [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 22.12.2009 um 10:40.] |
|
Verfasst am: 22. 12. 2009 [11:53]
|
|
|
Sturmi
Themenersteller
Dabei seit: 11.12.2006
Beiträge: 149
|
Hallo Karlchen, vielen Dank ... aber wie klappt das Auslesen in älteren Versionen? |
|
Verfasst am: 22. 12. 2009 [21:40]
|
|
|
karlchen
Dabei seit: 19.10.2006
Beiträge: 748
|
der Einfachheit halber würde ich im Moment eine Abfrage machen ob die verwendtete TYPO3 Version kleiner als Typo3 4.3 ist. Wenn ja dann, dann wird in deiner extension die copierte Funktion aus der 4.3 genutzt, wenn nein, soll auf den CORE zurückgefriffen werden. Kann ja mal sein, das die Funktion sich in Zukunft ändert. die IF Abfrage könnte in etwa so aussehen: PHP if (t3lib_div::int_from_ver(TYPO3_version) < t3lib_div::int_from_ver('4.3.0')) {
$this->readFlexformIntoConf($flexData, $conf);
}else{
$this->cObj->readFlexformIntoConf($flexData, $conf);
}Habe sie hier mal rausgefischt, PHP /************************************
*
* Various helper functions for content objects:
*
************************************/
/**
* Converts a given config in Flexform to a conf-Array
* @param string Flexform data
* @param array Array to write the data into, by reference
* @param boolean is set if called recursive. Don't call function with this parameter, it's used inside the function only
* @access public
*
*/
public function readFlexformIntoConf($flexData, &$conf, $recursive=FALSE) {
if ($recursive === FALSE) {
$flexData = t3lib_div:<img src="typo3conf/ext/mm_forum//res/smilies/icon_mad.gif" alt="icon_mad.gif" />ml2array($flexData, 'T3');
}
if (is_array($flexData)) {
if (isset($flexData['data']['sDEF']['lDEF'])) {
$flexData = $flexData['data']['sDEF']['lDEF'];
}
foreach ($flexData as $key => $value) {
if (is_array($value['el']) && count($value['el']) > 0) {
foreach ($value['el'] as $ekey => $element) {
if (isset($element['vDEF'])) {
$conf[$ekey] = $element['vDEF'];
} else {
if(is_array($element)) {
$this->readFlexformIntoConf($element, $conf[$key][key($element)][$ekey], TRUE);
} else {
$this->readFlexformIntoConf($element, $conf[$key][$ekey], TRUE);
}
}
}
} else {
$this->readFlexformIntoConf($value['el'], $conf[$key], TRUE);
}
if ($value['vDEF']) {
$conf[$key] = $value['vDEF'];
}
}
}
} |
|
Verfasst am: 01. 02. 2010 [21:43]
|
|
|
Sturmi
Themenersteller
Dabei seit: 11.12.2006
Beiträge: 149
|
Ich pflege jetzt meine Datensätze ganz einfach über das Listen-Modul ein. Dort funktioniert es mit IRRE sehr gut. Kann man dort in der Maske auch Sections verwenden? Wenn ja, wie? Danke! |
|
Verfasst am: 02. 02. 2010 [12:03]
|
|
|
Sturmi
Themenersteller
Dabei seit: 11.12.2006
Beiträge: 149
|
OK, ich habe im TCA der Extension für die jeweilige Tabelle folgendes geschrieben: PHP 'config' => array ( 'type' => 'flex', 'ds' => array ( 'default' => 'FILE:EXT:ext_key/flexform_data.xml', ), ) Kann ich die Daten aus einer Section jetzt auch mit $this->cObj->readFlexformIntoConf($flexData, &$conf) abfragen? Wie sieht jetzt in diesem Fall die Vorgehensweise aus? Danke! [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 02.02.2010 um 12:04.] |




