Teil 6
Die Hauptnavigation:Zeile 151 bis 172
####
# Zeile vor Hauptnavi
echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"801\" align=\"center\" border=\"0\">";
echo "<tbody><tr>";
echo "<td valign=\"center\" align=\"middle\"><img height=\"1\" src=\"themes/maaX_Micro_platinblack/images/pixel.gif\" width=\"100%\" border=\"0\"></td>";
echo "</tr></tbody>";
echo "</table>";
# Zeile Hauptnavi
echo "<table cellpadding=\"1\" cellspacing=\"0\" align=\"center\" width=\"801\" border=\"0\" bgcolor=\"$bgcolor2\"><tr><td>\n";
echo "<table cellpadding=\"1\" cellspacing=\"0\" align=\"center\" width=\"100%\" border=\"0\" bgcolor=\"$bgcolor3\"><tr>"
."<td align=\"left\" width=\"85%\" valign=\"middle\"><img height=\"2\" src=\"themes/maaX_Micro_platinblack/images/pixel.gif\" width=\"1\">";
echo "\n"
."<A href=\"./\"><img src=\"themes/maaX_Micro_platinblack/images/home.gif\" border=0></a>\n"
."<A href=\"modules.php?name=Your_Account\"><img src=\"themes/maaX_Micro_platinblack/images/loginlogout.gif\" border=0></a>\n"
."<A href=\"modules.php?name=Topics\"><img src=\"themes/maaX_Micro_platinblack/images/themen.gif\" border=0></a>\n"
."<A href=\"modules.php?name=Submit_News\"><img src=\"themes/maaX_Micro_platinblack/images/beitrag.gif\" border=0></a>\n"
."<A href=\"modules.php?name=Downloads\"><img src=\"themes/maaX_Micro_platinblack/images/downloads.gif\" border=0></a>\n"
."</td>\n"
."<td align=\"right\" width=\"15%\" valign=\"middle\">\n"
."<script type=\"text/javascript\">\n\n"
."<!-- // Array ofmonth Names\n"
."var monthNames = new Array( \""._JANUARY."\",\""._FEBRUARY."\",\""._MARCH."\",\""._APRIL."\",\""._MAY."\",\""._JUNE."\",\""._JULY."\",\"".
_AUGUST."\",\""._SEPTEMBER."\",\""._OCTOBER."\",\""._NOVEMBER."\",\""._DECEMBER."\");\n"
."var now = new Date();\n"
."thisYear = now.getYear();\n"
."if(thisYear < 1900) {thisYear += 1900}; // corrections if Y2K display problem\n"
."document.write(monthNames[now.getMonth()] + \" \" + now.getDate() + \", \" + thisYear);\n"
."// -->\n\n"
."</script>\n\n"
."</td></tr></table>\n</td></tr></table>\n";
####
Die Navigation wird mit einer kleinen Optischen Spielerei begonnen. Hier wird wieder eine Tabelle geöffnet um eine Grafik über die Tabellenbreite darstellen zu können. Es handelt sich hier tatsächlich um eine Grafik, die 1 x 1px groß ist und transparent. Diese ist nie zu sehen, wird aber benötigt um definierte Abstände zwischen Tabellen oder Grafiken zu bringen. Nun entsteht der Eindruck, auf Grund des Hintergrundbildes, das diese kleine Leerzeile sich nach rechts hin verjüngt, also schmaler wird und einen Farbverlauf imitiert. Nach dem Pixel wird die Tabelle wieder geschlossen.
Diese Optische Täuschung wird noch verstärkt durch die nachfolgende Tabelle, die wieder doppelt geschrieben wird. Die erste Tabelle mit blauem Hintergrund ($bgcolor2), die zweite Tabelle mit einem px Abstand zur ersten und schwarz ($bgcolor3). Dadurch entseht dieser ein Pixel bereite Rahmen, der die Tabelle mit den Grafiken umschließt. Wie man sieht, manches mal ist es recht witzig, einfach mal das Zusammenspiel zwischen Grafik, Hintergrund und Tabelle zu beobachten. Wobei hier $bgcolor3 eigentlich falsch ist. Der Ordnung halber sollte entweder die Kombination $bgcolor 1 + 2 bzw. 3 und 4 benutzt werden.
In der Tabelle mit der Hauptnavigation, Tabellenbreite 801px, Spaltenbreite(1) von 85%, Downloads, Your Account, Submit News etc. sind die ersten Hauptlinks in die Webseite grafisch dargestellt. Wichtig ist hier auf jeden Fall die Grafiken mit {border=\"0\"} auszustatten. Ansonsten würde ein recht unschöner Linkrahmen um die Grafiken gezogen werden. In der zweiten Spalte wird mit Hilfe eines Java Scriptes das aktuelle Datum eingefügt, Breite 15%. Auch hier wieder der Hinweis, den Pfad zur Themengrafik könnte man wieder mit der Variablen $thename ersetzen.
Das Admin MenüDas Admin Menü hat einige ausgewählte Links im Schnellzugriff zur Administration der Webseite. Auch informiert es über neu eingegangene Artikel, Links oder dergleichen.
Zeile 179 bis 218
####
if (is_admin($admin)) {
# Linie
echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"800\" align=\"center\" bgcolor=\"$bgcolor2\" border=\"0\">\n";
echo "<tbody><tr>\n";
echo "<td valign=\"center\" align=\"middle\"><img height=\"3\" src=\"themes/maaX_Micro_platinblack/images/titleBar.gif\" width=\"100%\" border=\"0\"></td>\n";
echo "</tr></tbody></table>\n";
echo "<table cellpadding=\"0\" cellspacing=\"0\" width=\"800\" border=\"0\" align=\"center\" bgcolor=\"$bgcolor3\"><tr>\n";
echo "<td align=\"center\" colspan=\"0\"><a href=\"admin.php\">Administration</a>\n";
$res=sql_query("select qid from $prefix"._queue."", $dbi);
$num = sql_num_rows($res, $dbi);
echo " | <a href=\"admin.php?op=submissions\">Neue News: $num</a>\n";
$res=sql_query("select lid from $prefix"._links_newlink."", $dbi);
$num = sql_num_rows($res, $dbi);
echo " | <a href=\"admin.php?op=Links\">Neue Links: $num</a>\n";
$res=sql_query("select lid from $prefix"._downloads_newdownload."", $dbi);
$num = sql_num_rows($res, $dbi);
echo " | <a href=\"admin.php?op=downloads\">Neue Downloads: $num</a>\n";
# Galleria Admin
# $res=sql_query("select pid from $prefix"._gallery_pictures_newpicture."", $dbi);
# $num = sql_num_rows($res, $dbi);
# echo " | <a href=\"admin.php?op=GallAdmin\">Neue Bilder: $num</a>\n";
# Kalender Admin
# $res=sql_query("select qid from $prefix"._events_queue."", $dbi);
# $num = sql_num_rows($res, $dbi);
# echo " | <a href=\"admin.php?op=CalendarAdmin\">Neue Termine: $num</a>\n";
echo " | <a href=\"admin.php?op=messages\">AdminMessage</a>\n";
echo " | <a href=\"admin.php?op=Configure\">Einstellungen</a>\n";
echo " | <a href=\"admin.php?op=logout\">Logout</a>\n\n";
echo "</font></td>";
echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"800\" align=\"center\" bgcolor=\"$bgcolor3\" border=\"0\">";
echo "<tbody><tr>";
echo "<td valign=\"center\" align=\"middle\"><img height=\"3\" src=\"themes/maaX_Micro_platinblack/images/titleBar.gif\" width=\"100%\" border=\"0\"></td>";
echo "</tr></tbody>";
echo "</table>";
} else {
// echo "";
}
####
Die Programmierung des Admin Menüs sieht weitaus komplizierter aus als es ist. Gleich zu Anfang finden wir eine if Abfrage;
{ if (is_admin($admin)) } ... die Funktion is_admin wird hier aufgerufen und der Parameter $admin an diese Funktion weitergegeben. Zu finden ist diese Funktion in der mainfile.php und hat keine andere Aufgabe, als zu prüfen ob man als Administrator der Webseite eingeloggt ist. Wenn nicht, dann wird { else } in Funktion treten und nichts machen. Springt demzufolge ohne abarbeiten zur eigentlichen Webseite, dem Anzeigen der Blöcke und des Contents.
In dem Fall das der Admin eingeloggt ist, wird als erstes eine Linie unter die bisherigen Tabellen in Form einer Grafik gezogen. Ich wollte das Menü ein wenig abgrenzen und sichtbarer machen. Auch hier benutze ich mich wieder eines kleinen "Schwindels" und benutze die Balkengrafik. Nur das ich diese jetzt nicht nur auf 100% Tabellenbreite bringe, sondern auch etwas stauche, auf 3px Höhe. So nutzt man ein und dieselbe Grafik ohne diese zig mal an den Besucher übertragen zu müssen. Siehe den Punkt Traffic der Webseite. Nachdem die Tabelle geschlossen wurde, geht es übergangslos zur nächsten Tabelle, der eigentlichen Admin Anzeige.
Eine Tabelle wird eröffnet, die mit 800px Breite und schwarzem Hintergrund definiert wurde. Ebenso soll sie keinen Abstand zum Rand haben dürfen. Sich also eng anliegend an den zuvor gezogenen Balken schmiegen.
Jetzt kommen die ersten Links zum Admin Menü. Als erstes das Admin Menü über den Link { <a href=\"admin.php\">Administration</a> }. Im weiteren sind einige Tabellenabfragen nach Neueingängen Der Links, Content oder anderem eingefügt. Ich beschreibe hier nur einen Link, da sich der Rest nur insofern unterscheidet, das er eine andere Tabelle ansprechen muss und einen anderen Inhalt auslesen.
Als erstes muss man selbst definieren was man angezeigt haben will. Hier sollen neue Artikel ins Auge fallen und geben einem eine Übersicht über die Anzahl. Das erreicht man mit folgendem Aufruf;
{$res=sql_query("select qid from $prefix"._queue."", $dbi);}
- $res = Resultat der Abfrage
- sql_query = Funktion (mysql_query) ? Suche aus Wert:
- select = der Spalte in der:
- $prefix"._queue." = $prefix aus config.php + Tabellen Name = Tabelle
- $dbi = Authentifizierung an der DB (wird zusammengesetzt in der mainfile.php)
Als nächstes benötigen wir die Anzahl der neuen Einträge.
{ $num = sql_num_rows($res, $dbi); }
- $num = die Nummer, könnte ebenso $res sein, weil ich diese Variable nicht mehr benötigen würde und die in der nächsten Abfrage ja wieder neu beschrieben wird.
- Sql_num_rows = Funktion (mysql_num_rows) suche Anzahl der eingetragenen Werte in:
- $res = der Variablen (Array) und schreibe die Anzahl in $num
- $dbi = Authentifizierung
Nun habe ich den aktuellen neuen Wert, wie viele neue Artikel der Admin Freischalten kann. In folgender Zeile wird dann das Ergebnis mitsamt dem Link geschrieben.
{ echo " | <a href=\"admin.php?op=submissions\">Neue News: $num</a>\n"; }
Ich denke hier muss ich nicht näher mehr darauf eingehen, was die einzelnen Angaben zu bedeuten haben. Nachfolgend wird ebenso verfahren. Alles entspricht, bis auf den Link selbst und den Abfragen dem selben Schema.
Nachdem man nun alles das eingetragen hat was man selbst im Schnellzugriff als Admi haben möchte, wir die Tabelle geschlossen, die nachfolgende Abschlusslinie gezogen und der Seitenkopf ist nun komplett fertig. Jetzt wird es richtig spannend. Die Webseite wir mit ihren Informationen zusammengestellt. Aber vorher hab ich eine Frage an die Mitleser ,o)
Wenn keine neuen Artikel gepostet wurden, ist die Anzeige "null". Was müsste man tun, um ein übersehen der neuen Artikel zu vermeiden? Wie muss man es anstellen um eine farbliche Änderung der Zahl oder des Links zu erreichen, damit man sofort auf neues aufmerksam gemacht wird? Schickt mir mal, per Page Message, die Codeschnipsel so wie ihr es anstellen würdet ;o).
To be continued
Mirko
Zum nachlesen und ausdruckenDatei ist ein PDF und wird sofort geöffnet.
Der Acrobat Reader ist dafür notwendig!
(237kb)
[Editiert am 21/12/2002 von SiteAdmin Micro]