=

Daschmi's Notizblog

RSS Feed

Media Dateien aus Seite mit Extbase auslesen

Erstellt in Extension Entwicklung, Sonstiges, TYPO3 am 15. Februar 2015

Um die Elemente die unter „Media“ bei den Seiteneigenschaften gespeichert sind auszulesen kann folgende Methode in einem Repository verwendet werden:

public function getMediaFromPid($pid)
{

  $query = $this->createQuery();
  $query->getQuerySettings()->setReturnRawQueryResult(true);
  $query->statement("
    SELECT
      *
    FROM
      `sys_file_reference` AS REF, `sys_file` AS FILE
    WHERE
      REF.`tablenames` = ‚pages‘ AND
      REF.`fieldname` = ‚media‘ AND
      REF.pid = ? AND
      FILE.`uid` = REF.`uid_local`", array($pid));

  return $query->execute();

}

oder besser:

$fileRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(‚TYPO3\\CMS\\Core\\Resource\\FileRepository‘);
$fileObjects = $fileRepository->findByRelation(‚pages‘, ‚media‘, $p[‚uid‘]);

Links in TYPO3 in einer Action im Controller generieren

Erstellt in Extension Entwicklung, TYPO3 am 12. Januar 2014

Um mit extbase Links in einem Controller zu generieren kann folgender Code verwendet werden:

$data[$k][‚detail_url‘] = $this
->controllerContext
->getUriBuilder()
->reset()
->setArguments(array(‚test‘ => ‚1‘))
->setTargetPageUid($this->settings[‚list_detail_pid‘])
->setCreateAbsoluteUri(true)
->buildFrontendUri(); 

Flexform mit Extbase und Fluid

Erstellt in Extension Entwicklung, TYPO3 am 2. Januar 2014

Möchte man sein TYPO3 Extbase Frontend Plugin mit Flexform konfigurieren, so muss in der ext_tables.php folgender Code verwendet werden:

$extensionName = t3lib_div::underscoredToUpperCamelCase($_EXTKEY);
$pluginSignature = strtolower($extensionName).’_frontend‘;
$TCA[‚tt_content‘][‚types‘][‚list‘][’subtypes_addlist‘][$pluginSignature] = ‚pi_flexform‘;
t3lib_extMgm::addPiFlexFormValue($pluginSignature, ‚FILE:EXT:‘.$_EXTKEY.’/Configuration/FlexForms/flexform_frontend.xml‘);

Die Flexformdatei muss dann unter /typo3conf/ext/{extensionkey}/Configuration/FlexForms/flexform_frontend.xml abgelegt werden und kann z.B. so aussehen:

<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>List Ansicht</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<settings.display_cols>
<TCEforms>
<exclude>1</exclude>
<label>Sichtbare Spalten</label>
<config>
<type>select</type>
<items type="array">
<numIndex index="0" type="array">
<numIndex index="0">Preis</numIndex>
<numIndex index="1">1</numIndex>
</numIndex>
<numIndex index="1" type="array">
<numIndex index="0">Marke</numIndex>
<numIndex index="1">2</numIndex>
</numIndex>
</items>
<maxitems>100</maxitems>
<size>5</size>
</config>
</TCEforms>
</settings.display_cols>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>

Wenn man die Felder im XML mit dem Prefix settings. versieht kann man im Controller einfach wie folgt zugreifen:

…
$this->cols = explode(‚,‘, $this->settings[‚display_cols‘]);
…

Statische Klassen mit TYPO3/Extbase

Erstellt in Extension Entwicklung, TYPO3 am 27. Dezember 2013

Statische Klassen für Helper etc. können unter /Classes/Utility/{ClassName}.php abgelegt werden und sollten innerhalb des Namensraums \{VendorName}\{PackageName}\Utility liegen. Der Aufruf von Methoden erfolgt dann über \{VendorName}\{PackageName}\Utility\{ClassName}::{Methodenname} aufgerufen werden.

 

Anderes Template für Extbase Action verwenden

Erstellt in Extension Entwicklung, TS Schnipsel, TYPO3 am 29. August 2013

Möchte man ein anderes Template als für die action vorgesehen verwenden, so kann man folgenden Aufruf verwenden:

$this->view->setTemplatePathAndFilename(\TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName(
  ‚typo3conf/ext/‘.
  $this->request->getControllerExtensionKey().
  ‚/Resources/Private/Templates/Frage/login_user.html‘
));

Möchte man diesen Aufruf in der loginAction() des FrageControllers verwenden, so musste in TYPO3 6.1.3 ein leeres Template login.html existieren. Sonst kam ein Fehler auch wenn man das Template login.html gar nicht verwendet.



Bitte genehmigen Sie die Verwendung von Cookies dieser Website! Mehr Informationen

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close