PluginProbe ʕ •ᴥ•ʔ
Robin Image Optimizer – Unlimited Image Optimization, WebP & AVIF / trunk
Robin Image Optimizer – Unlimited Image Optimization, WebP & AVIF vtrunk
2.0.5 trunk 1.3.7 1.4.0 1.4.1 1.4.2 1.4.6 1.5.0 1.5.3 1.5.6 1.5.8 1.6.5 1.6.6 1.6.9 1.7.0 1.7.4 1.8.1 1.8.2 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4
robin-image-optimizer / libs / factory / pages / pages.php
robin-image-optimizer / libs / factory / pages Last commit date
includes 3 months ago boot.php 5 months ago index.php 3 years ago pages.php 5 months ago
pages.php
100 lines
1 <?php
2 /**
3 * A group of classes and methods to create and manage pages.
4 *
5 * @package core
6 * @since 1.0.0
7 */
8
9 // Exit if accessed directly
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit;
12 }
13 add_action( 'admin_menu', 'Wbcr_FactoryPages600::actionAdminMenu', 9 );
14 add_action( 'network_admin_menu', 'Wbcr_FactoryPages600::actionAdminMenu', 9 );
15
16 if ( ! class_exists( 'Wbcr_FactoryPages600' ) ) {
17 /**
18 * A base class to manage pages.
19 *
20 * @since 1.0.0
21 */
22 class Wbcr_FactoryPages600 {
23
24 /**
25 * @var Wbcr_FactoryPages600_Page[]
26 */
27 private static $pages = [];
28
29 /**
30 * @param Wbcr_Factory600_Plugin $plugin
31 * @param $class_name
32 */
33 public static function register( $plugin, $class_name ) {
34 if ( ! isset( self::$pages[ $plugin->getPluginName() ] ) ) {
35 self::$pages[ $plugin->getPluginName() ] = [];
36 }
37 $page = new $class_name( $plugin );
38 if ( is_multisite() && is_network_admin() && ! $page->available_for_multisite ) {
39 return;
40 }
41 self::$pages[ $plugin->getPluginName() ][] = $page;
42 }
43
44 public static function actionAdminMenu() {
45 if ( empty( self::$pages ) ) {
46 return;
47 }
48
49 foreach ( self::$pages as $plugin_pages ) {
50 foreach ( $plugin_pages as $page ) {
51 $page->connect();
52 }
53 }
54 }
55
56 public static function getPageUrl( Wbcr_Factory600_Plugin $plugin, $page_id, $args = [] ) {
57 if ( isset( self::$pages[ $plugin->getPluginName() ] ) ) {
58 $pages = self::$pages[ $plugin->getPluginName() ];
59
60 foreach ( $pages as $page ) {
61 if ( $page->id == $page_id ) {
62 return $page->getBaseUrl( $page_id, $args );
63 }
64 }
65 } else {
66 _doing_it_wrong( __METHOD__, __( 'You are trying to call this earlier than the plugin menu will be registered.', 'robin-image-optimizer' ), '4.0.8' );
67 }
68 }
69
70 /**
71 * @param Wbcr_Factory600_Plugin $plugin
72 * @return array
73 */
74 public static function getIds( $plugin ) {
75 if ( ! isset( self::$pages[ $plugin->getPluginName() ] ) ) {
76 return [];
77 }
78
79 $result = [];
80 foreach ( self::$pages[ $plugin->getPluginName() ] as $page ) {
81 $result[] = $page->getResultId();
82 }
83
84 return $result;
85 }
86 }
87 }
88
89 if ( ! function_exists( 'wbcr_factory_pages_600_get_page_id' ) ) {
90 /**
91 *
92 * @param Wbcr_Factory600_Plugin $plugin
93 * @param string $page_id
94 * @return string
95 */
96 function wbcr_factory_pages_600_get_page_id( $plugin, $page_id ) {
97 return $page_id . '-' . $plugin->getPluginName();
98 }
99 }
100