Changes in sites/trunk/wordpress.org/public_html/wp-content/plugins/handbook/inc/init.php [10792:10041]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/handbook/inc/init.php
r10792 r10041 8 8 class WPorg_Handbook_Init { 9 9 10 /** 11 * Asociative array of WPorg_Handbook objects. 12 * 13 * @var array 14 */ 15 protected static $handbooks = []; 16 17 /** 18 * Returns the handbook objects. 19 * 20 * @return WPorg_Handbook[] 21 */ 22 public static function get_handbook_objects() { 23 return self::$handbooks; 10 public static function get_post_types() { 11 return (array) apply_filters( 'handbook_post_types', array( 'handbook' ) ); 24 12 } 25 13 26 /** 27 * Returns a handbook of the given post type. 28 * 29 * @param string $post_type The handbook post type. 30 * @return WPorg_Handbook|false The handbook object, or false if no such 31 * handbook. 32 */ 33 public static function get_handbook( $post_type ) { 34 $handbooks = self::get_handbook_objects(); 35 return $handbooks[ $post_type ] ?? false; 14 static function init() { 15 16 $post_types = self::get_post_types(); 17 18 new WPorg_Handbook_TOC( $post_types ); 19 20 foreach ( $post_types as $type ) { 21 new WPorg_Handbook( $type ); 22 } 23 24 WPorg_Handbook_Glossary::init(); 25 26 add_action( 'wp_enqueue_scripts', array( __CLASS__, 'enqueue_styles' ) ); 27 add_action( 'wp_enqueue_scripts', array( __CLASS__, 'enqueue_scripts' ) ); 36 28 } 37 29 38 /** 39 * Returns the post types of all handbooks. 40 * 41 * @return array 42 */ 43 public static function get_post_types() { 44 return array_keys( self::$handbooks ); 30 static public function enqueue_styles() { 31 wp_enqueue_style( 'wporg-handbook-css', plugins_url( 'stylesheets/callout-boxes.css', WPORG_HANDBOOK_PLUGIN_FILE ), array(), '20200121' ); 45 32 } 46 33 47 /** 48 * Returns the handbooks configurations. 49 * 50 * @param string $handbook Optional. A specific handbook to return config for. 51 * If none specified, then all are returned. Default ''. 52 * @return array|false If $handbook defined, then the config for that handbook 53 * if handbook exists, else false. If no $handbook specified, 54 * then an associative array of config for all handbooks, 55 * keyed by post type. 56 */ 57 public static function get_handbooks_config( $handbook = '' ) { 58 $return = false; 59 $handbooks = self::get_handbook_objects(); 60 61 // If no handbook specified, return configs for all handbooks. 62 if ( ! $handbook ) { 63 $return = []; 64 foreach ( $handbooks as $type => $handbook_obj ) { 65 $return[ $type ] = $handbook_obj->get_config(); 66 } 67 } 68 69 return ( $handbook && ! empty( $handbooks[ $handbook ] ) && is_a( $handbooks[ $handbook ], 'WPorg_Handbook' ) ) 70 ? $handbooks[ $handbook ]->get_config() 71 : $return; 72 } 73 74 /** 75 * Resets memoized and cached variables. 76 * 77 * @param bool $delete_handbook_objects Optional. Delete associated handbook 78 * objects? Default false. 79 */ 80 public static function reset( $delete_handbook_objects = false ) { 81 if ( $delete_handbook_objects ) { 82 foreach ( self::get_handbook_objects() as $obj ) { 83 unset( $obj ); 84 } 85 } 86 87 self::$handbooks = []; 88 } 89 90 /** 91 * Initializes handbooks. 92 */ 93 public static function init() { 94 $config = []; 95 $handbooks_config = []; 96 97 /** 98 * Fires before handbooks have been initialized. 99 */ 100 do_action( 'before_handbooks_init' ); 101 102 /** 103 * Filters the handbook post types for creating handbooks. 104 * 105 * @deprecated Use {@see 'handbooks_config'} instead. 106 * 107 * @param array $handbooks Array of handbook post types. Default empty 108 * array, which later will be interpreted to 109 * be 'handbook'. 110 */ 111 $post_types = (array) apply_filters( 'handbook_post_types', [] ); 112 113 foreach ( $post_types as $post_type ) { 114 $config[ $post_type ] = []; 115 } 116 117 /** 118 * Defines and configures all handbooks. 119 * 120 * @see WPorg_Handbook::get_default_handbook_config() 121 * 122 * @param array $config Associative array of handbooks and their 123 * configuration options. Keys should be the handbook 124 * post type (which will get appended '-handbook' if 125 * the post type isn't 'handbook' and doesn't already 126 * contain '-handbook'. See 127 * {@see WPorg_Handbook::get_default_handbook_config()} 128 * for list of per-handbook configuration options. 129 */ 130 $config = (array) apply_filters( 'handbooks_config', $config ); 131 132 // If no handbooks were configured, default to a basic handbook. 133 if ( ! $config ) { 134 $config = [ 'handbook' => [] ]; 135 } 136 137 // Get default settings for a handbook. 138 $defaults = WPorg_Handbook::get_default_handbook_config(); 139 140 // Determine each handbook's config. 141 foreach ( $config as $key => $value ) { 142 $key = sanitize_title( $key ); 143 $post_type = ( 'handbook' === $key || false !== strpos( $key, '-handbook' ) ) ? $key : $key . '-handbook'; 144 145 $handbooks_config[ $post_type ] = wp_parse_args( $value, $defaults ); 146 147 // Set slug if not explicitly set. 148 if ( empty( $handbooks_config[ $post_type ]['slug'] ) ) { 149 $handbooks_config[ $post_type ]['slug'] = $key; 150 } 151 } 152 153 $post_types = array_keys( $handbooks_config ); 154 155 // Enable table of contents. 156 new WPorg_Handbook_TOC( $post_types ); 157 158 // Instantiate each of the handbooks. 159 self::$handbooks = []; 160 foreach ( $handbooks_config as $type => $conf ) { 161 self::$handbooks[ $type ] = new WPorg_Handbook( $type, $conf ); 162 } 163 164 // Enable glossary. 165 WPorg_Handbook_Glossary::init(); 166 167 // Enqueue styles and scripts. 168 add_action( 'wp_enqueue_scripts', [ __CLASS__, 'enqueue_styles' ] ); 169 add_action( 'wp_enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] ); 170 171 /** 172 * Fires after handbooks have been initialized. 173 */ 174 do_action( 'after_handbooks_init' ); 175 } 176 177 /** 178 * Enqueues styles. 179 */ 180 public static function enqueue_styles() { 181 wp_enqueue_style( 'wporg-handbook-css', plugins_url( 'stylesheets/callout-boxes.css', WPORG_HANDBOOK_PLUGIN_FILE ), [], '20200121' ); 182 } 183 184 /** 185 * Enqueues scripts. 186 */ 187 public static function enqueue_scripts() { 188 wp_enqueue_script( 'wporg-handbook', plugins_url( 'scripts/handbook.js', WPORG_HANDBOOK_PLUGIN_FILE ), [ 'jquery' ], '20150930' ); 34 static public function enqueue_scripts() { 35 wp_enqueue_script( 'wporg-handbook', plugins_url( 'scripts/handbook.js', WPORG_HANDBOOK_PLUGIN_FILE ), array( 'jquery' ), '20150930' ); 189 36 } 190 37 191 38 } 192 39 193 add_action( 'after_setup_theme', [ 'WPorg_Handbook_Init', 'init' ] ); 40 add_action( 'after_setup_theme', array( 'WPorg_Handbook_Init', 'init' ) ); 41
Note: See TracChangeset
for help on using the changeset viewer.