PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.8.4
Independent Analytics – WordPress Analytics Plugin v2.8.4
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 2 years ago Current_Traffic.php 2 years ago Device.php 2 years ago Geo.php 2 years ago Page.php 2 years ago Page_Author_Archive.php 2 years ago Page_Date_Archive.php 2 years ago Page_Home.php 2 years ago Page_Not_Found.php 2 years ago Page_Post_Type_Archive.php 2 years ago Page_Search.php 2 years ago Page_Singular.php 1 year ago Page_Term_Archive.php 2 years ago Page_Virtual.php 1 year ago Referrer.php 2 years ago Universal_Model_Columns.php 2 years ago Visitor.php 2 years ago
Page_Singular.php
133 lines
1 <?php
2
3 namespace IAWP\Models;
4
5 use IAWP\Utils\Plugin;
6 use IAWP\Utils\String_Util;
7 /** @internal */
8 class Page_Singular extends \IAWP\Models\Page
9 {
10 private $singular_id;
11 private $comments;
12 public function __construct($row)
13 {
14 $this->singular_id = $row->singular_id;
15 $this->comments = $row->comments ?? 0;
16 parent::__construct($row);
17 }
18 /**
19 * Override comments method to add comments support for singular pages.
20 *
21 * @return int|null
22 */
23 public function comments() : ?int
24 {
25 return $this->comments;
26 }
27 protected function resource_key() : string
28 {
29 return 'singular_id';
30 }
31 protected function resource_value() : string
32 {
33 return $this->singular_id;
34 }
35 protected function calculate_is_deleted() : bool
36 {
37 $post = \get_post($this->singular_id);
38 return \is_null($post) || \is_null(\get_post_type_object($post->post_type));
39 }
40 protected function calculate_url()
41 {
42 return $this->convert_wpml_url(\get_permalink($this->singular_id));
43 }
44 protected function calculate_title()
45 {
46 return \get_the_title($this->singular_id);
47 }
48 protected function calculate_type()
49 {
50 $post_type_object = \get_post_type_object(\get_post_type($this->singular_id));
51 if (\is_null($post_type_object)) {
52 return null;
53 }
54 return $post_type_object->name;
55 }
56 protected function calculate_type_label()
57 {
58 $post_type_object = \get_post_type_object(\get_post_type($this->singular_id));
59 if (\is_null($post_type_object)) {
60 return null;
61 }
62 return $post_type_object->labels->singular_name;
63 }
64 protected function calculate_icon()
65 {
66 $icon = null;
67 if (!$this->calculate_is_deleted()) {
68 $icon = \get_post_type_object($this->type(\true))->menu_icon;
69 }
70 $has_icon = !\is_null($icon);
71 $html = '<div class="post-type-icon">';
72 if ($has_icon) {
73 if (\esc_url_raw($icon) == $icon) {
74 if (String_Util::str_contains($icon, 'svg')) {
75 $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>';
76 } else {
77 $html .= '<span><img src="' . \esc_url($icon) . '" width="20px" height="20px" /></span>';
78 }
79 } else {
80 $html .= '<span class="dashicons ' . \esc_attr($icon) . '"></span>';
81 }
82 } else {
83 $html .= '<span class="dashicons dashicons-admin-post"></span>';
84 }
85 $html .= '</div>';
86 return $html;
87 }
88 protected function calculate_author_id()
89 {
90 $author_id = \get_post_field('post_author', $this->singular_id);
91 if ($author_id === '') {
92 return null;
93 }
94 return $author_id;
95 }
96 protected function calculate_author()
97 {
98 return \get_the_author_meta('display_name', $this->author_id());
99 }
100 protected function calculate_avatar()
101 {
102 return \get_avatar($this->author_id(), 20);
103 }
104 protected function calculate_date()
105 {
106 $date = \get_the_date('Y-m-d', $this->singular_id);
107 if (!\is_string($date)) {
108 return null;
109 }
110 return $date;
111 }
112 protected function calculate_category()
113 {
114 $post_type_still_registered = \in_array($this->calculate_type(), \get_post_types());
115 $categories = [];
116 if (!$post_type_still_registered) {
117 return [];
118 }
119 foreach (\get_the_category($this->singular_id) as $category) {
120 $categories[] = $category->term_id;
121 }
122 return $categories;
123 }
124 protected function convert_wpml_url($permalink)
125 {
126 if (\is_plugin_active('sitepress-multilingual-cms/sitepress.php')) {
127 $language = \apply_filters('wpml_post_language_details', null, $this->singular_id);
128 $permalink = \apply_filters('wpml_permalink', $permalink, $language['language_code'], \true);
129 }
130 return $permalink;
131 }
132 }
133