简体   繁体   English

TYPO3 7.6 - tx_news 4.2.1 - realurl 中没有详细名称?

[英]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.带有 tx_news 的 realurl 配置对我来说很好用,但我有一个问题。 I dont need the detail-name in the address.我不需要地址中的详细名称。

www.domain.org/news-list/ news-detail /test-news-name-here/ 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 代码 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:在详细信息页面中,我检查了 realurl:

tx_realurl_exclude = 1

Answer: it is not possible to exclude the current (=last) page from speaking URL.答:无法从朗读 URL 中排除当前(=最后)页面。

If you are interested in technical details, you can read more in the RealURL's notes for integrators .如果您对技术细节感兴趣,可以在 RealURL 的集成商说明中阅读更多内容。

You can use detail & list plugin on the same page.您可以在同一页面上使用详细信息和列表插件。 Check this url: https://forge.typo3.org/issues/50489检查这个网址: 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]

Just an additional followup with another solution:只是对另一个解决方案的额外跟进:

Use a TypoScript condition to render dynamically the detail plugin at the list page.使用 TypoScript 条件在列表页面动态呈现详细信息插件。

[globalVar = GP:tx_news_pi1|news > 0]
  page.10 >
  page.10 < lib.news
[global]

Of course you can do a lot more fancy stuff if you need to render eg other content elements as well!当然,如果您还需要渲染其他内容元素,您可以做更多奇特的事情!

[globalVar = GP:tx_news_pi1|news > 0]
  page.10 >
  page.10 = CONTENT
  page.10 {
    table = tt_content
    pidInList = <page ID of your detail page>
    orderBy = sorting
  }
[global]   

This will render you all content elements of the detail page on the list page.这将在列表页面上呈现详细信息页面的所有内容元素。

If you want to have list and single view on separate pages then extension singleview at https://github.com/sourcebroker/singleview does exactly what you want.如果您想在单独的页面上拥有列表和单一视图,那么https://github.com/sourcebroker/singleview上的扩展singleview正是您想要的。

This extension uses TYPO3 build in feature "Show content from pid" which you can find in page properties.此扩展使用 TYPO3 内置功能“显示来自 pid 的内容”,您可以在页面属性中找到该功能。 In this extension value for "Show content from pid" field is set dynamically based on $_GET parameter.在此扩展中,“从 pid 显示内容”字段的值是根据$_GET参数动态设置的。 When TYPO3 renders page with list view then ext:singleview checks if $_GET parameter has single view request.当 TYPO3 使用列表视图呈现页面时, ext:singleview检查$_GET参数是否具有单一视图请求。 If this is true then it sets "content_from_pid" field with value of single view page uid.如果这是真的,那么它将“content_from_pid”字段设置为单视图页面 uid 的值。 This way single view page with its content and layout is shown on list view page.通过这种方式,单视图页面及其内容和布局显示在列表视图页面上。

For TYPO3 7.6 use ext:singlenews version 1.3.对于 TYPO3 7.6,请使用 ext:singlenews 1.3 版。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM