Changeset 2975290
- Timestamp:
- 10/05/2023 03:27:36 PM (2 years ago)
- Location:
- hashtagger
- Files:
-
- 21 added
- 4 edited
-
tags/7.2.2 (added)
-
tags/7.2.2/assets (added)
-
tags/7.2.2/assets/css (added)
-
tags/7.2.2/assets/css/hashtagger-ui.css (added)
-
tags/7.2.2/assets/css/index.php (added)
-
tags/7.2.2/assets/css/pp-admin-page-v2.css (added)
-
tags/7.2.2/assets/img (added)
-
tags/7.2.2/assets/img/index.php (added)
-
tags/7.2.2/assets/img/progress.png (added)
-
tags/7.2.2/assets/index.php (added)
-
tags/7.2.2/assets/js (added)
-
tags/7.2.2/assets/js/hashtagger.js (added)
-
tags/7.2.2/assets/js/index.php (added)
-
tags/7.2.2/hashtagger.php (added)
-
tags/7.2.2/inc (added)
-
tags/7.2.2/inc/class-hashtagger.php (added)
-
tags/7.2.2/inc/index.php (added)
-
tags/7.2.2/index.php (added)
-
tags/7.2.2/loader.php (added)
-
tags/7.2.2/readme.txt (added)
-
tags/7.2.2/uninstall.php (added)
-
trunk/hashtagger.php (modified) (1 diff)
-
trunk/inc/class-hashtagger.php (modified) (14 diffs)
-
trunk/loader.php (modified) (1 diff)
-
trunk/readme.txt (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
hashtagger/trunk/hashtagger.php
r2803093 r2975290 8 8 * @wordpress-plugin 9 9 * Plugin Name: Smart Hashtags [#hashtagger] 10 * Plugin URI: https://petersplugins.com/hashtagger/11 10 * Description: Use #hashtags, @usernames and $cashtags in your posts 12 * Version: 7.2. 111 * Version: 7.2.2 13 12 * Author: Peter Raschendorfer 14 * Author URI: https://p etersplugins.com13 * Author URI: https://profiles.wordpress.org/petersplugins/ 15 14 * Text Domain: hashtagger 16 15 * License: GPL2+ -
hashtagger/trunk/inc/class-hashtagger.php
r2803093 r2975290 296 296 add_action( 'wp_ajax_hashtagger_regenerate', array( &$this, 'admin_hashtagger_regenerate' ) ); 297 297 298 add_action( 'admin_notices', array( $this, 'admin_notices' ) );299 298 add_action( 'wp_ajax_pp_hashtagger_dismiss_admin_notice', array( $this, 'dismiss_admin_notice' ) ); 300 299 … … 302 301 303 302 } 304 305 add_filter( 'plugin_action_links_' . plugin_basename( $this->get_plugin_file() ), array( $this, 'add_settings_links' ) );306 303 307 304 } … … 964 961 965 962 } 966 967 968 /**969 * add links to plugins table970 */971 function add_settings_links( $links ) {972 973 return array_merge( $links, array( '<a href="' . admin_url( 'options-general.php?page=hashtaggersettings' ) . '" title="' . __( 'hashtagger settings', 'hashtagger' ) . '">' . __( 'hashtagger settings', 'hashtagger' ) . '</a>', '<a href="https://wordpress.org/support/plugin/' . $this->plugin_slug . '/reviews/" title="' . __( 'Please rate plugin', 'hashtagger' ) . '">' . __( 'Please rate plugin', 'hashtagger' ) . '</a>' ) );974 975 }976 977 963 978 /** 964 965 /** 979 966 * init backend 980 967 */ … … 1055 1042 <div class="pp-admin-notice-area"><div class="wp-header-end"></div></div> 1056 1043 <div class="pp-admin-page-header"> 1057 <nav>1058 1059 <?php $this->show_nav_icons( array(1060 array(1061 'link' => 'https://wordpress.org/support/plugin/' . $this->plugin_slug . '/reviews/',1062 'title' => __( 'Please rate Plugin', 'hashtagger' ),1063 'icon' => 'dashicons-star-filled'1064 ),1065 array(1066 'link' => 'https://wordpress.org/plugins/' . $this->get_plugin_slug(),1067 'title' => __( 'WordPress.org Plugin Page', 'hashtagger' ),1068 'icon' => 'dashicons-wordpress'1069 ),1070 array(1071 'link' => 'https://petersplugins.com/' . $this->get_plugin_slug() .'/manual/',1072 'title' => __( 'Plugin Doc', 'hashtagger' ),1073 'icon' => 'dashicons-book-alt'1074 ),1075 array(1076 'link' => 'https://wordpress.org/support/plugin/' . $this->get_plugin_slug(),1077 'title' => __( 'Support', 'hashtagger' ),1078 'icon' => 'dashicons-editor-help'1079 )1080 ) );1081 ?>1082 </nav>1083 1044 <div class="pp-admin-page-title"><h1><?php echo $this->get_plugin_name(); ?></h1></div> 1084 1045 </div> … … 1114 1075 <?php if ( 'general' == $current_tab ) { ?> 1115 1076 <p>#hashtags <?php _e( 'currently link to', 'hashtagger'); ?> <code style="white-space: nowrap"><?php echo $this->tag_base_url(); ?></code>.</p> 1116 <p><?php printf( __( 'The <b>Tag base</b> for the Archive URL can be changed on %s page', 'hashtagger' ) . $this->add_manual_link( 'settings_general_tagbase' ), '<a href="'. admin_url( 'options-permalink.php' ) .'">' . __( 'Permalink Settings' ) . '</a>' ); ?>.</p>1077 <p><?php printf( __( 'The <b>Tag base</b> for the Archive URL can be changed on %s page', 'hashtagger' ), '<a href="'. admin_url( 'options-permalink.php' ) .'">' . __( 'Permalink Settings' ) . '</a>' ); ?>.</p> 1117 1078 <?php } else { 1118 1079 settings_fields( 'hashtagger_settings_' . $current_tab ); … … 1123 1084 <?php } ?> 1124 1085 </div> 1086 </div> 1087 <div class="postbox"> 1088 <div class="inside"> 1089 <h2>PLEASE NOTE</h2><p>Development, maintenance and support of this plugin has been retired. You can use this plugin as long as is works for you. Thanks for your understanding.<br />Regards, Peter</p> 1090 </div> 1125 1091 </div> 1126 1092 </div> … … 1456 1422 __( 'Use @nicknames instead of @usernames', 'hashtagger' ), 1457 1423 'settings_usernames_nicknames', 1458 '<span class="dashicons dashicons-shield"></span>' . __( 'Highly recommended to enhance WordPress security!', 'hashtagger') . ' <a href="https://petersplugins.com/docs/hashtagger/#usernames">' . __( 'Read more', 'hashtagger' )1424 '<span class="dashicons dashicons-shield"></span>' . __( 'Highly recommended to enhance WordPress security!', 'hashtagger') 1459 1425 ); 1460 1426 … … 1861 1827 } 1862 1828 1863 $hlp = '';1864 if ( ! empty( $help ) ) {1865 $hlp = $this->add_manual_link( $help );1866 }1867 1868 1829 $add = ''; 1869 1830 if ( ! empty( $note ) ) { … … 1871 1832 } 1872 1833 1873 echo '<p class="toggle"><input type="checkbox" name="' . $name . '" id="' . $name . '" value="1"' . $chk . $dis . ' /><label for="' . $name . '" class="check"></label>' . $title . $ hlp .$add . '</p>';1834 echo '<p class="toggle"><input type="checkbox" name="' . $name . '" id="' . $name . '" value="1"' . $chk . $dis . ' /><label for="' . $name . '" class="check"></label>' . $title . $add . '</p>'; 1874 1835 1875 1836 } … … 1889 1850 function print_select_box( $name, $title, $help, $options ) { 1890 1851 1891 $hlp = ''; 1892 if ( ! empty( $help ) ) { 1893 $hlp = $this->add_manual_link( $help ); 1894 } 1895 1896 echo $title . $hlp . '<br />'; 1852 echo $title . '<br />'; 1897 1853 1898 1854 echo '<select name="' . $name . '" id="' . $name . '">'; … … 1924 1880 function print_textarea_field( $name, $title, $help, $value ) { 1925 1881 1926 $hlp = ''; 1927 if ( ! empty( $help ) ) { 1928 $hlp = $this->add_manual_link( $help ); 1929 } 1930 1931 echo $title . $hlp . '<br />'; 1882 echo $title . '<br />'; 1932 1883 1933 1884 echo '<textarea class="regular-textarea" name="' . $name . '" id="' . $name , '">' . implode( "\n", $value ) . '</textarea>'; … … 1946 1897 function print_text_field( $name, $title, $help, $value ) { 1947 1898 1948 $hlp = ''; 1949 if ( ! empty( $help ) ) { 1950 $hlp = $this->add_manual_link( $help ); 1951 } 1952 1953 echo $title . $hlp . '<br />'; 1899 echo $title . '<br />'; 1954 1900 1955 1901 echo '<input class="regular-text" type="text" name="' . $name . '" id="' . $name , '" value="' . $value . '" />'; 1956 1902 1957 } 1958 1959 1960 /** 1961 * helper function to add a plugin manual link 1962 * @since 4 1963 * @param string $anchor name of the anchor to link to 1964 */ 1965 function add_manual_link( $anchor = '' ) { 1966 1967 return ' <a class="dashicons dashicons-editor-help" href="https://petersplugins.com/docs/' . $this->get_plugin_slug() . '/#' . $anchor . '"></a>'; 1968 1969 } 1903 } 1970 1904 1971 1905 … … 2165 2099 var counter = 0; 2166 2100 var abort = false; 2167 jQuery( '#hashtagger_ajax_area' ).html( '<table class="form-table"><tbody><tr><td class="toggle autoheight"><input type="checkbox" name="hashtagger_regenerate_confirmation" id="hashtagger_regenerate_confirmation" value="ok" /><label for="hashtagger_regenerate_confirmation" class="check"></label><div class="checktitle"><?php _e( 'Regenerate all existing objects using the current settings', 'hashtagger' ); ?> <?php echo $this->add_manual_link( 'settings_regeneration' ); ?><input type="button" name="sumbit_regnerate" id="sumbit_regnerate" class="button button-primary button-large" value="<?php _e( 'Process all objects', 'hashtagger' ); ?> (<?php echo count( $objects ); ?>)" /></div></td></tr></tbody></table>' );2101 jQuery( '#hashtagger_ajax_area' ).html( '<table class="form-table"><tbody><tr><td class="toggle autoheight"><input type="checkbox" name="hashtagger_regenerate_confirmation" id="hashtagger_regenerate_confirmation" value="ok" /><label for="hashtagger_regenerate_confirmation" class="check"></label><div class="checktitle"><?php _e( 'Regenerate all existing objects using the current settings', 'hashtagger' ); ?><input type="button" name="sumbit_regnerate" id="sumbit_regnerate" class="button button-primary button-large" value="<?php _e( 'Process all objects', 'hashtagger' ); ?> (<?php echo count( $objects ); ?>)" /></div></td></tr></tbody></table>' ); 2168 2102 jQuery( '#sumbit_regnerate' ).click( function() { 2169 2103 jQuery( '#hashtagger_ajax_area' ).html( '<p><?php _e( 'Please be patient while objects are processed. Do not close or leave this page.', 'hashtagger' ); ?></p><p><div style="width: 100%; height: 40px; border: 2px solid #222; border-radius: 5px; background-color: #FFF"><div id="hashtagger_regnerate_progressbar" style="width: 0; height: 100%; background-image: url(<?php echo plugins_url( 'assets/img/progress.png', $this->get_plugin_file() ); ?>); background-repeat: repeat-x" ></div></div></p><p id="hashtagger_abort_area"><input type="button" name="cancel_regnerate" id="cancel_regnerate" class="button button-secondary button-large" value="<?php _e( 'Abort regeneration', 'hashtagger' ); ?>" /></p>' ); … … 2248 2182 2249 2183 } 2250 2251 2252 /** 2253 * show admin notices 2254 */ 2255 function admin_notices() { 2256 2257 // invite to follow me 2258 if ( current_user_can( 'manage_options' ) && get_user_meta( get_current_user_id(), 'pp-hashtagger-admin-notice-1', true ) != 'dismissed' ) { 2259 ?> 2260 <div class="notice is-dismissible pp-hashtagger-admin-notice" id="pp-hashtagger-admin-notice-1"> 2261 <p><img src="<?php echo plugins_url( 'assets/img/pluginicon.png', $this->get_plugin_file() ); ?>" style="width: 48px; height: 48px; float: left; margin-right: 20px" /><strong><?php _e( 'Do you like the hashtagger plugin?', 'hashtagger' ); ?></strong><br /><?php _e( 'Follow me:', 'hashtagger' ); ?> <a class="dashicons dashicons-facebook-alt" href="https://www.facebook.com/petersplugins" title="<?php _e( 'Authors facebook Page', 'hashtagger' ); ?>"></a><div class="clear"></div></p> 2262 </div> 2263 <?php 2264 } 2265 2266 // ask for rating 2267 // in 30 days at the earliest 2268 if ( ! get_option( 'pp-hashtagger-admin-notice-2-start' ) ) { 2269 update_option( 'pp-hashtagger-admin-notice-2-start', time() + 30 * 24 * 60 * 60 ); 2270 } 2271 if ( get_option( 'pp-hashtagger-admin-notice-2-start' ) <= time() ) { 2272 if ( current_user_can( 'manage_options' ) && get_user_meta( get_current_user_id(), 'pp-hashtagger-admin-notice-2', true ) != 'dismissed' ) { 2273 ?> 2274 <div class="notice is-dismissible pp-hashtagger-admin-notice" id="pp-hashtagger-admin-notice-2"> 2275 <p><img src="<?php echo plugins_url( 'assets/img/pluginicon.png', $this->get_plugin_file() ); ?>" style="width: 48px; height: 48px; float: left; margin-right: 20px" /><?php _e( 'If you like the hashtagger plugin please support my work with giving it a good rating so that other users know it is helpful for you. Thanks.', 'hashtagger' ); ?><br /><a href="https://wordpress.org/support/plugin/<?php echo $this->plugin_slug; ?>/reviews/#new-post" title="<?php _e( 'Please rate plugin', 'hashtagger' ); ?>"><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span></a><div class="clear"></div></p> 2276 </div> 2277 <?php 2278 } 2279 } 2280 2281 } 2282 2283 2284 /** 2285 * dismiss an admin notice 2286 */ 2287 function dismiss_admin_notice() { 2288 2289 // since v 7 check nonce 2290 if ( $this->check_nonce() ) { 2291 2292 if ( isset( $_POST['pp_hashtagger_dismiss_admin_notice'] ) ) { 2293 2294 // since v 7 check value 2295 if (strpos( $_POST['pp_hashtagger_dismiss_admin_notice'], 'pp-hashtagger-admin-notice-') === 0 ) { 2296 2297 update_user_meta( get_current_user_id(), sanitize_key( $_POST['pp_hashtagger_dismiss_admin_notice'] ), 'dismissed' ); 2298 2299 } 2300 2301 } 2302 2303 } 2304 2305 wp_die(); 2306 2307 } 2308 2184 2309 2185 2310 2186 /** -
hashtagger/trunk/loader.php
r2803093 r2975290 29 29 'slug' => pathinfo( dirname( __FILE__ ) . '/hashtagger.php', PATHINFO_FILENAME ), 30 30 'name' => '#hashtagger', 31 'version' => '7.2. 1'31 'version' => '7.2.2' 32 32 ) ); 33 33 -
hashtagger/trunk/readme.txt
r2804816 r2975290 3 3 Tags: hashtag, hashtags, tag, tags, tag archive, archive, social, twitter, facebook, classicpress 4 4 Requires at least: 4.0 5 Tested up to: 6. 16 Stable tag: 7.2. 15 Tested up to: 6.3 6 Stable tag: 7.2.2 7 7 Requires PHP: 5.4 8 8 License: GPLv2 or later … … 13 13 == Description == 14 14 15 The [Smart Hashtags (formerly hashtagger) Plugin](https://petersplugins.com/free-wordpress-plugins/hashtagger/)allows you to use #hashtags, @usernames and $cashtags in your posts15 The Smart Hashtags Plugin allows you to use #hashtags, @usernames and $cashtags in your posts 16 16 17 17 This plugin uses the [WordPress Tag system](https://codex.wordpress.org/Posts_Tags_Screen) to automatically convert a #hashtag into a Post Tag. Each #hashtag is added as a "normal" tag (without leading hash) to the post, so it is fully compatible with existing tags! 18 19 == Retired Plugin == 20 21 Development, maintenance and support of this plugin has been retired in october 2023. You can use this plugin as long as is works for you. 22 23 There will be no more updates and I won't answer any support questions. Thanks for your understanding. 24 25 Feel free to fork this plugin. 18 26 19 27 == Usage == … … 61 69 62 70 There's an option to automatically add a hash symbol in front of tags (e.g. when using the Tag Cloud Widget). 63 64 == Docs & Support ==65 66 [Plugin Manual](https://petersplugins.com/docs/hashtagger/)67 68 [Support Forum](https://wordpress.org/support/plugin/hashtagger)69 70 Video: [How to use hashtags in WordPress](https://youtu.be/cNNn1VLz4zs) (Note: The video is outdated! A new version will be created as soon as possible.)71 72 == Do you like this plugin? ==73 74 I spend some of my precious free time developing and maintaining my free WordPress plugins. You don’t need to make a donation. No money, no beer, no coffee. If you like this plugin then please do me a favor and [give it a good rating](https://wordpress.org/support/plugin/hashtagger/reviews/). Thanks.75 71 76 72 == Plugin Privacy Information == … … 80 76 * This plugin does not send any data to external servers 81 77 82 [Peters' Plugins Privacy Information Page](https://petersplugins.com/plugin-privacy-information/)83 84 78 == ClassicPress == 85 79 86 80 This plugin is compatible with [ClassicPress](https://www.classicpress.net/). 87 88 == More plugins from Peter ==89 90 Take a look at [my other plugins](https://profiles.wordpress.org/petersplugins/#content-plugins)91 81 92 82 == For developers == … … 107 97 10. Regeneration of all existing Objects with the current settings 108 98 109 == Frequently Asked Questions ==110 111 = What characters can a hashtag include? =112 113 The hashtag detection follows the rules for hashtags used on Twitter, Instagram, YouTube, Pinterest and so on. The minimum length for a hashtag is 2 characters. A hashtag must not start with a number (this can be changed optionally). A hashtag not only ends at a space but also at punctuation marks and other special characters. A hashtag may contain underscores.114 115 = Does this also work for pages? =116 117 Yes and No. Yes - the plugin can add the tags also for pages. No - WordPress does not show the tags section for pages and also pages are not listed on tag archives.118 119 This plugin does not change this behavior of WordPress because there already exist several plugins that add the tag functionality for pages. Please use one of them if you want to tag your pages.120 121 = How to change the Tag base? =122 123 The Tag base for the Tag Archive Page URL (e.g. example.com/**tag**/anytag) can be set on the 'Permalink Settings' page under 'Tag base' in your WP admin.124 125 = Where does @username link to? =126 127 This can be set on hashtagger Settings Page. @username links can either link to the Users Profile Page or to the Users Webiste (Users Profile Page if no Webpage is set). When linking to Users Website the link can be opened in a new window if desired.128 129 = Why should I use @nicknames instead of @usernames =130 131 This is important to enhance WordPress security. Please take a look at the [Manual](https://petersplugins.com/docs/hashtagger/#usernames).132 133 = Can I use #hashtags and/or @usernames in Excerpts? =134 135 Yes, just activate this feature.136 137 = Can I use #hashtags and/or @usernames in Titles? =138 139 Yes, just activate this feature.140 141 = Can I regenerate all existing Posts after changing Settings? =142 143 Yes, you can regenerate all affected objects (Post, Pages, Custom Posts) using the current settings.144 145 = Where can I get help? =146 147 Please use the [Support Forum](https://wordpress.org/support/plugin/hashtagger).148 149 99 == Changelog == 100 101 = 7.2.2 (2022-10-05) FINAL VERSION = 102 * removed all links to webiste 103 * removed request for rating 104 * removed manual 150 105 151 106 = 7.2.1 (2022-10-23) =
Note: See TracChangeset
for help on using the changeset viewer.