This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | namespace DummyPress\Abstracts; |
||
3 | |||
4 | |||
5 | /** |
||
6 | * Class to generate a view for the admin page. |
||
7 | * |
||
8 | * @abstract |
||
9 | * @package WordPress |
||
10 | * @subpackage Test Content |
||
11 | * @author Mike Selander |
||
12 | */ |
||
13 | abstract class View { |
||
14 | |||
15 | /** |
||
16 | * title |
||
17 | * Title of the tab. |
||
18 | * |
||
19 | * @var string |
||
20 | * @access protected |
||
21 | */ |
||
22 | protected $title; |
||
23 | |||
24 | /** |
||
25 | * type |
||
26 | * Type of objects we'll be dealing with i.e.: post or term. |
||
27 | * |
||
28 | * @var string |
||
29 | * @access protected |
||
30 | */ |
||
31 | protected $type; |
||
32 | |||
33 | /** |
||
34 | * priority |
||
35 | * SPriority to pass into the actions. |
||
36 | * |
||
37 | * @var int |
||
38 | * @access protected |
||
39 | */ |
||
40 | protected $priority; |
||
41 | |||
42 | /** |
||
43 | * Registers our view with appropriate actions. |
||
44 | * |
||
45 | * @see tab, view |
||
46 | */ |
||
47 | public function register_view() { |
||
48 | |||
49 | add_action( 'tc-admin-tabs', array( $this, 'tab' ), $this->priority ); |
||
50 | add_action( 'tc-admin-sections', array( $this, 'view' ), $this->priority ); |
||
51 | |||
52 | } |
||
53 | |||
54 | |||
55 | /** |
||
56 | * Builf the HTML for our tab navigation item. |
||
57 | * |
||
58 | * Each view has a tab and tab navigation - this function compiles our |
||
59 | * navigation tab. Rarely extended. |
||
60 | */ |
||
61 | public function tab() { |
||
62 | $html = ""; |
||
63 | |||
64 | $html .= "<a class='nav-tab' data-type='" . esc_attr( sanitize_title( $this->title ) ) . "' href='javascript:void(0)'>"; |
||
65 | $html .= esc_html( $this->title ); |
||
66 | $html .= "</a>"; |
||
67 | |||
68 | echo $html; |
||
69 | |||
70 | } |
||
71 | |||
72 | |||
73 | /** |
||
74 | * Build the HTML for the actual tab content. |
||
75 | * |
||
76 | * Each view has a tab and tab navigation - this function compiles our |
||
77 | * tab content. Rarely extended |
||
78 | * |
||
79 | * @see actions_section, options_section |
||
80 | */ |
||
81 | public function view() { |
||
0 ignored issues
–
show
Coding Style
Best Practice
introduced
by
![]() |
|||
82 | $html = ''; |
||
83 | |||
84 | $html .= "<section class='test-content-tab' data-type='" . esc_attr( sanitize_title( $this->title ) ) . "'>"; |
||
85 | $html .= $this->actions_section(); |
||
86 | $html .= $this->options_section(); |
||
87 | $html .= "</section>"; |
||
88 | |||
89 | echo $html; |
||
90 | |||
91 | } |
||
92 | |||
93 | |||
94 | /** |
||
95 | * Holder function to build the tab main content. Extend this with your content. |
||
96 | * |
||
97 | * @access protected |
||
98 | * |
||
99 | * @return string HTML content. |
||
100 | */ |
||
101 | protected function actions_section() { |
||
102 | $html = ''; |
||
103 | return $html; |
||
104 | } |
||
105 | |||
106 | |||
107 | /** |
||
108 | * Starter for an options section for the view. |
||
109 | * |
||
110 | * Options are where you could add various options and triggers such as author, |
||
111 | * quantity, or any other customization of the created/deleted data. |
||
112 | * |
||
113 | * @access protected |
||
114 | * |
||
115 | * @param string $html Existing HTML content. |
||
116 | * @return string HTML section content. |
||
117 | */ |
||
118 | View Code Duplication | protected function options_section( $html = '' ) { |
|
0 ignored issues
–
show
This method seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
119 | $html .= "<hr>"; |
||
120 | |||
121 | $html .= "<div class='test-data-cpt'>"; |
||
122 | $html .= "<h3>"; |
||
123 | $html .= "<span class='label'>" . esc_html__( 'Quantity', 'dummybot' ) . "</span>"; |
||
124 | $html .= "<input type='number' value='0' class='quantity-adjustment' for='" . esc_attr( $this->type ) . "' > "; |
||
125 | $html .= "</h3>"; |
||
126 | $html .= "</div>"; |
||
127 | |||
128 | return $html; |
||
129 | } |
||
130 | |||
131 | |||
132 | /** |
||
133 | * Builds action buttons for creating or deleting content. |
||
134 | * |
||
135 | * @access protected |
||
136 | * |
||
137 | * @param string $action Type of action to take - i.e.: create or delete. |
||
138 | * @param string $slug Slug ID of the object to create i.e.: page or category. |
||
139 | * @param string $text Text to display in the button. |
||
140 | * @return string HTML. |
||
141 | */ |
||
142 | protected function build_button( $action, $slug, $text ) { |
||
143 | $html = $dashicon = ''; |
||
144 | |||
145 | if ( $action == 'create' ) { |
||
146 | $dashicon = 'dashicons-plus'; |
||
147 | } elseif ( $action == 'delete' ) { |
||
148 | $dashicon = 'dashicons-trash'; |
||
149 | } |
||
150 | |||
151 | $html .= "<a href='javascript:void(0);' "; |
||
152 | $html .= " data-type='" . esc_attr( $this->type ) . "'"; |
||
153 | $html .= " data-slug='" . esc_attr( $slug ) . "'"; |
||
154 | $html .= " data-todo='" . esc_attr( $action ) . "'"; |
||
155 | $html .= " class='button-primary handle-test-data'"; |
||
156 | $html .= "/>"; |
||
157 | $html .= "<span class='dashicons " . esc_attr( $dashicon ) . "'></span>"; |
||
158 | $html .= esc_html( $text ); |
||
159 | $html .= "</a>"; |
||
160 | |||
161 | return $html; |
||
162 | |||
163 | } |
||
164 | |||
165 | } |
||
166 |