PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.7.2
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.7.2
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/helpers/FrmEntriesListHelper.php +132 -38 6.3.26.7.2 View file →
@@ -9,8 +9,9 @@
9 9 protected $field;
10 10
11 11 /**
12 12 * @since 4.07
13 + * @var int
13 14 */
14 15 public $total_items = 0;
15 16
16 17 /**
@@ -16,41 +17,70 @@
16 17 /**
17 18 * @return void
18 19 */
19 20 public function prepare_items() {
20 - global $per_page;
21 + $this->set_per_page();
22 + $s_query = array();
21 23
22 - $per_page = $this->get_items_per_page( 'formidable_page_formidable_entries_per_page' );
23 - $form_id = $this->params['form'];
24 + $join_form_in_query = false;
24 25
25 - $s_query = array();
26 + $this->items = $this->get_entry_items( $s_query, $join_form_in_query );
27 + $this->set_total_items( $s_query );
28 + $this->prepare_pagination();
29 + }
26 30
27 - if ( $form_id ) {
28 - $s_query['it.form_id'] = $form_id;
29 - $join_form_in_query = false;
30 - } else {
31 - $s_query[] = array(
32 - 'or' => 1,
33 - 'parent_form_id' => null,
34 - 'parent_form_id <' => 1,
35 - );
36 - $join_form_in_query = true;
37 - }
31 + protected function set_total_items( $s_query ) {
32 + $this->total_items = FrmEntry::getRecordCount( $s_query );
33 + }
38 34
39 - $s = self::get_param(
35 + /**
36 + * Prepares pagination.
37 + *
38 + * @since 6.5.4
39 + */
40 + protected function prepare_pagination() {
41 + global $per_page;
42 +
43 + $this->set_pagination_args(
40 44 array(
41 - 'param' => 's',
42 - 'sanitize' => 'sanitize_text_field',
45 + 'total_items' => $this->total_items,
46 + 'per_page' => $per_page,
43 47 )
44 48 );
49 + }
45 50
46 - if ( $s != '' && FrmAppHelper::pro_is_installed() ) {
47 - $fid = self::get_param( array( 'param' => 'fid' ) );
48 - $s_query = FrmProEntriesHelper::get_search_str( $s_query, $s, $form_id, $fid );
49 - }
51 + /**
52 + * Sets the global $per_page variable
53 + *
54 + * @since 6.5.4
55 + */
56 + protected function set_per_page() {
57 + global $per_page;
58 + $per_page = $this->get_items_per_page( 'formidable_page_formidable_entries_per_page' );
59 + }
50 60
51 - $s_query = apply_filters( 'frm_entries_list_query', $s_query, compact( 'form_id' ) );
61 + /**
62 + * @since 6.5.4
63 + *
64 + * @param array $s_query
65 + * @param bool $join_form_in_query
66 + *
67 + * @return array
68 + */
69 + protected function get_entry_items( &$s_query, &$join_form_in_query ) {
70 + global $per_page;
71 + $s_query = $this->get_search_query( $join_form_in_query );
72 + $order = $this->get_order_by();
73 + $limit = $this->get_limit( $per_page );
52 74
75 + return FrmEntry::getAll( $s_query, $order, $limit, true, $join_form_in_query );
76 + }
77 +
78 + /**
79 + * @since 6.5.4
80 + * @return string
81 + */
82 + protected function get_order_by() {
53 83 $orderby = self::get_param(
54 84 array(
55 85 'param' => 'orderby',
56 86 'default' => 'id',
@@ -67,10 +97,19 @@
67 97 'param' => 'order',
68 98 'default' => 'DESC',
69 99 )
70 100 );
71 - $order = FrmDb::esc_order( $orderby . ' ' . $order );
72 101
102 + return FrmDb::esc_order( $orderby . ' ' . $order );
103 + }
104 +
105 + /**
106 + * @since 6.5.4
107 + *
108 + * @param int $per_page
109 + * @return string
110 + */
111 + protected function get_limit( $per_page ) {
73 112 $page = $this->get_pagenum();
74 113 $start = (int) self::get_param(
75 114 array(
76 115 'param' => 'start',
@@ -77,22 +116,59 @@
77 116 'default' => ( $page - 1 ) * $per_page,
78 117 )
79 118 );
80 119
81 - $limit = FrmDb::esc_limit( $start . ',' . $per_page );
82 - $this->items = FrmEntry::getAll( $s_query, $order, $limit, true, $join_form_in_query );
83 - $total_items = FrmEntry::getRecordCount( $s_query );
84 - $this->total_items = $total_items;
120 + return FrmDb::esc_limit( $start . ',' . $per_page );
121 + }
85 122
86 - $this->set_pagination_args(
123 + /**
124 + * @since 6.5.4
125 + *
126 + * @param bool $join_form_in_query
127 + * @return array
128 + */
129 + protected function get_search_query( &$join_form_in_query ) {
130 + $form_id = $this->params['form'];
131 + $s_query = array();
132 +
133 + if ( $form_id ) {
134 + $form_ids = $this->get_form_ids( $form_id );
135 + $s_query['it.form_id'] = count( $form_ids ) > 1 ? $form_ids : $form_ids[0];
136 + } else {
137 + $s_query[] = array(
138 + 'or' => 1,
139 + 'parent_form_id' => null,
140 + 'parent_form_id <' => 1,
141 + );
142 + $join_form_in_query = true;
143 + }
144 +
145 + $s = self::get_param(
87 146 array(
88 - 'total_items' => $total_items,
89 - 'per_page' => $per_page,
147 + 'param' => 's',
148 + 'sanitize' => 'sanitize_text_field',
90 149 )
91 150 );
151 +
152 + if ( $s != '' && FrmAppHelper::pro_is_installed() ) {
153 + $fid = self::get_param( array( 'param' => 'fid' ) );
154 + $s_query = FrmProEntriesHelper::get_search_str( $s_query, $s, $form_id, $fid );
155 + }
156 +
157 + return apply_filters( 'frm_entries_list_query', $s_query, compact( 'form_id' ) );
92 158 }
93 159
94 160 /**
161 + * @since 6.5.4
162 + *
163 + * @param int|string $form_id
164 + * @return array<int>
165 + */
166 + protected function get_form_ids( $form_id ) {
167 + return array( (int) $form_id );
168 + }
169 +
170 + /**
95 171 * @return void
96 172 */
97 173 public function no_items() {
98 174 $s = self::get_param(
@@ -250,9 +326,9 @@
250 326 }
251 327 $r .= '</td>';
252 328 }
253 329 unset( $val );
254 - }
330 + }//end foreach
255 331 $r .= '</tr>';
256 332
257 333 return $r;
258 334 }
@@ -286,9 +362,14 @@
286 362 $date = FrmAppHelper::get_formatted_time( $item->{$col_name} );
287 363 $val = '<abbr title="' . esc_attr( FrmAppHelper::get_formatted_time( $item->{$col_name}, '', 'g:i:s A' ) ) . '">' . $date . '</abbr>';
288 364 break;
289 365 case 'is_draft':
290 - $val = empty( $item->is_draft ) ? esc_html__( 'No', 'formidable' ) : esc_html__( 'Yes', 'formidable' );
366 + $entry_status = FrmEntriesHelper::get_entry_status_label( $item->is_draft );
367 + $val = sprintf(
368 + '<span class="frm-entry-status frm-entry-status-%s">%s</span>',
369 + sanitize_html_class( $item->is_draft ),
370 + esc_html( $entry_status )
371 + );
291 372 break;
292 373 case 'form_id':
293 374 $form_id = $item->form_id;
294 375 $user_can_edit_forms = false === FrmAppHelper::permission_nonce_error( 'frm_edit_forms' );
@@ -322,17 +403,17 @@
322 403 * @param mixed $val Column value.
323 404 * @param array $args Contains `item` and `col_name`.
324 405 */
325 406 $val = apply_filters( 'frm_entries_column_value', $val, compact( 'item', 'col_name' ) );
326 - }
407 + }//end switch
327 408
328 409 return $val;
329 410 }
330 411
331 412 /**
413 + * @param array $actions
414 + * @param object $item
332 415 * @param string $view_link
333 - * @param array $actions
334 - * @param object $item
335 416 *
336 417 * @return void
337 418 */
338 419 private function get_actions( &$actions, $item, $view_link ) {
@@ -346,9 +427,10 @@
346 427 $actions = apply_filters( 'frm_row_actions', $actions, $item );
347 428 }
348 429
349 430 /**
350 - * @param false $val
431 + * @param object $item
432 + * @param false $val
351 433 *
352 434 * @return void
353 435 */
354 436 private function get_column_value( $item, &$val ) {
@@ -393,7 +475,19 @@
393 475 /**
394 476 * @return string
395 477 */
396 478 protected function confirm_bulk_delete() {
397 - return __( 'ALL selected entries in this form will be permanently deleted. Want to proceed?', 'formidable' );
479 + return sprintf(
480 + /* translators: %1$s: HTML break line, %2$s: HTML bold text */
481 + esc_html__( 'ALL entries in this form will be permanently deleted.%1$sWant to proceed? Type %2$s below.', 'formidable' ),
482 + '<br/>',
483 + '<b>DELETE ALL</b>'
484 + );
485 + }
486 +
487 + /**
488 + * @return string
489 + */
490 + protected function loaded_from() {
491 + return 'entries-list';
398 492 }
399 493 }