Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
- Links zu: Aktiven | Unbeantworteten
- Übersicht
- »
- »
1
#1 21. März 2011 12:19
- conceptbay
- probiert CMSMS aus

- Ort: Essen
- Registriert: 12. November 2010
- Beiträge: 30
- Webseite
Re:
Hallo zusammen,
ich hoffe, ich eröffne den Thread hier im richtigen Forum - wenn nicht, einfach verschieben ;-)
Ich sitze gerade an folgender Aufgabe:
Wir haben ein umzusetzendes Design, welches in zwei Bereiche aufgeteilt ist:
Der obere Teil besteht aus einer Grafik, die 90% Höhe und 100% Breite des Browserfensters einnimmt.
Darunter befindet sich dann der eigentliche Inhaltsbereich der Seite, mit Texten, Bilder, News etc.
Alles ist aufgesetzt und funktioniert, bis auf eine Kleinigkeit:
Sobald der Besucher der Seite auf einen Seiten-Link im unteren Bereich klickt, wird er zur nächsten Seite geführt, aber
(natürlich) wieder an das obere Ende der Seite, d.h. er hat wieder die Grafik vor sich. Das ist natürlich suboptimal, weil dann erst wieder
auf den "Nach-unten-Link" geklickt werden muss.
Ich versuche jetzt schon geraume Zeit, herauszufinden, wie ich einen Standardlink, aber auch die Links aus dem Newsmodul
(die "Weiterlesen.."-Links) mit einem Anker-Tag zu versehen, sodass die Seite direkt an der Stelle mit Beginn des Inhaltsbereiches
geladen wird.
Habe auch schon im Netz recherchiert, aber nichts wirklich brauchbares gefunden.
Meiner Idee nach müsste doch es möglich sein, in der "news/action.default.php" an der Stelle "#CreateLink" einen Anker zu implementieren,
und das gleiche auch für die Standard-Links einzubauen, allerdings finde ich den "Einstiegspunkt" dazu nicht...
Sehe ich den Wald vor lauter Bäumen nicht, und hat jemand eine Idee, wie ich das lösen kann?
Danke im voraus! :-)
Offline
#2 21. März 2011 13:14
- cyberman
- Moderator

- Ort: Dohna / Sachsen
- Registriert: 13. September 2010
- Beiträge: 6.741
- Webseite
Re:
Der Link wird doch im MenuManager zusammengebaut ... da solltest du doch einfach einen Anker anhängen können, also href="{$node->url}#content" - mit der API-Funktion CreateLink sollte ähnliches möglich sein.
1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi
Offline
#3 22. März 2011 09:53
- conceptbay
- probiert CMSMS aus

- Ort: Essen
- Registriert: 12. November 2010
- Beiträge: 30
- Webseite
Re:
Hallo cyberman,
danke für Deine schnelle Antwort, ich bin leider noch nicht dazu gekommen, das auszuprobieren - werde mich aber im Laufe des Tages daran machen.
----
So, hat alles geklappt, allerdings auf Umwegen.
Die Anpassung im Menümanager war kein Thema, das Newsmodul war ein wenig hakeliger.
Um einen Anker an einen Newslink zu hängen, habe ich in der Datei "lib/classes/module_support/modform.inc.php" bei
if ($returnid != '')
{ $text .= '&'.$id.'returnid='.$returnid.'#anker';
if ($inline) {
....
das "#anker" an den String angehängt.
Jetzt springen die News da hin, wo sie sollen. 
Beitrag geändert von conceptbay (22. März 2011 13:41)
Offline
#4 23. März 2011 12:24
- conceptbay
- probiert CMSMS aus

- Ort: Essen
- Registriert: 12. November 2010
- Beiträge: 30
- Webseite
Re:
Hier noch ein kleiner Nachtrag:
Ich habe festgestellt, dass die Seiten-Links bei einer Galerie (die |1|2|3|-Links) das Argument #anker mitten im Link-String steht, daher musste ich eine weitere Abfrage einbauen, die folgendermaßen aussieht:
if($modinstance->GetName() =='News')
{
$text .= '/'.$goto.'?mact='.$modinstance->GetName().','.$id.','.$action.','.($inline == true?1:0).$secureparam;
foreach ($params as $key=>$value)
{
$key = cms_htmlentities($key);
$value = cms_htmlentities($value);
if ($key != 'module' && $key != 'action' && $key != 'id')
$text .= '&'.$id.$key.'='.rawurlencode($value);
}
if ($returnid != '')
{
$text .= '&'.$id.'returnid='.$returnid.'#top';
if ($inline)
{
$text .= '&'.$config['query_var'].'='.$returnid;
}
}
}
else
{
$text .= '/'.$goto.'?mact='.$modinstance->GetName().','.$id.','.$action.','.($inline == true?1:0).$secureparam;
foreach ($params as $key=>$value)
{
$key = cms_htmlentities($key);
$value = cms_htmlentities($value);
if ($key != 'module' && $key != 'action' && $key != 'id')
$text .= '&'.$id.$key.'='.rawurlencode($value);
}if ($returnid != '')
{
$text .= '&'.$id.'returnid='.$returnid;
if ($inline)
{
$text .= '&'.$config['query_var'].'='.$returnid.'#top';
}
}
}
}
Dafür muss der darunterliegende Abschnitt
foreach ($params as $key=>$value)
{
$key = cms_htmlentities($key);
$value = cms_htmlentities($value);
if ($key != 'module' && $key != 'action' && $key != 'id')
$text .= '&'.$id.$key.'='.rawurlencode($value);
}
if ($returnid != '')
{
$text .= '&'.$id.'returnid='.$returnid;
if ($inline)
{
$text .= '&'.$config['query_var'].'='.$returnid';
}
}
}
entfernt werden (steht ja schon darüber in der Schleife).
Vielleicht hilft´s ja wem weiter - wenn jemand daran weiter optimieren kann, freue ich mich natürlich :-)
Offline
#5 23. März 2011 14:32
- NaN
- Moderator

- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.058
Re:
Am Modul oder am Core würde ich deswegen nicht unbedingt etwas verändern.
Man könnte auch im Template mit Smarty und dem Modifikator regex_replace an das href-Attribut den Anker anhängen.
Module: GBFilePicker, AdvancedContent, FEUMailer
Plugins: AjaxTools, XajaxTools
Sicherheit: Beispiel .htaccess-Datei
Offline
#6 23. März 2011 17:55
- conceptbay
- probiert CMSMS aus

- Ort: Essen
- Registriert: 12. November 2010
- Beiträge: 30
- Webseite
Re:
Danke für den Tipp - das regex_replace kannte ich noch gar nicht.
Man lernt ja nie aus :-)
Offline
1
- Übersicht
- »
- »