TYPO3-Testaccount
Testen Sie die aktuelle TYPO3 Version 4.4.2 kostenlos und unverbindlich für einen Monat!

jetzt testen

Schulungen

jetzt buchen

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é
Profil
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. icon_wink.gif

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.
Profil
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!
Profil
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!
Profil
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.]
Profil
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?
Profil
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'];
				}
			}
		}
	}


Profil
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!
Profil
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.]
Profil