ID's aus Url extrahieren und an ein Modul übergeben?

Wie verwendet man Module oder Aktion und passt diese an.

ID's aus Url extrahieren und an ein Modul übergeben?

Beitragvon unshape » 31. Aug 2006, 14:13

Hallo,

ich gebe bisher eine Liste aus Six über z.B. diese Domain aus:

http://domain/meldungen/

Die Liste wird über ein Modul included welches dem Artikel "meldungen"
zugewiesen ist. Die Liste besteht aus Meldungen mit Text und einem
Mehr-Link pro Meldung.
Der Mehr-Link verweisst z.B. (schon umgebaut für Redaxo) auf folgene
url:

http://domain/meldungen/123456

Wenn ich jetzt einen der Mehr links Klicke muss ich natürlich auf die
Six-Id (123456) in der url reagieren. Wie mach ich das, hat jemand
sowas schon mal gemacht?

Mein Problem ist vor allem, dass die url "/domain/meldungen/123456"
ja nicht in der Stuktur existiert, dort gibt es ja nur "/domain/meldungen/"?!

Kann ich das per mod_rewrite lösen?

Ich arbeite mich gerade erst so richtig in Redaxo rein und bin für
jeden Tipp dankbar.

_Heiko
- coding for food -
- god is real (unless declared integer) -
unshape
 
Beiträge: 12
Registriert: 27. Jan 2006, 10:29

Beitragvon Markus.Staab » 31. Aug 2006, 14:55

Hi Heiko,

was ist eine Six-Id? Kommt die aus dem Six-CMS?

Wenn du für/in REDAXO Urls erzeugst, dann immer über die rex_getUrl() Funktion. Ob du dann noch mod_rewrite verwendest oder nicht, kannst du selbst entscheiden... Wenn du aber die Urls starr mit z.b. "http://domain/meldungen/123456" generierst, bist du dann sehr unflexibel.

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon unshape » 31. Aug 2006, 15:20

@kills

Hi Markus,

ja, die Six-Id kommt aus dem Six-CMS - die Liste wird direkt dort formatiert und per Include eingelesen.

Die Funktion rex_getUrl() generiert mir aber doch nur Links für Artikel in Redaxo?!

Wenn ich "http://domain/meldungen/" aufrufe wird ja die Seite "/meldungen" geladen mit dem Startartikel. Wenn ich jetzt aber "http://domain/meldungen/123456" aufrufe, soll anstatt dem Startartikel z.B. der Artikel mit der ID 123456 aus Six includiert werden. Aber da der Link eben nicht auf "/meldungen" sondern auf "/meldungen/123456" geht wird natürlich nicht die selbe Seite wie bei "/meldungen" aufgerufen wo ich ja auf die Six ID reagieren könnte.

Weisst du wie ich das meine oder war das jetzt zu verwirrend?

_Heiko
- coding for food -
- god is real (unless declared integer) -
unshape
 
Beiträge: 12
Registriert: 27. Jan 2006, 10:29

Beitragvon Thomas.Blum » 31. Aug 2006, 18:54

Hej,

mich erschließt es noch nicht ganz warum du die Inhalte aus SIXCMS über Redaxo darstellen lassen willst.

Warum diese Kombination überhaupt?


vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon unshape » 31. Aug 2006, 19:39

@tbaddade

Hallo Thomas,

der Kunde möchte seinen Content mit Six pflegen aber wir bauen seinen neuen Auftritt mit Redaxo da wir damit sehr gute Erfahrung gemacht haben.

Das Problem ist im Prinzip ja nur - wie bekomme ich eine ID aus einer url in ein Modul um darauf zu reagieren.

_Heiko
- coding for food -
- god is real (unless declared integer) -
unshape
 
Beiträge: 12
Registriert: 27. Jan 2006, 10:29

Beitragvon Markus.Staab » 31. Aug 2006, 19:47

Hi Heiko,

um diese Id in deinem Modul so auszuwerten, musst du wohl mod_rewrite einsetzen...

Allerdings bin ich wie Thomas auch sehr überrascht, wieso der Kunde die Daten über Six-CMS Pflegt, ihr diese dann aber über REDAXO ausgeben wollt...

Warum dieser unnötige Schritt? Six-CMS ist ein sehr teures und bestimmt für diesen Zweck geeignete CMS (dein Kunde will es schließlich)... Warum nicht einfach den Artikel über SIX-CMS anzeigen?

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon unshape » 31. Aug 2006, 19:55

@kills

Hallo Markus,

weil es in Redaxo leichter und schneller umzusetzen ist als in Six, denke ich.

Das werde ich das wohl mit mod_rewrite lösen. Wie ist das eigentlich, wenn "/meldungen/" in der Stuktur eingetragen ist, "/meldungen/sonstwas" aber nicht - wie reagiert Redaxo dann?

_Heiko

PS: Eure Anfahrtsbeschreibung auf Public-4u liefert übrigends einen 404er?!
- coding for food -
- god is real (unless declared integer) -
unshape
 
Beiträge: 12
Registriert: 27. Jan 2006, 10:29

Beitragvon Jan.Kristinus » 31. Aug 2006, 20:09

Hallo Heiko,

REDAXO reagiert nur auf index.php?article_id=xy und die eventuellen sprachabhaengigen urls.. wenn eine spezielle url aufgerufen wurde z.b. /meldungen/syz/sonstwas , so ist die reaktion abhaengig von der entsprechenden umwandlung der url (welche nicht von redaxo selbst geschieht, sondern meistens über modrewrite/apache).. redaxos urlrewriter-addons sorgen nur dafuer das die passenden urls generiert werden und die passenden "wandler" (z.b. .htaccess) eingesetzt werden.

Wenn Du speziellere Fragen hast kannst Du Dich gerne per PM bei mir melden. Musste auch schon mehrmals mit SIX CMS arbeiten..

lg

Jan
Yakamara Media GmbH & Co. KG | Kaiserstrasse 69 | 60329 Frankfurt
Tel.: 069-900.20.60.30
http://www.yakamara.de/
Benutzeravatar
Jan.Kristinus
Admin
 
Beiträge: 1928
Registriert: 24. Aug 2004, 21:11
Wohnort: Frankfurt

Beitragvon unshape » 1. Sep 2006, 01:22

Hallo Jan,

danke für das Angebot.

Ich hab das jetzt mal so gelöst (nur für den Fall daß jemand das selbe Problem hat):

Zuerst splitte ich die REQUEST_URI per mod_rewrite in der .htaccess auf:

Code: Alles auswählen
RewriteCond %{REQUEST_URI}  /[0-9]+$
RewriteRule ^(.*/)([0-9]+)$ $1?sixaid=$2 [L]


So wird z.B. aus: http://domain/meldungen/123456 => http://domain/meldungen/?sixaid=123456

Dannach frage ich in der index.php die $_GET['sixaid'] ab und setze die REQUEST_URI neu:

Code: Alles auswählen
// wenn sixaid gesetzt -> sixaid aus request_uri löschen
if (isset($_GET['sixaid']) and $_GET['sixaid'] != '') {
  $_SERVER['REQUEST_URI'] = str_replace($_GET['sixaid'], '', $_SERVER['REQUEST_URI']);
}


Dannach wird dann ja durch einen Internen Redirect wieder die .htaccess durchlaufen und der für "/meldungen/" registrierte Artikel ausgegeben - mit dem Unterschied, dass ich jetzt die Six ID habe die ich dann z.B. über ein Modul auslesen und ausgeben kann.

So funktioniert es jedenfalls, auch wenn es sicher noch andere Lösungen dafür gibt.

_Heiko
- coding for food -
- god is real (unless declared integer) -
unshape
 
Beiträge: 12
Registriert: 27. Jan 2006, 10:29

Beitragvon Plakinger » 18. Okt 2009, 19:22

Hallo,

ich habe ein ähnliches Problem. Ich verwende url_rewrite mit fullnames und die Get Variablen sollen schön in der Url dargestellt werden. Ich habe zum Beispiel einen Kleinanzeigenmarkt in welchem die ID wie folgt übergeben wird

http://domain.de/kleinanzeigen/detail.php?id=5

Für die Suchmaschinen soll ein Link nun wie folgt aussehen:

http://domain.de/kleinenzeigen/5-Titel- ... nzeige.php

Eine Url nach diesem Schema zu erstellen ist nicht das Problem. Mit einem Eintrag in der .htaccess kann ich die ID auch aus der URL splitten.

Mit der von unshape Beschriebenen Lösung kann ich auch die ID aus dieser Url herauslesen und die nicht benötigten Zeichen löschen. Somit wird aus http://domain.de/kleinenzeigen/5-Titel- ... nzeige.php wieder http://domain.de/kleinenzeigen/detail.php?id=5 . Nur finde ich diese Lösung ein bisschen quick and dirty, da die index.php verändert werden muss.

Kann mir jemand helfen wie man dieses Problem sauber lösen kann? Ich habe schon versucht die Funktion auslesen der ID und umwandeln der URL an Extension Points zu hängen - Ohne Erfolg.

Gruß Martin
Plakinger
 
Beiträge: 5
Registriert: 8. Jul 2009, 12:03


Zurück zu Module/Aktionen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast