Benutzerdefinierte Anzeige von Codeabschnitten

Begonnen von SvenW, 14 September 2008, 14:12:49

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

SvenW

Zitat von: JoergK am 27 August 2008, 18:37:32
Stimmt soweit, kannst aber auch die daraus abgeleitete Konstante MX_IS_ADMIN verwenden. Das spart Resourcwen, da diese bereits initialisiert und global verfügbar ist. Beispiel:
if (MX_IS_ADMIN) {
    // Das hier darf nur ein Admin
} else {
    // Das hier dürfen alle oder gibt z.B. ne Fehlermeldunf aus
}




Hallo :red:,

ich habe da noch eine Frage zu den Benutzerdefinierten Krams. Ich habe sehr viele Modifikationen wo ich das ohne "} else {" angeben habe und ich frage mich, ob ich das alles ändern muss. Das geht bei mir im Theme schon los. Funktionieren tut es aber auch ohne"} else {".

Ist das evtl. zur verbesserten Lesbarkeit des gesamten Codes?


:bye2:

SvenW

Einige Leuts fragen sich bestimmt wie ich immer das eine oder andere hin bekomme und nun so dumme Fragen stelle.

Ganz einfach, ich kann nicht wirklich programmieren und verschiebe nur identische Codeabscnitte von A nach B und ändere gegebenenfalls ab. Wenn nichts angezeigt wird, versuche ich das mit dem Debug-Modus herauszufinden und fummel weiter.

Danach schnappe ich mir den Tidy und schau nochmal ob der meckert und optimiere weiter.

Mal mit grossem Erfolg mal weniger, da ich den Krams eigentlich nicht verstehe...  :BD:

Andi

schön´s Grüssle, Andi

SvenW

Also habe ich teilweise fehlerhaften Code und sollte das ändern?


Nachfolgendes Beispiel funzt auch ohne! Siehe: "// Ab HIER können auch alle ohne } else {sehen//"

    if (MX_IS_ADMIN || MX_IS_USER) {
        $unav['workshop'] .= $unav_trenner;
    $unav['workshop'] .= "<a href=\"modules.php?name=workshop&act=thumbnails&album=lastcom&cat=$cat\" title=\"Zeige die neuesten Kommentare an\">Neue Kommentare</a>";

    $unav['workshop'] .= $unav_trenner;
    $unav['workshop'] .= "<a href=\"modules.php?name=workshop&act=upload\" title=\"Ein Bild in die Workshop-Galerie hochladen? Dann hier klicken...\">Bild hochladen</a>";
}// Ab HIER können auch alle ohne } else {sehen//
    $unav['workshop'] .= $unav_trenner;
    $unav['workshop'] .= "<a href=\"modules.php?name=workshop&act=thumbnails&album=toprated&cat=$cat\" title=\"Zeige die am besten bewerteten Bilder an\">Am besten bewertet</a>";
        $unav['workshop'] .= $unav_trenner;
        $unav['workshop']                  .= "<a href=\"modules.php?name=workshop&act=thumbnails&album=favpics\" title=\"Zeige meine Favoriten an\">Favoriten</a>";
    $unav['workshop'] .= $unav_trenner;
    $unav['workshop'] .= "<a href=\"modules.php?name=workshop&act=search\" title=\"Durchsuche die Workshopgalerie\">Bildersuche</a>";
}

SvenW

Also wenn mir jemand sagen würde, ob ich es so lassen oder doch lieber ändern soll... wäre das sehr nett! Wie schon geschrieben habe ich von der Ganzen Materie keinen Plan. Viel php Materie lesen bringt mir leider auch nichts, da es gesundheitlich leider oft nicht möglich ist und lange Passagen bei mir keinen Sinn ergeben.

Andi

Moin :)

Zitatob ich es so lassen oder doch lieber ändern soll

Funktioniert es wie es soll, dann scheint es ok zu sein ;)


Entscheidend bei der Frage ob mit oder ohne Klammern ist in der Doku das:
ZitatOft werden Sie die bedingte Ausführung von mehr als einer Anweisung wollen. Selbstverständlich ist es nicht erforderlich, jede Anweisung mit einer if-Bedingung zu versehen. Statt dessen können Sie mehrere Anweisungen in Gruppen zusammenfassen. Der folgende Programm-Code

Mit der Gruppierung sind die geschweiften Klammern gemeint.
Soll die Bedingung für mehrere zeilen wirksam sein, dann brauchst du Klammern unbedingt.

<?php
if ($a $b) {
    print 
"a ist groesser als b";
    
$b $a;
}
?>


Soll die Bedingung nur für eine Zeile wirksam sein, kannst du Klammern verwenden, brauchst es aber nicht:
<?php
if ($a $b)
    echo 
"a ist groesser als b";

if (
$a $b) {
    echo 
"a ist groesser als b";
}

if (
$a $b) echo "a ist groesser als b";

?>
alle drei Schreibweisen bewirken das Gleiche

Um das Beispiel weiterzuführen:
<?php
if ($a $b) {
    print 
"a ist groesser als b";
}
$b $a;
?>

ist wieder das Gleiche:
<?php
if ($a $b)
    print 
"a ist groesser als b";
$b $a;
?>


In Deinem Code:
<?php
 
if (MX_IS_ADMIN || MX_IS_USER) {
        
$unav['workshop'] .= $unav_trenner;
    
$unav['workshop'] .= "<a href=\"modules.php?name=workshop&act=thumbnails&album=lastcom&cat=$cat\" title=\"Zeige die neuesten Kommentare an\">Neue Kommentare</a>";

    
$unav['workshop'] .= $unav_trenner;
    
$unav['workshop'] .= "<a href=\"modules.php?name=workshop&act=upload\" title=\"Ein Bild in die Workshop-Galerie hochladen? Dann hier klicken...\">Bild hochladen</a>";
}
// Ab HIER können auch alle ohne } else {sehen// 
    
$unav['workshop'] .= $unav_trenner;
    
$unav['workshop'] .= "<a href=\"modules.php?name=workshop&act=thumbnails&album=toprated&cat=$cat\" title=\"Zeige die am besten bewerteten Bilder an\">Am besten bewertet</a>";
        
$unav['workshop'] .= $unav_trenner;
        
$unav['workshop']                  .= "<a href=\"modules.php?name=workshop&act=thumbnails&album=favpics\" title=\"Zeige meine Favoriten an\">Favoriten</a>";
    
$unav['workshop'] .= $unav_trenner;
    
$unav['workshop'] .= "<a href=\"modules.php?name=workshop&act=search\" title=\"Durchsuche die Workshopgalerie\">Bildersuche</a>";
?>


Werden bis hier }// Ab HIER können auch alle ohne } else {sehen// , die Links nur den Usern und Admins angezeigt, die Zeilen danach, sehen alle Besucher.

Wobei die letzte geschweifte Klammer zuviel ist und vermutlich einen Parsefehler verursacht. Die gehörte wohl zu dem jetzt auskommentierten else-Zweig.



Also, ob du Klammern verwendest, oder nicht, ist von den Umständen abhängig. Dort wo es nicht zwingend nötig ist, ist es Geschmacksache.
Ich persönlich habe mir angewöhnt, die Klammern immer zu verwenden, es ist einfach prozess-sicherer....
schön´s Grüssle, Andi

SvenW

Zitat von: Andi am 14 September 2008, 19:31:07
Moin :)
Werden bis hier }// Ab HIER können auch alle ohne } else {sehen// , die Links nur den Usern und Admins angezeigt, die Zeilen danach, sehen alle Besucher.

Wobei die letzte geschweifte Klammer zuviel ist und vermutlich einen Parsefehler verursacht. Die gehörte wohl zu dem jetzt auskommentierten else-Zweig.


Nö, läuft so ohne Parsefehler...


Zitat von: Andi am 14 September 2008, 19:31:07
Also, ob du Klammern verwendest, oder nicht, ist von den Umständen abhängig. Dort wo es nicht zwingend nötig ist, ist es Geschmacksache.
Ich persönlich habe mir angewöhnt, die Klammern immer zu verwenden, es ist einfach prozess-sicherer....

Also doch wegen der verbesserten Lesbarkeit. Da ich auf meiner Page alle Module offen habe und nur Teile mit dem oberen Code geschützt habe, werde ich das dann mal lieber alles überarbeiten.

Für die 2.0 würde ich mir wünschen, dass die Mitglieder entscheiden könnten ihr Profil für Gäste freizuschalten oder dieses zu verstecken.

Gruß und Danke!  ;)




SvenW

Ich brauche einen Editor, der solche evtl. Ungereimtheiten hervor hebt.  :BD:
Klappt momentan bei mir nur mit html Dateien. Wobei ich da auch immer recherchieren muss, wie ich das genau ändern muss.

Andi

Jop, ne gescheite Syntax-Hervorhebung ist Gold wert.  :drinks:

Gugg mal, beide kostenlos, beide sehr empfehlenswert:

einfach: http://notepad-plus.sourceforge.net/de/site.htm
etwas spezieller: http://www.pspad.com/de/
schön´s Grüssle, Andi