PluginProbe
Property Hive / 1.4.6
Property Hive v1.4.6
2.3.1 2.3.0 2.2.6 2.2.5 2.2.4 2.2.3 2.2.2 1.4.46 1.4.47 1.4.48 1.4.49 1.4.5 1.4.50 1.4.51 1.4.52 1.4.53 1.4.54 1.4.55 1.4.56 1.4.57 1.4.58 1.4.59 1.4.6 1.4.60 1.4.61 All 261 releases
propertyhive / includes / admin / post-types / class-ph-admin-cpt-viewing.php

class-ph-admin-cpt-viewing.php in Property Hive 1.4.6, at includes/admin/post-types/class-ph-admin-cpt-viewing.php

280 lines 8.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Admin functions for the viewing post type
4 *
5 * @author PropertyHive
6 * @category Admin
7 * @package PropertyHive/Admin/Post Types
8 * @version 1.0.0
9 */
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit; // Exit if accessed directly
13 }
14
15 if ( ! class_exists( 'PH_Admin_CPT' ) ) {
16 include( 'class-ph-admin-cpt.php' );
17 }
18
19 if ( ! class_exists( 'PH_Admin_CPT_Viewing' ) ) :
20
21 /**
22 * PH_Admin_CPT_Viewing Class
23 */
24 class PH_Admin_CPT_Viewing extends PH_Admin_CPT {
25
26 /**
27 * Constructor
28 */
29 public function __construct() {
30 $this->type = 'viewing';
31
32 // Before data updates
33 add_action( 'pre_post_update', array( $this, 'pre_post_update' ) );
34 add_filter( 'wp_insert_post_data', array( $this, 'wp_insert_post_data' ) );
35
36 // Admin Columns
37 add_filter( 'manage_edit-viewing_columns', array( $this, 'edit_columns' ) );
38 add_action( 'manage_viewing_posts_custom_column', array( $this, 'custom_columns' ), 2 );
39 add_filter( 'manage_edit-viewing_sortable_columns', array( $this, 'custom_columns_sort' ) );
40 add_filter( 'request', array( $this, 'custom_columns_orderby' ) );
41
42 // Bulk / quick edit
43 add_filter( 'bulk_actions-edit-viewing', array( $this, 'remove_bulk_actions') );
44 /*add_action( 'bulk_edit_custom_box', array( $this, 'bulk_edit' ), 10, 2 );
45 add_action( 'quick_edit_custom_box', array( $this, 'quick_edit' ), 10, 2 );
46 add_action( 'save_post', array( $this, 'bulk_and_quick_edit_save_post' ), 10, 2 );*/
47
48 // Call PH_Admin_CPT constructor
49 parent::__construct();
50 }
51
52 /**
53 * Check if we're editing or adding a viewing
54 * @return boolean
55 */
56 private function is_editing_viewing() {
57 if ( ! empty( $_GET['post_type'] ) && 'viewing' == $_GET['post_type'] ) {
58 return true;
59 }
60 if ( ! empty( $_GET['post'] ) && 'viewing' == get_post_type( $_GET['post'] ) ) {
61 return true;
62 }
63 if ( ! empty( $_REQUEST['post_id'] ) && 'viewing' == get_post_type( $_REQUEST['post_id'] ) ) {
64 return true;
65 }
66 return false;
67 }
68
69 /**
70 * @param int $post_id
71 */
72 public function pre_post_update( $post_id ) {
73
74 }
75
76 /**
77 * @param array $data
78 * @return array
79 */
80 public function wp_insert_post_data( $data ) {
81
82
83 return $data;
84 }
85
86 /**
87 * Change the columns shown in admin.
88 */
89 public function edit_columns( $existing_columns ) {
90
91 if ( empty( $existing_columns ) && ! is_array( $existing_columns ) ) {
92 $existing_columns = array();
93 }
94
95 unset( $existing_columns['title'], $existing_columns['comments'], $existing_columns['date'] );
96
97 $columns = array();
98 $columns['cb'] = '<input type="checkbox" />';
99 $columns['start_date_time'] = __( 'Viewing Date / Time', 'propertyhive' );
100 $columns['property'] = __( 'Property', 'propertyhive' );
101 $columns['applicant'] = __( 'Applicant', 'propertyhive' );
102 $columns['status'] = __( 'Status', 'propertyhive' );
103
104 return array_merge( $columns, $existing_columns );
105 }
106
107 /**
108 * Define our custom columns shown in admin.
109 * @param string $column
110 */
111 public function custom_columns( $column ) {
112 global $post, $propertyhive, $the_viewing;
113
114 if ( empty( $the_viewing ) || $the_viewing->ID != $post->ID )
115 {
116 $the_viewing = new PH_Viewing( $post->ID );
117 }
118
119 switch ( $column ) {
120 case 'start_date_time' :
121
122 $edit_link = get_edit_post_link( $post->ID );
123 //$title = _draft_or_post_title();
124 $title = date("H:i jS F Y", strtotime($the_viewing->start_date_time));
125
126 $post_type_object = get_post_type_object( $post->post_type );
127 $can_edit_post = current_user_can( $post_type_object->cap->edit_post, $post->ID );
128
129 echo '<strong><a class="row-title" href="' . esc_url( $edit_link ) .'">' . $title.'</a></strong>';
130
131 // Get actions
132 $actions = array();
133
134 if ( $can_edit_post && 'trash' != $post->post_status ) {
135 $actions['edit'] = '<a href="' . get_edit_post_link( $post->ID, true ) . '" title="' . esc_attr( __( 'Edit this item', 'propertyhive' ) ) . '">' . __( 'Edit', 'propertyhive' ) . '</a>';
136 }
137 if ( current_user_can( $post_type_object->cap->delete_post, $post->ID ) ) {
138 if ( 'trash' == $post->post_status ) {
139 $actions['untrash'] = '<a title="' . esc_attr( __( 'Restore this item from the Trash', 'propertyhive' ) ) . '" href="' . wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $post->ID ) ), 'untrash-post_' . $post->ID ) . '">' . __( 'Restore', 'propertyhive' ) . '</a>';
140 } elseif ( EMPTY_TRASH_DAYS ) {
141 //$actions['trash'] = '<a class="submitdelete" title="' . esc_attr( __( 'Move this item to the Trash', 'propertyhive' ) ) . '" href="' . get_delete_post_link( $post->ID ) . '">' . __( 'Trash', 'propertyhive' ) . '</a>';
142 }
143
144 if ( 'trash' == $post->post_status || ! EMPTY_TRASH_DAYS ) {
145 $actions['delete'] = '<a class="submitdelete" title="' . esc_attr( __( 'Delete this item permanently', 'propertyhive' ) ) . '" href="' . get_delete_post_link( $post->ID, '', true ) . '">' . __( 'Delete Permanently', 'propertyhive' ) . '</a>';
146 }
147 }
148 if ( $post_type_object->public ) {
149 if ( in_array( $post->post_status, array( 'pending', 'draft', 'future' ) ) ) {
150 if ( $can_edit_post )
151 $actions['view'] = '<a href="' . esc_url( add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ) ) . '" title="' . esc_attr( sprintf( __( 'Preview &#8220;%s&#8221;', 'propertyhive' ), $title ) ) . '" rel="permalink">' . __( 'Preview', 'propertyhive' ) . '</a>';
152 } elseif ( 'trash' != $post->post_status ) {
153 $actions['view'] = '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;', 'propertyhive' ), $title ) ) . '" rel="permalink">' . __( 'View', 'propertyhive' ) . '</a>';
154 }
155 }
156
157 $actions = apply_filters( 'post_row_actions', $actions, $post );
158
159 echo '<div class="row-actions">';
160
161 $i = 0;
162 $action_count = sizeof($actions);
163
164 foreach ( $actions as $action => $link ) {
165 ++$i;
166 ( $i == $action_count ) ? $sep = '' : $sep = ' | ';
167 echo '<span class="' . $action . '">' . $link . $sep . '</span>';
168 }
169 echo '</div>';
170
171 break;
172 case 'property' :
173
174 $property = new PH_Property((int)$the_viewing->property_id);
175 echo $property->get_formatted_full_address();
176
177 break;
178 case 'applicant' :
179
180 echo get_the_title($the_viewing->applicant_contact_id);
181
182 break;
183 case 'status' :
184
185 echo ucwords(str_replace("_", " ", $the_viewing->status));
186 if ( $the_viewing->status == 'carried_out' )
187 {
188 echo '<br>';
189 switch ( $the_viewing->feedback_status )
190 {
191 case "interested": { echo 'Applicant Interested'; break; }
192 case "not_interested": { echo 'Applicant Not Interested'; break; }
193 case "not_required": { echo 'Feedback Not Required'; break; }
194 default: { echo 'Awaiting Feedback'; }
195 }
196
197 if ( $the_viewing->feedback_status == 'interested' || $the_viewing->feedback_status == 'not_interested' )
198 {
199 echo '<br>' . ( ($the_viewing->feedback_passed_on == 'yes') ? 'Feedback Passed On' : 'Feedback Not Passed On' );
200 }
201 }
202
203 break;
204 default :
205 break;
206 }
207 }
208
209 /**
210 * Make viewing columns sortable
211 *
212 * @access public
213 * @param mixed $columns
214 * @return array
215 */
216 public function custom_columns_sort( $columns ) {
217 $custom = array(
218 'start_date_time' => '_start_date_time',
219 );
220 return wp_parse_args( $custom, $columns );
221 }
222
223 /**
224 * Viewing column orderby
225 *
226 * @access public
227 * @param mixed $vars
228 * @return array
229 */
230 public function custom_columns_orderby( $vars ) {
231 if ( is_admin() && $vars['post_type'] == 'viewing' )
232 {
233 $vars = array_merge( $vars, array(
234 'meta_key' => '_start_date_time',
235 'orderby' => 'meta_value'
236 ) );
237 }
238 return $vars;
239 }
240
241 /**
242 * Remove bulk edit option
243 * @param array $actions
244 */
245 public function remove_bulk_actions( $actions ) {
246 unset( $actions['edit'] );
247 return $actions;
248 }
249
250 /**
251 * Show a status filter box
252 */
253 public function propertyhive_filters() {
254 global $typenow, $wp_query;
255
256 if ( 'viewing' != $typenow ) {
257 return;
258 }
259
260 echo apply_filters( 'propertyhive_viewing_filters', $output );
261 }
262
263 /**
264 * Filter the viewings in admin based on options
265 *
266 * @param mixed $query
267 */
268 public function viewing_filters_query( $query ) {
269 global $typenow, $wp_query;
270
271 if ( 'viewing' == $typenow ) {
272
273 }
274 }
275 }
276
277 endif;
278
279 return new PH_Admin_CPT_Viewing();
280