Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> Übergangslösung für Ankerproblem?
Christian
Beitrag 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 ;-) -->
Go to the top of the page
 
+Quote Post
Guest_eknem_*
Beitrag Wed. 26. July 2006, 12:28
Beitrag #2





Guests






ZITAT(Christian @ Wed. 26. July 2006, 09:34) *
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.
Go to the top of the page
 
+Quote Post
Daniel
Beitrag 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
Go to the top of the page
 
+Quote Post
Christian
Beitrag 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 ;-) -->
Go to the top of the page
 
+Quote Post
Christian
Beitrag 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 ;-) -->
Go to the top of the page
 
+Quote Post
Daniel
Beitrag 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:
  • Sefrengo so ändern, dass die URLs keine Slashes mehr enthalten. Aus www.domain.de/projekt01/de/willkommen/willkommen.html also z.B. www.domain.de/projekt01/de~willkommen~willkommen.html machen. Das ist allerdings enorm aufwendig, weil Änderungen an vielen Stellen des Cores nötig wären. Außerdem würden sich dann die URLs ändern, wenn Sefrengo den Bug behebt. (-> Schlecht für Suchmaschinen etc.)
  • Mach die MiniFAQ einfach mit JavaScript. http://de.selfhtml.org/javascript/objekte/location.htm#hash
    HTML
    ...
    <a href="java script:window.location.hash='#faqHTML'">HTML</a>
    ...
    <h2 id="faqHTML">HTML</h2>
    <p>Hm, das ist ja eher ein Glossar hier ...</p>
    ...
    (leerzeichen zwischen java und script entfernen)


--------------------
Technikwürze - Design & Webstandards Podcast
Go to the top of the page
 
+Quote Post
Christian
Beitrag 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 mellow.gif . 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 sad.gif ...

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 ;-) -->
Go to the top of the page
 
+Quote Post
ketti
Beitrag 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
Go to the top of the page
 
+Quote Post
Christian
Beitrag 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 biggrin.gif .
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 ;-) -->
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 20.4.24 - 04:55

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.