Zum Inhalt springen
Vestalis

Picture Of The Day [php-frage]

Empfohlene Beiträge

Servus;

Ich bin zur zeit zusammen mit nem Kumpel fleißig am coden, doch nun stehen wir vor ner kleinen Hürde.

Wir wollten einen "Mod of the day" und einen "Partner of the day" einführen.

Somit sollen zwei Bilder mit den beiden links jeweils einmal am tag selbstständig wechseln .... nach dem Zufallsprinzip ...

hat da einer ne Idee wie das gehen könnte?

danke im vorraus

Markus

€dith:\

http://totalbf2.com/ - rechts unter Daily Fix sieht man auch was ich meine ;)

Bearbeitet von Vestalis
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hoi,

ich würde das so machen:

Also, ich hab' zunächst einmal folgenden Basisorder: ./. In diesem Basis-Ordner wird ein neuer Ordner von Hand erzeugt und zwar, der Bild-Pool in dem die ganzen Bilder, die per Zufall selektiert werden sollen, reinkommen: ./potd/.

Dort drinnen hab' ich in meinem Beispiel folgende Dateien:

./potd/1.jpg

./potd/2.jpg

./potd/3.jpg

und die wichtigste Datei von allen:

./potd/index.csv.

Diese index.csv ist folgendermaßen aufgebaut:

1.jpg;http://example.com/1/;

2.jpg;http://example.com/2/;

3.jpg;http://example.com/3/;
In jeder Zeile steht halt das Bild, was mit in die Auswahl kommt und wohin es verlinkt wird. Um das Skript mit Startwerten zu versorgen muss im Basisordner eine neue Datei erzeugt werden: ./potd.csv. Diese Datei hat folgenden Inhalt, in meinem Beispiel:
0;1.jpg;http://example.com/1/;
Jetzt kann das Skript richtig arbeiten. Das PHP-Skript selbst befindet sich, in meinem Beispiel, in ./potd.php. Das Skript potd.php sieht so aus:
<?php

// Informationen holen

$aPOTD = explode(';', file_get_contents('./potd.csv'));



// Dateialter überprüfen und falls älter als 24 Stunden -> neues Bild

if ((time() - (int) trim($aPOTD[0])) > (24 * 60 * 60)) {

	

	// Datei Zeile für Zeile in ein Array einlesen

	$aImages = file('./potd/index.csv');

	

	// Eine Zeile per Zufall auswählen

	$sImage = trim($aImages[mt_rand(0, count($aImages)-1)]);

	// Den aktuellen UNIX-Timestamp holen

	$iTime = time();

	

	// Neue Daten in Datei schreiben

	// Wenn PHP 5 zur Verfügung steht, sollte file_put_contents() benutzt werden;)

	$rFHandle = fopen('./potd.csv', 'wb');

	fwrite($rFHandle, $iTime.';'.$sImage);

	fclose($rFHandle);

	

	// Anhand des CSV-Trennzeichens aufsplitten

	$aImage = explode(';', $sImage);

	// Neues POTD-Array erstellen

	$aPOTD = array($iTime, $aImage[0], $aImage[1], '');

	

}



// Ausgeben

echo '<a href="'.trim($aPOTD[2]).'"><img src="./potd/'.trim($aPOTD[1]).'" /></a>';

?>

Skript ausführen und freuen. :P

Evtl. muss man auf Linux noch die CHMOD anpassen. Ich hab's bei mir getestet auf Win32, Apache 2.2.2 mit PHP 5.2.0-dev.

MfG

Monoman

Link zu diesem Kommentar
Auf anderen Seiten teilen

wow - du bist mein gott des tages morgen - heute hab ich shcon einen :rofl:

€:\ funktioniert super ... danke dir :)

Bearbeitet von Vestalis
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ihr schon dabei seid: Hab da auch noch ne kleine Frage, aber für euch sicherlich was leichtes: Kann man/Wie kann man bei ner Webseite die Frames so definieren (möglichst mit normalem HTML oder CSS), das sie nicht mitscrollen?

Beispiel: Also wenn man jetzt sone Seite hat, die in 3 Frames unterteilt ist. Oben einen durchgängigen und der untere wieder in 2 Bereiche gegliedert, links die Navigation und rechts das Hauptfenster mit dem eigentlichem Inhalt.

Wenn man in dem Inhaltsfenster nun runterscrollt, kommt der obere Frame und der linke Frame immer mit runter, ich will aber, das die Dinger oben bleiben.

Wie geht das? Oder geht es überhaupt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also damit die Scrollleiste bei einem Frame verschwindet:

scrolling="no"

aber ich muss gestehen deine Frage nicht wirklich verstanden zu haben <_<

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, ich pack mal nen paar Bilder dazu.

Ich habe das Fenster in 3 Frames unterteilt, deren Gliederung wie folgt aussieht:

post-15867-1151792338_thumb.jpg

(die roten Linien markieren die Grenzen)

Wenn ich nun runterscrolle, scrollen die beiden kleinen Frames (also oben+links) mit.

So das das dann so aussieht:

post-15867-1151792528_thumb.jpg

Ich möchte aber, das die beiden Frames an der Position bleiben, wo sie bei Bild 1 sind, also das sie nicht mit nach unten scrollen sondern oben bleiben.

Kann man das mit normalem HTML oder CSS realisieren?

Hoffe es ist jetzt verständlicher. Ich möchte quasi das die Frames "fest" sitzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

also - ich mag etwas blöd sein - aber bei mir sind die noch auf der gleichen position ... :huh:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ach scheiße, ich weiß nich wie ich es ausdrücken soll ^^

Ich meine, das die beim runterscrollen nicht weiter angezeigt werden sondern oben am Seitenanfang bleiben, und wenn man runterscrollt das die dann nichtmehr zu sehen sind.

So wies jetzt ist werden die beiden kleinen Frames immer angezeigt, wenn man runterscrollt werden die immer mit angezeigt.

Die sollen einfach da bleiben, wo sie am Seitanfang sind und sollen wenn man runterscrollt am Seitenanfang bleiben, sodass man sie nachher nicht mehr sieht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ganz einfach: Benutze keine Frames ;) Das, was Du beschreibst, ist der Sinn von Frames. Die Dinger bleiben rechts/links/oben/unten stehen und der Inhalt wird gescrollt. In der einfachen Variante ist ein Aufbau mit Frames auch nicht benutzerfreundlich. Hast Du schonmal versucht, einen Bookmark auif eine Unterseite zu setzen? Wie gut kannst Du HTML schreiben. WYSIWYG oder aus dem Kopf? :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich vermute mal, du meinst jetzt, dass die Überschriften Montag u. Dienstag Kanufahrt in Fürstenberg und Veröffentlichung der Page "fest" sind und das der Text darunter jeweils in einem eigenen Container gescrollt werden soll.

Das erreichst du, indem du jeweils den Text in einen festen DIV-Container schreibst:

<div style="width: 300px; height: 300px; overflow: auto;">Hier der Text.</div>

Sollte der Text dann über die 300px Höhe hinausgehen, dann wird automatisch rechts ein Scrollbaken angezeigt.

Aber wie -=Punkbster=- schon sagte, sind Frames für solche Zwecke mehr als überholt.

Heutzutage benutzt man DIV-Container, die mit CSS dann formatiert werden. Da das aber meistens schwieriger ist (im Hinblick auf die CSS-Eigenschaften float und clear ;)) kannst du auch noch Tabellen für's Design verweden (obwohl die eigentlich auch "deprecated" sind ;)). Ich selbst mache immer einen Mix aus mehr DIVs und weniger Tabellen, weil ich bei den DIVs ein paar Eigenschaften vermisse (oder nicht entdeckt habe :D), die ich bei Tabellen schätze.

MfG

Monoman

Link zu diesem Kommentar
Auf anderen Seiten teilen

ach deswegen hab ich nie verstanden was er wolte :rofl:

naja - basti hat scho recht - is nunmal der sinn von frames :)

ich persönlich nutze eigentlich nur tabellen und kaum divs - mir gehts wie mono - bei div fehlen mir noch ein paar optionen .... und naja ... mit tabellen komm ich so schön klar :rofl:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mir gehen bei Divs vor allem die Browserabweichungen auf den Zeiger. Boxed-Modell und der ganze andere Kram. Bei einer Tabelle weiß ich 100%ig was ich machen muss, damit das Ding in allen Browsern so sitzt, wie ich das will. Mit Divs geht es auch, aber eben komplizierter. Alleine die Rechnerei, wenn man Divs mit Rahmen auf einer Seite mit einer festen Breite macht :blink:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Oh Gott :blink:

Wenn ich mir das so durchlese, was ihr hier schreibt, lass ich das lieber so wies jetzt ist ^^"

Das ganze Zeug ist mir glaub ich zu hoch...

Edit: Und was zur Hölle ist WSyI..Dingsi..?

Bearbeitet von Oberon
Link zu diesem Kommentar
Auf anderen Seiten teilen

WYSIWYG -> What You See Is What You Get

Bekanntester Vertreter solcher WYSIWYG-Editoren dürfe wohl Microsoft Frontpage sein. ;)

Zwar sind solche Editoren meistens einfach zu bedienen und man hat sich in kurzer Zeit seine eigene Webseite zusammengeklickt, aber solche Dinger erzeugen einfach nur Quelltext-Müll und sind geschweige denn W3C-Konform.

Ich wage zu behaupten das selbst einige Browser im sogenannten "Quirks-Modus" den Dienst bei besonders harten Frontpage-Webseiten verweigern. :P

MfG

Monoman

Link zu diesem Kommentar
Auf anderen Seiten teilen

WYSIWYG -> What You See Is What You Get

Bekanntester Vertreter solcher WYSIWYG-Editoren dürfe wohl Microsoft Frontpage sein. ;)

Zwar sind solche Editoren meistens einfach zu bedienen und man hat sich in kurzer Zeit seine eigene Webseite zusammengeklickt, aber solche Dinger erzeugen einfach nur Quelltext-Müll und sind geschweige denn W3C-Konform.

Ich wage zu behaupten das selbst einige Browser im sogenannten "Quirks-Modus" den Dienst bei besonders harten Frontpage-Webseiten verweigern. :P

MfG

Monoman

Naja, ich kenn eigentlich nur den normalen Windows-Editor, mit dem hab ich dat allet gemacht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.