typo3typo3-7.6.xrealurltx-news

TYPO3 7.6 - tx_news 4.2.1 - no detail name in realurl?


The realurl config with tx_news works fine for me, but I have one problem. I dont need the detail-name in the address.

www.domain.org/news-list/news-detail/test-news-name-here/

and now i dont need the "news-detail".

Here the PHP code realurl.php

<?php


$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array( 
'pagePath' => array(
    'type' => 'user',
    'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
    'spaceCharacter' => '-',
    'languageGetVar' => 'L',
    'expireDays' => '3',
    'rootpage_id' => 1,
    'firstHitPathCache'=>1
),
'init' => array(
    'enableCHashCache' => TRUE,
    'enableCHashCache' => 1,
    'respectSimulateStaticURLs' => 0,
    'enableUrlDecodeCache' => 1,
    'enableUrlEncodeCache' => 1
),
'preVars' => array(
    array(
        'GETvar' => 'L',
        'valueMap' => array(
            //'de' => '0',
            //'en' => '1',
        ),
        'noMatch' => 'bypass',
    ),
    array(
        'GETvar' => 'no_cache',
        'valueMap' => array(
            'nc' => 1,
        ),
        'noMatch' => 'bypass',
    ),
),

'fileName' => array(
  'index' => array(
    'sitemap.xml' => array(
      'keyValues' => array(
        'type' => 1234,
      ),
    ),
  ),
),

'fixedPostVars' => array(
    'newsDetailConfiguration' => array(
        array(
            'GETvar' => 'tx_news_pi1[action]',
            'valueMap' => array(
                'detail' => '',
            ),
            'noMatch' => 'bypass',
        ),
        array(
            'GETvar' => 'tx_news_pi1[controller]',
            'valueMap' => array(
                'News' => '',
            ),
            'noMatch' => 'bypass',
        ),

        array(
            'GETvar' => 'tx_news_pi1[news]',
            'lookUpTable' => array(
                'table' => 'tx_news_domain_model_news',
                'id_field' => 'uid',
                'alias_field' => 'title',
                'addWhereClause' => ' AND NOT deleted',
                'useUniqueCache' => 1,
                'useUniqueCache_conf' => array(
                    'strtolower' => 1,
                    'spaceCharacter' => '-',
                ),
                'languageGetVar' => 'L',
                'languageExceptionUids' => '',
                'languageField' => 'sys_language_uid',
                'transOrigPointerField' => 'l10n_parent',
                'autoUpdate' => 1,
                'expireDays' => 180,
            ),
        ),
    ),

    '6' => 'newsDetailConfiguration',
    // For additional detail pages, add their uid as well
    //'13' => 'newsDetailConfiguration',
    //'22' => 'newsDetailConfiguration',
    //'4' => 'newsTagConfiguration',
    //'4' => 'newsCategoryConfiguration',

),
'postVarSets' => array(
    '_DEFAULT' => array(
        'controller' => array(
            array(
                'GETvar' => 'tx_news_pi1[action]',
                'noMatch' => 'bypass',
            ),
            array(
                'GETvar' => 'tx_news_pi1[controller]',
                'noMatch' => 'bypass',
            ),
        ),
        'stadt' => array(
            array(
                'GETvar' => 'tx_news_pi1[overwriteDemand][categories]',
                'lookUpTable' => array(
                    'table' => 'sys_category',
                    'id_field' => 'uid',
                    'alias_field' => 'title',
                    'addWhereClause' => ' AND NOT deleted',
                    'useUniqueCache' => 1,
                    'useUniqueCache_conf' => array(
                        'strtolower' => 1,
                        'spaceCharacter' => '-',
                    ),
                ),
            ),
        ),

        'tags' => array(
            array(
                'GETvar' => 'tx_news_pi1[overwriteDemand][tags]',
                'lookUpTable' => array (
                  'table' => 'tx_news_domain_model_tag',
                  'id_field' => 'uid',
                  'alias_field' => 'title',
                  'addWhereClause' => 'AND NOT deleted',
                  'useUniqueCache' => 1,
                  'useUniqueCache_conf' => array (
                    'strtolower' => 1,
                    'spaceCharacter' => '-',
                    ),
                ),
            ),
        ),

        'seite' => array(
            array(
                'GETvar' => 'tx_news_pi1[@widget_0][currentPage]',
            ),
        ),

        // news archive parameters
        'archiv' => array(
            array(
                'GETvar' => 'tx_news_pi1[overwriteDemand][year]',
            ),
            array(
                'GETvar' => 'tx_news_pi1[overwriteDemand][month]',
                'valueMap' => array(
                    'january' => '01',
                    'february' => '02',
                    'march' => '03',
                    'april' => '04',
                    'may' => '05',
                    'june' => '06',
                    'july' => '07',
                    'august' => '08',
                    'september' => '09',
                    'october' => '10',
                    'november' => '11',
                    'december' => '12',
                ),
            ),
        ),

    ),
),
// configure filenames for different pagetypes
'fileName' => array(
    'defaultToHTMLsuffixOnPrev' => 0,
),
);

?>

I need that typoscript?

plugin.tx_news {
    settings {
            link {
                    skipControllerAndAction = 1
            }
    }
}

In the Detail-Page I check the realurl:

tx_realurl_exclude = 1

Solution

  • You can use detail & list plugin on the same page. Check this url: https://forge.typo3.org/issues/50489

    lib.news = USER
    lib.news {
      userFunc = tx_extbase_core_bootstrap->run
      pluginName = Pi1
      extensionName = News
      controller = News
      settings =< plugin.tx_news.settings
      persistence =< plugin.tx_news.persistence
      view =< plugin.tx_news.view
    }
    
    lib.news_list< lib.news
    lib.news_list {
      action = list
      switchableControllerActions.News.1 = list
    }
    
    lib.news_detail < lib.news
    lib.news_detail {
      action = detail
      switchableControllerActions.News.1 = detail
    }
    
    [globalVar = GP:tx_news_pi1|news > 0]
      lib.field_news_single < lib.news_detail
    [else]
      lib.field_news_list < lib.news_list
    [end]