1 (edited by wibbe 2004-10-11 14:58)

Topic: Svårt? ja.

Hejsan.
Jag har reklam på mitt punbb och jag hade tänkt att användarna skulle kunna köpa bort det med SMS. SMS-parten är avklarad det är bara det kodmässiga klart. Användarna ska kunna köpa bort reklamen i en månad, om de skickar två SMS blir det två månader och så vidare. Jag har två nya fält i databasen, is_goldmeber och goldmember_expires. Goldmember_expires har då formatet åååå-mm-dd.

Men, problemet är att öka på månaderna. Finns det ingen funktion för det i PHP? Sen undrar jag hur jag måste skriva på index.php i pun.

Jag har tänkt mig main_ad.tpl och main.tpl, en utan reklam och en med. Är användaren guldmedlem (dvs, goldmember_expires har inte inträffat än), så visas ingen reklam.

Men HUR gör jag detta? Hur gör jag så att en annan .tpl-fil laddas om ett visst värde i databasen är sant, hur plussar jag på en månad på ett datum och hur får jag allt att funka?

Tack på förhand,
W

Edit: att tillägga är att jag använder pun 1.2dev

Religion is the result of a mans imagination.

Re: Svårt? ja.

Den enkla lösningen är att inte använda formatet "åååå-mm-dd" i databasen. Kör med en int istället. Funktionen time() ger antalet sekunder sen 1 Januari 1970.

För att konvertera till "vanlig" tid använd date(), exempelvis det här skriver ut när användarens "goldmemberstatus" tar slut:

date('Y-m-d H:i', $goldmember_expires)

Just i ditt exempel är det bara att lägga på 3600*24*30 (en månad i sekunder) på 'goldmember_expires'. Testen om man betalt körs då lätt såhär:

if( $goldmember_expires < time() )
  echo 'Not valid';
else
  echo 'Member payed';

3

Re: Svårt? ja.

Okej, tack, månadsbiten funkar finfint. Nu ska jag bara få PUN att lyda. Hur lägger jag till goldmember_expires i $pun_user?

Då kör man enkelt i filen där main.tpl laddas:

if( $pun_user['goldmember_expires'] > time() )
 # load template main_noads.tpl
else
 # load template main.tpl
Religion is the result of a mans imagination.