Copyright (c) 2013-2016, Michael Uno; Licensed under MIT */ class AdminPageFramework_AdminNotice extends AdminPageFramework_FrameworkUtility { static private $_aNotices = array(); public $sNotice = ''; public $aAttributes = array(); public $aCallbacks = array('should_show' => null,); public function __construct($sNotice, array $aAttributes = array('class' => 'error'), array $aCallbacks = array()) { $this->aAttributes = $aAttributes + array('class' => 'error',); $this->aAttributes['class'] = $this->getClassAttribute($this->aAttributes['class'], 'admin-page-framework-settings-notice-message', 'admin-page-framework-settings-notice-container', 'notice', 'is-dismissible'); $this->aCallbacks = $aCallbacks + $this->aCallbacks; new AdminPageFramework_AdminNotice___Script; if (!$sNotice) { return; } $this->sNotice = $sNotice; self::$_aNotices[$sNotice] = $sNotice; $this->registerAction('admin_notices', array($this, '_replyToDisplayAdminNotice')); $this->registerAction('network_admin_notices', array($this, '_replyToDisplayAdminNotice')); } public function _replyToDisplayAdminNotice() { if (!$this->_shouldProceed()) { return; } $_aAttributes = $this->aAttributes + array('style' => ''); $_aAttributes['style'] = $this->getStyleAttribute($_aAttributes['style'], 'display: none'); echo "
getAttributes($_aAttributes) . ">" . "

" . self::$_aNotices[$this->sNotice] . "

" . "
" . ""; unset(self::$_aNotices[$this->sNotice]); } private function _shouldProceed() { if (!is_callable($this->aCallbacks['should_show'])) { return true; } return call_user_func_array($this->aCallbacks['should_show'], array(true,)); } }