Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 21. März 2011 12:19

conceptbay
probiert CMS/ms aus
Ort: Essen
Registriert: 12. November 2010
Beiträge: 30
Webseite

Anker-Links in Navigation & News-Modul

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

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: Anker-Links in Navigation & News-Modul

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.

Offline

#3 22. März 2011 09:53

conceptbay
probiert CMS/ms aus
Ort: Essen
Registriert: 12. November 2010
Beiträge: 30
Webseite

Re: Anker-Links in Navigation & News-Modul

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. monkey

Beitrag geändert von conceptbay (22. März 2011 13:41)

Offline

#4 23. März 2011 12:24

conceptbay
probiert CMS/ms aus
Ort: Essen
Registriert: 12. November 2010
Beiträge: 30
Webseite

Re: Anker-Links in Navigation & News-Modul

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.436

Re: Anker-Links in Navigation & News-Modul

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
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#6 23. März 2011 17:55

conceptbay
probiert CMS/ms aus
Ort: Essen
Registriert: 12. November 2010
Beiträge: 30
Webseite

Re: Anker-Links in Navigation & News-Modul

Danke für den Tipp - das regex_replace kannte ich noch gar nicht.
Man lernt ja nie aus :-)

Offline