Changeset 1755493
- Timestamp:
- 10/30/2017 08:26:46 PM (8 years ago)
- Location:
- exposify/trunk
- Files:
-
- 4 edited
-
README.txt (modified) (3 diffs)
-
admin.php (modified) (11 diffs)
-
exposify.php (modified) (4 diffs)
-
public.php (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
exposify/trunk/README.txt
r1731187 r1755493 4 4 Requires at least: 4.5.0 5 5 Tested up to: 4.6.1 6 Stable tag: 1. 5.06 Stable tag: 1.6 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 15 15 content and personalized styling make it a must have for all Exposify users! 16 16 17 Visit us at [www.exposify.de ](https://www.exposify.de) or [send us a mail](mailto: info@exposify.de) 📬17 Visit us at [www.exposify.de ](https://www.exposify.de) or [send us a mail](mailto:team@exposify.de) 📬 18 18 19 19 == Installation == … … 48 48 == Changelog == 49 49 50 = 1.6 = 51 * Update plugin to insert page titles correctly 50 52 = 1.5 = 51 53 * Change page titles where possible -
exposify/trunk/admin.php
r1572347 r1755493 3 3 /** 4 4 * Add an options page. 5 * 6 * @return void 5 7 */ 6 8 function exposify_add_options_page() … … 11 13 /** 12 14 * Initialize all settings. 15 * 16 * @return void 13 17 */ 14 18 function exposify_init_settings() … … 67 71 /** 68 72 * Sanitize settings which aren't used as template. 69 * @param Array $option 70 * @return Array 73 * 74 * @param array $option 75 * @return array 71 76 */ 72 77 function exposify_sanitize_settings($option) … … 82 87 /** 83 88 * Display the field. 89 * 90 * @return void 84 91 */ 85 92 function exposify_api_key_render() … … 93 100 /** 94 101 * Display the field. 102 * 103 * @return void 95 104 */ 96 105 function exposify_site_title_render() … … 104 113 /** 105 114 * Display the field. 115 * 116 * @return void 106 117 */ 107 118 function exposify_site_slug_render() … … 115 126 /** 116 127 * Display the field. 128 * 129 * @return void 117 130 */ 118 131 function exposify_theme_template_render() … … 133 146 /** 134 147 * Display the options page. 148 * 149 * @return void 135 150 */ 136 151 function exposify_settings_page() … … 150 165 /** 151 166 * Hook for updated settings. Update the page and rules when necessary. 152 * @param $old_settings Array The old settings 153 * @param $new_settings Array The new settings 167 * 168 * @param array $old_settings 169 * @param array $new_settings 170 * @return void 154 171 */ 155 172 function exposify_settings_updated($old_settings, $new_settings) … … 161 178 ) { 162 179 wp_update_post([ 163 'ID' => get_option('exposify_ properties_page_id'),180 'ID' => get_option('exposify_overview_page_id'), 164 181 'post_title' => $new_settings['exposify_site_title'] ? $new_settings['exposify_site_title'] : 'Immobilien', 165 'post_name' => $new_settings['exposify_site_slug'] ? $new_settings['exposify_site_slug']: 'immobilien'182 'post_name' => $new_settings['exposify_site_slug'] ? $new_settings['exposify_site_slug'] : 'immobilien' 166 183 ]); 167 184 } … … 175 192 /** 176 193 * Remove the properties page from the overview. 194 * 177 195 * @param WP_Query $query 178 */ 179 function exposify_remove_page_from_overview($query) 196 * @return void 197 */ 198 function exposify_remove_pages_from_admin_interfaces($query) 180 199 { 181 200 global $pagenow, $post_type; 182 201 202 // remove detail page from every possible place 203 $query->query_vars['post__not_in'] = [ 204 get_option('exposify_property_page_id') 205 ]; 206 207 // remove overview page only from wordpress page overview 183 208 if ($pagenow == 'edit.php' && $post_type == 'page') { 184 $query->query_vars['post__not_in'] = [get_option('exposify_properties_page_id')];209 $query->query_vars['post__not_in'][] = get_option('exposify_overview_page_id'); 185 210 } 186 211 } 187 212 188 add_action('parse_query', 'exposify_remove_page _from_overview');213 add_action('parse_query', 'exposify_remove_pages_from_admin_interfaces'); 189 214 add_action('admin_menu', 'exposify_add_options_page'); 190 215 add_action('admin_init', 'exposify_init_settings'); -
exposify/trunk/exposify.php
r1731187 r1755493 5 5 Plugin URI: https://exposify.de 6 6 Description: Zeigt alle eigenen Immobilienangebote von Exposify. 7 Version: 1. 5.07 Version: 1.6 8 8 Author: Exposify 9 9 Author URI: https://exposify.de … … 13 13 /** 14 14 * Add the page and the rewrite rules. 15 * 16 * @return void 15 17 */ 16 18 function exposify_activate_plugin() 17 19 { 18 exposify_add_ properties_page();20 exposify_add_all_pages(); 19 21 exposify_rewrite(); 20 22 flush_rewrite_rules(); … … 22 24 23 25 /** 24 * Remove the page. 26 * Remove the pages. Remove the old option from the previous plugin version. 27 * 28 * @return void 25 29 */ 26 30 function exposify_deactivate_plugin() 27 31 { 28 $pageID = get_option('exposify_properties_page_id'); 29 if ($pageID) { 30 wp_delete_post($pageID, true); 31 } 32 exposify_delete_page('exposify_overview_page_id'); 33 exposify_delete_page('exposify_property_page_id'); 34 35 delete_option('exposify_properties_page_id'); 36 32 37 flush_rewrite_rules(); 33 38 } 34 39 35 40 /** 36 * Rewrite the URLs for single properties 41 * Rewrite the URLs for single properties. Add 404 redirect for detail page. 42 * 43 * @return void 37 44 */ 38 45 function exposify_rewrite() … … 40 47 $options = get_option('exposify_settings'); 41 48 $slug = $options['exposify_site_slug'] ? $options['exposify_site_slug'] : 'immobilien'; 42 add_rewrite_rule('^' . $slug . '/(.+)/?$', 'index.php?page_id=' . get_option('exposify_propert ies_page_id') . '&slug=$matches[1]', 'top');49 add_rewrite_rule('^' . $slug . '/(.+)/?$', 'index.php?page_id=' . get_option('exposify_property_page_id') . '&slug=$matches[1]', 'top'); 43 50 add_rewrite_tag('%slug%', '([^&]+)'); 51 add_rewrite_rule('^exposify-detail$', 'index.php?error=404', 'top'); 44 52 } 45 53 46 54 /** 47 55 * Add a properties page and store its id. If there is already a saved id, delete it and add a new one. 56 * 57 * @return void 48 58 */ 49 function exposify_add_ properties_page()59 function exposify_add_all_pages() 50 60 { 51 61 $options = get_option('exposify_settings'); 52 $ pageTitle = ($options['exposify_site_title']) ? $options['exposify_site_title'] : 'Immobilien';53 $ pageName= ($options['exposify_site_slug']) ? $options['exposify_site_slug'] : 'immobilien';62 $overviewTitle = ($options['exposify_site_title']) ? $options['exposify_site_title'] : 'Immobilien'; 63 $overviewSlug = ($options['exposify_site_slug']) ? $options['exposify_site_slug'] : 'immobilien'; 54 64 65 exposify_add_page($overviewTitle, $overviewSlug, 'exposify_overview_page_id'); 66 exposify_add_page('Exposify Detail', 'exposify-detail', 'exposify_property_page_id'); 67 } 68 69 /** 70 * Add an Exposify page with title, slug and an option to store its id in the database. 71 * 72 * @param string $pageTitle 73 * @param string $pageSlug 74 * @param string $pageDatabaseOptionName 75 * @return void 76 */ 77 function exposify_add_page($pageTitle, $pageSlug, $pageDatabaseOptionName) 78 { 55 79 $page = [ 56 80 'post_content' => '', 57 81 'post_title' => $pageTitle, 58 'post_name' => $page Name,82 'post_name' => $pageSlug, 59 83 'post_status' => 'publish', 60 84 'post_type' => 'page' 61 85 ]; 62 86 63 $pageI D = get_option('exposify_properties_page_id');64 if ($pageI D) {65 wp_delete_post($pageI D, true);87 $pageId = get_option($pageDatabaseOptionName); 88 if ($pageId) { 89 wp_delete_post($pageId, true); 66 90 } 67 91 68 $pageID = wp_insert_post($page); 69 update_option('exposify_properties_page_id', $pageID); 92 $pageId = wp_insert_post($page); 93 update_option($pageDatabaseOptionName, $pageId); 94 } 95 96 /** 97 * Delete an Exposify page with the option where its id is stored in the database. 98 * 99 * @param string $pageDatabaseOptionName 100 * @return void 101 */ 102 function exposify_delete_page($pageDatabaseOptionName) 103 { 104 $pageId = get_option($pageDatabaseOptionName); 105 if ($pageId) { 106 wp_delete_post($pageId, true); 107 } 70 108 } 71 109 -
exposify/trunk/public.php
r1731185 r1755493 24 24 add_filter('page_template', [$this, 'changePageTemplate']); 25 25 add_action('wp_enqueue_scripts', [$this, 'insertLinks']); 26 add_filter('the_title', [$this, 'changePageTitle'] );26 add_filter('the_title', [$this, 'changePageTitle'], 10, 2); 27 27 add_filter('pre_get_document_title', [$this, 'changeSiteTitle']); 28 28 } … … 52 52 public function changePageTemplate($oldTemplate) 53 53 { 54 if (get_the_ID() != get_option('exposify_properties_page_id')) { 54 if ( 55 get_the_ID() != get_option('exposify_overview_page_id') && 56 get_the_ID() != get_option('exposify_property_page_id') 57 ) { 55 58 return $oldTemplate; 56 59 } … … 72 75 public function changePageContent($oldContent) 73 76 { 74 if (get_the_ID() != get_option('exposify_properties_page_id')) { 77 if ( 78 get_the_ID() != get_option('exposify_overview_page_id') && 79 get_the_ID() != get_option('exposify_property_page_id') 80 ) { 75 81 return $oldContent; 76 82 } … … 81 87 82 88 /** 83 * Change the page title to the property name. 89 * Change the page title to the property name. We need to use the passed $pageId 90 * here instead of the get_the_ID() method because it would return the same ID 91 * for all titles. But we only want to change the main title of the detail page, 92 * not of the other menu items. 84 93 * 85 94 * @param string $oldTitle 86 95 * @return string 87 96 */ 88 public function changePageTitle($oldTitle )97 public function changePageTitle($oldTitle, $pageId) 89 98 { 90 99 if ( 91 100 !get_query_var('slug') || 92 get_the_ID() != get_option('exposify_properties_page_id') || 93 !in_the_loop() 101 $pageId != get_option('exposify_property_page_id') 94 102 ) { 95 103 return $oldTitle; … … 124 132 public function insertLinks() 125 133 { 126 if (get_the_ID() != get_option('exposify_properties_page_id')) { 134 if ( 135 get_the_ID() != get_option('exposify_overview_page_id') && 136 get_the_ID() != get_option('exposify_property_page_id') 137 ) { 127 138 return; 128 139 }
Note: See TracChangeset
for help on using the changeset viewer.