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 ?
-
0 x18. 07. 2007, 15:56
-
0 x18. 07. 2007, 16:34
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!?
-
-
0 x18. 07. 2007, 17:42
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! -
-
-
0 x09. 11. 2016, 13:40
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');
- $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();
- }
- }
-
-
0 x13. 12. 2016, 10:53
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 -
-
0 x13. 12. 2016, 10:53
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!?
-
-
0 x13. 12. 2016, 10:53
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! -
-
-
0 x13. 12. 2016, 10:53
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');
- $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();
- }
- }
-