tt_news Datum als "item crdate" in der index_phash ?

  • Cimmie Cimmie
    R2-D2
    0 x
    87 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2007, 15:56

    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


  • Cimmie Cimmie
    R2-D2
    0 x
    87 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2007, 16:34

    ich bin der Sache auf der Spur:
    in der class.indexer.php steht folgendes:

    1. '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!?

  • Cimmie Cimmie
    R2-D2
    0 x
    87 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2007, 17:42

    also es läuft - wenn auch nicht gerade geschickt:

    Folgende Code Änderung bei tt_news war nötig (~Zeile 610):

    1. $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!

  • theo theo
    Jedi-General
    0 x
    2011 Beiträge
    0 Hilfreiche Beiträge
    01. 09. 2008, 12:18

    [quote="Cimmie"].... Falls noch wem eine geschickte Typoscript Möglichkeit einfällt - bitte posten![/quote]

    Yo! Bitte!

    Theo

  • bithostgmbh bithostgm...
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    09. 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.

    1. <?php
    2. namespace Vendor\Extension\Xclass;
    3.  
    4. use GeorgRinger\News\Domain\Model\NewsDefault;
    5. use GeorgRinger\News\Domain\Repository\NewsRepository;
    6. use TYPO3\CMS\Core\Utility\GeneralUtility;
    7. use TYPO3\CMS\Extbase\Object\ObjectManager;
    8.  
    9. /**
    10.  * Indexer
    11.  */
    12. class Indexer extends \TYPO3\CMS\IndexedSearch\Indexer {
    13. /**
    14. * Changing crdate for search entries to be news crdate and not page crdate in order to allow sorting search entries by date
    15. *
    16. * @return void
    17. */
    18. public function submitPage() {
    19. $newsParams = GeneralUtility::_GP('tx_news_pi1');
    20.  
    21. if (isset($newsParams['action']) && $newsParams['action'] === 'detail' && isset($newsParams['news'])) {
    22. $newsId = (int) $newsParams['news'];
    23. $objectManager = GeneralUtility::makeInstance(ObjectManager::class);
    24. $newsRepository = $objectManager->get(NewsRepository::class);
    25. $news = $newsRepository->findByUid($newsId);
    26.  
    27. if ($news instanceof NewsDefault) {
    28. $crdate = $news->getCrdate()->getTimestamp();
    29.  
    30. $this->conf['crdate'] = $crdate;
    31. }
    32. }
    33.  
    34. parent::submitPage();
    35. }
    36. }

  • Cimmie Cimmie
    R2-D2
    0 x
    87 Beiträge
    0 Hilfreiche Beiträge
    13. 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

  • Cimmie Cimmie
    R2-D2
    0 x
    87 Beiträge
    0 Hilfreiche Beiträge
    13. 12. 2016, 10:53

    ich bin der Sache auf der Spur:
    in der class.indexer.php steht folgendes:

    1. '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!?

  • Cimmie Cimmie
    R2-D2
    0 x
    87 Beiträge
    0 Hilfreiche Beiträge
    13. 12. 2016, 10:53

    also es läuft - wenn auch nicht gerade geschickt:

    Folgende Code Änderung bei tt_news war nötig (~Zeile 610):

    1. $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!

  • theo theo
    Jedi-General
    0 x
    2011 Beiträge
    0 Hilfreiche Beiträge
    13. 12. 2016, 10:53

    [quote="Cimmie"].... Falls noch wem eine geschickte Typoscript Möglichkeit einfällt - bitte posten![/quote]

    Yo! Bitte!

    Theo

  • bithostgmbh bithostgm...
    Typ im Roten Hemd
    0 x
    3 Beiträge
    0 Hilfreiche Beiträge
    13. 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.

    1. <?php
    2. namespace Vendor\Extension\Xclass;
    3.  
    4. use GeorgRinger\News\Domain\Model\NewsDefault;
    5. use GeorgRinger\News\Domain\Repository\NewsRepository;
    6. use TYPO3\CMS\Core\Utility\GeneralUtility;
    7. use TYPO3\CMS\Extbase\Object\ObjectManager;
    8.  
    9. /**
    10.  * Indexer
    11.  */
    12. class Indexer extends \TYPO3\CMS\IndexedSearch\Indexer {
    13. /**
    14. * Changing crdate for search entries to be news crdate and not page crdate in order to allow sorting search entries by date
    15. *
    16. * @return void
    17. */
    18. public function submitPage() {
    19. $newsParams = GeneralUtility::_GP('tx_news_pi1');
    20.  
    21. if (isset($newsParams['action']) && $newsParams['action'] === 'detail' && isset($newsParams['news'])) {
    22. $newsId = (int) $newsParams['news'];
    23. $objectManager = GeneralUtility::makeInstance(ObjectManager::class);
    24. $newsRepository = $objectManager->get(NewsRepository::class);
    25. $news = $newsRepository->findByUid($newsId);
    26.  
    27. if ($news instanceof NewsDefault) {
    28. $crdate = $news->getCrdate()->getTimestamp();
    29.  
    30. $this->conf['crdate'] = $crdate;
    31. }
    32. }
    33.  
    34. parent::submitPage();
    35. }
    36. }