Pogledajte određenu poruku
Staro 08. 11. 2008.   #1
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default Starost na osnovu datuma rođenja

Evo jedan jednostavan modifier, koji na osnovu datuma rodjenja u formatu YYYY-mm-dd (default mysql DATE format) računa koliko ima godina.

Ne radi se provera da li je datum u budućnosti, računa se da je validacija datuma urađena pri unosu. Kada nije dobar datum ili prazana string, vraća "n/a"

U smartiju se koristi jednostavno kao: {$user.birthday|age}, naravno može da se koristi bilo gde, ne mora smarty

PHP kôd:
<?php
/**
 * Age from birthdate
 *
 * Type: modifier
 * Name: age
 * Example: {$date|age}
 * Date: 2006-03-10
 * @author Goran Pilipovic
 * @version 1.0
 * @param $var - birth date (YYYY-mm-dd)
 * @return int
 */
function smarty_modifier_age($var)
{
    if (empty(
$var))        { return "n/a"; }
    
    
$date explode ("-"$var);

    if (empty(
$date[1]))    { return "n/a"; } // no month

    
$year  intval($date[0]);
    if (empty(
$year))       { return "n/a"; } // invalid date

    
$month intval($date[1]);

    
$cur_year intval(date("Y"));
    
$cur_month intval(date("m"));
  
    
$age $cur_year $year;
    if (
$cur_month $month)
    {
        return 
$age 1;
    }

    return 
$age;
}
?>
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat