Fortschrittsbalkens mit PHP

ProgressClass stellt eine PHP-Klasse für die dynamische Anzeige und Veränderung eines Fortschrittsbalkens zur Verfügung.

ProgressClass

Download
Den Quellcode gibts hier

In einem Fenster im Windows-Stil kann noch während der Laufzeit des Scripts der Fortschritt angezeigt werden, z.B. beim Laden/Ausgeben der Seite, Versenden von E-Mails oder Bearbeiten von Datenbanken. Am Ende der Seite kann der Fortschrittsbalken wieder ausgeblendet werden. Features: optionaler Abbrechen-Button; dynamische Änderung von Beschriftung, Farbe, Prozent; freie Größe und Positionierung.

Systemvoraussetzungen

Der Server benötigt PHP 4.x oder höher incl. korrekt installierter aktueller browscap.ini. Der Client benötigt den IE 5.x oder höher bzw. Netscape 6.x oder höher. Andere Browser-Hersteller sind nicht getestet. ProgressClass prüft selbständig die Browserversion und zeigt bei zu alter Version keinen Fortschrittsbalken an; eine eigene Browserüberprüfung brauchen Sie nicht zu verwenden.

Installation

Kopieren Sie einfach die Dateien ProgressClass.php und js.inc.php auf ihren Webspace.

Anwendung

ProgressClass ist komplett objektorientiert. Es stellt eine Klasse zum Erzeugen, Bearbeiten und Löschen des Fortschrittsbalkens zur Verfügung. Wenn mehrere Fortschrittsbalken benötigt werden, kann die Klasse auch ohne Probleme mehrmals instanziert werden (auch gleichzeitig). Grundsätzlich stellt sich der Einsatz folgendermaßen dar:

  1. Einbinden der Klasse:

    require('ProgressClass.php');


  2. Erzeugen einer Instanz der Klasse:

    $progress=new ProgressClass();


  3. Einstellen der gewünschten Optionen (siehe unten). Dieser Schritt ist optional, die Klasse ist mit Standardeinstellungen vorbelegt. Beispiel:

    $progress->setWidth(300);
    $progress->setPosition('center',20);
    ... usw.


  4. Fortschrittsbalken generieren und ausgeben:

    $progress->make();


  5. Ändern der Prozentanzeige oder anderer Einstellungen:

    $progress->setPercent(10);
    ...
    $progress->setPercent(45);
    ...
    $progress->setPercent(80);
    $progress->setLabel('Speicher wird aufgeräumt ...');
    ...
    $progress->setPercent(100);
    $progress->setLabel('Fertig!');


  6. Fortschrittsbalken löschen, so daß er nicht mehr im Browser angezeigt wird:

    $progress->hide();

Beschreibung der Funktionen

ProgressClass()

Die Funktion wird durch Instanzieren der Klasse aufgerufen und nimmt interne Initialisierungen vor. Sie können beliebig viele Fortschrittsbalken (auch gleichzeitig) durch Instanzieren neuer Klassen erzeugen. Alle Fortschrittsbalken haben voneinander unabhänge Einstellungen und können getrennt angezeigt und geändert werden.

Benötigt keine Parameter.

          <p>$progress-&gt;new ProgressClass();</p>

setWidth($width);

Definiert die Breite des Fortschrittbalkens (äußerer Rand des Fensters) in Pixeln. Standardeinstellung sind 350 Pixel.

Der Aufruf dieser Funktion nach make() hat keine Wirkung.

          $progress-&gt;setWidth(300);
     

setPosition($left=NULL,$top=NULL);

Definiert die Position (obere linke Ecke) des Fortschrittsbalkens (äußerer Rand des Fensters) innerhalb des angezeigten Dokuments/Frames in Pixeln. Standardeinstellung ist 'center','center-65'.

Der erste Parameter bezeichnet den Abstand der oberen linken Ecke zum linken Seitenrand, der zweite zum oberen Seitenrand. Sie können auch nur einen der Parameter angeben, der zweite behält dann die Standardeinstellung. Wenn Sie nur den zweiten Parameter angeben möchten, muß der erste NULL sein.

Anstelle von absoluten Zahlen können Sie auch 'center' angeben, so daß das Fenster zentriert im Anzeigebereich angezeigt wird. Möglich ist sogar eine Kombination z.B. 'center-30'.

Der Aufruf dieser Funktion nach make() hat keine Wirkung.

          $progress-&gt;setPosition(100,30);
       

          $progress-&gt;setPosition(NULL,30); //
          Standardeinstellung für $left beibehalten
        

          $progress-&gt;setPosition(100); // Standardeinstellung
          für $top beibehalten

          $progress-&gt;setPosition('center','center-30'); //
          Zentriert, etwas nach oben verschoben
 

setButton($label,$url,$target='_self')

Fügt dem Fortschrittsbalken einen Button hinzu, auf dessen Klick eine neue Seite geöffnet wird. Der Button kann z.B. mit "Abbrechen" beschriftet werden. Wenn er angeklickt wird, wird eine neue Seite geladen, so daß die Ausführung der aktuellen Seite abgebrochen wird (nur wenn target='_self').

Mit dem ersten Parameter wird die Beschriftung des Buttons, mit dem zweiten die Ziel-URL angegeben. Der optionale dritte Parameter bezeichnet das für den Link verwendete Target.

Der Aufruf dieser Funktion nach make() hat keine Wirkung.

          $progress-&gt;setButton('Abbrechen','/seiten/abbruch.php');

          $progress-&gt;setButton('Info','info.php','_blank');

setPercent($percent)

Definiert die Prozentanzeige des Fortschrittsbalkens. Standardeinstellung ist 0.

Der Parameter muß als Zahl, ohne Prozentzeichen angegeben werden.

Diese Funktion kann auch nach make() noch öfter aufgerufen werden, um die Prozentanzeige dynamisch zu ändern (DHTML).

          $progress-&gt;setPercent(25);
 

setPerX($some,$all)

Definiert die Prozentanzeige des Fortschrittsbalkens und rechnet dafür die angegebenen Werte in Prozent um.

Der erste Parameter stellt die aktuelle Position von insgesamt soviel Positionen, wie der zweite Parameter bezeichnet, dar. Wenn Sie eine Datei oder ein MySQL-Result einlesen, übergeben Sie für $all die Anzahl der Einträge und für $some die aktuelle Position des Dateizeigers/Result-Zeigers.

Diese Funktion kann auch nach make() noch öfter aufgerufen werden, um die Prozentanzeige dynamisch zu ändern (DHTML).

          $gesamt=1500;<br>
          for ($i=1;$i&lt;=$gesamt;$i++)<br>
          $progress-&gt;setPerX($i,$gesamt);
      

setLabel($label)

Definiert die Beschriftung des Fortschrittsbalkens. Standardeinstellung ist "Bitte warten ..."

Diese Funktion kann auch nach make() noch öfter aufgerufen werden, um das Label dynamisch zu ändern (DHTML).

          $progress-&gt;setLabel('Seite wird geladen ...');
        

setBarColor($color)

Definiert die Farbe des Fortschrittsbalkens. Standardeinstellung ist dunkelblau.

Die Farbe muß als HTML-Color-Code angegeben werden.

Diese Funktion kann auch nach make() noch öfter aufgerufen werden, um die Farbe dynamisch zu ändern (DHTML).

          $progress-&gt;setBarColor('#FF0000'); // rot
        

hide()

Macht den Fortschrittsbalken unsichtbar. Sollte am Ende der Ausgabe aufgerufen werden, damit der Besucher die Seite ohne den Fortschrittsbalken betrachten kann.

Benötigt keine Parameter.

Diese Funktion sollte nur nach make() aufgerufen werden (DHTML).

          $progress-&gt;hide();
        

show()

Macht den Fortschrittsbalken sichtbar und ist z.B. sinnvoll, wenn vorher make(false) aufgerufen wurde.

Benötigt keine Parameter.

Diese Funktion sollte nur nach make() aufgerufen werden (DHTML).

          $progress-&gt;show();
  

make($show=true)

Erstellt den Fortschrittsbalken und gibt ihn an den Browser aus.

Wichtig: Die Funktion darf erst aufgerufen werden, nachdem der <body>-Tag an den Browser gesendet wurde!

Optional kann durch den Parameter angegeben werden, ob der Fortschrittsbalken auch gleich sichtbar angezeigt wird. Standardeinstellung ist true (= Ja).

          $progress-&gt;make();
      

          <p>$progress-&gt;make(false); // Nur ausgeben, noch nicht
          anzeigen.</p>
      

Erfahrungen

Es sind noch keine Kommentare vorhanden.

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe

Verwandte Beiträge

Gewichtete SQL-Abfragen

Gewichtete Abfragen werde häufig im Banner-Umfeld benötigt. Also überall da, wo Banner nach bestimmten Kriterien einblendet werden sollen. Wenn man davon ausgeht, das Banner unterschiedlichen Klick-Erfolg haben, dann liegt der Gedanke nahe, genau diese Ba ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

PHP-Scripte offline testen unter Windows

Wenn Sie sich schon mit der Erstellung von dynamischen Websiten beschäftigt haben, wissen Sie vielleicht wie umständlich es ist, die Scripte immer auf den Server Ihres Hosters zu laden um diese testen zu können. ...

webmaster116@

Autor : webmaster116@
Kategorie: Linux & Server Tutorials

Das 'Nested Sets' Modell - Bäume mit SQL

Das 'Nested Sets' Modell - Bäume mit SQL

Dieses Tutorial beschreibt die 'Nested Sets'-Technik, mit der man solche Bäume mit SQL performant konstruieren kann. ...

gorski@

Autor : gorski@
Kategorie: mySQL-Tutorials

plotting masters - a professional guide - Teil I

Grafische Interpolation und Bestapproximation von numerischen Wertepaaren: Wir wollen Punkte auf einer Zeichenebene über verschiedene Verfahren miteinander verbinden. ...

EVAMasters

Autor : EVAMasters
Kategorie: PHP-Tutorials

Hier ein kleines allgemeines Tutorial zu PHP

Die Einleitung ist in folgende Themen aufgeteilt: -Einleitung -Variablen -Parameterübergabe -Funktionen -Schleifen -IF-Abfragen Am besten Sie schauen sie sich der Reihenfolge nach an. ...

demiangrandt@

Autor : demiangrandt@
Kategorie: PHP-Tutorials

ASCII Datenbanken

ASCII Datenbanken sind eigentlich nur Textdateien, in denen man Daten speichert, die durch ein Trennzeichen voneinander getrennt sind. Dieses Tutorial zeigt wie es geht. Mit Übung und Lösung ...

deep_space_nine@

Autor : deep_space_nine@
Kategorie: PHP-Tutorials

Was muss ich in WordPress einstellen, damit Google Fonts nicht mehr geladen werden?

Möchten Du WordPress davon abhalten, Google Fonts zu verwenden? Hier erfährst Du, was du dafür in WordPress einstellen musst. ...

admin

Autor : admin
Kategorie: Sonstige Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen