Übergangslösung für Ankerproblem? |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Übergangslösung für Ankerproblem? |
Wed. 26. July 2006, 08:34
Beitrag
#1
|
|
Advanced Member Gruppe: Members Beiträge: 62 Mitglied seit: 30.06.2006 Wohnort: München Mitglieds-Nr.: 17 |
Hi, ich will eine MiniFAQ auf meiner Seite implementieren, dafür nutze ich die Ankerfunktion. Ich habe nun auch dieses Problem , dass der Anker nicht auf die Seite selbst verweist so wie es sein sollte.
Gibt es da einen "Lösungsanhalt" um dieses Problem kurzfristig zu beheben? Oder hat jemand eine bessere Idee zur Verwirklichung einer FAQ ohne dem Einsatz eines zweiten Systems wie z.B. phpmyfaq? -------------------- ___________________________
Gruß Christian <!-- DeDi Umsteiger ;-) --> |
|
|
Guest_eknem_* |
Wed. 26. July 2006, 12:28
Beitrag
#2
|
Guests |
Hi, ich will eine MiniFAQ auf meiner Seite implementieren, dafür nutze ich die Ankerfunktion. Ich habe nun auch dieses Problem , dass der Anker nicht auf die Seite selbst verweist so wie es sein sollte. Gibt es da einen "Lösungsanhalt" um dieses Problem kurzfristig zu beheben? Moin, ich hab das Problem immer noch. |
|
|
Wed. 26. July 2006, 15:43
Beitrag
#3
|
|
Advanced Member Gruppe: Members Beiträge: 54 Mitglied seit: 26.06.2006 Wohnort: Karlsruhe Mitglieds-Nr.: 3 |
eine Lösung ist natürlich, deine anker-links absolut zu machen.
aus HTML <a href="#anker1">Zum Anker 1</a> also HTML <a href="http://www.deine-domain.de/dein/rewrite2/pfad/zu/der/seite.html#anker1">Zum Anker 1</a> Es sollte auch ohne die Angabe deiner Domain gehen, also nur /dein/rewrite2/pfad/zu/der/seite.html#anker1 ich meine mich aber zu erinnern, dass manche Browser/Suchmaschinen, die das base-Tag nicht 100%ig unterstützen, dann fälschlicherweise die base-url da noch anhängen.In einem anderen Projekt bin ich wegen der ganzen Anker-Geschichte davon weggegangen, das base-tag zu verwenden. Damit Anker z.B. auf einer Seite mit base-url und querystring funktionieren, muß man z.B. wieder die komplette URI inkl. querystring vor den anker setzen. Sehr unpraktikabel (man denke z.B. an den allseits beliebten "go to top" Link, der müßte auf jeder Seite eine neue URL bekommen) In Typo3 (autotemplate extension) gibt es eine Funktion, die es vielleicht lohn auch in Sefrengo zu implementieren: Dort werden alle relativen Pfade transparent mit dem Basispfad erweitert. Das muß in href und src Attributen sowie in inline-styles geschehen. Damit braucht man das base-Tag natürlich nichtmehr und hat dann auch nicht mehr die Probleme. Dieses transparente Erweitern kannst du natürlich auch manuell machen. Eine andere Möglichkeit, dein Anker-Problem zu lösen, wäre also dein Layout so zu verändern, dass es nur noch absolute Pfade zu den Bildern, CSS und JS hat. (In den CSS Dateien kannst du übrigens weiterhin relative Pfade verwenden, dort ist immer die Position der CSS Datei maßgebend) Ein Beispiel: HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>...</title> <link rel="stylesheet" href="media/css/std.css" charset="UTF-8" type="text/css" /> <script type="text/javascript" src="media/js/protoype.js"></script> <style type="text/css"> rule1 { background:url(media/siteimg/back.jpg); } </style> </head> <body> <div id="header" class="clearfix"> <h1><img src="media/siteimg/logo.gif" alt="Logo" /><em>Sitename</em></h1> <p id="tagline">Tagline</p> ... daraus machst du HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>...</title> <link rel="stylesheet" href="http://www.deine-domain.de/projekt01/media/css/std.css" charset="UTF-8" type="text/css" /> <script type="text/javascript" src="http://www.deine-domain.de/projekt01/media/js/protoype.js"></script> <style type="text/css"> rule1 { background:url(http://www.deine-domain.de/projekt01/media/siteimg/back.jpg); } </style> </head> <body> <div id="header" class="clearfix"> <h1><img src="http://www.deine-domain.de/projekt01/media/siteimg/logo.gif" alt="Logo" /><em>Sitename</em></h1> <p id="tagline">Tagline</p> ... wenn du dein Layout so angepaßt hast, mußt du Sefrengo noch beibringen, das base-tag wegzulassen. Dafür kommentiere in backend/inc/inc.generate_code.php folgende Zeile aus: QUELLTEXT $code .= '<?PHP if ($cfg_client[\'url_rewrite\'] == \'2\') echo \'<base href="\'.htmlspecialchars(str_replace(\'{%http_host}\', $_SERVER[\'HTTP_HOST\'], $cfg_client[\'url_rewrite_basepath\']), ENT_COMPAT, \'utf-8\').\'"'.$sf_slash_closing_tag.'>\'."\n"; ?>';
-------------------- Technikwürze - Design & Webstandards Podcast |
|
|
Thu. 27. July 2006, 17:13
Beitrag
#4
|
|
Advanced Member Gruppe: Members Beiträge: 62 Mitglied seit: 30.06.2006 Wohnort: München Mitglieds-Nr.: 17 |
Vielen Dank für die ausführliche Antwort.
Ich werde erst mal versuchen, den BaseTag komplett weg zu lassen und damit zu testen. Die Lösung mit absoluten Ankerlinks ist zwar eine Lösung aber etwas aufwendig. Ich probier mal etwas rum... -------------------- ___________________________
Gruß Christian <!-- DeDi Umsteiger ;-) --> |
|
|
Fri. 28. July 2006, 14:03
Beitrag
#5
|
|
Advanced Member Gruppe: Members Beiträge: 62 Mitglied seit: 30.06.2006 Wohnort: München Mitglieds-Nr.: 17 |
So,
also, das Ankerproblem lässt sich mit entfernen des Base href beseitigen, jedoch taucht dann automatisch ein neues Problem auf, siehe hier. Die Url wird immer länger, das ist natürlich nicht brauchbar. Somit fällt auch die Lösung mit dem Base Tag weg. Absolute Links geht gar nicht, der Aufwand ist einfach zu groß. Also heißt es leider warten bis zu einem Bugfix... Der Beitrag wurde von Christian bearbeitet: Fri. 28. July 2006, 14:04 -------------------- ___________________________
Gruß Christian <!-- DeDi Umsteiger ;-) --> |
|
|
Fri. 28. July 2006, 14:37
Beitrag
#6
|
|
Advanced Member Gruppe: Members Beiträge: 54 Mitglied seit: 26.06.2006 Wohnort: Karlsruhe Mitglieds-Nr.: 3 |
Hm, ja stimmt. Ich habe übersehen, dass die cms-links ja nicht absolut generiert werden.
Da fallen mit noch zwei Übergangslösungen ein:
-------------------- Technikwürze - Design & Webstandards Podcast |
|
|
Fri. 28. July 2006, 19:03
Beitrag
#7
|
|
Advanced Member Gruppe: Members Beiträge: 62 Mitglied seit: 30.06.2006 Wohnort: München Mitglieds-Nr.: 17 |
Hallo Daniel,
vielen Dank für Deine Mühe. Irgendwie ist das alles zu aufwendig. Ich denke nun, die einfachste Lösung ist, dass ich UltraEdit starte, eine eigene FAQ-Seite mache und diese verlinke . Sollte der Fehler dann behoben werden kann ich einfach den Inhalt der Seite in Sefrengo übernehmen. Blöd ist das momentan nur für die Suchmaschinen, aber damit lebe ich jetzt einfach ... Das mit dem Javascript schaue ich mir aber trotzdem genauer an. Der Beitrag wurde von Christian bearbeitet: Fri. 28. July 2006, 19:04 -------------------- ___________________________
Gruß Christian <!-- DeDi Umsteiger ;-) --> |
|
|
Fri. 28. July 2006, 22:54
Beitrag
#8
|
|
Newbie Gruppe: Members Beiträge: 6 Mitglied seit: 05.07.2006 Mitglieds-Nr.: 108 |
Hi Christian,
du könntest die Problematik umgehen, indem du die URL der aktuellen Seite vor den Anker stellst: HTML <a href="cms://idcatside=x#anker1">Zum Anker 1</a> Gruß ketti |
|
|
Sat. 29. July 2006, 08:49
Beitrag
#9
|
|
Advanced Member Gruppe: Members Beiträge: 62 Mitglied seit: 30.06.2006 Wohnort: München Mitglieds-Nr.: 17 |
Hallo Ketti,
genau das ist es . QUELLTEXT <a href="cms://idcatside=<CMSPHP>echo $con_side[$idcatside] ['idside']; </CMSPHP>#anker1">Zum Anker XY</a> Jetzt versuche ich mich noch im wysiwyg um dieses Verhalten bei Ankern direkt zu integrieren. -------------------- ___________________________
Gruß Christian <!-- DeDi Umsteiger ;-) --> |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 20.4.24 - 04:55 |