Witam,

Chcialem sie podzielic moja modyfikacja modyfikatora date_format (modifier.date_format.php) o dodatkowe parametry przedstawiajace date slownie na naszym kochanym jezyku biggrin.gif

dodatkowe pataremtry to:
%%da - dzien - wariant 1
%%db - dzien - wariant 2
%%dc - dzien - wersja skrocona
%%ma - miesiac - wariant 1
%%mb - miesiac - wariant 2
%%mc - miesiac - wariant 3

  1. <?php
  2. function data_slownie ($format, $string) {
  3. switch ($format) {
  4. case "da":
  5. $s = date ("w", $string);
  6. $a = Array ('niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota');
  7. break;
  8. case "db":
  9. $s = date ("w", $string);
  10. $a = Array ('niedzieli', 'poniedziałku', 'wtorku', 'środy', 'czwartku', 'piątku', 'soboty');
  11. break;
  12. case "dc":
  13. $s = date ("w", $string);
  14. $a = Array ('Nd', 'Pn', 'Wt', 'Sr', 'Cz', 'Pt', 'Sb');
  15. break;
  16. case "ma":
  17. $s = date ("n", $string) - 1;
  18. $a = Array ('styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień');
  19. break;
  20. case "mb":
  21. $s = date ("n", $string) - 1;
  22. $a = Array ('stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia');
  23. break;
  24. case "mc":
  25. $s = date ("n", $string) - 1;
  26. $a = Array ('styczniu', 'lutym', 'marcu', 'kwietniu', 'maju', 'czerwcu', 'lipcu', 'sierpniu', 'wrześniu', 'październiku', 'listopadzie', 'grudniu');
  27. break;
  28. default:
  29. return "-" . $format . "-";
  30. }
  31. return $a[$s];
  32. }
  33.  
  34. function smarty_modifier_date_format($string, $format="%b %e, %Y", $default_date=null)
  35. {
  36. if (substr(PHP_OS,0,3) == 'WIN') {
  37. $hours = strftime('%I', $string);
  38. $short_hours = ( $hours < 10 ) ? substr( $hours, -1) : $hours; 
  39. $_win_from = array ('%e', '%T',  '%D', '%l');
  40. $_win_to  = array ('%#d', '%H:%M:%S', '%m/%d/%y', $short_hours);
  41. $format = str_replace($_win_from, $_win_to, $format);
  42. }
  43.  
  44. $format = preg_replace ("/%%([a-z]{2})/e", "data_slownie ('1', $string)", $format);
  45.  
  46. if($string != '') {
  47. return strftime($format, smarty_make_timestamp($string));
  48. } elseif (isset($default_date) && $default_date != '') {
  49. return strftime($format, smarty_make_timestamp($default_date));
  50. } else {
  51. return;
  52. }
  53. }
  54. ?>