zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Zeile ohne Link in array

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 05.06.2010, 07:44
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 25.07.2009
Ort: Wanne-Eickel
Beiträge: 223
TanjaP. befindet sich auf einem aufstrebenden Ast
Standard Zeile ohne Link in array

Moin,

ich versuche gerade auf meiner Seite die Deppenlinks zu entfernen; klappt soweit ganz gut, nur möchte ich gerne zwischen einzelnen Menüpunkten eine Zeile mit *** einfügen, um optisch Abstand zu erhalten.

Mein bisheriger Versuch:
PHP-Code:
<div id="extranavi">
            <div class="extramenutop">Bilder</div>
            <div class="extramenu">
                
<?php
$uri 
$_SERVER['REQUEST_URI'];
// alle Menüpunkte
$navi = array(
'/aktuell/2010/05mai/05.php'           => '2010',
'/aktuell/2009/11november/11.php'    => '2009',
'***'                                => '* * *',
'/aktuell/2008/12dezember/12.php'    => 'Dezember 08',
'/aktuell/2008/11november/11.php'    => 'November 08',
'/aktuell/2008/10oktober/10.php'    => 'Oktober ´08',
'/aktuell/2008/09september/09.php'    => 'September 08',
'/aktuell/2008/08august/08.php'        => 'August 08',
'/aktuell/2008/07juli/07.php'        => 'Juli 08',
'/aktuell/2008/06juni/06.php'        => 'Juni 08',
'/aktuell/2008/05mai/05.php'        => 'Mai 08',
'/aktuell/2008/04april/04.php'        => 'April 08',
'/aktuell/2008/03maerz/03.php'        => 'M&auml;rz 08',
'/aktuell/2008/02februar/02.php'    => 'Februar 08',
'/aktuell/2008/01januar/01.php'        => 'Januar 08',
'***'                                => '* * *',
'/aktuell/2007/12dezember/12.php'    => '2007',
'/aktuell/2006/12dezember/12.php'    => '2006',
'/aktuell/2005/12dezember/12.php'    => '2005',
'/aktuell/2004/12dezember/12.php'    => '2004',

);
echo 
'<ul class="zusatzmenu">'."\n";
foreach (
$navi as $href => $text)
{
    echo 
'<li>';
    
// wenn aufgerufene Seite identisch mit Navi-Link: strong statt Link
    
if ($uri == $href)
    {
        echo 
'<strong>'.$text.'</strong>';
    }
    else
    {
        echo 
'<a href="'.$href.'">'.$text.'</a>';
    }
    echo 
'</li>'."\n";
}
echo 
'</ul>'."\n\n";
?> 
                                </div>
            <div class="extramenubottom">.</div>
</div>
Leider wird die erste ***Zeile verlinkt und die zweite gar nicht angezeigt.
Online hier: Undercover-Coon's (ja, da hab ich im IE noch einen horizontal-patzer drin).
Was muss ich ändern, damit das klappt?
Tanja
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 05.06.2010, 09:24
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 12.07.2009
Beiträge: 969
rs-web befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<div id="extranavi">
            <div class="extramenutop">Bilder</div>
            <div class="extramenu">
                
<?php

    
{
        if(
$href == '***'){
        echo 
'***';
}else{
        echo 
'<a href="'.$href.'">'.$text.'</a>';
}
    }
Ich bin jetzt kein Experte aber so könnte es klappen. Hab jetzt leider keine Zeit es zu Testen
LG rs-web
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 05.06.2010, 10:15
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Bitte bitte lass das mit den Sternchen, das ist Murks.

Wenn du Abstand haben willst, dann mach einfach eine Leerzeile rein. Wenn du möchtest, kannst du auch einen Kommentar reinsetzen.


Edit:
Ups, das habe ich falsch verstanden.
Du möchtest, dass die Sternchen auf der Seite angezeigt werden? Dann gehören sie aber auch nicht als Zeichen in einen Listenpunkt, denn sie transportieren ja keinerlei Aussage. Da du die Punkte optisch absetzen möchtest, vermute ich mal, dass sie praktisch verschiedenen Bereichen angehören. Du könntest also für jeden Bereich eine eigene Liste aufbauen. Die Sternchen sollten in eine Hintergrundgrafik wandern.

Du könntest das Array dann zum Beispiel so in der Art umstrukturieren:
PHP-Code:
$navi = array(
    array(
        
'/aktuell/2010/05mai/05.php'           => '2010',
        
'/aktuell/2009/11november/11.php'    => '2009',
    ),
    array(
        
'/aktuell/2008/12dezember/12.php'    => 'Dezember 08',
        
'/aktuell/2008/11november/11.php'    => 'November 08',
        
'/aktuell/2008/10oktober/10.php'    => 'Oktober ´08',
        
'/aktuell/2008/09september/09.php'    => 'September 08',
        
'/aktuell/2008/08august/08.php'        => 'August 08',
        
'/aktuell/2008/07juli/07.php'        => 'Juli 08',
        
'/aktuell/2008/06juni/06.php'        => 'Juni 08',
        
'/aktuell/2008/05mai/05.php'        => 'Mai 08',
        
'/aktuell/2008/04april/04.php'        => 'April 08',
        
'/aktuell/2008/03maerz/03.php'        => 'M&auml;rz 08',
        
'/aktuell/2008/02februar/02.php'    => 'Februar 08',
        
'/aktuell/2008/01januar/01.php'        => 'Januar 08',
    ),
    array(
        
'/aktuell/2007/12dezember/12.php'    => '2007',
        
'/aktuell/2006/12dezember/12.php'    => '2006',
        
'/aktuell/2005/12dezember/12.php'    => '2005',
        
'/aktuell/2004/12dezember/12.php'    => '2004',
    )
); 
Dann müsstest du natürlich deine foreach noch entsprechend anpassen.

Geändert von inta (05.06.2010 um 10:24 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 05.06.2010, 11:51
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 25.07.2009
Ort: Wanne-Eickel
Beiträge: 223
TanjaP. befindet sich auf einem aufstrebenden Ast
Standard

Ihr haut mir hier ja Sachen um die Ohren - so als php-null ....

ich habe es jetzt hinbekommen, einfach nur das echo erweitern, wie rs-web geschrieben hatte, ging nur teilweise (die Listenpunkte waren dann alle doppelt und nur eine Zeile Sternchen).
Für den Vorschlag von Inta, die natürlich vollkommen Recht hat, das die Sternchen nichts in der Liste verloren haben, bin ich nicht fit genug in php.
Gelöst habe ich es jetzt so (die erste Sternchenreihe hat jetzt weniger * als die zweite, sonst hat er mir immer eine "weggelassen"):
PHP-Code:
<div id="extranavi">
            <div class="extramenutop">Bilder</div>
            <div class="extramenu">
                
<?php
$uri 
$_SERVER['REQUEST_URI'];
// alle Menüpunkte
$navi = array(
'/aktuell/2010/05mai/05.php'           => '2010',
'/aktuell/2009/11november/11.php'    => '2009',
'***'                        => '* * *',
'/aktuell/2008/12dezember/12.php'    => 'Dezember 08',
'/aktuell/2008/11november/11.php'    => 'November 08',
'/aktuell/2008/10oktober/10.php'    => 'Oktober ´08',
'/aktuell/2008/09september/09.php'    => 'September 08',
'/aktuell/2008/08august/08.php'        => 'August 08',
'/aktuell/2008/07juli/07.php'        => 'Juli 08',
'/aktuell/2008/06juni/06.php'        => 'Juni 08',
'/aktuell/2008/05mai/05.php'        => 'Mai 08',
'/aktuell/2008/04april/04.php'        => 'April 08',
'/aktuell/2008/03maerz/03.php'        => 'M&auml;rz 08',
'/aktuell/2008/02februar/02.php'    => 'Februar 08',
'/aktuell/2008/01januar/01.php'        => 'Januar 08',
'****'                                => '* * *',
'/aktuell/2007/12dezember/12.php'    => '2007',
'/aktuell/2006/12dezember/12.php'    => '2006',
'/aktuell/2005/12dezember/12.php'    => '2005',
'/aktuell/2004/12dezember/12.php'    => '2004',

);
echo 
'<ul class="zusatzmenu">'."\n";
foreach (
$navi as $href => $text)
{
    echo 
'<li>';
    
// wenn aufgerufene Seite identisch mit Navi-Link: strong statt Link
    
if ($uri == $href)
    {
        echo 
'<strong>'.$text.'</strong>';
    }
    
    elseif(
$href == '***')
  {
    echo 
'* * *';
  }
      elseif(
$href == '****')
  {
    echo 
'* * *';
  }
    else
    {
        echo 
'<a href="'.$href.'">'.$text.'</a>';
    }
    echo 
'</li>'."\n";
}
echo 
'</ul>'."\n\n";
?> 
                                </div>
            <div class="extramenubottom">.</div>
</div>
Ich hoffe, das diese Variante nicht ganz so falsch ist...
Danke für "auf den richtigen" Weg bringen
Tanja
Mit Zitat antworten
  #5 (permalink)  
Alt 05.06.2010, 14:44
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Zitat:
Zitat von TanjaP. Beitrag anzeigen
[…] die erste Sternchenreihe hat jetzt weniger * als die zweite, sonst hat er mir immer eine "weggelassen" […]
Der zweite Eintrag mit den Sternchen wird ignoriert, weil ein Schlüssel in einem Array immer eindeutig sein muss. Bei deinen Sternchen kannst du den Schlüssel aber auch einfach weglassen, es gibt ja keine URL.

So:
PHP-Code:
$navi = array(
'/aktuell/2010/05mai/05.php'           => '2010',
'/aktuell/2009/11november/11.php'    => '2009',
'* * *',
'/aktuell/2008/12dezember/12.php'    => 'Dezember 08',
[&
#8230;] 
Du müsstest dann aber zum Beispiel prüfen, ob $href eine Zahl ist (wird kein Key angegeben, dann wird ein fortlaufender numerischer Index für den Wert des Arrays vergeben):
PHP-Code:
if (is_numeric($href)) { 

Zitat:
Zitat von TanjaP. Beitrag anzeigen
Für den Vorschlag von Inta, die natürlich vollkommen Recht hat, das die Sternchen nichts in der Liste verloren haben, bin ich nicht fit genug in php.
Du musst deinen Code eigentlich nur wenig erweitern. Um deine bisherige foreach-Schleife müsste noch eine weitere herum, da das Array nun aus mehreren (zwei) Dimensionen besteht.

So könnte es zum Beispiel aussehen:
PHP-Code:
foreach ($navi as $nav) {
    echo 
'<ul class="zusatzmenu">'."\n";
    foreach (
$nav as $href => $text)
    {
        echo 
'<li>';
        
// wenn aufgerufene Seite identisch mit Navi-Link: strong statt Link
        
if ($uri == $href) {
            echo 
'<strong>'.$text.'</strong>';
        } else {
            echo 
'<a href="'.$href.'">'.$text.'</a>';
        }
        echo 
'</li>'."\n";
    }
    echo 
'</ul>'."\n\n";

Welche Lösung du vorziehst, musst du selbst entscheiden.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
URL mit XML in (X)HTML ausgeben blockmarc (X)HTML 17 05.06.2010 16:39
Definitionsliste in einer Floatumgebung *pi CSS 11 07.01.2009 18:34
Funktion gibt Array nicht zurück Schneemann Serveradministration und serverseitige Scripte 8 05.05.2008 01:14
Pre-Tag mit overflow: auto - Bug? (IE) RomanM CSS 3 26.12.2007 18:21
CSS Navigationsproblem thesecretboy CSS 0 12.04.2007 08:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:32 Uhr.