Mittwald CM Service: TYPO3-Hosting, TYPO3-Schulungen, Agenturpakete, Managed-Server
Optimiertes TYPO3 Hosting von Mittwald CM Service

Bild und Videoextension bauen

Autor Nachricht
Verfasst am: 20.12.2009 [17:46]
Sturmi

[Themenersteller]
dabei seit: 11.12.2006
Beiträge: 145

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: 674

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: 145

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: 674

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:Zeilennummerierung:  An / Aus

  1. $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 1 mal 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: 145

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: 674

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:Zeilennummerierung:  An / Aus

  1. if (t3lib_div::int_from_ver(TYPO3_version) < t3lib_div::int_from_ver('4.3.0')) {
  2.                         $this->readFlexformIntoConf($flexData, $conf);
  3.         }else{
  4.                         $this->cObj->readFlexformIntoConf($flexData, $conf);
  5.         }




Habe sie hier mal rausgefischt,

Php:Zeilennummerierung:  An / Aus

  1. /************************************
  2.          *
  3.          * Various helper functions for content objects:
  4.          *
  5.          ************************************/
  6.  
  7.  
  8.         /**
  9.          * Converts a given config in Flexform to a conf-Array
  10.          * @param       string                 Flexform data
  11.          * @param       array   Array to write the data into, by reference
  12.          * @param       boolean                is set if called recursive. Don't call function with this parameter, it's used inside the function only
  13.          * @access      public
  14.          *
  15.          */
  16.         public function readFlexformIntoConf($flexData, &$conf, $recursive=FALSE) {
  17.                 if ($recursive === FALSE) {
  18.                         $flexData = t3lib_div::xml2array($flexData, 'T3');
  19.                 }
  20.  
  21.                 if (is_array($flexData)) {
  22.                         if (isset($flexData['data']['sDEF']['lDEF'])) {
  23.                                 $flexData = $flexData['data']['sDEF']['lDEF'];
  24.                         }
  25.  
  26.                         foreach ($flexData as $key => $value) {
  27.                                 if (is_array($value['el']) && count($value['el']) > 0) {
  28.                                         foreach ($value['el'] as $ekey => $element) {
  29.                                                 if (isset($element['vDEF'])) {
  30.                                                         $conf[$ekey] =  $element['vDEF'];
  31.                                                 } else {
  32.                                                         if(is_array($element)) {
  33.                                                                 $this->readFlexformIntoConf($element, $conf[$key][key($element)][$ekey], TRUE);
  34.                                                         } else {
  35.                                                                 $this->readFlexformIntoConf($element, $conf[$key][$ekey], TRUE);
  36.                                                         }
  37.                                                 }
  38.                                         }
  39.                                 } else {
  40.                                         $this->readFlexformIntoConf($value['el'], $conf[$key], TRUE);
  41.                                 }
  42.                                 if ($value['vDEF']) {
  43.                                         $conf[$key] = $value['vDEF'];
  44.                                 }
  45.                         }
  46.                 }
  47.         }


Verfasst am: 01.02.2010 [21:43]
Sturmi

[Themenersteller]
dabei seit: 11.12.2006
Beiträge: 145

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: 145

OK, ich habe im TCA der Extension für die jeweilige Tabelle folgendes geschrieben:

Php:Zeilennummerierung:  An / Aus

  1. 'config' => array (
  2.         'type' => 'flex',
  3.         'ds' => array (
  4.         'default' =>
  5.         'FILE:EXT:ext_key/flexform_data.xml',
  6. ),
  7. )


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 1 mal bearbeitet. Zuletzt am 02.02.2010 um 12:04]




 
TYPO3 Hosting in der Version 4.3.2 kostenlos bei Mittwald CM Service testen

TYPO3 4.3.2 jetzt testen

Testen Sie die neue TYPO3 Version 4.3.2 kostenlos für einen Monat


Entwicklerschulungen

  • Espelkamp:
    Mit., 17.03.10 - Fre., 19.03.10
  • Berlin:
    Mit., 21.04.10 - Fre., 23.04.10
  • Köln:
    Mon., 21.06.10 - Mit., 23.06.10