Changeset 2128220
- Timestamp:
- 07/25/2019 02:36:07 AM (7 years ago)
- Location:
- wp-translate
- Files:
-
- 4 edited
-
branches/0.7/readme.txt (modified) (2 diffs)
-
branches/0.7/wp-translate.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/wp-translate.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-translate/branches/0.7/readme.txt
r2122885 r2128220 6 6 Tested up to: 5.2 7 7 Requires PHP: 5.6 8 Stable tag: 5.2. 68 Stable tag: 5.2.7 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 79 79 == Changelog == 80 80 81 **v5.2.7** 82 83 * Extensive code optimizations 84 81 85 **v5.2.6** 82 86 -
wp-translate/branches/0.7/wp-translate.php
r2122669 r2128220 7 7 Text Domain: wp-translate 8 8 Domain Path: /languages 9 Version: 5.2. 69 Version: 5.2.7 10 10 Author URI: https://plugingarden.com 11 11 */ 12 12 13 register_activation_hook( __FILE__, 'wpTranslate_install' ); 14 15 function wpTranslate_install() { 16 wpTranslate_options_check(); 17 } 18 19 function wp_translate_load_textdomain() { 20 load_plugin_textdomain( 'wp-translate', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' ); 21 } 22 add_action( 'plugins_loaded', 'wp_translate_load_textdomain' ); 23 24 function wpTranslate_options_check() { 25 if(!get_option("wpTranslateOptions")) { 26 $d = strtotime('+7 Days'); 27 $wpTranslateOptions = array( 13 if (!class_exists("WP_Translate")) { 14 class WP_Translate { 15 public function __construct() { 16 $this->plugin_name = plugin_basename(__FILE__); 17 $this->current_version = '5.2.7'; 18 19 register_activation_hook( __FILE__, array(&$this, 'wpTranslate_install') ); 20 add_action('init', array(&$this, 'wpTranslate_options_check') ); 21 add_action( 'plugins_loaded', array(&$this, 'wp_translate_load_textdomain') ); 22 add_action('wp_head', array(&$this, 'admin_positioning') ); 23 add_action('wp_footer', array(&$this, 'translate_Init') ); 24 add_action( 'widgets_init', array(&$this, 'register_wp_translation_widget') ); 25 add_action( 'admin_menu', array(&$this, 'add_wp_translate_menu') ); 26 add_action( 'admin_notices', array(&$this, 'wpt_upgrade_notice') ); 27 add_action( 'wp_ajax_wp_translate_settings', array(&$this, 'wp_translate_settings') ); 28 add_action( 'wp_ajax_wp_translate_notice', array(&$this, 'wp_translate_notice') ); 29 add_action( 'admin_footer', array(&$this, 'wp_translate_notice_javascript') ); 30 add_filter('plugin_row_meta', array(&$this, 'create_translate_plugin_links'), 10, 2); 31 } 32 33 public function wpTranslate_install() { 34 $this->wpTranslate_options_check(); 35 } 36 37 public function wpTranslate_options_check() { 38 if(!defined('WPTRANSLATEOPTIONS')) { 39 define('WPTRANSLATEOPTIONS', 'wpTranslateOptions'); 40 } 41 42 if(!get_option("wpTranslateOptions")) { 43 $d = strtotime('+7 Days'); 44 $wpTranslateOptions = array( 28 45 "default_language" => "auto", 29 46 "tracking_enabled" => false, … … 37 54 ); 38 55 39 add_option("wpTranslateOptions", $wpTranslateOptions);40 }41 else {42 $wpTranlsateOptions = get_option("wpTranslateOptions");43 $keys = array_keys($wpTranlsateOptions);44 45 if (!in_array('default_language', $keys)) {46 $wpTranlsateOptions['default_language'] = "auto";47 }48 if (!in_array('tracking_enabled', $keys)) {49 $wpTranlsateOptions['tracking_enabled'] = false;50 }51 if (!in_array('tracking_id', $keys)) {52 $wpTranlsateOptions['tracking_id'] = "";53 }54 if (!in_array('auto_display', $keys)) {55 $wpTranlsateOptions['auto_display'] = true;56 }57 if (!in_array('exclude_mobile', $keys)) {58 $wpTranlsateOptions['exclude_mobile'] = true;59 }60 if (in_array('4-9-5_update_notice_seen', $keys)) {61 unset($wpTranlsateOptions['4-9-5_update_notice_seen']);62 }63 if (in_array('4-9-upgrade_notice', $keys)) {64 unset($wpTranlsateOptions['4-9-upgrade_notice']);65 }66 if (!in_array('upgrade_notice', $keys)) {67 $d = strtotime('+5 Days');68 $wpTranlsateOptions['upgrade_notice'] = array(56 add_option("wpTranslateOptions", $wpTranslateOptions); 57 } 58 else { 59 $wpTranlsateOptions = get_option("wpTranslateOptions"); 60 $keys = array_keys($wpTranlsateOptions); 61 62 if (!in_array('default_language', $keys)) { 63 $wpTranlsateOptions['default_language'] = "auto"; 64 } 65 if (!in_array('tracking_enabled', $keys)) { 66 $wpTranlsateOptions['tracking_enabled'] = false; 67 } 68 if (!in_array('tracking_id', $keys)) { 69 $wpTranlsateOptions['tracking_id'] = ""; 70 } 71 if (!in_array('auto_display', $keys)) { 72 $wpTranlsateOptions['auto_display'] = true; 73 } 74 if (!in_array('exclude_mobile', $keys)) { 75 $wpTranlsateOptions['exclude_mobile'] = true; 76 } 77 if (in_array('4-9-5_update_notice_seen', $keys)) { 78 unset($wpTranlsateOptions['4-9-5_update_notice_seen']); 79 } 80 if (in_array('4-9-upgrade_notice', $keys)) { 81 unset($wpTranlsateOptions['4-9-upgrade_notice']); 82 } 83 if (!in_array('upgrade_notice', $keys)) { 84 $d = strtotime('+5 Days'); 85 $wpTranlsateOptions['upgrade_notice'] = array( 69 86 "count" => 0, 70 87 "date" => date('Y-m-d', $d) 71 88 ); 72 } 73 74 update_option("wpTranslateOptions", $wpTranlsateOptions); 89 } 90 91 update_option("wpTranslateOptions", $wpTranlsateOptions); 92 } 93 } 94 95 public function wp_translate_load_textdomain() { 96 load_plugin_textdomain( 'wp-translate', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' ); 97 } 98 99 public function translate_Init() { 100 $wpTranslateOptions = get_option("wpTranslateOptions"); 101 $doTranslate = true; 102 if ($wpTranslateOptions["exclude_mobile"]) { 103 $agent = $_SERVER['HTTP_USER_AGENT']; 104 if(preg_match('/iPhone|Android|Blackberry|Windows Phone/i', $agent)){ 105 $doTranslate = false; 106 } 107 } 108 $agent = $_SERVER['HTTP_USER_AGENT']; 109 if($doTranslate){ 110 ob_start(); 111 ?> 112 <!-- WP Translate - https://plugingarden.com/google-translate-wordpress-plugin/ --> 113 <script type='text/javascript'> 114 function googleTranslateElementInit2() { 115 new google.translate.TranslateElement({ 116 pageLanguage: '<?php echo esc_js($wpTranslateOptions["default_language"]); ?>', 117 <?php if ($wpTranslateOptions["tracking_enabled"]) { ?> 118 gaTrack: true, 119 gaId: '<?php echo esc_js($wpTranslateOptions["tracking_id"]); ?>', 120 <?php } ?> 121 floatPosition: google.translate.TranslateElement.FloatPosition.TOP_RIGHT, 122 autoDisplay: <?php echo ($wpTranslateOptions["auto_display"]) ? "true" : "false"; ?> 123 }<?php if (true) {echo(", 'wp_translate'");} ?>); 124 } 125 </script><script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script> 126 <style type="text/css"> 127 body {top:0 !important;} 128 </style> 129 <?php 130 ob_end_flush(); 131 } 132 } 133 134 public function register_wp_translation_widget() { 135 require_once('classes/widget.php'); 136 register_widget( 'WP_Translate_Widget' ); 137 } 138 139 140 public function admin_positioning() { 141 if (current_user_can('manage_options')) { 142 _e('<style>.goog-te-ftab-float {right: 250px !important;}</style>'); 143 } 144 } 145 146 public function add_wp_translate_menu() { 147 add_menu_page(__('WP Translate','wp-translate'), __('WP Translate','wp-translate'), 'manage_options', 'wptranslate-admin', array(&$this, 'show_translate_menu'), 'dashicons-admin-site' ); 148 149 wp_register_style( 'wp_translate_admin_stylesheet', WP_PLUGIN_URL.'/wp-translate/admin/wp-translate-style.css'); 150 wp_enqueue_style('wp_translate_admin_stylesheet'); 151 } 152 153 function show_translate_menu() { 154 include("admin/overview.php"); 155 add_action( 'admin_footer', array(&$this, 'wp_translate_settings_javascript') ); 156 } 157 158 public function wpt_upgrade_notice() { 159 $wpTranlsateOptions = get_option("wpTranslateOptions"); 160 $upgradeObject = $wpTranlsateOptions['upgrade_notice']; 161 $today = strtotime(date('Y-m-d')); 162 $noticeDate = strtotime($upgradeObject['date']); 163 $showNotice = false; 164 165 if ($today >= $noticeDate) { 166 $showNotice = true; 167 } 168 169 if ($showNotice) { 170 ob_start(); 171 ?> 172 <div id="wp-translate-notice" class="wp-core-ui notice is-dismissable" style="clear: both;"> 173 <div class="wp-translate-logo" id="wp-translate-notice-logo"></div> 174 <div id="wp-translate-notice-content"> 175 <h3 style="padding:2px;font-weight:normal;margin:0;"><?php _e("Give Your Readers a Better Translation Experience with WP Translate Pro", 'wp-translate'); ?></h3> 176 <p><?php _e("Show country flag icons next to languages and remove Google branding.", 'wp-translate'); ?></p> 177 <p><?php _e("WP Translate Pro is also Gutenberg ready! Comes with a custom block to use on pages that don't display widgets.", 'wp-translate'); ?></p> 178 <p style="margin-top: 10px;"><a href="https://plugingarden.com/google-translate-wordpress-plugin/?src=wpt" class="button-primary" target="_blank"><?php _e('Check out WP Translate Pro', 'wp-translate'); ?></a></p> 179 </div> 180 <button id="wp-translate-notice-btn" class="notice-dismiss" style="position: relative; float: right;"></button> 181 <div style="clear: both;"></div> 182 </div> 183 <?php 184 ob_end_flush(); 185 } 186 } 187 188 public function wp_translate_settings() { 189 check_ajax_referer( 'wp_translate', 'security' ); 190 191 $wpTranslateOptions['default_language'] = sanitize_text_field($_POST["default_language"]); 192 $wpTranslateOptions['exclude_mobile'] = filter_var($_POST["excludeMobile"], FILTER_VALIDATE_BOOLEAN); 193 $wpTranslateOptions['auto_display'] = filter_var($_POST["autoDisplay"], FILTER_VALIDATE_BOOLEAN); 194 $wpTranslateOptions['tracking_id'] = sanitize_text_field($_POST["trackingId"]); 195 $wpTranslateOptions['tracking_enabled'] = filter_var($_POST["trackingEnabled"], FILTER_VALIDATE_BOOLEAN); 196 197 update_option(WPTRANSLATEOPTIONS, $wpTranslateOptions); 198 199 $message = "WP Translate settings have been saved."; 200 201 echo $message; 202 203 wp_die(); // this is required to terminate immediately and return a proper response 204 } 205 206 public function wp_translate_settings_javascript() { 207 $ajax_nonce = wp_create_nonce( "wp_translate" ); 208 ob_start(); 209 ?> 210 <script type="text/javascript"> 211 jQuery(document).ready(function($) { 212 213 // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php 214 jQuery('#btn-wp-transalate-settings').on('click', function() { 215 var default_language = jQuery('#defaultLanguage option:selected').val(); 216 var trackingId = jQuery('#trackingId').val(); 217 var tracking_enabled = jQuery('#trackingEnabled').is(':checked'); 218 var excludeMobile = jQuery('#excludeMobile').is(':checked'); 219 var autoDisplay = jQuery('#autoDisplay').is(':checked'); 220 221 var data = { 222 'action': 'wp_translate_settings', 223 'security': '<?php echo $ajax_nonce; ?>', 224 'default_language' : default_language, 225 'excludeMobile' : excludeMobile, 226 'autoDisplay' : autoDisplay, 227 'trackingId': trackingId, 228 'trackingEnabled' : tracking_enabled 229 }; 230 231 jQuery('#wp-translate-update-status').show(); 232 jQuery.post(ajaxurl, data, function(response) { 233 jQuery('#wp-translate-update-status').hide(); 234 }); 235 236 return false; 237 }); 238 239 jQuery('#wp-translate-notice-btn').on('click', function() { 240 var data = { 241 'action': 'wp_translate_notice', 242 'security': '<?php echo $ajax_nonce; ?>' 243 }; 244 245 jQuery('#wp-translate-notice').hide(); 246 247 jQuery.post(ajaxurl, data, function(response) { 248 //reserved for future action 249 }); 250 }); 251 252 }); 253 </script> <?php 254 ob_end_flush(); 255 } 256 257 public function wp_translate_notice() { 258 check_ajax_referer( 'wp_translate', 'security' ); 259 260 $wpTranlsateOptions = get_option("wpTranslateOptions"); 261 262 $upgradeObject = $wpTranlsateOptions['upgrade_notice']; 263 $upgradeObject['count']++; 264 $reShowTime = ($upgradeObject['count'] > 2) ? '+2 Months' : '+1 Month'; 265 $upgradeObject['date'] = date('Y-m-d', strtotime($reShowTime)); 266 267 $wpTranlsateOptions['upgrade_notice'] = $upgradeObject; 268 269 update_option("wpTranslateOptions", $wpTranlsateOptions); 270 271 wp_die(); // this is required to terminate immediately and return a proper response 272 } 273 274 275 public function wp_translate_notice_javascript() { 276 $ajax_nonce = wp_create_nonce( "wp_translate" ); 277 ob_start(); 278 ?> 279 <script type="text/javascript"> 280 jQuery(document).ready(function($) { 281 282 jQuery('#wp-translate-notice-btn').on('click', function() { 283 var data = { 284 'action': 'wp_translate_notice', 285 'security': '<?php echo $ajax_nonce; ?>' 286 }; 287 288 jQuery('#wp-translate-notice').hide(); 289 290 jQuery.post(ajaxurl, data, function(response) { 291 292 }); 293 }); 294 }); 295 </script> <?php 296 ob_end_flush(); 297 } 298 299 public function create_translate_plugin_links($links, $file) { 300 if ( $file == plugin_basename(__FILE__) ) { 301 $links[] = '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EJVXJP3V8GE2J">' . __('Donate', 'wp-translate') . '</a>'; 302 } 303 return $links; 304 } 75 305 } 76 306 } 77 add_action('init', 'wpTranslate_options_check'); 78 79 add_action( 'wp_ajax_wp_translate_settings', 'wp_translate_settings' ); 80 81 function wp_translate_settings() { 82 check_ajax_referer( 'wp_translate', 'security' ); 83 84 $wpTranslateOptions['default_language'] = sanitize_text_field($_POST["default_language"]); 85 $wpTranslateOptions['exclude_mobile'] = filter_var($_POST["excludeMobile"], FILTER_VALIDATE_BOOLEAN); 86 $wpTranslateOptions['auto_display'] = filter_var($_POST["autoDisplay"], FILTER_VALIDATE_BOOLEAN); 87 $wpTranslateOptions['tracking_id'] = sanitize_text_field($_POST["trackingId"]); 88 $wpTranslateOptions['tracking_enabled'] = filter_var($_POST["trackingEnabled"], FILTER_VALIDATE_BOOLEAN); 89 90 update_option(WPTRANSLATEOPTIONS, $wpTranslateOptions); 91 92 $message = "WP Translate settings have been saved."; 93 94 echo $message; 95 96 wp_die(); // this is required to terminate immediately and return a proper response 307 if (class_exists("WP_Translate")) { 308 global $WP_Translate; 309 $WP_Translate = new WP_Translate(); 97 310 } 98 function wp_translate_notice() {99 check_ajax_referer( 'wp_translate', 'security' );100 101 $wpTranlsateOptions = get_option("wpTranslateOptions");102 103 $upgradeObject = $wpTranlsateOptions['upgrade_notice'];104 $upgradeObject['count']++;105 $reShowTime = ($upgradeObject['count'] > 2) ? '+2 Months' : '+1 Month';106 $upgradeObject['date'] = date('Y-m-d', strtotime($reShowTime));107 108 $wpTranlsateOptions['upgrade_notice'] = $upgradeObject;109 110 update_option("wpTranslateOptions", $wpTranlsateOptions);111 112 wp_die(); // this is required to terminate immediately and return a proper response113 }114 add_action( 'wp_ajax_wp_translate_notice', 'wp_translate_notice' );115 116 function wp_translate_notice_javascript() {117 $ajax_nonce = wp_create_nonce( "wp_translate" );118 ?>119 <script type="text/javascript">120 jQuery(document).ready(function($) {121 122 jQuery('#wp-translate-notice-btn').on('click', function() {123 var data = {124 'action': 'wp_translate_notice',125 'security': '<?php echo $ajax_nonce; ?>'126 };127 128 jQuery('#wp-translate-notice').hide();129 130 jQuery.post(ajaxurl, data, function(response) {131 132 });133 });134 });135 </script> <?php136 }137 add_action( 'admin_footer', 'wp_translate_notice_javascript' );138 139 function wp_translate_settings_javascript() {140 $ajax_nonce = wp_create_nonce( "wp_translate" );141 ?>142 <script type="text/javascript">143 jQuery(document).ready(function($) {144 145 // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php146 jQuery('#btn-wp-transalate-settings').on('click', function() {147 var default_language = jQuery('#defaultLanguage option:selected').val();148 var trackingId = jQuery('#trackingId').val();149 var tracking_enabled = jQuery('#trackingEnabled').is(':checked');150 var excludeMobile = jQuery('#excludeMobile').is(':checked');151 var autoDisplay = jQuery('#autoDisplay').is(':checked');152 153 var data = {154 'action': 'wp_translate_settings',155 'security': '<?php echo $ajax_nonce; ?>',156 'default_language' : default_language,157 'excludeMobile' : excludeMobile,158 'autoDisplay' : autoDisplay,159 'trackingId': trackingId,160 'trackingEnabled' : tracking_enabled161 };162 163 jQuery('#wp-translate-update-status').show();164 jQuery.post(ajaxurl, data, function(response) {165 jQuery('#wp-translate-update-status').hide();166 });167 168 return false;169 });170 171 jQuery('#wp-translate-notice-btn').on('click', function() {172 var data = {173 'action': 'wp_translate_notice',174 'security': '<?php echo $ajax_nonce; ?>'175 };176 177 jQuery('#wp-translate-notice').hide();178 179 jQuery.post(ajaxurl, data, function(response) {180 //reserved for future action181 });182 });183 184 });185 </script> <?php186 }187 188 //translator189 function translate_Init() {190 $wpTranslateOptions = get_option("wpTranslateOptions");191 $doTranslate = true;192 if ($wpTranslateOptions["exclude_mobile"]) {193 $agent = $_SERVER['HTTP_USER_AGENT'];194 if(preg_match('/iPhone|Android|Blackberry|Windows Phone/i', $agent)){195 $doTranslate = false;196 }197 }198 $agent = $_SERVER['HTTP_USER_AGENT'];199 if($doTranslate){200 ob_start();201 ?>202 <!-- WP Translate - https://plugingarden.com/google-translate-wordpress-plugin/ -->203 <script type='text/javascript'>204 function googleTranslateElementInit2() {205 new google.translate.TranslateElement({206 pageLanguage: '<?php echo esc_js($wpTranslateOptions["default_language"]); ?>',207 <?php if ($wpTranslateOptions["tracking_enabled"]) { ?>208 gaTrack: true,209 gaId: '<?php echo esc_js($wpTranslateOptions["tracking_id"]); ?>',210 <?php } ?>211 floatPosition: google.translate.TranslateElement.FloatPosition.TOP_RIGHT,212 autoDisplay: <?php echo ($wpTranslateOptions["auto_display"]) ? "true" : "false"; ?>213 }<?php if (true) {echo(", 'wp_translate'");} ?>);214 }215 </script><script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script>216 <style type="text/css">217 body {top:0 !important;}218 </style>219 <?php220 ob_end_flush();221 }222 }223 add_action('wp_footer', 'translate_Init');224 225 //admin226 function admin_positioning() {227 if (current_user_can('manage_options')) {228 _e('<style>.goog-te-ftab-float {right: 250px !important;}</style>');229 }230 }231 add_action('wp_head', 'admin_positioning');232 233 function create_translate_plugin_links($links, $file) {234 if ( $file == plugin_basename(__FILE__) ) {235 $links[] = '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EJVXJP3V8GE2J">' . __('Donate', 'wp-translate') . '</a>';236 }237 return $links;238 }239 add_filter('plugin_row_meta', 'create_translate_plugin_links', 10, 2);240 241 function add_wp_translate_menu() {242 add_menu_page(__('WP Translate','wp-translate'), __('WP Translate','wp-translate'), 'manage_options', 'wptranslate-admin', 'show_translate_menu', 'dashicons-admin-site' );243 244 wp_register_style( 'wp_translate_admin_stylesheet', WP_PLUGIN_URL.'/wp-translate/admin/wp-translate-style.css');245 wp_enqueue_style('wp_translate_admin_stylesheet');246 }247 add_action( 'admin_menu', 'add_wp_translate_menu' );248 249 function show_translate_menu()250 {251 include("admin/overview.php");252 253 add_action( 'admin_footer', 'wp_translate_settings_javascript' );254 }255 256 function wpt_upgrade_notice() {257 $wpTranlsateOptions = get_option("wpTranslateOptions");258 $upgradeObject = $wpTranlsateOptions['upgrade_notice'];259 $today = strtotime(date('Y-m-d'));260 $noticeDate = strtotime($upgradeObject['date']);261 $showNotice = false;262 263 if ($today >= $noticeDate) {264 $showNotice = true;265 }266 267 if ($showNotice) {268 ?>269 <div id="wp-translate-notice" class="wp-core-ui notice is-dismissable" style="clear: both;">270 <div class="wp-translate-logo" id="wp-translate-notice-logo"></div>271 <div id="wp-translate-notice-content">272 <h3 style="padding:2px;font-weight:normal;margin:0;"><?php _e("Give Your Readers a Better Translation Experience with WP Translate Pro", 'wp-translate'); ?></h3>273 <p><?php _e("Show country flag icons next to languages and remove Google branding.", 'wp-translate'); ?></p>274 <p><?php _e("WP Translate Pro is also Gutenberg ready! Comes with a custom block to use on pages that don't display widgets.", 'wp-translate'); ?></p>275 <p style="margin-top: 10px;"><a href="https://plugingarden.com/google-translate-wordpress-plugin/?src=wpt" class="button-primary" target="_blank"><?php _e('Check out WP Translate Pro', 'wp-translate'); ?></a></p>276 </div>277 <button id="wp-translate-notice-btn" class="notice-dismiss" style="position: relative; float: right;"></button>278 <div style="clear: both;"></div>279 </div>280 <?php281 }282 }283 add_action( 'admin_notices', 'wpt_upgrade_notice' );284 285 //widget286 class WP_Translate_Widget extends WP_Widget {287 //register widget288 function __construct() {289 parent::__construct(290 'wp_translation_widget',291 __('WP Translate Widget', 'wp-translate'),292 array('description' => __('Creates a simple drop down list of languages to translate content to and hides tool bar', 'wp-translate'), )293 );294 }295 296 //front-end297 public function widget( $args, $instance ) {298 echo $args['before_widget'];299 if ( !empty( $instance['title'] ) ) {300 echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];301 }302 303 echo '<div id="wp_translate"></div>';304 305 echo $args['after_widget'];306 }307 308 //back-end309 public function form( $instance ) {310 if ( isset( $instance['title'] ) ) {311 $title = $instance['title'];312 }313 else {314 $title = __( 'Translate', 'wp-translate' );315 }316 ?>317 <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>318 <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">319 <?php320 }321 322 //sanitize form values when updated323 public function update( $new_instance, $old_instance ) {324 $instance = array();325 326 $instance['title'] = ( !empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';327 328 return $instance;329 }330 }331 332 function register_wp_translation_widget() {333 register_widget( 'WP_Translate_Widget' );334 }335 add_action( 'widgets_init', 'register_wp_translation_widget' );336 337 311 ?> -
wp-translate/trunk/readme.txt
r2122885 r2128220 6 6 Tested up to: 5.2 7 7 Requires PHP: 5.6 8 Stable tag: 5.2. 68 Stable tag: 5.2.7 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 79 79 == Changelog == 80 80 81 **v5.2.7** 82 83 * Extensive code optimizations 84 81 85 **v5.2.6** 82 86 -
wp-translate/trunk/wp-translate.php
r2122669 r2128220 7 7 Text Domain: wp-translate 8 8 Domain Path: /languages 9 Version: 5.2. 69 Version: 5.2.7 10 10 Author URI: https://plugingarden.com 11 11 */ 12 12 13 register_activation_hook( __FILE__, 'wpTranslate_install' ); 14 15 function wpTranslate_install() { 16 wpTranslate_options_check(); 17 } 18 19 function wp_translate_load_textdomain() { 20 load_plugin_textdomain( 'wp-translate', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' ); 21 } 22 add_action( 'plugins_loaded', 'wp_translate_load_textdomain' ); 23 24 function wpTranslate_options_check() { 25 if(!get_option("wpTranslateOptions")) { 26 $d = strtotime('+7 Days'); 27 $wpTranslateOptions = array( 13 if (!class_exists("WP_Translate")) { 14 class WP_Translate { 15 public function __construct() { 16 $this->plugin_name = plugin_basename(__FILE__); 17 $this->current_version = '5.2.7'; 18 19 register_activation_hook( __FILE__, array(&$this, 'wpTranslate_install') ); 20 add_action('init', array(&$this, 'wpTranslate_options_check') ); 21 add_action( 'plugins_loaded', array(&$this, 'wp_translate_load_textdomain') ); 22 add_action('wp_head', array(&$this, 'admin_positioning') ); 23 add_action('wp_footer', array(&$this, 'translate_Init') ); 24 add_action( 'widgets_init', array(&$this, 'register_wp_translation_widget') ); 25 add_action( 'admin_menu', array(&$this, 'add_wp_translate_menu') ); 26 add_action( 'admin_notices', array(&$this, 'wpt_upgrade_notice') ); 27 add_action( 'wp_ajax_wp_translate_settings', array(&$this, 'wp_translate_settings') ); 28 add_action( 'wp_ajax_wp_translate_notice', array(&$this, 'wp_translate_notice') ); 29 add_action( 'admin_footer', array(&$this, 'wp_translate_notice_javascript') ); 30 add_filter('plugin_row_meta', array(&$this, 'create_translate_plugin_links'), 10, 2); 31 } 32 33 public function wpTranslate_install() { 34 $this->wpTranslate_options_check(); 35 } 36 37 public function wpTranslate_options_check() { 38 if(!defined('WPTRANSLATEOPTIONS')) { 39 define('WPTRANSLATEOPTIONS', 'wpTranslateOptions'); 40 } 41 42 if(!get_option("wpTranslateOptions")) { 43 $d = strtotime('+7 Days'); 44 $wpTranslateOptions = array( 28 45 "default_language" => "auto", 29 46 "tracking_enabled" => false, … … 37 54 ); 38 55 39 add_option("wpTranslateOptions", $wpTranslateOptions);40 }41 else {42 $wpTranlsateOptions = get_option("wpTranslateOptions");43 $keys = array_keys($wpTranlsateOptions);44 45 if (!in_array('default_language', $keys)) {46 $wpTranlsateOptions['default_language'] = "auto";47 }48 if (!in_array('tracking_enabled', $keys)) {49 $wpTranlsateOptions['tracking_enabled'] = false;50 }51 if (!in_array('tracking_id', $keys)) {52 $wpTranlsateOptions['tracking_id'] = "";53 }54 if (!in_array('auto_display', $keys)) {55 $wpTranlsateOptions['auto_display'] = true;56 }57 if (!in_array('exclude_mobile', $keys)) {58 $wpTranlsateOptions['exclude_mobile'] = true;59 }60 if (in_array('4-9-5_update_notice_seen', $keys)) {61 unset($wpTranlsateOptions['4-9-5_update_notice_seen']);62 }63 if (in_array('4-9-upgrade_notice', $keys)) {64 unset($wpTranlsateOptions['4-9-upgrade_notice']);65 }66 if (!in_array('upgrade_notice', $keys)) {67 $d = strtotime('+5 Days');68 $wpTranlsateOptions['upgrade_notice'] = array(56 add_option("wpTranslateOptions", $wpTranslateOptions); 57 } 58 else { 59 $wpTranlsateOptions = get_option("wpTranslateOptions"); 60 $keys = array_keys($wpTranlsateOptions); 61 62 if (!in_array('default_language', $keys)) { 63 $wpTranlsateOptions['default_language'] = "auto"; 64 } 65 if (!in_array('tracking_enabled', $keys)) { 66 $wpTranlsateOptions['tracking_enabled'] = false; 67 } 68 if (!in_array('tracking_id', $keys)) { 69 $wpTranlsateOptions['tracking_id'] = ""; 70 } 71 if (!in_array('auto_display', $keys)) { 72 $wpTranlsateOptions['auto_display'] = true; 73 } 74 if (!in_array('exclude_mobile', $keys)) { 75 $wpTranlsateOptions['exclude_mobile'] = true; 76 } 77 if (in_array('4-9-5_update_notice_seen', $keys)) { 78 unset($wpTranlsateOptions['4-9-5_update_notice_seen']); 79 } 80 if (in_array('4-9-upgrade_notice', $keys)) { 81 unset($wpTranlsateOptions['4-9-upgrade_notice']); 82 } 83 if (!in_array('upgrade_notice', $keys)) { 84 $d = strtotime('+5 Days'); 85 $wpTranlsateOptions['upgrade_notice'] = array( 69 86 "count" => 0, 70 87 "date" => date('Y-m-d', $d) 71 88 ); 72 } 73 74 update_option("wpTranslateOptions", $wpTranlsateOptions); 89 } 90 91 update_option("wpTranslateOptions", $wpTranlsateOptions); 92 } 93 } 94 95 public function wp_translate_load_textdomain() { 96 load_plugin_textdomain( 'wp-translate', FALSE, basename( dirname( __FILE__ ) ) . '/languages/' ); 97 } 98 99 public function translate_Init() { 100 $wpTranslateOptions = get_option("wpTranslateOptions"); 101 $doTranslate = true; 102 if ($wpTranslateOptions["exclude_mobile"]) { 103 $agent = $_SERVER['HTTP_USER_AGENT']; 104 if(preg_match('/iPhone|Android|Blackberry|Windows Phone/i', $agent)){ 105 $doTranslate = false; 106 } 107 } 108 $agent = $_SERVER['HTTP_USER_AGENT']; 109 if($doTranslate){ 110 ob_start(); 111 ?> 112 <!-- WP Translate - https://plugingarden.com/google-translate-wordpress-plugin/ --> 113 <script type='text/javascript'> 114 function googleTranslateElementInit2() { 115 new google.translate.TranslateElement({ 116 pageLanguage: '<?php echo esc_js($wpTranslateOptions["default_language"]); ?>', 117 <?php if ($wpTranslateOptions["tracking_enabled"]) { ?> 118 gaTrack: true, 119 gaId: '<?php echo esc_js($wpTranslateOptions["tracking_id"]); ?>', 120 <?php } ?> 121 floatPosition: google.translate.TranslateElement.FloatPosition.TOP_RIGHT, 122 autoDisplay: <?php echo ($wpTranslateOptions["auto_display"]) ? "true" : "false"; ?> 123 }<?php if (true) {echo(", 'wp_translate'");} ?>); 124 } 125 </script><script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script> 126 <style type="text/css"> 127 body {top:0 !important;} 128 </style> 129 <?php 130 ob_end_flush(); 131 } 132 } 133 134 public function register_wp_translation_widget() { 135 require_once('classes/widget.php'); 136 register_widget( 'WP_Translate_Widget' ); 137 } 138 139 140 public function admin_positioning() { 141 if (current_user_can('manage_options')) { 142 _e('<style>.goog-te-ftab-float {right: 250px !important;}</style>'); 143 } 144 } 145 146 public function add_wp_translate_menu() { 147 add_menu_page(__('WP Translate','wp-translate'), __('WP Translate','wp-translate'), 'manage_options', 'wptranslate-admin', array(&$this, 'show_translate_menu'), 'dashicons-admin-site' ); 148 149 wp_register_style( 'wp_translate_admin_stylesheet', WP_PLUGIN_URL.'/wp-translate/admin/wp-translate-style.css'); 150 wp_enqueue_style('wp_translate_admin_stylesheet'); 151 } 152 153 function show_translate_menu() { 154 include("admin/overview.php"); 155 add_action( 'admin_footer', array(&$this, 'wp_translate_settings_javascript') ); 156 } 157 158 public function wpt_upgrade_notice() { 159 $wpTranlsateOptions = get_option("wpTranslateOptions"); 160 $upgradeObject = $wpTranlsateOptions['upgrade_notice']; 161 $today = strtotime(date('Y-m-d')); 162 $noticeDate = strtotime($upgradeObject['date']); 163 $showNotice = false; 164 165 if ($today >= $noticeDate) { 166 $showNotice = true; 167 } 168 169 if ($showNotice) { 170 ob_start(); 171 ?> 172 <div id="wp-translate-notice" class="wp-core-ui notice is-dismissable" style="clear: both;"> 173 <div class="wp-translate-logo" id="wp-translate-notice-logo"></div> 174 <div id="wp-translate-notice-content"> 175 <h3 style="padding:2px;font-weight:normal;margin:0;"><?php _e("Give Your Readers a Better Translation Experience with WP Translate Pro", 'wp-translate'); ?></h3> 176 <p><?php _e("Show country flag icons next to languages and remove Google branding.", 'wp-translate'); ?></p> 177 <p><?php _e("WP Translate Pro is also Gutenberg ready! Comes with a custom block to use on pages that don't display widgets.", 'wp-translate'); ?></p> 178 <p style="margin-top: 10px;"><a href="https://plugingarden.com/google-translate-wordpress-plugin/?src=wpt" class="button-primary" target="_blank"><?php _e('Check out WP Translate Pro', 'wp-translate'); ?></a></p> 179 </div> 180 <button id="wp-translate-notice-btn" class="notice-dismiss" style="position: relative; float: right;"></button> 181 <div style="clear: both;"></div> 182 </div> 183 <?php 184 ob_end_flush(); 185 } 186 } 187 188 public function wp_translate_settings() { 189 check_ajax_referer( 'wp_translate', 'security' ); 190 191 $wpTranslateOptions['default_language'] = sanitize_text_field($_POST["default_language"]); 192 $wpTranslateOptions['exclude_mobile'] = filter_var($_POST["excludeMobile"], FILTER_VALIDATE_BOOLEAN); 193 $wpTranslateOptions['auto_display'] = filter_var($_POST["autoDisplay"], FILTER_VALIDATE_BOOLEAN); 194 $wpTranslateOptions['tracking_id'] = sanitize_text_field($_POST["trackingId"]); 195 $wpTranslateOptions['tracking_enabled'] = filter_var($_POST["trackingEnabled"], FILTER_VALIDATE_BOOLEAN); 196 197 update_option(WPTRANSLATEOPTIONS, $wpTranslateOptions); 198 199 $message = "WP Translate settings have been saved."; 200 201 echo $message; 202 203 wp_die(); // this is required to terminate immediately and return a proper response 204 } 205 206 public function wp_translate_settings_javascript() { 207 $ajax_nonce = wp_create_nonce( "wp_translate" ); 208 ob_start(); 209 ?> 210 <script type="text/javascript"> 211 jQuery(document).ready(function($) { 212 213 // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php 214 jQuery('#btn-wp-transalate-settings').on('click', function() { 215 var default_language = jQuery('#defaultLanguage option:selected').val(); 216 var trackingId = jQuery('#trackingId').val(); 217 var tracking_enabled = jQuery('#trackingEnabled').is(':checked'); 218 var excludeMobile = jQuery('#excludeMobile').is(':checked'); 219 var autoDisplay = jQuery('#autoDisplay').is(':checked'); 220 221 var data = { 222 'action': 'wp_translate_settings', 223 'security': '<?php echo $ajax_nonce; ?>', 224 'default_language' : default_language, 225 'excludeMobile' : excludeMobile, 226 'autoDisplay' : autoDisplay, 227 'trackingId': trackingId, 228 'trackingEnabled' : tracking_enabled 229 }; 230 231 jQuery('#wp-translate-update-status').show(); 232 jQuery.post(ajaxurl, data, function(response) { 233 jQuery('#wp-translate-update-status').hide(); 234 }); 235 236 return false; 237 }); 238 239 jQuery('#wp-translate-notice-btn').on('click', function() { 240 var data = { 241 'action': 'wp_translate_notice', 242 'security': '<?php echo $ajax_nonce; ?>' 243 }; 244 245 jQuery('#wp-translate-notice').hide(); 246 247 jQuery.post(ajaxurl, data, function(response) { 248 //reserved for future action 249 }); 250 }); 251 252 }); 253 </script> <?php 254 ob_end_flush(); 255 } 256 257 public function wp_translate_notice() { 258 check_ajax_referer( 'wp_translate', 'security' ); 259 260 $wpTranlsateOptions = get_option("wpTranslateOptions"); 261 262 $upgradeObject = $wpTranlsateOptions['upgrade_notice']; 263 $upgradeObject['count']++; 264 $reShowTime = ($upgradeObject['count'] > 2) ? '+2 Months' : '+1 Month'; 265 $upgradeObject['date'] = date('Y-m-d', strtotime($reShowTime)); 266 267 $wpTranlsateOptions['upgrade_notice'] = $upgradeObject; 268 269 update_option("wpTranslateOptions", $wpTranlsateOptions); 270 271 wp_die(); // this is required to terminate immediately and return a proper response 272 } 273 274 275 public function wp_translate_notice_javascript() { 276 $ajax_nonce = wp_create_nonce( "wp_translate" ); 277 ob_start(); 278 ?> 279 <script type="text/javascript"> 280 jQuery(document).ready(function($) { 281 282 jQuery('#wp-translate-notice-btn').on('click', function() { 283 var data = { 284 'action': 'wp_translate_notice', 285 'security': '<?php echo $ajax_nonce; ?>' 286 }; 287 288 jQuery('#wp-translate-notice').hide(); 289 290 jQuery.post(ajaxurl, data, function(response) { 291 292 }); 293 }); 294 }); 295 </script> <?php 296 ob_end_flush(); 297 } 298 299 public function create_translate_plugin_links($links, $file) { 300 if ( $file == plugin_basename(__FILE__) ) { 301 $links[] = '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EJVXJP3V8GE2J">' . __('Donate', 'wp-translate') . '</a>'; 302 } 303 return $links; 304 } 75 305 } 76 306 } 77 add_action('init', 'wpTranslate_options_check'); 78 79 add_action( 'wp_ajax_wp_translate_settings', 'wp_translate_settings' ); 80 81 function wp_translate_settings() { 82 check_ajax_referer( 'wp_translate', 'security' ); 83 84 $wpTranslateOptions['default_language'] = sanitize_text_field($_POST["default_language"]); 85 $wpTranslateOptions['exclude_mobile'] = filter_var($_POST["excludeMobile"], FILTER_VALIDATE_BOOLEAN); 86 $wpTranslateOptions['auto_display'] = filter_var($_POST["autoDisplay"], FILTER_VALIDATE_BOOLEAN); 87 $wpTranslateOptions['tracking_id'] = sanitize_text_field($_POST["trackingId"]); 88 $wpTranslateOptions['tracking_enabled'] = filter_var($_POST["trackingEnabled"], FILTER_VALIDATE_BOOLEAN); 89 90 update_option(WPTRANSLATEOPTIONS, $wpTranslateOptions); 91 92 $message = "WP Translate settings have been saved."; 93 94 echo $message; 95 96 wp_die(); // this is required to terminate immediately and return a proper response 307 if (class_exists("WP_Translate")) { 308 global $WP_Translate; 309 $WP_Translate = new WP_Translate(); 97 310 } 98 function wp_translate_notice() {99 check_ajax_referer( 'wp_translate', 'security' );100 101 $wpTranlsateOptions = get_option("wpTranslateOptions");102 103 $upgradeObject = $wpTranlsateOptions['upgrade_notice'];104 $upgradeObject['count']++;105 $reShowTime = ($upgradeObject['count'] > 2) ? '+2 Months' : '+1 Month';106 $upgradeObject['date'] = date('Y-m-d', strtotime($reShowTime));107 108 $wpTranlsateOptions['upgrade_notice'] = $upgradeObject;109 110 update_option("wpTranslateOptions", $wpTranlsateOptions);111 112 wp_die(); // this is required to terminate immediately and return a proper response113 }114 add_action( 'wp_ajax_wp_translate_notice', 'wp_translate_notice' );115 116 function wp_translate_notice_javascript() {117 $ajax_nonce = wp_create_nonce( "wp_translate" );118 ?>119 <script type="text/javascript">120 jQuery(document).ready(function($) {121 122 jQuery('#wp-translate-notice-btn').on('click', function() {123 var data = {124 'action': 'wp_translate_notice',125 'security': '<?php echo $ajax_nonce; ?>'126 };127 128 jQuery('#wp-translate-notice').hide();129 130 jQuery.post(ajaxurl, data, function(response) {131 132 });133 });134 });135 </script> <?php136 }137 add_action( 'admin_footer', 'wp_translate_notice_javascript' );138 139 function wp_translate_settings_javascript() {140 $ajax_nonce = wp_create_nonce( "wp_translate" );141 ?>142 <script type="text/javascript">143 jQuery(document).ready(function($) {144 145 // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php146 jQuery('#btn-wp-transalate-settings').on('click', function() {147 var default_language = jQuery('#defaultLanguage option:selected').val();148 var trackingId = jQuery('#trackingId').val();149 var tracking_enabled = jQuery('#trackingEnabled').is(':checked');150 var excludeMobile = jQuery('#excludeMobile').is(':checked');151 var autoDisplay = jQuery('#autoDisplay').is(':checked');152 153 var data = {154 'action': 'wp_translate_settings',155 'security': '<?php echo $ajax_nonce; ?>',156 'default_language' : default_language,157 'excludeMobile' : excludeMobile,158 'autoDisplay' : autoDisplay,159 'trackingId': trackingId,160 'trackingEnabled' : tracking_enabled161 };162 163 jQuery('#wp-translate-update-status').show();164 jQuery.post(ajaxurl, data, function(response) {165 jQuery('#wp-translate-update-status').hide();166 });167 168 return false;169 });170 171 jQuery('#wp-translate-notice-btn').on('click', function() {172 var data = {173 'action': 'wp_translate_notice',174 'security': '<?php echo $ajax_nonce; ?>'175 };176 177 jQuery('#wp-translate-notice').hide();178 179 jQuery.post(ajaxurl, data, function(response) {180 //reserved for future action181 });182 });183 184 });185 </script> <?php186 }187 188 //translator189 function translate_Init() {190 $wpTranslateOptions = get_option("wpTranslateOptions");191 $doTranslate = true;192 if ($wpTranslateOptions["exclude_mobile"]) {193 $agent = $_SERVER['HTTP_USER_AGENT'];194 if(preg_match('/iPhone|Android|Blackberry|Windows Phone/i', $agent)){195 $doTranslate = false;196 }197 }198 $agent = $_SERVER['HTTP_USER_AGENT'];199 if($doTranslate){200 ob_start();201 ?>202 <!-- WP Translate - https://plugingarden.com/google-translate-wordpress-plugin/ -->203 <script type='text/javascript'>204 function googleTranslateElementInit2() {205 new google.translate.TranslateElement({206 pageLanguage: '<?php echo esc_js($wpTranslateOptions["default_language"]); ?>',207 <?php if ($wpTranslateOptions["tracking_enabled"]) { ?>208 gaTrack: true,209 gaId: '<?php echo esc_js($wpTranslateOptions["tracking_id"]); ?>',210 <?php } ?>211 floatPosition: google.translate.TranslateElement.FloatPosition.TOP_RIGHT,212 autoDisplay: <?php echo ($wpTranslateOptions["auto_display"]) ? "true" : "false"; ?>213 }<?php if (true) {echo(", 'wp_translate'");} ?>);214 }215 </script><script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2"></script>216 <style type="text/css">217 body {top:0 !important;}218 </style>219 <?php220 ob_end_flush();221 }222 }223 add_action('wp_footer', 'translate_Init');224 225 //admin226 function admin_positioning() {227 if (current_user_can('manage_options')) {228 _e('<style>.goog-te-ftab-float {right: 250px !important;}</style>');229 }230 }231 add_action('wp_head', 'admin_positioning');232 233 function create_translate_plugin_links($links, $file) {234 if ( $file == plugin_basename(__FILE__) ) {235 $links[] = '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EJVXJP3V8GE2J">' . __('Donate', 'wp-translate') . '</a>';236 }237 return $links;238 }239 add_filter('plugin_row_meta', 'create_translate_plugin_links', 10, 2);240 241 function add_wp_translate_menu() {242 add_menu_page(__('WP Translate','wp-translate'), __('WP Translate','wp-translate'), 'manage_options', 'wptranslate-admin', 'show_translate_menu', 'dashicons-admin-site' );243 244 wp_register_style( 'wp_translate_admin_stylesheet', WP_PLUGIN_URL.'/wp-translate/admin/wp-translate-style.css');245 wp_enqueue_style('wp_translate_admin_stylesheet');246 }247 add_action( 'admin_menu', 'add_wp_translate_menu' );248 249 function show_translate_menu()250 {251 include("admin/overview.php");252 253 add_action( 'admin_footer', 'wp_translate_settings_javascript' );254 }255 256 function wpt_upgrade_notice() {257 $wpTranlsateOptions = get_option("wpTranslateOptions");258 $upgradeObject = $wpTranlsateOptions['upgrade_notice'];259 $today = strtotime(date('Y-m-d'));260 $noticeDate = strtotime($upgradeObject['date']);261 $showNotice = false;262 263 if ($today >= $noticeDate) {264 $showNotice = true;265 }266 267 if ($showNotice) {268 ?>269 <div id="wp-translate-notice" class="wp-core-ui notice is-dismissable" style="clear: both;">270 <div class="wp-translate-logo" id="wp-translate-notice-logo"></div>271 <div id="wp-translate-notice-content">272 <h3 style="padding:2px;font-weight:normal;margin:0;"><?php _e("Give Your Readers a Better Translation Experience with WP Translate Pro", 'wp-translate'); ?></h3>273 <p><?php _e("Show country flag icons next to languages and remove Google branding.", 'wp-translate'); ?></p>274 <p><?php _e("WP Translate Pro is also Gutenberg ready! Comes with a custom block to use on pages that don't display widgets.", 'wp-translate'); ?></p>275 <p style="margin-top: 10px;"><a href="https://plugingarden.com/google-translate-wordpress-plugin/?src=wpt" class="button-primary" target="_blank"><?php _e('Check out WP Translate Pro', 'wp-translate'); ?></a></p>276 </div>277 <button id="wp-translate-notice-btn" class="notice-dismiss" style="position: relative; float: right;"></button>278 <div style="clear: both;"></div>279 </div>280 <?php281 }282 }283 add_action( 'admin_notices', 'wpt_upgrade_notice' );284 285 //widget286 class WP_Translate_Widget extends WP_Widget {287 //register widget288 function __construct() {289 parent::__construct(290 'wp_translation_widget',291 __('WP Translate Widget', 'wp-translate'),292 array('description' => __('Creates a simple drop down list of languages to translate content to and hides tool bar', 'wp-translate'), )293 );294 }295 296 //front-end297 public function widget( $args, $instance ) {298 echo $args['before_widget'];299 if ( !empty( $instance['title'] ) ) {300 echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ) . $args['after_title'];301 }302 303 echo '<div id="wp_translate"></div>';304 305 echo $args['after_widget'];306 }307 308 //back-end309 public function form( $instance ) {310 if ( isset( $instance['title'] ) ) {311 $title = $instance['title'];312 }313 else {314 $title = __( 'Translate', 'wp-translate' );315 }316 ?>317 <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>318 <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">319 <?php320 }321 322 //sanitize form values when updated323 public function update( $new_instance, $old_instance ) {324 $instance = array();325 326 $instance['title'] = ( !empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';327 328 return $instance;329 }330 }331 332 function register_wp_translation_widget() {333 register_widget( 'WP_Translate_Widget' );334 }335 add_action( 'widgets_init', 'register_wp_translation_widget' );336 337 311 ?>
Note: See TracChangeset
for help on using the changeset viewer.