PluginProbe
Assistant – Every Day Productivity Apps / 1.5.5.1
Assistant – Every Day Productivity Apps v1.5.5.1
1.5.5.1 1.5.5 trunk 0.1.0 0.2.0 0.2.1 0.2.2 0.3.0 0.3.1 0.4 0.4.1 0.4.2 0.5.0 0.5.1 0.6.0 0.7.0 0.7.0.2 0.7.0.3 0.7.0.4 0.7.0.5 0.7.0.6 0.7.0.7 0.7.0.8 0.7.0.9 0.7.1 All 72 releases
← All changes | backend/src/Data/Transformers/PostTransformer.php +71 -25 0.3.1 → 1.5.5.1 View file →
@@ -1,14 +1,13 @@
1 1 <?php
2 2
3 -
4 3 namespace FL\Assistant\Data\Transformers;
5 4
6 5 use FL\Assistant\Data\Repository\NotationsRepository;
7 6 use FL\Assistant\Data\Repository\TermsRepository;
8 7 use FL\Assistant\System\Integrations\BeaverBuilder;
8 +use FL\Assistant\Helpers\PreviewHelper;
9 9
10 -
11 10 /**
12 11 * Class PostTransformer
13 12 *
14 13 * Convert a WP_Post object to array suitable for REST output
@@ -49,8 +48,23 @@
49 48
50 49 /**
51 50 * @param \WP_Post $post
52 51 *
52 + * @return string
53 + */
54 + public function get_edit_post_link( \WP_Post $post ) {
55 +
56 + if ( strstr( $post->post_type, 'wp_template' ) ) {
57 + $id = get_stylesheet() . '//' . $post->post_name;
58 + return admin_url( "/site-editor.php?postType={$post->post_type}&postId={$id}" );
59 + }
60 +
61 + return get_edit_post_link( $post->ID, '' );
62 + }
63 +
64 + /**
65 + * @param \WP_Post $post
66 + *
53 67 * @return array
54 68 */
55 69 public function transform( \WP_Post $post ) {
56 70 $author = get_the_author_meta( 'display_name', $post->post_author );
@@ -59,33 +73,65 @@
59 73
60 74 $thumb_id = get_post_thumbnail_id( $post );
61 75 $thumb_data = wp_prepare_attachment_for_js( $thumb_id );
62 76
77 + $registered_post_types = get_post_types();
78 +
79 + $all_users = get_users( [ 'who' => 'authors' ] );
80 + $users = [];
81 +
82 + foreach ( $all_users as $user ) {
83 + $users[ $user->ID ] = $user->display_name;
84 + }
85 +
86 + if ( ! function_exists( 'wp_check_post_lock' ) ) {
87 + require_once ABSPATH . 'wp-admin/includes/post.php';
88 + }
89 +
63 90 $response = [
64 - 'author' => $author,
65 - 'commentsAllowed' => 'open' === $post->comment_status ? true : false,
66 - 'excerpt' => $post->post_excerpt,
67 - 'date' => $date,
68 - 'editUrl' => get_edit_post_link( $post->ID, '' ),
69 - 'id' => $post->ID,
70 - 'labels' => [],
71 - 'order' => $post->menu_order,
72 - 'parent' => $post->post_parent,
73 - 'password' => $post->post_password,
74 - 'pingbacksAllowed' => 'open' === $post->ping_status ? true : false,
75 - 'slug' => $post->post_name,
76 - 'status' => $post->post_status,
77 - 'template' => empty( $template ) ? 'default' : $template,
78 - 'terms' => [],
79 - 'thumbnail' => get_the_post_thumbnail_url( $post, 'thumbnail' ),
80 - 'thumbnailData' => $thumb_data,
81 - 'title' => empty( $post->post_title ) ? __( '(no title)', 'fl-assistant' ) : $post->post_title,
82 - 'trashedStatus' => get_post_meta( $post->ID, '_wp_trash_meta_status', true ),
83 - 'type' => $post->post_type,
84 - 'url' => get_permalink( $post ),
85 - 'visibility' => 'public',
86 - 'commentsCount' => get_comments_number( $post->ID ),
91 + 'author' => $author,
92 + 'post_author' => $post->post_author,
93 + 'commentsAllowed' => 'open' === $post->comment_status ? true : false,
94 + 'excerpt' => $post->post_excerpt,
95 + 'date' => $date,
96 + 'editUrl' => $this->get_edit_post_link( $post ),
97 + 'previewUrl' => PreviewHelper::get_post_preview_url( $post ),
98 + 'id' => $post->ID,
99 + 'labels' => [],
100 + 'order' => $post->menu_order,
101 + 'parent' => $post->post_parent,
102 + 'password' => $post->post_password,
103 + 'pingbacksAllowed' => 'open' === $post->ping_status ? true : false,
104 + 'slug' => $post->post_name,
105 + 'status' => $post->post_status,
106 + 'template' => empty( $template ) ? 'default' : $template,
107 + 'terms' => [],
108 + 'thumbnail' => get_the_post_thumbnail_url( $post, 'thumbnail' ),
109 + 'thumbnailData' => $thumb_data,
110 + 'title' => empty( $post->post_title ) ? __( '(no title)', 'assistant' ) : $post->post_title,
111 + 'trashedStatus' => get_post_meta( $post->ID, '_wp_trash_meta_status', true ),
112 + 'type' => $post->post_type,
113 + 'url' => get_permalink( $post ),
114 + 'visibility' => 'public',
115 + 'commentsCount' => get_comments_number( $post->ID ),
116 + 'isSticky' => is_sticky( $post->ID ),
117 + 'authorList' => $users,
118 + 'hasLock' => wp_check_post_lock( $post->ID ),
119 + 'postTypeRegistered' => in_array( $post->post_type, $registered_post_types ),
87 120 ];
121 +
122 + // Code App
123 + if ( 'fl_code' === $post->post_type ) {
124 + $code = get_post_meta( $post->ID, '_fl_asst_code', true );
125 + $code_type = get_post_meta( $post->ID, '_fl_asst_code_type', true );
126 + $locations = get_post_meta( $post->ID, '_fl_asst_code_locations', true );
127 + $enabled = get_post_meta( $post->ID, '_fl_asst_enable', true );
128 + $response['code'] = $code;
129 + $response['description'] = $post->post_content;
130 + $response['enable'] = $enabled;
131 + $response['subtype'] = $code_type;
132 + $response['locations'] = $locations;
133 + }
88 134
89 135 // Post visibility.
90 136 if ( 'private' === $post->post_status ) {
91 137 $response['visibility'] = 'private';