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