Textile/rewrite: Linkziele falsch gesetzt

Jede Art von Fehler die REDAXO betreffen.

Textile/rewrite: Linkziele falsch gesetzt

Beitragvon svenalbert » 6. Okt 2006, 08:11

Hi,

damit ich die übersicht nicht verliere, welches grafisches Material ich auf meiner dänischen Harzseite (siehe webseiten) benutze, lege ich mir eine Quellenangabe an, die sicherlich riesig lang werden wird.

Folgendes Phänomen habe ich derzeit:
* ich verwende textile, da eine OL, pro OL-item wird der artikel behandelt, dessen ID das jeweilige item hat
* bei den IDs 1-9 und ab 20 funktioniert der link super
* zwischen 10 und 19 passiert aber folgendes:
** im backend wird der link ordentlich angezeigt (redaxo://14)
** auf der seite selber kommt aber folgendes raus (1-0-startseite.html4)

und das bei allen ids zwischen 10 und 19. ab 20 geht es wieder und die richtige url zum artikel wird angezeigt.

Hat wer ne idee?




EDIT: - 07-10-2006
daß es bei den 20er-links funktionierte, lag übrigens daran, daß ich auf den artikel mit der id 2 nicht verlinkt hatte (das ist mein druckartikel).
ich hatte die liste dann mal weiter geführt und es betraf dann somit alle links außer die 20er. (weiteres siehe folgende posts)
Zuletzt geändert von svenalbert am 7. Okt 2006, 16:32, insgesamt 2-mal geändert.
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon Markus.Staab » 6. Okt 2006, 08:53

Hi,

das konnte ich noch nie beobachten...

Evtl irgendwelche Sonderzeichen in der Eingabe durch copy&paste o.ä.?

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

Beitragvon Thomas.Blum » 6. Okt 2006, 09:01

Hej Sven,

kannst du einmal eine dritte Sprache anlegen und schauen ob es dann ab 20 immer noch geht?

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 svenalbert » 6. Okt 2006, 09:44

hab kurz mit thomas schon im icq geredet.


ich habe nur ein sprache angelegt.

wenn ich mod_rewrite ausschalte (tip von thomas), dann funktionieren die links ohne probleme.

an anderen textile-passagen funktionieren die 10er links auch ohne probleme mit dem rewrite.
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon svenalbert » 6. Okt 2006, 12:36

ich muß mal kurz nen doppelpost machen, obwohl ich es eigentlich vermeide, aber ich weiß nicht, in wie weit ihr (thomas und markus) hier schon gelesen habt.



also, ich habe noch mal ein wenig gespielt:
- habe mir von der webseite nur den reinen text kopiert und (wiederholt) ohne copy und paste die liste und links formatiert


folgendes ist mir aufgefallen:
- setze ich einen link zu artikel 1 funktionieren die artikel zu den 10ern nicht
- setze ich den link aber auf artikel 2 funktionieren sie, aber die 20er werden wie oben beschrieben als "2-0-seitentitel.html0" (für id 20) verlinkt.

irgendwie scheint der rewriter, weil er ja den link zu artikel 1 (bzw. 2) schon kennt abzubrechen und hängt die restlichen nummern dann hinten an.

gleiches tritt auf, wenn ich den artikel 10 verlinke und danach z.b. die 100. (10-0-seitentitel.html0)


Sven
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon Thomas.Blum » 7. Okt 2006, 07:46

Hej Sven,

verwendest du eine htaccess? Wenn ja bitte diese einmal posten!

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 Thomas.Blum » 7. Okt 2006, 08:21

Hej Sven,

Problem gelöst.

Dazu bitte die Datei class.article.inc.php öffnen und dann in der Zeile 802 die den for Schleifenstart ersetzen:

Code: Alles auswählen
for ($m = count($matches[0]) -1 ; $m >=0 ; $m--) {


Die Regex stimmte hier schon nur die Ersetzung via str_replace nicht ganz.

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 svenalbert » 7. Okt 2006, 10:01

das gleiche müßte doch eigentlich auch auftreten, wenn man mehrere interne links in einem artikel einfügt und diese gerade durch zufall mit der gleichen zahl anfangen oder?

dann müßte man zeile 793 auch noch ersetzen.



EDIT:
Funktioniert, danke dir/euch.
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon Markus.Staab » 7. Okt 2006, 14:51

Hi Sven,

könntest du mal testen ob das gleiche Problem auch mit der CVS Version besteht... dort ist schonmal was geändert worden seit 3.2 ...

Evtl gehts da ja schon..

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

Beitragvon svenalbert » 7. Okt 2006, 16:21

Code: Alles auswählen
  function replaceLinks($content)
  {
    global $REX;
   
    // -- preg match redaxo://[ARTICLEID]-[CLANG] --
    preg_match_all("/redaxo:\/\/([0-9]*)\-([0-9]*)\/?/im",$content,$matches,PREG_SET_ORDER);
    foreach($matches as $match)
    {
      if(empty($match)) continue;
     
      $url = rex_getURL($match[1], $match[2]);
      $content = str_replace($match[0],$url,$content);
    }
   
    // -- preg match redaxo://[ARTICLEID] --
    preg_match_all("/redaxo:\/\/([0-9]*)\/?/im",$content,$matches,PREG_SET_ORDER);
    foreach($matches as $match)
    {
      if(empty($match)) continue;
     
      $url = rex_getURL($match[1]);
      $content = str_replace($match[0],$url,$content);
    }

    return $content;
  }


also geändert ist auf alle fälle was.
die REX_LINKS gibbet nicht mehr.


Ergebnis ist das gleiche, wie am anfang des threads (muß also noch wieder geändert werden) und für
Code: Alles auswählen
    // -- preg match redaxo://[ARTICLEID] --
sollte die aktuelle Sprache wieder zusätzlich zum match dazu genommen werden. sonst entstehen diese links mit 12--blablabla.html.


Sven
Zuletzt geändert von svenalbert am 7. Okt 2006, 16:27, insgesamt 1-mal geändert.
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon Thomas.Blum » 7. Okt 2006, 16:23

Hier ist dann wohl auch der Fehler vorhanden? Hast du schon etwas verlinkt bzw mit der CVS gestestet?
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 svenalbert » 7. Okt 2006, 16:29

tbaddade hat geschrieben:Hier ist dann wohl auch der Fehler vorhanden? Hast du schon etwas verlinkt bzw mit der CVS gestestet?


hab die funktion eben bei mir eingesetzt gehabt und das oben geschriebene beobachtet.
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon Markus.Staab » 7. Okt 2006, 17:10

Hi,

ich bin mir nicht sicher, ob unser lösungsanstaz richtig ist...

wenn wir einfach nur die reihenfolge umkehren, in der die suchergebnisse durchlaufen werden, sollte das problem ja wieder auftreten, wenn die links im content in der umgekehrten reihenfolgen auftreten oder?

Es ist ja nicht zwingend, dass die Links genau in dieser reihenfolge vorkommen.. also kann ja auch der link zur id = 11 vor dem link zur id = 1 kommen... ebenso umgekehrt....


meiner meinung nach müssen wir das suchergebnis-array von großer zu kleiner artikel id hin sortieren.. was meint ihr?

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

Beitragvon svenalbert » 7. Okt 2006, 18:33

kills hat geschrieben:meiner meinung nach müssen wir das suchergebnis-array von großer zu kleiner artikel id hin sortieren.. was meint ihr?


so, hab das vor ner stunde schon mal gelesen und inzwischen mein gehirn ein wenig verbogen, weil ich erst gar nicht mit dem einverstanden war, was du geschrieben hattest.

mittlerweile, nach ein paar mal drüber nachdenken, muß ich sagen, du hast wahrscheinlich recht. - jetzt bin ich mir sicher (hab's grad probiert) - du hast zu 100% recht.

also es muß wirklich den IDs nach geordnet werden und dann erst die ersetzung von den längsten/größten zu den kleinsten IDs gemacht werden.


Sven
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon Markus.Staab » 7. Okt 2006, 19:20

Hi,

svenalbert hat geschrieben:mittlerweile, nach ein paar mal drüber nachdenken, muß ich sagen, du hast wahrscheinlich recht. - jetzt bin ich mir sicher (hab's grad probiert) - du hast zu 100% recht.


das hör ich doch gerne... mal sehen was ich machen kann ;)

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

Nächste

Zurück zu Bugs [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast