Changeset 11587
- Timestamp:
- 02/21/2022 07:33:21 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-o2-posting-access/wporg-o2-allow-crossposting.php
r10645 r11587 42 42 // List all sites in the auto-complete. 43 43 add_action( 'init', [ $this, 'override_o2_xposts_get_data' ], 9 ); // before o2_Xposts::get_data(); 44 45 // Filter new posts & comments to fix/expand short xposts. 46 add_filter( 'preprocess_comment', [ $this, 'preprocess_comment' ] ); 47 add_filter( 'o2_create_post', [ $this, 'o2_create_post' ] ); 44 48 } 45 49 … … 140 144 return $allcaps; 141 145 } 146 147 148 /** 149 * Filter newly created comments to correct any mis-typed crossposts. 150 */ 151 public function preprocess_comment( $comment_data ) { 152 $comment_data['comment_content'] = $this->correct_xposts( $comment_data['comment_content'] ); 153 154 return $comment_data; 155 } 156 157 /** 158 * Filter newly created posts to correct any mis-typed crossposts. 159 */ 160 public function o2_create_post( $post ) { 161 $post->post_content = addslashes( $this->correct_xposts( stripslashes( $post->post_content ) ) ); 162 163 return $post; 164 } 165 166 /** 167 * Corrects xposts from either +site or +domain/site to +domain/site/ as required on make.wordpress.org. 168 */ 169 protected function correct_xposts( $string ) { 170 $current_site = get_blog_details(); 171 172 return preg_replace_callback( 173 o2_Xposts::XPOSTS_REGEX, 174 function( $m ) use( $current_site ) { 175 $site = $m[1]; 176 $site = str_replace( $current_site->domain, '', $site ); 177 $site = trim( $site, '/' ); 178 179 $sites = get_sites( [ 180 'fields' => 'ids', 181 'network_id' => $current_site->site_id, 182 'domain' => $current_site->domain, 183 'path' => "/{$site}/", 184 ] ); 185 186 // If site could not be found, or there's multiple, let o2 deal with it. 187 if ( count( $sites ) !== 1 ) { 188 return $m[0]; 189 } 190 191 $correct = "make.wordpress.org/{$site}/"; 192 if ( $m[1] !== $correct ) { 193 return str_replace( $m[1], $correct, $m[0] ); 194 } 195 196 return $m[0]; 197 }, 198 $string 199 ); 200 } 201 142 202 } 143 203
Note: See TracChangeset
for help on using the changeset viewer.