PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.30.0
Independent Analytics – WordPress Analytics Plugin v1.30.0
2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / IAWP / Models / Page_Singular.php
independent-analytics / IAWP / Models Last commit date
Campaign.php 3 years ago Current_Traffic.php 3 years ago Device.php 2 years ago Geo.php 2 years ago Page.php 2 years ago Page_Author_Archive.php 3 years ago Page_Date_Archive.php 3 years ago Page_Home.php 3 years ago Page_Not_Found.php 3 years ago Page_Post_Type_Archive.php 2 years ago Page_Search.php 3 years ago Page_Singular.php 2 years ago Page_Term_Archive.php 3 years ago Referrer.php 2 years ago View_Stats.php 2 years ago Visitor.php 2 years ago WooCommerce_Stats.php 3 years ago
Page_Singular.php
120 lines
1 <?php
2
3 namespace IAWP_SCOPED\IAWP\Models;
4
5 use IAWP_SCOPED\IAWP\Utils\String_Util;
6 class Page_Singular extends Page
7 {
8 private $singular_id;
9 private $comments;
10 public function __construct($row)
11 {
12 $this->singular_id = $row->singular_id;
13 $this->comments = $row->comments ?? 0;
14 parent::__construct($row);
15 }
16 /**
17 * Override comments method to add comments support for singular pages.
18 *
19 * @return int|null
20 */
21 public function comments() : ?int
22 {
23 return $this->comments;
24 }
25 protected function resource_key() : string
26 {
27 return 'singular_id';
28 }
29 protected function resource_value() : string
30 {
31 return $this->singular_id;
32 }
33 protected function calculate_is_deleted() : bool
34 {
35 $post = \get_post($this->singular_id);
36 return \is_null($post) || \is_null(\get_post_type_object($post->post_type));
37 }
38 protected function calculate_url()
39 {
40 return $this->convert_wpml_url(\get_permalink($this->singular_id));
41 }
42 protected function calculate_title()
43 {
44 return \get_the_title($this->singular_id);
45 }
46 protected function calculate_type()
47 {
48 return \get_post_type($this->singular_id);
49 }
50 protected function calculate_type_label()
51 {
52 return \get_post_type_object(\get_post_type($this->singular_id))->labels->singular_name;
53 }
54 protected function calculate_icon()
55 {
56 $icon = null;
57 if (!$this->calculate_is_deleted()) {
58 $icon = \get_post_type_object($this->type(\true))->menu_icon;
59 }
60 $has_icon = !\is_null($icon);
61 $html = '<div class="post-type-icon">';
62 if ($has_icon) {
63 if (\esc_url_raw($icon) == $icon) {
64 if (String_Util::str_contains($icon, 'svg')) {
65 $html .= '<span class="custom-icon" style="display: block;-webkit-mask: url(' . \esc_url($icon) . ') no-repeat center;mask: url(' . \esc_url($icon) . ') no-repeat center;"></span>';
66 } else {
67 $html .= '<span><img src="' . \esc_url($icon) . '" width="20px" height="20px" /></span>';
68 }
69 } else {
70 $html .= '<span class="dashicons ' . \esc_attr($icon) . '"></span>';
71 }
72 } else {
73 $html .= '<span class="dashicons dashicons-admin-post"></span>';
74 }
75 $html .= '</div>';
76 return $html;
77 }
78 protected function calculate_author_id()
79 {
80 return \get_post_field('post_author', $this->singular_id);
81 }
82 protected function calculate_author()
83 {
84 return \get_the_author_meta('display_name', $this->author_id());
85 }
86 protected function calculate_avatar()
87 {
88 return \get_avatar($this->author_id(), 20);
89 }
90 protected function calculate_date()
91 {
92 $date = \get_the_date('U', $this->singular_id);
93 if (!\is_int($date)) {
94 return null;
95 }
96 return $date;
97 }
98 protected function calculate_category()
99 {
100 $post_type_still_registered = \in_array($this->calculate_type(), \get_post_types());
101 $categories = [];
102 if (!$post_type_still_registered) {
103 return [];
104 }
105 foreach (\get_the_category($this->singular_id) as $category) {
106 $categories[] = $category->term_id;
107 }
108 return $categories;
109 }
110 protected function convert_wpml_url($permalink)
111 {
112 $active_plugins = \get_option('active_plugins');
113 if (\in_array('sitepress-multilingual-cms/sitepress.php', $active_plugins)) {
114 $language = \apply_filters('wpml_post_language_details', null, $this->singular_id);
115 $permalink = \apply_filters('wpml_permalink', $permalink, $language['language_code'], \true);
116 }
117 return $permalink;
118 }
119 }
120