Tachchen zusammen,
für eine google Bilder-Sitemap möchte ich in meiner EXT alle Bilder einer Seite laden.
Bis dato habe ich ein eigenes FileReference-Model und -Repository erstellt und greife dann über findBy('pid', n) auf die sys_file_reference zu.
Das klappt auch wunderbar. Ich bekomme alle zugeordneten Datensätze aus der sys_file_reference als Objekt ausgegeben.
Aber wie geht es weiter? Wie bekomme ich jetzt die ganzen Dateien aus den Referenzen?
Zudem möchte ich gerne im Template über
{sfseoImages.originalResource.originalFile.identifier}
auf die Dateiobjekte zugreifen.
Die habe ich natürlich hier noch nicht.
Wie komme ich an die ran?
Mein Controller sieht bis jetzt so aus:
<?php
namespace TYPO3\SfSeo\Controller;
/**
*
*
* @package sf_seo
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
*
*/
class GooglesitemapController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* pagesRepository
*
* @var \TYPO3\SfSeo\Domain\Repository\PagesRepository
* @inject
*/
protected $pagesRepository;
/**
* fileRepository
*
* @var \TYPO3\SfSeo\Domain\Repository\FileRepository
* @inject
*/
protected $fileRepository;
/**
* fileReferenceRepository
*
* @var \TYPO3\SfSeo\Domain\Repository\FileReferenceRepository
* @inject
*/
protected $fileReferenceRepository;
/**
* action sitemap
*
* @return void
*/
public function sitemapAction() {
$subpages = \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::getTreeList(1, 99, 0, 1);
$storageRep = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Collection\\FolderBasedFileCollection');
$pages = $this->pagesRepository->findAllSitemapPages($subpages.$this->settings['startpage']);
if($this->settings['includeImageXML'] == 1) {
foreach($pages as $k => $page) {
$fileRef = $this->fileReferenceRepository->findBy('pid', $page->getUid());
$page->setSfseoImages($fileRef);
}
}
$this->view->assign('pages', $pages);
}
/**
* injectPagesRepository
*
* @param \TYPO3\SfSeo\Domain\Model\Pages $PagesRepository
* @return void
*/
public function injectPagesRepository(\TYPO3\SfSeo\Domain\Model\Pages $pagesRepository) {
$this->pagesRepository = $pagesRepository;
}
}
?>
Für eure Hilfe jetzt schon mal vielen Dank.