PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / trunk
Advanced Ads – Ad Manager & AdSense vtrunk
2.0.26 2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / includes / placements / class-placement-types.php
advanced-ads / includes / placements Last commit date
types 3 weeks ago class-placement-after-content.php 1 year ago class-placement-before-content.php 1 year ago class-placement-content.php 1 year ago class-placement-factory.php 3 weeks ago class-placement-footer.php 1 year ago class-placement-header.php 1 year ago class-placement-repository.php 3 weeks ago class-placement-sidebar-widget.php 1 year ago class-placement-standard.php 1 year ago class-placement-types.php 3 weeks ago class-placements.php 1 month ago index.php 1 year ago
class-placement-types.php
117 lines
1 <?php
2 /**
3 * Placements types manager..
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds\Placements;
11
12 use AdvancedAds\Abstracts\Types;
13 use AdvancedAds\Placements\Types\Footer;
14 use AdvancedAds\Placements\Types\Header;
15 use AdvancedAds\Placements\Types\Content;
16 use AdvancedAds\Placements\Types\Unknown;
17 use AdvancedAds\Interfaces\Placement_Type;
18 use AdvancedAds\Placements\Types\Standard;
19 use AdvancedAds\Placements\Types\After_Content;
20 use AdvancedAds\Placements\Types\Before_Content;
21 use AdvancedAds\Placements\Types\Sidebar_Widget;
22
23 defined( 'ABSPATH' ) || exit;
24
25 /**
26 * Placements Types.
27 */
28 class Placement_Types extends Types {
29
30 /**
31 * Hook to filter types.
32 *
33 * @var string
34 */
35 protected $hook = 'advanced-ads-placement-types';
36
37 /**
38 * Class for unknown type.
39 *
40 * @var string
41 */
42 protected $type_unknown = Unknown::class;
43
44 /**
45 * Type interface to check.
46 *
47 * @var string
48 */
49 protected $type_interface = Placement_Type::class;
50
51 /**
52 * Built-in placement type classes.
53 *
54 * @return string[]
55 */
56 protected function default_type_classes(): array {
57 return [
58 After_Content::class,
59 Before_Content::class,
60 Content::class,
61 Footer::class,
62 Header::class,
63 Sidebar_Widget::class,
64 Standard::class,
65 ];
66 }
67
68 /**
69 * Register custom types.
70 *
71 * @return void
72 */
73 public function register_types(): void {
74 parent::register_types();
75
76 $this->sort_types();
77 }
78
79 /**
80 * Get type dropdown options
81 *
82 * @return array<string, string>
83 */
84 public function get_dropdown_options(): array {
85 $options = [];
86
87 foreach ( $this->get_types() as $type ) {
88 $options[ $type->get_id() ] = $type->get_title();
89 }
90
91 asort( $options );
92
93 return $options;
94 }
95
96 /**
97 * Sort screens by order.
98 *
99 * @return void
100 */
101 private function sort_types(): void {
102 uasort(
103 $this->types,
104 static function ( $a, $b ) {
105 $order_a = $a->get_order();
106 $order_b = $b->get_order();
107
108 if ( $order_a === $order_b ) {
109 return 0;
110 }
111
112 return ( $order_a < $order_b ) ? -1 : 1;
113 }
114 );
115 }
116 }
117