/** * Registers necessary callbacks ans sets up internal components including properties. * * <h4>Example</h4> * <code>if ( is_admin() ) { * new MyAdminPageClass( 'my_custom_option_key', __FILE__ ); * }</code> * * @access public * @since 2.0.0 * @see http://codex.wordpress.org/Roles_and_Capabilities * @see http://codex.wordpress.org/I18n_for_WordPress_Developers#Text_Domains * @param string $sOptionKey (optional) specifies the option key name to store in the options table. If this is not set, the instantiated class name will be used. * @param string $sCallerPath (optional) used to retrieve the plugin/theme details to auto-insert the information into the page footer. * @param string $sCapability (optional) sets the overall access level to the admin pages created by the framework. The used capabilities are listed <a href="http://codex.wordpress.org/Roles_and_Capabilities">here</a>. The capability can be set per page, tab, setting section, setting field. Default: `manage_options` * @param string $sTextDomain (optional) the <a href="http://codex.wordpress.org/I18n_for_WordPress_Developers#Text_Domains" target="_blank">text domain</a> used for the framework's system messages. Default: admin-page-framework. * @return void returns nothing. */ public function __construct($sOptionKey = null, $sCallerPath = null, $sCapability = 'manage_options', $sTextDomain = 'admin-page-framework') { if (!$this->_isInstantiatable()) { return; } parent::__construct($sOptionKey, $sCallerPath ? trim($sCallerPath) : ($sCallerPath = is_admin() && (isset($GLOBALS['pagenow']) && in_array($GLOBALS['pagenow'], array('plugins.php')) || isset($_GET['page'])) ? AdminPageFramework_Utility::getCallerScriptPath(__FILE__) : null), $sCapability, $sTextDomain); $this->oUtil->addAndDoAction($this, 'start_' . $this->oProp->sClassName, $this); }
public static function getSRCFromPath($sFilePath) { $_oWPStyles = new WP_Styles(); $_sRelativePath = AdminPageFramework_Utility::getRelativePath(ABSPATH, $sFilePath); $_sRelativePath = preg_replace("/^\\.[\\/\\\\]/", '', $_sRelativePath, 1); $_sHref = trailingslashit($_oWPStyles->base_url) . $_sRelativePath; unset($_oWPStyles); return $_sHref; }
public function __construct($sOptionKey = null, $sCallerPath = null, $sCapability = 'manage_network', $sTextDomain = 'admin-page-framework') { if (!$this->_isInstantiatable()) { return; } $sCallerPath = $sCallerPath ? $sCallerPath : AdminPageFramework_Utility::getCallerScriptPath(__FILE__); parent::__construct($sOptionKey, $sCallerPath, $sCapability, $sTextDomain); new AdminPageFramework_Model_Menu__RegisterMenu($this, 'network_admin_menu'); }
public function __construct($sOptionKey = null, $sCallerPath = null, $sCapability = 'manage_network', $sTextDomain = 'admin-page-framework') { if (!$this->_isInstantiatable()) { return; } add_action('network_admin_menu', array($this, '_replyToBuildMenu'), 98); $sCallerPath = $sCallerPath ? $sCallerPath : AdminPageFramework_Utility::getCallerScriptPath(__FILE__); $this->oProp = new AdminPageFramework_Property_NetworkAdmin($this, $sCallerPath, get_class($this), $sOptionKey, $sCapability, $sTextDomain); parent::__construct($sOptionKey, $sCallerPath, $sCapability, $sTextDomain); }
public function __construct($sPostType, $aArgs = array(), $sCallerPath = null, $sTextDomain = 'admin-page-framework') { if (empty($sPostType)) { return; } $this->oProp = new AdminPageFramework_Property_PostType($this, $sCallerPath ? trim($sCallerPath) : (is_admin() && isset($GLOBALS['pagenow']) && in_array($GLOBALS['pagenow'], array('edit.php', 'post.php', 'post-new.php', 'plugins.php', 'tags.php', 'edit-tags.php')) ? AdminPageFramework_Utility::getCallerScriptPath(__FILE__) : null), get_class($this), 'publish_posts', $sTextDomain, 'post_type'); $this->oProp->sPostType = AdminPageFramework_WPUtility::sanitizeSlug($sPostType); $this->oProp->aPostTypeArgs = $aArgs; parent::__construct($this->oProp); $this->oUtil->addAndDoAction($this, "start_{$this->oProp->sClassName}", $this); }
/** * Registers necessary callbacks ans sets up internal components including properties. * * <h4>Example</h4> * <code>if ( is_admin() ) * new MyAdminPageClass( 'my_custom_option_key', __FILE__ );</code> * * @access public * @since 3.1.0 * @see http://codex.wordpress.org/Roles_and_Capabilities * @see http://codex.wordpress.org/I18n_for_WordPress_Developers#Text_Domains * @param string $sOptionKey (optional) specifies the option key name to store in the options table. If this is not set, the instantiated class name will be used. * @param string $sCallerPath (optional) used to retrieve the plugin/theme details to auto-insert the information into the page footer. * @param string $sCapability (optional) sets the overall access level to the admin pages created by the framework. The used capabilities are listed <a href="http://codex.wordpress.org/Roles_and_Capabilities">here</a>. The capability can be set per page, tab, setting section, setting field. Default: `manage_options.` * @param string $sTextDomain (optional) the <a href="http://codex.wordpress.org/I18n_for_WordPress_Developers#Text_Domains" target="_blank">text domain</a> used for the framework's system messages. Default: `admin-page-framework`. * @return void returns nothing. */ public function __construct($sOptionKey = null, $sCallerPath = null, $sCapability = 'manage_network', $sTextDomain = 'admin-page-framework') { if (!$this->_isInstantiatable()) { return; } add_action('network_admin_menu', array($this, '_replyToBuildMenu'), 98); $sCallerPath = $sCallerPath ? $sCallerPath : AdminPageFramework_Utility::getCallerScriptPath(__FILE__); // this is important to attempt to find the caller script path here when separating the library into multiple files. $this->oProp = new AdminPageFramework_Property_NetworkAdmin($this, $sCallerPath, get_class($this), $sOptionKey, $sCapability, $sTextDomain); parent::__construct($sOptionKey, $sCallerPath, $sCapability, $sTextDomain); }
/** * Calculates the URL from the given path. * * @since 2.1.5 * @static * @access public * @return string The source url */ public static function getSRCFromPath($sFilePath) { $oWPStyles = new WP_Styles(); // It doesn't matter whether the file is a style or not. Just use the built-in WordPress class to calculate the SRC URL. $sRelativePath = AdminPageFramework_Utility::getRelativePath(ABSPATH, $sFilePath); $sRelativePath = preg_replace("/^\\.[\\/\\\\]/", '', $sRelativePath, 1); // removes the heading ./ or .\ $sHref = trailingslashit($oWPStyles->base_url) . $sRelativePath; unset($oWPStyles); // for PHP 5.2.x or below return esc_url($sHref); }
public static function getAttributes(array $aAttributes) { AdminPageFramework_Utility::showDeprecationNotice(__METHOD__, 'AdminPageFramework_WPUtility::getAttributes()'); $_sQuoteCharactor = "'"; $_aOutput = array(); foreach ($aAttributes as $sAttribute => $sProperty) { if (in_array(gettype($sProperty), array('array', 'object'))) { continue; } $_aOutput[] = "{$sAttribute}={$_sQuoteCharactor}{$sProperty}{$_sQuoteCharactor}"; } return implode(' ', $_aOutput); }
public function __get($sName) { if ('aScriptInfo' === $sName) { $this->sCallerPath = $this->sCallerPath ? $this->sCallerPath : AdminPageFramework_Utility::getCallerScriptPath(__FILE__); $this->aScriptInfo = $this->getCallerInfo($this->sCallerPath); return $this->aScriptInfo; } if ('aOptions' === $sName) { $this->aOptions = $this->_getOptions(); return $this->aOptions; } if ('aLastInput' === $sName) { $this->aLastInput = $this->_getLastInput(); return $this->aLastInput; } }
private function _getCallerPath($sCallerPath) { if ($sCallerPath) { return trim($sCallerPath); } if (!is_admin()) { return null; } if (!isset($GLOBALS['pagenow'])) { return null; } $_sCalllerPath = in_array($GLOBALS['pagenow'], array('plugins.php')) || isset($_GET['page']) ? AdminPageFramework_Utility::getCallerScriptPath(__FILE__) : null; return $_sCalllerPath; }
private function _getCallerScriptPath($sCallerPath) { $sCallerPath = trim($sCallerPath); if ($sCallerPath) { return $sCallerPath; } if (!is_admin()) { return null; } $_sPageNow = AdminPageFramework_Utility::getElement($GLOBALS, 'pagenow'); if (in_array($_sPageNow, array('edit.php', 'post.php', 'post-new.php', 'plugins.php', 'tags.php', 'edit-tags.php', 'term.php'))) { return AdminPageFramework_Utility::getCallerScriptPath(__FILE__); } return null; }
/** * * @since 3.1.3 */ public function __get($sName) { if ('aScriptInfo' === $sName) { $this->sCallerPath = $this->sCallerPath ? $this->sCallerPath : AdminPageFramework_Utility::getCallerScriptPath(__FILE__); $this->aScriptInfo = $this->getCallerInfo($this->sCallerPath); return $this->aScriptInfo; } // 3.4.1+ Moved from `AdminPageFramework_Property_Page` as meta box classes also access it. // If $this->aOptions is called for the first time, retrieve the option data from the database and assign them to the property. // Once this is done, calling $this->aOptions will not trigger the __get() magic method any more. if ('aOptions' === $sName) { $this->aOptions = $this->_getOptions(); return $this->aOptions; } // 3.3.0+ Sets and returns the last user form input data as an array. // 3.4.1+ Moved from `AdminPageFramework_Property_Page` as meta box classes also access it. if ('aLastInput' === $sName) { $this->aLastInput = $this->_getLastInput(); return $this->aLastInput; } // For regular undefined items, // return 'undefined'; }
/** * Returns the default value from the given field definition array. * * This is a helper function for the above getDefaultOptions() method. * * @since 3.0.0 */ private function _getDefautValue($aField) { // Check if sub-fields exist whose keys are numeric $_aSubFields = AdminPageFramework_Utility::getIntegerElements($aField); // If there are no sub-fields if (count($_aSubFields) == 0) { $_aField = $aField; return isset($_aField['value']) ? $_aField['value'] : (isset($_aField['default']) ? $_aField['default'] : null); } // Otherwise, there are sub-fields $_aDefault = array(); array_unshift($_aSubFields, $aField); // insert the main field into the very first index. foreach ($_aSubFields as $_iIndex => $_aField) { $_aDefault[$_iIndex] = isset($_aField['value']) ? $_aField['value'] : (isset($_aField['default']) ? $_aField['default'] : null); } return $_aDefault; }
private function _getDefautValue($aField) { $_aSubFields = AdminPageFramework_Utility::getIntegerElements($aField); if (count($_aSubFields) == 0) { $_aField = $aField; return isset($_aField['value']) ? $_aField['value'] : (isset($_aField['default']) ? $_aField['default'] : null); } $_aDefault = array(); array_unshift($_aSubFields, $aField); foreach ($_aSubFields as $_iIndex => $_aField) { $_aDefault[$_iIndex] = isset($_aField['value']) ? $_aField['value'] : (isset($_aField['default']) ? $_aField['default'] : null); } return $_aDefault; }