Hallo,
wie bekomme ich es hin, dass in der Suche bei "Erstellt: 29-04-07" nicht das Datum steht wann die Seite indiziert wurde (oder wann die Seite auf der der Newsbeitrag erscheint) sondern das Datum des tt_news Artikels? Was habe ich falsch gemacht?
Vielen Dank
Simon
tt_news Datum als "item crdate" in der index_phash ?
ich bin der Sache auf der Spur:
in der class.indexer.php steht folgendes:
'item_crdate' => $this->conf['crdate'], // Creation date of page
im Konkreten geht es darum in der Singleansicht die page conf['crdate'] auf das Datum der News zu stellen - wie mache ich sowas? Da müsste es doch ein einfaches Typoscript zu geben!?
also es läuft - wenn auch nicht gerade geschickt:
Folgende Code Änderung bei tt_news war nötig (~Zeile 610):
$GLOBALS['TSFE']->page['crdate'] = $row['datetime'];
inspiriert durch die Möglichkeit von tt_news den Pagetitle zu ändern. Falls noch wem eine geschickte Typoscript Möglichkeit einfällt - bitte posten!
Cimmie schrieb.... Falls noch wem eine geschickte Typoscript Möglichkeit einfällt - bitte posten!
Yo! Bitte!
Theo
Ich habe zwar keine TypoScript Möglichkeit gefunden, aber ich habe es über eine XClass gelöst. Das hat den Vorteil, dass nicht das globale crdate der Seite überschrieben werden muss.
<?php
namespace Vendor\Extension\Xclass;
use GeorgRinger\News\Domain\Model\NewsDefault;
use GeorgRinger\News\Domain\Repository\NewsRepository;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Object\ObjectManager;
/**
* Indexer
*/
class Indexer extends \TYPO3\CMS\IndexedSearch\Indexer {
/**
* Changing crdate for search entries to be news crdate and not page crdate in order to allow sorting search entries by date
*
* @return void
*/
public function submitPage() {
$newsParams = GeneralUtility::_GP('tx_news_pi1');
if (isset($newsParams['action']) && $newsParams['action'] === 'detail' && isset($newsParams['news'])) {
$newsId = (int) $newsParams['news'];
$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
$newsRepository = $objectManager->get(NewsRepository::class);
$news = $newsRepository->findByUid($newsId);
if ($news instanceof NewsDefault) {
$crdate = $news->getCrdate()->getTimestamp();
$this->conf['crdate'] = $crdate;
}
}
parent::submitPage();
}
}