'admin_page_framework_loader', 'demo' => array( 'main' => 'APF_Demo', 'taxonomy' => 'APF_TaxonomyField', 'basic_usage' => 'APF_BasicUsage', ) ); /** * The transient prefix. * * @remark This is also accessed from `uninstall.php` so do not remove. * @remark Do not exceed 8 characters as a transient name allows 45 characters or less ( 40 for site transients ) so that md5 (32 characters) can be added. */ const TRANSIENT_PREFIX = 'APFL_'; /** * The hook slug used for the prefix of action and filter hook names. * * @remark The ending underscore is not necessary. */ const HOOK_SLUG = 'admin_page_framework_loader'; /** * The text domain slug and its path. * * These will be accessed from the bootstrap script. */ const TEXT_DOMAIN = 'admin-page-framework-loader'; const TEXT_DOMAIN_PATH = '/language'; // These properties will be defined in the setUp() method. static public $sFilePath = ''; static public $sDirPath = ''; /** * Requirements. */ static public $aRequirements = array( 'php' => array( 'version' => '5.2.4', 'error' => 'The plugin requires the PHP version %1$s or higher.', ), 'wordpress' => array( 'version' => '3.3', 'error' => 'The plugin requires the WordPress version %1$s or higher.', ), 'mysql' => array( 'version' => '5.0', 'error' => 'The plugin requires the MySQL version %1$s or higher.', ), 'functions' => '', // disabled // array( // e.g. 'mblang' => 'The plugin requires the mbstring extension.', // ), 'classes' => '', // disabled // array( // e.g. 'DOMDocument' => 'The plugin requires the DOMXML extension.', // ), 'constants' => '', // disabled // array( // e.g. 'THEADDONFILE' => 'The plugin requires the ... addon to be installed.', // e.g. 'APSPATH' => 'The script cannot be loaded directly.', // ), 'files' => '', // disabled // array( // e.g. 'home/my_user_name/my_dir/scripts/my_scripts.php' => 'The required script could not be found.', // ), ); /** * Used admin pages. */ static public $aAdminPages = array( // key => 'page slug' 'about' => 'apfl_about', // the welcome page 'addon' => 'apfl_addons', 'tool' => 'apfl_tools', 'help' => 'apfl_contact', ); /** * Used post types. */ static public $aPostTypes = array( 'demo' => 'apf_posts', ); /** * Used taxonomies. */ static public $aTaxonomies = array( ); /** * Sets up static properties. * @return void */ static public function setUp( $sPluginFilePath=null ) { self::$sFilePath = $sPluginFilePath ? $sPluginFilePath : __FILE__; self::$sDirPath = dirname( self::$sFilePath ); } /** * Returns the URL with the given relative path to the plugin path. * *
* AdminPageFrameworkLoader_Registry::getPluginURL( 'asset/css/meta_box.css' );
*
* @since 3.5.0
* @return string
*/
public static function getPluginURL( $sRelativePath='' ) {
return plugins_url( $sRelativePath, self::$sFilePath );
}
/**
* Returns the information of this class.
*
* @since 3.5.0
* @return array
*/
static public function getInfo() {
$_oReflection = new ReflectionClass( __CLASS__ );
return $_oReflection->getConstants()
+ $_oReflection->getStaticProperties()
;
}
/**
* Stores admin notices.
* @since 3.5.0
*/
static public $_aAdminNotices = array();
/**
* Sets an admin notice.
* @since 3.5.0
* @return void
*/
static public function setAdminNotice( $sMessage, $sClassAttribute='error' ) {
if ( ! is_admin() ) {
return;
}
self::$_aAdminNotices[] = array(
'message' => $sMessage,
'class_attribute' => $sClassAttribute,
);
add_action( 'admin_notices', array( __CLASS__, '_replyToSetAdminNotice' ) );
}
/**
* Displays the set admin notices.
* @since 3.5.0
* @return void
*/
static public function _replyToSetAdminNotice() {
foreach( self::$_aAdminNotices as $_aAdminNotice ) {
echo "" . sprintf( '%1$s: ' . $_aAdminNotice['message'], self::NAME . ' ' . self::VERSION ) . "
" . "