[TYPO3-german] im gridelement das im Flexform eingebundene Bild als Icon anzeigen

Stefan Franke stefan.franke at gmx.co.uk
Tue Apr 14 17:31:08 CEST 2015


Hallo Ralf-René,
meinst du mit "XML", dass du das Bild in einem FlexForm auswählst? Dann könntest du nämlich über den PageLayoutViewDrawItemHook die Darstellung des Inhaltselements im Backend überschreiben und dir so die Ausgabe des Bildes zusammenbasteln. Ich habe das folgendermaßen gelöst:

<?php
namespace Cellent\CellentDirectmail\Hooks;

class CmsLayout implements \TYPO3\CMS\Backend\View\PageLayoutViewDrawItemHookInterface {

	/**
	 * Preprocesses the preview rendering of a content element.
	 *
	 * @param \TYPO3\CMS\Backend\View\PageLayoutView $parentObject Calling parent object
	 * @param boolean $drawItem Whether to draw the item using the default functionalities
	 * @param string $headerContent Header content
	 * @param string $itemContent Item content
	 * @param array $row Record row of tt_content
	 * @return void
	 */
	public function preProcess(\TYPO3\CMS\Backend\View\PageLayoutView &$parentObject, &$drawItem, &$headerContent, &$itemContent, array &$row) {

		// Content
		if ($row['list_type'] === 'cellentdirectmail_pi3') {
			$drawItem = FALSE;
			$itemContent .= '<strong>' . $GLOBALS['LANG']->sL('LLL:EXT:cellent_directmail/Resources/Private/Language/locallang_db.xlf:pi3', TRUE) . '</strong><br />';
			$itemContent .= $headerContent;

			// Inhalt
			$itemContent .= $this->flexform($row, 'rte');

			$headerContent = '';
		}
	}

	/**
	 * get flexform data
	 *
	 * @param $row
	 * @param $field
	 * @return mixed
	 */
	protected function flexform($row, $field) {

		$xml = simplexml_load_string($row['pi_flexform']);

		if (!$xml) {
			return false;
		}

		$aResult = $xml->xpath('//field[@index="settings.' . $field . '"]/value[@index="vDEF"]');

		if (!is_array($aResult)) {
			return false;
		}

		$value = '';

		foreach($aResult as $result) {
			$value = $result;
		}

		return strip_tags($value);
	}

}


Gruß,
Stefan

...
www.wien-erregt.at


> Gesendet: Dienstag, 14. April 2015 um 17:05 Uhr
> Von: "Ralf-Rene Schröder" <ralf.rene at online.de>
> An: typo3-german at lists.typo3.org
> Betreff: Re: [TYPO3-german] im gridelement das im Flexform eingebundene Bild als Icon anzeigen
>
> Am 14.04.2015 um 15:43 schrieb Börge Hendrik:
> > so gut kenne ich mich nicht aus, aber falls Du Grideleents einfach nur
> > einbinden willst, schau mal hier:
> > https://forum.typo3.org/index.php?t=tree&goto=730578&&srch=bootstrap+gridelements#msg_730578
> danke für den Hinweis, aber das ist etwas völlig anderes...
> ich bin da eher bei einem NICHT Standard Fall
> 
> ich habe ein gridelement mit zwei dynamischen Bereichen
> im XML wird ein Hintergrundbild gesetzt und das HTML der dynamischen
> Bereche konfiguriert... soweit klappt auch alles...
> es ist im Backend leider nur für Redakteure nicht sehr schön bedienbar.
> man sieht im BE nicht welches Bild im XML Feld gesetzt ist
> und da man die dynamischen Bereche auch als unsichtbar konfigurieren
> kann, wäre es natürlich auch sehr schön wenn man die Info auch in die BE
> Ansicht bekäme, damit man gleich sieht das eine der beiden dynamischen
> Bereiche unsichtbar ist...
> 
> ...wird wahrscheinlich nur Jo helfen können :-(
> 
> PS: das ganze ist für die Elemente eines Paralax Effekts mit beliebigen
> Inhalten über und zwischen den Bildern...
> 
> -- 
> image[FORMAT] - Ralf-René Schröder
> http://www.image-format.eu ... Wir geben Ihrem Image das richtige Format
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list