PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (Sonstige) - Denkanstoß (PHP/JQERY) Advertising Slider Image,Video,Text



Uranjitsu
20.11.2016, 10:15
Hallo zusammen,

ich brauche von euch mal einen Denkanstoß um folgendes zu realisieren.

Aus einer Datenbank möchte ich Bilder und Videos(self hosted) abfangen und diese in einem Slider(Full Screen) ausgeben.
Das abfangen der Daten an sich ist gar kein Problem, aber das Abfangen und die Ausgabe dann, doch schon mehr. Warum...?

User 1: Hat ein Video eingestellt und möchte dass das Video(länge 30 sek) 30 Sek angezeigt wird
User 2: Hat ein Bild eingestellt ohne Zeitliche Angabe
User 3: Hat ein Bild eingestellt und möchte dieses 60sek anzeigen lassen

Irgendwie muss sichergestellt werden, das jedes Video und Bild mal an der Reihe ist, ohne das eins mehrmals angezeigt wird und das die angegebenen Zeitangaben für die Einblendung funktioniert.

User: Video wird 30sek angezeigt, danach folgt das Bild von User 2 ohne Zeitangabe (standard dann 15sek), danach folgt das Bild von User 3 mit 60sek Einblendezeit.

LG

Nimbus
20.11.2016, 12:51
Was genau ist in diesem Kontext "Abfangen"? Kann mit dem Begriff gerade nichts anfangen. Dementsprechend kann es natürlich sein, dass meine Antwort total am Thema vorbeigeht...

Um Dopplungen zu meiden fallen mir spontan zwei Möglichkeiten an:
Möglichkeit 1: die Bilder bekommen einfach eine bestimmte Reihenfolge. Danach kann man sich dann richten, wenn es um das nächste geht.
Möglichkeit 2: man führt irgendwie Buch was angezeigt wurde und überspringt diese Medien dann entsprechend und wählt ansonsten zufällig aus.

Für den zeitlichen Ablauf:
Dein Java-Script lädt jeweils den Nachfolger, nachdem die definierte Zeit abgelaufen ist.
Das sollte eigentlich genügen, wenn du nicht technisch ausschließen möchtest/musst, dass die Bilder auf keinen Fall, durch Manipulation, länger oder später erneut angezeigt werden können.

Uranjitsu
20.11.2016, 14:33
Mit abfangen, meine ich lediglich das "auslesen" aus einer DB-Tabelle

Ich lade z.B aus der Kategorie "gastronomie" die einzelnen Einträge aus (Image oder Video).

Ich möchte diese nun via Slideshow im Fullscreen anzeigen.

Lese ich die Bilder / Videos dann am besten via foreach schleife aus?
Das mögliche Javascript, muss ja für jedes Bild/Video die Zeitangabe ja dann anpassen, welche ebenfalls aus der DB ausgelesen wird.

Nachdem die Bilder / Videos abgearbeitet worden sind, soll es vom neuen beginnen.

Allerdings gibt es auch Bilde/Videos die eine höhere Priorität haben und dementsprechend mal öfters angezeigt werden sollen und nich darauf warten das z.B alle 50 Bilder / Videos durchgelaufen sind....

Ich habe leider keine Ahnung wie ich das so komplex realisieren soll und ob es dafür schon quasi eine fertige Lösung gibt.

Ich wäre für jede denkbare Idee und Hilfe dankbar.

LG

Nimbus
20.11.2016, 16:00
Was genau ist jetzt die Frage? Du liest die Informationen aus und setzt sie entsprechend um oder packst sie in deine Bibliothek. Wie das aussieht hängt natürlich stark von deiner geplanten Herangehensweise ab.

Du solltest dir auch mal darüber Gedanken machen, was du möchtest :D

jedes [...] mal an der Reihe ist, ohne das eins mehrmals angezeigt wird

mal öfters angezeigt werden sollen und nicht darauf warten das [...] durchgelaufen sind
Das sind zwei Anforderungen, die so nicht direkt vereinbar sind.

Uranjitsu
20.11.2016, 16:07
Darum geht es ja schlussendlich.
Im Normalfall sollen die Bilder/Videos nach der Reihe ausgegeben werden inkl. der gesetzten Zeit.
Aber es gibt Ausnahmen, so das einige Bilder/Videos bevorzugt werden sollen und dementsprechend öfters angezeigt werden.

Sagen wir mal es sind bisher 30 von 50 Bilder durchgelaufen. Darauf folgt eigentlich die 31, aber ein Bild was bevorzugt wird, wird noch vor der 31 angezeigt. Nachdem das Bild angezeigt wurde, soll es mit der 31 weiter gehen.

Nimbus
20.11.2016, 16:45
Ist denn die Reihenfolge von belang?
Ansonsten könntest du eben deine Priorität auf eine Wahrscheinlichkeit abbilden und entsprechend dieser Wahrscheinlichkeit die Elemente öfter/seltener auswählen/anzeigen.

Uranjitsu
20.11.2016, 16:51
Nein, die Reihenfolge ist nicht von Belang, allerdings sollte sich aber kein Bild/Video wiederholen beim durchlaufen.
Ich weiß allerdings absolut nicht wie ich das alles so umsetzen soll :emoji24:

1stAid
20.11.2016, 17:07
Du legst dir pro Bild eine Integer var an die du mit dem Bild verknüpfst.
Jedesmal wenn ein Bild angezeigt wird, erhöst du den count des bildes.
Nun könntest du schlicht immer die Bilder mit dem niedrigsten Count anzeigen lassen.
Das kann man verknüpfen mit Schwellwerten wie alles was count +3 hat nicht mehr anzeigen z.B.

Nimbus
20.11.2016, 17:19
Du baust dir eine Liste auf in der du jedes Medium mit der jeweiligen Priorität hast.
Danach machst du folgendes.

1. Zufälliges Element auswählen
2. Vergleichen mit zuletzt gezogenem Element. Falls identisch gehst du zurück zu 1
3. Hat das gewählte Element Priorität 1, dann wird es aus der Liste gelöscht. Hat es eine Priorität größer als 1, dann wird die Priorität um 1 verringert.
4. Gewähltes Element merken (damit es in Schritt 2 verfügbar ist)
5. Gewähltes Element anzeigen

Sobald die Liste leer ist füllst du sie wieder komplett auf.