Zum Inhalt springen

realurl anpassen

Erstellt am 22. Juli 2006 · 11 Antworten · letzte Antwort am 3. November 2006

Tags: RealURL, URLs & Routing, Frage

anj ·

Hi Typo3ler!

Möchte gern drwiki zusammen mit realurl laufen lassen und komme auf schwirigkeiten realurl richtig zu konfigurieren:

bei mir befindet sich drwiki ab der seite 21 und allen unterseiten. Hierzu schon meine erste frage-> reicht es einfach in den 'postVarSets' die 21 dafür zu setzen um damit die unterseiten zu behandeln?
Oder sollte ich meine einstellungen generell in die '_DEFAULT' Sektion packen?

Ich möchte dass die Buttons Homepage, Edit, Versions, Download etc die alle mit diesen getVars arbeiten:

tx_drwiki_pi1[keyword] 
tx_drwiki_pi1[cmd]
tx_drwiki_pi1[showUid]

behandelt werden.

hier mein Versuch der leider nicht funktioniert:

'postVarSets' => array(
'21' => array(
            array(
              'homepage' =>array(
                'GETVar' =>'tx_drwiki_pi1[keyword]',
                'valueMap' => array(
                        )
                ),
              ),
              
              
              'reload' =>array(
              array(
                 'GETVar' =>'tx_drwiki_pi1[keyword]',
                'valueMap' => array(
                      )
                ),
              ),
              
              'edit' =>array(
                array( 
                 'GETVar' =>'tx_drwiki_pi1[keyword]',
                'valueMap' => array(
                      )
                ),
                array(
                  'GETVar' =>'tx_drwiki_pi1[showUid]',
                'valueMap' => array(
                      )
                ),
                array(
                  'GETVar' =>'tx_drwiki_pi1[cmd]',
                'valueMap' => array(
                      )
                ),
              ),
              
              'versions' =>array(
                 array( 
                 'GETVar' =>'tx_drwiki_pi1[keyword]',
                'valueMap' => array(
                      )
                ),
                array(
                  'GETVar' =>'tx_drwiki_pi1[cmd]',
                'valueMap' => array(
                      )
                ),
              ),
              'download' =>array(
                 array( 
                 'GETVar' =>'tx_drwiki_pi1[keyword]',
                'valueMap' => array(
                      )
                ),
                array(
                  'GETVar' =>'tx_drwiki_pi1[showUid]',
                'valueMap' => array(
                      )
                ),
                array(
                  'GETVar' =>'tx_drwiki_pi1[cmd]',
                'valueMap' => array(
                      )
                ),
              ),
            ),
'_DEFAULT' =array([..schipp,schnapp..])
)

Ist mein Ansatz überhaupt richtig?
Wie behandele ich das Inhaltsverzeichniss, das leider immer auf die BaseURL zeigt: www.meineurl.de#inhaltsverzeichnissElement???

Grüße!

just2b ·

hi,

schau dir doch mal die Ext jm_gallery an, da is was im manual, das musst du dann nur noch übertragen

georg

anj ·

Hey vielen Dank!

Das hat schon mal hingehauen das die links vernünftig aussehen (siehe unten).
Einziges Problem ist jetzt das ich noch nicht weiss wie ich das Inhaltsverznis (TOC) korrigieren kann:

sagen wir meine Adresse wäre > www.hier.de/wiki/keywordName

drwiki hängt jetzt normalerweise einfach ein #tockeyword dahinter also

www.hier.de/wiki/keywordName#tockeyword

um den Inhaltsverzeichnis zu erreichen...

Habe gemerkt das er durch die einstellung im templatesetup:

config.baseURL = http://www.hier.de/

die ja unbedingt erforderlich ist für realurl, komplett den mittleren Teil entfernt und daraus folgendes macht:

http://www.hier.de/#tockeyword

Wie behebe ich dieses Problem??? wie kann ich denn # mit realurl ansprechen?

Hier die lösung für drwiki:

[...]
'_DEFAULT' => array(
                        
            //wiki
            //tx_drwiki_pi1[keyword]
            //tx_drwiki_pi1[showUid]
            //tx_drwiki_pi1[cmd]
            
            'keyword' => array(array('GETvar' => 'tx_drwiki_pi1[keyword]',),),
            'showuid' => array(array('GETvar' => 'tx_drwiki_pi1[showUid]',),),
            'cmd' => array(array('GETvar' => 'tx_drwiki_pi1[cmd]',),),

[...]
anj ·

kaum hab ich mich gefräut kommt das nächste Problem:

Bei drwiki funktioniert die weiterleitung nicht mit realurl zusammen:

in der Zeile ~ 1016 der Datei class.tx_drwiki_pi1.php:

$GLOBALS["TSFE"]->jumpurl = $this->pi_getPageLink($this->pageRedirect);

Gibt es den Aufruf für die weiterleitung...

in $this->pageRedirect steht das richtige Ziel, allerdings wird es immer ans ende rangehängt. und nicht an die BaseUrl :/

Liegt jetzt der Fehler an meiner realurl config oder an drwiki?

Wie kann ich die BaseUrl von der config auslesen? um damit quasi folgendes zu machen:

$GLOBALS["TSFE"]->jumpurl = $this->baseURL.$this->pi_getPageLink($this->pageRedirect);
anj ·

selbst ist der Mann... 😃

Die Lösung für das Redirect Problem zusammen mit realurl lässt sich folgendermassen beheben:

Die Datei typo3conf/ext/dr_wiki/pi1/class.tx_drwiki_pi1.php öffnen und in der ~1016 Zeile:

 if ($this->activatePageRedirect AND ((!$GLOBALS["TSFE"]->fe_user->user["uid"] > 0))) {
$GLOBALS["TSFE"]->jumpurl = $this->pi_getPageLink($this->pageRedirect);                }

Ändern zu:

if ($this->activatePageRedirect AND ((!$GLOBALS["TSFE"]->fe_user->user["uid"] > 0))) {
                	$baseurl = $GLOBALS['TSFE']->tmpl->setup['page.']['config.']['baseURL'] ? $baseurl : $GLOBALS['TSFE']->tmpl->setup['config.']['baseURL'];
                	$GLOBALS["TSFE"]->jumpurl = $baseurl.$this->pi_getPageLink($this->pageRedirect);
                }

Das ganze funktioniert nun auch mit und ohne realurl...

Gruß
aNj

dna- ·
anj schrieb

ok, hat sich erledigt: das problem lag an:

config.prefixLocalAnchors = output

Genau das selbe Problem habe ich auch, bei mir steht jedoch in dem Template:

config.prefixLocalAnchors = all

welches laut Doku cached und output mit einschließen sollte.

MrGunn ·

Hallo anj,

wäre es möglich, dass Du die funktionierende Lösung hier nochmal komplett postest? Du hast es ja scheinbat hinbekommen, aber ich blicke hier nicht mehr durch, was alles zu machen ist.

Viel Dank im voraus!

MrGunn

anj ·

Hier nochmals die Lösung:

Im TemplateSetup:

#########
#REALURL
#########
config.simulateStaticDocuments = 0
config.baseURL = http://www.deineAdresse.de/
config.tx_realurl_enable = 1
#config.prefixLocalAnchors = all #dont work with realurl and local anchors
config.prefixLocalAnchors = output

Die Änderungen für die Datei: typo3conf/ext/dr_wiki/pi1/class.tx_drwiki_pi1.php

Zeile: ~ 1016

if ($this->activatePageRedirect AND ((!$GLOBALS["TSFE"]->fe_user->user["uid"] > 0))) {$GLOBALS["TSFE"]->jumpurl = $this->pi_getPageLink($this->pageRedirect);              }

ersetzen mit:

if ($this->activatePageRedirect AND ((!$GLOBALS["TSFE"]->fe_user->user["uid"] > 0))) 
{
$baseurl = $GLOBALS['TSFE']->tmpl->setup['page.']['config.']['baseURL'] ? $baseurl : $GLOBALS['TSFE']->tmpl->setup['config.']['baseURL'];
$GLOBALS["TSFE"]->jumpurl = $baseurl.$this->pi_getPageLink($this->pageRedirect);
}

Damit sollte es gehen, falls das ranhängen des Ankers im Inhaltsverzeichnis nicht funktionieren sollte, würde ich mal eine Ausgabe von $baseurl.$this->pi_getPageLink($this->pageRedirect) machen.

Zu guter letzt für Realurl noch die umkonvertierung in "schöne" links:

      [...]
      '_DEFAULT' => array(
                             
                  //wiki
                  //tx_drwiki_pi1[keyword]
                  //tx_drwiki_pi1[showUid]
                 //tx_drwiki_pi1[cmd]
                
                  'keyword' => array(array('GETvar' => 'tx_drwiki_pi1[keyword]',),),
                  'showuid' => array(array('GETvar' => 'tx_drwiki_pi1[showUid]',),),
                  'cmd' => array(array('GETvar' => 'tx_drwiki_pi1[cmd]',),),
      [...]