Schemalagd publicering av nyheter i PHP?

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2008-03-22 09:41

Hej!

Jag har en sida, Skärgårdsguiden.se, där jag just nu lägger in nyheter med "PhpNews", visst funkar det bra, men skulle vilja ha lite mer funktioner. Jag vill inte göra om sidan till CMS, utan fortsätta ha den som idag, men jag vill kunna bestämma publiceringsdatum, så artikeln publicerar sig själv vid en viss tid.

Kom gärna med förslag på vilket program / script som är bättre.

Ha en fortsatt glad påsk!

/Carl

Senast redigerat 2008-03-22 12:00
  • Medlem
  • Skövde
  • 2008-05-09 07:27

Lite sent svarat, men en första tanke är att skapa en trigger i dabatasen som ser att när posten är 10 dagar gammal sätter den publiceringsflaggan (eller motsvarande).

Man skriver ett litet script som kollar ett (eller två) datumfält (har du det eller kan du fixa det i PhpNews?) Om tidpunkten då besökaren är på sidan ligger efter startdatumet (eller mellan start och stopdatum) så tillåts artikeln att visas, annars inte.

Enklast är att skriva scriptet så att det kollar så här:

Funktion:

function after($startdate){
if(!$startdate or $startdate >= time()) return true;
}

Använding:

if(after($startdate)) echo $article;

som du nog räknad ut kan du som sagt köra start och stopptidpunkt i samma gate:

Funktion:

function between($startdate,$stopdate){
$utime = time();
if((!$startdate or $startdate >= $utime) and (!$stopdate or $stopdate <= $utime)) return true;
}

Använding:

if(between($startdate,$stopdate)) echo $article;

Ovanstående funktioner kollar om värde saknas in i gaten, i så fall ska visningen godkännas - dvs så att icke-tidsstyrda artiklar visas (alternativt sådana som har stopp eller starttid men inte bägge). Om värde finns jämförs det med nutid.

(Lite överkurs: Notera att jag fångade nutid i en variabel i den andra funktionen. Detta är för att gatens bägge delar (start och stop) ska jämföra exakt samma timestamp. Spelar väl ingen roll egentligen i sammanhanget ovan, men det spelar roll ibland, så det är god princip.)

Detta var väldigt basic script som bl a förutsätter att du sparat tidpunkten som ett unix timestamp, dvs time(). I praktiken kan det vara enklare att använda date(), datetime() eller lämpligen strftime(). Men det får du läsa på om på php.net. Nu har du principen.

1
Bevaka tråden