Zum Inhalt springen

RealURL mit Tx_News und Pagination Widget

Erstellt am 5. Juni 2014 · 3 Antworten · letzte Antwort am 10. Juni 2014

Tags: RealURL, tx_news, TYPO3 6.x, Frage

zitronenbaum ·

Halle zusammen

Ich habe ein RealURL Problem bei dem ich nicht durchblicke. Ich habe das Pagination Widget von Tx_News um einige Parameter erweitert, was wunderbar funktioniert. Nun kann ich aber in der RealURL config nicht alle GET-Parameter abfangen und weiss nicht weiter...

Ich habe folgende GET-Parameter übergeben

array(2) {
  ["tx_news_pi1"]=>
  array(4) {
    ["__referrer"]=>
    array(4) {
      ["@extension"]=>
      string(4) "News"
      ["@controller"]=>
      string(4) "News"
      ["@action"]=>
      string(4) "list"
      ["arguments"]=>
      string(296) "YToyOntzOjEyOiJwdWJsaWNhdGlvbnMiO2E6Mjp7czo1OiJwYXJlYSI7czozOiJhbGwiO3M6NToic3dvcmQiO3M6MDoiIjt9czo5OiJAd2lkZ2V0XzAiO2E6Mjp7czoxMToiY3VycmVudFBhZ2UiO3M6MToiMiI7czoxMzoic2ZpbHRlcnBhcmFtcyI7YToyOntzOjU6InBhcmVhIjtzOjM6ImFsbCI7czo1OiJzd29yZCI7czowOiIiO319fQ==7690c5ae56730482e10e4a19b4072c14b80cce17"
    }
    ["__trustedProperties"]=>
    string(110) "a:1:{s:12:\"publications\";a:2:{s:5:\"parea\";i:1;s:5:\"sword\";i:1;}}226673a88b7a34493398d3638184e32380b549fa"
    ["publications"]=>
    array(2) {
      ["device"]=>
      string(3) "174"
      ["publisher"]=>
      string(0) ""
    }
    ["@widget_0"]=>
    array(2) {
      ["currentPage"]=>
      string(1) "2"
      ["sfilterparams"]=>
      array(2) {
        ["parea"]=>
        string(3) "174"
        ["sword"]=>
        string(0) ""
      }
    }
  }
  ["cHash"]=>
  string(32) "a11034e29531957a7d52a89a77a6bd0f"
}

Die Parameter in ["tx_news_pi1"]["@widget_0"]["sfilterparams"] kann ich in RealURL ohne Probleme anfangen:

    'postVarSets' => array(
        '_DEFAULT' => array(
            'query' => array(),
            'browse' => array(
                array(
                    'GETvar' => 'tx_news_pi1[@widget_0][sfilterparams]',
                    'noMatch' => 'bypass',
                ),
                array(
                    'GETvar' => 'tx_news_pi1[@widget_0][sfilterparams][parea]',
                    'lookUpTable' => array(
                        'table' => 'pages',
                        'id_field' => 'uid',
                        'alias_field' => 'title',
                        'addWhereClause' => ' AND NOT deleted',
                        'useUniqueCache' => 1,
                        'useUniqueCache_conf' => array(
                            'strtolower' => 1,
                            'spaceCharacter' => '-',
                        ),
                    ),
                ),
                array(
                    'GETvar' => 'tx_news_pi1[@widget_0][sfilterparams][sword]',
                ),
            ),           
        ),
    ),

Ich erhalte dann URLs im Stile von /browse/pareaname/

Die Parameter aus ["tx_news_pi1"]["publications"] kann ich jedoch nicht ansteuern. resp realurl erkennt diese nicht und führt kein rewriting durch:

    'fixedPostVars' => array(),
    'postVarSets' => array(
        '_DEFAULT' => array(
            'query' => array(),
            'browse' => array(
                array(
                    'GETvar' => 'tx_news_pi1[@widget_0][sfilterparams]',
                    'noMatch' => 'bypass',
                ),
                array(
                    'GETvar' => 'tx_news_pi1[publications][device]',
                    'lookUpTable' => array(
                        'table' => 'pages',
                        'id_field' => 'uid',
                        'alias_field' => 'title',
                        'addWhereClause' => ' AND NOT deleted',
                        'useUniqueCache' => 1,
                        'useUniqueCache_conf' => array(
                            'strtolower' => 1,
                            'spaceCharacter' => '-',
                        ),
                    ),
                ),
                array(
                    'GETvar' => 'tx_news_pi1[@widget_0][sfilterparams][sword]',
                ),
            ),           
        ),
    ),

Kann mir jemand einen Tip geben weshalb das nicht funktioniert? Muss ich GET-Variabeln erst für RealURL registrieren damit ich diese dort verwenden kann? oder habe ich ev. einen Fehler gemacht?

Vielleicht noch kurz zur Erklärung. Ich habe die Pages tabelle mit News verknüpft deshalb pages als lookuptable (funktioniert wunderbar, nur die urls sind noch unsauber).

Vielen Dank für eure Hilfe
Gruss Michi

zitronenbaum ·

dazu noch eine Anschlussfrage....

Damit ich die generierte URL schon umschreiben kann muss ich die Formularwerte per GET übergeben.... weiss jemand wie ich die Parameter aus dem __referrer Array aus der URL eliminieren kann?

array(4) {
    ["__referrer"]=>
    array(4) {
      ["@extension"]=>
      string(4) "News"
      ["@controller"]=>
      string(4) "News"
      ["@action"]=>
      string(4) "list"
      ["arguments"]=>
      string(296) "YToyOntzOjEyOiJwdWJsaWNhdGlvbnMiO2E6Mjp7czo1OiJwYXJlYSI7czozOiJhbGwiO3M6NToic3dvcmQiO3M6MDoiIjt9czo5OiJAd2lkZ2V0XzAiO2E6Mjp7czoxMToiY3VycmVudFBhZ2UiO3M6MToiMiI7czoxMzoic2ZpbHRlcnBhcmFtcyI7YToyOntzOjU6InBhcmVhIjtzOjM6ImFsbCI7czo1OiJzd29yZCI7czowOiIiO319fQ==7690c5ae56730482e10e4a19b4072c14b80cce17"
    }
    ["__trustedProperties"]=>
    string(110) "a:1:{s:12:\"publications\";a:2:{s:5:\"parea\";i:1;s:5:\"sword\";i:1;}}226673a88b7a34493398d3638184e32380b549fa"
    ["publications"]=>
    array(2) {
      ["device"]=>
      string(3) "174"
      ["publisher"]=>
      string(0) ""
    }

Danke, gruss Michi

jenses ·
zitronenbaum schrieb

Damit ich die generierte URL schon umschreiben kann muss ich die Formularwerte per GET übergeben.... weiss jemand wie ich die Parameter aus dem __referrer Array aus der URL eliminieren kann?

Du bist wohl nicht der erste, der sich mit diesem Problem rumschlägt,
in Sachen SEO und saubere Urls ist der fluid-Paginator eine reine Katastrophe.
Aber so etwas kommt dabei raus, wenn "moderne, objektorientierte Programmierung" höher prioritiert wird als praktischer Nutzen für den Webseiteninhaber.

Ich habe es neulich so gelöst, daß Suchmaschinen eine Listenansicht OHNE Paginierung ausgeliefert wird, so daß vernünftig lesbare Urls im Suchindex von z.B. Google landen und nicht irgendwelcher 800-Zeichen-__referrer-Kauderwelsch.

Ansonsten gibt es noch diese Extension
https://github.com/FluidTYPO3/extbase_realurl
Vielleicht hilft die auf dem Weg, habe sie noch nicht getestet.

zitronenbaum ·

Hi

Danke jenses für deinen Link... ich habe das gefühl ich habe einen Denkfehler gemacht und etwas versucht das RealURL so einfach gar nicht kann... siehst du das genau so??

Ich habe ein Form mit einem Dropdown

<form method="get" name="categories" id="categorieselect" action="/publications/">
    <select id="categorySelect" name="tx_myext_pi1[category]">
    <option value="128">Name1</option>
    <option value="129">Name2</option>
    <option value="130">Name3</option>
    <option value="131">Name4</option>
    <option value="174">Name5</option>
    <option value="132">Name6</option>
  </select>
    <input id="publicationFormSubmit" type="submit" name="" value="Start search">
</form>

Mein Ziel wäre es gewesen nach einer Auswahl im Dropdown eine URL im Stile von /publications/category/name5/ zu bauen...

Da die Parameter aber einfach als GET-Parameter an die Action angehängt werden, hat Typo3 und RealURL ja gar nie die gelegenheit diese umzuschreiben?? sehe ich das richtig oder gibt es (ev. via UserFunction) einen Weg die URL nach dem Umsenden des Formulares noch umzuschreiben? So ich das also richtig dass das URL-Rewriting im Moment gemacht wird wo das Markup der Seite generiert wird.. und nicht im Moment wo ich einen Request absetze?

Danke, Gruss
Michi