Seitenansicht

Tutorials von Thomas Frei-Herrmann

Tutorial Datenquelle Seitenansicht

Hier zunächst mal eine Ansicht meiner Seite “Datenquelle”.

 

Zieht Euch einen neuen Layout-Bereich auf, diesen benötigt Ihr als Datenquellenregion. Markiert diesen Layout-Bereich und hakt im

> Fenster  “Layout-Bereich-Eigenschaften” > “Datenquellenkontext” an > klickt anschließend auf den Button “DQ-Konfig.”

Es öffnet sich das Fenster “Datenquellenregion”. Dort wählt Ihr bei “Datensatzgruppe”, die für diese Seite erstellte Gruppe “Alle”, aus. Ich habe das alles in PHP (“Site-Einstellung”) gemacht und nicht mit Ajax. Lest zu Ajax bitte meine Bemerkungen im Vorwort.

Hier könnt Ihr dann auch noch einstellen, wieviele Datensätze pro Seite angezeigt werden sollen (hier 6).

Ich habe mir nun auf diesem neuen Layout-Bereich eine Tabelle aufgezogen um die einzelnen Felder besser positionieren zu können und habe dann die Bezeichnung der Felder hinein geschrieben und die einzelnen Felder (dargestellt durch Dummy) aus der Datenbank eingetragen.

Für die Auswahl der Datenbank-Felder klickt Ihr auf das Symbol mit dem “Blitz” der Datenquelle-Werkzeuge, wie unten im Bild dargestellt ...

... es öffnet sich sogleich das Fenster “Datenquellen” und Ihr wählt das Feld, das eingefügt werden soll.

Das Feld “Kommentar” habe ich in ein extra Textfeld eingefügt, das ich scrollbar gemacht habe. Wie man ein Textfeld scrollbar macht, könnt Ihr auf dieser Seite nachlesen. Nachträglich habe ich dann doch ein mehrzeiliges Eingabefeld genommen, da sonst die Umbrüche nicht korrekt dargestellt werden.

Für meine Buttons << (Erste Seite), < (Seite zurück), > (Seite vor) und >> (letzte Seite) habe ich jeweils ein Rechteck aufgezogen und dieses mit diesen spitzen Klammern beschriftet. Dann markiert Ihr das jeweilige Rechteck und klickt auf das dazugehörige Symbol in den
Datenquelle-Werkzeugen.

Falls Ihr ein Foto verwenden wollt, dann zieht zunächst einfach irgendein Foto auf der Seite auf und wählt dann (wie unten im Bild) für das Foto, das letztendlich angezeigt werden soll, wieder das Datenbankfeld bei “scr”. Löscht zunächst den lokalen Pfad, den NOF dort drin stehen hat und klickt anschließend auf den mittleren Button und wählt anstelle dessen das Datenbank-Feld (hier “foto”).

Ich wollte hier auch noch als Titel (bei Mausüber) den Vornamen und den Namen des jeweiligen Datensatzes anzeigen und habe diese bei “title” gewählt.

Da es bei der Komponente Datenquelle keine “IF-Bedingung” gibt und ich wollte, dass kein rotes Kreuz (kein Foto gefunden) bei Datensätzen angezeigt wird, die keine Foto-URL enthalten, habe ich diese IF-Bedingung händisch in die HTML des Fotos geschrieben.

> Fenster “Bild-Eigenschaften” > Button HTML

> Vor dem Tag (ab NOF 11 “vorher”) diesen Code (Ihr müsst den natürlich an Eure generierten Daten angleichen):

<?php if ($NOFDataSourceRS11292->getData("Mitglieder.foto", "LayoutBereich1") <> ""): ?>

> nach dem Tag (ab NOF 11 “nachher”):

<?php endif; ?>

... dies ist natürlich nicht im Sinne dieser Komponente von NOF geplant und ich habe mir diesen Code aus der “Bindung” des Bildes, die NOF generiert hat, abgeschrieben und für meine IF-Bedingung verwendet - also diese Variable ...

$NOFDataSourceRS11292

... und dann auch noch “Mitglieder.foto” als Datenbankfeld im “LayoutBereich1”.

Auch musste ich den Link zur Homepage editieren und habe noch das in ISO dargestellte Datum in ein deutsches Format konvertiert. Außerdem habe ich noch die Anzahl der Datensätze ermitteln wollen.

Für den Button “Ändern” habe ich mir wieder ein Rechteck erstellt und dies entsprechend beschriftet. Hier muss nun die entsprechende ID des gerade zu ändernden Datensatzes an meine Seite “Datensatz-Edit” übergeben werden.

Markiert das Rechteck und klickt in den Datenquelle-Werkzeugen auf den Button “Datensatz bearbeiten” (mit dem kleinen Bleistift) ...

... es öffnet sich das Fenster “Link” und Ihr wählt Eure Seite zum ändern des Datensatzes (hier “Datensatz-Edit”). Wir Ihr unten im Bild erkennen könnt, hat NOF durch die Verwendung dieses Werkzeuges bereits meine URL-Variable “pkid” als Parameter eingetragen, dadurch wird dann auf der verlinkten Seite der richtige Datensatz mit dieser ID angezeigt.

Für den Button “Löschen” habe ich auch ein Rechteck erstellt und hier lediglich auch einen Link, wie beim ändern, mit der gleichen “pkid” gesetzt, um auf meine Seite “Datensatz-Loeschen” zu gelangen.

Für den Button “Neuer Datensatz” (oder auch mein Navi-Button “Hinzufügen”) verlinke ich lediglich auf meine Seite “Datensatz-Neu”.



Noch etwas zu meinem Link (URL) des Feldes “Homepage”


Da NOF um einen Link automatisch eine URL konfiguriert und in meiner MySQL-Datenbank bereits die vollständige URL eingetragen ist, hatte ich ein Problem der korrekten Verlinkung. Daher habe ich mir hier so beholfen:

Nachdem Ihr mit dem Datenquelle-Werkzeug “Feld einfügen” den Dummy aus dem Feld “Homepage” erzeugt habt, markiert Ihr diesen und klickt im Eigenschaften-Fenster auf den Button “Link”. Dort wählt Ihr:

> Linktyp “Externer Link” > Neuer Link “(ohne)” > Button “DQ” das Feld “Homepage” > Button “OK”

... anschließend klickt Ihr im gleichen Fenster “Link” auf den Button “HTML”, der von NOF generierte Code sieht dann so aus wie unten.

Der von mir editierte Code sieht dann so aus wie im Bild unten (meine Änderungen hellblau hinterlegt). Ich habe also einen neuen Link um die von NOF generierte Datenbindung gelegt. Ich stelle also den Inhalt meine Feldes “Homepage” mittels eines PHP “echo” Befehls dar. Ihr müsst dann auch hier wieder die Variable “$NOFDataSource” sowie das Datenfeld und den Layoutbereich Eurer Konfiguration anpassen.

Der obere markierte Bereich liegt dann also  “vor dem Tag”, der untere “nach dem Tag”.

Hier nochmals mein Code:

vor dem Tag” (ab NOF 11 “vorher”)

<a href="<?php echo $NOFDataSourceRS11292->getData('Mitglieder.Homepage', 'LayoutBereich1'); ?>" target="_blank">
<?php echo $NOFDataSourceRS11292->getData('Mitglieder.Homepage', 'LayoutBereich1'); ?></a>

<?php /*

nach dem Tag” (ab NOF 11 “nachher”)

*/
?>



Datum in deutsches Format umsetzen

Da der “timestamp” Befehl das Datum mit Zugrundelegung der Reihenfolge nach ISO 8601/DIN 5008 in meine Datenbank schreibt, wollte ich das gerne in ein deutsches Format ändern. Also von z.B.:

2011-09-05 12:10:55

wie ich es auf meiner Startseite, wenn Ihr auf den Button “Ändern” klickt, noch zu stehen habe in

05.09.2011 12:10 Uhr

ändern. Hierzu habe ich ein eigenes PHP-Skript (unten), anstelle des Dummy Feldes “Datum”, in die HTML eines Textfeldes kopiert.
Meine Kommentare zu diesem Skript in blau.

Mittles der PHP-Funktion explode werden hier die einzelnen Datums-Teile getrennt und neu zusammengestellt.

> Textfeld aufziehen > im Fenster “Textfeld-Eigenschaften” oben auf den dritten Button von links > “Text” klicken
> und anschließend auf den Button “HTML” und das Skript einfügen. Hier sieht das so aus:

<?php

// hier wird die Datenquelle meines Datum-Feldes ausgelesen,
// diese DataSource (RS11292) müsst Ihr an Eure Variable anpassen, wie auch das Datenbankfeld und Layoutbereich

$MySQLDatum = $NOFDataSourceRS11292->getData("Mitglieder.Datum", "LayoutBereich1");

// hier wird mittels der PHP-Funktion "explode" als "delimiter" ein Leerzeichen definiert
$TeilDatum = explode(' ', $MySQLDatum);

// Variable gründen für das Datum, Teil vor dem Leerzeichen (Datum)
// z.B.: 2011-09-05

$DatumEN = $TeilDatum[0];

// Variable gründen für das Datum, Teil nach dem Leerzeichen (Uhrzeit)
// z.B.: 12:10:55

$ZeitmitSekunden = $TeilDatum[1];

// Variable gründen um Jahr-Monat-Tag einzeln zu erkennen mit dem delimiter "-"
$TeilDatumEN = explode('-', $DatumEN);

// Variable gründen um die Zeit mit delimiter ":" in Stunden:Minuten:Sekunden zu trennen
$TeilZeitmitSekunden = explode(':', $ZeitmitSekunden);

// Variable gründen um die einzelnen Datums-Teile in das deutsche Format neu zu ordnen
// Tag.Monat.Jahr

$DatumDE = $TeilDatumEN[2] . '.' . $TeilDatumEN[1] . '.' .$TeilDatumEN[0];

// Variable gründen um die Zeit ohne Sekunden anzuzeigen
// Stunden:Minuten

$ZeitohneSekunden = $TeilZeitmitSekunden[0] . ':' . $TeilZeitmitSekunden[1];

// Variable zur Anzeige mittels echo-Befehl gründen
$DatumAnzeige = $DatumDE . ' ' . $ZeitohneSekunden . ' Uhr';

// umgesetztes Datum anzeigen
echo $DatumAnzeige;

?>



Anzahl der Datensätze meiner Datenbank

... außerdem wollte ich noch die Anzahl der Datensätze in meiner MySQL-Datenbank ermitteln. Auch hier müsst Ihr wieder die “DataSource” Variable und den Layoutbereich anpassen.

Dazu hat Klaus2 die Variable “resultCount” in dem NOF-Skript “recordset.php” in Zeile 31 finden können, die ich dann in diesem “echo” Befehl verwendet habe:

<?php
      echo $NOFDataSourceRS11292->resultCount["LayoutBereich1"];
?>

nach oben

diese Seite weiter empfehlen



Counter Statistik