wpFlashMessages.class.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. class wpFlashMessages {
  3. const ATTRIBUTE_NAMESPACE = 'symfony/wpFlashMessages';
  4. static $names = array('error', 'warning', 'confirmation', 'information');
  5. protected static function add($name, $message) {
  6. $message = trim($message);
  7. if (!empty($message)) {
  8. $messages = self::get($name);
  9. $messages[] = $message;
  10. self::set($name, $messages);
  11. }
  12. }
  13. public static function addError($message) {
  14. self::add('error', $message);
  15. }
  16. public static function addWarning($message) {
  17. self::add('warning', $message);
  18. }
  19. public static function addConfirmation($message) {
  20. self::add('confirmation', $message);
  21. }
  22. public static function addInformation($message) {
  23. self::add('information', $message);
  24. }
  25. public static function count() {
  26. $count = 0;
  27. foreach(self::$names as $name) {
  28. $count += count(self::get($name));
  29. }
  30. return $count;
  31. }
  32. public static function purge() {
  33. $flash_messages = array();
  34. foreach(self::$names as $name) {
  35. $messages = self::get($name);
  36. if (count($messages) > 0) {
  37. $flash_messages[$name] = $messages;
  38. }
  39. sfContext::getInstance()->getUser()->setAttribute($name, null, self::ATTRIBUTE_NAMESPACE);
  40. }
  41. return $flash_messages;
  42. }
  43. protected static function set($name, $value) {
  44. sfContext::getInstance()->getUser()->setAttribute($name, $value, self::ATTRIBUTE_NAMESPACE);
  45. }
  46. protected static function get($name) {
  47. return sfContext::getInstance()->getUser()->getAttribute($name, array(), self::ATTRIBUTE_NAMESPACE);
  48. }
  49. }