Changeset 2124183
- Timestamp:
- 07/16/2019 07:43:13 PM (6 years ago)
- Location:
- pretty-link/trunk
- Files:
-
- 69 added
- 9 deleted
- 55 edited
-
LICENSE (added)
-
app/controllers/PrliAppController.php (modified) (15 diffs)
-
app/controllers/PrliClicksController.php (modified) (7 diffs)
-
app/controllers/PrliGroupsController.php (deleted)
-
app/controllers/PrliLinksController.php (modified) (7 diffs)
-
app/controllers/PrliLocalApiController.php (modified) (15 diffs)
-
app/controllers/PrliOnboardingController.php (added)
-
app/controllers/PrliOptionsController.php (modified) (2 diffs)
-
app/controllers/PrliPopupController.php (modified) (7 diffs)
-
app/controllers/PrliPostsController.php (modified) (6 diffs)
-
app/controllers/PrliReportsController.php (modified) (1 diff)
-
app/controllers/PrliToolsController.php (modified) (1 diff)
-
app/controllers/PrliUpdateController.php (modified) (4 diffs)
-
app/helpers/PrliAppHelper.php (modified) (2 diffs)
-
app/helpers/PrliClicksHelper.php (modified) (1 diff)
-
app/helpers/PrliLinksHelper.php (modified) (3 diffs)
-
app/models/PrliClick.php (modified) (2 diffs)
-
app/models/PrliDb.php (modified) (7 diffs)
-
app/models/PrliGroup.php (modified) (4 diffs)
-
app/models/PrliLink.php (modified) (26 diffs)
-
app/models/PrliOptions.php (modified) (5 diffs)
-
app/models/PrliUtils.php (modified) (14 diffs)
-
app/views/admin/errors.php (modified) (2 diffs)
-
app/views/admin/onboarding (added)
-
app/views/admin/onboarding/update.php (added)
-
app/views/admin/onboarding/welcome.php (added)
-
app/views/admin/popups/rating.php (modified) (1 diff)
-
app/views/admin/popups/upgrade.php (modified) (1 diff)
-
app/views/admin/update/activation_warning.php (modified) (1 diff)
-
app/views/admin/update/addon_popup.php (modified) (1 diff)
-
app/views/admin/update/addons.php (modified) (3 diffs)
-
app/views/admin/update/edge_updates.php (modified) (1 diff)
-
app/views/admin/update/license.php (modified) (4 diffs)
-
app/views/admin/update/ui.php (modified) (2 diffs)
-
app/views/clicks/csv_download.php (modified) (2 diffs)
-
app/views/clicks/list.php (modified) (11 diffs)
-
app/views/groups/edit.php (modified) (4 diffs)
-
app/views/groups/list.php (modified) (6 diffs)
-
app/views/groups/new.php (modified) (6 diffs)
-
app/views/links/edit.php (deleted)
-
app/views/links/form.php (modified) (1 diff)
-
app/views/links/form_advanced.php (added)
-
app/views/links/form_basic.php (added)
-
app/views/links/form_pro.php (added)
-
app/views/links/list.php (deleted)
-
app/views/links/new.php (deleted)
-
app/views/options/form.php (modified) (10 diffs)
-
app/views/shared/errors.php (modified) (1 diff)
-
app/views/shared/jsredirect.php (deleted)
-
app/views/shared/link-table-nav.php (modified) (10 diffs)
-
app/views/shared/nav.php (modified) (1 diff)
-
app/views/shared/public_link.php (modified) (3 diffs)
-
app/views/shared/table-nav.php (modified) (12 diffs)
-
app/views/shared/tinymce_form_popup.php (modified) (1 diff)
-
app/views/shared/title_text.php (modified) (1 diff)
-
app/views/tools/form.php (modified) (3 diffs)
-
app/views/widgets/widget.php (modified) (1 diff)
-
css/admin_shared.css (modified) (5 diffs)
-
css/cloaked-redirect.css (added)
-
css/menu-styles.css (modified) (1 diff)
-
css/prli-admin-links.css (modified) (4 diffs)
-
css/settings_table.css (modified) (4 diffs)
-
i18n/pretty-link.pot (modified) (3 diffs)
-
images/dark_add_twitter_account.png (deleted)
-
images/pbar_grad.png (deleted)
-
images/pl-logo-horiz-RGB.png (deleted)
-
images/pretty-links-logo-color-white.svg (added)
-
images/pretty-links-plugin-header.jpg (added)
-
images/twitter.png (deleted)
-
images/update-3-0.png (added)
-
images/update-all-new-link-listing.png (added)
-
images/update-categories-tags.png (added)
-
images/update-gutenberg-editor.png (added)
-
images/update-new-link-editor-1.png (added)
-
images/update-new-link-editor-2.png (added)
-
images/welcome-add-new.png (added)
-
images/welcome-advanced-redirects.png (added)
-
images/welcome-categories.png (added)
-
images/welcome-click-update.png (added)
-
images/welcome-copy-url.png (added)
-
images/welcome-customize-slug.png (added)
-
images/welcome-desk.png (added)
-
images/welcome-dynamic-redirects.png (added)
-
images/welcome-enter-url.png (added)
-
images/welcome-import-export.png (added)
-
images/welcome-link.png (added)
-
js/admin_link_form.js (added)
-
js/admin_popup.js (modified) (2 diffs)
-
js/admin_shared.js (modified) (1 diff)
-
js/editor (added)
-
js/editor.deps.json (added)
-
js/editor.js (added)
-
js/editor.js.map (added)
-
js/editor/components (added)
-
js/editor/components/index.js (added)
-
js/editor/components/link-editor (added)
-
js/editor/components/link-editor/index.js (added)
-
js/editor/components/link-editor/style.scss (added)
-
js/editor/components/link-editor/utils.js (added)
-
js/editor/components/url-input (added)
-
js/editor/components/url-input/index.js (added)
-
js/editor/formats (added)
-
js/editor/formats/pretty-link (added)
-
js/editor/formats/pretty-link/index.js (added)
-
js/prli-admin-links.js (modified) (3 diffs)
-
js/quick_create.js (added)
-
js/tinymce_form_popup.js (modified) (6 diffs)
-
js/vendor (added)
-
js/vendor/jquery.form-validator.min.js (added)
-
pretty-link.php (modified) (3 diffs)
-
readme.txt (modified) (4 diffs)
-
vendor/lib/bootstrap (added)
-
vendor/lib/bootstrap/bootstrap-theme.min.css (added)
-
vendor/lib/bootstrap/bootstrap.min.css (added)
-
vendor/lib/jquery-ui (added)
-
vendor/lib/jquery-ui/images (added)
-
vendor/lib/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png (added)
-
vendor/lib/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png (added)
-
vendor/lib/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png (added)
-
vendor/lib/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png (added)
-
vendor/lib/jquery-ui/images/ui-bg_glass_75_dadada_1x400.png (added)
-
vendor/lib/jquery-ui/images/ui-bg_glass_75_e6e6e6_1x400.png (added)
-
vendor/lib/jquery-ui/images/ui-bg_glass_95_fef1ec_1x400.png (added)
-
vendor/lib/jquery-ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png (added)
-
vendor/lib/jquery-ui/images/ui-icons_222222_256x240.png (added)
-
vendor/lib/jquery-ui/images/ui-icons_2e83ff_256x240.png (added)
-
vendor/lib/jquery-ui/images/ui-icons_454545_256x240.png (added)
-
vendor/lib/jquery-ui/images/ui-icons_888888_256x240.png (added)
-
vendor/lib/jquery-ui/images/ui-icons_cd0a0a_256x240.png (added)
-
vendor/lib/jquery-ui/jquery-ui.min.css (added)
-
vendor/lib/magnific-popup (added)
-
vendor/lib/magnific-popup/jquery.magnific-popup.min.js (added)
-
vendor/lib/magnific-popup/magnific-popup.min.css (added)
Legend:
- Unmodified
- Added
- Removed
-
pretty-link/trunk/app/controllers/PrliAppController.php
r2023089 r2124183 2 2 3 3 class PrliAppController extends PrliBaseController { 4 public $screens; 5 6 public function __construct() { 7 $this->screens = array( 8 'add-edit' => 'pretty-link', 9 'list' => 'edit-pretty-link', 10 'category' => 'edit-pretty-link-category', 11 'tag' => 'edit-pretty-link-tag', 12 'clicks' => 'pretty-links_page_pretty-link-clicks', 13 'reports' => 'pretty-links_page_plp-reports', 14 'tools' => 'pretty-links_page_pretty-link-tools', 15 'options' => 'pretty-links_page_pretty-link-options', 16 'imp-exp' => 'pretty-links_page_plp-import-export', 17 'activate' => 'pretty-links_page_pretty-link-updates' 18 ); 19 } 20 4 21 public function load_hooks() { 5 22 global $prli_options; 6 23 7 add_action('init', array($this, 'parse_standalone_request') );24 add_action('init', array($this, 'parse_standalone_request'), 15); // Later so that the category taxonomy exists for the custom bookmarklet 8 25 add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts')); 9 26 add_action('admin_menu', array($this, 'menu'), 3); //Hooking in earlier - there's a plugin out there somewhere breaking this action for later plugins 10 27 28 add_action('custom_menu_order', array($this,'admin_menu_order')); 29 add_action('menu_order', array($this,'admin_menu_order')); 30 add_action('menu_order', array($this,'admin_submenu_order')); 31 11 32 //Where the magic happens when not in wp-admin nor !GET request 12 33 if($_SERVER["REQUEST_METHOD"] == 'GET' && !is_admin()) { 13 add_action(' plugins_loaded', array($this, 'redirect'), 1); // Redirect34 add_action('init', array($this, 'redirect'), 1); // Redirect 14 35 } 15 36 … … 24 45 25 46 add_filter( 'plugin_action_links_' . PRLI_PLUGIN_SLUG, array($this,'add_plugin_action_links') ); 47 48 add_action('in_admin_header', array($this,'pl_admin_header'), 0); 49 50 // Admin footer text. 51 add_filter( 'admin_footer_text', array( $this, 'admin_footer' ), 1, 2 ); 52 } 53 54 public function pl_admin_header() { 55 global $current_screen; 56 57 if($this->on_pretty_link_page()) { 58 ?> 59 <div id="pl-admin-header"><img class="pl-logo" src="<?php echo PRLI_IMAGES_URL . '/pretty-links-logo-color-white.svg'; ?>" /></div> 60 <?php 61 } 62 } 63 64 private function on_pretty_link_page() { 65 global $current_screen; 66 return (isset($current_screen->id) && strpos($current_screen->id,'pretty-link') !== false); 26 67 } 27 68 … … 29 70 global $prli_options, $plp_options, $plp_update; 30 71 72 $this->admin_separator(); 73 31 74 $role = 'manage_options'; 32 if(isset($plp_options->min_role)) 75 if(isset($plp_options->min_role)) { 33 76 $role = $plp_options->min_role; 34 35 $prli_menu_hook = add_menu_page( 36 __('Pretty Links | Manage Pretty Links', 'pretty-link'), 37 __('Pretty Links', 'pretty-link'), 38 $role, 'pretty-link', 39 'PrliLinksController::route', 40 PRLI_IMAGES_URL.'/pretty-link-small.png' 41 ); 42 43 $prli_menu_hook = add_submenu_page( 44 'pretty-link', 45 __('Pretty Links | Manage Pretty Links', 'pretty-link'), 46 __('Pretty Links', 'pretty-link'), 47 $role, 'pretty-link', 48 'PrliLinksController::route' 49 ); 50 51 $prli_add_links_menu_hook = add_submenu_page( 52 'pretty-link', 53 __('Pretty Links | Add New Link', 'pretty-link'), 54 __('Add New Link', 'pretty-link'), 55 $role, 'add-new-pretty-link', 56 'PrliLinksController::new_link' 57 ); 58 59 $groups_ctrl = new PrliGroupsController(); 60 add_submenu_page( 61 'pretty-link', 62 __('Pretty Links | Groups', 'pretty-link'), 63 __('Groups', 'pretty-link'), 64 $role, 'pretty-link-groups', 65 array( $groups_ctrl, 'route' ) 66 ); 77 } 78 79 $pl_link_cpt = PrliLink::$cpt; 80 81 if(!$plp_update->is_installed()) { 82 add_submenu_page( 83 "edit.php?post_type={$pl_link_cpt}", 84 esc_html__('Link Categories [Pro Only]', 'pretty-link'), 85 esc_html__('Categories [Pro]', 'pretty-link'), 86 $role, 87 "https://prettylinks.com/pl/main-menu/upgrade?categories", 88 false 89 ); 90 add_submenu_page( 91 "edit.php?post_type={$pl_link_cpt}", 92 esc_html__('Link Tags [Pro Only]', 'pretty-link'), 93 esc_html__('Tags [Pro]', 'pretty-link'), 94 $role, 95 "https://prettylinks.com/pl/main-menu/upgrade?tags", 96 false 97 ); 98 add_submenu_page( 99 "edit.php?post_type={$pl_link_cpt}", 100 esc_html__('Link Reports [Pro Only]', 'pretty-link'), 101 esc_html__('Reports [Pro]', 'pretty-link'), 102 $role, 103 "https://prettylinks.com/pl/main-menu/upgrade?reports", 104 false 105 ); 106 add_submenu_page( 107 "edit.php?post_type={$pl_link_cpt}", 108 esc_html__('Import / Export [Pro Only]', 'pretty-link'), 109 esc_html__('Import / Export [Pro]', 'pretty-link'), 110 $role, 111 "https://prettylinks.com/pl/main-menu/upgrade?import-export", 112 false 113 ); 114 } 67 115 68 116 if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking != 'count' ) { 69 117 $clicks_ctrl = new PrliClicksController(); 70 add_submenu_page( 71 'pretty-link', 72 __('Pretty Links | Clicks', 'pretty-link'), 73 __('Clicks', 'pretty-link'), 74 $role, 'pretty-link-clicks', 75 array( $clicks_ctrl, 'route' ) 76 ); 118 add_submenu_page( "edit.php?post_type={$pl_link_cpt}", esc_html__('Pretty Links | Clicks', 'pretty-link'), esc_html__('Clicks', 'pretty-link'), $role, 'pretty-link-clicks', array( $clicks_ctrl, 'route' ) ); 77 119 } 78 120 79 121 $routes_ctrl = new PrliToolsController(); 80 add_submenu_page( 81 'pretty-link', 82 __('Pretty Links | Tools', 'pretty-link'), 83 __('Tools', 'pretty-link'), 84 $role, 'pretty-link-tools', 85 array($routes_ctrl,'route') 86 ); 122 add_submenu_page( "edit.php?post_type={$pl_link_cpt}", esc_html__('Pretty Links | Tools', 'pretty-link'), esc_html__('Tools', 'pretty-link'), $role, 'pretty-link-tools', array($routes_ctrl,'route') ); 87 123 88 124 $options_ctrl = new PrliOptionsController(); 89 add_submenu_page( 90 'pretty-link', 91 __('Pretty Links | Options', 'pretty-link'), 92 __('Options', 'pretty-link'), 93 $role, 'pretty-link-options', 94 array( $options_ctrl, 'route' ) 95 ); 125 add_submenu_page( "edit.php?post_type={$pl_link_cpt}", esc_html__('Pretty Links | Options', 'pretty-link'), esc_html__('Options', 'pretty-link'), $role, 'pretty-link-options', array( $options_ctrl, 'route' )); 96 126 97 127 if(!defined('PRETTYLINK_LICENSE_KEY') && class_exists('PrliUpdateController')) { 98 128 if($plp_update->is_installed_and_activated()) { 99 add_submenu_page( 'pretty-link', __('Activate Pro', 'pretty-link'), __('Activate Pro', 'pretty-link'), $role, 'pretty-link-updates', array($plp_update, 'route'));129 add_submenu_page( "edit.php?post_type={$pl_link_cpt}", esc_html__('Activate', 'pretty-link'), esc_html__('Activate', 'pretty-link'), $role, 'pretty-link-updates', array($plp_update, 'route')); 100 130 } 101 131 else if($plp_update->is_installed()) { 102 add_submenu_page( 'pretty-link', __('Activate Pro', 'pretty-link'), '<span class="prli-menu-red"><b>'.__('Activate Pro', 'pretty-link').'</b></span>', $role, 'pretty-link-updates', array($plp_update, 'route'));132 add_submenu_page( "edit.php?post_type={$pl_link_cpt}", esc_html__('Activate', 'pretty-link'), '<span class="prli-menu-red"><b>'.esc_html__('Activate', 'pretty-link').'</b></span>', $role, 'pretty-link-updates', array($plp_update, 'route')); 103 133 } 104 134 else { 105 add_submenu_page( 'pretty-link', __('Upgrade to Pro', 'pretty-link'), '<span class="prli-menu-red"><b>'.__('Upgrade to Pro', 'pretty-link').'</b></span>', $role, 'pretty-link-updates', array($plp_update, 'route')); 106 } 107 } 135 add_submenu_page( "edit.php?post_type={$pl_link_cpt}", esc_html__('Upgrade', 'pretty-link'), '<span class="prli-menu-red"><b>'.esc_html__('Upgrade', 'pretty-link').'</b></span>', $role, 'pretty-link-updates', array($plp_update, 'route')); 136 } 137 } 138 139 $onboarding_ctrl = new PrliOnboardingController(); 140 add_submenu_page('options.php', __('Welcome', 'pretty-link'), null, $role, 'pretty-link-welcome', array($onboarding_ctrl, 'welcome_route')); 141 add_submenu_page('options.php', __("What's New", 'pretty-link'), null, $role, 'pretty-link-update', array($onboarding_ctrl, 'update_route')); 142 } 143 144 /** 145 * Add a separator to the WordPress admin menus 146 */ 147 public function admin_separator() 148 { 149 global $menu; 150 151 // Prevent duplicate separators when no core menu items exist 152 if(!PrliUtils::is_admin()) { return; } 153 154 $menu[] = array('', 'read', 'separator-pretty-link', '', 'wp-menu-separator pretty-link'); 155 } 156 157 /* 158 * Move our custom separator above our admin menu 159 * 160 * @param array $menu_order Menu Order 161 * @return array Modified menu order 162 */ 163 public function admin_menu_order($menu_order) { 164 if(!$menu_order) { 165 return true; 166 } 167 168 if(!is_array($menu_order)) { 169 return $menu_order; 170 } 171 172 // Initialize our custom order array 173 $new_menu_order = array(); 174 175 // Menu values 176 $second_sep = 'separator2'; 177 $pl_link_cpt = PrliLink::$cpt; 178 $custom_menus = array('separator-pretty-link', "edit.php?post_type={$pl_link_cpt}"); 179 180 // Loop through menu order and do some rearranging 181 foreach($menu_order as $item) { 182 // Position Pretty Links menu above appearance 183 if($second_sep == $item) { 184 // Add our custom menus 185 foreach($custom_menus as $custom_menu) { 186 if(array_search($custom_menu, $menu_order)) { 187 $new_menu_order[] = $custom_menu; 188 } 189 } 190 // Add the appearance separator 191 $new_menu_order[] = $second_sep; 192 // Skip our menu items down below 193 } 194 elseif(!in_array($item, $custom_menus)) { 195 $new_menu_order[] = $item; 196 } 197 } 198 199 // Return our custom order 200 return $new_menu_order; 201 } 202 203 //Organize the CPT's in our submenu 204 public function admin_submenu_order($menu_order) { 205 global $submenu; 206 207 static $run = false; 208 209 //no sense in running this everytime the hook gets called 210 if($run) { return $menu_order; } 211 212 $pl_link_cpt = PrliLink::$cpt; 213 $slug = "edit.php?post_type={$pl_link_cpt}"; 214 215 //just return if there's no pretty-link menu available for the current screen 216 if(!isset($submenu[$slug])) { return $menu_order; } 217 218 $run = true; 219 $new_order = array(); 220 221 $categories_ctax = class_exists('PlpLinkCategoriesController') ? PlpLinkCategoriesController::$ctax : 'pretty-link-category'; 222 $tags_ctax = class_exists('PlpLinkTagsController') ? PlpLinkTagsController::$ctax : 'pretty-link-tag'; 223 224 $include_array = array( 225 $slug, 226 "post-new.php?post_type={$pl_link_cpt}", 227 "edit-tags.php?taxonomy={$categories_ctax}&post_type={$pl_link_cpt}", 228 'https://prettylinks.com/pl/main-menu/upgrade?categories', 229 "edit-tags.php?taxonomy={$tags_ctax}&post_type={$pl_link_cpt}", 230 'https://prettylinks.com/pl/main-menu/upgrade?tags', 231 'pretty-link-clicks', 232 'plp-reports', 233 'https://prettylinks.com/pl/main-menu/upgrade?reports', 234 'pretty-link-tools', 235 'pretty-link-options', 236 'plp-import-export', 237 'https://prettylinks.com/pl/main-menu/upgrade?import-export', 238 'pretty-link-updates' 239 ); 240 241 $i = (count($include_array) - 1); 242 243 foreach($submenu[$slug] as $sub) { 244 $include_order = array_search($sub[2], $include_array); 245 246 if(false !== $include_order) { 247 $new_order[$include_order] = $sub; 248 } 249 else { 250 $new_order[$i++] = $sub; 251 } 252 } 253 254 ksort($new_order); 255 256 $submenu[$slug] = $new_order; 257 258 return $menu_order; 108 259 } 109 260 … … 114 265 115 266 if($plp_update->is_installed_and_activated()) { 116 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/activated/docs" target="_blank">'. __('Docs', 'pretty-link').'</a>';117 $pllinks[] = '<a href="'. esc_url( get_admin_url(null, 'admin.php?page=pretty-link-updates') ) .'">'. __('Activate', 'pretty-link').'</a>';267 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/activated/docs" target="_blank">'.esc_html__('Docs', 'pretty-link').'</a>'; 268 $pllinks[] = '<a href="'. esc_url( get_admin_url(null, 'admin.php?page=pretty-link-updates') ) .'">'.esc_html__('Activate', 'pretty-link').'</a>'; 118 269 } 119 270 else if($plp_update->is_installed()) { 120 $pllinks[] = '<a href="'. esc_url( get_admin_url(null, 'admin.php?page=pretty-link-updates') ) .'" class="prli-menu-green">'. __('Activate Pro License', 'pretty-link').'</a>';121 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/installed/buy" target="_blank" class="prli-menu-red">'. __('Buy', 'pretty-link').'</a>';122 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/installed/docs" target="_blank">'. __('Docs', 'pretty-link').'</a>';271 $pllinks[] = '<a href="'. esc_url( get_admin_url(null, 'admin.php?page=pretty-link-updates') ) .'" class="prli-menu-green">'.esc_html__('Activate Pro License', 'pretty-link').'</a>'; 272 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/installed/buy" target="_blank" class="prli-menu-red">'.esc_html__('Buy', 'pretty-link').'</a>'; 273 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/installed/docs" target="_blank">'.esc_html__('Docs', 'pretty-link').'</a>'; 123 274 } 124 275 else { 125 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/lite/upgrade" class="prli-menu-red" target="_blank">'. __('Upgrade to Pro', 'pretty-link').'</a>';126 $pllinks[] = '<a href="'. esc_url( get_admin_url(null, 'admin.php?page=pretty-link-updates') ) .'" class="prli-menu-green">'. __('Activate Pro License', 'pretty-link').'</a>';127 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/lite/docs" target="_blank">'. __('Docs', 'pretty-link').'</a>';276 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/lite/upgrade" class="prli-menu-red" target="_blank">'.esc_html__('Upgrade to Pro', 'pretty-link').'</a>'; 277 $pllinks[] = '<a href="'. esc_url( get_admin_url(null, 'admin.php?page=pretty-link-updates') ) .'" class="prli-menu-green">'.esc_html__('Activate Pro License', 'pretty-link').'</a>'; 278 $pllinks[] = '<a href="https://prettylinks.com/pl/plugin-actions/lite/docs" target="_blank">'.esc_html__('Docs', 'pretty-link').'</a>'; 128 279 } 129 280 … … 132 283 133 284 public function enqueue_admin_scripts($hook) { 134 global $wp_version; 135 136 wp_enqueue_style( 'prli-fontello-animation', 137 PRLI_VENDOR_LIB_URL.'/fontello/css/animation.css', 138 array(), PRLI_VERSION ); 285 global $wp_version, $current_screen; 286 139 287 wp_enqueue_style( 'prli-fontello-pretty-link', 140 288 PRLI_VENDOR_LIB_URL.'/fontello/css/pretty-link.css', 141 array('prli-fontello-animation'), PRLI_VERSION ); 289 array(), PRLI_VERSION ); 290 291 if (version_compare($wp_version, '5.2', '>=')) { 292 wp_enqueue_script( 293 'pretty-link-richtext-format', 294 PRLI_JS_URL . '/editor.js', 295 ['wp-editor', 'wp-i18n', 'wp-element', 'wp-compose', 'wp-components'], 296 PRLI_VERSION, 297 true 298 ); 299 300 wp_localize_script('pretty-link-richtext-format', 'plEditor', array( 301 'homeUrl' => trailingslashit(get_home_url()) 302 )); 303 } 142 304 143 305 // If we're in 3.8 now then use a font for the admin image … … 147 309 } 148 310 149 $wp_scripts = new WP_Scripts(); 150 $ui = $wp_scripts->query('jquery-ui-core'); 151 $url = "//ajax.googleapis.com/ajax/libs/jqueryui/{$ui->ver}/themes/smoothness/jquery-ui.css"; 152 153 if(strstr($hook, 'pretty-link') !== false) { 154 wp_register_style('pl-ui-smoothness', $url); 155 wp_register_style('prli-simplegrid', PRLI_CSS_URL.'/simplegrid.css', array(), PRLI_VERSION); 156 wp_register_style('prli-social', PRLI_CSS_URL.'/social_buttons.css', array(), PRLI_VERSION); 311 $is_pl_page = $this->is_pretty_link_page(); 312 $is_link_page = $this->is_pretty_link_link_page(); 313 $is_link_listing_page = $this->is_pretty_link_listing_page(); 314 $is_link_edit_page = $this->is_pretty_link_edit_page(); 315 $is_link_new_page = $this->is_pretty_link_new_page(); 316 317 if( $is_pl_page || $is_link_page ) { 318 $prli_admin_shared_prereqs = array( 'wp-pointer' ); 319 320 if(!$is_link_listing_page) { 321 wp_register_style('pl-ui-smoothness', PRLI_VENDOR_LIB_URL.'/jquery-ui/jquery-ui.min.css', array(), '1.11.4'); 322 wp_register_style('prli-simplegrid', PRLI_CSS_URL.'/simplegrid.css', array(), PRLI_VERSION); 323 wp_register_style('prli-social', PRLI_CSS_URL.'/social_buttons.css', array(), PRLI_VERSION); 324 325 $prli_admin_shared_prereqs = array_merge( 326 $prli_admin_shared_prereqs, 327 array( 328 'pl-ui-smoothness', 329 'prli-simplegrid', 330 'prli-social', 331 ) 332 ); 333 } 334 157 335 wp_enqueue_style( 158 336 'prli-admin-shared', 159 337 PRLI_CSS_URL.'/admin_shared.css', 160 array( 161 'pl-ui-smoothness', 162 'wp-pointer', 163 'prli-simplegrid', 164 'prli-social', 165 ), 338 $prli_admin_shared_prereqs, 166 339 PRLI_VERSION 167 340 ); … … 192 365 PRLI_VERSION 193 366 ); 194 } 195 196 if( in_array( $hook, array( 'toplevel_page_pretty-link', 'pretty-links_page_add-new-pretty-link' ) ) ) { 367 368 if($is_link_edit_page || $is_link_new_page) { 369 global $prli_link, $post; 370 371 $link_id = $prli_link->get_link_from_cpt($post->ID); 372 373 $args = array( 'args' => array( 374 'id' => $link_id, 375 'action' => 'validate_pretty_link', 376 'security' => wp_create_nonce( 'validate_pretty_link' ), 377 'update' => __('Update', 'pretty-link') // Use default text domain 378 ) ); 379 380 wp_enqueue_script( 'prli-link-form', PRLI_JS_URL . '/admin_link_form.js', array(), PRLI_VERSION); 381 wp_localize_script( 'prli-link-form', 'PrliLinkValidation', $args ); 382 } 383 } 384 385 if($current_screen->post_type == PrliLink::$cpt) { 197 386 wp_enqueue_style( 'prli-admin-links', PRLI_CSS_URL . '/prli-admin-links.css', array(), PRLI_VERSION ); 198 387 //wp_enqueue_script( 'jquery-clippy', PRLI_JS_URL . '/jquery.clippy.js', array('jquery'), PRLI_VERSION ); … … 205 394 206 395 wp_enqueue_script( 'prli-admin-link-list', PRLI_JS_URL . '/admin_link_list.js', array('jquery','clipboard-js','jquery-tooltipster'), PRLI_VERSION ); 207 //wp_localize_script( 'prli-admin-link-list', 'PrliLink', array('clippy_url' => PRLI_JS_URL.'/clippy.swf') ); 208 } 209 210 if( $hook === 'pretty-links_page_pretty-link-groups' ) { 211 wp_enqueue_style('pl-groups', PRLI_CSS_URL.'/admin_groups.css', null, PRLI_VERSION); 212 wp_enqueue_script('pl-groups', PRLI_JS_URL.'/admin_groups.js', array('jquery'), PRLI_VERSION); 213 } 214 215 if( $hook === 'pretty-links_page_pretty-link-options' ) { 396 $links_js_obj = array( 397 'reset_str' => __('Are you sure you want to reset your Pretty Link? This will delete all of the statistical data about this Pretty Link in your database.', 'pretty-link'), 398 'reset_security' => wp_create_nonce('reset_pretty_link') 399 ); 400 wp_localize_script( 'prli-admin-link-list', 'PrliLinkList', $links_js_obj ); 401 } 402 403 if( preg_match('/_page_pretty-link-options$/', $hook) ) { 216 404 wp_enqueue_style('pl-options', PRLI_CSS_URL.'/admin_options.css', null, PRLI_VERSION); 217 405 wp_enqueue_script('pl-options', PRLI_JS_URL.'/admin_options.js', array('jquery'), PRLI_VERSION); 218 406 } 219 407 220 if(in_array($hook, array( 221 'toplevel_page_pretty-link', 222 'pretty-links_page_add-new-pretty-link', 223 'pretty-links_page_pretty-link-tools', 224 'pretty-links_page_pretty-link-options' 225 ))) { 408 if( preg_match('/_page_pretty-link-tools$/', $hook) || 409 preg_match('/_page_pretty-link-options$/', $hook) || 410 $current_screen->post_type == PrliLink::$cpt ) { 226 411 wp_enqueue_style('pl-settings-table', PRLI_CSS_URL.'/settings_table.css', null, PRLI_VERSION); 227 412 wp_enqueue_script('pl-settings-table', PRLI_JS_URL.'/settings_table.js', array('jquery'), PRLI_VERSION); 228 413 } 229 414 230 if( $hook === 'pretty-links_page_pretty-link-clicks') {415 if( preg_match('/_page_pretty-link-clicks$/', $hook) ) { 231 416 wp_enqueue_script('google-visualization-api', 'https://www.gstatic.com/charts/loader.js', null, PRLI_VERSION); 232 417 wp_enqueue_style('pl-reports', PRLI_CSS_URL.'/admin_reports.css', null, PRLI_VERSION); … … 235 420 } 236 421 237 do_action('prli_load_admin_scripts', $hook); 422 423 $page_vars = compact('is_pl_page', 'is_link_page', 'is_link_listing_page', 'is_link_edit_page', 'is_link_new_page'); 424 do_action('prli_load_admin_scripts', $hook, $page_vars); 238 425 } 239 426 … … 260 447 261 448 if($prli_db->should_install()) { 449 // For some reason, install gets called multiple times so we're basically 450 // adding a mutex here (ala a transient) to ensure this only gets run once 451 $is_installing = get_transient('prli_installing'); 452 if($is_installing) { 453 return; 454 } 455 else { 456 // 30 minutes 457 set_transient('prli_installing', 1, 60*30); 458 } 459 262 460 @ignore_user_abort(true); 263 461 @set_time_limit(0); 264 462 $prli_db->prli_install(); 265 } 266 267 // Install Pro DB maybe 268 if($plp_update->is_installed() && $prli_utils->should_install_pro_db()) { 269 @ignore_user_abort(true); 270 @set_time_limit(0); 271 $prli_utils->install_pro_db(); 463 464 delete_transient('prli_installing'); 272 465 } 273 466 } … … 282 475 ?> 283 476 284 <div class="updated notice notice-success"><p><strong><?php printf(__('You\'re almost done!<br/>%1$sFinish your Re-Install of Pretty Links Pro%2$s', 'pretty-link'), '<a href="'.$reinstall_url.'">', '</a>'); ?></strong></p></div> 477 <div class="updated notice notice-success"> 478 <p> 479 <strong> 480 <?php 481 printf( 482 // translators: %1$s: br tag, %2$s: open link tag, %3$s: close link tag 483 esc_html__('You\'re almost done!%1$s%2$sFinish your Re-Install of Pretty Links Pro%3$s', 'pretty-link'), 484 '<br>', 485 '<a href="'.esc_url($reinstall_url).'">', 486 '</a>' 487 ); 488 ?> 489 </strong> 490 </p> 491 </div> 285 492 <?php 286 493 } … … 289 496 $prli_utils->uninstall_pro(); 290 497 ?> 291 <div class="updated notice notice-success is-dismissible"><p><strong><?php _e('Pretty Links Pro Successfully Uninstalled.' , 'pretty-link'); ?></strong></p></div>498 <div class="updated notice notice-success is-dismissible"><p><strong><?php esc_html_e('Pretty Links Pro Successfully Uninstalled.' , 'pretty-link'); ?></strong></p></div> 292 499 <?php 293 500 } … … 331 538 /********* DASHBOARD WIDGET ***********/ 332 539 public function dashboard_widget_function() { 333 global $prli_group,$prli_link,$prli_blogurl; 334 335 $groups = $prli_group->getAll('',' ORDER BY name'); 336 $values = PrliLinksController::setup_new_vars($groups); 540 global $prli_link, $prli_blogurl; 541 542 wp_enqueue_script('prli-quick-create', PRLI_JS_URL . '/quick_create.js', array('jquery'), PRLI_VERSION, true); 543 544 wp_localize_script('prli-quick-create', 'PrliQuickCreate', array( 545 'nonce' => wp_create_nonce('prli_quick_create'), 546 'ajaxUrl' => admin_url('admin-ajax.php'), 547 'invalidServerResponse' => __('Invalid server response', 'pretty-link'), 548 'ajaxError' => __('Ajax error', 'pretty-link') 549 )); 337 550 338 551 require_once(PRLI_VIEWS_PATH . '/widgets/widget.php'); … … 350 563 351 564 if(current_user_can($role)) { 352 wp_add_dashboard_widget('prli_dashboard_widget', __('Pretty Link Quick Add', 'pretty-link'), array($this,'dashboard_widget_function'));565 wp_add_dashboard_widget('prli_dashboard_widget', esc_html__('Pretty Link Quick Add', 'pretty-link'), array($this,'dashboard_widget_function')); 353 566 354 567 // Globalize the metaboxes array, this holds all the widgets for wp-admin … … 438 651 update_option('prli_about_notice_version',PRLI_VERSION); 439 652 } 653 654 /** 655 * When user is on a Pretty Links related admin page, display footer text 656 * that graciously asks them to rate us. 657 * 658 * @since 1.4.0 659 * 660 * @param string $text 661 * 662 * @return string 663 */ 664 public function admin_footer($text) { 665 global $current_screen; 666 667 if(!empty($current_screen->id) && $this->is_pretty_link_page()) { 668 $url = 'https://prettylinks.com/pl/footer/review'; 669 $text = sprintf( 670 wp_kses( 671 /* translators: $1$s - Pretty Links plugin name; $2$s - WP.org review link; $3$s - WP.org review link. */ 672 __('Enjoying %1$s? Please rate <a href="%2$s" target="_blank" rel="noopener noreferrer">★★★★★</a> on <a href="%3$s" target="_blank" rel="noopener">WordPress.org</a> to help us spread the word. Thanks from the Pretty Links team!', 'pretty-link'), 673 array( 674 'a' => array( 675 'href' => array(), 676 'target' => array(), 677 'rel' => array(), 678 ), 679 ) 680 ), 681 '<strong>Pretty Links</strong>', 682 $url, 683 $url 684 ); 685 } 686 687 return $text; 688 } 689 690 private function get_screen_id($hook=null) { 691 if(is_null($hook)) { 692 $screen = get_current_screen(); 693 $hook = $screen->id; 694 } 695 696 return $hook; 697 } 698 699 public function is_pretty_link_page() { 700 $hook = $this->get_screen_id(); 701 return (strstr($hook, 'pretty-link') !== false); 702 } 703 704 public function is_pretty_link_link_page() { 705 $hook = $this->get_screen_id(); 706 return in_array($hook, array($this->screens['add-edit'],$this->screens['list'])); 707 } 708 709 public function is_pretty_link_listing_page() { 710 $hook = $this->get_screen_id(); 711 return ($hook == $this->screens['list']); 712 } 713 714 public function is_pretty_link_edit_page() { 715 $hook = $this->get_screen_id(); 716 return ($hook == $this->screens['add-edit']); 717 } 718 719 public function is_pretty_link_edit_tags() { 720 $hook = $this->get_screen_id(); 721 return ($hook == $this->screens['tag']); 722 } 723 724 public function is_pretty_link_new_page() { 725 $hook = $this->get_screen_id(); 726 return ($hook == $this->screens['add-edit']); 727 } 440 728 } -
pretty-link/trunk/app/controllers/PrliClicksController.php
r2108490 r2124183 45 45 46 46 public function admin_page() { 47 global $wpdb, $prli_options, $prli_click, $prli_ group, $prli_link, $prli_utils, $page_size;47 global $wpdb, $prli_options, $prli_click, $prli_link, $prli_utils, $page_size; 48 48 49 49 $page_params = ''; 50 50 51 51 $params = $prli_click->get_params_array(); 52 $page_size = (isset($_REQUEST['size']) && is_numeric($_REQUEST['size']) && !empty($_REQUEST['size']))? $_REQUEST['size']:10;52 $page_size = (isset($_REQUEST['size']) && is_numeric($_REQUEST['size']) && !empty($_REQUEST['size']))?(int)$_REQUEST['size']:10; 53 53 $current_page = $params['paged']; 54 54 … … 95 95 $where_clause .= $wpdb->prepare(" AND cl.vuid=%s",$params['vuid']); 96 96 $page_params .= "&vuid={$params['vuid']}"; 97 }98 else if(!empty($params['group'])) {99 $group = $prli_group->getOne($params['group']);100 $link_name = __('Group: ', 'pretty-link') . esc_html($group->name);101 $where_clause .= $wpdb->prepare(" AND cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)",$params['group']);102 $page_params .= "&group={$params['group']}";103 97 } 104 98 else { … … 134 128 135 129 public function click_report() { 136 global $wpdb, $prli_click, $prli_ group, $prli_link;130 global $wpdb, $prli_click, $prli_link; 137 131 138 132 if(isset($_GET['l'])) { 139 $l = PrliClicksHelper::esc_spreadsheet_cell( $_GET['l'] );133 $l = (int) $_GET['l']; 140 134 $where_clause = $wpdb->prepare(" link_id=%d",$l ); 141 135 $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d",$l)); … … 143 137 } 144 138 else if(isset($_GET['ip'])) { 145 $ip = PrliClicksHelper::esc_spreadsheet_cell( $_GET['ip'] ); 146 $link_name = "ip_addr_{$ip}"; 147 $where_clause = $wpdb->prepare(" cl.ip=%s",$ip); 139 $ip = stripslashes($_GET['ip']); 140 if (filter_var($ip, FILTER_VALIDATE_IP)) { 141 $ip = PrliClicksHelper::esc_spreadsheet_cell($ip); 142 $link_name = "ip_addr_{$ip}"; 143 $where_clause = $wpdb->prepare(" cl.ip=%s", $ip); 144 } 148 145 } 149 146 else if(isset($_GET['vuid'])) { 150 $vuid = PrliClicksHelper::esc_spreadsheet_cell( $_GET['vuid']);147 $vuid = sanitize_key(stripslashes($_GET['vuid'])); 151 148 $link_name = "visitor_{$vuid}"; 152 149 $where_clause = $wpdb->prepare(" cl.vuid=%s",$vuid); 153 150 } 154 else if(isset($_GET['group'])) {155 $group_val = PrliClicksHelper::esc_spreadsheet_cell( $_GET['group'] );156 $group = $prli_group->getOne($group_val);157 $link_name = "group_{$group->name}";158 $where_clause .= $wpdb->prepare(" cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)", $group_val);159 }160 151 else { 161 152 $link_name = "all_links"; … … 168 159 $record_count = $prli_click->getRecordCount($where_clause); 169 160 $page_count = (int)ceil($record_count / $this->max_rows_per_file); 170 $prli_page = esc_html($_GET['prli_page']);161 $prli_page = isset($_GET['prli_page']) ? (int) $_GET['prli_page'] : 1; 171 162 $hmin = 0; 172 163 … … 194 185 195 186 if(isset($_GET['l'])) { 196 $l = PrliClicksHelper::esc_spreadsheet_cell( $_GET['l'] );187 $l = (int) $_GET['l']; 197 188 $where_clause = $wpdb->prepare(' link_id=%d', $l); 198 189 $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d", $l)); … … 201 192 } 202 193 else if(isset($_GET['ip'])) { 203 $ip = PrliClicksHelper::esc_spreadsheet_cell( $_GET['ip'] ); 204 $link_name = "ip_addr_{$ip}"; 205 $where_clause = $wpdb->prepare(' cl.ip=%s', $ip); 206 $param_string .= "ip={$ip}"; 194 $ip = stripslashes($_GET['ip']); 195 if (filter_var($ip, FILTER_VALIDATE_IP)) { 196 $ip = PrliClicksHelper::esc_spreadsheet_cell($_GET['ip']); 197 $link_name = "ip_addr_{$ip}"; 198 $where_clause = $wpdb->prepare(' cl.ip=%s', $ip); 199 $param_string .= "ip={$ip}"; 200 } 207 201 } 208 202 else if(isset($_GET['vuid'])) { 209 $vuid = PrliClicksHelper::esc_spreadsheet_cell( $_GET['vuid']);203 $vuid = sanitize_key(stripslashes($_GET['vuid'])); 210 204 $link_name = "visitor_{$vuid}"; 211 205 $where_clause = $wpdb->prepare(' cl.vuid=%s', $vuid); 212 206 $param_string .= "vuid={$vuid}"; 213 207 } 214 else if(isset($_GET['group'])) {215 $group_val = PrliClicksHelper::esc_spreadsheet_cell( $_GET['group'] );216 $group = $prli_group->getOne($group_val);217 $link_name = "group_{$group->name}";218 $where_clause .= $wpdb->prepare(" cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)", $group_val);219 $param_string .= "group={$group_val}";220 }221 208 else { 222 209 $link_name = 'all_links'; -
pretty-link/trunk/app/controllers/PrliLinksController.php
r2078274 r2124183 3 3 class PrliLinksController extends PrliBaseController { 4 4 public function load_hooks() { 5 // nothing yet5 add_action( 'init', array($this, 'register_post_type'), 0); 6 6 add_filter( 'cron_schedules', array($this,'intervals') ); 7 7 add_action( 'prli_cleanup_visitor_locks_worker', array($this,'cleanup_visitor_locks') ); 8 8 add_action( 'admin_init', array($this,'maybe_cleanup_visitor_locks') ); 9 add_action( 'pre_get_posts', array($this, 'set_custom_post_types_admin_order') ); 10 add_action( 'save_post', array($this, 'save_cpt_link') ); 11 add_action( 'deleted_post', array($this, 'delete_cpt_link') ); 12 add_action( 'transition_post_status', array($this, 'transition_cpt_status'), 10, 3 ); 13 add_action( 'transition_post_status', array($this, 'transition_cpt_status'), 10, 3 ); 14 add_action( 'wp_ajax_validate_pretty_link', array($this,'ajax_validate_pretty_link') ); 15 add_action( 'wp_ajax_reset_pretty_link', array($this,'ajax_reset_pretty_link') ); 16 add_action( 'wp_ajax_prli_quick_create', array($this, 'ajax_quick_create')); 17 18 // Legacy Groups Filter 19 add_action( 'restrict_manage_posts', array($this,'filter_links_by_legacy_groups') ); 20 add_filter( 'posts_join', array($this,'join_links_to_posts') ); 21 add_filter( 'posts_where', array($this,'where_links_belong_to_legacy_group') ); 22 23 // Alter Quick Links Menu (subsubsub) 24 add_filter( 'views_edit-'.PrliLink::$cpt, array($this,'modify_quick_links') ); 25 26 // Sort links by custom columns 27 add_action( 'posts_orderby', array($this, 'custom_link_sort_orderby') ); 28 29 add_action('manage_'.PrliLink::$cpt.'_posts_custom_column', array($this,'custom_columns'), 10, 2); 30 add_filter('manage_edit-'.PrliLink::$cpt.'_columns', array($this,'columns')); 31 add_filter('manage_edit-'.PrliLink::$cpt.'_sortable_columns', array($this,'sortable_columns')); 32 33 add_filter('post_row_actions', array($this, 'add_row_actions'), 10, 2); 9 34 10 35 if(!($snapshot_timestamp = wp_next_scheduled('prli_cleanup_visitor_locks_worker'))) { … … 13 38 } 14 39 15 public static function route() { 16 $action = (isset($_REQUEST['action'])?$_REQUEST['action']:null); 17 $params = self::get_params_array(); 18 19 // "new()" has its own submenu so we don't need a route for it here 20 switch($action) { 21 // POST ACTIONS 22 case 'quick-create': 23 return self::quick_create_link($params); 24 case 'create': 25 return self::create_link($params); 26 case 'bulk-update': 27 return self::bulk_update_links($params); 28 case 'update': 29 return self::update_link($params); 30 case 'reset': 31 return self::reset_link($params); 32 case 'destroy': 33 return self::destroy_link($params); 34 case 'bulk-destroy': 35 return self::bulk_destroy_links($params); 36 37 // GET ACTIONS 38 case 'edit': 39 return self::edit_link($params); 40 default: 41 return self::list_links($params); 42 } 43 } 44 45 public static function list_links($params) { 46 global $wpdb, $prli_group; 47 48 if(!empty($params['message'])) 49 $prli_message = $params['message']; 50 else if(empty($params['group'])) 51 $prli_message = PrliUtils::get_main_message(); 52 else 53 $prli_message = __("Links in Group: ", 'pretty-link') . $wpdb->get_var("SELECT name FROM " . $prli_group->table_name . " WHERE id=".$params['group']); 54 55 self::display_links_list($params, $prli_message); 56 } 57 58 public static function new_link($params) { 59 global $prli_group; 60 $groups = $prli_group->getAll('',' ORDER BY name'); 61 $values = self::setup_new_vars($groups); 62 63 require_once PRLI_VIEWS_PATH . '/links/new.php'; 64 } 65 66 public static function quick_create_link($params) { 67 global $prli_link, $prli_group, $prli_options; 68 69 if ( ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'update-options' ) ) { 70 die( 'Security Check' ); 71 } 72 73 $params = self::get_params_array(); 74 $errors = $prli_link->validate($_POST); 75 76 if( count($errors) > 0 ) 77 { 78 $groups = $prli_group->getAll('',' ORDER BY name'); 79 $values = self::setup_new_vars($groups); 80 require_once PRLI_VIEWS_PATH . '/links/new.php'; 81 } 82 else 83 { 84 unset($_POST['param_forwarding']); 85 86 $_POST['param_struct'] = ''; 87 $_POST['name'] = ''; 88 $_POST['description'] = ''; 89 if( $prli_options->link_track_me ) 90 $_POST['track_me'] = 'on'; 91 if( $prli_options->link_nofollow ) 92 $_POST['nofollow'] = 'on'; 93 94 $_POST['redirect_type'] = $prli_options->link_redirect_type; 95 96 $record = $prli_link->create( $_POST ); 97 98 $prli_message = __("Your Pretty Link was Successfully Created", 'pretty-link'); 99 self::display_links_list($params, $prli_message, '', 1); 100 } 101 } 102 103 public static function create_link($params) { 104 global $prli_link, $prli_group; 105 106 if ( ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'update-options' ) ) { 107 die( 'Security Check' ); 108 } 109 110 $errors = $prli_link->validate($_POST); 111 112 $errors = apply_filters( "prli_validate_link", $errors ); 113 114 if(count($errors) > 0) { 115 $groups = $prli_group->getAll('',' ORDER BY name'); 116 $values = self::setup_new_vars($groups); 117 require_once PRLI_VIEWS_PATH . '/links/new.php'; 40 public function register_post_type() { 41 $args = array( 42 'labels' => array( 43 'name' => esc_html__('Pretty Links', 'pretty-link'), 44 'singular_name' => esc_html__('Pretty Link', 'pretty-link'), 45 'add_new_item' => esc_html__('Add New Pretty Link', 'pretty-link'), 46 'edit_item' => esc_html__('Edit Pretty Link', 'pretty-link'), 47 'new_item' => esc_html__('New Pretty Link', 'pretty-link'), 48 'view_item' => esc_html__('View Pretty Link', 'pretty-link'), 49 'search_items' => esc_html__('Search Pretty Links', 'pretty-link'), 50 'not_found' => esc_html__('No Pretty Links found', 'pretty-link'), 51 'not_found_in_trash' => esc_html__('No Pretty Links found in Trash', 'pretty-link'), 52 'parent_item_colon' => esc_html__('Parent Pretty Link:', 'pretty-link') 53 ), 54 'public' => false, 55 'menu_position' => 55, 56 'show_ui' => true, 57 'show_in_admin_bar' => true, 58 'exclude_from_search' => true, 59 'can_export' => false, 60 'capability_type' => 'page', 61 'hierarchical' => false, 62 'register_meta_box_cb' => array($this, 'add_meta_boxes'), 63 'rewrite' => false, 64 'supports' => array('title') 65 ); 66 67 $plp_update = new PrliUpdateController(); 68 69 if($plp_update->is_installed()) { 70 $args['taxonomies'] = array( 71 PlpLinkCategoriesController::$ctax, 72 PlpLinkTagsController::$ctax, 73 ); 74 } 75 76 register_post_type( PrliLink::$cpt, $args ); 77 } 78 79 /** Ensures that the CPT Links will list properly by post_date DESC */ 80 public function set_custom_post_types_admin_order($wp_query) { 81 if( is_admin() && isset($wp_query->query['post_type']) ) { 82 // Get the post type from the query 83 $post_type = $wp_query->query['post_type']; 84 85 if( $post_type == PrliLink::$cpt ) { 86 $wp_query->set( 'orderby', 'post_date' ); 87 $wp_query->set( 'order', 'DESC' ); 88 } 89 } 90 } 91 92 public function add_meta_boxes() { 93 global $post_id, $prli_link; 94 95 add_meta_box( 96 'pretty-link-settings', 97 esc_html__('Pretty Link Settings', 'pretty-link'), 98 array($this, 'link_meta_box'), PrliLink::$cpt, 99 'normal', 'high' 100 ); 101 102 remove_meta_box('slugdiv', PrliLink::$cpt, 'normal'); 103 } 104 105 public function link_meta_box($post, $args) { 106 global $prli_link, $pagenow; 107 108 if($pagenow==='post-new.php') { 109 $values = $this->setup_new_vars(); 118 110 } 119 111 else { 120 $record = $prli_link->create( $_POST ); 121 122 do_action('prli_update_link', $record); 123 124 $prli_message = __("Your Pretty Link was Successfully Created", 'pretty-link'); 125 self::display_links_list($params, $prli_message, '', 1); 126 } 127 } 128 129 public static function edit_link($params) { 130 global $prli_group, $prli_link; 131 132 $groups = $prli_group->getAll('',' ORDER BY name'); 133 134 $record = $prli_link->getOne( $params['id'] ); 135 $values = self::setup_edit_vars($groups,$record); 136 $id = $params['id']; 137 require_once(PRLI_VIEWS_PATH . '/links/edit.php'); 138 } 139 140 public static function update_link($params) { 141 global $prli_link, $prli_group; 142 143 if ( ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'update-options' ) ) { 144 die( 'Security Check' ); 145 } 146 147 $errors = $prli_link->validate($_POST); 148 $id = $_POST['id']; 149 150 $errors = apply_filters( "prli_validate_link", $errors ); 151 152 if( count($errors) > 0 ) { 153 $groups = $prli_group->getAll('',' ORDER BY name'); 154 $record = $prli_link->getOne( $params['id'] ); 155 $values = self::setup_edit_vars($groups,$record); 156 require_once(PRLI_VIEWS_PATH . '/links/edit.php'); 157 } 158 else { 159 $record = $prli_link->update( $_POST['id'], $_POST ); 160 161 do_action('prli_update_link', $id); 162 163 $prli_message = __('Your Pretty Link was Successfully Updated', 'pretty-link'); 164 self::display_links_list($params, $prli_message, '', 1); 165 } 166 } 167 168 public static function bulk_update_links() { 169 global $prli_link; 170 if(wp_verify_nonce($_REQUEST['_wpnonce'],'prli_bulk_update') and isset($_REQUEST['ids'])) { 171 172 $ids = $_REQUEST['ids']; 173 $params = $_REQUEST['bu']; 174 175 $prli_link->bulk_update( $ids, $params ); 176 do_action('prli-bulk-action-update',$ids,$params); 177 178 $message = __('Your links were updated successfully', 'pretty-link'); 179 180 //self::display_links_list(self::get_params_array(),$message); 181 182 // We're going to redirect here to avoid having a big nasty url that 183 // can cause problems when doing several activities in a row. 184 185 // Scrub message, action, _wpnonce, ids & bu vars from the arguments and redirect 186 $request_uri = preg_replace( '#\&(message|action|_wpnonce|ids|bu\[[^\]]*?\])=[^\&]*#', '', $_SERVER['REQUEST_URI'] ); 187 188 // we assume here that some arguments are set ... if not this value is meaningless anyway 189 $request_uri .= '&message=' . urlencode($message); 190 $redirect_url = 'http' . (empty($_SERVER['HTTPS'])?'':'s') . '://' . $_SERVER['HTTP_HOST'] . $request_uri; 191 192 require PRLI_VIEWS_PATH . '/shared/jsredirect.php'; 193 } 194 else { 195 wp_die(__('You are unauthorized to view this page.', 'pretty-link')); 196 } 197 } 198 199 public static function reset_link($params) { 200 global $prli_link; 201 202 if ( ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'link-actions' ) ) { 203 die( 'Security Check' ); 204 } 205 206 $prli_link->reset( $params['id'] ); 207 $prli_message = __("Your Pretty Link was Successfully Reset", 'pretty-link'); 208 self::display_links_list($params, $prli_message, '', 1); 209 } 210 211 public static function destroy_link($params) { 212 global $prli_link; 213 214 if ( ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'link-actions' ) ) { 215 die( 'Security Check' ); 216 } 217 218 $prli_link->destroy( $params['id'] ); 219 $prli_message = __("Your Pretty Link was Successfully Destroyed", 'pretty-link'); 220 self::display_links_list($params, $prli_message, '', 1); 221 } 222 223 public static function bulk_destroy_links($params) { 224 global $prli_link; 225 if(wp_verify_nonce($_REQUEST['_wpnonce'],'prli_bulk_update') and isset($_REQUEST['ids'])) { 226 $ids = explode(',', $_REQUEST['ids']); 227 228 foreach($ids as $id) { 229 $prli_link->destroy( $id ); 230 } 231 232 $message = __('Your links were deleted successfully', 'pretty-link'); 233 234 //self::display_links_list($params,$message); 235 // Scrub message, action, _wpnonce, ids & bu vars from the arguments and redirect 236 $request_uri = preg_replace( '#\&(message|action|_wpnonce|ids|bu\[[^\]]*?\])=[^\&]*#', '', $_SERVER['REQUEST_URI'] ); 237 238 // we assume here that some arguments are set ... if not this value is meaningless anyway 239 $request_uri .= '&message=' . urlencode($message); 240 $redirect_url = 'http' . (empty($_SERVER['HTTPS'])?'':'s') . '://' . $_SERVER['HTTP_HOST'] . $request_uri; 241 242 require PRLI_VIEWS_PATH . '/shared/jsredirect.php'; 243 } 244 else { 245 wp_die(__('You are unauthorized to view this page.', 'pretty-link')); 246 } 247 } 248 249 public static function display_links_list($params, $prli_message, $page_params_ov = false, $current_page_ov = false) { 250 global $wpdb, $prli_utils, $prli_click, $prli_group, $prli_link, $page_size, $prli_options; 251 252 $controller_file = basename(__FILE__); 253 254 $where_clause = ''; 255 $page_params = ''; 256 $group_param = ''; 257 258 $page_size = (isset($_REQUEST['size']) && is_numeric($_REQUEST['size']) && !empty($_REQUEST['size']))?$_REQUEST['size']:10; 259 260 if(!empty($params['group'])) { 261 $where_clause = " group_id=" . $params['group']; 262 $group_param = "&group={$params['group']}"; 263 $page_params = "&group=" . $params['group']; 264 } 265 266 $link_vars = self::get_link_sort_vars($params, $where_clause); 267 268 if($current_page_ov) 269 $current_page = $current_page_ov; 270 else 271 $current_page = $params['paged']; 272 273 if($page_params_ov) 274 $page_params .= $page_params_ov; 275 else 276 $page_params .= $link_vars['page_params']; 277 278 $sort_str = $link_vars['sort_str']; 279 $sdir_str = $link_vars['sdir_str']; 280 $search_str = $link_vars['search_str']; 281 282 $record_count = $prli_link->getRecordCount($link_vars['where_clause']); 283 $page_count = $prli_link->getPageCount($page_size,$link_vars['where_clause']); 284 $links = $prli_link->getPage($current_page,$page_size,$link_vars['where_clause'],$link_vars['order_by']); 285 $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size); 286 $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size); 287 288 require_once(PRLI_VIEWS_PATH . '/links/list.php'); 289 } 290 291 public static function get_link_sort_vars($params,$where_clause = '') 292 { 293 $order_by = ''; 294 $page_params = ''; 295 296 // These will have to work with both get and post 297 $sort_str = $params['sort']; 298 $sdir_str = $params['sdir']; 299 $search_str = $params['search']; 300 301 // Insert search string 302 if(!empty($search_str)) 303 { 304 $search_params = explode(" ", $search_str); 305 306 foreach($search_params as $search_param) 307 { 308 if(!empty($where_clause)) 309 $where_clause .= " AND"; 310 311 $where_clause .= " (li.name like '%$search_param%' OR li.slug like '%$search_param%' OR li.url like '%$search_param%' OR li.created_at like '%$search_param%')"; 312 } 313 314 $page_params .="&search=$search_str"; 315 } 316 317 // make sure page params stay correct 318 if(!empty($sort_str)) 319 $page_params .="&sort=$sort_str"; 320 321 if(!empty($sdir_str)) 322 $page_params .= "&sdir=$sdir_str"; 323 324 // Add order by clause 325 switch($sort_str) 326 { 327 case "name": 328 case "clicks": 329 case "group_name": 330 case "slug": 331 $order_by .= " ORDER BY $sort_str"; 332 break; 333 default: 334 $order_by .= " ORDER BY created_at"; 335 } 336 337 // Toggle ascending / descending 338 if((empty($sort_str) and empty($sdir_str)) or $sdir_str == 'desc') 339 { 340 $order_by .= ' DESC'; 341 $sdir_str = 'desc'; 342 } 343 else 344 $sdir_str = 'asc'; 345 346 return array('order_by' => $order_by, 347 'sort_str' => $sort_str, 348 'sdir_str' => $sdir_str, 349 'search_str' => $search_str, 350 'where_clause' => $where_clause, 351 'page_params' => $page_params); 352 } 353 354 // Set defaults and grab get or post of each possible param 355 public static function get_params_array() { 356 return array( 357 'action' => (isset($_REQUEST['action'])?$_REQUEST['action']:'list'), 358 'regenerate' => (isset($_REQUEST['regenerate'])?$_REQUEST['regenerate']:'false'), 359 'id' => (isset($_REQUEST['id'])?$_REQUEST['id']:''), 360 'group_name' => (isset($_REQUEST['group_name'])?$_REQUEST['group_name']:''), 361 'paged' => (isset($_REQUEST['paged'])?$_REQUEST['paged']:1), 362 'group' => (isset($_REQUEST['group'])?(int)$_REQUEST['group']:''), 363 'search' => (isset($_REQUEST['search'])?$_REQUEST['search']:''), 364 'sort' => (isset($_REQUEST['sort'])?$_REQUEST['sort']:''), 365 'sdir' => (isset($_REQUEST['sdir'])?$_REQUEST['sdir']:''), 366 'message' => (isset($_REQUEST['message'])?sanitize_text_field($_REQUEST['message']):'') 367 ); 368 } 369 370 public static function setup_new_vars($groups) { 112 $id = $prli_link->get_link_from_cpt($post->ID); 113 $link = $prli_link->getOne($id); 114 $values = $this->setup_edit_vars($link); 115 } 116 require PRLI_VIEWS_PATH . '/links/form.php'; 117 } 118 119 public function setup_new_vars() { 371 120 global $prli_link, $prli_options; 372 121 373 122 $values = array(); 374 $values['url'] = (isset($_REQUEST['url'])? $_REQUEST['url']:'');375 $values['slug'] = (isset($_REQUEST['slug'])? $_REQUEST['slug']:$prli_link->generateValidSlug());376 $values['name'] = htmlspecialchars((isset($_REQUEST['name'])?stripslashes($_REQUEST['name']):''));377 $values['description'] = htmlspecialchars((isset($_REQUEST['description'])?stripslashes($_REQUEST['description']):''));378 379 $values['track_me'] = (( (isset($_REQUEST['track_me']) and $_REQUEST['track_me'] == 'on') or (!isset($_REQUEST['track_me']) and $prli_options->link_track_me == '1'))?'checked="true"':'');380 $values['nofollow'] = (( (isset($_REQUEST['nofollow']) and $_REQUEST['nofollow'] == 'on') or (!isset($_REQUEST['nofollow']) and $prli_options->link_nofollow == '1'))?'checked="true"':'');123 $values['url'] = (isset($_REQUEST['url'])?esc_url_raw(trim(stripslashes($_REQUEST['url']))):''); 124 $values['slug'] = (isset($_REQUEST['slug'])?sanitize_text_field(stripslashes($_REQUEST['slug'])):$prli_link->generateValidSlug()); 125 $values['name'] = (isset($_REQUEST['name'])?sanitize_text_field(stripslashes($_REQUEST['name'])):''); 126 $values['description'] = (isset($_REQUEST['description'])?sanitize_textarea_field(stripslashes($_REQUEST['description'])):''); 127 128 $values['track_me'] = ((isset($_REQUEST['track_me']) and $_REQUEST['track_me'] == 'on') or (!isset($_REQUEST['track_me']) and $prli_options->link_track_me == '1')); 129 $values['nofollow'] = ((isset($_REQUEST['nofollow']) and $_REQUEST['nofollow'] == 'on') or (!isset($_REQUEST['nofollow']) and $prli_options->link_nofollow == '1')); 381 130 382 131 $values['redirect_type'] = array(); 383 $values['redirect_type']['307'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '307') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == '307'))?' selected="selected"':'');384 $values['redirect_type']['302'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '302') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == '302'))?' selected="selected"':'');385 $values['redirect_type']['301'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '301') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == '301'))?' selected="selected"':'');386 $values['redirect_type']['prettybar'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'prettybar') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'prettybar'))?' selected="selected"':'');387 $values['redirect_type']['cloak'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'cloak') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'cloak'))?' selected="selected"':'');388 $values['redirect_type']['pixel'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'pixel') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'pixel'))?' selected="selected"':'');389 $values['redirect_type']['metarefresh'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'metarefresh') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'metarefresh'))?' selected="selected"':'');390 $values['redirect_type']['javascript'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'javascript') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'javascript'))?' selected="selected"':'');132 $values['redirect_type']['307'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '307') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == '307'))?' selected="selected"':''); 133 $values['redirect_type']['302'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '302') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == '302'))?' selected="selected"':''); 134 $values['redirect_type']['301'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '301') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == '301'))?' selected="selected"':''); 135 $values['redirect_type']['prettybar'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'prettybar') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'prettybar'))?' selected="selected"':''); 136 $values['redirect_type']['cloak'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'cloak') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'cloak'))?' selected="selected"':''); 137 $values['redirect_type']['pixel'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'pixel') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'pixel'))?' selected="selected"':''); 138 $values['redirect_type']['metarefresh'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'metarefresh') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'metarefresh'))?' selected="selected"':''); 139 $values['redirect_type']['javascript'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'javascript') or (!isset($_REQUEST['redirect_type']) and $prli_options->link_redirect_type == 'javascript'))?' selected="selected"':''); 391 140 392 141 $values['groups'] = array(); 393 142 394 if(is_array($groups)) {395 foreach($groups as $group) {396 $values['groups'][] = array(397 'id' => $group->id,398 'value' => ((isset($_REQUEST['group_id']) && $_REQUEST['group_id'] == $group->id)?' selected="true"':''),399 'name' => $group->name400 );401 }402 }403 404 143 $values['param_forwarding'] = isset($_REQUEST['param_forwarding']); 405 $values['delay'] = (isset($_REQUEST['delay']) ? $_REQUEST['delay'] : 0);144 $values['delay'] = (isset($_REQUEST['delay']) ? (int) $_REQUEST['delay'] : 0); 406 145 407 146 if(isset($_REQUEST['google_tracking'])) { 408 $values['google_tracking'] = ' checked=checked';147 $values['google_tracking'] = true; 409 148 } 410 149 else { … … 412 151 if( $plp_update->is_installed() ) { 413 152 global $plp_options; 414 $values['google_tracking'] = $plp_options->google_tracking? ' checked=checked':'';153 $values['google_tracking'] = $plp_options->google_tracking?true:false; 415 154 } 416 155 else { 417 $values['google_tracking'] = '';156 $values['google_tracking'] = false; 418 157 } 419 158 } … … 422 161 } 423 162 424 public static function setup_edit_vars($groups,$record) {163 public function setup_edit_vars($record) { 425 164 global $prli_link, $prli_link_meta; 426 165 427 166 $values = array(); 428 $values['url'] = ((isset($_REQUEST['url']) and $record == null)?$_REQUEST['url']:$record->url); 429 $values['slug'] = ((isset($_REQUEST['slug']) and $record == null)?$_REQUEST['slug']:$record->slug); 430 $values['name'] = htmlspecialchars(stripslashes(((isset($_REQUEST['name']) and $record == null)?$_REQUEST['name']:$record->name))); 431 $values['description'] = htmlspecialchars(stripslashes(((isset($_REQUEST['description']) and $record == null)?$_REQUEST['description']:$record->description))); 432 $values['track_me'] = (((isset($_REQUEST['track_me']) or $record->track_me) and ((isset($_REQUEST['track_me']) and $_REQUEST['track_me'] == 'on') or $record->track_me == 1))?'checked="true"':''); 433 $values['nofollow'] = (((isset($_REQUEST['nofollow']) and $_REQUEST['nofollow'] == 'on') or (isset($record->nofollow) && $record->nofollow == 1))?'checked="true"':''); 167 $values['link_id'] = $record->id; 168 $values['url'] = ((isset($_REQUEST['url']) and $record == null)?esc_url_raw(trim(stripslashes($_REQUEST['url']))):stripslashes($record->url)); 169 $values['slug'] = ((isset($_REQUEST['slug']) and $record == null)?sanitize_text_field(stripslashes($_REQUEST['slug'])):stripslashes($record->slug)); 170 $values['name'] = ((isset($_REQUEST['name']) and $record == null)?sanitize_text_field(stripslashes($_REQUEST['name'])):stripslashes($record->name)); 171 $values['description'] = ((isset($_REQUEST['description']) and $record == null)?sanitize_textarea_field(stripslashes($_REQUEST['description'])):stripslashes($record->description)); 172 $values['track_me'] = ((isset($_REQUEST['track_me']) or $record->track_me) and ((isset($_REQUEST['track_me']) and $_REQUEST['track_me'] == 'on') or $record->track_me == 1)); 173 $values['nofollow'] = ((isset($_REQUEST['nofollow']) and $_REQUEST['nofollow'] == 'on') or (isset($record->nofollow) && $record->nofollow == 1)); 434 174 435 175 $values['groups'] = array(); 436 foreach($groups as $group) {437 $values['groups'][] = array( 'id' => $group->id,438 'value' => (((isset($_REQUEST['group_id']) and ($_REQUEST['group_id'] == $group->id)) or ($record->group_id == $group->id))?' selected="true"':''),439 'name' => $group->name );440 }441 176 442 177 $values['param_forwarding'] = (isset($_REQUEST['param_forwarding']) || !(empty($record->param_forwarding) || $record->param_forwarding=='off')); … … 453 188 454 189 if(isset($_REQUEST['delay'])) { 455 $values['delay'] = $_REQUEST['delay'];190 $values['delay'] = (int) $_REQUEST['delay']; 456 191 } 457 192 else { … … 460 195 461 196 if(isset($_REQUEST['google_tracking'])) { 462 $values['google_tracking'] = ' checked=checked';197 $values['google_tracking'] = true; 463 198 } 464 199 else { 465 $values['google_tracking'] = (($prli_link_meta->get_link_meta($record->id, 'google_tracking', true) == 1)? ' checked=checked':'');200 $values['google_tracking'] = (($prli_link_meta->get_link_meta($record->id, 'google_tracking', true) == 1)?true:false); 466 201 } 467 202 468 203 return $values; 204 } 205 206 public static function save_cpt_link() { 207 global $post, $post_id, $typenow, $prli_link, $prli_group; 208 209 # Skip ajax 210 if(defined('DOING_AJAX')) { 211 return $post_id; 212 } 213 214 # Skip non-post requests & non-admin requests 215 if(!PrliUtils::is_post_request() || !PrliUtils::is_admin()) { 216 return $post_id; 217 } 218 219 # Please only run this code when we're dealing with a Link CPT 220 if($typenow !== PrliLink::$cpt) { 221 return $post_id; 222 } 223 224 # Verify nonce 225 if(!wp_verify_nonce(isset($_POST[PrliLink::$nonce_str]) ? $_POST[PrliLink::$nonce_str] : '', PrliLink::$nonce_str . wp_salt())) { 226 return $post_id; 227 } 228 229 $link_id = isset($_POST['link_id']) ? (int) $_POST['link_id'] : 0; 230 231 $_POST['name'] = $_POST['post_title']; 232 $_POST['link_cpt_id'] = $post->ID; 233 234 if($link_id) { 235 $link_id = $prli_link->update( $link_id, $_POST ); 236 } 237 else { 238 $link_id = $prli_link->create( $_POST ); 239 } 240 241 do_action('prli_update_link', $link_id); 242 } 243 244 public function transition_cpt_status( $new_status, $old_status, $post ) { 245 global $prli_link; 246 247 if( $new_status != $old_status ) { 248 $link_id = $prli_link->get_link_from_cpt($post->ID); 249 250 if(empty($link_id)) { return; } 251 252 $link = $prli_link->getOne($link_id); 253 254 if( $new_status == 'publish' ) { 255 $prli_link->enable_link($link_id); 256 } 257 else { 258 $prli_link->disable_link($link_id); 259 } 260 } 261 } 262 263 public static function delete_cpt_link($post_id) { 264 global $prli_link; 265 266 $link_id = $prli_link->get_link_from_cpt($post_id); 267 268 if(empty($link_id)) { return; } 269 270 // CPT is already deleted by now so don't try again 271 return $prli_link->destroy($link_id, 'dont_delete_cpt'); 469 272 } 470 273 … … 521 324 $schedules['prli_cleanup_visitor_locks_interval'] = array( 522 325 'interval' => HOUR_IN_SECONDS, 523 'display' => __('Pretty Link Cleanup Visitor Locks', 'pretty-link'),326 'display' => esc_html__('Pretty Link Cleanup Visitor Locks', 'pretty-link'), 524 327 ); 525 328 526 329 return $schedules; 527 330 } 331 332 public function ajax_validate_pretty_link() { 333 global $prli_link; 334 335 check_ajax_referer('validate_pretty_link','security'); 336 337 if(!PrliUtils::is_post_request()) { 338 PrliUtils::exit_with_status(403,esc_html__('Forbidden', 'pretty-link')); 339 } 340 341 $id = isset($_POST['id']) ? (int) $_POST['id'] : 0; 342 $errors = $prli_link->validate($_POST, $id); 343 344 $errors = apply_filters('prli_validate_link', $errors); 345 346 $message = esc_html__('Success!', 'pretty-link'); 347 if(!empty($errors)) { 348 $message = '<div>' . esc_html__('Fix the following errors:', 'pretty-link') . '</div><ul>'; 349 foreach($errors as $error) { 350 $message .= "<li>{$error}</li>"; 351 } 352 $message .= '</ul>'; 353 } 354 355 $response = array( 356 'valid' => empty($errors), 357 'message' => $message 358 ); 359 360 PrliUtils::exit_with_status(200,json_encode($response)); 361 } 362 363 public function columns($columns) { 364 if(isset($_REQUEST['post_status']) && $_REQUEST['post_status'] == 'trash') { 365 return $columns; 366 } 367 368 global $plp_update; 369 370 $categories_label = esc_html__('Categories', 'pretty-link'); 371 $tags_label = esc_html__('Tags', 'pretty-link'); 372 $keywords_label = esc_html__('Keywords', 'pretty-link'); 373 374 if ($plp_update->is_installed()) { 375 $category_key = 'taxonomy-pretty-link-category'; 376 $tag_key = 'taxonomy-pretty-link-tag'; 377 } else { 378 $category_key = 'pro-pretty-link-category'; 379 $tag_key = 'pro-pretty-link-tag'; 380 $categories_label = $categories_label . ' ' . 381 PrliAppHelper::pro_only_feature_indicator( 382 'link-list-categories-column-header', 383 __('Pro', 'pretty-link'), 384 __('Upgrade to a Pretty Links premium plan to get Link Categories', 'pretty-link') 385 ); 386 $tags_label = $tags_label . ' ' . 387 PrliAppHelper::pro_only_feature_indicator( 388 'link-list-tags-column-header', 389 __('Pro', 'pretty-link'), 390 __('Upgrade to a Pretty Links premium plan to get Link Tags', 'pretty-link') 391 ); 392 $keywords_label = $keywords_label . ' ' . 393 PrliAppHelper::pro_only_feature_indicator( 394 'link-list-keywords-column-header', 395 __('Pro', 'pretty-link'), 396 __('Upgrade to a Pretty Links premium plan to get Keyword Replacements', 'pretty-link') 397 ); 398 } 399 400 $columns = array( 401 'cb' => '<input type="checkbox" />', 402 'settings' => esc_html__('Settings', 'pretty-link'), 403 'title' => esc_html__('Link Title', 'pretty-link'), 404 //'slug' => esc_html__('Slug', 'pretty-link'), 405 //'target' => esc_html__('Target', 'pretty-link'), 406 $category_key => $categories_label, 407 $tag_key => $tags_label, 408 'keywords' => $keywords_label, 409 'clicks' => esc_html__('Clicks', 'pretty-link'), 410 'date' => esc_html__('Date', 'pretty-link'), 411 'links' => esc_html__('Pretty Links', 'pretty-link') 412 ); 413 414 return $columns; 415 } 416 417 public function sortable_columns($columns) { 418 if(isset($_REQUEST['post_status']) && $_REQUEST['post_status'] == 'trash') { 419 return $columns; 420 } 421 422 $columns['title'] = 'title'; 423 $columns['slug'] = 'slug'; 424 $columns['date'] = 'date'; 425 426 return $columns; 427 } 428 429 public function custom_columns($column, $post_id) { 430 global $prli_link, $prli_blogurl; 431 432 $link_id = $prli_link->get_link_from_cpt($post_id); 433 $link = $prli_link->getOne($link_id, OBJECT, true); 434 435 // This will happen if the link is trashed 436 if(empty($link)) { return $column; } 437 438 $struct = PrliUtils::get_permalink_pre_slug_uri(); 439 $pretty_link_url = "{$prli_blogurl}{$struct}{$link->slug}"; 440 441 if(!empty($link)) { 442 if('settings' == $column) { 443 PrliLinksHelper::link_list_icons($link); 444 } 445 elseif('keywords' == $column) { 446 $pro_only = apply_filters( 447 'prli_link_column_keywords', 448 '—', 449 $link_id 450 ); 451 echo $pro_only; 452 } 453 elseif('pro-pretty-link-category' == $column) { 454 $pro_only = apply_filters( 455 'prli_link_column_categories', 456 '—', 457 $link_id 458 ); 459 echo $pro_only; 460 } 461 elseif('pro-pretty-link-tag' == $column) { 462 $pro_only = apply_filters( 463 'prli_link_column_tags', 464 '—', 465 $link_id 466 ); 467 echo $pro_only; 468 } 469 elseif('clicks' == $column) { 470 PrliLinksHelper::link_list_clicks($link); 471 } 472 elseif('links' == $column) { 473 PrliLinksHelper::link_list_url_clipboard($link); 474 } 475 elseif('slug' == $column) { 476 echo esc_html(stripslashes($link->slug)); 477 } 478 elseif('target' == $column) { 479 echo esc_url($link->url); 480 } 481 } 482 } 483 484 /** 485 * Append row actions to list page 486 * @see add_filter('post_row_actions') 487 * @param array $actions Current row actions 488 * @param WP_Post current Post 489 * @return array filtered row actions 490 */ 491 public function add_row_actions($actions, $post) { 492 global $prli_link; 493 494 if($post->post_type === PrliLink::$cpt) { 495 $id = $prli_link->get_link_from_cpt($post->ID); 496 $link = $prli_link->getOne($id); 497 498 if(empty($link)) { return $actions; } 499 500 $new_actions = array(); 501 $new_actions['edit'] = $actions['edit']; 502 $new_actions['reset'] = PrliLinksHelper::link_action_reset($link, __('Reset', 'pretty-link')); 503 504 if( $link->redirect_type !== 'pixel' ) { 505 $new_actions['tweet'] = PrliLinksHelper::link_action_tweet($link, __('Tweet', 'pretty-link')); 506 $new_actions['email'] = PrliLinksHelper::link_action_email($link, __('Email', 'pretty-link')); 507 $new_actions['url'] = PrliLinksHelper::link_action_visit_target($link, __('Target »', 'pretty-link')); 508 $new_actions['pl'] = PrliLinksHelper::link_action_visit_pretty_link($link, __('Pretty Link »', 'pretty-link')); 509 } 510 511 $plp_update = new PrliUpdateController(); 512 513 if($plp_update->is_installed()) { 514 global $plp_options, $prli_link_meta; 515 516 if ($plp_options->generate_qr_codes) { 517 $plp_links_ctrl = new PlpLinksController(); 518 $new_actions['qr'] = $plp_links_ctrl->qr_code_link($link->id); 519 } 520 521 $dynamic_redirection = $prli_link_meta->get_link_meta($link->id, 'prli_dynamic_redirection', true); 522 523 if ($dynamic_redirection == 'rotate') { 524 $enable_split_test = $prli_link_meta->get_link_meta($link->id, 'prli-enable-split-test', true); 525 526 if ($enable_split_test) { 527 $new_actions['report'] = sprintf( 528 '<a href="%s" title="%s">%s</a>', 529 esc_url(admin_url('admin.php?page=plp-reports&action=display-split-test-report&id=') . $link->id), 530 esc_attr__('View Split Test Report', 'pretty-link'), 531 esc_html__('View Split Test Report', 'pretty-link') 532 ); 533 } 534 } 535 } 536 537 $new_actions['trash'] = $actions['trash']; 538 $actions = $new_actions; 539 } 540 541 return $actions; 542 } 543 544 public function ajax_reset_pretty_link() { 545 global $prli_link; 546 547 check_ajax_referer('reset_pretty_link','security'); 548 549 if(!PrliUtils::is_post_request()) { 550 PrliUtils::exit_with_status(403,esc_html__('Forbidden', 'pretty-link')); 551 } 552 553 $prli_link->reset( $_POST['id'] ); 554 555 $response = array( 556 'message' => esc_html__("Your Pretty Link was Successfully Reset", 'pretty-link') 557 ); 558 559 PrliUtils::exit_with_status(200,json_encode($response)); 560 } 561 562 public function ajax_quick_create() { 563 if (!PrliUtils::is_post_request() || !isset($_POST['url'], $_POST['slug']) || !is_string($_POST['url']) || !is_string($_POST['slug'])) { 564 wp_send_json_error(array('message' => __('Bad request', 'pretty-link'))); 565 } 566 567 if (!PrliUtils::is_authorized()) { 568 wp_send_json_error(array('message' => __('Insufficient permissions', 'pretty-link'))); 569 } 570 571 if (!check_ajax_referer('prli_quick_create', false, false)) { 572 wp_send_json_error(array('message' => __('Security check failed', 'pretty-link'))); 573 } 574 575 global $prli_link, $prli_options; 576 577 $errors = $prli_link->validate($_POST); 578 579 if (count($errors)) { 580 wp_send_json_error(array('message' => $errors[0])); 581 } 582 583 $_POST['redirect_type'] = $prli_options->link_redirect_type; 584 585 if ($prli_options->link_track_me) { 586 $_POST['track_me'] = 'on'; 587 } 588 589 if ($prli_options->link_nofollow) { 590 $_POST['nofollow'] = 'on'; 591 } 592 593 $link_id = $prli_link->create($_POST); 594 $link = $prli_link->getOne($link_id); 595 596 if (!$link) { 597 wp_send_json_error(array('message' => __('An error occurred creating the link', 'pretty-link'))); 598 } 599 600 wp_send_json_success([ 601 'redirect' => esc_url_raw(sprintf(admin_url('post.php?post=%d&action=edit'), $link->link_cpt_id)) 602 ]); 603 } 604 605 /** 606 * Filter groups if the user is running the free version of Pretty Links 607 * 608 * @since 1.1.0 609 * @return void 610 */ 611 public function filter_links_by_legacy_groups() { 612 global $typenow, $wp_query, $prli_link, $plp_update; 613 614 if( $typenow == PrliLink::$cpt && !$plp_update->is_installed() ) { 615 $groups = $prli_link->get_all_legacy_groups(); 616 617 if(empty($groups)) { return; } 618 619 $current_group = 'all'; 620 if( isset( $_GET['group'] ) && is_numeric( $_GET['group'] ) ) { 621 $current_group = (int) $_GET['group']; // Check if option has been selected 622 } 623 624 ?> 625 <select name="group" id="group"> 626 <option 627 value="all" 628 <?php selected( 'all', $current_group ); ?>> 629 <?php esc_html_e( 'All Groups (Legacy)', 'pretty-link' ); ?> 630 </option> 631 <?php foreach( $groups as $group ): ?> 632 <option 633 value="<?php echo esc_attr( $group->id ); ?>" 634 <?php selected( $group->id, $current_group ); ?>> 635 <?php echo esc_html( stripslashes($group->name) ); ?> 636 </option> 637 <?php endforeach; ?> 638 </select> 639 <?php 640 } 641 } 642 643 // Join for searching link groups 644 public function join_links_to_posts($join) { 645 global $wp_query, $wpdb, $typenow; 646 647 if( $typenow == PrliLink::$cpt && 648 ( ( isset($_GET['orderby']) && isset($_GET['order']) ) || 649 empty($wp_query->query_vars['s']) ) ) { 650 $join .= "JOIN {$wpdb->prefix}prli_links AS li ON {$wpdb->posts}.ID = li.link_cpt_id "; 651 } 652 653 return $join; 654 } 655 656 // Where clause for searching link groups 657 public function where_links_belong_to_legacy_group( $where ) { 658 global $wp_query, $wpdb, $typenow; 659 660 if( $typenow == PrliLink::$cpt && 661 isset($_GET['group']) && 662 is_numeric($_GET['group']) && 663 empty($wp_query->query_vars['s']) ) { 664 // possible because we've already joined the links to posts 665 $where .= $wpdb->prepare(" AND li.group_id=%d", (int) $_GET['group']); 666 } 667 668 return $where; 669 } 670 671 // Only keep the All & Trash quick links 672 public function modify_quick_links($views) { 673 $view_keys = array_keys($views); 674 $keep_keys = array('all','trash'); 675 676 foreach($view_keys as $view_key) { 677 if(!in_array($view_key,$keep_keys)) { 678 unset($views[$view_key]); 679 } 680 } 681 682 return $views; 683 } 684 685 // Add custom sort orderbys 686 public function custom_link_sort_orderby($orderby) { 687 global $wp_query, $wpdb, $typenow; 688 689 if( $typenow == PrliLink::$cpt && 690 isset($_GET['orderby']) && isset($_GET['order']) ) { 691 692 $order = strtoupper($_GET['order'])=='ASC' ? 'ASC' : 'DESC'; 693 694 if($_GET['orderby']=='slug') { 695 $orderby = " 696 li.slug {$order} 697 "; 698 } 699 elseif($_GET['orderby']=='date') { 700 $orderby = " 701 li.created_at {$order} 702 "; 703 } 704 elseif($_GET['orderby']=='title') { 705 $orderby = " 706 li.name {$order} 707 "; 708 } 709 } 710 711 return $orderby; 712 } 713 528 714 } 529 715 -
pretty-link/trunk/app/controllers/PrliLocalApiController.php
r1572224 r2124183 31 31 * @param string $description Optional, description for the Pretty Link. 32 32 * 33 * @param integer $group_id Optional, the group that this link will be placed in.33 * @param integer $group_id DEPRECATED Optional, the group that this link will be placed in. 34 34 * If this value isn't set then the link will not be 35 35 * placed in a group. … … 60 60 $name = '', 61 61 $description = '', 62 $group_id = 0, 62 $group_id = 0, // deprecated 63 63 $track_me = '', 64 64 $nofollow = '', … … 76 76 $values['name'] = $name; 77 77 $values['description'] = $description; 78 $values['group_id'] = $group_id;79 78 $values['redirect_type'] = (($redirect_type == '')?$prli_options->link_redirect_type:$redirect_type); 80 79 $values['nofollow'] = (($nofollow === '')?$prli_options->link_nofollow:$nofollow); … … 112 111 $name = -1, 113 112 $description = -1, 114 $group_id = '', 113 $group_id = '', // deprecated 115 114 $track_me = '', 116 115 $nofollow = '', … … 137 136 $values['name'] = (($name == -1)?$record->name:$name); 138 137 $values['description'] = (($description == -1)?$record->description:$description); 139 $values['group_id'] = (($group_id === '')?$record->group_id:$group_id);140 138 $values['redirect_type'] = (($redirect_type == '')?$record->redirect_type:$redirect_type); 141 139 $values['nofollow'] = (($nofollow === '')?$record->nofollow:$nofollow); … … 143 141 $values['param_forwarding'] = !empty($param_forwarding); 144 142 $values['param_struct'] = (($param_struct == -1)?$record->param_struct:$param_struct); 143 $values['link_cpt_id'] = $record->link_cpt_id; 145 144 146 145 // make array look like $_POST … … 150 149 unset($values['track_me']); 151 150 152 $prli_error_messages = $prli_link->validate( $values );151 $prli_error_messages = $prli_link->validate( $values, $id ); 153 152 154 153 if( count($prli_error_messages) == 0 ) … … 167 166 168 167 /** 169 * Get all the pretty link groups in an array suitable for creating a select box.168 * DEPRECATED: Get all the pretty link groups in an array suitable for creating a select box. 170 169 * 171 170 * @return bool (false if failure) | array A numerical array of associative arrays … … 174 173 */ 175 174 public function get_all_groups() { 176 global $prli_group; 177 $groups = $prli_group->getAll('',' ORDER BY gr.name', ARRAY_A); 178 return $groups; 175 return array(); 179 176 } 180 177 … … 224 221 global $prli_link,$prli_blogurl; 225 222 226 if($pretty_link = $prli_link->getOne($id)) 227 return "{$prli_blogurl}".PrliUtils::get_permalink_pre_slug_uri()."{$pretty_link->slug}"; 223 $pretty_link = $prli_link->getOne($id); 224 225 if($pretty_link) { 226 return $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri().$pretty_link->slug; 227 } 228 228 229 229 return false; … … 246 246 $name = '', 247 247 $description = '', 248 $group_id = 0, 248 $group_id = 0, // deprecated 249 249 $track_me = '', 250 250 $nofollow = '', … … 257 257 $name, 258 258 $description, 259 $group_id, 259 $group_id, // deprecated 260 260 $track_me, 261 261 $nofollow, … … 270 270 $name = -1, 271 271 $description = -1, 272 $group_id = '', 272 $group_id = '', // deprecated 273 273 $track_me = '', 274 274 $nofollow = '', … … 282 282 $name, 283 283 $description, 284 $group_id, 284 $group_id, // deprecated 285 285 $track_me, 286 286 $nofollow, … … 290 290 } 291 291 292 /** DEPRECATED **/ 292 293 function prli_get_all_groups() { 293 $ctrl = new PrliLocalApiController(); 294 return $ctrl->get_all_groups(); 294 return array(); 295 295 } 296 296 -
pretty-link/trunk/app/controllers/PrliOptionsController.php
r1572224 r2124183 77 77 78 78 if( !empty($params[ $whitelist_ips ]) && !preg_match( "#^[ \t]*((\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)|([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*))([ \t]*,[ \t]*((\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)\.(\d{1,3}|\*)|([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*):([0-9a-fA-F]{1,4}|\*)))*$#", $params[ $whitelist_ips ] ) ) { 79 $errors[] = __('Whit list IP Addresses must be a comma separated list of IPv4 or IPv6 addresses or ranges.', 'pretty-link');79 $errors[] = __('Whitelist IP Addresses must be a comma separated list of IPv4 or IPv6 addresses or ranges.', 'pretty-link'); 80 80 } 81 81 … … 89 89 90 90 // Read their posted value 91 $prli_options->prli_exclude_ips = stripslashes($params[ $prli_exclude_ips ]);92 $prli_options->whitelist_ips = stripslashes($params[ $whitelist_ips ]);91 $prli_options->prli_exclude_ips = isset($params[ $prli_exclude_ips ]) && is_string($params[ $prli_exclude_ips ]) ? sanitize_text_field(stripslashes($params[ $prli_exclude_ips ])) : ''; 92 $prli_options->whitelist_ips = isset($params[ $whitelist_ips ]) && is_string($params[ $whitelist_ips ]) ? sanitize_text_field(stripslashes($params[ $whitelist_ips ])) : ''; 93 93 $prli_options->filter_robots = (int)isset($params[ $filter_robots ]); 94 $prli_options->extended_tracking = stripslashes($params[ $extended_tracking ]);94 $prli_options->extended_tracking = isset($params[ $extended_tracking ]) && is_string($params[ $extended_tracking ]) ? sanitize_key(stripslashes($params[ $extended_tracking ])) : 'normal'; 95 95 $prli_options->link_track_me = (int)isset($params[ $link_track_me ]); 96 96 $prli_options->link_prefix = (int)isset($params[ $link_prefix ]); 97 97 $prli_options->auto_trim_clicks = (int)isset($params[ $auto_trim_clicks ]); 98 98 $prli_options->link_nofollow = (int)isset($params[ $link_nofollow ]); 99 $prli_options->link_redirect_type = $params[ $link_redirect_type ];99 $prli_options->link_redirect_type = isset($params[ $link_redirect_type ]) && is_string($params[ $link_redirect_type ]) ? sanitize_key(stripslashes($params[ $link_redirect_type ])) : '307'; 100 100 101 101 do_action('prli-update-options', $params); -
pretty-link/trunk/app/controllers/PrliPopupController.php
r1602151 r2124183 2 2 3 3 class PrliPopupController extends PrliBaseController { 4 public $popup_css, $popup_js, $popups; 5 4 public $popups; 6 5 public function __construct() { 7 $cdn_base = 'https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/';8 $this->popup_css = "{$cdn_base}/magnific-popup.min.css";9 $this->popup_js = "{$cdn_base}/jquery.magnific-popup.min.js";10 11 6 // This is an array of the currently defined popups ... 12 7 // used to validate that the popup specified actually exists 13 8 $this->popups = array( 14 9 'rating' => array( 15 'after_usage' => true, 10 'after_usage' => array( 11 'links' => 1, 12 'clicks' => 5 13 ), 14 'user_popup' => true, 15 'lite_only_popup' => false, 16 'delay' => WEEK_IN_SECONDS, 17 'delay_after_last_popup' => DAY_IN_SECONDS, 18 ), 19 'upgrade' => array( 20 'after_usage' => array( 21 'links' => 3, 22 'clicks' => 5 23 ), 16 24 'user_popup' => true, 17 25 'lite_only_popup' => true, 18 'delay' => MONTH_IN_SECONDS, 19 'delay_after_last_popup' => WEEK_IN_SECONDS, 20 ), 21 'upgrade' => array( 22 'after_usage' => true, 23 'user_popup' => true, 24 'lite_only_popup' => true, 25 'delay' => MONTH_IN_SECONDS, 26 'delay_after_last_popup' => WEEK_IN_SECONDS, 26 'delay' => 2*WEEK_IN_SECONDS, 27 'delay_after_last_popup' => DAY_IN_SECONDS, 27 28 ), 28 29 ); … … 42 43 43 44 public function enqueue_admin_scripts($hook) { 44 if( strstr($hook, 'pretty-link') !== false) {45 wp_register_style('prli-magnific-popup', $this->popup_css);45 if($this->on_pretty_link_page()) { 46 wp_register_style('prli-magnific-popup', PRLI_VENDOR_LIB_URL . '/magnific-popup/magnific-popup.min.css', array(), '1.1.0'); 46 47 wp_enqueue_style( 47 48 'prli-admin-popup', … … 51 52 ); 52 53 53 wp_register_script('prli-magnific-popup', $this->popup_js, array('jquery'));54 wp_register_script('prli-magnific-popup', PRLI_VENDOR_LIB_URL . '/magnific-popup/jquery.magnific-popup.min.js', array('jquery'), '1.1.0', true); 54 55 wp_enqueue_script( 55 56 'prli-admin-popup', … … 67 68 68 69 private function on_pretty_link_page() { 69 $screen = get_current_screen();70 return (isset($ screen->parent_base) && $screen->parent_base=='pretty-link');70 global $current_screen; 71 return (isset($current_screen->id) && strpos($current_screen->id,'pretty-link') !== false); 71 72 } 72 73 73 74 public function display_popups() { 74 75 if(!$this->on_pretty_link_page()) { return; } 76 77 // Bail on update/welcome page 78 if (isset($_GET['page']) && ($_GET['page'] == 'pretty-link-welcome' || $_GET['page'] == 'pretty-link-update')) { return;} 75 79 76 80 // If this isn't a Pretty Link authorized user then bail … … 140 144 141 145 private function is_popup_delayed($popup) { 142 if(!$this->is_valid_popup($popup)) { $return; }146 if(!$this->is_valid_popup($popup)) { return; } 143 147 144 148 if($this->popups[$popup]['user_popup']) { … … 152 156 153 157 private function is_popup_stopped($popup) { 154 if(!$this->is_valid_popup($popup)) { $return; }158 if(!$this->is_valid_popup($popup)) { return; } 155 159 156 160 if($this->popups[$popup]['user_popup']) { … … 189 193 } 190 194 191 if($this->popups[$popup]['after_usage']) { 195 if(false !== $this->popups[$popup]['after_usage']) { 196 $usage = $this->popups[$popup]['after_usage']; 192 197 $click_count = PrliClick::get_count(); 193 $first_click_date = PrliClick::get_first_date();194 198 $link_count = PrliLink::get_count(); 195 $first_link_date = PrliClick::get_first_date(); 196 197 // Make sure user has been using Pretty Link for at least a month 198 $month_ago = time() - MONTH_IN_SECONDS; 199 200 if( $click_count < 10 || 201 ($first_click_date!==false && strtotime($first_click_date) > $month_ago) || 202 $link_count < 3 || 203 strtotime($first_link_date) > $month_ago ) { 199 200 if( $click_count < $usage['clicks'] || $link_count < $usage['links'] ) { 204 201 return false; 205 202 } -
pretty-link/trunk/app/controllers/PrliPostsController.php
r1925455 r2124183 59 59 } 60 60 61 wp_register_style('prli-ui-smoothness', PRLI_VENDOR_LIB_URL.'/jquery-ui/jquery-ui.min.css', array(), '1.11.4'); 62 wp_register_style('prli-tinymce-popup-form', PRLI_CSS_URL . '/tinymce_form_popup.css', array('prli-ui-smoothness'), PRLI_VERSION); 63 64 $css = sprintf('.ui-autocomplete-loading { 65 background: white url(%s) right center no-repeat; 66 } 67 .ui-autocomplete { 68 max-height: 200px; 69 overflow-y: auto; 70 overflow-x: hidden; 71 width: 510px !important; 72 }', esc_url(admin_url('images/wpspin_light.gif'))); 73 74 wp_add_inline_style('prli-tinymce-popup-form', $css); 75 76 wp_register_script( 77 'prli-tinymce-popup-form', 78 PRLI_JS_URL . '/tinymce_form_popup.js', 79 array( 80 'jquery', 81 'jquery-ui-core', 82 'jquery-ui-widget', 83 'jquery-ui-position', 84 'jquery-ui-menu', 85 'jquery-ui-autocomplete', 86 'jquery-ui-accordion' 87 ), 88 PRLI_VERSION, 89 true 90 ); 91 92 wp_localize_script('prli-tinymce-popup-form', 'prliTinymceL10n', array( 93 'prli_selected_text' => '', 94 'home_url' => $home_url, 95 'default_redirect' => $default_redirect, 96 'default_nofollow' => $default_nofollow, 97 'default_tracking' => $default_tracking, 98 'ajaxurl' => admin_url('admin-ajax.php') 99 )); 100 61 101 require(PRLI_VIEWS_PATH.'/shared/tinymce_form_popup.php'); 62 102 die(); … … 70 110 } 71 111 72 $slug = trim(stripslashes($_POST['slug']));112 $slug = sanitize_text_field(stripslashes($_POST['slug'])); 73 113 74 114 //Can't end in a slash 75 if(substr($slug, -1) == '/' || $slug[0] == '/' || preg_match('/\s/', $slug) || !PrliUtils::slugIsAvailable($slug)) {115 if(substr($slug, -1) == '/' || $slug[0] == '/' || preg_match('/\s/', $slug) || is_wp_error(PrliUtils::is_slug_available($slug))) { 76 116 echo "false"; 77 117 die(); … … 98 138 //Using the local API Yo 99 139 $id = prli_create_pretty_link( 100 stripslashes($_POST['target']),101 s tripslashes($_POST['slug']),140 esc_url_raw(trim(stripslashes($_POST['target']))), 141 sanitize_text_field(stripslashes($_POST['slug'])), 102 142 '', //Name 103 143 '', //Desc … … 105 145 (int)($_POST['tracking'] == 'enabled'), 106 146 (int)($_POST['nofollow'] == 'enabled'), 107 $_POST['redirect']147 sanitize_key(stripslashes($_POST['redirect'])) 108 148 ); 109 149 … … 124 164 125 165 $return = array(); 126 $term = '%' . rawurldecode(stripslashes($_GET['term'])) . '%';127 $q = "SELECT * FROM {$prli_link->table_name} WHERE slug LIKE %s OR name LIKE %s OR url LIKE %sLIMIT 20";166 $term = '%' . $wpdb->esc_like(sanitize_text_field(stripslashes($_GET['term']))) . '%'; 167 $q = "SELECT * FROM {$prli_link->table_name} WHERE link_status='enabled' AND (slug LIKE %s OR name LIKE %s OR url LIKE %s) LIMIT 20"; 128 168 $q = $wpdb->prepare($q, $term, $term, $term); 129 169 $results = $wpdb->get_results($q, ARRAY_A); … … 141 181 } 142 182 183 $pretty_link = prli_get_pretty_link_url($result['id']); 184 143 185 $return[] = array( 144 'value' => (empty($result['name']))?$result['slug']:$alt_name, 145 'slug' => $result['slug'], 146 'target' => $result['url'], 147 'title' => $result['name'], //Not used currently, but we may want this at some point 148 'nofollow' => (int)$result['nofollow'] 149 ); 186 'pretty_url' => (empty($pretty_link) ? home_url() : $pretty_link), 187 'value' => (empty($result['name']))?$result['slug']:$alt_name, 188 'slug' => $result['slug'], 189 'target' => $result['url'], 190 'title' => $result['name'], //Not used currently, but we may want this at some point 191 'nofollow' => (int)$result['nofollow'] 192 ); 150 193 } 151 194 -
pretty-link/trunk/app/controllers/PrliReportsController.php
r1572224 r2124183 32 32 $link_id = $params['l']; 33 33 $type = $params['type']; 34 $group = $params['group'];34 $group = ''; 35 35 $show_chart = (!isset($_GET['ip']) and !isset($_GET['vuid'])); 36 36 -
pretty-link/trunk/app/controllers/PrliToolsController.php
r1572224 r2124183 46 46 global $prli_options, $prli_blogurl, $prli_link, $plp_update; 47 47 48 $redirect_type = esc_html((isset($_GET['rt']) and $_GET['rt'] != '-1')?$_GET['rt']:'');49 $track = esc_html((isset($_GET['trk']) and $_GET['trk'] != '-1')?$_GET['trk']:'');50 $ group = esc_html((isset($_GET['grp']) and $_GET['grp'] != '-1')?$_GET['grp']:'');48 $redirect_type = isset($_GET['rt']) && is_string($_GET['rt']) && $_GET['rt'] != '-1' ? sanitize_key(stripslashes($_GET['rt'])) : ''; 49 $track = isset($_GET['trk']) && is_numeric($_GET['trk']) && $_GET['trk'] != '-1' ? (int) $_GET['trk'] : ''; 50 $category = isset($_GET['ct']) && is_numeric($_GET['ct']) && $_GET['ct'] != '-1' ? (int) $_GET['ct'] : ''; 51 51 52 $result = prli_create_pretty_link( esc_url_raw($target_url, array('http','https')), '', '', '', $group, $track, '', $redirect_type );52 $result = prli_create_pretty_link( esc_url_raw($target_url, array('http','https')), '', '', '', 0, $track, '', $redirect_type ); 53 53 54 54 $plink = $prli_link->getOne($result); 55 56 if ($plp_update->is_installed() && $category) { 57 wp_set_object_terms($plink->link_cpt_id, $category, PlpLinkCategoriesController::$ctax); 58 } 59 55 60 $target_url = $plink->url; 56 61 $target_url_title = $plink->name; -
pretty-link/trunk/app/controllers/PrliUpdateController.php
r1800524 r2124183 70 70 public function process_form() { 71 71 if(!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'],'activation_form')) { 72 wp_die(_ e('Why you creepin\'?', 'pretty-link'));72 wp_die(__('Why you creepin\'?', 'pretty-link')); 73 73 } 74 74 … … 173 173 174 174 $message = $act['message']; 175 $callback = create_function( '', '$message = "'.$message.'"; ' . 176 'require(PRLI_VIEWS_PATH."/admin/errors.php");' ); 175 $callback = function() use ($message) { require(PRLI_VIEWS_PATH."/admin/errors.php"); }; 177 176 } 178 177 catch(Exception $e) { 179 $ callback = create_function( '', '$error = "'.$e->getMessage().'"; ' .180 'require(PRLI_VIEWS_PATH."/admin/update/activation_warning.php");' );178 $error = $e->getMessage(); 179 $callback = function() use ($error) { require(PRLI_VIEWS_PATH."/admin/update/activation_warning.php"); }; 181 180 } 182 181 … … 304 303 public function queue_button() { 305 304 ?> 306 <a href="<?php echo admin_url('admin.php?page=pretty-link-options&action=queue&_wpnonce=' . wp_create_nonce('PrliUpdateController::manually_queue_update')); ?>" class="button"><?php_e('Check for Update', 'pretty-link')?></a>305 <a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-options&action=queue&_wpnonce=' . wp_create_nonce('PrliUpdateController::manually_queue_update'))); ?>" class="button"><?php esc_html_e('Check for Update', 'pretty-link')?></a> 307 306 <?php 308 307 } … … 393 392 394 393 public function enqueue_scripts($hook) { 395 if( $hook == 'pretty-links_page_pretty-link-updates') {394 if(preg_match('/_page_pretty-link-updates$/', $hook)) { 396 395 wp_register_style('prli-settings-table', PRLI_CSS_URL.'/settings_table.css', array(), PRLI_VERSION); 397 396 wp_enqueue_style('prli-activate-css', PRLI_CSS_URL.'/admin-activate.css', array('prli-settings-table'), PRLI_VERSION); -
pretty-link/trunk/app/helpers/PrliAppHelper.php
r1572224 r2124183 8 8 public static function info_tooltip($id, $title, $info) { 9 9 ?> 10 <span id="prli-tooltip-<?php echo $id; ?>" class="prli-tooltip">10 <span id="prli-tooltip-<?php echo esc_attr($id); ?>" class="prli-tooltip"> 11 11 <span><i class="pl-icon pl-icon-info-circled pl-16"></i></span> 12 12 <span class="prli-data-title prli-hidden"><?php echo $title; ?></span> … … 16 16 } 17 17 18 public static function groups_dropdown( $field_name, $value='', $include_blank=true ) { 19 ?> 20 <select name="<?php echo $field_name; ?>"> 18 public static function pro_only_feature_indicator($feature='', $label=null, $title=null) { 19 $feature = esc_url_raw( empty($feature) ? '' : "?{$feature}" ); 20 $label = esc_html( is_null($label) ? __('Pro', 'pretty-link') : $label ); 21 $title = esc_attr( is_null($title) ? __('Upgrade to Pro to unlock this feature', 'pretty-link') : $title ); 21 22 22 <?php if( $include_blank ): ?> 23 <option value=""><?php _e('None', 'pretty-link'); ?></option> 24 <?php endif; ?> 25 26 <?php 27 $groups = prli_get_all_groups(); 28 if(is_array($groups)) { 29 foreach($groups as $group) { 30 ?> 31 <option value="<?php echo $group['id']; ?>" <?php selected($value, $group['id']); ?>><?php echo $group['name']; ?></option> 32 <?php 33 } 34 } 35 ?> 36 37 </select> 38 <?php 23 return sprintf( 24 '<span class="prli-pro-only-indicator" title="%1$s"><a href="https://prettylinks.com/pl/pro-feature-indicator/upgrade%2$s">%3$s</a></span>', 25 $title, 26 $feature, 27 $label 28 ); 39 29 } 40 30 } -
pretty-link/trunk/app/helpers/PrliClicksHelper.php
r2108490 r2124183 17 17 // Insert search string 18 18 if(!empty($search_str)) { 19 $search_params = explode(' ', esc_html($search_str));19 $search_params = explode(' ', $search_str); 20 20 21 21 $first_pass = true; -
pretty-link/trunk/app/helpers/PrliLinksHelper.php
r2078274 r2124183 3 3 class PrliLinksHelper { 4 4 5 public static function groups_dropdown($fieldname, $value='', $extra_options=array(), $classes='') {6 global $prli_group;7 $groups = $prli_group->getAll();8 9 $idname = preg_match('#^.*\[(.*?)\]$#',$fieldname,$matches)?$matches[1]:$fieldname;10 11 ?>12 <select id="<?php echo esc_html($idname); ?>" name="<?php echo esc_html($fieldname); ?>" class="<?php echo $classes; ?>">13 <?php if( empty($extra_options) ): ?>14 <option><?php _e('None', 'pretty-link'); ?> </option>15 <?php else:16 foreach($extra_options as $exoptkey => $exoptval): ?>17 <option value="<?php echo $exoptval; ?>"><?php echo $exoptkey; ?> </option>18 <?php endforeach;19 endif; ?>20 <?php foreach($groups as $group): ?>21 <?php $selected = ($value==$group->id)?' selected="selected"':''; ?>22 <option value="<?php echo $group->id; ?>"<?php echo $selected; ?>><?php echo $group->name; ?> </option>23 <?php endforeach; ?>24 </select>25 <?php26 }27 28 5 public static function redirect_type_dropdown($fieldname, $value='', $extra_options=array(), $classes='') { 29 6 $idname = preg_match('#^.*\[(.*?)\]$#',$fieldname,$matches)?$matches[1]:$fieldname; 30 7 ?> 31 <select id="<?php echo $idname; ?>" name="<?php echo $fieldname; ?>" class="<?php echo $classes; ?>">8 <select id="<?php echo esc_attr($idname); ?>" name="<?php echo esc_attr($fieldname); ?>" class="<?php echo esc_attr($classes); ?>"> 32 9 <?php if( !empty($extra_options) ): ?> 33 10 <?php foreach( $extra_options as $exoptkey => $exoptval ): ?> 34 <option value="<?php echo $exoptval; ?>"><?php echo $exoptkey; ?> </option>11 <option value="<?php echo esc_attr($exoptval); ?>"><?php echo esc_html($exoptkey); ?> </option> 35 12 <?php endforeach; ?> 36 13 <?php endif; ?> 37 <option value="307" <?php selected((int)$value,(int)307); ?>><?php _e('307 (Temporary)', 'pretty-link') ?> </option>38 <option value="302" <?php selected((int)$value,(int)302); ?>><?php _e('302 (Temporary)', 'pretty-link') ?> </option>39 <option value="301" <?php selected((int)$value,(int)301); ?>><?php _e('301 (Permanent)', 'pretty-link') ?> </option>14 <option value="307" <?php selected((int)$value,(int)307); ?>><?php esc_html_e('307 (Temporary)', 'pretty-link') ?> </option> 15 <option value="302" <?php selected((int)$value,(int)302); ?>><?php esc_html_e('302 (Temporary)', 'pretty-link') ?> </option> 16 <option value="301" <?php selected((int)$value,(int)301); ?>><?php esc_html_e('301 (Permanent)', 'pretty-link') ?> </option> 40 17 <?php do_action('prli_redirection_types', array(), $value); ?> 41 18 </select> 42 <?php43 }44 45 public static function bulk_action_dropdown() {46 ?>47 <div class="prli_bulk_action_dropdown">48 <select class="prli_bulk_action">49 <option value="-1"><?php _e('Bulk Actions', 'pretty-link'); ?> </option>50 <option value="edit"><?php _e('Edit', 'pretty-link'); ?> </option>51 <option value="delete"><?php _e('Delete', 'pretty-link'); ?> </option>52 </select>53 <a href="javascript:" class="prli_bulk_action_apply button button-primary" data-confmsg="<?php _e('Are you sure you want to delete the selected links?', 'pretty-link'); ?>" data-url="<?php echo admin_url('admin.php'); ?>" data-wpnonce="<?php echo wp_create_nonce('prli_bulk_update'); ?>" style="display:inline-block;margin:0;"><?php _e('Apply', 'pretty-link'); ?></a>54 </div>55 <?php56 }57 58 public static function bulk_action_checkbox_dropdown($input_name, $input_title, $classes='') {59 $idname = preg_match('#^.*\[(.*?)\]$#',$input_name,$matches)?$matches[1]:$input_name;60 ?>61 <div class="bacheck-title"><?php echo $input_title; ?></div>62 <select name="<?php echo $input_name; ?>" class="<?php echo $classes; ?>" id="<?php echo $idname; ?>">63 <option value="##nochange##"><?php _e('- No Change -', 'pretty-link'); ?> </option>64 <option value="off"><?php _e('Off', 'pretty-link'); ?> </option>65 <option value="on"><?php _e('On', 'pretty-link'); ?> </option>66 </select>67 19 <?php 68 20 } … … 73 25 switch( $link->redirect_type ): 74 26 case 'prettybar': ?> 75 <i title="<?php _e('PrettyBar Redirection', 'pretty-link'); ?>" class="pl-icon-star pl-list-icon"></i><?php27 <i title="<?php esc_attr_e('PrettyBar Redirection', 'pretty-link'); ?>" class="pl-icon-star pl-list-icon"></i><?php 76 28 break; 77 29 case 'cloak': ?> 78 <i title="<?php _e('Cloaked Redirection', 'pretty-link'); ?>" class="pl-icon-cloak pl-list-icon"></i><?php30 <i title="<?php esc_attr_e('Cloaked Redirection', 'pretty-link'); ?>" class="pl-icon-cloak pl-list-icon"></i><?php 79 31 break; 80 32 case 'pixel': ?> 81 <i title="<?php _e('Pixel Tracking Redirection', 'pretty-link'); ?>" class="pl-icon-eye-off pl-list-icon"></i><?php33 <i title="<?php esc_attr_e('Pixel Tracking Redirection', 'pretty-link'); ?>" class="pl-icon-eye-off pl-list-icon"></i><?php 82 34 break; 83 35 case 'metarefresh': ?> 84 <i title="<?php _e('Meta Refresh Redirection', 'pretty-link'); ?>" class="pl-icon-cw pl-list-icon"></i><?php36 <i title="<?php esc_attr_e('Meta Refresh Redirection', 'pretty-link'); ?>" class="pl-icon-cw pl-list-icon"></i><?php 85 37 break; 86 38 case 'javascript': ?> 87 <i title="<?php _e('Javascript Redirection', 'pretty-link'); ?>" class="pl-icon-code pl-list-icon"></i><?php39 <i title="<?php esc_attr_e('Javascript Redirection', 'pretty-link'); ?>" class="pl-icon-code pl-list-icon"></i><?php 88 40 break; 89 41 case '307': ?> 90 <i title="<?php _e('Temporary (307) Redirection', 'pretty-link'); ?>" class="pl-icon-307 pl-list-icon"></i><?php42 <i title="<?php esc_attr_e('Temporary (307) Redirection', 'pretty-link'); ?>" class="pl-icon-307 pl-list-icon"></i><?php 91 43 break; 92 44 case '302': /* Using 307 Icon for now */ ?> 93 <i title="<?php _e('Temporary (302) Redirection', 'pretty-link'); ?>" class="pl-icon-307 pl-list-icon"></i><?php45 <i title="<?php esc_attr_e('Temporary (302) Redirection', 'pretty-link'); ?>" class="pl-icon-307 pl-list-icon"></i><?php 94 46 break; 95 47 case '301': ?> 96 <i title="<?php _e('Permanent (301) Redirection', 'pretty-link'); ?>" class="pl-icon-301 pl-list-icon"></i><?php48 <i title="<?php esc_attr_e('Permanent (301) Redirection', 'pretty-link'); ?>" class="pl-icon-301 pl-list-icon"></i><?php 97 49 endswitch; 98 50 99 51 if( $link->nofollow ): ?> 100 <i title="<?php _e('Nofollow Enabled', 'pretty-link'); ?>" class="pl-icon-cancel-circled pl-list-icon"></i><?php52 <i title="<?php esc_attr_e('Nofollow Enabled', 'pretty-link'); ?>" class="pl-icon-cancel-circled pl-list-icon"></i><?php 101 53 endif; 102 54 103 55 if(!empty($link->param_forwarding) && $link->param_forwarding != 'off'): ?> 104 <i title="<?php _e('Parameter Forwarding Enabled', 'pretty-link'); ?>" class="pl-icon-forward pl-list-icon"></i><?php56 <i title="<?php esc_attr_e('Parameter Forwarding Enabled', 'pretty-link'); ?>" class="pl-icon-forward pl-list-icon"></i><?php 105 57 endif; 106 58 … … 113 65 $link_nonce = wp_create_nonce( 'link-actions' ); 114 66 ?> 115 <a href="<?php echo admin_url('admin.php?page=pretty-link&action=edit&id=' . $link->id); ?>" title="<?php printf( __('Edit %s', 'pretty-link'), $link->slug); ?>"><i class="pl-list-icon pl-icon-edit"></i></a>116 <a href="<?php echo admin_url("admin.php?page=pretty-link&action=destroy&id={$link->id}&_wpnonce={$link_nonce}"); ?>" onclick="return confirm('<?php printf( __('Are you sure you want to delete your %s Pretty Link? This will delete the Pretty Link and all of the statistical data about it in your database.', 'pretty-link'), $link->name ); ?>');" title="<?php printf( __('Delete %s', 'pretty-link'), $link->slug); ?>"><i class="pl-list-icon pl-icon-cancel"></i></a>117 <a href="<?php echo admin_url("admin.php?page=pretty-link&action=reset&id={$link->id}&_wpnonce={$link_nonce}"); ?>" onclick="return confirm('<?php printf( __('Are you sure you want to reset your %s Pretty Link? This will delete all of the statistical data about this Pretty Link in your database.', 'pretty-link'), $link->name ); ?>');" title="<?php printf( __('Reset %s', 'pretty-link'), $link->name); ?>"><i class="pl-list-icon pl-icon-reply"></i></a>67 <a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link&action=edit&id=' . $link->id)); ?>" title="<?php echo esc_html(sprintf(__('Edit %s', 'pretty-link'), $link->slug)); ?>"><i class="pl-list-icon pl-icon-edit"></i></a> 68 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link&action=destroy&id={$link->id}&_wpnonce={$link_nonce}")); ?>" onclick="return confirm('<?php echo esc_attr(sprintf(__('Are you sure you want to delete your %s Pretty Link? This will delete the Pretty Link and all of the statistical data about it in your database.', 'pretty-link'), $link->name)); ?>');" title="<?php echo esc_attr(sprintf(__('Delete %s', 'pretty-link'), $link->slug)); ?>"><i class="pl-list-icon pl-icon-cancel"></i></a> 69 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link&action=reset&id={$link->id}&_wpnonce={$link_nonce}")); ?>" onclick="return confirm('<?php echo esc_attr(sprintf(__('Are you sure you want to reset your %s Pretty Link? This will delete all of the statistical data about this Pretty Link in your database.', 'pretty-link'), $link->name)); ?>');" title="<?php echo esc_attr(sprintf(__('Reset %s', 'pretty-link'), $link->name)); ?>"><i class="pl-list-icon pl-icon-reply"></i></a> 118 70 <?php 119 71 if( $link->track_me and $prli_options->extended_tracking!='count' ): 120 ?><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&l={$link->id}"); ?>" title="<?php printf( __('View clicks for %s', 'pretty-link'), $link->slug); ?>"><i class="pl-list-icon pl-icon-chart-line"></i></a><?php72 ?><a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks&l={$link->id}")); ?>" title="<?php echo esc_attr(sprintf(__('View clicks for %s', 'pretty-link'), $link->slug)); ?>"><i class="pl-list-icon pl-icon-chart-line"></i></a><?php 121 73 do_action('prli-link-action',$link->id); 122 74 endif; 123 75 124 76 if( $link->redirect_type != 'pixel' ): 125 ?><a href=" http://twitter.com/home?status=<?php echo $pretty_link_url; ?>" target="_blank" title="<?php printf( __('Post %s to Twitter', 'pretty-link'), $pretty_link_url); ?>"><i class="pl-list-icon pl-icon-twitter"></i></a>126 <a href=" mailto:?subject=Pretty Link&body=<?php echo $pretty_link_url; ?>" target="_blank" title="<?php printf( __('Send %s in an Email', 'pretty-link'), $pretty_link_url); ?>"><i class="pl-list-icon pl-icon-mail"></i></a><?php77 ?><a href="<?php echo esc_url('https://twitter.com/intent/tweet?url=' . urlencode($pretty_link_url)); ?>" target="_blank" title="<?php echo esc_attr(sprintf(__('Post %s to Twitter', 'pretty-link'), $pretty_link_url)); ?>"><i class="pl-list-icon pl-icon-twitter"></i></a> 78 <a href="<?php echo esc_url('mailto:?subject=Pretty Link&body=' . urlencode($pretty_link_url)); ?>" target="_blank" title="<?php echo esc_attr(sprintf(__('Send %s in an Email', 'pretty-link'), $pretty_link_url)); ?>"><i class="pl-list-icon pl-icon-mail"></i></a><?php 127 79 endif; 128 80 ?> 129 81 130 82 <?php if( $link->redirect_type != 'pixel' ): ?> 131 <a href="<?php echo $link->url; ?>" target="_blank" title="<?php printf( 'Visit Target URL: %s in a New Window', $link->url); ?>"><i class="pl-icon-link-ext pl-list-icon"></i></a>132 <a href="<?php echo $pretty_link_url; ?>" target="_blank" title="<?php printf( 'Visit Short URL: %s in a New Window', $pretty_link_url); ?>"><i class="pl-icon-link-ext pl-list-icon"></i></a><?php83 <a href="<?php echo esc_url($link->url); ?>" target="_blank" title="<?php echo esc_attr(sprintf(__('Visit Target URL: %s in a New Window', 'pretty-link'), $link->url)); ?>"><i class="pl-icon-link-ext pl-list-icon"></i></a> 84 <a href="<?php echo esc_url($pretty_link_url); ?>" target="_blank" title="<?php echo esc_attr(sprintf( __('Visit Short URL: %s in a New Window', 'pretty-link'), $pretty_link_url)); ?>"><i class="pl-icon-link-ext pl-list-icon"></i></a><?php 133 85 endif; 134 86 135 87 do_action('prli-special-link-action',$link->id); 136 88 } 89 90 public static function link_list_clicks($link) { 91 global $prli_options; 92 93 if($link->track_me) { 94 $clicks = ( empty($link->clicks) ? 0 : $link->clicks ); 95 $uniques = ( empty($link->uniques) ? 0 : $link->uniques ); 96 $click_str = "{$clicks}/{$uniques}"; 97 98 if($prli_options->extended_tracking !== 'count') { 99 ?> 100 <a href="<?php echo esc_url(admin_url( "admin.php?page=pretty-link-clicks&l={$link->id}" )); ?>" 101 id="link_clicks_<?php echo esc_attr($link->id); ?>" 102 title="<?php echo esc_attr(sprintf(__('%d Clicks / %d Uniques', 'pretty-link'), $clicks, $uniques)); ?>"><?php echo esc_html($click_str); ?></a> 103 <?php 104 } 105 else { 106 echo esc_html($click_str); 107 } 108 } 109 else { 110 ?> 111 <img src="<?php echo PRLI_IMAGES_URL.'/not_tracking.png'; ?>" title="<?php esc_attr_e('This link isn\'t being tracked', 'pretty-link'); ?>" /> 112 <?php 113 } 114 } 115 116 public static function link_list_url_clipboard($link) { 117 global $prli_link; 118 119 $pretty_link_url = $prli_link->get_pretty_link_url($link->slug, true); 120 121 ?> 122 <input type='text' 123 readonly="true" 124 style="width: 65%;" 125 onclick='this.select();' 126 onfocus='this.select();' 127 value="<?php echo esc_attr($pretty_link_url); ?>" /> 128 <span class="list-clipboard prli-clipboard"> 129 <i class="pl-icon-clipboard pl-list-icon icon-clipboardjs" 130 data-clipboard-text="<?php echo esc_url($pretty_link_url); ?>"></i> 131 </span> 132 <?php if( 0 ): // $link->redirect_type !== 'pixel' ): ?> 133 <div style="font-size: 8px;" 134 title="<?php echo esc_url($link->url); ?>"> 135 <strong><?php esc_html_e('Target URL:', 'pretty-link'); ?></strong> 136 <?php echo esc_html(substr($link->url,0,47) . ((strlen($link->url) >= 47)?'...':'')); ?> 137 </div> 138 <?php endif; 139 } 140 141 public static function link_action_reset($link, $title) { 142 ob_start(); 143 ?> 144 <a href="" 145 data-id="<?php echo esc_attr($link->id); ?>" 146 class="prli_reset_pretty_link" 147 title="<?php echo esc_attr(sprintf( __('Reset %s', 'pretty-link'), $link->name )); ?>"><?php echo esc_html($title); ?></a> 148 <?php 149 150 return ob_get_clean(); 151 } 152 153 public static function link_action_tweet($link, $title) { 154 ob_start(); 155 ?> 156 <a href="<?php echo esc_url('https://twitter.com/intent/tweet?url=' . urlencode($link->pretty_url)); ?>" 157 target="_blank" 158 title="<?php echo esc_attr(sprintf( __('Post %s to Twitter', 'pretty-link'), $link->pretty_url )); ?>"><?php echo esc_html($title); ?></a> 159 <?php 160 161 return ob_get_clean(); 162 } 163 164 public static function link_action_email($link, $title) { 165 ob_start(); 166 ?> 167 <a href="<?php echo esc_url('mailto:?subject=' . rawurlencode(__('Pretty Link', 'pretty-link')) . '&body=' . rawurlencode($link->pretty_url)); ?>" 168 target="_blank" 169 title="<?php echo esc_attr(sprintf( __('Send %s in an Email', 'pretty-link'), $link->pretty_url )); ?>"><?php echo esc_html($title); ?></a> 170 <?php 171 172 return ob_get_clean(); 173 } 174 175 public static function link_action_visit_target($link, $title) { 176 ob_start(); 177 ?> 178 <a href="<?php echo esc_url($link->url); ?>" 179 target="_blank" 180 title="<?php echo esc_attr(sprintf(__('Visit Target URL: %s in a New Window', 'pretty-link'), $link->url)); ?>"><?php echo esc_html($title); ?></a> 181 <?php 182 183 return ob_get_clean(); 184 } 185 186 public static function link_action_visit_pretty_link($link, $title) { 187 ob_start(); 188 ?> 189 <a href="<?php echo esc_url($link->pretty_url); ?>" 190 target="_blank" 191 title="<?php echo esc_attr(sprintf(__('Visit Short URL: %s in a New Window', 'pretty-link'), $link->pretty_url)); ?>"><?php echo esc_html($title); ?></a> 192 <?php 193 194 return ob_get_clean(); 195 } 137 196 } 138 197 -
pretty-link/trunk/app/models/PrliClick.php
r1601826 r2124183 232 232 233 233 public function setupClickLineGraph($start_timestamp, $end_timestamp, $link_id = "all", $type = "all", $group = '', $title_only = false) { 234 global $wpdb, $prli_utils, $prli_link, $prli_group; 235 236 if(!empty($group)) { 237 $link_slug = sprintf(__("group: '%s'", 'pretty-link'),$wpdb->get_var($wpdb->prepare("SELECT name FROM {$prli_group->table_name} WHERE id = %d", $group))); 238 } 239 else if($link_id == 'all') { 234 global $wpdb, $prli_utils, $prli_link; 235 236 if($link_id == 'all') { 240 237 $link_slug = __('all links', 'pretty-link'); 241 238 } … … 269 266 public function get_params_array() { 270 267 $values = array( 271 'paged' => (isset($_GET['paged'])? $_GET['paged']:(isset($_POST['paged'])?$_POST['paged']:1)),268 'paged' => (isset($_GET['paged'])?(int)$_GET['paged']:(isset($_POST['paged'])?(int)$_POST['paged']:1)), 272 269 'l' => (isset($_GET['l'])?(int)$_GET['l']:(isset($_POST['l'])?(int)$_POST['l']:'all')), 273 'group' => (isset($_GET['group'])? $_GET['group']:(isset($_POST['group'])?$_POST['group']:'')),274 'ip' => (isset($_GET['ip'])?$_GET['ip']:(isset($_POST['ip'])?$_POST['ip']:'')),275 'vuid' => (isset($_GET['vuid'])?$_GET['vuid']:(isset($_POST['vuid'])?$_POST['vuid']:'')),276 'sdate' => (isset($_GET['sdate'])?$_GET['sdate']:(isset($_POST['sdate'])?$_POST['sdate']:'')),277 'edate' => (isset($_GET['edate'])?$_GET['edate']:(isset($_POST['edate'])?$_POST['edate']:'')),278 'type' => (isset($_GET['type'])?$_GET['type']:(isset($_POST['type'])?$_POST['type']:'all')),279 'search' => (isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:'')),280 'sort' => (isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:'')),281 'sdir' => (isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))270 'group' => (isset($_GET['group'])?(int)$_GET['group']:(isset($_POST['group'])?(int)$_POST['group']:'')), 271 'ip' => sanitize_text_field(stripslashes(isset($_GET['ip'])?$_GET['ip']:(isset($_POST['ip'])?$_POST['ip']:''))), 272 'vuid' => sanitize_key(stripslashes(isset($_GET['vuid'])?$_GET['vuid']:(isset($_POST['vuid'])?$_POST['vuid']:''))), 273 'sdate' => sanitize_text_field(stripslashes(isset($_GET['sdate'])?$_GET['sdate']:(isset($_POST['sdate'])?$_POST['sdate']:''))), 274 'edate' => sanitize_text_field(stripslashes(isset($_GET['edate'])?$_GET['edate']:(isset($_POST['edate'])?$_POST['edate']:''))), 275 'type' => sanitize_text_field(stripslashes(isset($_GET['type'])?$_GET['type']:(isset($_POST['type'])?$_POST['type']:'all'))), 276 'search' => sanitize_text_field(stripslashes(isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:''))), 277 'sort' => sanitize_key(stripslashes(isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:''))), 278 'sdir' => sanitize_key(stripslashes(isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))) 282 279 ); 283 280 -
pretty-link/trunk/app/models/PrliDb.php
r1925455 r2124183 27 27 global $wpdb, $prli_utils, $plp_update, $prli_db_version; 28 28 29 $wpdb->query('SET SQL_BIG_SELECTS=1'); //This may be getting set back to 0 when SET MAX_JOIN_SIZE is executed 30 $wpdb->query('SET MAX_JOIN_SIZE=18446744073709551615'); 31 //$wpdb->query('SET GLOBAL innodb_large_prefix=1'); //Will fail on some installs without proper privileges still 32 29 33 // This was introduced in WordPress 3.5 30 34 // $char_col = $wpdb->get_charset_collate(); //This doesn't work for most non english setups … … 48 52 require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 49 53 50 //Fix for large indexes51 $wpdb->query("SET GLOBAL innodb_large_prefix=1");52 53 54 /* Create/Upgrade Clicks (Clicks) Table */ 54 55 $sql = "CREATE TABLE {$this->clicks} ( … … 69 70 PRIMARY KEY (id), 70 71 KEY link_id (link_id), 71 KEY ip (ip ),72 KEY browser (browser ),73 KEY btype (btype ),74 KEY bversion (bversion ),75 KEY os (os ),76 KEY referer (referer ),77 KEY host (host ),78 KEY uri (uri ),72 KEY ip (ip(191)), 73 KEY browser (browser(191)), 74 KEY btype (btype(191)), 75 KEY bversion (bversion(191)), 76 KEY os (os(191)), 77 KEY referer (referer(191)), 78 KEY host (host(191)), 79 KEY uri (uri(191)), 79 80 KEY robot (robot), 80 81 KEY first_click (first_click), … … 98 99 param_struct varchar(255) default NULL, 99 100 redirect_type varchar(255) default '307', 101 link_status varchar(64) default 'enabled', 100 102 created_at datetime NOT NULL, 101 103 updated_at datetime default NULL, 102 104 group_id int(11) default NULL, 105 link_cpt_id int(11) default 0, 103 106 PRIMARY KEY (id), 107 KEY link_cpt_id (link_cpt_id), 104 108 KEY group_id (group_id), 105 KEY name (name),109 KEY link_status (link_status), 106 110 KEY nofollow (nofollow), 107 111 KEY track_me (track_me), 108 KEY param_forwarding (param_forwarding), 109 KEY param_struct (param_struct), 110 KEY redirect_type (redirect_type), 111 KEY slug (slug), 112 KEY param_forwarding (param_forwarding(191)), 113 KEY redirect_type (redirect_type(191)), 114 KEY slug (slug(191)), 112 115 KEY created_at (created_at), 113 116 KEY updated_at (updated_at) … … 116 119 dbDelta($sql); 117 120 118 /* Create/Upgrade Groups Table */119 $sql = "CREATE TABLE {$this->groups} (120 id int(11) NOT NULL auto_increment,121 name varchar(255) default NULL,122 description text default NULL,123 created_at datetime NOT NULL,124 PRIMARY KEY (id),125 KEY name (name)126 ) {$char_col};";127 128 dbDelta($sql);129 130 /* Create/Upgrade Groups Table */131 121 $sql = "CREATE TABLE {$this->linkmeta} ( 132 122 id int(11) NOT NULL auto_increment, … … 137 127 created_at datetime NOT NULL, 138 128 PRIMARY KEY (id), 139 KEY meta_key (meta_key ),129 KEY meta_key (meta_key(191)), 140 130 KEY link_id (link_id) 141 131 ) {$char_col};"; … … 155 145 update_option('prli_db_version', $prli_db_version); 156 146 } 147 148 public function table_exists($table) { 149 global $wpdb; 150 $q = $wpdb->prepare('SHOW TABLES LIKE %s', $table); 151 $table_res = $wpdb->get_var($q); 152 return (strtolower($table_res) == strtolower($table)); 153 } 157 154 } -
pretty-link/trunk/app/models/PrliGroup.php
r1572224 r2124183 27 27 global $wpdb; 28 28 29 $query = 'UPDATE ' . $this->table_name . 30 ' SET name=\'' . $values['name'] . '\', ' . 31 ' description=\'' . $values['description'] . '\' ' . 32 ' WHERE id='.$id; 29 $query = "UPDATE {$this->table_name} SET name = %s, description = %s WHERE id = %d"; 30 $query = $wpdb->prepare($query, $values['name'], $values['description'], $id); 33 31 $query_results = $wpdb->query($query); 34 32 return $query_results; … … 37 35 public function destroy( $id ) 38 36 { 39 //require_once(PRLI_MODELS_PATH.'/models.inc.php');40 37 global $wpdb, $prli_link; 41 38 42 39 // Disconnect the links from this group 43 $query = 'UPDATE ' . $prli_link->table_name . 44 ' SET group_id = NULL ' . 45 ' WHERE group_id='.$id; 46 $query_results = $wpdb->query($query); 40 $query = $wpdb->prepare("UPDATE {$prli_link->table_name} SET group_id = NULL WHERE group_id = %d", $id); 41 $wpdb->query($query); 47 42 48 $destroy = 'DELETE FROM ' . $this->table_name . ' WHERE id=' . $id;43 $destroy = $wpdb->prepare("DELETE FROM {$this->table_name} WHERE id = %d", $id); 49 44 return $wpdb->query($destroy); 50 45 } … … 99 94 { 100 95 $values = array( 101 'action' => (isset($_GET['action'])?$_GET['action']:(isset($_POST['action'])?$_POST['action']:'list')),102 'id' => (isset($_GET['id'])? $_GET['id']:(isset($_POST['id'])?$_POST['id']:'')),103 'paged' => (isset($_GET['paged'])? $_GET['paged']:(isset($_POST['paged'])?$_POST['paged']:1)),104 'group' => (isset($_GET['group'])? $_GET['group']:(isset($_POST['group'])?$_POST['group']:'')),105 'search' => (isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:'')),106 'sort' => (isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:'')),107 'sdir' => (isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))96 'action' => sanitize_key(stripslashes(isset($_GET['action'])?$_GET['action']:(isset($_POST['action'])?$_POST['action']:'list'))), 97 'id' => (isset($_GET['id'])?(int)$_GET['id']:(isset($_POST['id'])?(int)$_POST['id']:'')), 98 'paged' => (isset($_GET['paged'])?(int)$_GET['paged']:(isset($_POST['paged'])?(int)$_POST['paged']:1)), 99 'group' => (isset($_GET['group'])?(int)$_GET['group']:(isset($_POST['group'])?(int)$_POST['group']:'')), 100 'search' => sanitize_text_field(stripslashes(isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:''))), 101 'sort' => sanitize_key(stripslashes(isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:''))), 102 'sdir' => sanitize_key(stripslashes(isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))) 108 103 ); 109 104 … … 117 112 $errors = array(); 118 113 if( empty($values['name']) ) 119 $errors[] = "Group must have a name.";114 $errors[] = __('Group must have a name.', 'pretty-link'); 120 115 121 116 return $errors; -
pretty-link/trunk/app/models/PrliLink.php
r1925455 r2124183 4 4 class PrliLink { 5 5 public $table_name; 6 public static $cpt = 'pretty-link'; 7 public static $nonce_str = 'pretty-link-nonce'; 6 8 7 9 public function __construct() { … … 12 14 public static function get_count() { 13 15 global $wpdb, $prli_link; 14 $q = "SELECT COUNT(*) FROM {$prli_link->table_name} ";16 $q = "SELECT COUNT(*) FROM {$prli_link->table_name} WHERE link_status='enabled'"; 15 17 return $wpdb->get_var($q); 16 18 } … … 18 20 public static function get_first_date() { 19 21 global $wpdb, $prli_link; 20 $q = "SELECT min(created_at) FROM {$prli_link->table_name} ";22 $q = "SELECT min(created_at) FROM {$prli_link->table_name} WHERE link_status='enabled'"; 21 23 return $wpdb->get_var($q); 22 24 } … … 25 27 global $wpdb, $prli_link_meta; 26 28 27 $now = date('Y-m-d H:i:s'); 28 29 if($values['redirect_type'] == 'pixel') { 30 $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']); 31 } 32 else { 33 $values['name'] = (!empty($values['name'])?$values['name']:PrliUtils::get_page_title($values['url'],$values['slug'])); 34 } 35 36 // We no longer handle this: 'param_struct,'. 37 $query_str = " 38 INSERT INTO {$this->table_name} ( 39 url, 40 slug, 41 name, 42 param_forwarding, 43 redirect_type, 44 description, 45 track_me, 46 nofollow, 47 group_id, 48 created_at, 49 updated_at 50 ) 51 VALUES (%s,%s,%s,%s,%s,%s,%d,%d,%d,%s,%s) 52 "; 53 54 $query = $wpdb->prepare( 55 $query_str, 56 $values['url'], 57 $values['slug'], 58 $values['name'], 59 (isset($values['param_forwarding']) && !empty($values['param_forwarding']))?1:0, 60 // We no longer handle this: $values['param_struct'], 61 $values['redirect_type'], 62 $values['description'], 63 (isset($values['track_me']) && !empty($values['track_me']))?1:0, 64 (isset($values['nofollow']) && !empty($values['nofollow']))?1:0, 65 (isset($values['group_id'])?(int)$values['group_id']:'NULL'), 66 $now, $now 67 ); 68 69 $query_results = $wpdb->query($query); 29 $now = current_time('mysql'); 30 31 $values = $this->sanitize($values); 32 $values['created_at'] = $values['updated_at'] = $now; 33 34 if($values['link_cpt_id'] == 0) { ## Autocreate CPT 35 36 $post_id = $this->create_cpt_for_link($values['name'], $now, $now); 37 38 if($post_id == 0 || is_wp_error($post_id)) { 39 error_log("Unable to create CPT Post for Link"); 40 } 41 42 $values['link_cpt_id'] = $post_id; 43 } 44 45 if(empty($values['name'])) { 46 if($values['redirect_type'] == 'pixel') { 47 $values['name'] = $values['slug']; 48 } 49 else { 50 $values['name'] = PrliUtils::get_page_title($values['url'],$values['slug']); 51 } 52 53 // Update the post_title field directly so we don't activate the action 54 // that ultimately calls this function lest we get into an infinite loop 55 $q = $wpdb->prepare("UPDATE {$wpdb->posts} SET post_title=%s WHERE ID=%d", $values['name'], $values['link_cpt_id']); 56 $wpdb->query($q); 57 } 58 59 $query_results = $wpdb->insert($this->table_name, $values); 70 60 71 61 $link_id = ($query_results ? $wpdb->insert_id : false); … … 76 66 } 77 67 68 $this->update_cpt_title($values['link_cpt_id'], $values['name']); 69 $this->update_cpt_status($values['link_cpt_id']); 70 $this->update_cpt_post_date($values['link_cpt_id'], $now); 71 78 72 do_action('prli-create-link', $link_id, $values); 79 73 … … 82 76 83 77 public function update( $id, $values ) { 78 global $wpdb, $prli_link; 79 80 $now = current_time('mysql'); 81 82 $values = $this->sanitize($values); 83 $values['updated_at'] = $now; 84 85 $title = isset($values['name'])?trim($values['name']):''; 86 87 if(empty($title)) { 88 error_log("REDIRECT TYPE: " . $values['redirect_type']); 89 if($values['redirect_type'] == 'pixel') { 90 $title = $values['slug']; 91 } 92 else { 93 $title = PrliUtils::get_page_title($values['url'],$values['slug']); 94 } 95 } 96 97 $query_results = $wpdb->update($this->table_name, $values, array('id' => $id)); 98 99 $link = $this->getOne($id); 100 $this->update_cpt_title($link->link_cpt_id, $title); 101 $this->update_cpt_status($link->link_cpt_id); 102 $this->update_cpt_post_modified($link->link_cpt_id, $now); 103 104 return $id; 105 } 106 107 public function disable_link($id) { 108 return $this->update_link_status( $id, 'disabled' ); 109 } 110 111 public function enable_link($id) { 112 return $this->update_link_status( $id, 'enabled' ); 113 } 114 115 public function update_link_status( $id, $link_status='enabled' ) { 84 116 global $wpdb; 85 117 86 $now = date('Y-m-d H:i:s'); 87 88 if($values['redirect_type'] == 'pixel') { 89 $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']); 90 } 91 else { 92 $values['name'] = (!empty($values['name'])?$values['name']:PrliUtils::get_page_title($values['url'],$values['slug'])); 93 } 94 95 // 'param_struct=%s, ' . 96 $query_str = " 97 UPDATE {$this->table_name} 98 SET url=%s, 99 slug=%s, 100 name=%s, 101 param_forwarding=%s, 102 redirect_type=%s, 103 description=%s, 104 track_me=%d, 105 nofollow=%d, 106 group_id=%d, 107 updated_at=%s 108 WHERE id=%d 109 "; 110 111 // isset($values['param_struct'])?$values['param_struct']:'', 112 $query = $wpdb->prepare( 113 $query_str, 114 isset($values['url'])?$values['url']:'', 115 isset($values['slug'])?$values['slug']:'', 116 isset($values['name'])?$values['name']:'', 117 (isset($values['param_forwarding']) && !empty($values['param_forwarding']))?1:0, 118 isset($values['redirect_type'])?$values['redirect_type']:'', 119 isset($values['description'])?$values['description']:'', 120 (isset($values['track_me']) && !empty($values['track_me']))?1:0, 121 (isset($values['nofollow']) && !empty($values['nofollow']))?1:0, 122 (isset($values['group_id'])?(int)$values['group_id']:'NULL'), 123 $now, $id 118 $q = $wpdb->prepare(" 119 UPDATE {$this->table_name} 120 SET link_status=%s 121 WHERE id=%d 122 ", 123 $link_status, 124 $id 124 125 ); 125 126 126 $query_results = $wpdb->query($query); 127 128 return $query_results; 129 } 130 131 public function bulk_update($ids, $values) { 132 if(!empty($ids) && is_array($values) && !empty($values)) { 133 global $wpdb; 134 135 $now = date('Y-m-d H:i:s'); 136 $sets = array(); 137 $query = $wpdb->prepare("UPDATE {$this->table_name} SET updated_at=%s ", $now); 138 139 $link_columns = array( 140 'name', 141 'description', 142 'url', 143 'slug', 144 'nofollow', 145 'track_me', 146 'param_forwarding', 147 'param_struct', 148 'redirect_type', 149 'group_id' 150 ); 151 152 foreach($values as $lnkkey => $lnkval) { 153 // make sure this is an option contained in the links table 154 if(in_array($lnkkey, $link_columns)) { 155 // check to see if this is a checkbox 156 if(in_array(strtolower($lnkval), array('on','off'))) { 157 $sets[] = $wpdb->prepare("{$lnkkey}=%d", (strtolower($lnkval)=='on')); 158 } 159 else { 160 $sets[] = $wpdb->prepare("{$lnkkey}=%s", $lnkval); 161 } 162 } 163 } 164 165 if(!empty($sets)) { 166 $query .= ', '; 167 $query .= implode(',', $sets); 168 } 169 170 if(preg_match('/,/',$ids)) { 171 $query .= " WHERE id IN ({$ids})"; 172 } 173 else { 174 $query .= $wpdb->prepare(" WHERE id=%d", $ids); 175 } 176 177 $query_results = $wpdb->query($query); 178 179 return $query_results; 180 } 181 182 return false; 127 return $wpdb->query($q); 183 128 } 184 129 … … 186 131 global $wpdb; 187 132 188 $query = 'UPDATE ' . $this->table_name . 189 ' SET group_id=' . (isset($value)?$group_id:'NULL') . 190 ' WHERE id='.$id; 133 if (isset($value)) { 134 $query = $wpdb->prepare( 135 "UPDATE {$this->table_name} SET group_id = %d WHERE id = %d", 136 $group_id, 137 $id 138 ); 139 } else { 140 $query = $wpdb->prepare( 141 "UPDATE {$this->table_name} SET group_id = NULL WHERE id = %d", 142 $id 143 ); 144 } 145 191 146 $query_results = $wpdb->query($query); 192 147 … … 194 149 } 195 150 196 public function destroy($id) { 197 //require_once(PRLI_MODELS_PATH.'/models.inc.php'); 151 public function destroy($id, $delete_mode='delete_cpt') { 198 152 global $wpdb, $prli_click, $prli_link_meta; 199 153 200 154 do_action('prli_delete_link', $id); 155 156 $link = $this->getOne($id); 157 if($delete_mode=='delete_cpt' && $link->link_cpt_id > 0) { 158 wp_delete_post($link->link_cpt_id, true); 159 } 160 201 161 $metas = $wpdb->prepare("DELETE FROM {$prli_link_meta->table_name} WHERE link_id=%d",$id); 202 162 $reset = $wpdb->prepare("DELETE FROM {$prli_click->table_name} WHERE link_id=%d",$id); … … 210 170 211 171 public function reset($id) { 212 //require_once(PRLI_MODELS_PATH.'/models.inc.php');213 172 global $wpdb, $prli_click, $prli_link_meta; 214 173 … … 221 180 } 222 181 223 public function getOneFromSlug( $slug, $return_type = OBJECT, $include_stats = false ) { 224 global $wpdb, $prli_click, $prli_options, $prli_link_meta; 225 226 static $cached; 227 228 if(!isset($cached)) { $cached = array(); } 229 230 if(!$include_stats && isset($cached[$slug])) { 231 return $cached[$slug]; 232 } 233 elseif($include_stats && isset($cached[$slug]['stats'])) { 234 return $cached[$slug]['stats']; 235 } 182 public function getOneFromSlug( $slug, $return_type = OBJECT, $include_stats = false, $exclude_disabled=true ) { 183 return $this->get_one_by( 'slug', $slug, $return_type, $include_stats, $exclude_disabled ); 184 } 185 186 public function getOne( $id, $return_type = OBJECT, $include_stats = false, $exclude_disabled=true ) { 187 return $this->get_one_by( 'id', $id, $return_type, $include_stats, $exclude_disabled ); 188 } 189 190 public function get_one_by( $field='id', $val, $return_type = OBJECT, $include_stats = false, $exclude_disabled=true ) { 191 global $wpdb, $prli_click, $prli_options, $prli_link_meta, $prli_blogurl; 192 193 $struct = PrliUtils::get_permalink_pre_slug_uri(); 236 194 237 195 if($include_stats) { 238 $query = 'SELECT li.*, '; 196 $query = "SELECT li.*, CONCAT(\"{$prli_blogurl}\",\"{$struct}\",li.slug) AS pretty_url, "; 197 198 $op = $prli_click->get_exclude_where_clause( ' AND' ); 239 199 240 200 if($prli_options->extended_tracking != 'count') { 241 $query .= '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' . 242 'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' . 243 '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' . 244 'WHERE cl.link_id = li.id ' . 245 'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques '; 201 $query .= " 202 ( 203 SELECT COUNT(*) 204 FROM {$prli_click->table_name} AS cl 205 WHERE cl.link_id = li.id 206 {$op} 207 ) as clicks, 208 ( 209 SELECT COUNT(*) FROM {$prli_click->table_name} AS cl 210 WHERE cl.link_id = li.id 211 AND cl.first_click <> 0 212 {$op} 213 ) as uniques 214 "; 246 215 } 247 216 else { 248 $query .= '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' . 249 'WHERE lm.meta_key="static-clicks" AND lm.link_id=li.id LIMIT 1) as clicks, ' . 250 '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' . 251 'WHERE lm.meta_key="static-uniques" AND lm.link_id=li.id LIMIT 1) as uniques '; 252 } 253 254 $query .= "FROM {$this->table_name} li " . 255 'WHERE slug=%s'; 217 $query .= " 218 ( 219 SELECT lm.meta_value 220 FROM {$prli_link_meta->table_name} AS lm 221 WHERE lm.meta_key=\"static-clicks\" 222 AND lm.link_id=li.id LIMIT 1 223 ) as clicks, 224 ( 225 SELECT lm.meta_value FROM {$prli_link_meta->table_name} AS lm 226 WHERE lm.meta_key=\"static-uniques\" 227 AND lm.link_id=li.id 228 LIMIT 1 229 ) as uniques 230 "; 231 } 256 232 } 257 233 else { 258 $query = "SELECT * FROM {$this->table_name} WHERE slug=%s"; 259 } 260 261 $query = $wpdb->prepare($query, $slug); 262 $link = $wpdb->get_row($query, $return_type); 234 $query = "SELECT li.*, CONCAT(\"{$prli_blogurl}\",\"{$struct}\",li.slug) AS pretty_url"; 235 } 236 237 $query .= " 238 FROM {$this->table_name} AS li 239 WHERE {$field}=%s 240 "; 241 242 if($exclude_disabled) { 243 $query .= " 244 AND link_status='enabled' 245 "; 246 } 247 248 $query = $wpdb->prepare($query, $val); 249 $link = $wpdb->get_row($query, $return_type); 263 250 264 251 //get_row returns a null if not found - we don't want nulls … … 270 257 } 271 258 272 //Cache this to prevent multiple queries273 if(!$include_stats) {274 $cached[$slug] = $link;275 }276 else {277 $cached[$slug]['stats'] = $link;278 }279 280 259 return $link; 281 260 } 282 261 283 public function getOne( $id, $return_type = OBJECT, $include_stats = false ) { 284 global $wpdb, $prli_click, $prli_link_meta, $prli_options; 285 286 if(!isset($id) or empty($id)) { return false; } 287 288 static $cached; 289 290 if(!isset($cached)) { $cached = array(); } 291 292 if(!$include_stats && isset($cached[$id])) { 293 return $cached[$id]; 294 } 295 296 if($include_stats) { 297 $query = 'SELECT li.*, '; 298 299 if($prli_options->extended_tracking != 'count') { 300 $query .= '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' . 301 'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' . 302 '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' . 303 'WHERE cl.link_id = li.id ' . 304 'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques '; 305 } 306 else { 307 $query .= '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' . 308 'WHERE lm.meta_key="static-clicks" AND lm.link_id=li.id LIMIT 1) as clicks, ' . 309 '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' . 310 'WHERE lm.meta_key="static-uniques" AND lm.link_id=li.id LIMIT 1) as uniques '; 311 } 312 313 $query .= 'FROM ' . $this->table_name . ' li ' . 314 'WHERE id=%d'; 315 } 316 else { 317 $query = "SELECT * FROM {$this->table_name} WHERE id=%d"; 318 } 319 320 $query = $wpdb->prepare($query, $id); 321 $link = $wpdb->get_row($query, $return_type); 322 323 if($include_stats and $link and $prli_options->extended_tracking == 'count') { 324 $link->clicks = $prli_link_meta->get_link_meta($link->id,'static-clicks',true); 325 $link->uniques = $prli_link_meta->get_link_meta($link->id,'static-uniques',true); 326 } 327 328 //Cache this to prevent multiple queries 329 if(!$include_stats) { 330 $cached[$id] = $link; 331 } 332 333 return $link; 334 } 335 336 public function find_first_target_url($target_url) 337 { 262 public function find_first_target_url($target_url) { 338 263 global $wpdb; 339 $query_str = "SELECT id FROM {$this->table_name} WHERE url=%s LIMIT 1";264 $query_str = "SELECT id FROM {$this->table_name} WHERE link_status='enabled' AND url=%s LIMIT 1"; 340 265 $query = $wpdb->prepare($query_str,$target_url); 341 266 return $wpdb->get_var($query); … … 345 270 { 346 271 global $wpdb; 347 $query_str = "SELECT * FROM {$this->table_name} WHERE url=%s LIMIT 1";272 $query_str = "SELECT * FROM {$this->table_name} WHERE link_status='enabled' AND url=%s LIMIT 1"; 348 273 $query = $wpdb->prepare($query_str,$target_url); 349 274 $pretty_link = $wpdb->get_row($query); … … 381 306 { 382 307 // Match longest slug -- this is the most common 383 $p arams = (isset($match_val[3])?$match_val[3]:'');308 $pretty_link_params = (isset($match_val[3])?$match_val[3]:''); 384 309 if( $pretty_link_found = $this->is_pretty_link_slug( $match_val[2] ) ) 385 return compact('pretty_link_found' ,'pretty_link_params');310 return compact('pretty_link_found'); 386 311 387 312 // Trim down the matched link … … 397 322 $new_match_str ="#^{$subdir_str}({$struct})({$matched_link})(.*?)?$#"; 398 323 399 $p arams = (isset($match_val[3])?$match_val:'');324 $pretty_link_params = (isset($match_val[3])?$match_val:''); 400 325 if( $pretty_link_found = $this->is_pretty_link_slug( $match_val[2] ) ) 401 return compact('pretty_link_found' ,'pretty_link_params');326 return compact('pretty_link_found'); 402 327 403 328 // Trim down the matched link and try again … … 410 335 } 411 336 412 public function is_pretty_link_slug($slug) 413 { 337 public function is_pretty_link_slug($slug) { 414 338 return apply_filters('prli-check-if-slug', $this->getOneFromSlug( rawurldecode($slug) ), rawurldecode($slug)); 415 339 } … … 417 341 public function get_link_min( $id, $return_type = OBJECT ) { 418 342 global $wpdb, $prli_link_meta; 419 $query_str = "SELECT * FROM {$this->table_name} WHERE id=%d";343 $query_str = "SELECT * FROM {$this->table_name} WHERE link_status='enabled' AND id=%d"; 420 344 $query = $wpdb->prepare($query_str, $id); 421 345 $res = $wpdb->get_row($query, $return_type); … … 430 354 } 431 355 432 public function getAll($where = '', $order_by = '', $return_type = OBJECT, $include_stats = false) 433 { 434 global $wpdb, $prli_click, $prli_group, $prli_link_meta, $prli_options, $prli_utils; 435 436 if($include_stats) 437 { 438 $query = 'SELECT li.*, '; 439 if($prli_options->extended_tracking != 'count') 440 { 441 $query .= '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' . 442 'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' . 443 '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' . 444 'WHERE cl.link_id = li.id ' . 445 'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques, '; 356 public function getAll($where = '', $order_by = '', $return_type = OBJECT, $include_stats = false) { 357 global $wpdb, $prli_click, $prli_group, $prli_link_meta, $prli_options, $prli_utils, $prli_blogurl; 358 359 $struct = PrliUtils::get_permalink_pre_slug_regex(); 360 361 $op = $prli_click->get_exclude_where_clause( ' AND' ); 362 363 if($include_stats) { 364 $query = "SELECT li.*, CONCAT(\"{$prli_blogurl}\",\"{$struct}\",li.slug) AS pretty_url, "; 365 if($prli_options->extended_tracking != 'count') { 366 $query .= " 367 ( 368 SELECT COUNT(*) 369 FROM {$prli_click->table_name} AS cl 370 WHERE cl.link_id = li.id 371 {$op} 372 ) as clicks, 373 ( 374 SELECT COUNT(*) 375 FROM {$prli_click->table_name} AS cl 376 WHERE cl.link_id = li.id 377 AND cl.first_click <> 0 378 {$op} 379 ) as uniques 380 "; 446 381 } 447 382 else 448 383 { 449 $query .= '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' . 450 'WHERE lm.meta_key="static-clicks" AND lm.link_id=li.id LIMIT 1) as clicks, ' . 451 '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' . 452 'WHERE lm.meta_key="static-uniques" AND lm.link_id=li.id LIMIT 1) as uniques, '; 453 } 454 $query .= 'gr.name as group_name ' . 455 'FROM '. $this->table_name . ' li ' . 456 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' . 457 $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by; 458 } 459 else 460 { 461 $query = "SELECT li.*, gr.name as group_name FROM {$this->table_name} li " . 462 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' . 463 $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by; 464 } 384 $query .= " 385 ( 386 SELECT lm.meta_value 387 FROM {$prli_link_meta->table_name} AS lm 388 WHERE lm.meta_key=\"static-clicks\" 389 AND lm.link_id=li.id 390 LIMIT 1 391 ) as clicks, 392 ( 393 SELECT lm.meta_value 394 FROM {$prli_link_meta->table_name} AS lm 395 WHERE lm.meta_key=\"static-uniques\" 396 AND lm.link_id=li.id 397 LIMIT 1 398 ) as uniques 399 "; 400 } 401 } 402 else { 403 $query = "SELECT li.*,CONCAT(\"{$prli_blogurl}\",\"{$struct}\",li.slug) AS pretty_url "; 404 } 405 406 $query .= "FROM {$this->table_name} AS li 407 WHERE li.link_status='enabled' 408 " . $prli_utils->prepend_and_or_where(' AND', $where) . 409 $order_by; 465 410 466 411 return $wpdb->get_results($query, $return_type); 467 }468 469 // Pagination Methods470 public function getRecordCount($where="")471 {472 global $wpdb, $prli_utils;473 $query = 'SELECT COUNT(*) FROM ' . $this->table_name . ' li' . $prli_utils->prepend_and_or_where(' WHERE', $where);474 return $wpdb->get_var($query);475 }476 477 public function getPageCount($p_size, $where="")478 {479 return ceil((int)$this->getRecordCount($where) / (int)$p_size);480 }481 482 public function getPage($current_p,$p_size, $where = "", $order_by = '', $return_type = OBJECT)483 {484 global $wpdb, $prli_click, $prli_utils, $prli_group, $prli_link_meta, $prli_options;485 $end_index = $current_p * $p_size;486 $start_index = $end_index - $p_size;487 $query = 'SELECT li.*, ';488 if($prli_options->extended_tracking != 'count')489 {490 $query .= '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .491 'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .492 '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .493 'WHERE cl.link_id = li.id ' .494 'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques, ';495 }496 else497 {498 $query .= '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .499 'WHERE lm.meta_key="static-clicks" AND lm.link_id=li.id LIMIT 1) as clicks, ' .500 '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .501 'WHERE lm.meta_key="static-uniques" AND lm.link_id=li.id LIMIT 1) as uniques, ';502 }503 $query .= 'gr.name as group_name ' .504 'FROM ' . $this->table_name . ' li ' .505 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .506 $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by . ' ' .507 'LIMIT ' . $start_index . ',' . $p_size . ';';508 $results = $wpdb->get_results($query, $return_type);509 return $results;510 412 } 511 413 … … 525 427 $slug = $slug_prefix . PrliUtils::gen_random_string($num_chars); 526 428 429 // Intentionally not checking to see if link is enabled or disabled 527 430 $query = "SELECT slug FROM {$this->table_name}"; 528 431 $slugs = $wpdb->get_col($query,0); … … 530 433 // It is highly unlikely that we'll ever see 2 identical random slugs 531 434 // but just in case, here's some code to prevent collisions 532 while(in_array($slug, $slugs) or !PrliUtils::slugIsAvailable($slug))435 while(in_array($slug, $slugs) || is_wp_error(PrliUtils::is_slug_available($slug))) { 533 436 $slug = $slug_prefix . PrliUtils::gen_random_string($num_chars); 437 } 534 438 535 439 return apply_filters('prli-auto-generated-slug', $slug, $slugs, $num_chars); 536 440 } 537 441 538 public function get_pretty_link_url($slug) 539 { 442 public function get_pretty_link_url($slug, $esc_url=false) { 540 443 global $prli_blogurl; 541 444 542 445 $link = $this->getOneFromSlug($slug); 446 $pretty_link_url = $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug; 447 if($esc_url) { 448 $pretty_link_url = esc_url($pretty_link_url); 449 } 450 else { 451 $pretty_link_url = $pretty_link_url; 452 } 543 453 544 454 if( ( !isset($link->param_forwarding) || empty($link->param_forwarding) || $link->param_forwarding=='off' ) && 545 455 ( isset($link->redirect_type) && $link->redirect_type == 'pixel' ) ) { 546 return '<img src="'.$pr li_blogurl.PrliUtils::get_permalink_pre_slug_uri().$link->slug.'" width="1" height="1" style="display: none">';456 return '<img src="'.$pretty_link_url.'" width="1" height="1" style="display: none" />'; 547 457 } 548 458 else { 549 return $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug; 550 } 551 } 552 553 public function validate( $values ) 459 return $pretty_link_url; 460 } 461 } 462 463 /** 464 * Sanitize the given link options and return them 465 * 466 * @param array $values 467 * @return array 468 */ 469 public function sanitize($values) 470 { 471 $sanitized = array( 472 'redirect_type' => isset($values['redirect_type']) && is_string($values['redirect_type']) ? sanitize_key($values['redirect_type']) : '307', 473 'url' => isset($values['url']) && is_string($values['url']) ? esc_url_raw(trim($values['url'])) : '', 474 'slug' => isset($values['slug']) && is_string($values['slug']) ? sanitize_text_field($values['slug']) : '', 475 'name' => isset($values['name']) && is_string($values['name']) ? sanitize_text_field($values['name']) : '', 476 'description' => isset($values['description']) && is_string($values['description']) ? sanitize_textarea_field($values['description']) : '', 477 'group_id' => isset($values['group_id']) && is_numeric($values['group_id']) ? (int) $values['group_id'] : null, 478 'nofollow' => isset($values['nofollow']) ? 1 : 0, 479 'param_forwarding' => isset($values['param_forwarding']) ? 1 : 0, 480 'track_me' => isset($values['track_me']) ? 1 : 0, 481 'link_cpt_id' => isset($values['link_cpt_id']) && is_numeric($values['link_cpt_id']) ? (int) $values['link_cpt_id'] : 0 482 ); 483 484 return $sanitized; 485 } 486 487 public function validate( $values , $id = null ) 554 488 { 555 489 global $wpdb, $prli_utils, $prli_blogurl; 490 491 $values = $this->sanitize($values); 556 492 557 493 $errors = array(); … … 560 496 } 561 497 562 if( $values['slug'] == null || $values['slug'] == '' ) {563 $errors[] = __("Pretty Link can't be blank", 'pretty-link');564 }565 566 498 if( $values['url'] == $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri().$values['slug'] ) { 567 499 $errors[] = __("Target URL must be different than the Pretty Link", 'pretty-link'); … … 580 512 } 581 513 582 $ id = isset($values['id'])?$values['id']:null;583 if( !$prli_utils->slugIsAvailable($values['slug'],$id)) {584 $errors[] = __("This Pretty Link Slug is already taken. Check to make sure it isn't being used by another pretty link, post, page, category or tag slug. If none of these are true then check to see that this slug isn't the name of a file in the root folder of your wordpress install.", 'pretty-link');514 $slug_is_available = PrliUtils::is_slug_available($values['slug'],$id); 515 if(is_wp_error($slug_is_available)) { 516 $errors[] = $slug_is_available->get_error_message(); 585 517 } 586 518 … … 600 532 if(empty($urls)) { return false; } 601 533 602 $decoded_urls = array_map( create_function( '$url', 'return html_entity_decode(rawurldecode($url));' ), $urls ); 534 $decoded_urls = array_map( 535 function($url) { 536 return html_entity_decode(rawurldecode($url)); 537 }, 538 $urls 539 ); 603 540 604 541 // Filter out urls that are already Pretty Links … … 608 545 SELECT CONCAT(%s, li.slug) AS pretty_url 609 546 FROM {$this->table_name} AS li 610 WHERE li.slug {$where} 547 WHERE li.link_status='enabled' 548 AND li.slug {$where} 611 549 "; 612 550 $query = $wpdb->prepare($query, $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri()); … … 617 555 if(empty($decoded_urls)) { return false; } 618 556 619 $where = "IN (" . implode( ',', array_map( create_function( '$url', 'return "\"{$url}\"";' ), $decoded_urls ) ) . ")"; 557 $where = "IN (" . implode( ',', array_map( 558 function($url) { 559 return "\"{$url}\""; 560 }, 561 $decoded_urls ) ) . ")"; 620 562 621 563 $query = " … … 623 565 CONCAT(%s, li.slug) AS pretty_url 624 566 FROM {$this->table_name} AS li 625 WHERE li.url {$where} 567 WHERE li.link_status='enabled' 568 AND li.url {$where} 626 569 "; 627 570 $query = $wpdb->prepare($query, $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri()); … … 657 600 return "javascript:location.href='{$site_url}/index.php?action=prli_bookmarklet&k={$prli_options->bookmarklet_auth}&target_url='+escape(location.href);"; 658 601 } 602 603 public function get_link_from_cpt($cpt_id) { 604 global $wpdb; 605 606 $q = $wpdb->prepare(" 607 SELECT id 608 FROM {$this->table_name} 609 WHERE link_cpt_id=%d 610 ", 611 $cpt_id 612 ); 613 614 $link_id = $wpdb->get_var($q); 615 616 if(empty($link_id)) { 617 $link_id = 0; 618 } 619 620 return $link_id; 621 } 622 623 public function update_link_cpt($link_id, $cpt_id) { 624 global $wpdb; 625 626 $q = $wpdb->prepare(" 627 UPDATE {$this->table_name} 628 SET link_cpt_id=%d 629 WHERE id=%d 630 ", 631 $cpt_id, $link_id 632 ); 633 634 return $wpdb->get_var($q); 635 } 636 637 /** We do this directly in the database because wp_insert_post is very slow */ 638 public function create_cpt_for_link($title, $created_at, $updated_at) { 639 global $wpdb; 640 641 $inserted = $wpdb->insert( 642 $wpdb->posts, 643 array( 644 'post_title' => stripslashes($title), 645 'post_type' => PrliLink::$cpt, 646 'post_status' => 'publish', 647 'post_date' => $created_at, 648 'post_date_gmt' => get_gmt_from_date($created_at), 649 'post_modified' => $updated_at, 650 'post_modified_gmt' => get_gmt_from_date($updated_at), 651 'comment_status' => 'closed', 652 'ping_status' => 'closed' 653 ), 654 array('%s','%s','%s','%s','%s','%s','%s') 655 ); 656 657 return $inserted ? $wpdb->insert_id : false; 658 } 659 660 public function update_cpt_title($cpt_id, $title) { 661 global $wpdb; 662 663 $q = $wpdb->prepare(" 664 UPDATE {$wpdb->posts} 665 SET `post_title` = %s 666 WHERE `ID` = %d 667 AND `post_type` = %s 668 ", 669 stripslashes($title), 670 $cpt_id, 671 PrliLink::$cpt 672 ); 673 674 return $wpdb->query($q); 675 } 676 677 public function update_cpt_status($cpt_id, $status='publish') { 678 global $wpdb; 679 680 $q = $wpdb->prepare(" 681 UPDATE {$wpdb->posts} 682 SET `post_status` = %s 683 WHERE `ID` = %d 684 AND `post_type` = %s 685 ", 686 $status, 687 $cpt_id, 688 PrliLink::$cpt 689 ); 690 691 return $wpdb->query($q); 692 } 693 694 public function update_cpt_post_date($cpt_id, $now=false) { 695 global $wpdb; 696 697 if(empty($now)) { 698 $now = current_time('mysql'); 699 } 700 701 $wpdb->update( 702 $wpdb->posts, 703 array( 704 'post_date' => $now, 705 'post_date_gmt' => get_gmt_from_date($now) 706 ), 707 array( 708 'ID' => $cpt_id, 709 'post_type' => PrliLink::$cpt 710 ), 711 array('%s', '%s'), 712 array('%d', '%s') 713 ); 714 } 715 716 public function update_cpt_post_modified($cpt_id, $now=false) { 717 global $wpdb; 718 719 if(empty($now)) { 720 $now = current_time('mysql'); 721 } 722 723 $wpdb->update( 724 $wpdb->posts, 725 array( 726 'post_modified' => $now, 727 'post_modified_gmt' => get_gmt_from_date($now) 728 ), 729 array( 730 'ID' => $cpt_id, 731 'post_type' => PrliLink::$cpt 732 ), 733 array('%s', '%s'), 734 array('%d', '%s') 735 ); 736 } 737 738 /** For legacy handling of groups filter */ 739 public function get_all_legacy_groups() { 740 global $wpdb; 741 742 $prli_db = new PrliDb(); 743 744 $groups_table = "{$wpdb->prefix}prli_groups"; 745 $groups = array(); 746 747 if($prli_db->table_exists($groups_table)) { 748 $q = "SELECT * FROM {$groups_table} ORDER BY `name`"; 749 $groups = $wpdb->get_results($q); 750 } 751 752 return $groups; 753 } 659 754 } 660 755 -
pretty-link/trunk/app/models/PrliOptions.php
r1572224 r2124183 197 197 $this->prettybar_color = ''; 198 198 } 199 else if( !preg_match('/^#/',$this->prettybar_color)) {199 else if($this->prettybar_color && !preg_match('/^#/',$this->prettybar_color)) { 200 200 $this->prettybar_color = '#' . $this->prettybar_color; 201 201 } … … 209 209 $this->prettybar_text_color = '000000'; 210 210 } 211 else if( !preg_match('/^#/',$this->prettybar_text_color)) {211 else if($this->prettybar_text_color && !preg_match('/^#/',$this->prettybar_text_color)) { 212 212 $this->prettybar_text_color = '#' . $this->prettybar_text_color; 213 213 } … … 221 221 $this->prettybar_link_color = '0000ee'; 222 222 } 223 else if( !preg_match('/^#/',$this->prettybar_link_color)) {223 else if($this->prettybar_link_color && !preg_match('/^#/',$this->prettybar_link_color)) { 224 224 $this->prettybar_link_color = '#' . $this->prettybar_link_color; 225 225 } … … 233 233 $this->prettybar_hover_color = 'ababab'; 234 234 } 235 else if( !preg_match('/^#/',$this->prettybar_hover_color)) {235 else if($this->prettybar_hover_color && !preg_match('/^#/',$this->prettybar_hover_color)) { 236 236 $this->prettybar_hover_color = '#' . $this->prettybar_hover_color; 237 237 } … … 245 245 $this->prettybar_visited_color = '551a8b'; 246 246 } 247 else if( !preg_match('/^#/',$this->prettybar_visited_color)) {247 else if($this->prettybar_visited_color && !preg_match('/^#/',$this->prettybar_visited_color)) { 248 248 $this->prettybar_visited_color = '#' . $this->prettybar_visited_color; 249 249 } -
pretty-link/trunk/app/models/PrliUtils.php
r2108490 r2124183 84 84 } 85 85 86 public static function get_url_from_slug( $slug ) {87 global $prli_blogurl;88 return $prli_blogurl . self::get_permalink_pre_slug_uri() . $slug;89 }90 91 86 public static function debug_log($message) { 92 87 if(defined('WP_DEBUG') && WP_DEBUG) { … … 95 90 } 96 91 97 public static function slugIsAvailable( $slug, $id = '' ) { 92 public static function is_slug_available( $slug, $id = '' ) { 93 self::debug_log("*** In Slug is available for {$slug} & id=[{$id}]"); 98 94 global $wp_rewrite, $prli_link; 99 $url = self::get_ url_from_slug($slug);95 $url = self::get_pretty_link_url($slug); 100 96 101 97 if(empty($slug)) { 102 self::debug_log('SlugIsAvailable: $slug was empty'); 103 return false; 98 $error = __('The Slug can\'t be empty', 'pretty-link'); 99 self::debug_log("slug_empty: {$error}"); 100 return new WP_Error('slug_empty', $error); 104 101 } 105 102 … … 107 104 $filepath = ABSPATH . $slug; 108 105 if( file_exists($filepath) ) { 109 self::debug_log('SlugIsAvailable: There\'s already a file at: ' . $filepath); 110 return false; 106 $error = sprintf(__('There\'s a file this slug conflicts with: %s', 'pretty-link'), $filepath); 107 self::debug_log("slug_not_available: {$error}"); 108 return new WP_Error('slug_not_available', $error); 111 109 } 112 110 113 111 // Check other Pretty Links 114 if( empty($id) ) { 115 $this_link = $prli_link->getOneFromSlug( $slug ); 116 if( $this_link != false ) { 117 self::debug_log('SlugIsAvailable: There\'s already pretty link for slug: ' . $slug); 118 return false; 119 } 120 } 121 else { 122 $this_link = $prli_link->getOne( $id ); 123 $slug_link = $prli_link->getOneFromSlug( $slug ); 124 125 // check to see if the link is just being updated with the same slug 126 if( !empty($this_link) && !empty($slug_link) && $this_link->id === $slug_link->id ) { 127 return true; 128 } 129 } 130 131 // Check Rewrite Rules 132 $rules = $wp_rewrite->wp_rewrite_rules(); 133 //self::debug_log('SlugIsAvailable: Rewrite Rules: ' . self::object_to_string($rules)); 134 //unset($rules['([^/]+)(/[0-9]+)?/?$']); //Pretty sure this may nullify all the work below, but it's causing too many false positives somehow 135 136 foreach( $rules as $pattern => $query ) { 137 // just looking for the beginning of the pattern 138 if(isset($pattern[0]) && $pattern[0] != '^') { $pattern = '^' . $pattern; } 139 140 if( preg_match( "!{$pattern}!", $slug, $matches ) ) { 141 // Got a match. 142 // Trim the query of everything up to the '?'. (copied from url_to_postid) 143 $query = preg_replace("!^.+\?!", '', $query); 144 145 // Substitute the substring matches into the query. (copied from url_to_postid) 146 $query = addslashes(WP_MatchesMapRegex::apply($query, $matches)); 147 148 // Filter out non-public query vars (copied from url_to_postid) 149 global $wp; 150 parse_str( $query, $query_vars ); 151 $query = array(); 152 153 foreach ( (array) $query_vars as $key => $value ) { 154 if ( in_array( $key, $wp->public_query_vars ) ) { 155 $query[$key] = $value; 156 if ( isset( $post_type_query_vars[$key] ) ) { 157 $query['post_type'] = $post_type_query_vars[$key]; 158 $query['name'] = $value; 159 } 160 } 161 } 162 163 // Do this query bro 164 $wpq = new WP_Query( $query ); 165 166 // If we have a resolved post (applicable for tag, category & author pages too) then it's taken 167 if( isset($wpq->post) && isset($wpq->posts) && !empty($wpq->posts) ) { 168 self::debug_log('SlugIsAvailable: The path resolved to a post in wp rewrite rules for pattern: /'.$pattern.'/ query: '.self::object_to_string($query)); 169 self::debug_log(self::object_to_string($wpq->post)); 170 return false; 171 } 112 $slug_link = $prli_link->getOneFromSlug( $slug ); 113 self::debug_log(print_r($slug_link,true)); 114 if(!empty($slug_link) && ($id != $slug_link->id)) { 115 $error = sprintf(__('This Pretty Link Slug is already taken. There\'s already another pretty link with this slug: %s', 'pretty-link'), $slug); 116 self::debug_log("slug_not_available: {$error}"); 117 return new WP_Error('slug_not_available', $error); 118 } 119 120 // Check any other URLs 121 $resp = wp_remote_head($url); 122 123 self::debug_log("****** wp_remote_head returned: " . print_r($resp, true)); 124 125 if(!is_wp_error($resp)) { 126 if($resp['headers'] instanceof Requests_Utility_CaseInsensitiveDictionary) { 127 $resp_headers = $resp['headers']->getAll(); 128 } 129 else { 130 $resp_headers = $resp['headers']; 131 } 132 if($resp['response']['code'] == 200) { 133 $error = sprintf(__('This Pretty Link Slug is already taken. The path resolved to URL: %s', 'pretty-link'), $url); 134 } 135 else if(in_array($resp['response']['code'], array(301,302,307)) && 136 isset($resp_headers['location']) && 137 preg_match('!^' . preg_quote($url,'!') . '/?$!', $resp_headers['location'])) { 138 $error = sprintf(__('This Pretty Link Slug is already taken. The path redirected to URL: %s', 'pretty-link'), $resp_headers['location']); 139 } 140 141 if(isset($error)) { 142 self::debug_log("slug_not_available: {$error}"); 143 return new WP_Error('slug_not_available', $error); 172 144 } 173 145 } … … 252 224 global $wpdb, $prli_click, $prli_options, $prli_link, $plp_update; 253 225 254 $query = "SELECT * FROM ".$prli_link->table_name." WHERE slug='$slug' LIMIT 1"; 226 $query = $wpdb->prepare(" 227 SELECT * 228 FROM {$prli_link->table_name} 229 WHERE slug=%s 230 AND link_status='enabled' 231 LIMIT 1 232 ", 233 $slug 234 ); 235 255 236 $pretty_link = $wpdb->get_row($query); 256 237 $pretty_link_target = apply_filters( 'prli_target_url', array( 'url' => $pretty_link->url, 'link_id' => $pretty_link->id, 'redirect_type' => $pretty_link->redirect_type ) ); … … 544 525 } 545 526 546 public function should_install_pro_db() {547 global $plp_db_version;548 $old_pro_db_version = get_option('prlipro_db_version');549 550 if($plp_db_version != $old_pro_db_version) { return true; }551 552 return false;553 }554 555 public function install_pro_db() {556 global $wpdb, $plp_db_version;557 558 $upgrade_path = ABSPATH . 'wp-admin/includes/upgrade.php';559 require_once($upgrade_path);560 561 // Pretty Links Pro Tables562 $keywords_table = "{$wpdb->prefix}prli_keywords";563 $post_keywords_table = "{$wpdb->prefix}prli_post_keywords";564 $post_urls_table = "{$wpdb->prefix}prli_post_urls";565 $reports_table = "{$wpdb->prefix}prli_reports";566 $report_links_table = "{$wpdb->prefix}prli_report_links";567 $link_rotations_table = "{$wpdb->prefix}prli_link_rotations";568 $clicks_rotations_table = "{$wpdb->prefix}prli_clicks_rotations";569 570 // This was introduced in WordPress 3.5571 // $char_col = $wpdb->get_charset_collate(); //This doesn't work for most non english setups572 $char_col = "";573 $collation = $wpdb->get_row("SHOW FULL COLUMNS FROM {$wpdb->posts} WHERE field = 'post_content'");574 575 if(isset($collation->Collation)) {576 $charset = explode('_', $collation->Collation);577 578 if(is_array($charset) && count($charset) > 1) {579 $charset = $charset[0]; //Get the charset from the collation580 $char_col = "DEFAULT CHARACTER SET {$charset} COLLATE {$collation->Collation}";581 }582 }583 584 //Fine we'll try it your way this time585 if(empty($char_col)) { $char_col = $wpdb->get_charset_collate(); }586 587 //Fix for large indexes588 $wpdb->query("SET GLOBAL innodb_large_prefix=1");589 590 /* Create/Upgrade Keywords Table */591 $sql = "592 CREATE TABLE {$keywords_table} (593 id int(11) NOT NULL auto_increment,594 text varchar(255) NOT NULL,595 link_id int(11) NOT NULL,596 created_at datetime NOT NULL,597 PRIMARY KEY (id),598 KEY link_id (link_id),599 KEY text (text)600 ) {$char_col};601 ";602 603 dbDelta($sql);604 605 /* Create/Upgrade Keywords Table */606 $sql = "607 CREATE TABLE {$post_keywords_table} (608 id int(11) NOT NULL auto_increment,609 keyword_id int(11) NOT NULL,610 post_id int(11) NOT NULL,611 PRIMARY KEY (id),612 KEY keyword_id (keyword_id),613 KEY post_id (post_id),614 UNIQUE KEY post_keyword_index (keyword_id,post_id)615 ) {$char_col};616 ";617 618 dbDelta($sql);619 620 /* Create/Upgrade URLs Table */621 $sql = "622 CREATE TABLE {$post_urls_table} (623 id int(11) NOT NULL auto_increment,624 url_id int(11) NOT NULL,625 post_id int(11) NOT NULL,626 PRIMARY KEY (id),627 KEY url_id (url_id),628 KEY post_id (post_id),629 UNIQUE KEY post_url_index (url_id,post_id)630 ) {$char_col};631 ";632 633 dbDelta($sql);634 635 /* Create/Upgrade Reports Table */636 $sql = "637 CREATE TABLE {$reports_table} (638 id int(11) NOT NULL auto_increment,639 name varchar(255) NOT NULL,640 goal_link_id int(11) default NULL,641 created_at datetime NOT NULL,642 PRIMARY KEY (id),643 KEY goal_link_id (goal_link_id),644 KEY name (name)645 ) {$char_col};646 ";647 648 dbDelta($sql);649 650 /* Create/Upgrade Reports Table */651 $sql = "652 CREATE TABLE {$report_links_table} (653 id int(11) NOT NULL auto_increment,654 report_id int(11) NOT NULL,655 link_id int(11) NOT NULL,656 created_at datetime NOT NULL,657 PRIMARY KEY (id),658 KEY report_id (report_id),659 KEY link_id (link_id)660 ) {$char_col};661 ";662 663 dbDelta($sql);664 665 /* Create/Upgrade Link Rotations Table */666 $sql = "667 CREATE TABLE {$link_rotations_table} (668 id int(11) NOT NULL auto_increment,669 url varchar(255) default NULL,670 weight int(11) default 0,671 r_index int(11) default 0,672 link_id int(11) NOT NULL,673 created_at datetime NOT NULL,674 PRIMARY KEY (id),675 KEY link_id (link_id),676 KEY url (url),677 KEY weight (weight),678 KEY r_index (r_index)679 ) {$char_col};680 ";681 682 dbDelta($sql);683 684 /* Create/Upgrade Clicks / Rotations Table */685 $sql = "686 CREATE TABLE {$clicks_rotations_table} (687 id int(11) NOT NULL auto_increment,688 click_id int(11) NOT NULL,689 link_id int(11) NOT NULL,690 url text NOT NULL,691 PRIMARY KEY (id),692 KEY click_id (click_id),693 KEY link_id (link_id)694 ) {$char_col};695 ";696 697 dbDelta($sql);698 699 /***** SAVE DB VERSION *****/700 update_option('prlipro_db_version', $plp_db_version);701 }702 703 527 // be careful with this one -- I use it to forceably reinstall pretty link pro 704 528 public function delete_dir($dir) { … … 794 618 if(!empty($char_col)) 795 619 { 796 $prli_table_names = array( "{$wpdb->prefix}prli_groups", 797 "{$wpdb->prefix}prli_clicks", 620 $prli_table_names = array( "{$wpdb->prefix}prli_clicks", 798 621 "{$wpdb->prefix}prli_links", 799 622 "{$wpdb->prefix}prli_link_metas", … … 805 628 "{$wpdb->prefix}prli_clicks_rotations" ); 806 629 630 $prli_db = new PrliDb(); 631 if ($prli_db->table_exists("{$wpdb->prefix}prli_groups")) { 632 $prli_table_names[] = "{$wpdb->prefix}prli_groups"; 633 } 634 807 635 foreach($prli_table_names as $prli_table_name) 808 636 { … … 869 697 $query = $wpdb->prepare($query,'prli-url-aliases'); 870 698 $results = $wpdb->query($query); 699 } 700 701 if($db_version && $db_version < 19) { 702 // Get 1000 links at a time 703 $q = " 704 SELECT * 705 FROM {$prli_link->table_name} 706 WHERE link_cpt_id IS NULL 707 OR link_cpt_id <= 0 708 ORDER BY created_at DESC 709 LIMIT 1000 710 "; 711 712 $count_q = " 713 SELECT COUNT(*) 714 FROM {$prli_link->table_name} 715 WHERE link_cpt_id IS NULL 716 OR link_cpt_id <= 0 717 "; 718 719 while(0 < ($count = $wpdb->get_var($count_q))) { 720 721 $links = $wpdb->get_results($q); 722 723 // Loop through Links in Link Table 724 foreach($links as $link) { 725 // If there's already a CPT associated then continue 726 if($link->link_cpt_id > 0) { 727 continue; 728 } 729 730 $cpt_id = $prli_link->create_cpt_for_link($link->name, $link->created_at, $link->updated_at); 731 732 if($cpt_id == false) { 733 PrliUtils::debug_log("Unable to create CPT Post for Link (Migration)"); 734 } 735 736 // update the link db record with the Link CPT ID 737 $prli_link->update_link_cpt($link->id, $cpt_id); 738 } 739 } 871 740 } 872 741 } … … 1007 876 } 1008 877 878 /** Attempt to get a page title from the target url */ 1009 879 public static function get_page_title($url, $slug='') { 1010 880 $title = ''; … … 1020 890 // Look for <title>(.*?)</title> in the text 1021 891 if($data and preg_match('#<title>[\s\n\r]*?(.*?)[\s\n\r]*?</title>#im', $data, $matches)) { 1022 $title = trim($matches[1]);892 $title = html_entity_decode(trim($matches[1])); 1023 893 } 1024 894 … … 1043 913 public static function is_url($str) { 1044 914 //For now we're not going to validate this - there's too many possible protocols/schemes to validate now 1045 return true;1046 915 1047 916 // This uses the @diegoperini URL matching regex adapted for PHP from https://gist.github.com/dperini/729294 1048 // return preg_match('_^(?::/?/?)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]-*)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]-*)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$_iuS', $str);917 //return apply_filters('prli_is_valid_url', preg_match('%^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\x{00a1}-\x{ffff}][a-z0-9\x{00a1}-\x{ffff}_-]{0,62})?[a-z0-9\x{00a1}-\x{ffff}]\.)+(?:[a-z\x{00a1}-\x{ffff}]{2,})\.?))(?::\d{2,5})?(?:[/?#]\S*)?$%iuS', $str)); 1049 918 1050 919 //Let's see how PHP's built in validator does instead? 1051 920 //return apply_filters('prli_is_valid_url', (filter_var($str, FILTER_VALIDATE_URL) !== FALSE), $str); 921 // 922 923 // Let's just make sure there's a mailto: or // somewhere here 924 return apply_filters('prli_is_valid_url', preg_match('%(^mailto:|//)%', $str)); 1052 925 } 1053 926 … … 1060 933 } 1061 934 1062 public static function get_plp_permalink($link) { 1063 global $prli_blogurl; 1064 935 public static function get_pretty_link_url($slug, $path_only=false) { 1065 936 $struct = PrliUtils::get_permalink_pre_slug_uri(); 1066 937 1067 if(isset($link->slug)) 1068 return "{$prli_blogurl}{$struct}{$link->slug}"; 1069 else 1070 return false; 938 if(isset($slug)) { 939 $path = "{$struct}{$slug}"; 940 return ($path_only ? $path : home_url($path)); 941 } 942 943 return false; 1071 944 } 1072 945 … … 1230 1103 // Set the default message 1231 1104 if(empty($message)) { 1232 $message = sprintf( __( 'Get started by %1$sadding a URL%2$s that you want to turn into a pretty link.<br/>' . 1233 'Come back to see how many times it was clicked.' , 'pretty-link' ), 1234 '<a href="' . admin_url( 'admin.php?page=add-new-pretty-link' ) . '">', '</a>' ); 1105 $message = sprintf( 1106 // translators: %1$s: open link tag, %2$s: close link tag, %3$s: br tag 1107 esc_html__( 'Get started by %1$sadding a URL%2$s that you want to turn into a pretty link.%3$sCome back to see how many times it was clicked.' , 'pretty-link' ), 1108 '<a href="' . esc_url(admin_url( 'admin.php?page=add-new-pretty-link' )) . '">', 1109 '</a>', 1110 '<br>' 1111 ); 1235 1112 } 1236 1113 … … 1388 1265 return self::ts_to_mysql_date(time(),$format); 1389 1266 } 1267 1268 public static function is_post_request() { 1269 if(isset($_SERVER['REQUEST_METHOD'])) { 1270 return (strtolower($_SERVER['REQUEST_METHOD']) == 'post'); 1271 } 1272 else { 1273 return (isset($_POST) && !empty($_POST)); 1274 } 1275 } 1276 1277 public static function is_get_request() { 1278 if(isset($_SERVER['REQUEST_METHOD'])) { 1279 return (strtolower($_SERVER['REQUEST_METHOD']) == 'get'); 1280 } 1281 else { 1282 return (!isset($_GET) || empty($_GET)); 1283 } 1284 } 1285 1286 /** 1287 * Sanitize the HTML in the given string 1288 * 1289 * @param string $value 1290 * @return string 1291 */ 1292 public static function sanitize_html($value) { 1293 return current_user_can('unfiltered_html') ? $value : wp_kses_post($value); 1294 } 1295 1296 /** 1297 * Ensure the given number $x is between $min and $max inclusive 1298 * 1299 * @param mixed $x 1300 * @param mixed $min 1301 * @param mixed $max 1302 * @return mixed 1303 */ 1304 public static function clamp($x, $min, $max) { 1305 return min(max($x, $min), $max); 1306 } 1390 1307 } 1391 1308 -
pretty-link/trunk/app/views/admin/errors.php
r1572224 r2124183 5 5 <ul> 6 6 <?php foreach($errors as $error): ?> 7 <li><strong><?php _e('ERROR', 'pretty-link'); ?></strong>: <?php print $error; ?></li>7 <li><strong><?php esc_html_e('ERROR', 'pretty-link'); ?></strong>: <?php echo esc_html($error); ?></li> 8 8 <?php endforeach; ?> 9 9 </ul> … … 12 12 <?php if( isset($message) and !empty($message) ): ?> 13 13 <div class="updated notice notice-success is-dismissible"> 14 <p><?php echo $message; ?></p>14 <p><?php echo esc_html($message); ?></p> 15 15 </div> 16 16 <?php endif; ?> -
pretty-link/trunk/app/views/admin/popups/rating.php
r1601826 r2124183 1 1 <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?> 2 3 <?php $plp_update = new PrliUpdateController(); ?> 2 4 3 5 <div id="prli-rating-popup" class="mfp-hide prli-popup prli-auto-open"> 4 6 <p><img src="<?php echo PRLI_IMAGES_URL . '/pl-logo-horiz-RGB.svg'; ?>" width="200" height="32" /></p> 5 <div> </div> 6 <h2><?php _e('Rate Pretty Link', 'pretty-link'); ?></h2> 7 <p><?php _e('If you enjoy using Pretty Link would you mind taking a moment to rate it on WordPress.org? It won\'t take more than a minute.', 'pretty-link'); ?></p> 8 <p><?php _e('Thanks for your support!', 'pretty-link'); ?></p> 9 <div> </div> 10 <div> </div> 7 <div id="prli-rating-stage-one"> 8 <center><h2><?php esc_html_e('Are you enjoying using Pretty Links?', 'pretty-link'); ?></h2></center> 9 <div> </div> 11 10 12 <center> 13 <button data-popup="rating" class="prli-delay-popup button"><?php _e('Remind Me Later', 'pretty-link'); ?></button> 14 <button data-popup="rating" data-href="https://wordpress.org/plugins/pretty-link/" class="prli-delay-popup button-primary"><?php _e('Review Pretty Link', 'pretty-link'); ?></button> 11 <center> 12 <button data-popup="rating" class="prli-rating-enjoy-yes-popup button-primary"><?php esc_html_e('Yes', 'pretty-link'); ?></button> 13 <button data-popup="rating" class="prli-rating-enjoy-no-popup button"><?php esc_html_e('No', 'pretty-link'); ?></button> 14 </center> 15 </div> 16 <div id="prli-rating-stage-two-yes" class="prli-hidden"> 17 <h2><?php esc_html_e('Rate Pretty Links', 'pretty-link'); ?></h2> 18 <p><?php esc_html_e('If you enjoy using Pretty Links would you mind taking a moment to rate it on WordPress.org? It won\'t take more than a minute.', 'pretty-link'); ?></p> 19 <p><?php esc_html_e('Thanks for your support!', 'pretty-link'); ?></p> 15 20 <div> </div> 16 <a href="" data-popup="rating" class="prli-stop-popup"><?php _e('Never Remind Me Again', 'pretty-link'); ?></a> 17 </center> 21 <div> </div> 22 23 <center> 24 <button data-popup="rating" class="prli-delay-popup button"><?php esc_html_e('Remind Me Later', 'pretty-link'); ?></button> 25 <button data-popup="rating" data-href="https://prettylinks.com/pl/footer/review" class="prli-stop-popup button-primary"><?php esc_html_e('Review Pretty Links', 'pretty-link'); ?></button> 26 </center> 27 </div> 28 <div id="prli-rating-stage-two-no" class="prli-hidden"> 29 <h2><?php esc_html_e('Leave Feedback', 'pretty-link'); ?></h2> 30 <p><?php esc_html_e('To help us improve Pretty Links, would you mind taking a moment to leave feedback?', 'pretty-link'); ?></p> 31 <p><?php esc_html_e('Thanks for your support!', 'pretty-link'); ?></p> 32 <div> </div> 33 <div> </div> 34 35 <center> 36 <button data-popup="rating" class="prli-delay-popup button"><?php esc_html_e('Remind Me Later', 'pretty-link'); ?></button> 37 <a href="https://prettylinks.com/feedback/" target="_blank" class="prli-leave-feedback button-primary"><?php esc_html_e('Leave Feedback', 'pretty-link'); ?></a> 38 <?php if($plp_update->is_installed()): ?> 39 <div> </div> 40 <a href="" data-popup="rating" class="prli-stop-popup"><?php esc_html_e('Never Remind Me Again', 'pretty-link'); ?></a> 41 <?php endif; ?> 42 </center> 43 </div> 18 44 19 45 </div> -
pretty-link/trunk/app/views/admin/popups/upgrade.php
r1722928 r2124183 2 2 3 3 <div id="prli-upgrade-popup" class="mfp-hide prli-popup prli-auto-open"> 4 <p><img src="<?php echo PRLI_IMAGES_URL . '/pl-logo-horiz-RGB.svg'; ?>" width="200" height="32" /></p>4 <p><img src="<?php echo esc_url(PRLI_IMAGES_URL . '/pl-logo-horiz-RGB.svg'); ?>" width="200" height="32" /></p> 5 5 <div> </div> 6 <h2><?php _e('Upgrade Pretty LinkPRO', 'pretty-link'); ?></h2>7 <p><?php _e('Upgrading will enable youto:', 'pretty-link'); ?><br/>6 <h2><?php esc_html_e('Upgrade to Pretty Links PRO', 'pretty-link'); ?></h2> 7 <p><?php esc_html_e('Unlock Pretty Links\' PRO features and you\'ll be able to:', 'pretty-link'); ?><br/> 8 8 <ul> 9 <li> • <?php _e('Auto-replace keywords throughout your site with Pretty Links', 'pretty-link'); ?></li>10 <li> • <?php _e('Protect your affiliate links by using Cloaked Redirects', 'pretty-link'); ?></li>11 <li> • <?php _e('Redirect based on a visitor\'s location', 'pretty-link'); ?></li>12 <li> • <?php _e('Auto-prettylink your Pages & Posts', 'pretty-link'); ?></li>13 <li> • <?php _e('Find out what works and what doesn\'t by split testing your links', 'pretty-link'); ?></li>14 <li> • <?php _e('And much, much more!', 'pretty-link'); ?></li>9 <li> • <?php esc_html_e('Monetize existing content with automated Pretty Link placement', 'pretty-link'); ?></li> 10 <li> • <?php esc_html_e('Redirect with cloaking, Javascript or Meta-refresh', 'pretty-link'); ?></li> 11 <li> • <?php esc_html_e('Redirect by location, time, device or rotation', 'pretty-link'); ?></li> 12 <li> • <?php esc_html_e('Expire your Pretty Links', 'pretty-link'); ?></li> 13 <li> • <?php esc_html_e('Split-test your Pretty Links', 'pretty-link'); ?></li> 14 <li> • <?php esc_html_e('And much, much more!', 'pretty-link'); ?></li> 15 15 </ul> 16 16 </p> 17 <p><?php _e('Plus, upgrading is fast, easy and won\'t disrupt any of your existing links or data. And there\'s even a 14 day money back guarantee.', 'pretty-link'); ?></p>18 <p><?php _e('We think you\'ll love it!', 'pretty-link'); ?></p>17 <p><?php esc_html_e('Plus, upgrading is fast, easy and won\'t disrupt any of your existing links or data.', 'pretty-link'); ?></p> 18 <p><?php esc_html_e('We think you\'ll love it!', 'pretty-link'); ?></p> 19 19 <div> </div> 20 20 <div> </div> 21 21 22 22 <center> 23 <button data-popup="upgrade" class="prli-delay-popup button"><?php _e('Remind Me Later', 'pretty-link'); ?></button> 24 <button data-popup="upgrade" data-href="https://prettylinks.com/pl/popup/upgrade" class="prli-delay-popup button-primary"><?php _e('Upgrade to Pretty Links Pro', 'pretty-link'); ?></button> 25 <div> </div> 26 <a href="" data-popup="upgrade" class="prli-stop-popup"><?php _e('Never Remind Me Again', 'pretty-link'); ?></a> 23 <button data-popup="upgrade" data-href="https://prettylinks.com/pl/popup/upgrade" class="prli-delay-popup button-primary"><?php esc_html_e('Upgrade to Pretty Links Pro', 'pretty-link'); ?></button> 24 <button data-popup="upgrade" class="prli-delay-popup button"><?php esc_html_e('Maybe Later', 'pretty-link'); ?></button> 27 25 </center> 28 26 -
pretty-link/trunk/app/views/admin/update/activation_warning.php
r1722928 r2124183 2 2 <?php global $plp_update; ?> 3 3 <?php if(defined('PRETTYLINK_LICENSE_KEY') && isset($error)): ?> 4 <div class="prli-red-notice"><?php printf(__('Error with PRETTYLINK_LICENSE_KEY: %s', 'pretty-link'), $error); ?></div> 4 <div class="prli-red-notice"> 5 <?php 6 printf( 7 esc_html__('Error with PRETTYLINK_LICENSE_KEY: %s', 'pretty-link'), 8 esc_html($error) 9 ); 10 ?> 11 </div> 5 12 <?php elseif($plp_update->was_activated_with_username_and_password()): ?> 6 13 <div class="prli-red-notice"> 7 <h2><?php _e('Pretty Links Pro isn\'t able to get critical automatic updates', 'pretty-link'); ?></h2> 8 <p><?php _e('It looks like you used to have Pretty Links Pro activated with a username and password but now you need a license key to activate it.', 'pretty-link'); ?></p> 9 <p><strong><?php printf(__('You can get your license key by logging in at %1$sPrettyLinkPro.com.%2$s', 'pretty-link'), '<a href="https://prettylinks.com/activation-warning/account" target="_blank">','</a>'); ?></strong></p> 10 <p><?php printf(__('After you paste your license key on the %1$s"Pretty Link" -> "Activate Pro" admin page,%2$s you\'ll start getting updates again.', 'pretty-link'), '<a href="'.$plp_update->activate_page_url().'">','</a>'); ?></p> 14 <h2><?php esc_html_e('Pretty Links Pro isn\'t able to get critical automatic updates', 'pretty-link'); ?></h2> 15 <p><?php esc_html_e('It looks like you used to have Pretty Links Pro activated with a username and password but now you need a license key to activate it.', 'pretty-link'); ?></p> 16 <p> 17 <strong> 18 <?php 19 printf( 20 // translators: %1$s: open link tag, %2$s: close link tag 21 esc_html__('You can get your license key by logging in at %1$sPrettyLinkPro.com.%2$s', 'pretty-link'), 22 '<a href="https://prettylinks.com/activation-warning/account" target="_blank">', 23 '</a>' 24 ); 25 ?> 26 </strong> 27 </p> 28 <p> 29 <?php 30 printf( 31 // translators: %1$s: open link tag, %2$s: close link tag 32 esc_html__('After you paste your license key on the %1$s"Pretty Link" -> "Activate Pro" admin page,%2$s you\'ll start getting updates again.', 'pretty-link'), 33 sprintf('<a href="%s">', esc_url($plp_update->activate_page_url())), 34 '</a>' 35 ); 36 ?> 37 </p> 11 38 </div> 12 39 <?php else: ?> 13 40 <div class="prli-red-notice"> 14 <h2><?php _e('Pretty Links Pro isn\'t able to get critical automatic updates', 'pretty-link'); ?></h2> 15 <p><strong><?php printf(__('You can retrieve or purchase a license key at %1$sPrettyLinkPro.com%2$s to enable automatic updates today.', 'pretty-link'), '<a href="https://prettylinks.com/pl/activation-warning/buy" target="_blank">','</a>'); ?></strong></p> 16 <p><?php printf(__('After you paste your license key on the %1$s"Pretty Link" -> "Activate Pro" admin page,%2$s you\'ll start getting automatic updates.', 'pretty-link'), '<a href="'.$plp_update->activate_page_url().'">','</a>'); ?></p> 41 <h2><?php esc_html_e('Pretty Links Pro isn\'t able to get critical automatic updates', 'pretty-link'); ?></h2> 42 <p> 43 <strong> 44 <?php 45 printf( 46 // translators: %1$s: open link tag, %2$s: close link tag 47 esc_html__('You can retrieve or purchase a license key at %1$sPrettyLinks.com%2$s to enable automatic updates today.', 'pretty-link'), 48 '<a href="https://prettylinks.com/pl/activation-warning/buy" target="_blank">', 49 '</a>' 50 ); 51 ?> 52 </strong> 53 </p> 54 <p> 55 <?php 56 printf( 57 // translators: %1$s: open link tag, %2$s: close link tag 58 esc_html__('After you paste your license key on the %1$s"Pretty Links" -> "Activate Pro" admin page,%2$s you\'ll start getting automatic updates.', 'pretty-link'), 59 sprintf('<a href="%s">', esc_url($plp_update->activate_page_url())), 60 '</a>' 61 ); 62 ?> 63 </p> 17 64 </div> 18 65 <?php endif; ?> 19 -
pretty-link/trunk/app/views/admin/update/addon_popup.php
r1722928 r2124183 2 2 3 3 <div class="prli-admin-notice prli-auto-open mfp-hide prli-white-popup prli-popup-leftalign"> 4 <h2 class="prli_error" style="text-align: center !important; padding-bottom: 15px !important; padding-top: 15px !important"><i class="mp-icon-attention"> </i> <?php _e('ACTION REQUIRED', 'pretty-link'); ?></h2>5 <p><?php printf(__('The %s features in your Pretty Link options have been moved from Pretty Link into a separate plugin.', 'pretty-link'), $a->name); ?></p>6 <p><?php __('Why you ask? Well, it\'s to streamline and increase the performance of Pretty Link for you.', 'pretty-link'); ?></p>4 <h2 class="prli_error" style="text-align: center !important; padding-bottom: 15px !important; padding-top: 15px !important"><i class="mp-icon-attention"> </i> <?php esc_html_e('ACTION REQUIRED', 'pretty-link'); ?></h2> 5 <p><?php echo esc_html(sprintf(__('The %s features in your Pretty Link options have been moved from Pretty Link into a separate plugin.', 'pretty-link'), $a->name)); ?></p> 6 <p><?php esc_html_e('Why you ask? Well, it\'s to streamline and increase the performance of Pretty Link for you.', 'pretty-link'); ?></p> 7 7 8 8 <?php if($installed): ?> 9 <p><?php printf(__('And good for you, it looks like you\'ve already got the %1$s Add-on installed. Just click the "Activate %2$s Add-on" button below and you\'ll get all these features back now.', 'pretty-link'), $a->name, $a->name); ?></p>9 <p><?php echo esc_html(sprintf(__('And good for you, it looks like you\'ve already got the %1$s Add-on installed. Just click the "Activate %2$s Add-on" button below and you\'ll get all these features back now.', 'pretty-link'), $a->name, $a->name)); ?></p> 10 10 <?php else: ?> 11 <p><?php printf(__('Luckily it\'s easy to get these features back now. Just click the "Install %s Add-on" button below.', 'pretty-link'), $a->name); ?></p> 12 <p><?php printf(__('If you have problems with the auto-install please refer to %1$sthe user manual%2$s for manual install instructions.', 'pretty-link'), '<a href="https://prettylinks.com/pl/addon-popup/um/manual-installation" target="_blank">', '</a>'); ?></p> 11 <p><?php echo esc_html(sprintf(__('Luckily it\'s easy to get these features back now. Just click the "Install %s Add-on" button below.', 'pretty-link'), $a->name)); ?></p> 12 <p> 13 <?php 14 printf( 15 // translators: %1$s: open link tag, %2$s: close link tag 16 esc_html__('If you have problems with the auto-install please refer to %1$sthe user manual%2$s for manual install instructions.', 'pretty-link'), 17 '<a href="https://prettylinks.com/pl/addon-popup/um/manual-installation" target="_blank">', 18 '</a>' 19 ); 20 ?> 21 </p> 13 22 <?php endif; ?> 14 23 <br/> 15 24 <center> 16 <div data-addon="<?php echo $k; ?>">25 <div data-addon="<?php echo esc_attr($k); ?>"> 17 26 <?php if($installed): ?> 18 <button data-href="<?php echo MeprAddonsHelper::activate_url("pretty-link-{$k}/main.php"); ?>" class="prli-btn prli-left-margin prli-addon-activate"><?php printf(__('Activate %s Add-on', 'pretty-link'), $a->name); ?></button>27 <button data-href="<?php echo esc_url(MeprAddonsHelper::activate_url("pretty-link-{$k}/main.php")); ?>" class="prli-btn prli-left-margin prli-addon-activate"><?php echo esc_html(sprintf(__('Activate %s Add-on', 'pretty-link'), $a->name)); ?></button> 19 28 <?php else: ?> 20 <button data-href="<?php echo MeprAddonsHelper::install_url('pretty-link-'.$k); ?>" class="prli-btn prli-left-margin prli-addon-install"><?php printf(__('Install %s Add-on', 'pretty-link'), $a->name); ?></button>29 <button data-href="<?php echo esc_url(MeprAddonsHelper::install_url('pretty-link-'.$k)); ?>" class="prli-btn prli-left-margin prli-addon-install"><?php echo esc_html(sprintf(__('Install %s Add-on', 'pretty-link'), $a->name)); ?></button> 21 30 <?php endif; ?> 22 <button class="prli-btn prli-left-margin prli-addon-stop-notices"><?php _e('Don\'t Show This Message Again', 'pretty-link'); ?></button>31 <button class="prli-btn prli-left-margin prli-addon-stop-notices"><?php esc_html_e('Don\'t Show This Message Again', 'pretty-link'); ?></button> 23 32 </div> 24 33 </center> -
pretty-link/trunk/app/views/admin/update/addons.php
r1572224 r2124183 1 1 <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?> 2 2 3 <div class="prli-page-title"><?php _e('Pretty Link Add-ons', 'pretty-link'); ?></div>3 <div class="prli-page-title"><?php esc_html_e('Pretty Link Add-ons', 'pretty-link'); ?></div> 4 4 5 5 <?php $addons = PrliUpdateController::addons(true); ?> 6 6 7 7 <?php if(empty($addons)): ?> 8 <h3><?php _e('There were no Add-ons found for your license or lack thereof...', 'pretty-link'); ?></h3>8 <h3><?php esc_html_e('There were no Add-ons found for your license or lack thereof...', 'pretty-link'); ?></h3> 9 9 <?php else: ?> 10 10 <table class="widefat"> … … 12 12 <thead> 13 13 <tr> 14 <th><?php _e('Add-on', 'pretty-link'); ?></th>15 <th><?php _e('Description', 'pretty-link'); ?></th>16 <th><?php _e('Install', 'pretty-link'); ?></th>14 <th><?php esc_html_e('Add-on', 'pretty-link'); ?></th> 15 <th><?php esc_html_e('Description', 'pretty-link'); ?></th> 16 <th><?php esc_html_e('Install', 'pretty-link'); ?></th> 17 17 </tr> 18 18 </thead> … … 37 37 <?php 38 38 39 echo isset($info->extra_info->list_title) ? $info->extra_info->list_title : $info->product_name;39 echo esc_html(isset($info->extra_info->list_title) ? $info->extra_info->list_title : $info->product_name); 40 40 41 41 if($update_available) { 42 echo ' ' . __('(Update Available)', 'pretty-link');42 echo ' ' . esc_html__('(Update Available)', 'pretty-link'); 43 43 } 44 44 ?> 45 45 </strong> 46 46 </td> 47 <td><?php echo $info->extra_info->description; ?></td>47 <td><?php echo esc_html($info->extra_info->description); ?></td> 48 48 <td> 49 49 <?php if($installed && $active): ?> 50 <a class="button" href="" style="pointer-events: none;" disabled><?php _e('Installed & Active', 'pretty-link'); ?></a>50 <a class="button" href="" style="pointer-events: none;" disabled><?php esc_html_e('Installed & Active', 'pretty-link'); ?></a> 51 51 <?php elseif($installed && !$active): ?> 52 <a class="button" href="" style="pointer-events: none;" disabled><?php _e('Installed & Inactive', 'pretty-link'); ?></a>52 <a class="button" href="" style="pointer-events: none;" disabled><?php esc_html_e('Installed & Inactive', 'pretty-link'); ?></a> 53 53 <?php else: ?> 54 <a class="button button-primary" href="<?php echo PrliAddonsHelper::install_url($slug); ?>"><?php_e('Install', 'pretty-link'); ?></a>54 <a class="button button-primary" href="<?php echo esc_url(PrliAddonsHelper::install_url($slug)); ?>"><?php esc_html_e('Install', 'pretty-link'); ?></a> 55 55 <?php endif; ?> 56 56 </td> -
pretty-link/trunk/app/views/admin/update/edge_updates.php
r1722928 r2124183 1 1 <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?> 2 2 <?php global $plp_update; ?> 3 <div id="<?php echo $plp_update->edge_updates_str; ?>-wrap">4 <input type="checkbox" id="<?php echo $plp_update->edge_updates_str; ?>" data-nonce="<?php echo wp_create_nonce('wp-edge-updates'); ?>" <?php checked($plp_update->edge_updates); ?>/> <?php _e('Include Pretty Links Pro edge (development) releases in automatic updates (not recommended for production websites)', 'pretty-link'); ?> <img src="<?php echo PRLI_IMAGES_URL . '/square-loader.gif'; ?>" alt="<?php_e('Loading...', 'pretty-link'); ?>" class="prli_loader" />3 <div id="<?php echo esc_attr($plp_update->edge_updates_str); ?>-wrap"> 4 <input type="checkbox" id="<?php echo esc_attr($plp_update->edge_updates_str); ?>" data-nonce="<?php echo esc_attr(wp_create_nonce('wp-edge-updates')); ?>" <?php checked($plp_update->edge_updates); ?>/> <?php esc_html_e('Include Pretty Links Pro edge (development) releases in automatic updates (not recommended for production websites)', 'pretty-link'); ?> <img src="<?php echo esc_url(PRLI_IMAGES_URL . '/square-loader.gif'); ?>" alt="<?php esc_attr_e('Loading...', 'pretty-link'); ?>" class="prli_loader" /> 5 5 </div> 6 6 -
pretty-link/trunk/app/views/admin/update/license.php
r1722928 r2124183 1 1 <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?> 2 <?php global $plp_update; ?> 2 <?php 3 global $plp_update; 4 $mothership_license_str = isset($_POST[$plp_update->mothership_license_str]) ? sanitize_key($_POST[$plp_update->mothership_license_str]) : $plp_update->mothership_license; 5 ?> 3 6 4 <div class="prli-page-title"><?php _e('Pretty Links Pro License', 'pretty-link'); ?></div>7 <div class="prli-page-title"><?php esc_html_e('Pretty Links Pro License', 'pretty-link'); ?></div> 5 8 6 9 <?php if( !isset($li) or empty($li) ): ?> 7 <p class="description"><?php printf(__('You must have a License Key to enable automatic updates for Pretty Links Pro. If you don\'t have a License please go to %1$s to get one. If you do have a license you can login at %2$s to manage your licenses and site activations.', 'pretty-link'), '<a href="https://prettylinks.com/pl/license-alert/buy">prettylinks.com</a>', '<a href="https://prettylinks.com/pl/license-alert/login">prettylinks.com/login</a>'); ?></p> 10 <p class="description"> 11 <?php 12 printf( 13 // translators: %1$s: link to pro site, %2$s: link to pro site login page 14 esc_html__('You must have a License Key to enable automatic updates for Pretty Links Pro. If you don\'t have a License please go to %1$s to get one. If you do have a license you can login at %2$s to manage your licenses and site activations.', 'pretty-link'), 15 '<a href="https://prettylinks.com/pl/license-alert/buy">prettylinks.com</a>', 16 '<a href="https://prettylinks.com/pl/license-alert/login">prettylinks.com/login</a>' 17 ); 18 ?> 19 </p> 8 20 <form name="activation_form" method="post" action=""> 9 21 <?php wp_nonce_field('activation_form'); ?> … … 11 23 <table class="form-table"> 12 24 <tr class="form-field"> 13 <td valign="top" width="225px"><?php _e('Enter Your Pretty Links Pro License Key:', 'pretty-link'); ?></td>25 <td valign="top" width="225px"><?php esc_html_e('Enter Your Pretty Links Pro License Key:', 'pretty-link'); ?></td> 14 26 <td> 15 <input type="text" name="<?php echo $plp_update->mothership_license_str; ?>" value="<?php echo (isset($_POST[$plp_update->mothership_license_str])?$_POST[$plp_update->mothership_license_str]:$plp_update->mothership_license); ?>"/>27 <input type="text" name="<?php echo esc_attr($plp_update->mothership_license_str); ?>" value="<?php echo esc_attr($mothership_license_str); ?>"/> 16 28 </td> 17 29 </tr> 18 30 </table> 19 31 <p class="submit"> 20 <input type="submit" name="Submit" class="button button-primary" value="<?php printf(__('Activate License Key on %s', 'pretty-link'), PrliUtils::site_domain()); ?>" />32 <input type="submit" name="Submit" class="button button-primary" value="<?php echo esc_attr(sprintf(__('Activate License Key on %s', 'pretty-link'), PrliUtils::site_domain())); ?>" /> 21 33 </p> 22 34 </form> … … 25 37 <div> </div> 26 38 27 <div class="prli-page-title"><?php _e('Upgrade to Pro', 'pretty-link'); ?></div>39 <div class="prli-page-title"><?php esc_html_e('Upgrade to Pro', 'pretty-link'); ?></div> 28 40 29 41 <div> 30 <?php printf(__('It looks like you haven\'t %1$supgraded to Pretty Links Pro%2$s yet. Here are just a few things you could be doing with pro:', 'pretty-link'),'<a href="https://prettylinks.com/pl/license-alert/upgrade" target="_blank">','</a>') ?> 42 <?php 43 printf( 44 // translators: %1$s: open link tag, %2$s: close link tag 45 esc_html__('It looks like you haven\'t %1$supgraded to Pretty Links Pro%2$s yet. Here are just a few things you could be doing with pro:', 'pretty-link'), 46 '<a href="https://prettylinks.com/pl/license-alert/upgrade" target="_blank">', 47 '</a>' 48 ); 49 ?> 31 50 </div> 32 51 … … 34 53 35 54 <ul style="padding-left: 25px;"> 36 <li>• <?php _e('Auto-replace keywords throughout your site with Pretty Links', 'pretty-link'); ?></li>37 <li>• <?php _e('Protect your affiliate links by using Cloaked Redirects', 'pretty-link'); ?></li>38 <li>• <?php _e('Redirect based on a visitor\'s location', 'pretty-link'); ?></li>39 <li>• <?php _e('Auto-prettylink your Pages & Posts', 'pretty-link'); ?></li>40 <li>• <?php _e('Find out what works and what doesn\'t by split testing your links', 'pretty-link'); ?></li>41 <li>• <?php _e('And much, much more!', 'pretty-link'); ?></li>55 <li>• <?php esc_html_e('Auto-replace keywords throughout your site with Pretty Links', 'pretty-link'); ?></li> 56 <li>• <?php esc_html_e('Protect your affiliate links by using Cloaked Redirects', 'pretty-link'); ?></li> 57 <li>• <?php esc_html_e('Redirect based on a visitor\'s location', 'pretty-link'); ?></li> 58 <li>• <?php esc_html_e('Auto-prettylink your Pages & Posts', 'pretty-link'); ?></li> 59 <li>• <?php esc_html_e('Find out what works and what doesn\'t by split testing your links', 'pretty-link'); ?></li> 60 <li>• <?php esc_html_e('And much, much more!', 'pretty-link'); ?></li> 42 61 </ul> 43 62 44 63 <div> </div> 45 <div><?php _e('Plus, upgrading is fast, easy and won\'t disrupt any of your existing links or data. And there\'s even a 14 day money back guarantee.', 'pretty-link'); ?></div>64 <div><?php esc_html_e('Plus, upgrading is fast, easy and won\'t disrupt any of your existing links or data. And there\'s even a 14 day money back guarantee.', 'pretty-link'); ?></div> 46 65 <div> </div> 47 <div><?php _e('We think you\'ll love it!', 'pretty-link'); ?></div>66 <div><?php esc_html_e('We think you\'ll love it!', 'pretty-link'); ?></div> 48 67 <div> </div> 49 <div><a href="https://prettylinks.com/pl/license-alert/upgrade-1" class="button button-primary"><?php _e('Upgrade to Pro today!', 'pretty-link'); ?></a></div>68 <div><a href="https://prettylinks.com/pl/license-alert/upgrade-1" class="button button-primary"><?php esc_html_e('Upgrade to Pro today!', 'pretty-link'); ?></a></div> 50 69 <?php endif; ?> 51 70 <?php else: ?> 52 71 <div class="prli-license-active"> 53 <div><h4><?php _e('Active License Key Information:', 'pretty-link'); ?></h4></div>72 <div><h4><?php esc_html_e('Active License Key Information:', 'pretty-link'); ?></h4></div> 54 73 <table> 55 74 <tr> 56 <td><?php _e('License Key:', 'pretty-link'); ?></td>57 <td>********-****-****-****-<?php echo substr($li['license_key']['license'], -12); ?></td>75 <td><?php esc_html_e('License Key:', 'pretty-link'); ?></td> 76 <td>********-****-****-****-<?php echo esc_html(substr($li['license_key']['license'], -12)); ?></td> 58 77 </tr> 59 78 <tr> 60 <td><?php _e('Status:', 'pretty-link'); ?></td>61 <td>< ?php printf(__('<b>Active on %s</b>', 'pretty-link'), PrliUtils::site_domain()); ?></td>79 <td><?php esc_html_e('Status:', 'pretty-link'); ?></td> 80 <td><b><?php echo esc_html(sprintf(__('Active on %s', 'pretty-link'), PrliUtils::site_domain())); ?></b></td> 62 81 </tr> 63 82 <tr> 64 <td><?php _e('Product:', 'pretty-link'); ?></td>65 <td><?php echo $li['product_name']; ?></td>83 <td><?php esc_html_e('Product:', 'pretty-link'); ?></td> 84 <td><?php echo esc_html($li['product_name']); ?></td> 66 85 </tr> 67 86 <tr> 68 <td><?php _e('Activations:', 'pretty-link'); ?></td> 69 <td><?php printf('<b>%1$d of %2$s</b> sites have been activated with this license key', $li['activation_count'], ucwords($li['max_activations'])); ?></td> 87 <td><?php esc_html_e('Activations:', 'pretty-link'); ?></td> 88 <td> 89 <?php 90 printf( 91 // translators: %1$s: open b tag, %2$s: close b tag, %3$d: current activation count, %4$s: max activations 92 esc_html__('%1$s%3$d of %4$s%2$s sites have been activated with this license key', 'pretty-link'), 93 '<b>', 94 '</b>', 95 esc_html($li['activation_count']), 96 esc_html(ucwords($li['max_activations'])) 97 ); 98 ?> 99 </td> 70 100 </tr> 71 101 </table> 72 <div class="prli-deactivate-button"><a href="<?php echo admin_url('admin.php?page=pretty-link-updates&action=deactivate&_wpnonce='.wp_create_nonce('pretty-link_deactivate')); ?>" class="button button-primary" onclick="return confirm('<?php printf(__("Are you sure? Pretty Links Pro will not be functional on %s if this License Key is deactivated.", 'pretty-link'), PrliUtils::site_domain()); ?>');"><?php printf(__('Deactivate License Key on %s', 'pretty-link'), PrliUtils::site_domain()); ?></a></div>102 <div class="prli-deactivate-button"><a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-updates&action=deactivate&_wpnonce='.wp_create_nonce('pretty-link_deactivate'))); ?>" class="button button-primary" onclick="return confirm('<?php echo esc_attr(sprintf(__("Are you sure? Pretty Links Pro will not be functional on %s if this License Key is deactivated.", 'pretty-link'), PrliUtils::site_domain())); ?>');"><?php echo esc_html(sprintf(__('Deactivate License Key on %s', 'pretty-link'), PrliUtils::site_domain())); ?></a></div> 73 103 </div> 74 104 <?php if(!$this->is_installed()): ?> 75 <div><a href="<?php echo $this->update_plugin_url(); ?>" class="button button-primary"><?php_e('Upgrade plugin to Pro', 'pretty-link'); ?></a></div>105 <div><a href="<?php echo esc_url($this->update_plugin_url()); ?>" class="button button-primary"><?php esc_html_e('Upgrade plugin to Pro', 'pretty-link'); ?></a></div> 76 106 <div> </div> 77 107 <?php endif; ?> 78 108 <?php require(PRLI_VIEWS_PATH.'/admin/update/edge_updates.php'); ?> 79 109 <br/> 80 <div id="prli-version-string"><?php printf( __("You're currently running version %s of Pretty Links Pro", 'pretty-link'), '<b>'.PRLI_VERSION.'</b>'); ?></div>110 <div id="prli-version-string"><?php printf(esc_html__("You're currently running version %s of Pretty Links Pro", 'pretty-link'), '<b>'.esc_html(PRLI_VERSION).'</b>'); ?></div> 81 111 <?php endif; ?> 82 112 -
pretty-link/trunk/app/views/admin/update/ui.php
r1722928 r2124183 1 1 <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?> 2 2 <div class="wrap"> 3 <?php echoPrliAppHelper::page_title(__('Activate Pretty Links Pro', 'pretty-link')); ?>3 <?php PrliAppHelper::page_title(__('Activate Pretty Links Pro', 'pretty-link')); ?> 4 4 <?php require(PRLI_VIEWS_PATH.'/admin/errors.php'); ?> 5 5 … … 14 14 <td class="prli-settings-table-nav"> 15 15 <ul class="prli-sidebar-nav"> 16 <li><a data-id="license"><?php _e('License', 'pretty-link'); ?></a></li>17 <!-- <li><a data-id="addons"><?php _e('Add-Ons', 'pretty-link'); ?></a></li> -->16 <li><a data-id="license"><?php esc_html_e('License', 'pretty-link'); ?></a></li> 17 <!-- <li><a data-id="addons"><?php esc_html_e('Add-Ons', 'pretty-link'); ?></a></li> --> 18 18 <?php do_action('prli_updates_nav_items'); ?> 19 19 </ul> -
pretty-link/trunk/app/views/clicks/csv_download.php
r1572224 r2124183 1 1 <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?> 2 2 <div class="wrap"> 3 <?php echoPrliAppHelper::page_title(__('Download Clicks', 'pretty-link')); ?>4 <span style="font-size: 14px; font-weight: bold;"> For <?php echo stripslashes($link_name); ?>:</span>3 <?php PrliAppHelper::page_title(__('Download Clicks', 'pretty-link')); ?> 4 <span style="font-size: 14px; font-weight: bold;"><?php echo esc_html(sprintf(__('For %s', 'pretty-link'), stripslashes($link_name))); ?></span> 5 5 6 <h3><?php _e('Click Reports:', 'pretty-link'); ?></h3>7 <span class="description"><?php printf( __('All clicks on %s', 'pretty-link'), stripslashes($link_name)); ?></span>6 <h3><?php esc_html_e('Click Reports:', 'pretty-link'); ?></h3> 7 <span class="description"><?php echo esc_html(sprintf(__('All clicks on %s', 'pretty-link'), stripslashes($link_name))); ?></span> 8 8 <br/> 9 9 <ul> … … 26 26 27 27 ?> 28 <li><a href="<?php echo $hit_report_url . $hit_param_delim; ?>prli_page=<?php echo $i; ?>"><?php echo $report_label; ?></a></li>28 <li><a href="<?php echo esc_url($hit_report_url . $hit_param_delim . 'prli_page=' . $i); ?>"><?php echo esc_html($report_label); ?></a></li> 29 29 <?php 30 30 } -
pretty-link/trunk/app/views/clicks/list.php
r2108490 r2124183 2 2 3 3 <div class="wrap"> 4 <?php echoPrliAppHelper::page_title(__('Clicks', 'pretty-link')); ?>4 <?php PrliAppHelper::page_title(__('Clicks', 'pretty-link')); ?> 5 5 <br/> 6 <span style="font-size: 14px;"><?php echo __('For', 'pretty-link').' '.stripslashes($link_name); ?>: </span>6 <span style="font-size: 14px;"><?php echo esc_html(sprintf(__('For %s', 'pretty-link'), stripslashes($link_name))); ?>: </span> 7 7 <?php 8 8 // Don't show this sheesh if we're displaying the vuid or ip grouping 9 9 if(empty($params['ip']) and empty($params['vuid'])) { 10 10 ?> 11 <a href="#" class="filter_toggle button button-primary" style="vertical-align:middle;"><?php _e('Customize Report', 'pretty-link'); ?></a>11 <a href="#" class="filter_toggle button button-primary" style="vertical-align:middle;"><?php esc_html_e('Customize Report', 'pretty-link'); ?></a> 12 12 <?php 13 13 } … … 16 16 <?php 17 17 if(!empty($params['l']) && $params['l'] != 'all') { 18 echo '<br/><a href="'. admin_url("admin.php?page=pretty-link-clicks").'">« '.__("Back to Links", 'pretty-link').'</a>';18 echo '<br/><a href="'.esc_url(admin_url("admin.php?page=pretty-link-clicks")).'">« '.esc_html__("Back to Links", 'pretty-link').'</a>'; 19 19 } 20 20 else if(!empty($params['ip']) || !empty($params['vuid'])) { 21 echo '<br/><a href="'. admin_url('admin.php?page=pretty-link-clicks').'">« '.__("Back to Clicks", 'pretty-link').'</a>';21 echo '<br/><a href="'.esc_url(admin_url('admin.php?page=pretty-link-clicks')).'">« '.esc_html__("Back to Clicks", 'pretty-link').'</a>'; 22 22 } 23 23 … … 28 28 <form class="form-fields" name="form2" method="post" action=""> 29 29 <?php wp_nonce_field('prli-reports'); ?> 30 <span><?php _e('Type:', 'pretty-link'); ?></span> 30 <span><?php esc_html_e('Type:', 'pretty-link'); ?></span> 31 31 <select id="type" name="type" style="display: inline;"> 32 <option value="all"<?php selected(empty($params['type']) || $params['type'] == 'all'); ?>><?php _e('All Clicks', 'pretty-link'); ?> </option>33 <option value="unique"<?php selected($params['type'] == 'unique'); ?>><?php _e('Unique Clicks', 'pretty-link'); ?> </option>32 <option value="all"<?php selected(empty($params['type']) || $params['type'] == 'all'); ?>><?php esc_html_e('All Clicks', 'pretty-link'); ?> </option> 33 <option value="unique"<?php selected($params['type'] == 'unique'); ?>><?php esc_html_e('Unique Clicks', 'pretty-link'); ?> </option> 34 34 </select> 35 35 <br/> 36 36 <br/> 37 <span><?php _e('Date Range:', 'pretty-link'); ?></span>37 <span><?php esc_html_e('Date Range:', 'pretty-link'); ?></span> 38 38 <div id="dateselectors" style="display: inline;"> 39 <input type="text" name="sdate" id="sdate" value="<?php echo $params['sdate']; ?>" style="display:inline;"/> <?php _e('to', 'pretty-link'); ?> <input type="text" name="edate" id="edate" value="<?php echo $params['edate']; ?>" style="display:inline;"/>39 <input type="text" name="sdate" id="sdate" value="<?php echo esc_attr($params['sdate']); ?>" style="display:inline;"/> <?php esc_html_e('to', 'pretty-link'); ?> <input type="text" name="edate" id="edate" value="<?php echo esc_attr($params['edate']); ?>" style="display:inline;"/> 40 40 </div> 41 41 <br/> 42 42 <br/> 43 <div class="submit" style="display: inline;"><input type="submit" name="Submit" value=" Customize" class="button button-primary" /> <a href="#" class="filter_toggle button"><?php_e('Cancel', 'pretty-link'); ?></a></div>43 <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="<?php esc_attr_e('Customize', 'pretty-link'); ?>" class="button button-primary" /> <a href="#" class="filter_toggle button"><?php esc_html_e('Cancel', 'pretty-link'); ?></a></div> 44 44 </form> 45 45 </div> … … 57 57 <?php wp_nonce_field('prli-clicks'); ?> 58 58 59 <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />60 <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />59 <input type="hidden" name="sort" id="sort" value="<?php echo esc_attr($sort_str); ?>" /> 60 <input type="hidden" name="sdir" id="sort" value="<?php echo esc_attr($sdir_str); ?>" /> 61 61 <input type="text" name="search" id="search" value="<?php echo esc_attr($search_str); ?>" style="display:inline;"/> 62 <div class="submit" style="display: inline;"><input class="button button-primary" type="submit" name="Submit" value=" Search Clicks"/>62 <div class="submit" style="display: inline;"><input class="button button-primary" type="submit" name="Submit" value="<?php esc_attr_e('Search Clicks', 'pretty-link'); ?>"/> 63 63 <?php if(!empty($search_str)): ?> 64 <a href="<?php echo admin_url('admin.php?page=pretty-link-clicks'.(!empty($params['l'])?'&l='.$params['l']:'')); ?>" class="button"><?php_e('Reset', 'pretty-link'); ?></a>64 <a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-clicks'.(!empty($params['l'])?'&l='.$params['l']:''))); ?>" class="button"><?php esc_html_e('Reset', 'pretty-link'); ?></a> 65 65 <?php endif; ?> 66 66 </div> … … 71 71 <tr> 72 72 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?> 73 <th class="manage-column" width="5%"><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=btype".(($sort_str == 'btype' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Browser', 'pretty-link'); echo (($sort_str == 'btype')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>73 <th class="manage-column" width="5%"><a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=btype".(($sort_str == 'btype' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('Browser', 'pretty-link'); echo (($sort_str == 'btype')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 74 74 </th> 75 <th class="manage-column" width="5%"><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=os".(($sort_str == 'os' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('OS', 'pretty-link'); echo (($sort_str == 'btype')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>75 <th class="manage-column" width="5%"><a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=os".(($sort_str == 'os' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('OS', 'pretty-link'); echo (($sort_str == 'btype')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 76 76 </th> 77 77 <?php } ?> 78 78 <th class="manage-column" width="12%"> 79 <a href="<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=ip".(($sort_str == 'ip' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('IP', 'pretty-link'); echo (($sort_str == 'ip')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>79 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=ip".(($sort_str == 'ip' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('IP', 'pretty-link'); echo (($sort_str == 'ip')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 80 80 </th> 81 81 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?> 82 82 <th class="manage-column" width="12%"> 83 <a href="<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=vuid".(($sort_str == 'vuid' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Visitor', 'pretty-link'); echo (($sort_str == 'vuid')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>83 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=vuid".(($sort_str == 'vuid' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('Visitor', 'pretty-link'); echo (($sort_str == 'vuid')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 84 84 </th> 85 85 <?php } ?> 86 86 <th class="manage-column" width="13%"> 87 <a href="<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=created_at".(($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Timestamp', 'pretty-link'); echo ((empty($sort_str) or $sort_str == 'created_at')?' <img src="'.PRLI_IMAGES_URL.'/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>87 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=created_at".(($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('Timestamp', 'pretty-link'); echo ((empty($sort_str) or $sort_str == 'created_at')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 88 88 </th> 89 89 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?> 90 90 <th class="manage-column" width="16%"> 91 <a href="<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=host".(($sort_str == 'host' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Host', 'pretty-link'); echo (($sort_str == 'host')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>91 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=host".(($sort_str == 'host' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('Host', 'pretty-link'); echo (($sort_str == 'host')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 92 92 </th> 93 93 <?php } ?> 94 94 <th class="manage-column" width="16%"> 95 <a href=" ?page=<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=uri".(($sort_str == 'uri' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('URI', 'pretty-link'); echo (($sort_str == 'uri')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>95 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=uri".(($sort_str == 'uri' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('URI', 'pretty-link'); echo (($sort_str == 'uri')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 96 96 </th> 97 97 <th class="manage-column" width="16%"> 98 <a href="<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=referer".(($sort_str == 'referer' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Referrer', 'pretty-link'); echo (($sort_str == 'referer')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>98 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=referer".(($sort_str == 'referer' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('Referrer', 'pretty-link'); echo (($sort_str == 'referer')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 99 99 </th> 100 100 <th class="manage-column" width="13%"> 101 <a href="<?php echo admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=link".(($sort_str == 'link' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Link', 'pretty-link'); echo (($sort_str == 'link')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>101 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks{$sort_params}&sort=link".(($sort_str == 'link' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"><?php esc_html_e('Link', 'pretty-link'); echo (($sort_str == 'link')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?></a> 102 102 </th> 103 103 </tr> … … 109 109 ?> 110 110 <tr> 111 <td colspan="8"><?php _e('No Clicks have been recorded yet', 'pretty-link'); ?></td>111 <td colspan="8"><?php esc_html_e('No Clicks have been recorded yet', 'pretty-link'); ?></td> 112 112 </tr> 113 113 <?php … … 120 120 121 121 ?> 122 <tr id="record_<?php echo $click->id; ?>" class="<?php echo $alternate; ?>">122 <tr id="record_<?php echo esc_attr($click->id); ?>" class="<?php echo esc_attr($alternate); ?>"> 123 123 124 124 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ): ?> … … 130 130 131 131 <?php if(false===$browser_image): ?> 132 <span style="font-size: 16px; cursor: pointer;" title="<?php echo $click->btype; ?>"><strong>?</strong></span>132 <span style="font-size: 16px; cursor: pointer;" title="<?php echo esc_attr($click->btype); ?>"><strong>?</strong></span> 133 133 <?php else: ?> 134 <img src="<?php echo esc_ html(PRLI_BROWSER_URL); ?>/<?php echo $browser_image; ?>" alt="<?php echo $click->btype . " v" . $click->bversion; ?>" title="<?php echo $click->btype . " v" . $click->bversion; ?>" width="16px" height="16px" style="width: 16px; height: 16px;" />134 <img src="<?php echo esc_url(PRLI_BROWSER_URL . '/' . $browser_image); ?>" alt="<?php echo esc_attr($click->btype . " v" . $click->bversion); ?>" title="<?php echo esc_attr($click->btype . " v" . $click->bversion); ?>" width="16px" height="16px" style="width: 16px; height: 16px;" /> 135 135 <?php endif; ?> 136 136 </td> … … 138 138 <td> 139 139 <?php if(false===$os_image): ?> 140 <span style="font-size: 16px; cursor: pointer;" title="<?php echo $click->os; ?>"><strong>?</strong></span>140 <span style="font-size: 16px; cursor: pointer;" title="<?php echo esc_attr($click->os); ?>"><strong>?</strong></span> 141 141 <?php else: ?> 142 <img src="<?php echo esc_ html(PRLI_OS_URL); ?>/<?php echo $os_image; ?>" alt="<?php echo $click->os; ?>" title="<?php echo $click->os; ?>" width="16px" height="16px" style="width: 16px; height: 16px;" /></td>142 <img src="<?php echo esc_url(PRLI_OS_URL . '/' . $os_image); ?>" alt="<?php echo esc_attr($click->os); ?>" title="<?php echo esc_attr($click->os); ?>" width="16px" height="16px" style="width: 16px; height: 16px;" /></td> 143 143 <?php endif; ?> 144 144 </td> 145 145 <?php endif; ?> 146 146 147 <?php $click_ip = esc_attr( $click->ip ); ?> 148 149 <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&ip={$click_ip}"); ?>" title="<?php printf(__('View All Activity for IP Address: %s', 'pretty-link'), $click_ip); ?>"><?php echo $click_ip; ?> (<?php echo $click->ip_count; ?>)</a></td> 147 <td><a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks&ip={$click->ip}")); ?>" title="<?php echo esc_attr(sprintf(__('View All Activity for IP Address: %s', 'pretty-link'), $click->ip)); ?>"><?php echo esc_html($click->ip); ?> (<?php echo esc_html($click->ip_count); ?>)</a></td> 150 148 151 149 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ): ?> 152 <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&vuid={$click->vuid}") ?>" title="<?php printf(__('View All Activity for Visitor: %s', 'pretty-link'), $click->vuid); ?>"><?php echo $click->vuid; ?><?php echo (($click->vuid != null)?" ($click->vuid_count)":''); ?></a></td>150 <td><a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks&vuid={$click->vuid}")); ?>" title="<?php echo esc_attr(sprintf(__('View All Activity for Visitor: %s', 'pretty-link'), $click->vuid)); ?>"><?php echo esc_html($click->vuid); ?><?php echo (($click->vuid != null)?" (".esc_html($click->vuid_count).")":''); ?></a></td> 153 151 <?php endif; ?> 154 152 155 <td><?php echo $click->created_at; ?></td>153 <td><?php echo esc_html($click->created_at); ?></td> 156 154 157 155 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ): ?> 158 <td><?php echo $click->host; ?></td>156 <td><?php echo esc_html($click->host); ?></td> 159 157 <?php endif; ?> 160 158 161 <td><?php echo $click->uri; ?></td>162 <td><a href="<?php echo esc_ attr( $click->referer ); ?>"><?php echo esc_attr( $click->referer ); ?></a></td>163 <td><a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&l={$click->link_id}"); ?>" title="<?php printf(__('View clicks for %s', 'pretty-link'), stripslashes($click->link_name)); ?>"><?php echo stripslashes($click->link_name); ?></a></td>159 <td><?php echo esc_html($click->uri); ?></td> 160 <td><a href="<?php echo esc_url( $click->referer ); ?>"><?php echo esc_html( $click->referer ); ?></a></td> 161 <td><a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks&l={$click->link_id}")); ?>" title="<?php echo esc_attr(sprintf(__('View clicks for %s', 'pretty-link'), stripslashes($click->link_name))); ?>"><?php echo esc_html(stripslashes($click->link_name)); ?></a></td> 164 162 </tr> 165 163 <?php … … 171 169 <tr> 172 170 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?> 173 <th class="manage-column"><?php _e('Browser', 'pretty-link'); ?></th>174 <th class="manage-column"><?php _e('OS', 'pretty-link'); ?></th>171 <th class="manage-column"><?php esc_html_e('Browser', 'pretty-link'); ?></th> 172 <th class="manage-column"><?php esc_html_e('OS', 'pretty-link'); ?></th> 175 173 <?php } ?> 176 <th class="manage-column"><?php _e('IP', 'pretty-link'); ?></th>174 <th class="manage-column"><?php esc_html_e('IP', 'pretty-link'); ?></th> 177 175 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?> 178 <th class="manage-column"><?php _e('Visitor', 'pretty-link'); ?></th>176 <th class="manage-column"><?php esc_html_e('Visitor', 'pretty-link'); ?></th> 179 177 <?php } ?> 180 <th class="manage-column"><?php _e('Timestamp', 'pretty-link'); ?></th>178 <th class="manage-column"><?php esc_html_e('Timestamp', 'pretty-link'); ?></th> 181 179 <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?> 182 <th class="manage-column"><?php _e('Host', 'pretty-link'); ?></th>180 <th class="manage-column"><?php esc_html_e('Host', 'pretty-link'); ?></th> 183 181 <?php } ?> 184 <th class="manage-column"><?php _e('URI', 'pretty-link'); ?></th>185 <th class="manage-column"><?php _e('Referrer', 'pretty-link'); ?></th>186 <th class="manage-column"><?php _e('Link', 'pretty-link'); ?></th>182 <th class="manage-column"><?php esc_html_e('URI', 'pretty-link'); ?></th> 183 <th class="manage-column"><?php esc_html_e('Referrer', 'pretty-link'); ?></th> 184 <th class="manage-column"><?php esc_html_e('Link', 'pretty-link'); ?></th> 187 185 </tr> 188 186 </tfoot> … … 190 188 191 189 <br/> 192 <a href="<?php echo admin_url("admin.php?page=pretty-link-clicks&action=csv{$page_params}"); ?>" class="button button-primary"><?php _e('Download CSV', 'pretty-link'); ?> (<?php echo stripslashes($link_name); ?>)</a>190 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks&action=csv{$page_params}")); ?>" class="button button-primary"><?php esc_html_e('Download CSV', 'pretty-link'); ?> (<?php echo esc_html(stripslashes($link_name)); ?>)</a> 193 191 194 192 <?php -
pretty-link/trunk/app/views/groups/edit.php
r1572224 r2124183 1 <?php if(!defined('ABSPATH')) die('You are not allowed to call this page directly.'); ?> 1 <?php 2 if(!defined('ABSPATH')) { 3 die('You are not allowed to call this page directly.'); 4 } 2 5 6 $name = stripslashes(isset($values['name']) && empty($record) ? $values['name'] : $record->name); 7 $description = stripslashes(isset($values['description']) && empty($record) ? $values['description'] : $record->description); 8 ?> 3 9 <div class="wrap"> 4 <?php echoPrliAppHelper::page_title(__('Edit Group', 'pretty-link')); ?>10 <?php PrliAppHelper::page_title(__('Edit Group', 'pretty-link')); ?> 5 11 6 12 <?php require(PRLI_VIEWS_PATH.'/shared/errors.php'); ?> 7 13 8 <form name="form1" method="post" action="<?php echo admin_url("admin.php?page=pretty-link-groups"); ?>">14 <form name="form1" method="post" action="<?php echo esc_url(admin_url("admin.php?page=pretty-link-groups")); ?>"> 9 15 <input type="hidden" name="action" value="update"> 10 <input type="hidden" name="id" value="<?php echo $id; ?>">16 <input type="hidden" name="id" value="<?php echo esc_attr($id); ?>"> 11 17 <?php wp_nonce_field('update-options'); ?> 12 18 13 19 <table class="form-table"> 14 20 <tr class="form-field"> 15 <td width="75px" valign="top"><?php _e('Name:', 'pretty-link'); ?> </td>16 <td><input type="text" name="name" value="<?php echo htmlspecialchars(stripslashes(((isset($_POST['name']) and $record == null)?$_POST['name']:$record->name))); ?>" size="75">17 <br/><span class="setting-description"><?php _e("This is how you'll identify your Group.", 'pretty-link'); ?></span></td>21 <td width="75px" valign="top"><?php esc_html_e('Name:', 'pretty-link'); ?> </td> 22 <td><input type="text" name="name" value="<?php echo esc_attr($name); ?>" size="75"> 23 <br/><span class="setting-description"><?php esc_html_e("This is how you'll identify your Group.", 'pretty-link'); ?></span></td> 18 24 </tr> 19 25 <tr class="form-field"> 20 <td valign="top"><?php _e('Description:', 'pretty-link'); ?> </td>21 <td><textarea style="height: 100px;" name="description"><?php echo ((isset($_POST['description']) and $record == null)?$_POST['description']:$record->description); ?></textarea>22 <br/><span class="setting-description"><?php _e('A Description of this group.', 'pretty-link'); ?></span></td>26 <td valign="top"><?php esc_html_e('Description:', 'pretty-link'); ?> </td> 27 <td><textarea style="height: 100px;" name="description"><?php echo esc_textarea($description); ?></textarea> 28 <br/><span class="setting-description"><?php esc_html_e('A Description of this group.', 'pretty-link'); ?></span></td> 23 29 </tr> 24 30 <tr class="form-field" valign="top"> 25 <td valign="top"><?php _e('Links:', 'pretty-link'); ?> </td>31 <td valign="top"><?php esc_html_e('Links:', 'pretty-link'); ?> </td> 26 32 <td valign="top"> 27 33 <div style="height: 400px; width: 95%; border: 1px solid #8cbdd5; overflow: auto;"> 28 34 <table width="100%" cellspacing="0"> 29 35 <thead style="background-color: #dedede; padding: 0px; margin: 0px; line-height: 8px; font-size: 14px;"> 30 <th style="padding-left: 5px; margin: 0px; width: 50%; min-width: 50%;"><strong><?php _e('Name', 'pretty-link'); ?></strong></th>31 <th style="padding-left: 5px; margin: 0px; width: 50%; min-width: 50%;"><strong><?php _e('Current Group', 'pretty-link'); ?></strong></th>36 <th style="padding-left: 5px; margin: 0px; width: 50%; min-width: 50%;"><strong><?php esc_html_e('Name', 'pretty-link'); ?></strong></th> 37 <th style="padding-left: 5px; margin: 0px; width: 50%; min-width: 50%;"><strong><?php esc_html_e('Current Group', 'pretty-link'); ?></strong></th> 32 38 </thead> 33 39 <?php … … 37 43 ?> 38 44 <tr style="line-height: 15px; font-size: 12px;<?php echo (($i%2)?' background-color: #efefef;':''); ?>"> 39 <td style="min-width: 50%; width: 50%"><input type="checkbox" style="display:inline;width: 15px; padding: 0; margin: 0; float: left; text-align: left;" name="link[<?php echo $link->id; ?>]" <?php echo (((isset($_POST['link'][$link->id]) and $_POST['link'][$link->id] == 'on') or (empty($_POST) and $link->group_id == $record->id))?'checked="true"':''); ?>/><span> <?php echo htmlspecialchars(stripslashes($link->name)) . " <strong>(" . $link->slug . ")</strong>"; ?></span></td> 40 <td style="min-width: 50%; width: 50%"><?php echo htmlspecialchars(stripslashes($link->group_name)); ?></td> 45 <td style="min-width: 50%; width: 50%"> 46 <input type="checkbox" style="display:inline;width: 15px; padding: 0; margin: 0; float: left; text-align: left;" name="link[<?php echo esc_attr($link->id); ?>]" <?php echo (((isset($_POST['link'][$link->id]) and $_POST['link'][$link->id] == 'on') or (empty($_POST) and !empty($record) && $link->group_id == $record->id))?'checked="true"':''); ?>/> 47 <span><?php echo esc_html(stripslashes($link->name)) . " <strong>(" . esc_html(stripslashes($link->slug)) . ")</strong>"; ?></span> 48 </td> 49 <td style="min-width: 50%; width: 50%"><?php echo esc_html(stripslashes($link->group_name)); ?></td> 41 50 </tr> 42 51 <?php … … 46 55 </table> 47 56 </div> 48 <span class="setting-description"><?php _e('Select some links for this group. <strong>Note: each link can only be in one group at a time.</strong>', 'pretty-link'); ?></span> 57 <span class="setting-description"> 58 <?php 59 printf( 60 // translators: %1$s: open strong tag, %2$s close strong tag 61 esc_html__('Select some links for this group. %1$sNote: each link can only be in one group at a time.%2$s', 'pretty-link'), 62 '<strong>', 63 '</strong>' 64 ); 65 ?> 66 </span> 49 67 </td> 50 68 </tr> … … 52 70 53 71 <p class="submit"> 54 <input type="submit" class="button button-primary" name="submit" value="<?php _e('Update', 'pretty-link'); ?>" /> <a href="<?php echo admin_url('admin.php?page=pretty-link-groups'); ?>" class="button"><?php_e('Cancel', 'pretty-link'); ?></a>72 <input type="submit" class="button button-primary" name="submit" value="<?php esc_attr_e('Update', 'pretty-link'); ?>" /> <a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-groups')); ?>" class="button"><?php esc_html_e('Cancel', 'pretty-link'); ?></a> 55 73 </p> 56 74 </form> -
pretty-link/trunk/app/views/groups/list.php
r1572224 r2124183 4 4 ?> 5 5 <div class="wrap"> 6 <?php echoPrliAppHelper::page_title(__('Groups', 'pretty-link')); ?>7 <a href="<?php echo admin_url('admin.php?page=pretty-link-groups&action=new'); ?>" class="page-title-action"><?php_e('Add Group', 'pretty-link'); ?></a>6 <?php PrliAppHelper::page_title(__('Groups', 'pretty-link')); ?> 7 <a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-groups&action=new')); ?>" class="page-title-action"><?php esc_html_e('Add Group', 'pretty-link'); ?></a> 8 8 <hr class="wp-header-end"> 9 9 … … 15 15 <form class="form-fields" name="group_form" method="post" action=""> 16 16 <?php wp_nonce_field('prli-groups'); ?> 17 <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />18 <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />17 <input type="hidden" name="sort" id="sort" value="<?php echo esc_attr($sort_str); ?>" /> 18 <input type="hidden" name="sdir" id="sort" value="<?php echo esc_attr($sdir_str); ?>" /> 19 19 <input type="text" name="search" id="search" value="<?php echo esc_attr($search_str); ?>" style="display:inline;"/> 20 <div class="submit" style="display: inline;"><input class="button button-primary" type="submit" name="Submit" value=" Search"/>20 <div class="submit" style="display: inline;"><input class="button button-primary" type="submit" name="Submit" value="<?php esc_attr_e('Search', 'pretty-link'); ?>"/> 21 21 <?php 22 22 if(!empty($search_str)) { 23 23 ?> 24 <a href="<?php echo admin_url("admin.php?page=pretty-link-groups"); ?>" class="button"><?php_e('Reset', 'pretty-link'); ?></a>24 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-groups")); ?>" class="button"><?php esc_html_e('Reset', 'pretty-link'); ?></a> 25 25 <?php 26 26 } … … 37 37 <thead> 38 38 <tr> 39 <th class="manage-column" width="50%"><a href="<?php echo admin_url('admin.php?page=pretty-link-groups&sort=name'.(($sort_str == 'name' && $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Name', 'pretty-link'); echo (($sort_str == 'name')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th> 40 <th class="manage-column" width="20%"><a href="<?php echo admin_url('admin.php?page=pretty-link-groups&sort=link_count'.(($sort_str == 'link_count' && $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Links', 'pretty-link'); echo (($sort_str == 'link_count')?' <img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th> 41 <th class="manage-column" width="30%"><a href="<?php echo admin_url('admin.php?page=pretty-link-groups&sort=created_at'.(($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Created', 'pretty-link'); echo ((empty($sort_str) or $sort_str == 'created_at')?' <img src="'.PRLI_IMAGES_URL.'/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th> 39 <th class="manage-column" width="50%"> 40 <a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-groups&sort=name'.(($sort_str == 'name' && $sdir_str == 'asc')?'&sdir=desc':''))); ?>"> 41 <?php esc_html_e('Name', 'pretty-link'); echo (($sort_str == 'name')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?> 42 </a> 43 </th> 44 <th class="manage-column" width="20%"> 45 <a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-groups&sort=link_count'.(($sort_str == 'link_count' && $sdir_str == 'asc')?'&sdir=desc':''))); ?>"> 46 <?php esc_html_e('Links', 'pretty-link'); echo (($sort_str == 'link_count')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?> 47 </a> 48 </th> 49 <th class="manage-column" width="30%"> 50 <a href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-groups&sort=created_at'.(($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':''))); ?>"> 51 <?php esc_html_e('Created', 'pretty-link'); echo ((empty($sort_str) or $sort_str == 'created_at')?' <img src="'.esc_url(PRLI_IMAGES_URL.'/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png')).'"/>':'') ?> 52 </a> 53 </th> 42 54 </tr> 43 55 </thead> … … 48 60 ?> 49 61 <tr> 50 <td colspan="5"><?php _e('No Pretty Link Groups were found', 'pretty-link'); ?></td>62 <td colspan="5"><?php esc_html_e('No Pretty Link Groups were found', 'pretty-link'); ?></td> 51 63 </tr> 52 64 <?php … … 59 71 $alternate = ( $row_index++ % 2 ? '' : 'alternate' ); 60 72 ?> 61 <tr id="record_<?php echo $group->id; ?>" class="<?php echo $alternate; ?>">73 <tr id="record_<?php echo esc_attr($group->id); ?>" class="<?php echo $alternate; ?>"> 62 74 <td class="edit_group"> 63 <a class="group_name" href="<?php echo admin_url("admin.php?page=pretty-link-groups&action=edit&id={$group->id}"); ?>" title="<?php printf(__('Edit %s', 'pretty-link'), htmlspecialchars(stripslashes($group->name))); ?>"><?php echo htmlspecialchars(stripslashes($group->name)); ?></a>75 <a class="group_name" href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-groups&action=edit&id={$group->id}")); ?>" title="<?php echo esc_attr(sprintf(__('Edit %s', 'pretty-link'), stripslashes($group->name))); ?>"><?php echo esc_html(stripslashes($group->name)); ?></a> 64 76 <br/> 65 77 <div class="group_actions"> 66 <a href="<?php echo admin_url("admin.php?page=pretty-link-groups&action=edit&id={$group->id}"); ?>" title="<?php printf(__('Edit %s', 'pretty-link'), htmlspecialchars(stripslashes($group->name))); ?>"><?php_e('Edit', 'pretty-link'); ?></a> |67 <a href="<?php echo admin_url("admin.php?page=pretty-link-groups&action=destroy&id={$group->id}"); ?>" onclick="return confirm('<?php printf(__('Are you sure you want to delete your %s Pretty Link Group?', 'pretty-link'), htmlspecialchars(stripslashes($group->name))); ?>');" title="Delete <?php echo htmlspecialchars(stripslashes($group->name)); ?>"><?php_e('Delete', 'pretty-link'); ?></a> |68 <a href="<?php echo admin_url("admin.php?page=pretty-link&group={$group->id}"); ?>" title="View links in <?php echo htmlspecialchars(stripslashes($group->name)); ?>"><?php_e('Links', 'pretty-link'); ?></a> |69 <a href="<?php echo admin_url( "admin.php?page=pretty-link-clicks&group={$group->id}" ); ?>" title="<?php printf(__('View hits in %s', 'pretty-link'), htmlspecialchars(stripslashes($group->name))); ?>"><?php_e('Clicks', 'pretty-link'); ?></a>78 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-groups&action=edit&id={$group->id}")); ?>" title="<?php echo esc_attr(sprintf(__('Edit %s', 'pretty-link'), stripslashes($group->name))); ?>"><?php esc_html_e('Edit', 'pretty-link'); ?></a> | 79 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-groups&action=destroy&id={$group->id}")); ?>" onclick="return confirm('<?php echo esc_attr(sprintf(__('Are you sure you want to delete your %s Pretty Link Group?', 'pretty-link'), stripslashes($group->name))); ?>');" title="<?php echo esc_attr(sprintf(__('Delete %s', 'pretty-link'), stripslashes($group->name))); ?>"><?php esc_html_e('Delete', 'pretty-link'); ?></a> | 80 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link&group={$group->id}")); ?>" title="<?php echo esc_attr(sprintf(__('View links in %s', 'pretty-link'), stripslashes($group->name))); ?>"><?php esc_html_e('Links', 'pretty-link'); ?></a> | 81 <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-clicks&group={$group->id}")); ?>" title="<?php echo esc_attr(sprintf(__('View hits in %s', 'pretty-link'), stripslashes($group->name))); ?>"><?php esc_html_e('Clicks', 'pretty-link'); ?></a> 70 82 </div> 71 83 </td> 72 <td><a href="<?php echo admin_url("admin.php?page=pretty-link&group={$group->id}"); ?>" title="View links in <?php echo htmlspecialchars(stripslashes($group->name)); ?>"><?php echo $group->link_count; ?></a></td>73 <td><?php echo $group->created_at; ?></td>84 <td><a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link&group={$group->id}")); ?>" title="<?php echo esc_attr(sprintf(__('View links in %s', 'pretty-link'), stripslashes($group->name))); ?>"><?php echo esc_html($group->link_count); ?></a></td> 85 <td><?php echo esc_html($group->created_at); ?></td> 74 86 </tr> 75 87 <?php … … 79 91 <tfoot> 80 92 <tr> 81 <th class="manage-column"><?php _e('Name', 'pretty-link'); ?></th>82 <th class="manage-column"><?php _e('Links', 'pretty-link'); ?></th>83 <th class="manage-column"><?php _e('Created', 'pretty-link'); ?></th>93 <th class="manage-column"><?php esc_html_e('Name', 'pretty-link'); ?></th> 94 <th class="manage-column"><?php esc_html_e('Links', 'pretty-link'); ?></th> 95 <th class="manage-column"><?php esc_html_e('Created', 'pretty-link'); ?></th> 84 96 </tr> 85 97 </tfoot> -
pretty-link/trunk/app/views/groups/new.php
r1800524 r2124183 3 3 die('You are not allowed to call this page directly.'); 4 4 5 $name = isset($_POST['name']) ? esc_html($_POST['name']) : ''; 5 $name = isset($_POST['name']) ? sanitize_text_field(stripslashes($_POST['name'])) : ''; 6 $description = isset($_POST['description']) ? sanitize_textarea_field(stripslashes($_POST['description'])) : ''; 6 7 ?> 7 8 8 9 <div class="wrap"> 9 <?php echoPrliAppHelper::page_title(__('New Group', 'pretty-link')); ?>10 <?php PrliAppHelper::page_title(__('New Group', 'pretty-link')); ?> 10 11 11 12 <?php … … 13 14 ?> 14 15 15 <form name="form1" method="post" action="<?php echo admin_url("admin.php?page=pretty-link-groups"); ?>">16 <form name="form1" method="post" action="<?php echo esc_url(admin_url("admin.php?page=pretty-link-groups")); ?>"> 16 17 <input type="hidden" name="action" value="create"> 17 18 <?php wp_nonce_field('update-options'); ?> … … 19 20 <table class="form-table"> 20 21 <tr class="form-field"> 21 <td width="75px" valign="top"><?php _e('Name*:', 'pretty-link'); ?> </td>22 <td><input type="text" name="name" value="<?php echo $name; ?>" size="75">23 <br/><span class="setting-description"><?php _e("This is how you'll identify your Group.", 'pretty-link'); ?></span></td>22 <td width="75px" valign="top"><?php esc_html_e('Name*:', 'pretty-link'); ?> </td> 23 <td><input type="text" name="name" value="<?php echo esc_attr($name); ?>" size="75"> 24 <br/><span class="setting-description"><?php esc_html_e("This is how you'll identify your Group.", 'pretty-link'); ?></span></td> 24 25 </tr> 25 26 <tr class="form-field"> 26 <td valign="top"><?php _e('Description:', 'pretty-link'); ?> </td>27 <td><textarea style="height: 100px;" name="description"><?php echo ((isset($_POST['description']))?sanitize_textarea_field($_POST['description']):'');?></textarea>28 <br/><span class="setting-description"><?php _e('A Description of this group.', 'pretty-link'); ?></span></td>27 <td valign="top"><?php esc_html_e('Description:', 'pretty-link'); ?> </td> 28 <td><textarea style="height: 100px;" name="description"><?php echo esc_textarea($description) ?></textarea> 29 <br/><span class="setting-description"><?php esc_html_e('A Description of this group.', 'pretty-link'); ?></span></td> 29 30 </tr> 30 31 <tr class="form-field" valign="top"> 31 <td valign="top"><?php _e('Links:', 'pretty-link'); ?> </td>32 <td valign="top"><?php esc_html_e('Links:', 'pretty-link'); ?> </td> 32 33 <td valign="top"> 33 34 <div style="height: 400px; width: 95%; border: 1px solid #8cbdd5; overflow: auto;"> 34 35 <table width="100%" cellspacing="0"> 35 36 <thead style="background-color: #dedede; padding: 0px; margin: 0px; line-height: 8px; font-size: 14px;"> 36 <th width="50%" style="padding-left: 5px; margin: 0px;"><strong><?php _e('Name', 'pretty-link'); ?></strong></th>37 <th width="50%" style="padding-left: 5px; margin: 0px;"><strong><?php _e('Current Group', 'pretty-link'); ?></strong></th>37 <th width="50%" style="padding-left: 5px; margin: 0px;"><strong><?php esc_html_e('Name', 'pretty-link'); ?></strong></th> 38 <th width="50%" style="padding-left: 5px; margin: 0px;"><strong><?php esc_html_e('Current Group', 'pretty-link'); ?></strong></th> 38 39 </thead> 39 40 <?php … … 42 43 ?> 43 44 <tr style="line-height: 15px; font-size: 12px;<?php echo (($i%2)?' background-color: #efefef;':''); ?>"> 44 <td style="min-width: 50%; width: 50%;"><input type="checkbox" style="width: 15px;" name="link[<?php echo $link->id; ?>]" <?php echo ((isset($_POST['link'][$link->id]) and $_POST['link'][$link->id] == 'on')?'checked="true"':''); ?>/> <?php echo htmlspecialchars(stripslashes($link->name)) . " <strong>(" . $link->slug . ")</strong>"; ?></td> 45 <td style="min-width: 50%; width: 50%;"><?php echo htmlspecialchars(stripslashes($link->group_name)); ?></td> 45 <td style="min-width: 50%; width: 50%;"> 46 <input type="checkbox" style="width: 15px;" name="link[<?php echo esc_attr($link->id); ?>]" <?php echo ((isset($_POST['link'][$link->id]) and $_POST['link'][$link->id] == 'on')?'checked="true"':''); ?>/> 47 <?php echo esc_html(stripslashes($link->name)) . " <strong>(" . esc_html(stripslashes($link->slug)) . ")</strong>"; ?> 48 </td> 49 <td style="min-width: 50%; width: 50%;"><?php echo esc_html(stripslashes($link->group_name)); ?></td> 46 50 </tr> 47 51 <?php … … 50 54 </table> 51 55 </div> 52 <span class="setting-description"><?php _e('Select some links for this group. <strong>Note: each link can only be in one group at a time.</strong>', 'pretty-link'); ?></span> 56 <span class="setting-description"> 57 <?php 58 printf( 59 // translators: %1$s: open strong tag, %2$s close strong tag 60 esc_html__('Select some links for this group. %1$sNote: each link can only be in one group at a time.%2$s', 'pretty-link'), 61 '<strong>', 62 '</strong>' 63 ); 64 ?> 65 </span> 53 66 </td> 54 67 </tr> … … 56 69 57 70 <p class="submit"> 58 <input type="submit" class="button button-primary" name="submit" value="<?php _e('Create', 'pretty-link'); ?>" /> <a href="<?php echo admin_url("admin.php?page=pretty-link-groups"); ?>" class="button"><?php_e('Cancel', 'pretty-link'); ?></a>71 <input type="submit" class="button button-primary" name="submit" value="<?php esc_attr_e('Create', 'pretty-link'); ?>" /> <a href="<?php echo esc_url(admin_url("admin.php?page=pretty-link-groups")); ?>" class="button"><?php esc_html_e('Cancel', 'pretty-link'); ?></a> 59 72 </p> 60 73 -
pretty-link/trunk/app/views/links/form.php
r1722928 r2124183 1 1 <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?> 2 2 3 <table class="form-table"> 4 <tr> 5 <th scope="row"> 6 <?php _e('Redirection*', 'pretty-link'); ?> 7 <?php PrliAppHelper::info_tooltip( 8 'prli-link-options-redirection-type', 9 __('Redirection Type', 'pretty-link'), 10 __('This is the method of redirection for your link.', 'pretty-link') 11 ); ?> 12 </th> 13 <td> 14 <select id="redirect_type" name="redirect_type" style="padding: 0px; margin: 0px;"> 15 <option value="307"<?php echo esc_html($values['redirect_type']['307']); ?>><?php _e("307 (Temporary)", 'pretty-link') ?> </option> 16 <option value="302"<?php echo esc_html($values['redirect_type']['302']); ?>><?php _e("302 (Temporary)", 'pretty-link') ?> </option> 17 <option value="301"<?php echo esc_html($values['redirect_type']['301']); ?>><?php _e("301 (Permanent)", 'pretty-link') ?> </option> 18 <?php do_action('prli_redirection_types', $values, false); ?> 19 </select> 20 <?php 21 global $plp_update; 22 if(!$plp_update->is_installed()) { 23 ?> 24 <p class="description"><?php printf(__('Make your life easier by upgrading to %1$sPretty Links Pro%2$s -- get more redirection types, speed, automations and <b>results from your links</b> by %1$sgoing pro today!%2$s', 'pretty-link'),'<a href="https://prettylinks.com/pl/link-form/upgrade" target="_blank">','</a>') ?></p> 25 <?php 26 } ?> 27 </td> 28 </tr> 29 <tr id="prli_target_url"> 30 <th scope="row"> 31 <?php _e('Target URL*', 'pretty-link'); ?> 32 <?php PrliAppHelper::info_tooltip( 33 'prli-link-options-target-url', 34 __('Target URL', 'pretty-link'), 35 __('This is the URL that your Pretty Link will redirect to.', 'pretty-link') 36 ); ?> 37 </th> 38 <td> 39 <textarea class="large-text" name="url"><?php echo esc_html($values['url'],ENT_COMPAT,'UTF-8'); ?></textarea> 3 <?php 4 if(isset($values['link_id']) && $values['link_id'] > 0) { 5 ?> 6 <input type="hidden" name="link_id" value="<?php echo esc_attr($values['link_id']); ?>" /> 7 <?php 8 } 9 10 $link_nonce = wp_create_nonce(PrliLink::$nonce_str . wp_salt()); 11 ?> 12 13 <input type="hidden" name="<?php echo esc_attr(PrliLink::$nonce_str); ?>" value="<?php echo esc_attr($link_nonce); ?>" /> 14 15 <div id="pretty_link_errors" class="prli-hidden"> 16 <p><!-- This is where our errors will show up --></p> 17 </div> 18 19 <table class="prli-settings-table"> 20 <tr class="prli-mobile-nav"> 21 <td colspan="2"> 22 <a href="" class="prli-toggle-nav"><i class="pl-icon-menu"> </i></a> 40 23 </td> 41 24 </tr> 42 25 <tr> 43 <th scope="row"> 44 <?php _e('Pretty Link*', 'pretty-link'); ?> 45 <?php PrliAppHelper::info_tooltip( 46 'prli-link-options-slug', 47 __('Pretty Link', 'pretty-link'), 48 __('This is how your pretty link will appear. You can edit the Pretty Link slug here.', 'pretty-link') 49 ); ?> 50 </th> 51 <td> 52 <strong><?php global $prli_blogurl; echo esc_html($prli_blogurl); ?></strong>/<input type="text" name="slug" class="regular-text" value="<?php echo esc_attr($values['slug']); ?>" /> 26 <td class="prli-settings-table-nav"> 27 <ul class="prli-sidebar-nav"> 28 <li><a data-id="basic"><?php esc_html_e('Basic', 'pretty-link'); ?></a></li> 29 <li><a data-id="advanced"><?php esc_html_e('Advanced', 'pretty-link'); ?></a></li> 30 <li><a data-id="pro"><?php esc_html_e('Pro', 'pretty-link'); ?></a></li> 31 <?php do_action('prli_admin_link_nav'); ?> 32 </ul> 53 33 </td> 54 </tr> 55 <tr> 56 <th scope="row"> 57 <?php _e('Title', 'pretty-link'); ?> 58 <?php PrliAppHelper::info_tooltip( 59 'prli-link-options-name', 60 __('Title', 'pretty-link'), 61 __('Leave this blank and Pretty Link will attempt to detect the title from the target url. Alternatively you can enter a custom title here.', 'pretty-link') 62 ); ?> 63 </th> 64 <td> 65 <input type="text" name="name" class="large-text" value="<?php echo esc_attr($values['name']); ?>" /> 66 </td> 67 </tr> 68 <tr> 69 <th scope="row"> 70 <?php _e('Notes', 'pretty-link'); ?> 71 <?php PrliAppHelper::info_tooltip( 72 'prli-link-options-notes', 73 __('Notes', 'pretty-link'), 74 __('This is a field where you can enter notes about a particular link. This notes field is mainly for your own link management needs. It isn\'t currently used anywhere on the front end.', 'pretty-link') 75 ); ?> 76 </th> 77 <td> 78 <textarea class="large-text" name="description"><?php echo esc_html($values['description'],ENT_COMPAT,'UTF-8'); ?></textarea> 34 <td class="prli-settings-table-pages"> 35 <div class="prli-page" id="basic"> 36 <?php require(PRLI_VIEWS_PATH . '/links/form_basic.php'); ?> 37 </div> 38 <div class="prli-page" id="advanced"> 39 <?php require(PRLI_VIEWS_PATH . '/links/form_advanced.php'); ?> 40 </div> 41 <div class="prli-page" id="pro"> 42 <?php require(PRLI_VIEWS_PATH . '/links/form_pro.php'); ?> 43 </div> 79 44 </td> 80 45 </tr> 81 46 </table> 82 47 83 <div class="prli-sub-box-white">84 <h3 class="prli-page-title"><a href="" class="prli-toggle-link" data-box="prli-link-advanced-options"><?php _e('Advanced Options', 'pretty-link'); ?></a></h3>85 <div class="prli-sub-box prli-link-advanced-options prli-hidden">86 <div class="prli-arrow prli-gray prli-up prli-sub-box-arrow"> </div>87 <table class="form-table" id="prli-link-advanced-options-box">88 <tbody>89 <tr>90 <th scope="row">91 <?php _e('Group', 'pretty-link'); ?>92 <?php PrliAppHelper::info_tooltip(93 'prli-link-options-group',94 __('Link Group', 'pretty-link'),95 __('Select a Group for this Link', 'pretty-link')96 ); ?>97 </th>98 <td>99 <select name="group_id" id="group_dropdown" style="padding: 0px; margin: 0px;">100 <option><?php _e("None", 'pretty-link') ?></option>101 <?php102 foreach($values['groups'] as $group) {103 ?>104 <option value="<?php echo esc_attr($group['id']); ?>"<?php echo esc_html($group['value']); ?>><?php echo esc_html($group['name']); ?> </option>105 <?php106 }107 ?>108 </select>109 <input class="defaultText" id="add_group_textbox" title="<?php _e('Add a New Group', 'pretty-link') ?>" type="text" prli_nonce="<?php echo wp_create_nonce('prli-add-new-group'); ?>" style="vertical-align:middle;" /><div id="add_group_message"></div>110 </td>111 </tr>112 <tr>113 <th scope="row">114 <?php _e('No Follow', 'pretty-link'); ?>115 <?php PrliAppHelper::info_tooltip(116 'prli-link-options-nofollow',117 __('Nofollow Link', 'pretty-link'),118 __('Add a nofollow and noindex to this link\'s http redirect header', 'pretty-link')119 ); ?>120 </th>121 <td>122 <input type="checkbox" name="nofollow" <?php echo esc_html($values['nofollow']); ?>/>123 </td>124 </tr>125 <tr id="prli_time_delay" style="display: none">126 <th scope="row">127 <?php _e('Delay Redirect', 'pretty-link'); ?>128 <?php PrliAppHelper::info_tooltip(129 'prli-link-delay-redirect',130 __('Delay Redirect', 'pretty-link'),131 __('Time in seconds to wait before redirecting', 'pretty-link')132 ); ?>133 </th>134 <td>135 <input type="number" name="delay" class="small-text" value="<?php echo esc_attr($values['delay']); ?>" />136 </td>137 </tr>138 <tr>139 <th scope="row">140 <?php _e("Parameter Forwarding", 'pretty-link') ?>141 <?php PrliAppHelper::info_tooltip(142 'prli-link-parameter-forwarding',143 __('Parameter Forwarding', 'pretty-link'),144 __('Forward parameters passed to this link onto the Target URL', 'pretty-link')145 ); ?>146 </th>147 <td>148 <input type="checkbox" name="param_forwarding" id="param_forwarding" <?php echo checked($values['param_forwarding']); ?> />149 </td>150 </tr>151 <tr>152 <th scope="row">153 <?php _e("Tracking", 'pretty-link') ?>154 <?php PrliAppHelper::info_tooltip(155 'prli-link-tracking-options',156 __('Tracking', 'pretty-link'),157 __('Enable Pretty Link\'s built-in hit (click) tracking', 'pretty-link')158 ); ?>159 </th>160 <td>161 <input type="checkbox" name="track_me" <?php echo esc_html($values['track_me']); ?> />162 </td>163 </tr>164 <tr id="prli_google_analytics" style="display: none">165 <th scope="row">166 <?php _e('Google Analytics', 'pretty-link'); ?>167 <?php PrliAppHelper::info_tooltip(168 'prli-link-ga',169 __('Google Analytics Tracking', 'pretty-link'),170 __('Requires the Google Analyticator, Google Analytics by MonsterInsights (formerly Yoast) or Google Analytics Plugin installed and configured for this to work.', 'pretty-link')171 ); ?>172 </th>173 <td>174 <?php175 global $plp_update;176 if($plp_update->is_installed()):177 if($ga_info = PlpUtils::ga_installed()):178 ?>179 <input type="checkbox" name="google_tracking" <?php echo esc_html($values['google_tracking']); ?> />180 <p class="description"><?php printf(__('It appears that <strong>%s</strong> is currently installed. Pretty Link will attempt to use its settings to track this link.', 'pretty-link'), $ga_info['name']); ?></p>181 <?php182 else:183 ?>184 <input type="hidden" name="google_tracking" value="" />185 <p class="description"><strong><?php _e('No Google Analytics Plugin is currently installed. Pretty Link cannot track links using Google Analytics until one is.', 'pretty-link'); ?></strong></p>186 <?php187 endif;188 endif;189 ?>190 </td>191 </tr>192 </tbody>193 </table>194 </div>195 </div>196 <div> </div>197 <div class="prli-sub-box-white">198 <h3><a href="" class="prli-toggle-link" data-box="prli-link-pro-options"><?php _e('Pro Options', 'pretty-link'); ?></a></h3>199 <div class="prli-sub-box prli-link-pro-options prli-hidden">200 <div class="prli-arrow prli-gray prli-up prli-sub-box-arrow"> </div>201 <?php202 global $plp_update;203 if($plp_update->is_installed()) {204 ?>205 <table class="form-table" id="prli-link-pro-options-box">206 <?php207 208 $id = isset($id)?$id:false;209 // Add stuff to the form here210 do_action('prli_link_fields',$id);211 212 ?>213 </table>214 <?php215 }216 else {217 ?>218 <h2><?php _e('Oops!', 'pretty-link'); ?></h2>219 220 <div>221 <?php printf(__('It looks like you haven\'t %1$supgraded to Pretty Links Pro%2$s yet. Here are just a few things you could be doing with pro:', 'pretty-link'),'<a href="https://prettylinks.com/pl/link-form/upgrade-1" target="_blank">','</a>') ?>222 </div>223 <div> </div>224 <ul style="padding-left: 25px;">225 <li>• <?php _e('Auto-replace keywords throughout your site with Pretty Links', 'pretty-link'); ?></li>226 <li>• <?php _e('Protect your affiliate links by using Cloaked Redirects', 'pretty-link'); ?></li>227 <li>• <?php _e('Redirect based on a visitor\'s location', 'pretty-link'); ?></li>228 <li>• <?php _e('Auto-prettylink your Pages & Posts', 'pretty-link'); ?></li>229 <li>• <?php _e('Find out what works and what doesn\'t by split testing your links', 'pretty-link'); ?></li>230 <li>• <?php _e('And much, much more!', 'pretty-link'); ?></li>231 </ul>232 <div> </div>233 <div><?php _e('Plus, upgrading is fast, easy and won\'t disrupt any of your existing links or data. And there\'s even a 14 day money back guarantee.', 'pretty-link'); ?></div>234 <div> </div>235 <div><?php _e('We think you\'ll love it!', 'pretty-link'); ?></div>236 <div> </div>237 <div><a href="https://prettylinks.com/pl/link-form/upgrade-2" class="button button-primary"><?php _e('Upgrade to Pro today!', 'pretty-link'); ?></a></div>238 <?php239 }240 ?>241 </div>242 </div>243 -
pretty-link/trunk/app/views/options/form.php
r1722928 r2124183 1 1 <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?> 2 2 <div class="wrap"> 3 <?php echo PrliAppHelper::page_title(__('Options', 'pretty-link')); ?>4 <a href="https://prettylinks.com/user-manual-2" class="page-title-action"><?php _e('User Manual', 'pretty-link'); ?></a>3 <?php PrliAppHelper::page_title(esc_html__('Options', 'pretty-link')); ?> 4 <a href="https://prettylinks.com/user-manual-2" class="page-title-action"><?php esc_html_e('User Manual', 'pretty-link'); ?></a> 5 5 <hr class="wp-header-end"> 6 6 … … 10 10 global $prli_siteurl; 11 11 ?> 12 <div class="error"><p><strong><?php _e('WordPress Must be Configured:', 'pretty-link'); ?></strong> <?php _e("Pretty Link won't work until you select a Permalink Structure other than 'Default'", 'pretty-link'); ?> ... <a href="<?php echo $prli_siteurl; ?>/wp-admin/options-permalink.php"><?php _e('Permalink Settings', 'pretty-link'); ?></a></p></div> 12 <div class="error"> 13 <p> 14 <?php 15 printf( 16 // translators: %1$s: open strong tag, %2$s: close strong tag 17 esc_html__('%1$sWordPress Must be Configured:%2$s Pretty Links won\'t work until you select a Permalink Structure other than \'Default\'', 'pretty-link'), 18 '<strong>', 19 '</strong>' 20 ); 21 ?> 22 ... <a href="<?php echo esc_url(admin_url('options-permalink.php')); ?>"><?php esc_html_e('Permalink Settings', 'pretty-link'); ?></a> 23 </p> 24 </div> 13 25 <?php 14 26 } … … 21 33 <?php endif; ?> 22 34 23 <form name="form1" id="prli-options" method="post" action="<?php echo admin_url('/admin.php?page=pretty-link-options'); ?>">24 <input type="hidden" name="<?php echo $hidden_field_name; ?>" value="Y">35 <form name="form1" id="prli-options" method="post" action="<?php echo esc_url(admin_url('/admin.php?page=pretty-link-options')); ?>"> 36 <input type="hidden" name="<?php echo esc_attr($hidden_field_name); ?>" value="Y"> 25 37 <?php wp_nonce_field('update-options'); ?> 26 38 … … 35 47 <ul class="prli-sidebar-nav"> 36 48 <?php if($plp_update->is_installed()): ?> 37 <li><a data-id="general"><?php _e('General', 'pretty-link'); ?></a></li>49 <li><a data-id="general"><?php esc_html_e('General', 'pretty-link'); ?></a></li> 38 50 <?php endif; ?> 39 <li><a data-id="links"><?php _e('Links', 'pretty-link'); ?></a></li> 40 <li><a data-id="reporting"><?php _e('Reporting', 'pretty-link'); ?></a></li> 51 <li><a data-id="links"><?php esc_html_e('Links', 'pretty-link'); ?></a></li> 52 <li><a data-id="reporting"><?php esc_html_e('Reporting', 'pretty-link'); ?></a></li> 53 <li><a data-id="replacements"><?php esc_html_e('Replacements', 'pretty-link'); ?></a></li> 54 <li><a data-id="auto-create"><?php esc_html_e('Auto-Create Links', 'pretty-link'); ?></a></li> 55 <li><a data-id="prettybar"><?php esc_html_e('Pretty Bar', 'pretty-link'); ?></a></li> 56 <li><a data-id="social"><?php esc_html_e('Social', 'pretty-link'); ?></a></li> 57 <li><a data-id="public-links"><?php esc_html_e('Public', 'pretty-link'); ?></a></li> 41 58 <?php do_action('prli_admin_options_nav'); ?> 42 59 </ul> … … 45 62 <?php if($plp_update->is_installed()): ?> 46 63 <div class="prli-page" id="general"> 47 <div class="prli-page-title"><?php _e('General Options', 'pretty-link'); ?></div>64 <div class="prli-page-title"><?php esc_html_e('General Options', 'pretty-link'); ?></div> 48 65 <?php do_action('prli_admin_general_options'); ?> 49 66 </div> … … 51 68 52 69 <div class="prli-page" id="links"> 53 <div class="prli-page-title"><?php _e('Default Link Options', 'pretty-link'); ?></div>70 <div class="prli-page-title"><?php esc_html_e('Default Link Options', 'pretty-link'); ?></div> 54 71 <table class="form-table"> 55 72 <tbody> 56 73 <tr valign="top"> 57 74 <th scope="row"> 58 <label for="<?php echo $link_redirect_type; ?>"><?php _e('Redirection Type', 'pretty-link') ?></label>75 <label for="<?php echo esc_attr($link_redirect_type); ?>"><?php esc_html_e('Redirection', 'pretty-link') ?></label> 59 76 <?php PrliAppHelper::info_tooltip('prli-options-default-link-redirection', 60 __('Redirection Type', 'pretty-link'),61 __('Select the type of redirection you want your newly created links to have.', 'pretty-link'));77 esc_html__('Redirection Type', 'pretty-link'), 78 esc_html__('Select the type of redirection you want your newly created links to have.', 'pretty-link')); 62 79 ?> 63 80 </th> 64 81 <td> 65 82 <?php PrliLinksHelper::redirect_type_dropdown($link_redirect_type, $prli_options->link_redirect_type); ?> 83 <?php 84 global $plp_update; 85 if(!$plp_update->is_installed()) { 86 ?> 87 <p class="description"><?php printf(esc_html__('Get cloaked redirects, Javascript redirects and more when you %1$sUpgrade to PRO%2$s', 'pretty-link'),'<a href="https://prettylinks.com/pl/link-form/upgrade" target="_blank">','</a>') ?></p> 88 <?php 89 } 90 ?> 66 91 </td> 67 92 </tr> 68 93 <tr valign="top"> 69 94 <th scope="row"> 70 <label for="<?php echo $link_track_me; ?>"><?php_e('Enable Tracking', 'pretty-link'); ?></label>95 <label for="<?php echo esc_attr($link_track_me); ?>"><?php esc_html_e('Enable Tracking', 'pretty-link'); ?></label> 71 96 <?php PrliAppHelper::info_tooltip('prli-options-track-link', 72 __('Enable Tracking', 'pretty-link'),73 __('Default all new links to be tracked.', 'pretty-link'));97 esc_html__('Enable Tracking', 'pretty-link'), 98 esc_html__('Default all new links to be tracked.', 'pretty-link')); 74 99 ?> 75 100 </th> 76 101 <td> 77 <input type="checkbox" name="<?php echo $link_track_me; ?>" <?php checked($prli_options->link_track_me != 0); ?>/>102 <input type="checkbox" name="<?php echo esc_attr($link_track_me); ?>" <?php checked($prli_options->link_track_me != 0); ?>/> 78 103 </td> 79 104 </tr> 80 105 <tr valign="top"> 81 106 <th scope="row"> 82 <label for="<?php echo $link_nofollow; ?>"><?php_e('Enable No Follow', 'pretty-link'); ?></label>107 <label for="<?php echo esc_attr($link_nofollow); ?>"><?php esc_html_e('Enable No Follow', 'pretty-link'); ?></label> 83 108 <?php PrliAppHelper::info_tooltip('prli-options-add-nofollow', 84 __('Add No Follow', 'pretty-link'),85 __('Add the \'nofollow\' attribute by default to new links.', 'pretty-link'));109 esc_html__('Add No Follow', 'pretty-link'), 110 esc_html__('Add the \'nofollow\' attribute by default to new links.', 'pretty-link')); 86 111 ?> 87 112 </th> 88 113 <td> 89 <input type="checkbox" name="<?php echo $link_nofollow; ?>" <?php checked($prli_options->link_nofollow != 0); ?>/>114 <input type="checkbox" name="<?php echo esc_attr($link_nofollow); ?>" <?php checked($prli_options->link_nofollow != 0); ?>/> 90 115 </td> 91 116 </tr> 92 117 <tr valign="top"> 93 118 <th scope="row"> 94 <label for="<?php echo $link_prefix; ?>"><?php_e('Enable Permalink Fix', 'pretty-link'); ?></label>119 <label for="<?php echo esc_attr($link_prefix); ?>"><?php esc_html_e('Enable Permalink Fix', 'pretty-link'); ?></label> 95 120 <?php PrliAppHelper::info_tooltip('prli-options-use-prefix-permalinks', 96 __('Use fix for index.php Permalink Structure', 'pretty-link'),97 __("This option should ONLY be checked if you have elements in your permalink structure that must be present in any link on your site. For example, some WordPress installs don't have the benefit of full rewrite capabilities and in this case you'd need an index.php included in each link (http://example.com/index.php/mycoolslug instead of http://example.com/mycoolslug). If this is the case for you then check this option but the vast majority of users will want to keep this unchecked.", 'pretty-link'));121 esc_html__('Use fix for index.php Permalink Structure', 'pretty-link'), 122 esc_html__("This option should ONLY be checked if you have elements in your permalink structure that must be present in any link on your site. For example, some WordPress installs don't have the benefit of full rewrite capabilities and in this case you'd need an index.php included in each link (http://example.com/index.php/mycoolslug instead of http://example.com/mycoolslug). If this is the case for you then check this option but the vast majority of users will want to keep this unchecked.", 'pretty-link')); 98 123 ?> 99 124 </th> 100 125 <td> 101 <input type="checkbox" name="<?php echo $link_prefix; ?>" <?php checked($prli_options->link_prefix != 0); ?>/> 102 </td> 103 </tr> 126 <input type="checkbox" name="<?php echo esc_attr($link_prefix); ?>" <?php checked($prli_options->link_prefix != 0); ?>/> 127 </td> 128 </tr> 129 130 <?php if(!$plp_update->is_installed()): ?> 131 132 <tr valign="top" class="prli-pro-only"> 133 <th scope="row"> 134 <label><?php esc_html_e('Base Slug Prefix', 'pretty-link'); ?></label> 135 <?php PrliAppHelper::info_tooltip('prli-base-slug-prefix', 136 esc_html__('Base Slug Prefix', 'pretty-link'), 137 sprintf( 138 // translators: %1$s: open b tag, %2$s close b tag 139 esc_html__('Use this to prefix all newly generated pretty links with a directory of your choice. For example set to %1$sout%2$s to make your pretty links look like http://site.com/%1$sout%2$s/xyz. Changing this option will NOT affect existing pretty links. If you do not wish to use a directory prefix, leave this text field blank. Whatever you type here will be sanitized and modified to ensure it is URL-safe. So %1$sHello World%2$s might get changed to something like %1$shello-world%2$s instead. Lowercase letters, numbers, dashes, and underscores are allowed.', 'pretty-link'), 140 '<b>', 141 '</b>' 142 )); 143 ?> 144 <?php echo PrliAppHelper::pro_only_feature_indicator('option-base-slug-prefix'); ?> 145 </th> 146 <td> 147 <input type="text" class="regular-text" disabled /> 148 </td> 149 </tr> 150 151 <tr valign="top" class="prli-pro-only"> 152 <th scope="row"> 153 <label><?php esc_html_e('Slug Character Count', 'pretty-link'); ?></label> 154 <?php PrliAppHelper::info_tooltip('prli-num-slug-chars', 155 esc_html__('Slug Character Count', 'pretty-link'), 156 esc_html__("The number of characters to use when auto-generating a random slug for pretty links. The default is 4. You cannot use less than 2.", 'pretty-link')); 157 ?> 158 <?php echo PrliAppHelper::pro_only_feature_indicator('option-slug-character-count'); ?> 159 </th> 160 <td> 161 <input type="number" min="2" disabled value="4" /> 162 </td> 163 </tr> 164 165 <tr valign="top" class="prli-pro-only"> 166 <th scope="row"> 167 <label><?php esc_html_e('Enable Google Analytics', 'pretty-link') ?></label> 168 <?php PrliAppHelper::info_tooltip('prli-options-use-ga', esc_html__('Enable Google Analytics', 'pretty-link'), 169 esc_html__("Requires Google Analyticator, Google Analytics by MonsterInsights (formerly Yoast), or the Google Analytics Plugin to be installed and configured on your site.", 'pretty-link')); 170 ?> 171 <?php echo PrliAppHelper::pro_only_feature_indicator('option-google-analytics'); ?> 172 </th> 173 <td> 174 <input type="checkbox" disabled /> 175 </td> 176 </tr> 177 178 <tr valign="top" class="prli-pro-only"> 179 <th scope="row"> 180 <label><?php printf(esc_html__('Enable %sQR Codes%s', 'pretty-link'), '<a href="http://en.wikipedia.org/wiki/QR_code">', '</a>'); ?></label> 181 <?php PrliAppHelper::info_tooltip('prli-options-generate-qr-codes', 182 esc_html__('Generate QR Codes', 'pretty-link'), 183 esc_html__("This will enable a link in your pretty link admin that will allow you to automatically download a QR Code for each individual Pretty Link.", 'pretty-link')); 184 ?> 185 <?php echo PrliAppHelper::pro_only_feature_indicator('option-qr-codes'); ?> 186 </th> 187 <td> 188 <input type="checkbox" disabled /> 189 </td> 190 </tr> 191 192 <tr valign="top" class="prli-pro-only"> 193 <th scope="row"> 194 <label><?php esc_html_e('Global Head Scripts', 'pretty-link'); ?></label> 195 <?php PrliAppHelper::info_tooltip('prli-options-global-head-scripts', 196 esc_html__('Global Head Scripts', 'pretty-link'), 197 sprintf( 198 // translators: %1$s: br tag, %2$s: open b tag, %3$s close b tag 199 esc_html__('Useful for adding Google Analytics tracking, Facebook retargeting pixels, or any other kind of tracking script to the HTML head.%1$s%1$sWhat you enter in this box will be applied to all supported pretty links.%1$s%1$s%2$sNOTE:%3$s This does NOT work with 301, 302 and 307 type redirects.', 'pretty-link'), 200 '<br>', 201 '<b>', 202 '</b>' 203 )); 204 ?> 205 <?php echo PrliAppHelper::pro_only_feature_indicator('option-global-head-scripts'); ?> 206 </th> 207 <td> 208 <textarea class="large-text" disabled></textarea> 209 </td> 210 </tr> 211 212 <?php endif; ?> 213 104 214 <?php do_action('prli_custom_link_options'); ?> 105 215 </tbody> … … 108 218 109 219 <div class="prli-page" id="reporting"> 110 <div class="prli-page-title"><?php _e('Reporting Options', 'pretty-link'); ?></div>220 <div class="prli-page-title"><?php esc_html_e('Reporting Options', 'pretty-link'); ?></div> 111 221 <table class="form-table"> 112 222 <tbody> 113 223 <tr valign="top"> 114 224 <th scope="row"> 115 <?php _e('Tracking Style', 'pretty-link'); ?>225 <?php esc_html_e('Tracking Style', 'pretty-link'); ?> 116 226 <?php PrliAppHelper::info_tooltip('prli-options-tracking-style', 117 __('Tracking Style', 'pretty-link'),118 __("Changing your tracking style can affect the accuracy of your existing statistics. Extended mode must be used for Conversion reporting.", 'pretty-link'));227 esc_html__('Tracking Style', 'pretty-link'), 228 esc_html__("Changing your tracking style can affect the accuracy of your existing statistics. Extended mode must be used for Conversion reporting.", 'pretty-link')); 119 229 ?> 120 230 </th> 121 231 <td> 122 <input type="radio" name="<?php echo $extended_tracking; ?>" value="normal" <?php checked($prli_options->extended_tracking,'normal'); ?>/><span class="prli-radio-text"><?php_e('Normal Tracking', 'pretty-link'); ?></span><br/><br/>123 <input type="radio" name="<?php echo $extended_tracking; ?>" value="extended"<?php checked($prli_options->extended_tracking,'extended'); ?>/><span class="prli-radio-text"><?php_e('Extended Tracking (more stats / slower performance)', 'pretty-link'); ?></span><br/><br/>124 <input type="radio" name="<?php echo $extended_tracking; ?>" value="count"<?php checked($prli_options->extended_tracking,'count'); ?>/><span class="prli-radio-text"><?php_e('Simple Click Count Tracking (less stats / faster performance)', 'pretty-link'); ?></span><br/>232 <input type="radio" name="<?php echo esc_attr($extended_tracking); ?>" value="normal" <?php checked($prli_options->extended_tracking,'normal'); ?>/><span class="prli-radio-text"><?php esc_html_e('Normal Tracking', 'pretty-link'); ?></span><br/><br/> 233 <input type="radio" name="<?php echo esc_attr($extended_tracking); ?>" value="extended"<?php checked($prli_options->extended_tracking,'extended'); ?>/><span class="prli-radio-text"><?php esc_html_e('Extended Tracking (more stats / slower performance)', 'pretty-link'); ?></span><br/><br/> 234 <input type="radio" name="<?php echo esc_attr($extended_tracking); ?>" value="count"<?php checked($prli_options->extended_tracking,'count'); ?>/><span class="prli-radio-text"><?php esc_html_e('Simple Click Count Tracking (less stats / faster performance)', 'pretty-link'); ?></span><br/> 125 235 </td> 126 236 </tr> 127 237 <tr valign="top"> 128 238 <th scope="row"> 129 <label for="<?php echo $prli_exclude_ips; ?>">130 <?php _e('Excluded IP Addresses:', 'pretty-link'); ?>239 <label for="<?php echo esc_attr($prli_exclude_ips); ?>"> 240 <?php esc_html_e('Excluded IP Addresses:', 'pretty-link'); ?> 131 241 <?php PrliAppHelper::info_tooltip('prli-options-excluded-ips', 132 __('Excluded IP Addresses', 'pretty-link'), 133 sprintf(__("Enter IP Addresses or IP Ranges you want to exclude from your Click data and Stats. Each IP Address should be separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*<br/><br/><strong>FYI, your current IP address is %s.", 'pretty-link'), $prli_utils->get_current_client_ip())); 134 ?> 135 </label> 136 </th> 137 <td> 138 <input type="text" name="<?php echo $prli_exclude_ips; ?>" class="regular-text" value="<?php echo $prli_options->prli_exclude_ips; ?>"> 242 esc_html__('Excluded IP Addresses', 'pretty-link'), 243 esc_html__('Enter IP Addresses or IP Ranges you want to exclude from your Click data and Stats. Each IP Address should be separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*', 'pretty-link') . 244 sprintf( 245 '<br/><br/><strong>%s</strong>', 246 esc_html(sprintf(__('FYI, your current IP address is %s.', 'pretty-link'), $prli_utils->get_current_client_ip())) 247 )); 248 ?> 249 </label> 250 </th> 251 <td> 252 <input type="text" name="<?php echo esc_attr($prli_exclude_ips); ?>" class="regular-text" value="<?php echo esc_attr($prli_options->prli_exclude_ips); ?>"> 139 253 </td> 140 254 </tr> 141 255 <tr valign="top"> 142 256 <th scope="row"> 143 <?php _e('Auto-Trim Clicks', 'pretty-link'); ?>257 <?php esc_html_e('Auto-Trim Clicks', 'pretty-link'); ?> 144 258 <?php PrliAppHelper::info_tooltip('prli-options-auto-trim-clicks', 145 __('Automatically Trim Clicks', 'pretty-link'),146 __("Will automatically delete all hits older than 90 days. We strongly recommend doing this to keep your database performance up. This will permanently delete this click data, and is not undo-able. ", 'pretty-link'));259 esc_html__('Automatically Trim Clicks', 'pretty-link'), 260 esc_html__("Will automatically delete all hits older than 90 days. We strongly recommend doing this to keep your database performance up. This will permanently delete this click data, and is not undo-able. ", 'pretty-link')); 147 261 ?> 148 262 </th> 149 263 <td> 150 <input type="checkbox" name="<?php echo $auto_trim_clicks; ?>" <?php checked($prli_options->auto_trim_clicks != 0); ?> />264 <input type="checkbox" name="<?php echo esc_attr($auto_trim_clicks); ?>" <?php checked($prli_options->auto_trim_clicks != 0); ?> /> 151 265 </td> 152 266 </tr> 153 267 <tr valign="top"> 154 268 <th scope="row"> 155 <?php _e('Filter Robots', 'pretty-link'); ?>269 <?php esc_html_e('Filter Robots', 'pretty-link'); ?> 156 270 <?php PrliAppHelper::info_tooltip('prli-options-filter-robots', 157 __('Filter Robots', 'pretty-link'),158 __("Filter known Robots and unidentifiable browser clients from your click data, stats and reports. Works best if Tracking Style above is set to 'Extended Tracking'.", 'pretty-link'));271 esc_html__('Filter Robots', 'pretty-link'), 272 esc_html__("Filter known Robots and unidentifiable browser clients from your click data, stats and reports. Works best if Tracking Style above is set to 'Extended Tracking'.", 'pretty-link')); 159 273 ?> 160 274 </th> 161 275 <td> 162 <input type="checkbox" class="prli-toggle-checkbox" data-box="prli-whitelist-ips" name="<?php echo $filter_robots; ?>" <?php checked($prli_options->filter_robots != 0); ?> />276 <input type="checkbox" class="prli-toggle-checkbox" data-box="prli-whitelist-ips" name="<?php echo esc_attr($filter_robots); ?>" <?php checked($prli_options->filter_robots != 0); ?> /> 163 277 </td> 164 278 </tr> … … 171 285 <tr valign="top"> 172 286 <th scope="row"> 173 <label for="<?php echo $whitelist_ips; ?>">174 <?php _e('Whitelist IP Addresses', 'pretty-link'); ?>287 <label for="<?php echo esc_attr($whitelist_ips); ?>"> 288 <?php esc_html_e('Whitelist IP Addresses', 'pretty-link'); ?> 175 289 <?php PrliAppHelper::info_tooltip('prli-options-whitelist-ips', 176 __('Whiltelist IP Addresses', 'pretty-link'),177 __("Enter IP Addresses or IP Ranges you want to always include in your Click data and Stats even if they are flagged as robots. Each IP Address should be separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*", 'pretty-link'));290 esc_html__('Whitelist IP Addresses', 'pretty-link'), 291 esc_html__("Enter IP Addresses or IP Ranges you want to always include in your Click data and Stats even if they are flagged as robots. Each IP Address should be separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*", 'pretty-link')); 178 292 ?> 179 293 </label> 180 294 </th> 181 <td><input type="text" name="<?php echo $whitelist_ips; ?>" class="regular-text" value="<?php echo $prli_options->whitelist_ips; ?>"></td>295 <td><input type="text" name="<?php echo esc_attr($whitelist_ips); ?>" class="regular-text" value="<?php echo esc_attr($prli_options->whitelist_ips); ?>"></td> 182 296 </tr> 183 297 </tbody> … … 186 300 </div> 187 301 302 <?php if(!$plp_update->is_installed()): ?> 303 304 <div class="prli-page" id="replacements"> 305 <div class="prli-page-title"><?php esc_html_e('Keyword & URL Auto Replacements Options', 'pretty-link'); ?></div> 306 307 <table class="form-table"> 308 <tbody> 309 <tr valign="top" class="prli-pro-only"> 310 <th scope="row"> 311 <label> 312 <?php esc_html_e('Enable Replacements', 'pretty-link'); ?> 313 <?php PrliAppHelper::info_tooltip('prli-keyword-replacement', 314 esc_html__('Enable Keyword and URL Auto Replacement', 'pretty-link'), 315 esc_html__('If checked, this will enable you to automatically replace keywords and/or URLs on your blog with pretty links. You will specify the specific keywords and urls from your Pretty Link edit page.', 'pretty-link')); 316 ?> 317 <?php echo PrliAppHelper::pro_only_feature_indicator('option-enable-replacements'); ?> 318 </label> 319 </th> 320 <td> 321 <input class="prli-toggle-checkbox" type="checkbox" checked disabled /> 322 </td> 323 </tr> 324 </tbody> 325 </table> 326 327 <div class="prli-sub-box pretty-link-keyword-replacement-options"> 328 <div class="prli-arrow prli-gray prli-up prli-sub-box-arrow"> </div> 329 <table class="form-table"> 330 <tbody> 331 <tr valign="top" class="prli-pro-only"> 332 <th scope="row"> 333 <label> 334 <?php esc_html_e('Thresholds', 'pretty-link'); ?> 335 <?php PrliAppHelper::info_tooltip('prli-keyword-replacement-thresholds', 336 esc_html__('Set Keyword Replacement Thresholds', 'pretty-link'), 337 esc_html__('Don\'t want to have too many keyword replacements per page? Select to set some reasonable keyword replacement thresholds.', 'pretty-link')); 338 ?> 339 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-thresholds'); ?> 340 </label> 341 </th> 342 <td> 343 <input class="prli-toggle-checkbox" type="checkbox" disabled /> 344 </td> 345 </tr> 346 </tbody> 347 </table> 348 <table class="form-table"> 349 <tbody> 350 <tr valign="top" class="prli-pro-only"> 351 <th scope="row"> 352 <label> 353 <?php esc_html_e('Open in New Window', 'pretty-link'); ?> 354 <?php PrliAppHelper::info_tooltip('prli-keyword-replacement-thresholds', 355 esc_html__('Open Keyword Replacement Links in New Window', 'pretty-link'), 356 sprintf( 357 // translators: %1$s: open strong tag, %2$s: close strong tag 358 esc_html__('Ensure that these keyword replacement links are opened in a separate window. %1$sNote:%2$s This does not apply to url replacements--only keyword replacements.', 'pretty-link'), 359 '<strong>', 360 '</strong>' 361 )); 362 ?> 363 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-new-window'); ?> 364 </label> 365 </th> 366 <td> 367 <input type="checkbox" disabled /> 368 </td> 369 </tr> 370 <tr valign="top" class="prli-pro-only"> 371 <th scope="row"> 372 <label> 373 <?php esc_html_e('Add No Follows', 'pretty-link'); ?> 374 <?php PrliAppHelper::info_tooltip('prli-keyword-links-nofollow', 375 esc_html__('Add \'nofollow\' attribute to all Keyword Pretty Links', 'pretty-link'), 376 sprintf( 377 // translators: %1$s: open code tag, %2$s: close code tag, %3$s: open strong tag, %4$s close strong tag 378 esc_html__('This adds the html %1$sNOFOLLOW%2$s attribute to all keyword replacement links. %3$sNote:%4$s This does not apply to url replacements--only keyword replacements.', 'pretty-link'), 379 '<code>', 380 '</code>', 381 '<strong>', 382 '</strong>' 383 )); 384 ?> 385 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-no-follows'); ?> 386 </label> 387 </th> 388 <td> 389 <input type="checkbox" disabled /> 390 </td> 391 </tr> 392 <tr valign="top" class="prli-pro-only"> 393 <th scope="row"> 394 <label> 395 <?php esc_html_e('Custom CSS', 'pretty-link'); ?> 396 <?php PrliAppHelper::info_tooltip('prli-keyword-custom-css', 397 esc_html__('Add custom CSS to your keyword replacement links', 'pretty-link'), 398 sprintf( 399 // translators: %1$s: open strong tag, %2$s: close strong tag 400 esc_html__('Add some custom formatting to your keyword pretty link replacements. %1$sNote:%2$s This does not apply to url replacements--only keyword replacements.', 'pretty-link'), 401 '<strong>', 402 '</strong>' 403 )); 404 ?> 405 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-custom-css'); ?> 406 </label> 407 </th> 408 <td> 409 <input type="text" class="regular-text" disabled /> 410 </td> 411 </tr> 412 <tr valign="top" class="prli-pro-only"> 413 <th valign="row"> 414 <label> 415 <?php esc_html_e('Custom Hover CSS', 'pretty-link'); ?> 416 <?php PrliAppHelper::info_tooltip('prli-keyword-custom-hover-css', 417 esc_html__('Add custom hover CSS to your keyword replacement links', 'pretty-link'), 418 sprintf( 419 // translators: %1$s: open strong tag, %2$s: close strong tag 420 esc_html__('Add some custom formatting to the hover attribute of your keyword pretty links. %1$sNote%2$s: This does not apply to url replacements--only keyword replacements.', 'pretty-link'), 421 '<strong>', 422 '</strong>' 423 )); 424 ?> 425 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-custom-hover-css'); ?> 426 </label> 427 </th> 428 <td> 429 <input type="text" class="regular-text" disabled /> 430 </td> 431 </tr> 432 <tr valign="top" class="prli-pro-only"> 433 <th valign="row"> 434 <label> 435 <?php esc_html_e('Link to Disclosures', 'pretty-link'); ?> 436 <?php PrliAppHelper::info_tooltip( 437 'prlipro-link-to-disclosures', 438 esc_html__('Automatically Add a Link to Disclosures', 'pretty-link'), 439 esc_html__('When enabled, this will add a link to your official affiliate link disclosure page to any page, post or custom post type that have any keyword or URL replacements. You\'ll also be able to customize the URL and position of the disclosure link.', 'pretty-link') 440 ); 441 ?> 442 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-link-to-disclosures'); ?> 443 </label> 444 </th> 445 <td> 446 <input type="checkbox" class="prli-toggle-checkbox" disabled /> 447 </td> 448 </tr> 449 <tr valign="top" class="prli-pro-only"> 450 <th valign="row"> 451 <label> 452 <?php esc_html_e('Keyword Disclosures', 'pretty-link'); ?> 453 <?php PrliAppHelper::info_tooltip( 454 'prlipro-enable-keyword-link-disclosures', 455 esc_html__('Automatically Add Affiliate Link Disclosures to Keyword Replacements', 'pretty-link'), 456 sprintf( 457 // translators: %1$s: open b tag, %2$s close b tag 458 esc_html__('When enabled, this will add an affiliate link disclosure next to each one of your keyword replacements. %1$sNote:%2$s This does not apply to url replacements--only keyword replacements.', 'pretty-link'), 459 '<b>', 460 '</b>' 461 ) 462 ); 463 ?> 464 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-keyword-disclosures'); ?> 465 </label> 466 </th> 467 <td> 468 <input type="checkbox" class="prli-toggle-checkbox" disabled /> 469 </td> 470 </tr> 471 <tr valign="top" class="prli-pro-only"> 472 <th valign="row"> 473 <label> 474 <?php esc_html_e('Replace All URLs', 'pretty-link'); ?> 475 <?php PrliAppHelper::info_tooltip('prli-replace-urls', 476 esc_html__('Replace All non-Pretty Link URLs With Pretty Link URLs', 'pretty-link'), 477 esc_html__('This feature will take each url it finds and create or use an existing pretty link pointing to the url and replace it with the pretty link.', 'pretty-link')); 478 ?> 479 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-replace-urls'); ?> 480 </label> 481 </th> 482 <td> 483 <input type="checkbox" class="prli-toggle-checkbox" disabled /> 484 </td> 485 </tr> 486 <tr valign="top" class="prli-pro-only"> 487 <th valign="row"> 488 <label> 489 <?php esc_html_e('Replace in Comments', 'pretty-link'); ?> 490 <?php PrliAppHelper::info_tooltip('prli-replace-in-comments', 491 esc_html__('Replace Keywords and URLs in Comments', 'pretty-link'), 492 esc_html__('This option will enable the keyword / URL replacement routine to run in Comments.', 'pretty-link')); 493 ?> 494 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-replace-in-comments'); ?> 495 </label> 496 </th> 497 <td> 498 <input type="checkbox" disabled /> 499 </td> 500 </tr> 501 <tr valign="top" class="prli-pro-only"> 502 <th valign="row"> 503 <label> 504 <?php esc_html_e('Replace in Feeds', 'pretty-link'); ?> 505 <?php PrliAppHelper::info_tooltip('prli-replace-in-feeds', 506 esc_html__('Replace Keywords and URLs in Feeds', 'pretty-link'), 507 sprintf( 508 // translators: %1$s: br tag, %2$s open strong tag, %3$s: close strong tag 509 esc_html__('This option will enable the keyword / URL replacement routine to run in RSS Feeds.%1$s%2$sNote:%3$s This option can slow the load speed of your RSS feed -- unless used in conjunction with a caching plugin like W3 Total Cache or WP Super Cache.%1$s%2$sNote #2%3$s This option will only work if you have "Full Text" selected in your General WordPress Reading settings.%1$s%2$sNote #3:%3$s If this option is used along with "Replace Keywords and URLs in Comments" then your post comment feeds will have keywords replaced in them as well.', 'pretty-link'), 510 '<br>', 511 '<strong>', 512 '</strong>' 513 )); 514 ?> 515 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-replace-in-feeds'); ?> 516 </label> 517 </th> 518 <td> 519 <input type="checkbox" disabled /> 520 </td> 521 </tr> 522 <tr valign="top" class="prli-pro-only"> 523 <th valign="row"> 524 <label> 525 <?php esc_html_e('Index Replacements', 'pretty-link'); ?> 526 <?php PrliAppHelper::info_tooltip('plp-index-keywords', 527 esc_html__('Index Replacements', 'pretty-link'), 528 sprintf( 529 // translators: %1$s: br tag, %2$s open strong tag, %3$s: close strong tag 530 esc_html__('This feature will index all of your keyword & URL replacements to dramatically improve performance.%1$s%1$sIf your site has a large number of replacements and/or posts then this feature may increase the load on your server temporarily and your replacements may not show up on your posts for a day or two initially (until all posts are indexed).%1$s%1$s%2$sNote:%3$s this feature requires the use of wp-cron.', 'pretty-link'), 531 '<br>', 532 '<strong>', 533 '</strong>' 534 )); 535 ?> 536 <?php echo PrliAppHelper::pro_only_feature_indicator('option-replacement-index'); ?> 537 </label> 538 </th> 539 <td> 540 <input type="checkbox" class="prli-toggle-checkbox" disabled /> 541 </td> 542 </tr> 543 </tbody> 544 </table> 545 </div> 546 </div> 547 548 <div class="prli-page" id="auto-create"> 549 <div class="prli-page-title"><?php esc_html_e('Auto-Create Shortlink Options', 'pretty-link'); ?></div> 550 551 <table class="form-table"> 552 <tbody> 553 <tr valign="top" class="prli-pro-only"> 554 <th scope="row"> 555 <label> 556 <?php esc_html_e('Post Shortlinks', 'pretty-link'); ?> 557 <?php 558 PrliAppHelper::info_tooltip("prli-post-auto", 559 esc_html__('Create Pretty Links for Posts', 'pretty-link'), 560 esc_html__('Automatically Create a Pretty Link for each of your published Posts', 'pretty-link') 561 ); 562 ?> 563 <?php echo PrliAppHelper::pro_only_feature_indicator('option-auto-create-post'); ?> 564 </label> 565 </th> 566 <td> 567 <input class="prli-toggle-checkbox" type="checkbox" disabled /> 568 </td> 569 </tr> 570 <tr valign="top" class="prli-pro-only"> 571 <th scope="row"> 572 <label> 573 <?php esc_html_e('Page Shortlinks', 'pretty-link'); ?> 574 <?php 575 PrliAppHelper::info_tooltip("prli-page-auto", 576 esc_html__('Create Pretty Links for Pages', 'pretty-link'), 577 esc_html__('Automatically Create a Pretty Link for each of your published Pages', 'pretty-link') 578 ); 579 ?> 580 <?php echo PrliAppHelper::pro_only_feature_indicator('option-auto-create-page'); ?> 581 </label> 582 </th> 583 <td> 584 <input class="prli-toggle-checkbox" type="checkbox" disabled /> 585 </td> 586 </tr> 587 </tbody> 588 </table> 589 590 </div> 591 592 <div class="prli-page" id="prettybar"> 593 <div class="prli-page-title"><?php esc_html_e('Pretty Bar Options', 'pretty-link'); ?></div> 594 <table class="form-table"> 595 <tbody> 596 <tr valign="top" class="prli-pro-only"> 597 <th scope="row"> 598 <label> 599 <?php esc_html_e('Image URL', 'pretty-link'); ?> 600 <?php PrliAppHelper::info_tooltip('prli-prettybar-image-url', 601 esc_html__('Pretty Bar Image URL', 'pretty-link'), 602 esc_html__('If set, this will replace the logo image on the Pretty Bar. The image that this URL references should be 48x48 Pixels to fit.', 'pretty-link')); 603 ?> 604 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-image'); ?> 605 </label> 606 </th> 607 <td> 608 <input type="text" class="large-text" disabled /> 609 </td> 610 </tr> 611 <tr valign="top" class="prli-pro-only"> 612 <th scope="row"> 613 <label> 614 <?php esc_html_e('Background Image URL', 'pretty-link'); ?> 615 <?php PrliAppHelper::info_tooltip('prli-prettybar-background-image-url', 616 esc_html__('Pretty Bar Background Image URL', 'pretty-link'), 617 esc_html__('If set, this will replace the background image on Pretty Bar. The image that this URL references should be 65px tall - this image will be repeated horizontally across the bar.', 'pretty-link')); 618 ?> 619 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-background-image'); ?> 620 </label> 621 </th> 622 <td> 623 <input type="text" class="large-text" disabled /> 624 </td> 625 </tr> 626 <tr valign="top" class="prli-pro-only"> 627 <th scope="row"> 628 <label> 629 <?php esc_html_e('Background Color', 'pretty-link'); ?> 630 <?php PrliAppHelper::info_tooltip('prli-prettybar-color', 631 esc_html__('Pretty Bar Background Color', 'pretty-link'), 632 esc_html__('This will alter the background color of the Pretty Bar if you haven\'t specified a Pretty Bar background image.', 'pretty-link')); 633 ?> 634 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-background-color'); ?> 635 </label> 636 </th> 637 <td> 638 <input type="text" class="plp-colorpicker" size="8" disabled /> 639 </td> 640 </tr> 641 <tr valign="top" class="prli-pro-only"> 642 <th scope="row"> 643 <label> 644 <?php esc_html_e('Text Color', 'pretty-link'); ?> 645 <?php PrliAppHelper::info_tooltip('prli-prettybar-text-color', 646 esc_html__('Pretty Bar Text Color', 'pretty-link'), 647 sprintf( 648 // translators: %1$s: open code tag, %2$s: close code tag 649 esc_html__('If not set, this defaults to black (RGB value %1$s#000000%2$s) but you can change it to whatever color you like.', 'pretty-link'), 650 '<code>', 651 '</code>' 652 )); 653 ?> 654 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-text-color'); ?> 655 </label> 656 </th> 657 <td> 658 <input type="text" class="plp-colorpicker" size="8" disabled /> 659 </td> 660 </tr> 661 <tr valign="top" class="prli-pro-only"> 662 <th scope="row"> 663 <label> 664 <?php esc_html_e('Link Color', 'pretty-link'); ?> 665 <?php PrliAppHelper::info_tooltip('prli-prettybar-link-color', 666 esc_html__('Pretty Bar Link Color', 'pretty-link'), 667 sprintf( 668 // translators: %1$s: open code tag, %2$s: close code tag 669 esc_html__('If not set, this defaults to blue (RGB value %1$s#0000ee%2$s) but you can change it to whatever color you like.', 'pretty-link'), 670 '<code>', 671 '</code>' 672 )); 673 ?> 674 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-link-color'); ?> 675 </label> 676 </th> 677 <td> 678 <input type="text" class="plp-colorpicker" size="8" disabled /> 679 </td> 680 </tr> 681 <tr valign="top" class="prli-pro-only"> 682 <th scope="row"> 683 <label> 684 <?php esc_html_e('Link Hover Color', 'pretty-link'); ?> 685 <?php PrliAppHelper::info_tooltip('prli-prettybar-link-hover-color', 686 esc_html__('Pretty Bar Link Hover Color', 'pretty-link'), 687 sprintf( 688 // translators: %1$s: open code tag, %2$s: close code tag 689 esc_html__('If not set, this defaults to RGB value %1$s#ababab%2$s but you can change it to whatever color you like.', 'pretty-link'), 690 '<code>', 691 '</code>' 692 )); 693 ?> 694 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-link-hover-color'); ?> 695 </label> 696 </th> 697 <td> 698 <input type="text" class="plp-colorpicker" size="8" disabled /> 699 </td> 700 </tr> 701 <tr valign="top" class="prli-pro-only"> 702 <th scope="row"> 703 <label> 704 <?php esc_html_e('Visited Link Color', 'pretty-link'); ?> 705 <?php PrliAppHelper::info_tooltip('prli-prettybar-visited-link-color', 706 esc_html__('Pretty Bar Visited Link Color', 'pretty-link'), 707 sprintf( 708 // translators: %1$s: open code tag, %2$s: close code tag 709 esc_html__('If not set, this defaults to RGB value %1$s#551a8b%2$s but you can change it to whatever color you like.', 'pretty-link'), 710 '<code>', 711 '</code>' 712 )); 713 ?> 714 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-link-visited-color'); ?> 715 </label> 716 </th> 717 <td> 718 <input type="text" class="plp-colorpicker" size="8" disabled /> 719 </td> 720 </tr> 721 <tr valign="top" class="prli-pro-only"> 722 <th scope="row"> 723 <label> 724 <?php esc_html_e('Title Char Limit', 'pretty-link'); ?> 725 <?php PrliAppHelper::info_tooltip('prli-prettybar-title-char-limit', 726 esc_html__('Pretty Bar Title Char Limit', 'pretty-link'), 727 sprintf( 728 // translators: %1$s: open code tag, %2$s: close code tag 729 esc_html__('If your Website has a long title then you may need to adjust this value so that it will all fit on the Pretty Bar. It is recommended that you keep this value to %1$s30%2$s characters or less so the Pretty Bar\'s format looks good across different browsers and screen resolutions.', 'pretty-link'), 730 '<code>', 731 '</code>' 732 )); 733 ?> 734 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-title-char-limit'); ?> 735 </label> 736 </th> 737 <td> 738 <input type="text" size="4" disabled /> 739 </td> 740 </tr> 741 <tr valign="top" class="prli-pro-only"> 742 <th scope="row"> 743 <label> 744 <?php esc_html_e('Description Char Limit', 'pretty-link'); ?> 745 <?php PrliAppHelper::info_tooltip('prli-prettybar-desc-char-limit', 746 esc_html__('Pretty Bar Description Char Limit', 'pretty-link'), 747 sprintf( 748 // translators: %1$s: open code tag, %2$s: close code tag 749 esc_html__('If your Website has a long Description (tagline) then you may need to adjust this value so that it will all fit on the Pretty Bar. It is recommended that you keep this value to %1$s40%2$s characters or less so the Pretty Bar\'s format looks good across different browsers and screen resolutions.', 'pretty-link'), 750 '<code>', 751 '</code>' 752 )); 753 ?> 754 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-description-char-limit'); ?> 755 </label> 756 </th> 757 <td> 758 <input type="text" size="4" disabled /> 759 </td> 760 </tr> 761 <tr valign="top" class="prli-pro-only"> 762 <th scope="row"> 763 <label> 764 <?php esc_html_e('Target URL Char Limit', 'pretty-link'); ?> 765 <?php PrliAppHelper::info_tooltip('prli-prettybar-target-url-char-limit', 766 esc_html__('Pretty Bar Target URL Char Limit', 'pretty-link'), 767 sprintf( 768 // translators: %1$s: open code tag, %2$s: close code tag 769 esc_html__('If you link to a lot of large Target URLs you may want to adjust this value. It is recommended that you keep this value to %1$s40%2$s or below so the Pretty Bar\'s format looks good across different browsers and URL sizes', 'pretty-link'), 770 '<code>', 771 '</code>' 772 )); 773 ?> 774 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-target-url-char-limit'); ?> 775 </label> 776 </th> 777 <td> 778 <input type="text" size="4" disabled /> 779 </td> 780 </tr> 781 <tr valign="top" class="prli-pro-only"> 782 <th scope="row"> 783 <label> 784 <?php esc_html_e('Show Title', 'pretty-link'); ?> 785 <?php PrliAppHelper::info_tooltip('prli-prettybar-show-title', 786 esc_html__('Pretty Bar Show Title', 'pretty-link'), 787 esc_html__('Make sure this is checked if you want the title of your blog (and link) to show up on the Pretty Bar.', 'pretty-link')); 788 ?> 789 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-show-title'); ?> 790 </label> 791 </th> 792 <td> 793 <input type="checkbox" disabled /> 794 </td> 795 </tr> 796 <tr valign="top" class="prli-pro-only"> 797 <th scope="row"> 798 <label> 799 <?php esc_html_e('Show Description', 'pretty-link'); ?> 800 <?php PrliAppHelper::info_tooltip('prli-prettybar-show-description', 801 esc_html__('Pretty Bar Show Description', 'pretty-link'), 802 esc_html__('Make sure this is checked if you want your site description to show up on the Pretty Bar.', 'pretty-link')); 803 ?> 804 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-show-description'); ?> 805 </label> 806 </th> 807 <td> 808 <input type="checkbox" disabled /> 809 </td> 810 </tr> 811 <tr valign="top" class="prli-pro-only"> 812 <th scope="row"> 813 <label> 814 <?php esc_html_e('Show Share Links', 'pretty-link'); ?> 815 <?php PrliAppHelper::info_tooltip('prli-prettybar-show-share-links', 816 esc_html__('Pretty Bar Show Share Links', 'pretty-link'), 817 esc_html__('Make sure this is checked if you want "share links" to show up on the Pretty Bar.', 'pretty-link')); 818 ?> 819 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-show-share-links'); ?> 820 </label> 821 </th> 822 <td> 823 <input type="checkbox" disabled /> 824 </td> 825 </tr> 826 <tr valign="top" class="prli-pro-only"> 827 <th scope="row"> 828 <label> 829 <?php esc_html_e('Show Target URL', 'pretty-link'); ?> 830 <?php PrliAppHelper::info_tooltip('prli-prettybar-show-target-url-links', 831 esc_html__('Pretty Bar Show Target URL Links', 'pretty-link'), 832 esc_html__('Make sure this is checked if you want a link displaying the Target URL to show up on the Pretty Bar.', 'pretty-link')); 833 ?> 834 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-show-target-url'); ?> 835 </label> 836 </th> 837 <td> 838 <input type="checkbox" disabled /> 839 </td> 840 </tr> 841 <tr valign="top" class="prli-pro-only"> 842 <th scope="row"> 843 <label> 844 <?php esc_html_e('Hide Attribution Link', 'pretty-link'); ?> 845 <?php PrliAppHelper::info_tooltip('prli-prettybar-hide-attrib-link', 846 esc_html__('Hide Attribution Link', 'pretty-link'), 847 sprintf( 848 // translators: %1$s: br tag, %2$s: open strong tag, %3$s close strong tag, %4$s open em tag, %5$s close em tag, %6$s open link tag, %7$s close link tag 849 esc_html__('Check this to hide the pretty link attribution link on the pretty bar.%1$s%1$s%2$sWait, before you do this, you might want to leave this un-checked and set the alternate URL of this link to your %4$sPretty Links Pro%5$s %6$sAffiliate URL%7$s to earn a few bucks while you are at it.%3$s', 'pretty-link'), 850 '<br>', 851 '<strong>', 852 '</strong>', 853 '<em>', 854 '</em>', 855 '<a href="https://prettylinks.com/plp/options/aff-attribution">', 856 '</a>' 857 )); 858 ?> 859 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-hide-attrib-link'); ?> 860 </label> 861 </th> 862 <td> 863 <input type="checkbox" class="prli-toggle-checkbox" disabled /> 864 </td> 865 </tr> 866 </tbody> 867 </table> 868 869 <div class="prli-sub-box prettybar-attrib-url"> 870 <div class="prli-arrow prli-gray prli-up prli-sub-box-arrow"> </div> 871 <table class="form-table"> 872 <tbody> 873 <tr valign="top" class="prli-pro-only"> 874 <th scope="row"> 875 <label> 876 <?php esc_html_e('Attribution URL', 'pretty-link'); ?> 877 <?php PrliAppHelper::info_tooltip('prli-prettybar-attribution-url', 878 esc_html__('Alternate Pretty Bar Attribution URL', 'pretty-link'), 879 sprintf( 880 // translators: %1$s open em tag, %2$s close em tag, %3$s open link tag, %4$s close link tag 881 esc_html__('If set, this will replace the Pretty Bars attribution URL. This is a very good place to put your %1$sPretty Links Pro%2$s %3$sAffiliate Link%4$s.', 'pretty-link'), 882 '<em>', 883 '</em>', 884 '<a href="https://prettylinks.com/plp/options/aff-attribution-2">', 885 '</a>' 886 )); 887 ?> 888 <?php echo PrliAppHelper::pro_only_feature_indicator('option-prettybar-attrib-url'); ?> 889 </label> 890 </th> 891 <td> 892 <input type="text" class="regular-text" disabled /> 893 </td> 894 </tr> 895 </tbody> 896 </table> 897 </div> 898 </div> 899 900 <div class="prli-page" id="social"> 901 <div class="prli-page-title"><?php esc_html_e('Social Buttons Options', 'pretty-link'); ?></div> 902 <label class="prli-label prli-pro-only"> 903 <?php esc_html_e('Buttons', 'pretty-link'); ?> 904 <?php PrliAppHelper::info_tooltip('prli-social-buttons', 905 esc_html__('Social Buttons', 'pretty-link'), 906 sprintf( 907 // translators: %1$s: br tag, %2$s open code tag, %3$s close code tag 908 esc_html__('Select which buttons you want to be visible on the Social Buttons Bar.%1$s%1$s%2$sNote:%3$s In order for the Social Buttons Bar to be visible on Pages and or Posts, you must first enable it in the "Page & Post Options" section above.', 'pretty-link'), 909 '<br>', 910 '<code>', 911 '</code>' 912 )); 913 ?> 914 <?php echo PrliAppHelper::pro_only_feature_indicator('option-social-buttons'); ?> 915 </label> 916 <ul class="prli-social-button-checkboxes"> 917 <?php foreach(array('facebook', 'twitter', 'gplus', 'pinterest', 'linkedin', 'reddit', 'stumbleupon', 'digg', 'email') as $b) : ?> 918 <li class="pl-social-<?php echo esc_attr($b); ?>-button"> 919 <input type="checkbox" disabled /> 920 <i class="pl-icon-<?php echo esc_attr($b); ?>"> </i> 921 </li> 922 <?php endforeach; ?> 923 </ul> 924 <br/> 925 <table class="form-table"> 926 <tbody> 927 <tr valign="top" class="prli-pro-only"> 928 <th scope="row"> 929 <label> 930 <?php esc_html_e('Buttons Placement', 'pretty-link'); ?> 931 <?php PrliAppHelper::info_tooltip('prli-social-buttons-placement', 932 esc_html__('Social Buttons Placement', 'pretty-link'), 933 sprintf( 934 // translators: %1$s: br tag, %2$s open code tag, %3$s close code tag 935 esc_html__('This determines where your Social Buttons Placement should appear in relation to content on Pages and/or Posts.%1$s%1$s%2$sNote:%3$s If you want this bar to appear then you must enable it in the "Auto-Create Links" section above.', 'pretty-link'), 936 '<br>', 937 '<code>', 938 '</code>' 939 )); 940 ?> 941 <?php echo PrliAppHelper::pro_only_feature_indicator('option-social-buttons-placement'); ?> 942 </label> 943 </th> 944 <td> 945 <input type="radio" value="top" disabled /><span class="prli-radio-text"><?php esc_html_e('Top', 'pretty-link'); ?></span><br/><br/> 946 <input type="radio" value="bottom" checked disabled /><span class="prli-radio-text"><?php esc_html_e('Bottom', 'pretty-link'); ?></span><br/><br/> 947 <input type="radio" value="top-and-bottom" disabled /><span class="prli-radio-text"><?php esc_html_e('Top and Bottom', 'pretty-link'); ?></span><br/><br/> 948 <input type="radio" value="none" disabled /><span class="prli-radio-text"><?php esc_html_e('None', 'pretty-link'); ?></span> 949 <?php PrliAppHelper::info_tooltip('prli-social-buttons-placement-none', 950 esc_html__('Social Buttons Manual Placement', 'pretty-link'), 951 sprintf( 952 // translators: %1$s: example shortcode, %2$s: example template tag 953 esc_html__('If you select none, you can still show your Social Buttons by manually adding the %1$s shortcode to your blog posts or %2$s template tag to your WordPress Theme.', 'pretty-link'), 954 '<code>[social_buttons_bar]</code>', 955 '<code><?php the_social_buttons_bar(); ?></code>' 956 )); 957 ?> 958 </td> 959 </tr> 960 </tbody> 961 </table> 962 963 </div> 964 965 <div class="prli-page" id="public-links"> 966 <div class="prli-page-title"><?php esc_html_e('Public Links Creation Options', 'pretty-link'); ?></div> 967 <table class="form-table"> 968 <tbody> 969 <tr valign="top" class="prli-pro-only"> 970 <th scope="row"> 971 <label> 972 <?php esc_html_e('Enable Public Links', 'pretty-link'); ?> 973 <?php PrliAppHelper::info_tooltip('prli-enable-public-link-creation', 974 esc_html__('Enable Public Link Creation on this Site', 'pretty-link'), 975 sprintf( 976 esc_html__('This option will give you the ability to turn your website into a link shortening service for your users. Once selected, you can enable the Pretty Links Pro Sidebar Widget or just display the link creation form with the %s shortcode in any post or page on your website.', 'pretty-link'), 977 '<code>[prli_create_form]</code>' 978 )); 979 ?> 980 <?php echo PrliAppHelper::pro_only_feature_indicator('option-enable-public-link-creation'); ?> 981 </label> 982 </th> 983 <td> 984 <input class="prli-toggle-checkbox" type="checkbox" disabled /> 985 </td> 986 </tr> 987 </tbody> 988 </table> 989 </div> 990 991 <?php endif; ?> 992 188 993 <?php do_action('prli_admin_options_pages'); ?> 189 994 </td> … … 192 997 193 998 <p class="submit"> 194 <input type="submit" name="submit" class="button button-primary" value="<?php _e('Update', 'pretty-link') ?>" />999 <input type="submit" name="submit" class="button button-primary" value="<?php esc_attr_e('Update', 'pretty-link') ?>" /> 195 1000 </p> 196 1001 -
pretty-link/trunk/app/views/shared/errors.php
r1572224 r2124183 10 10 { 11 11 ?> 12 <li><strong><?php _e('ERROR', 'pretty-link'); ?></strong>: <?php echo esc_html($error); ?></li>12 <li><strong><?php esc_html_e('ERROR', 'pretty-link'); ?></strong>: <?php echo esc_html($error); ?></li> 13 13 <?php 14 14 } -
pretty-link/trunk/app/views/shared/link-table-nav.php
r1592844 r2124183 2 2 3 3 $curr_size = (isset($_REQUEST['size']))?(int)$_REQUEST['size']:10; 4 $curr_url = esc_html($_REQUEST['page'].$page_params);4 $curr_url = sanitize_text_field($_REQUEST['page']) . $page_params; 5 5 $group = (isset($_REQUEST['group']))?(int)$_REQUEST['group']:''; 6 6 $sort = (isset($_REQUEST['sort']))?sanitize_text_field($_REQUEST['sort']):''; … … 11 11 if($page_count > 1) { 12 12 ?> 13 <div class="tablenav"<?php echo (isset($navstyle)? " style=\"$navstyle\"":''); ?>>14 <div class= 'tablenav-pages'>13 <div class="tablenav"<?php echo (isset($navstyle)?' style="'.esc_attr($navstyle).'"':''); ?>> 14 <div class="tablenav-pages"> 15 15 <span class="displaying-num"> 16 <?php 17 _e('Displaying', 'pretty-link'); 18 echo " $page_first_record–$page_last_record of $record_count"; 19 ?> 16 <?php echo esc_html(sprintf(__('Displaying %1$s–%2$s of %3$s', 'pretty-link'), $page_first_record, $page_last_record, $record_count)); ?> 20 17 </span> 21 18 … … 24 21 if($current_page > 1) { 25 22 ?> 26 <a class= 'prev page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo ($current_page-1); ?>&size=<?php echo $curr_size; ?>'>«</a>23 <a class="prev page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=' . ($current_page-1) . '&size=' . $curr_size); ?>">«</a> 27 24 <?php 28 25 } … … 31 28 if($current_page==1) { 32 29 ?> 33 <a class= 'page-numbers disabled'href="#">1</a>30 <a class="page-numbers disabled" href="#">1</a> 34 31 <?php 35 32 } 36 33 else { 37 34 ?> 38 <a class= 'page-numbers' href='?page=<?php echo $curr_url; ?>&paged=1&size=<?php echo $curr_size; ?>'>1</a>35 <a class="page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=1&size=' . $curr_size); ?>">1</a> 39 36 <?php 40 37 } … … 43 40 if($current_page >= 5) { 44 41 ?> 45 <span class= 'page-numbers dots'>...</span>42 <span class="page-numbers dots">...</span> 46 43 <?php 47 44 } … … 53 50 if($current_page==$i) { 54 51 ?> 55 <a class= 'page-numbers disabled' href="#"><?php echo $i; ?></a>52 <a class="page-numbers disabled" href="#"><?php echo esc_html($i); ?></a> 56 53 <?php 57 54 } 58 55 else { 59 56 ?> 60 <a class= 'page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo $i; ?>&size=<?php echo $curr_size; ?>'><?php echo $i; ?></a>57 <a class="page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=' . $i . '&size=' . $curr_size); ?>"><?php echo esc_html($i); ?></a> 61 58 <?php 62 59 } … … 66 63 if($current_page < ($page_count - 3)) { 67 64 ?> 68 <span class= 'page-numbers dots'>...</span>65 <span class="page-numbers dots">...</span> 69 66 <?php 70 67 } … … 73 70 if($current_page == $page_count) { 74 71 ?> 75 <a class= 'page-numbers disabled' href="#"><?php echo $page_count; ?></a>72 <a class="page-numbers disabled" href="#"><?php echo esc_html($page_count); ?></a> 76 73 <?php 77 74 } 78 75 else { 79 76 ?> 80 <a class= 'page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo $page_count; ?>&size=<?php echo $curr_size; ?>'><?php echo $page_count; ?></a>77 <a class="page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=' . $page_count . '&size=' . $curr_size); ?>"><?php echo esc_html($page_count); ?></a> 81 78 <?php 82 79 } … … 85 82 if($current_page < $page_count) { 86 83 ?> 87 <a class= 'next page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo ($current_page + 1); ?>&size=<?php echo $curr_size; ?>'>»</a>84 <a class="next page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=' . ($current_page + 1) . '&size=' . $curr_size); ?>">»</a> 88 85 <?php 89 86 } 90 87 ?> 91 <select class="prli-page-size" data-url="<?php echo admin_url("admin.php?page=pretty-link&paged=1&sort={$sort}&sdir={$sdir}&group={$group}&search={$search}&size="); ?>">88 <select class="prli-page-size" data-url="<?php echo esc_url(admin_url("admin.php?page=pretty-link&paged=1&sort={$sort}&sdir={$sdir}&group={$group}&search={$search}&size=")); ?>"> 92 89 <option value="10" selected="selected">10</option> 93 90 <option value="25" <?php if($curr_size == 25) echo 'selected="selected"'; ?>>25</option> … … 105 102 ?> 106 103 <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>> 107 <div class='tablenav-pages'> 108 <span class="displaying-num"><?php _e('Displaying', 'pretty-link'); ?> <?php echo "$page_first_record–$page_last_record of $record_count"; ?></span> 109 <select class="prli-page-size" data-url="<?php echo admin_url("admin.php?page=pretty-link&paged=1&sort={$sort}&sdir={$sdir}&group={$group}&search={$search}&size="); ?>"> 104 <div class="tablenav-pages"> 105 <span class="displaying-num"> 106 <?php echo esc_html(sprintf(__('Displaying %1$s–%2$s of %3$s', 'pretty-link'), $page_first_record, $page_last_record, $record_count)); ?> 107 </span> 108 <select class="prli-page-size" data-url="<?php echo esc_url(admin_url("admin.php?page=pretty-link&paged=1&sort={$sort}&sdir={$sdir}&group={$group}&search={$search}&size=")); ?>"> 110 109 <option value="10" selected="selected">10</option> 111 110 <option value="25" <?php if($curr_size == 25) echo 'selected="selected"'; ?>>25</option> -
pretty-link/trunk/app/views/shared/nav.php
r1722928 r2124183 4 4 5 5 if($plp_update->is_installed()) { 6 $support_link = " | <a href=\"https://prettylinks.com/pl/nav/um\" target=\"_blank\">" . __('Pro Manual', 'pretty-link') . '</a>';6 $support_link = " | <a href=\"https://prettylinks.com/pl/nav/um\" target=\"_blank\">" . esc_html__('Pro Manual', 'pretty-link') . '</a>'; 7 7 } 8 8 else { 9 $support_link = " | <a href=\"https://prettylinks.com/pl/nav/upgrade\" target=\"_blank\">" . __('Upgrade to Pro', 'pretty-link') . '</a>';9 $support_link = " | <a href=\"https://prettylinks.com/pl/nav/upgrade\" target=\"_blank\">" . esc_html__('Upgrade to Pro', 'pretty-link') . '</a>'; 10 10 } 11 11 12 12 ?> 13 13 <p class="prli-shared-header"> 14 <span><?php _e('Connect:', 'pretty-link'); ?></span>14 <span><?php esc_html_e('Connect:', 'pretty-link'); ?></span> 15 15 <a href="http://twitter.com/blairwilli"><img src="<?php echo PRLI_IMAGES_URL; ?>/twitter_32.png" class="prli-icon" /></a> 16 16 <a href="http://www.facebook.com/pages/Pretty-Link/283252860401"><img src="<?php echo PRLI_IMAGES_URL; ?>/facebook_32.png" class="prli-icon" /></a> 17 17 <br/> 18 <?php _e('Get Help:', 'pretty-link'); ?>19 <a href="http://blairwilliams.com/xba" target="_blank"><?php _e('Tutorials', 'pretty-link'); ?></a>18 <?php esc_html_e('Get Help:', 'pretty-link'); ?> 19 <a href="http://blairwilliams.com/xba" target="_blank"><?php esc_html_e('Tutorials', 'pretty-link'); ?></a> 20 20 <?php echo $support_link; ?> 21 21 </p> -
pretty-link/trunk/app/views/shared/public_link.php
r1925455 r2124183 1 1 <?php if(!defined('ABSPATH')) die('You are not allowed to call this page directly.'); 2 2 3 // Escape all variables used on this page 4 $pretty_link_id = esc_html( $pretty_link_id ); 5 $target_url_raw = esc_url_raw( $target_url, array('http','https') ); 6 $target_url = esc_url( $target_url, array('http','https') ); 7 $pretty_link_raw = esc_url_raw( $pretty_link, array('http','https') ); 8 $pretty_link = esc_url( $pretty_link, array('http','https') ); 9 $prli_blogurl_raw = esc_url_raw( $prli_blogurl, array('http','https') ); 10 $prli_blogurl = esc_url( $prli_blogurl, array('http','https') ); 11 $target_url_title = esc_html( $target_url_title ); 12 3 global $plp_update; 13 4 $target_url_display = substr($target_url,0,50) . ((strlen($target_url)>50)?"...":''); 14 5 15 global $plp_update; 6 wp_register_style('tooltipster', PRLI_CSS_URL . '/tooltipster.bundle.min.css', array(), '4.2.6'); 7 wp_register_style('tooltipster-sidetip', PRLI_CSS_URL . '/tooltipster-sideTip-borderless.min.css', array('tooltipster'), '4.2.6'); 8 wp_register_style('prli-animation', PRLI_VENDOR_LIB_URL.'/fontello/css/animation.css', array(), PRLI_VERSION); 9 wp_register_style('prli-icons', PRLI_VENDOR_LIB_URL.'/fontello/css/pretty-link.css', array(), PRLI_VERSION); 10 wp_register_style('prli-social-buttons', PRLI_CSS_URL . '/social_buttons.css', array(), PRLI_VERSION); 11 wp_register_style('prli-public-link', PRLI_CSS_URL . '/public_link.css', array('tooltipster', 'tooltipster-sidetip', 'prli-animation', 'prli-icons', 'prli-social-buttons'), PRLI_VERSION); 16 12 13 wp_register_script('clipboard-js', PRLI_JS_URL . '/clipboard.min.js', array(), '2.0.0'); 14 wp_register_script('tooltipster', PRLI_JS_URL . '/tooltipster.bundle.min.js', array('jquery'), '4.2.6'); 15 wp_register_script('prli-admin-link-list', PRLI_JS_URL . '/admin_link_list.js', array('jquery', 'clipboard-js', 'tooltipster'), PRLI_VERSION); 17 16 ?> 18 17 <!DOCTYPE html> … … 21 20 <meta charset="UTF-8"> 22 21 23 <title><?php _e('Here is your Pretty Link', 'pretty-link'); ?></title>22 <title><?php esc_html_e('Here is your Pretty Link', 'pretty-link'); ?></title> 24 23 25 <link rel="stylesheet" href="<?php echo PRLI_CSS_URL . '/tooltipster.bundle.min.css'; ?>" type="text/css" media="all" /> 26 <link rel="stylesheet" href="<?php echo PRLI_CSS_URL . '/tooltipster-sideTip-borderless.min.css'; ?>" type="text/css" media="all" /> 27 <link rel="stylesheet" href="<?php echo PRLI_VENDOR_LIB_URL.'/fontello/css/animation.css'; ?>" type="text/css" media="all" /> 28 <link rel="stylesheet" href="<?php echo PRLI_VENDOR_LIB_URL.'/fontello/css/pretty-link.css'; ?>" type="text/css" media="all" /> 29 <link rel="stylesheet" href="<?php echo PRLI_CSS_URL . '/social_buttons.css'; ?>" type="text/css" media="all" /> 30 <link rel="stylesheet" href="<?php echo PRLI_CSS_URL . '/public_link.css'; ?>" type="text/css" media="all" /> 31 32 <script type="text/javascript" src="<?php echo site_url('/wp-includes/js/jquery/jquery.js'); ?>"></script> 33 <script type="text/javascript" src="<?php echo PRLI_JS_URL . '/clipboard.min.js'; ?>"></script> 34 <script type="text/javascript" src="<?php echo PRLI_JS_URL . '/tooltipster.bundle.min.js'; ?>"></script> 35 <script type="text/javascript" src="<?php echo PRLI_JS_URL . '/admin_link_list.js'; ?>"></script> 24 <?php wp_print_styles('prli-public-link'); ?> 36 25 </head> 37 26 <body> … … 39 28 40 29 <div class="prli-public-wrap"> 41 <div class="prli-public-label"><em><?php _e('Here\'s your pretty link for', 'pretty-link'); ?></em></div>42 <div class="prli-public-name"><?php echo $target_url_title; ?></div>43 <div class="prli-public-target">(<span title="<?php echo $target_url; ?>"><?php echo $target_url_display; ?></span>)</div>30 <div class="prli-public-label"><em><?php esc_html_e('Here\'s your pretty link for', 'pretty-link'); ?></em></div> 31 <div class="prli-public-name"><?php echo esc_html($target_url_title); ?></div> 32 <div class="prli-public-target">(<span title="<?php echo esc_url($target_url); ?>"><?php echo esc_html($target_url_display); ?></span>)</div> 44 33 45 34 <div class="prli-public-pretty-link"> 46 <span class="prli-public-pretty-link-display"><a href="<?php echo $pretty_link_raw; ?>"><?php echo $pretty_link; ?></a></span>47 <span class="prli-clipboardjs prli-public-pretty-link-copy"><i class="pl-icon-clipboard pl-list-icon icon-clipboardjs" data-clipboard-text="<?php echo $pretty_link_raw; ?>"></i></span>35 <span class="prli-public-pretty-link-display"><a href="<?php echo esc_url($pretty_link); ?>"><?php echo esc_url($pretty_link); ?></a></span> 36 <span class="prli-clipboardjs prli-public-pretty-link-copy"><i class="pl-icon-clipboard pl-list-icon icon-clipboardjs" data-clipboard-text="<?php echo esc_url($pretty_link); ?>"></i></span> 48 37 </div> 49 38 </div> 50 39 51 40 <?php if( $plp_update->is_installed() ): ?> 52 <div class="prli-public-social"><?php _e('send this link to:', 'pretty-link'); ?></div>41 <div class="prli-public-social"><?php esc_html_e('send this link to:', 'pretty-link'); ?></div> 53 42 <?php echo PlpSocialButtonsHelper::get_social_buttons_bar($pretty_link_id); ?> 54 43 <?php endif; ?> 55 44 56 <div class="prli-public-back"><a href="<?php echo $target_url_raw; ?>">« <?php _e('back', 'pretty-link'); ?></a></div> 45 <div class="prli-public-back"><a href="<?php echo esc_url($target_url); ?>">« <?php esc_html_e('back', 'pretty-link'); ?></a></div> 46 47 <?php wp_print_scripts('prli-admin-link-list'); ?> 57 48 </body> 58 49 </html> -
pretty-link/trunk/app/views/shared/table-nav.php
r1572224 r2124183 2 2 <?php 3 3 4 $curr_size = isset($_REQUEST['size']) ? $_REQUEST['size'] : 10;5 $curr_url = esc_html($_REQUEST['page'].$page_params);4 $curr_size = isset($_REQUEST['size']) ? (int) $_REQUEST['size'] : 10; 5 $curr_url = sanitize_text_field($_REQUEST['page']) . $page_params; 6 6 7 7 // Only show the pager bar if there is more than 1 page … … 9 9 { 10 10 ?> 11 <div class="tablenav"<?php echo (isset($navstyle)?" style=\"" . esc_html($navstyle) . "\"":''); ?>> 12 <div class='tablenav-pages'><span class="displaying-num"><?php _e('Displaying', 'pretty-link'); ?> <?php echo esc_html("$page_first_record–$page_last_record of $record_count"); ?></span> 11 <div class="tablenav"<?php echo (isset($navstyle)?' style="' . esc_html($navstyle) . '"':''); ?>> 12 <div class="tablenav-pages"> 13 <span class="displaying-num"> 14 <?php echo esc_html(sprintf(__('Displaying %1$s–%2$s of %3$s', 'pretty-link'), $page_first_record, $page_last_record, $record_count)); ?> 15 </span> 13 16 14 17 <?php … … 17 20 { 18 21 ?> 19 <a class= 'prev page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php print($current_page-1); ?>'>«</a>22 <a class="prev page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=' . ($current_page-1)); ?>">«</a> 20 23 <?php 21 24 } … … 25 28 { 26 29 ?> 27 <a class= 'page-numbers disabled'href="#">1</a>30 <a class="page-numbers disabled" href="#">1</a> 28 31 <?php 29 32 } … … 31 34 { 32 35 ?> 33 <a class= 'page-numbers' href='?page=<?php echo $curr_url; ?>&paged=1'>1</a>36 <a class="page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=1'); ?>">1</a> 34 37 <?php 35 38 } … … 39 42 { 40 43 ?> 41 <span class= 'page-numbers dots'>...</span>44 <span class="page-numbers dots">...</span> 42 45 <?php 43 46 } … … 51 54 { 52 55 ?> 53 <a class= 'page-numbers disabled'href="#"><?php echo esc_html($i); ?></a>56 <a class="page-numbers disabled" href="#"><?php echo esc_html($i); ?></a> 54 57 <?php 55 58 } … … 57 60 { 58 61 ?> 59 <a class= 'page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo esc_html($i); ?>'><?php echo esc_html($i); ?></a>62 <a class="page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=' . $i); ?>"><?php echo esc_html($i); ?></a> 60 63 <?php 61 64 } … … 66 69 { 67 70 ?> 68 <span class= 'page-numbers dots'>...</span>71 <span class="page-numbers dots">...</span> 69 72 <?php 70 73 } … … 74 77 { 75 78 ?> 76 <a class= 'page-numbers disabled'href="#"><?php echo esc_html($page_count); ?></a>79 <a class="page-numbers disabled" href="#"><?php echo esc_html($page_count); ?></a> 77 80 <?php 78 81 } … … 80 83 { 81 84 ?> 82 <a class= 'page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo esc_html($page_count); ?>'><?php echo esc_html($page_count); ?></a>85 <a class="page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=' . $page_count); ?>"><?php echo esc_html($page_count); ?></a> 83 86 <?php 84 87 } … … 88 91 { 89 92 ?> 90 <a class= 'next page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php print($current_page + 1); ?>'>»</a>93 <a class="next page-numbers" href="<?php echo esc_url('?page=' . $curr_url . '&paged=' . ($current_page + 1)); ?>">»</a> 91 94 <?php 92 95 } -
pretty-link/trunk/app/views/shared/tinymce_form_popup.php
r1683659 r2124183 2 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 3 <head> 4 <title><?php _e('Insert Pretty Link', 'pretty-link'); ?></title> 5 <style type="text/css"> 6 .ui-autocomplete-loading { 7 background: white url("<?php echo admin_url('images/wpspin_light.gif'); ?>") right center no-repeat; 8 } 9 .ui-autocomplete { 10 max-height: 200px; 11 overflow-y: auto; 12 overflow-x: hidden; 13 width: 510px !important; 14 } 15 </style> 16 <link rel="stylesheet" href="<?php echo PRLI_CSS_URL . '/tinymce_form_popup.css'; ?>" type="text/css" media="all" /> 17 <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" type="text/css" media="all" /> 18 <script language="javascript" type="text/javascript" src="<?php echo includes_url('/js/jquery/jquery.js'); ?>"></script> 19 <script language="javascript" type="text/javascript" src="<?php echo includes_url('/js/jquery/ui/core.min.js'); ?>"></script> 20 <script language="javascript" type="text/javascript" src="<?php echo includes_url('/js/jquery/ui/widget.min.js'); ?>"></script> 21 <script language="javascript" type="text/javascript" src="<?php echo includes_url('/js/jquery/ui/position.min.js'); ?>"></script> 22 <script language="javascript" type="text/javascript" src="<?php echo includes_url('/js/jquery/ui/menu.min.js'); ?>"></script> 23 <script language="javascript" type="text/javascript" src="<?php echo includes_url('/js/jquery/ui/autocomplete.min.js'); ?>"></script> 24 <script language="javascript" type="text/javascript" src="<?php echo includes_url('/js/jquery/ui/accordion.min.js'); ?>"></script> 25 <script type="text/javascript"> 26 //Setting up some JS variables for the tinymce_form_popup.js file 27 //Doing this here becuase I have access to PHP 28 var prli_selected_text = ''; //Updated on PrliPopUpHandler.init 29 var home_url = '<?php echo $home_url; ?>'; 30 var default_redirect = '<?php echo $default_redirect; ?>'; 31 var default_nofollow = '<?php echo $default_nofollow; ?>'; 32 var default_tracking = '<?php echo $default_tracking; ?>'; 33 var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; 34 </script> 35 <script language="javascript" type="text/javascript" src="<?php echo PRLI_JS_URL . '/tinymce_form_popup.js'; ?>"></script> 4 <title><?php esc_html_e('Insert Pretty Link', 'pretty-link'); ?></title> 5 <?php wp_print_styles('prli-tinymce-popup-form'); ?> 36 6 </head> 37 7 <body> 38 8 <div id="errors"></div> 39 9 <div id="prli_accordion"> 40 <h3><?php _e('Create New Pretty Link', 'pretty-link'); ?></h3>10 <h3><?php esc_html_e('Create New Pretty Link', 'pretty-link'); ?></h3> 41 11 <div class="prlitinymce-options"> 42 12 <div class="prlitinymce-options-row"> 43 <label><?php _e('Target URL', 'pretty-link'); ?>:</label>13 <label><?php esc_html_e('Target URL', 'pretty-link'); ?>:</label> 44 14 <input type="text" name="prli_insert_link_target" id="prli_insert_link_target" value="" /> 45 15 </div> 46 16 <div class="prlitinymce-options-row"> 47 <label><?php _e('Slug', 'pretty-link'); ?>:</label>48 <input type="text" name="prli_insert_link_slug" id="prli_insert_link_slug" value="<?php echo $random_slug; ?>" />49 <span id="prlitinymce-thinking" class="prlitinymce-hidden"><img src="<?php echo admin_url('images/wpspin_light.gif'); ?>" /></span>50 <span id="prlitinymce-good-slug" class="prlitinymce-hidden"><small><?php _e('valid', 'pretty-link'); ?></small></span>51 <span id="prlitinymce-bad-slug" class="prlitinymce-hidden"><small><?php _e('invalid', 'pretty-link'); ?></small></span>17 <label><?php esc_html_e('Slug', 'pretty-link'); ?>:</label> 18 <input type="text" name="prli_insert_link_slug" id="prli_insert_link_slug" value="<?php echo esc_attr($random_slug); ?>" /> 19 <span id="prlitinymce-thinking" class="prlitinymce-hidden"><img src="<?php echo esc_url(admin_url('images/wpspin_light.gif')); ?>" /></span> 20 <span id="prlitinymce-good-slug" class="prlitinymce-hidden"><small><?php esc_html_e('valid', 'pretty-link'); ?></small></span> 21 <span id="prlitinymce-bad-slug" class="prlitinymce-hidden"><small><?php esc_html_e('invalid', 'pretty-link'); ?></small></span> 52 22 <input type="hidden" name="prli_is_valid_slug" id="prli_is_valid_slug" value="good" /> 53 23 </div> 54 24 <div class="prlitinymce-options-row"> 55 <label><?php _e('Link Text', 'pretty-link'); ?>:</label>25 <label><?php esc_html_e('Link Text', 'pretty-link'); ?>:</label> 56 26 <input type="text" name="prli_insert_link_link_text" id="prli_insert_link_link_text" value="" /> 57 27 </div> 58 28 <div class="prlitinymce-options-row"> 59 <label><?php _e('Redirect Type', 'pretty-link'); ?>:</label>29 <label><?php esc_html_e('Redirect Type', 'pretty-link'); ?>:</label> 60 30 <select name="prli_insert_link_redirect" id="prli_insert_link_redirect"> 61 <option value="default"><?php _e('Default', 'pretty-link'); ?></option>62 <option value="307"><?php _e('307 (Temporary)', 'pretty-link'); ?></option>63 <option value="302"><?php _e('302 (Temporary)', 'pretty-link'); ?></option>64 <option value="301"><?php _e('301 (Permanent)', 'pretty-link'); ?></option>31 <option value="default"><?php esc_html_e('Default', 'pretty-link'); ?></option> 32 <option value="307"><?php esc_html_e('307 (Temporary)', 'pretty-link'); ?></option> 33 <option value="302"><?php esc_html_e('302 (Temporary)', 'pretty-link'); ?></option> 34 <option value="301"><?php esc_html_e('301 (Permanent)', 'pretty-link'); ?></option> 65 35 <?php global $plp_update; ?> 66 36 <?php if($plp_update->is_installed()): ?> 67 <option value="prettybar"><?php _e('Pretty Bar', 'pretty-link'); ?></option>68 <option value="cloak"><?php _e('Cloaked', 'pretty-link'); ?></option>69 <option value="pixel"><?php _e('Pixel', 'pretty-link'); ?></option>70 <option value="metarefresh"><?php _e('Meta Refresh', 'pretty-link'); ?></option>71 <option value="javascript"><?php _e('Javascript', 'pretty-link'); ?></option>37 <option value="prettybar"><?php esc_html_e('Pretty Bar', 'pretty-link'); ?></option> 38 <option value="cloak"><?php esc_html_e('Cloaked', 'pretty-link'); ?></option> 39 <option value="pixel"><?php esc_html_e('Pixel', 'pretty-link'); ?></option> 40 <option value="metarefresh"><?php esc_html_e('Meta Refresh', 'pretty-link'); ?></option> 41 <option value="javascript"><?php esc_html_e('Javascript', 'pretty-link'); ?></option> 72 42 <?php endif; ?> 73 43 </select> 74 44 </div> 75 45 <div class="prlitinymce-options-row"> 76 <label><?php _e('Nofollow', 'pretty-link'); ?>:</label>46 <label><?php esc_html_e('Nofollow', 'pretty-link'); ?>:</label> 77 47 <select name="prli_insert_link_nofollow" id="prli_insert_link_nofollow"> 78 <option value="default"><?php _e('Default', 'pretty-link'); ?></option>79 <option value="enabled"><?php _e('Enabled', 'pretty-link'); ?></option>80 <option value="disabled"><?php _e('Disabled', 'pretty-link'); ?></option>48 <option value="default"><?php esc_html_e('Default', 'pretty-link'); ?></option> 49 <option value="enabled"><?php esc_html_e('Enabled', 'pretty-link'); ?></option> 50 <option value="disabled"><?php esc_html_e('Disabled', 'pretty-link'); ?></option> 81 51 </select> 82 52 </div> 83 53 <div class="prlitinymce-options-row"> 84 <label><?php _e('Tracking', 'pretty-link'); ?>:</label>54 <label><?php esc_html_e('Tracking', 'pretty-link'); ?>:</label> 85 55 <select name="prli_insert_link_tracking" id="prli_insert_link_tracking"> 86 <option value="default"><?php _e('Default', 'pretty-link'); ?></option>87 <option value="enabled"><?php _e('Enabled', 'pretty-link'); ?></option>88 <option value="disabled"><?php _e('Disabled', 'pretty-link'); ?></option>56 <option value="default"><?php esc_html_e('Default', 'pretty-link'); ?></option> 57 <option value="enabled"><?php esc_html_e('Enabled', 'pretty-link'); ?></option> 58 <option value="disabled"><?php esc_html_e('Disabled', 'pretty-link'); ?></option> 89 59 </select> 90 60 </div> 91 61 <div class="prlitinymce-options-row"> 92 62 <label> </label> 93 <input type="checkbox" name="prli_insert_link_new_tab" id="prli_insert_link_new_tab" /> <?php _e('Open this Pretty Link in a new window/tab', 'pretty-link'); ?>63 <input type="checkbox" name="prli_insert_link_new_tab" id="prli_insert_link_new_tab" /> <?php esc_html_e('Open this Pretty Link in a new window/tab', 'pretty-link'); ?> 94 64 </div> 95 65 <div class="prlitinymce-options-row" id="prlitinymce-insert"> 96 <a href="javascript:PrliPopUpHandler.insert_new()" class="prli_button"><?php _e('Insert New Pretty Link', 'pretty-link'); ?></a>97 <span id="insert_loading" class="prlitinymce-hidden"><img src="<?php echo includes_url('/js/thickbox/loadingAnimation.gif'); ?>" width="150" /></span>66 <a href="javascript:PrliPopUpHandler.insert_new()" class="prli_button"><?php esc_html_e('Insert New Pretty Link', 'pretty-link'); ?></a> 67 <span id="insert_loading" class="prlitinymce-hidden"><img src="<?php echo esc_url(includes_url('/js/thickbox/loadingAnimation.gif')); ?>" width="150" /></span> 98 68 </div> 99 69 </div> 100 <h3><?php _e("Use Existing Pretty Link", 'pretty-link'); ?></h3>70 <h3><?php esc_html_e("Use Existing Pretty Link", 'pretty-link'); ?></h3> 101 71 <div id="prlitinymce-search-area" class="prlitinymce-options"> 102 <input type="text" name="prli_search_box" id="prli_search_box" value="" placeholder="<?php _e('Search by Slug, Title, or Target URL...', 'pretty-link'); ?>" />72 <input type="text" name="prli_search_box" id="prli_search_box" value="" placeholder="<?php esc_attr_e('Search by Slug, Title, or Target URL...', 'pretty-link'); ?>" /> 103 73 <div class="prlitinymce-options-row"> 104 <label class="lefty"><?php _e('Target URL', 'pretty-link'); ?>:</label>105 <small id="existing_link_target" class="righty"><?php _e('None', 'pretty-link'); ?></small>74 <label class="lefty"><?php esc_html_e('Target URL', 'pretty-link'); ?>:</label> 75 <small id="existing_link_target" class="righty"><?php esc_html_e('None', 'pretty-link'); ?></small> 106 76 </div> 107 77 <div class="prlitinymce-options-row"> 108 <label class="lefty"><?php _e('Pretty Link', 'pretty-link'); ?>:</label>109 <small id="existing_link_slug" class="righty"><?php _e('None', 'pretty-link'); ?></small>78 <label class="lefty"><?php esc_html_e('Pretty Link', 'pretty-link'); ?>:</label> 79 <small id="existing_link_slug" class="righty"><?php esc_html_e('None', 'pretty-link'); ?></small> 110 80 </div> 111 81 <div class="prlitinymce-options-row"> 112 <label><?php _e('Link Text', 'pretty-link'); ?>:</label>82 <label><?php esc_html_e('Link Text', 'pretty-link'); ?>:</label> 113 83 <input type="text" name="existing_link_link_text" id="existing_link_link_text" value="" /> 114 84 </div> 115 85 <div class="prlitinymce-options-row"> 116 86 <label> </label> 117 <input type="checkbox" name="existing_link_new_tab" id="existing_link_new_tab" /> <?php _e('Open this Pretty Link in a new window/tab', 'pretty-link'); ?>87 <input type="checkbox" name="existing_link_new_tab" id="existing_link_new_tab" /> <?php esc_html_e('Open this Pretty Link in a new window/tab', 'pretty-link'); ?> 118 88 </div> 119 89 <div class="prlitinymce-options-row" id="existing_link_insert"> 120 90 <input type="hidden" name="existing_link_nofollow" id="existing_link_nofollow" value="0" /> 121 <a href="javascript:PrliPopUpHandler.insert_existing()" class="prli_button"><?php _e('Insert Existing Pretty Link', 'pretty-link'); ?></a>91 <a href="javascript:PrliPopUpHandler.insert_existing()" class="prli_button"><?php esc_html_e('Insert Existing Pretty Link', 'pretty-link'); ?></a> 122 92 </div> 123 93 </div> 124 94 </div> 95 <?php wp_print_scripts('prli-tinymce-popup-form'); ?> 125 96 </body> 126 97 </html> -
pretty-link/trunk/app/views/shared/title_text.php
r1572224 r2124183 1 1 <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?> 2 <div class="prli_admin_branding"></div>3 2 <h1 class="wp-heading-inline" style="margin-bottom:15px;"><?php echo esc_html($page_title); ?></h1> -
pretty-link/trunk/app/views/tools/form.php
r1572224 r2124183 1 1 <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?> 2 2 <div class="wrap"> 3 <?php echoPrliAppHelper::page_title(__('Tools', 'pretty-link')); ?>3 <?php PrliAppHelper::page_title(__('Tools', 'pretty-link')); ?> 4 4 5 5 <?php if($update_message): ?> … … 16 16 <td class="prli-settings-table-nav"> 17 17 <ul class="prli-sidebar-nav"> 18 <li><a data-id="bookmarklet"><?php _e('Bookmarklet', 'pretty-link'); ?></a></li>19 <li><a data-id="trim"><?php _e('Trim Clicks', 'pretty-link'); ?></a></li>18 <li><a data-id="bookmarklet"><?php esc_html_e('Bookmarklet', 'pretty-link'); ?></a></li> 19 <li><a data-id="trim"><?php esc_html_e('Trim Clicks', 'pretty-link'); ?></a></li> 20 20 <?php do_action('prli_admin_tools_nav'); ?> 21 21 </ul> … … 23 23 <td class="prli-settings-table-pages"> 24 24 <div class="prli-page" id="bookmarklet"> 25 <div class="prli-page-title"><?php _e('Bookmarklet', 'pretty-link'); ?></div>26 <strong><a class="button button-primary" href="<?php echo PrliLink::bookmarklet_link(); ?>" style="vertical-align:middle;"><?php _e('Get Pretty Link', 'pretty-link'); ?></a></strong> 25 <div class="prli-page-title"><?php esc_html_e('Bookmarklet', 'pretty-link'); ?></div> 26 <strong><a class="button button-primary" href="<?php echo PrliLink::bookmarklet_link(); ?>" style="vertical-align:middle;"><?php esc_html_e('Get Pretty Link', 'pretty-link'); ?></a></strong> 27 27 <?php PrliAppHelper::info_tooltip( 'prli-bookmarklet-instructions', 28 __('Install Pretty Link Bookmarklet', 'pretty-link'), 29 __('Just drag this "Get PrettyLink" link to your toolbar to install the bookmarklet. As you browse the web, you can just click this bookmarklet to create a pretty link from the current url you\'re looking at. <a href="http://blairwilliams.com/pretty-link-bookmarklet/">(more help)</a>', 'pretty-link') ); 28 esc_html__('Install Pretty Link Bookmarklet', 'pretty-link'), 29 sprintf( 30 // translators: %1$s: open link tag, %2$s close link tag 31 esc_html__('Just drag this "Get PrettyLink" link to your toolbar to install the bookmarklet. As you browse the web, you can just click this bookmarklet to create a pretty link from the current url you\'re looking at. %1$s(more help)%2$s', 'pretty-link'), 32 '<a href="http://blairwilliams.com/pretty-link-bookmarklet/">', 33 '</a>' 34 )); 30 35 ?> 31 <br/><br/><a href="javascript:toggle_iphone_instructions()"><strong><?php _e('Show iPhone Bookmarklet Instructions', 'pretty-link'); ?></strong></a>36 <br/><br/><a href="javascript:toggle_iphone_instructions()"><strong><?php esc_html_e('Show iPhone Bookmarklet Instructions', 'pretty-link'); ?></strong></a> 32 37 <br/><br/> 33 38 <div class="prli-sub-box iphone_instructions" style="display: none"> 34 39 <div class="prli-arrow prli-gray prli-up prli-sub-box-arrow"> </div> 35 <?php _e('<strong>Note:</strong> iPhone users can install this bookmarklet in their Safari to create Pretty Links with the following steps:', 'pretty-link'); ?><br/> 40 <?php 41 printf( 42 // translators: %1$s: open strong tag, %2$s close strong tag 43 esc_html__('%1$sNote:%2$s iPhone users can install this bookmarklet in their Safari to create Pretty Links with the following steps:', 'pretty-link'), 44 '<strong>', 45 '</strong>' 46 ); 47 ?><br/> 36 48 <ol> 37 <li><?php _e('Copy this text:', 'pretty-link'); ?><br/><input type="text" value="<?php echo PrliLink::bookmarklet_link(); ?>" /></li> 38 <li><?php _e('Tap the + button at the bottom of the screen', 'pretty-link'); ?></li> 39 <li><?php _e('Choose to share the page, then click on "Bookmark". We recommend saving it in your Favorites folder. Rename your bookmark to "Get PrettyLink" (or whatever you want) and then "Save"', 'pretty-link'); ?></li> 40 <li><?php _e('Navigate through your Bookmarks until you find the new bookmark and click "Edit"', 'pretty-link'); ?></li> 41 <li><?php _e('Delete all the text from the address', 'pretty-link'); ?></li> 42 <li><?php _e('Paste the text you copied in Step 1 into the address field', 'pretty-link'); ?></li> 43 <li><?php _e('To save the changes hit "Bookmarks" and <strong>you\'re done!', 'pretty-link'); ?></strong> <?php _e('Now when you find a page you want to save off as a Pretty Link, just click the "Bookmarks" icon at the bottom of the screen and select your "Get PrettyLink" bookmarklet.', 'pretty-link'); ?></li> 49 <li><?php esc_html_e('Copy this text:', 'pretty-link'); ?><br/><input type="text" value="<?php echo esc_attr(PrliLink::bookmarklet_link()); ?>" /></li> 50 <li><?php esc_html_e('Tap the + button at the bottom of the screen', 'pretty-link'); ?></li> 51 <li><?php esc_html_e('Choose to share the page, then click on "Bookmark". We recommend saving it in your Favorites folder. Rename your bookmark to "Get PrettyLink" (or whatever you want) and then "Save"', 'pretty-link'); ?></li> 52 <li><?php esc_html_e('Navigate through your Bookmarks until you find the new bookmark and click "Edit"', 'pretty-link'); ?></li> 53 <li><?php esc_html_e('Delete all the text from the address', 'pretty-link'); ?></li> 54 <li><?php esc_html_e('Paste the text you copied in Step 1 into the address field', 'pretty-link'); ?></li> 55 <li> 56 <?php 57 printf( 58 // translators: %1$s: open strong tag, %2$s close strong tag 59 esc_html__('To save the changes hit "Bookmarks" and %1$syou\'re done!%2$s', 'pretty-link'), 60 '<strong>', 61 '</strong>' 62 ); 63 ?> 64 <?php esc_html_e('Now when you find a page you want to save off as a Pretty Link, just click the "Bookmarks" icon at the bottom of the screen and select your "Get PrettyLink" bookmarklet.', 'pretty-link'); ?> 65 </li> 44 66 </ol> 45 67 </div> 46 68 </div> 47 69 <div class="prli-page" id="trim"> 48 <div class="prli-page-title"><?php _e('Trim Clicks', 'pretty-link'); ?></div>70 <div class="prli-page-title"><?php esc_html_e('Trim Clicks', 'pretty-link'); ?></div> 49 71 <?php if($prli_options->auto_trim_clicks): ?> 50 <p><em><?php _e('Pretty Link is already automatically trimming Clicks older than 90 days. Although not necessary, you can still use the buttons below to force click trimming.', 'pretty-link'); ?></em></p>72 <p><em><?php esc_html_e('Pretty Link is already automatically trimming Clicks older than 90 days. Although not necessary, you can still use the buttons below to force click trimming.', 'pretty-link'); ?></em></p> 51 73 <?php endif; ?> 52 74 <?php if($prli_options->extended_tracking != 'count'): ?> 53 <a class="button" href="<?php echo admin_url('admin.php?page=pretty-link-tools&action=clear_30day_clicks'); ?>" onclick="return confirm('<?php _e('***WARNING*** If you click OK you will delete ALL of the Click data that is older than 30 days. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete this data because there is no going back!', 'pretty-link'); ?>');"><?php_e('Delete Clicks older than 30 days', 'pretty-link'); ?></a> 75 <a class="button" href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-tools&action=clear_30day_clicks')); ?>" onclick="return confirm('<?php esc_attr_e('***WARNING*** If you click OK you will delete ALL of the Click data that is older than 30 days. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete this data because there is no going back!', 'pretty-link'); ?>');"><?php esc_html_e('Delete Clicks older than 30 days', 'pretty-link'); ?></a> 54 76 <?php PrliAppHelper::info_tooltip( 'prli-clear-clicks-30', 55 __('Clear clicks 30 days or older', 'pretty-link'),56 __('This will clear all clicks in your database that are older than 30 days.', 'pretty-link') ); ?>77 esc_html__('Clear clicks 30 days or older', 'pretty-link'), 78 esc_html__('This will clear all clicks in your database that are older than 30 days.', 'pretty-link') ); ?> 57 79 <div> </div> 58 <a class="button" href="<?php echo admin_url('admin.php?page=pretty-link-tools&action=clear_90day_clicks'); ?>" onclick="return confirm('<?php _e('***WARNING*** If you click OK you will delete ALL of the Click data that is older than 90 days. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete this data because there is no going back!', 'pretty-link'); ?>');"><?php_e('Delete Clicks older than 90 days', 'pretty-link'); ?></a> 80 <a class="button" href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-tools&action=clear_90day_clicks')); ?>" onclick="return confirm('<?php esc_attr_e('***WARNING*** If you click OK you will delete ALL of the Click data that is older than 90 days. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete this data because there is no going back!', 'pretty-link'); ?>');"><?php esc_html_e('Delete Clicks older than 90 days', 'pretty-link'); ?></a> 59 81 <?php PrliAppHelper::info_tooltip( 'prli-clear-clicks-90', 60 __('Clear clicks 90 days or older', 'pretty-link'),61 __('This will clear all clicks in your database that are older than 90 days.', 'pretty-link') ); ?>82 esc_html__('Clear clicks 90 days or older', 'pretty-link'), 83 esc_html__('This will clear all clicks in your database that are older than 90 days.', 'pretty-link') ); ?> 62 84 <div> </div> 63 85 <?php endif; ?> 64 86 65 <a class="button button-primary" href="<?php echo admin_url('admin.php?page=pretty-link-tools&action=clear_all_clicks'); ?>" onclick="return confirm('<?php _e('***WARNING*** If you click OK you will delete ALL of the Click data in your Database. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete all your data because there is no going back!', 'pretty-link'); ?>');"><?php_e('Delete All Clicks', 'pretty-link'); ?></a> 87 <a class="button button-primary" href="<?php echo esc_url(admin_url('admin.php?page=pretty-link-tools&action=clear_all_clicks')); ?>" onclick="return confirm('<?php esc_attr_e('***WARNING*** If you click OK you will delete ALL of the Click data in your Database. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete all your data because there is no going back!', 'pretty-link'); ?>');"><?php esc_html_e('Delete All Clicks', 'pretty-link'); ?></a> 66 88 <?php PrliAppHelper::info_tooltip( 'prli-clear-all-clicks', 67 __('Clear all clicks', 'pretty-link'),68 __('Seriously, only click this link if you want to delete all the Click data in your database.', 'pretty-link') ); ?>89 esc_html__('Clear all clicks', 'pretty-link'), 90 esc_html__('Seriously, only click this link if you want to delete all the Click data in your database.', 'pretty-link') ); ?> 69 91 </div> 70 92 -
pretty-link/trunk/app/views/widgets/widget.php
r1722928 r2124183 2 2 <div class="wrap"> 3 3 <p style="text-align: left;"> 4 <a href="https://prettylinks.com/pl/widget/buy"><img style="border: 0px;" src="<?php echo PRLI_IMAGES_URL . '/pl-logo-horiz-RGB.svg'; ?>" width="75%" /></a>4 <a href="https://prettylinks.com/pl/widget/buy"><img style="border: 0px;" src="<?php echo esc_url(PRLI_IMAGES_URL . '/pl-logo-horiz-RGB.svg'); ?>" width="75%" /></a> 5 5 </p> 6 6 7 <form name="form1" method="post" action="<?php echo admin_url("admin.php?page=pretty-link"); ?>"> 8 <input type="hidden" name="action" value="quick-create"> 9 <?php wp_nonce_field('update-options'); ?> 7 <form id="prli-quick-create" method="post"> 8 <div id="prli-quick-create-error" class="hidden"></div> 9 <table class="form-table"> 10 <tr class="form-field"> 11 <td valign="top"><?php esc_html_e("Target URL", 'pretty-link'); ?></td> 12 <td><input type="text" id="prli-quick-create-url" name="url" value="" size="75"> 13 </tr> 14 <tr> 15 <td valign="top"><?php esc_html_e("Pretty Link", 'pretty-link'); ?></td> 16 <td><strong><?php echo esc_html($prli_blogurl); ?></strong>/<input type="text" id="prli-quick-create-slug" name="slug" value="<?php echo esc_attr($prli_link->generateValidSlug()); ?>"> 17 </tr> 18 </table> 10 19 11 <table class="form-table"> 12 <tr class="form-field"> 13 <td valign="top"><?php _e("Target URL", 'pretty-link'); ?></td> 14 <td><input type="text" name="url" value="" size="75"> 15 </tr> 16 <tr> 17 <td valign="top"><?php _e("Pretty Link", 'pretty-link'); ?></td> 18 <td><strong><?php echo esc_html($prli_blogurl); ?></strong>/<input type="text" name="slug" value="<?php echo $prli_link->generateValidSlug(); ?>"> 19 </tr> 20 </table> 21 22 <p class="submit"> 23 <input type="submit" name="Submit" value="Create" class="button button-primary" /> 24 </p> 20 <p class="submit"> 21 <input type="submit" name="Submit" value="<?php esc_attr_e('Create', 'pretty-link'); ?>" class="button button-primary" /> 22 <span id="prli-quick-create-loading" class="hidden"><img src="<?php echo PRLI_IMAGES_URL . '/square-loader.gif'; ?>" alt="<?php esc_attr_e('Loading...', 'pretty-link'); ?>"></span> 23 </p> 25 24 </form> 26 25 </div> -
pretty-link/trunk/css/admin_shared.css
r1572224 r2124183 93 93 } 94 94 95 .prli-hidden {95 .prli-hidden, .prli_hidden { 96 96 display: none; 97 97 } … … 114 114 115 115 .prli_admin_branding { 116 /* background: url(../images/pl-logo-horiz-RGB.png) no-repeat; */117 116 float: right !important; 118 117 padding-right: 25px !important; … … 123 122 } 124 123 124 /* 125 125 .tablenav .tablenav-pages a.disabled , 126 126 .tablenav .tablenav-pages a.disabled:hover { … … 130 130 color:#fff; 131 131 } 132 */ 132 133 133 134 .prli-red { … … 139 140 } 140 141 142 #wpcontent #pl-admin-header { 143 margin-left: -20px; 144 padding: 15px; 145 padding-left: 22px; 146 background-image: url("../images/pretty-links-plugin-header.jpg"); 147 background-repeat: repeat; 148 background-size: 1200px 75px; 149 min-height: 36px; 150 /* border-bottom: 2px solid #00cee6; */ 151 } 152 #wpcontent #pl-admin-header img.pl-logo { 153 height: 36px; 154 } 155 156 .mfp-bg.mfp-prli { 157 z-index: 100002; 158 } 159 .mfp-wrap.mfp-prli { 160 z-index: 100003; 161 } 162 .mfp-wrap.mfp-prli .mfp-preloader { 163 z-index: 100004; 164 } 165 .mfp-wrap.mfp-prli .mfp-content { 166 z-index: 100005; 167 } 168 .prli-bullet-list { 169 list-style: disc; 170 margin-left: 2em; 171 } 172 .prli-welcome, 173 .prli-update { 174 position: relative; 175 max-width: 1200px; 176 margin: 25px 40px 0 20px; 177 font-size: 15px; 178 } 179 .prli-update { 180 max-width: 890px; 181 } 182 .prli-welcome h1, 183 .prli-update h1 { 184 margin: .2em 0 0 0; 185 padding: 0; 186 color: #32373c; 187 line-height: 1.2; 188 font-size: 2.8em; 189 font-weight: 400; 190 } 191 .prli-welcome h1 { 192 margin-right: 280px; 193 } 194 .prli-update h1 { 195 margin-bottom: 0.6em; 196 } 197 .prli-welcome p, 198 .prli-update p { 199 font-size: 16px; 200 line-height: 1.5; 201 } 202 .prli-welcome .prli-welcome-about { 203 font-size: 19px; 204 line-height: 1.6; 205 margin: 1em 0 1em 0; 206 } 207 .prli-welcome-badge { 208 /* 209 * position: absolute; 210 * top: 0; 211 * right: 0; 212 */ 213 width: 230px; 214 padding: 15px 15px 15px 0; 215 float: left; 216 } 217 .prli-welcome img, 218 .prli-update img { 219 max-width: 100%; 220 } 221 .prli-welcome hr { 222 border: 0; 223 height: 0; 224 margin: 5em 0 0; 225 border-top: 1px solid rgba(0, 0, 0, .1); 226 } 227 /* 228 .prli-center-section { 229 max-width: 890px; 230 margin: 40px auto 0 auto; 231 } 232 */ 233 p.prli-welcome-step { 234 display: block; 235 height: 160px; 236 font-weight: 900; 237 font-size: 18px; 238 margin-left: 25px; 239 } 240 p.prli-welcome-step img { 241 width: 160px !important; 242 height: 160px !important; 243 padding: 5px !important; 244 margin-right: 15px !important; 245 float: left; 246 border: 1px solid #444444; 247 } 248 .prli-row { 249 display: -ms-grid; 250 display: grid; 251 } 252 .prli-row.prli-2-columns { 253 -ms-grid-columns: 1fr 1fr; 254 grid-template-columns: 1fr 1fr; 255 } 256 .prli-row.prli-2-columns.prli-is-wider-left { 257 -ms-grid-columns: 2fr 1fr; 258 grid-template-columns: 2fr 1fr; 259 } 260 .prli-row.prli-2-columns.prli-is-wider-right { 261 -ms-grid-columns: 1fr 2fr; 262 grid-template-columns: 1fr 2fr; 263 } 264 .prli-column { 265 margin-right: 20px; 266 margin-left: 20px; 267 } 268 .prli-column :first-child { 269 margin-top: 0; 270 } 271 .prli-column.prli-align-vertically { 272 align-self: center; 273 } 274 .prli-welcome .prli-column img { 275 padding: 20px; 276 } 277 .prli-welcome h2, 278 .prli-update h2 { 279 margin: 0 0 .6em; 280 font-size: 1.6em; 281 line-height: 1.5; 282 } 283 .prli-welcome h3 { 284 margin: 1.25em 0 .6em; 285 font-size: 1.4em; 286 line-height: 1.5; 287 } 288 .prli-welcome ol li img { 289 display: block; 290 margin: 30px 0; 291 } 292 .prli-welcome ol li:last-child img { 293 margin-bottom: 0; 294 } 295 .prli-button-section { 296 text-align: center; 297 } 298 .prli-welcome .prli-button-section a { 299 padding: 15px 40px; 300 height: auto; 301 font-size: 17px; 302 line-height: 1.5; 303 } 304 .prli-update .prli-image-popup { 305 display: block; 306 } 307 @media screen and (max-width: 782px) { 308 .prli-welcome, 309 .prli-update { 310 margin-right: 30px; 311 } 312 .prli-welcome-badge { 313 position: relative; 314 width: 100%; 315 margin-bottom: 1.5em; 316 } 317 .prli-welcome h1, 318 .prli-welcome .prli-welcome-about { 319 margin-right: 0; 320 } 321 } 322 323 .prli-position-relative { 324 position: relative; 325 } -
pretty-link/trunk/css/menu-styles.css
r1663493 r2124183 6 6 } 7 7 8 #toplevel_page_pretty-link div.wp-menu-image img {8 .menu-icon-pretty-link div.wp-menu-image img { 9 9 display: none; 10 10 } 11 11 12 #toplevel_page_pretty-link div.wp-menu-image:before {12 .menu-icon-pretty-link div.wp-menu-image:before { 13 13 /* content: "\e843"; */ 14 14 content: "\e844"; -
pretty-link/trunk/css/prli-admin-links.css
r1925455 r2124183 1 1 #options-table { 2 2 width: 100%; 3 margin-top: 10px; 4 } 5 3 margin-top: 10px; } 6 4 #pro-options-table { 7 5 width: 100%; … … 21 19 color: #a1a1a1; 22 20 font-style: italic; 23 }24 25 .link_row {26 min-height: 75px;27 height: 75px;28 }29 30 .link_actions {31 display: none;32 21 } 33 22 … … 57 46 } 58 47 59 .bacheck-title {60 display: inline-block;61 width: 100px !important;62 }63 64 .inline-edit-col-left, .inline-edit-col-center, .inline-edit-col-right {65 width: 33% !important;66 }67 68 /*69 .keyword-replacements {70 width: 45%;71 clear: none !important;72 }73 */74 75 48 .advanced-link-options { 76 49 width: 100%; … … 82 55 } 83 56 57 .post-type-pretty-link #pretty_link_errors { 58 background: #fff; 59 border: 1px solid rgba(0,0,0,.125); 60 border-left: 4px solid #dc3232; 61 box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1); 62 margin: 5px 0 15px; 63 padding: 5px 12px; 64 } 65 66 .post-type-pretty-link #submitdiv #misc-publishing-actions, 67 .post-type-pretty-link #submitdiv #minor-publishing-actions { 68 display: none; 69 } 70 71 .column-settings { 72 width: 10% !important; 73 } 74 75 .column-title { 76 width: 25% !important; 77 } 78 79 .column-taxonomy-pretty-link-category, 80 .column-pro-pretty-link-category { 81 width: 10% !important; 82 } 83 84 .column-taxonomy-pretty-link-tag, 85 .column-pro-pretty-link-tag { 86 width: 10% !important; 87 } 88 89 .column-keywords { 90 width: 15% !important; 91 } 92 93 .column-clicks { 94 width: 5% !important; 95 } 96 97 .column-date { 98 width: 10% !important; 99 } 100 101 .column-links { 102 width: 25% !important; 103 } 104 105 .column-slug { 106 width: 15% !important; 107 } 108 109 .column-target { 110 width: 15% !important; 111 } 112 113 #pretty-link-settings.postbox .inside, 114 #pretty-link-settings.postbox .prli-settings-table { 115 padding: 0; 116 margin: 0; 117 } 118 119 #pretty-link-settings.postbox .prli-settings-table { 120 width: 100%; 121 } 122 123 #pretty-link-settings.postbox .prli-settings-table-pages { 124 padding-top: 0; 125 } 126 127 #pretty-link-settings.postbox h2.hndle { 128 color: white; 129 background-color: #444; 130 border-bottom: none; 131 } 132 133 #pretty-link-settings.postbox button.handlediv { 134 height: 35px; 135 } 136 137 table.wp-list-table .prli-pro-only-indicator a { 138 /* position: absolute; */ 139 /* right: 10px; */ 140 /* top: 20px; */ 141 color: #fff; 142 background: #0074a2; 143 font-size: 10px; 144 line-height: 1.3; 145 text-transform: uppercase; 146 padding: 2px 3px; 147 -webkit-border-radius: 3px; 148 -moz-border-radius: 3px; 149 border-radius: 3px; 150 text-decoration: none; 151 } 152 153 table.wp-list-table .prli-pro-only-indicator a:hover { 154 background: #3390b5; 155 } 156 157 @media screen and (max-width: 782px) { 158 .wp-list-table .type-pretty-link .column-settings, 159 .wp-list-table .type-pretty-link.is-expanded .column-settings { 160 display: table-cell !important; 161 } 162 .wp-list-table .type-pretty-link .column-settings:before { 163 content: "" !important; 164 } 165 .wp-list-table .type-pretty-link .column-links { 166 text-align: inherit; 167 } 168 .wp-list-table .type-pretty-link .column-links input { 169 width: calc(100% - 30px) !important; 170 } 171 } 172 -
pretty-link/trunk/css/settings_table.css
r1572224 r2124183 62 62 } 63 63 64 table.prli-settings-table .form-table th { 65 width: 225px; 66 } 67 64 68 table.prli-settings-table td.prli-settings-table-pages { 65 69 width: 100%; … … 86 90 } 87 91 92 table.prli-settings-table tr.prli-pro-only th, 93 table.prli-settings-table label.prli-pro-only { 94 position: relative; 95 padding-right: 40px; 96 } 97 98 table.prli-settings-table tr.prli-pro-only input[type=checkbox]:disabled { 99 opacity: 1; 100 } 101 102 table.prli-settings-table .prli-pro-only-indicator { 103 position: absolute; 104 right: 10px; 105 top: 20px; 106 } 107 108 table.prli-settings-table .prli-pro-only-indicator a { 109 color: #fff; 110 background: #0074a2; 111 font-size: 10px; 112 line-height: 1.3; 113 text-transform: uppercase; 114 padding: 2px 3px; 115 -webkit-border-radius: 3px; 116 -moz-border-radius: 3px; 117 border-radius: 3px; 118 text-decoration: none; 119 } 120 121 table.prli-settings-table .prli-pro-only-indicator a:hover { 122 background: #3390b5; 123 } 124 125 table.prli-settings-table label.prli-pro-only .prli-pro-only-indicator { 126 top: 0; 127 } 128 88 129 .prli-sub-box { 89 130 background-color: #f1f1f1; … … 101 142 102 143 label.prli-label { 103 font-weight: bold;144 font-weight: 600; 104 145 font-size: 14px; 105 146 color: #222; … … 185 226 padding: 0 15px; 186 227 } 187 } 188 228 table.prli-settings-table .prli-pro-only-indicator { 229 top: 10px; 230 } 231 } 232 -
pretty-link/trunk/i18n/pretty-link.pot
r2108490 r2124183 1 # Copyright (C) 2019 Pretty Links2 # This file is distributed under the same license as the Pretty Links p ackage.1 # Copyright (C) 2019 Blair Williams 2 # This file is distributed under the same license as the Pretty Links plugin. 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Pretty Links 2.1.10\n"5 "Project-Id-Version: Pretty Links 3.0.0\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pretty-link\n" 7 "POT-Creation-Date: 2019-06-18 23:07:00+00:00\n" 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 8 "Language-Team: LANGUAGE <[email protected]>\n" 8 9 "MIME-Version: 1.0\n" 9 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n" 12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 13 "Language-Team: LANGUAGE <[email protected]>\n" 14 15 #: app/controllers/PrliAppController.php:36 16 #: app/controllers/PrliAppController.php:45 17 msgid "Pretty Links | Manage Pretty Links" 18 msgstr "" 19 20 #. #-#-#-#-# pretty-link.pot (Pretty Links 2.1.10) #-#-#-#-# 21 #. Plugin Name of the plugin/theme 22 #: app/controllers/PrliAppController.php:37 23 #: app/controllers/PrliAppController.php:46 app/views/links/list.php:12 12 "POT-Creation-Date: 2019-07-16T13:21:15-06:00\n" 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 "X-Generator: WP-CLI 2.2.0\n" 15 "X-Domain: pretty-link\n" 16 17 #. Plugin Name of the plugin 18 #: pro/app/views/links/prettybar.php:68 19 #: app/controllers/PrliLinksController.php:43 20 #: app/controllers/PrliLinksController.php:411 24 21 msgid "Pretty Links" 25 22 msgstr "" 26 23 27 #: app/controllers/PrliAppController.php:53 28 msgid "Pretty Links | Add New Link" 29 msgstr "" 30 31 #: app/controllers/PrliAppController.php:54 32 msgid "Add New Link" 33 msgstr "" 34 35 #: app/controllers/PrliAppController.php:62 36 msgid "Pretty Links | Groups" 37 msgstr "" 38 39 #: app/controllers/PrliAppController.php:63 app/views/groups/list.php:6 40 msgid "Groups" 41 msgstr "" 42 43 #: app/controllers/PrliAppController.php:72 44 msgid "Pretty Links | Clicks" 45 msgstr "" 46 47 #: app/controllers/PrliAppController.php:73 app/models/PrliClick.php:259 48 #: app/views/clicks/list.php:4 app/views/groups/list.php:69 49 #: pro/app/helpers/PlpPostsHelper.php:61 pro/app/views/links/form.php:36 50 #: pro/app/views/links/form.php:48 pro/app/views/reports/custom-report.php:31 51 #: pro/app/views/reports/custom-report.php:64 24 #. Plugin URI of the plugin 25 msgid "https://prettylinks.com/pl/plugin-uri" 26 msgstr "" 27 28 #. Description of the plugin 29 msgid "Shrink, track and share any URL on the Internet from your WordPress website!" 30 msgstr "" 31 32 #. Author of the plugin 33 msgid "Blair Williams" 34 msgstr "" 35 36 #. Author URI of the plugin 37 msgid "http://blairwilliams.com" 38 msgstr "" 39 40 #: pro/app/helpers/PlpLinksHelper.php:18 41 #: pro/app/views/links/form.php:226 42 msgid "weight:" 43 msgstr "" 44 45 #: pro/app/helpers/PlpPostsHelper.php:19 46 msgid "Hide Social Buttons on this post." 47 msgstr "" 48 49 #: pro/app/helpers/PlpPostsHelper.php:26 50 msgid "Disable Keyword Replacements on this post." 51 msgstr "" 52 53 #: pro/app/helpers/PlpPostsHelper.php:44 54 msgid "A Pretty Link will be created on Publish" 55 msgstr "" 56 57 #: pro/app/helpers/PlpPostsHelper.php:61 58 #: pro/app/views/links/form.php:39 59 #: pro/app/views/links/form.php:49 52 60 #: pro/app/views/reports/split-test-report.php:28 53 61 #: pro/app/views/reports/split-test-report.php:60 62 #: pro/app/views/reports/custom-report.php:31 63 #: pro/app/views/reports/custom-report.php:64 64 #: app/models/PrliClick.php:256 65 #: app/views/groups/list.php:81 66 #: app/views/clicks/list.php:4 67 #: app/controllers/PrliLinksController.php:409 68 #: app/controllers/PrliAppController.php:118 54 69 msgid "Clicks" 55 70 msgstr "" 56 71 57 #: app/controllers/PrliAppController.php:82 58 msgid "Pretty Links | Tools" 59 msgstr "" 60 61 #: app/controllers/PrliAppController.php:83 app/views/tools/form.php:3 72 #: pro/app/helpers/PlpPostsHelper.php:63 73 #: pro/app/views/reports/split-test-report.php:29 74 #: pro/app/views/reports/split-test-report.php:61 75 #: pro/app/views/reports/custom-report.php:32 76 #: pro/app/views/reports/custom-report.php:65 77 msgid "Uniques" 78 msgstr "" 79 80 #: pro/app/helpers/PlpPostsHelper.php:66 81 #: app/models/PrliClick.php:251 82 msgid "Pretty Link:" 83 msgstr "" 84 85 #: pro/app/helpers/PlpPostsHelper.php:68 86 msgid "edit" 87 msgstr "" 88 89 #: pro/app/helpers/PlpPostsHelper.php:70 90 msgid "Visit Pretty Link:" 91 msgstr "" 92 93 #: pro/app/helpers/PlpPostsHelper.php:70 94 msgid "in a New Window" 95 msgstr "" 96 97 #: pro/app/helpers/PlpPostsHelper.php:70 98 msgid "visit" 99 msgstr "" 100 101 #: pro/app/helpers/PlpPostsHelper.php:76 102 msgid "A Pretty Link hasn't been generated for this entry yet. Click \"Update Post\" to generate." 103 msgstr "" 104 105 #: pro/app/helpers/PlpPublicLinksHelper.php:6 106 #: pro/app/controllers/PlpPublicLinksController.php:106 107 msgid "Enter a URL:" 108 msgstr "" 109 110 #: pro/app/helpers/PlpPublicLinksHelper.php:7 111 #: pro/app/controllers/PlpPublicLinksController.php:107 112 #: pro/app/widgets/PlpPublicLinksWidget.php:61 113 msgid "Shrink" 114 msgstr "" 115 116 #: pro/app/models/PlpUtils.php:36 117 msgid "Google Analyticator" 118 msgstr "" 119 120 #: pro/app/models/PlpUtils.php:39 121 msgid "Google Analytics by MonsterInsights" 122 msgstr "" 123 124 #: pro/app/models/PlpUtils.php:42 125 #: pro/app/views/links/bulk-edit.php:10 126 #: app/views/links/form_advanced.php:58 127 msgid "Google Analytics" 128 msgstr "" 129 130 #: pro/app/models/PlpOptions.php:99 131 msgid "Facebook" 132 msgstr "" 133 134 #: pro/app/models/PlpOptions.php:106 135 msgid "Twitter" 136 msgstr "" 137 138 #: pro/app/models/PlpOptions.php:113 139 msgid "Google+" 140 msgstr "" 141 142 #: pro/app/models/PlpOptions.php:120 143 msgid "Pinterest" 144 msgstr "" 145 146 #: pro/app/models/PlpOptions.php:127 147 msgid "LinkedIn" 148 msgstr "" 149 150 #: pro/app/models/PlpOptions.php:134 151 msgid "Reddit" 152 msgstr "" 153 154 #: pro/app/models/PlpOptions.php:141 155 msgid "StumbleUpon" 156 msgstr "" 157 158 #: pro/app/models/PlpOptions.php:148 159 msgid "Digg" 160 msgstr "" 161 162 #: pro/app/models/PlpOptions.php:155 163 #: app/controllers/PrliLinksController.php:506 164 msgid "Email" 165 msgstr "" 166 167 #: pro/app/models/PlpOptions.php:238 168 msgid "Affiliate Link Disclosures" 169 msgstr "" 170 171 #: pro/app/models/PlpOptions.php:247 172 msgid "(aff)" 173 msgstr "" 174 175 #: pro/app/models/PlpReport.php:150 176 msgid "Report must have a name." 177 msgstr "" 178 179 #: pro/app/models/PlpReport.php:154 180 msgid "At least one link must be selected for analysis." 181 msgstr "" 182 183 #: pro/app/models/PlpReport.php:259 184 msgid "Pretty Links Pro: Clicks for" 185 msgstr "" 186 187 #: pro/app/models/PlpReport.php:259 188 msgid "report between" 189 msgstr "" 190 191 #: pro/app/models/PlpReport.php:259 192 #: pro/app/models/PlpReport.php:400 193 #: app/models/PrliClick.php:251 194 msgid "and" 195 msgstr "" 196 197 #: pro/app/models/PlpReport.php:266 198 #: pro/app/models/PlpReport.php:275 199 #: app/views/clicks/list.php:101 200 #: app/views/clicks/list.php:184 201 msgid "Link" 202 msgstr "" 203 204 #: pro/app/models/PlpReport.php:266 205 #: pro/app/models/PlpReport.php:275 206 #: pro/app/models/PlpReport.php:412 207 #: pro/app/models/PlpReport.php:419 208 #: app/views/clicks/list.php:32 209 msgid "All Clicks" 210 msgstr "" 211 212 #: pro/app/models/PlpReport.php:266 213 #: pro/app/models/PlpReport.php:275 214 #: pro/app/models/PlpReport.php:412 215 #: pro/app/models/PlpReport.php:419 216 #: app/views/clicks/list.php:33 217 msgid "Unique Clicks" 218 msgstr "" 219 220 #: pro/app/models/PlpReport.php:266 221 #: pro/app/models/PlpReport.php:412 222 #: pro/app/views/reports/split-test-report.php:31 223 #: pro/app/views/reports/split-test-report.php:63 224 #: pro/app/views/reports/custom-report.php:34 225 #: pro/app/views/reports/custom-report.php:67 226 msgid "Conversions" 227 msgstr "" 228 229 #: pro/app/models/PlpReport.php:400 230 msgid "Pretty Links Pro: Split Report for" 231 msgstr "" 232 233 #: pro/app/models/PlpReport.php:400 234 #: app/models/PrliClick.php:251 235 msgid "between" 236 msgstr "" 237 238 #: pro/app/models/PlpReport.php:412 239 #: pro/app/models/PlpReport.php:419 240 #: pro/app/views/links/form.php:199 241 #: app/views/links/form_pro.php:95 242 msgid "Rotation" 243 msgstr "" 244 245 #: pro/app/views/links/link-options.php:3 246 #: pro/app/views/links/link-options.php:5 247 #: app/views/options/form.php:134 248 #: app/views/options/form.php:136 249 msgid "Base Slug Prefix" 250 msgstr "" 251 252 #. translators: %1$s: open b tag, %2$s close b tag 253 #: pro/app/views/links/link-options.php:8 254 #: app/views/options/form.php:139 255 msgid "Use this to prefix all newly generated pretty links with a directory of your choice. For example set to %1$sout%2$s to make your pretty links look like http://site.com/%1$sout%2$s/xyz. Changing this option will NOT affect existing pretty links. If you do not wish to use a directory prefix, leave this text field blank. Whatever you type here will be sanitized and modified to ensure it is URL-safe. So %1$sHello World%2$s might get changed to something like %1$shello-world%2$s instead. Lowercase letters, numbers, dashes, and underscores are allowed." 256 msgstr "" 257 258 #: pro/app/views/links/link-options.php:21 259 #: pro/app/views/links/link-options.php:23 260 #: app/views/options/form.php:153 261 #: app/views/options/form.php:155 262 msgid "Slug Character Count" 263 msgstr "" 264 265 #: pro/app/views/links/link-options.php:24 266 #: app/views/options/form.php:156 267 msgid "The number of characters to use when auto-generating a random slug for pretty links. The default is 4. You cannot use less than 2." 268 msgstr "" 269 270 #: pro/app/views/links/link-options.php:34 271 #: pro/app/views/links/link-options.php:35 272 #: app/views/options/form.php:167 273 #: app/views/options/form.php:168 274 msgid "Enable Google Analytics" 275 msgstr "" 276 277 #: pro/app/views/links/link-options.php:36 278 #: app/views/options/form.php:169 279 msgid "Requires Google Analyticator, Google Analytics by MonsterInsights (formerly Yoast), or the Google Analytics Plugin to be installed and configured on your site." 280 msgstr "" 281 282 #. translators: %1s: open link tag, %2$s: close link tag 283 #: pro/app/views/links/link-options.php:50 284 msgid "Enable %1sQR Codes%2$s" 285 msgstr "" 286 287 #: pro/app/views/links/link-options.php:57 288 #: app/views/options/form.php:182 289 msgid "Generate QR Codes" 290 msgstr "" 291 292 #: pro/app/views/links/link-options.php:58 293 #: app/views/options/form.php:183 294 msgid "This will enable a link in your pretty link admin that will allow you to automatically download a QR Code for each individual Pretty Link." 295 msgstr "" 296 297 #: pro/app/views/links/link-options.php:68 298 #: pro/app/views/links/link-options.php:70 299 #: app/views/options/form.php:194 300 #: app/views/options/form.php:196 301 msgid "Global Head Scripts" 302 msgstr "" 303 304 #. translators: %1$s: br tag, %2$s: open b tag, %3$s close b tag 305 #: pro/app/views/links/link-options.php:73 306 #: app/views/options/form.php:199 307 msgid "Useful for adding Google Analytics tracking, Facebook retargeting pixels, or any other kind of tracking script to the HTML head.%1$s%1$sWhat you enter in this box will be applied to all supported pretty links.%1$s%1$s%2$sNOTE:%3$s This does NOT work with 301, 302 and 307 type redirects." 308 msgstr "" 309 310 #: pro/app/views/links/form.php:6 311 #: app/views/links/form_pro.php:15 312 msgid "Expire" 313 msgstr "" 314 315 #: pro/app/views/links/form.php:9 316 #: app/views/links/form_pro.php:18 317 msgid "Expire Link" 318 msgstr "" 319 320 #: pro/app/views/links/form.php:10 321 #: app/views/links/form_pro.php:19 322 msgid "Set this link to expire after a specific date or number of clicks." 323 msgstr "" 324 325 #: pro/app/views/links/form.php:23 326 msgid "Expire After" 327 msgstr "" 328 329 #: pro/app/views/links/form.php:26 330 msgid "Expiration Type" 331 msgstr "" 332 333 #. translators: %1$s: br tag, %2$s: open b tag, %3$s close b tag 334 #: pro/app/views/links/form.php:29 335 msgid "Select the type of expiration you want for this link.%1$s%1$s%2$sDate%3$s Select this option if you'd like to expire your link after a certain date.%1%s%1$s%2$sClicks%3$s: Select this option to expire this link after it has been clicked a specific number of times." 336 msgstr "" 337 338 #: pro/app/views/links/form.php:38 339 #: pro/app/views/links/form.php:73 340 #: app/models/PrliClick.php:256 341 #: app/controllers/PrliLinksController.php:410 342 msgid "Date" 343 msgstr "" 344 345 #: pro/app/views/links/form.php:52 346 msgid "Number of Clicks" 347 msgstr "" 348 349 #. translators: %1$s: br tag, %2$s: open b tag, %3$s close b tag 350 #: pro/app/views/links/form.php:55 351 msgid "Enter the number of times this link can be clicked before it expires.%1$s%1$s%2$sNote: Expirations based on clicks wouldn't work properly if you had tracking turned off for this link so as long as this is set to Clicks, Pretty Link will ensure tracking is turned on for this link as well.%3$s" 352 msgstr "" 353 354 #: pro/app/views/links/form.php:76 355 msgid "Expiration Date" 356 msgstr "" 357 358 #: pro/app/views/links/form.php:77 359 msgid "Enter a date here in the format YYYY-MM-DD to set when this link should expire." 360 msgstr "" 361 362 #: pro/app/views/links/form.php:91 363 msgid "Expired Redirect" 364 msgstr "" 365 366 #: pro/app/views/links/form.php:94 367 msgid "Redirect to URL when Expired" 368 msgstr "" 369 370 #. translators: %1$s: br tag, %2$s: open b tag, %3$s close b tag 371 #: pro/app/views/links/form.php:97 372 msgid "When this link expires, do you want to redirect to a specific URL. You can use this to redirect to a page you've setup to indicate that the link is expired.%1$s%1$s%2$sNote: If this is not set the link will throw a 404 error when expired%3$s." 373 msgstr "" 374 375 #: pro/app/views/links/form.php:114 376 #: pro/app/views/options/form.php:187 377 msgid "URL" 378 msgstr "" 379 380 #: pro/app/views/links/form.php:117 381 msgid "Expired URL" 382 msgstr "" 383 384 #: pro/app/views/links/form.php:118 385 msgid "This is the URL that this link will redirect to after the expiration date above." 386 msgstr "" 387 388 #: pro/app/views/links/form.php:133 389 #: app/views/links/form_pro.php:30 390 #: app/controllers/PrliLinksController.php:372 391 msgid "Keywords" 392 msgstr "" 393 394 #: pro/app/views/links/form.php:136 395 #: app/views/links/form_pro.php:33 396 msgid "Auto-Replace Keywords" 397 msgstr "" 398 399 #: pro/app/views/links/form.php:137 400 msgid "Enter a comma separated list of keywords / keyword phrases that you'd like to replace with this link in your Posts & Pages." 401 msgstr "" 402 403 #: pro/app/views/links/form.php:145 404 #: app/views/links/form_pro.php:44 405 msgid "URL Replacements" 406 msgstr "" 407 408 #: pro/app/views/links/form.php:148 409 #: app/views/links/form_pro.php:47 410 msgid "Auto-Replace URLs" 411 msgstr "" 412 413 #. translators: %1$s: open code tag, %2$s: close code tag 414 #: pro/app/views/links/form.php:151 415 msgid "Enter a comma separated list of the URLs that you'd like to replace with this Pretty Link in your Posts & Pages. These must be formatted as URLs for example: %1$shttp://example.com%2$s or %1$shttp://example.com?product_id=53%2$s" 416 msgstr "" 417 418 #: pro/app/views/links/form.php:167 419 #: pro/app/views/links/form.php:170 420 #: app/views/links/form_pro.php:64 421 #: app/views/links/form_pro.php:67 422 msgid "Head Scripts" 423 msgstr "" 424 425 #. translators: %1$s: br tag, %2$s: open b tag, %3$s close b tag 426 #: pro/app/views/links/form.php:173 427 #: app/views/links/form_pro.php:70 428 msgid "Useful for adding Google Analytics tracking, Facebook retargeting pixels, or any other kind of tracking script to the HTML head for this pretty link.%1$s%1$sThese scripts will be in addition to any global one's you've defined in the options.%1$s%1$s%2$sNOTE:%3$s This does NOT work with 301, 302 and 307 type redirects." 429 msgstr "" 430 431 #: pro/app/views/links/form.php:189 432 #: app/views/links/form_pro.php:84 433 msgid "Dynamic Redirection" 434 msgstr "" 435 436 #: pro/app/views/links/form.php:192 437 #: app/views/links/form_pro.php:87 438 msgid "Dynamic Redirection Options" 439 msgstr "" 440 441 #: pro/app/views/links/form.php:193 442 #: app/views/links/form_pro.php:88 443 msgid "These powerful options are available to give you dynamic control over redirection for this pretty link." 444 msgstr "" 445 446 #: pro/app/views/links/form.php:198 447 #: pro/app/views/options/form.php:812 448 #: pro/app/views/options/autocreate.php:44 449 #: pro/app/views/tools/generator.php:37 450 #: pro/app/widgets/PlpPublicLinksWidget.php:94 451 #: app/views/links/form_pro.php:94 452 #: app/views/shared/tinymce_form_popup.php:75 453 #: app/views/shared/tinymce_form_popup.php:79 454 #: app/views/options/form.php:948 455 msgid "None" 456 msgstr "" 457 458 #: pro/app/views/links/form.php:200 459 #: app/views/links/form_pro.php:96 460 msgid "Geographic" 461 msgstr "" 462 463 #: pro/app/views/links/form.php:201 464 #: app/views/links/form_pro.php:97 465 msgid "Technology" 466 msgstr "" 467 468 #: pro/app/views/links/form.php:202 469 #: app/views/links/form_pro.php:98 470 msgid "Time" 471 msgstr "" 472 473 #: pro/app/views/links/form.php:211 474 #: pro/app/views/links/form.php:214 475 msgid "Target URL Rotations" 476 msgstr "" 477 478 #. translators: %1$s: open code tag, %2$s: close code tag 479 #: pro/app/views/links/form.php:217 480 msgid "Enter the Target URLs that you'd like to rotate through when this Pretty Link is Clicked. These must be formatted as URLs example: %1$shttp://example.com%2$s or %1$shttp://example.com?product_id=53%2$s" 481 msgstr "" 482 483 #: pro/app/views/links/form.php:225 484 msgid "Target URL (above)" 485 msgstr "" 486 487 #: pro/app/views/links/form.php:237 488 msgid "Add Link Rotation" 489 msgstr "" 490 491 #: pro/app/views/links/form.php:242 492 msgid "Split Test" 493 msgstr "" 494 495 #: pro/app/views/links/form.php:245 496 msgid "Split Test This Link" 497 msgstr "" 498 499 #: pro/app/views/links/form.php:246 500 msgid "Split testing will enable you to track the effectiveness of several links against each other. This works best when you have multiple link rotation URLs entered." 501 msgstr "" 502 503 #: pro/app/views/links/form.php:260 504 #: pro/app/views/reports/list.php:37 505 #: pro/app/views/reports/list.php:87 506 msgid "Goal Link" 507 msgstr "" 508 509 #: pro/app/views/links/form.php:263 510 msgid "Goal Link for Split Test" 511 msgstr "" 512 513 #: pro/app/views/links/form.php:264 514 msgid "This is the goal link for your split test." 515 msgstr "" 516 517 #: pro/app/views/links/form.php:275 518 msgid "id: %1$s | slug: %3$s | name: %2$s" 519 msgstr "" 520 521 #: pro/app/views/links/form.php:293 522 #: pro/app/views/links/form.php:296 523 msgid "Geographic Redirects" 524 msgstr "" 525 526 #: pro/app/views/links/form.php:297 527 msgid "This will enable you to setup specific target urls that this pretty link will redirect to based on the country of the person visiting the url." 528 msgstr "" 529 530 #: pro/app/views/links/form.php:302 531 #: pro/app/views/links/form.php:316 532 #: pro/app/views/links/form.php:336 533 msgid "Add" 534 msgstr "" 535 536 #: pro/app/views/links/form.php:307 537 #: pro/app/views/links/form.php:310 538 msgid "Technology Redirects" 539 msgstr "" 540 541 #: pro/app/views/links/form.php:311 542 msgid "This will allow you to redirect based on your visitor's device, operating system and/or browser" 543 msgstr "" 544 545 #: pro/app/views/links/form.php:321 546 #: pro/app/views/links/form.php:324 547 msgid "Time Period Redirects" 548 msgstr "" 549 550 #. translators: %1$s: br tag, %2$s: open b tag, %3$s close b tag 551 #: pro/app/views/links/form.php:327 552 msgid "This will allow you to redirect based on the time period in which your visitor visits this link.%1$s%1$s%2$sNote: If your visitor doesn't visit the link during any of the specified time periods set here, they'll simply be redirected to the main target url.%3$s" 553 msgstr "" 554 555 #: pro/app/views/links/bulk-edit.php:6 556 msgid "Advanced Link Options" 557 msgstr "" 558 559 #: pro/app/views/links/cloaked-redirect.php:19 560 msgid "Your browser does not support frames." 561 msgstr "" 562 563 #: pro/app/views/links/link-has-expired.php:9 564 msgid "Link Not Found" 565 msgstr "" 566 567 #: pro/app/views/links/link-has-expired.php:23 568 msgid "Sorry, this link has expired" 569 msgstr "" 570 571 #: pro/app/views/links/time_row.php:13 572 msgid "Start Time:" 573 msgstr "" 574 575 #: pro/app/views/links/time_row.php:16 576 msgid "Start of Time Period" 577 msgstr "" 578 579 #: pro/app/views/links/time_row.php:17 580 msgid "This is where you'll enter the beginning of the time period for this redirect" 581 msgstr "" 582 583 #: pro/app/views/links/time_row.php:26 584 msgid "End Time:" 585 msgstr "" 586 587 #: pro/app/views/links/time_row.php:29 588 msgid "End of Time Period" 589 msgstr "" 590 591 #: pro/app/views/links/time_row.php:30 592 msgid "This is where you'll enter the end of the time period for this redirect" 593 msgstr "" 594 595 #: pro/app/views/links/time_row.php:39 596 #: pro/app/views/links/tech_row.php:85 597 #: pro/app/views/links/geo_row.php:25 598 msgid "URL:" 599 msgstr "" 600 601 #: pro/app/views/links/time_row.php:42 602 msgid "Time Period Redirect URL" 603 msgstr "" 604 605 #: pro/app/views/links/time_row.php:43 606 msgid "This is the URL that this Pretty Link will redirect to when the visitor visits the link in the associated time period." 607 msgstr "" 608 609 #: pro/app/views/links/time_row.php:52 610 #: pro/app/views/links/tech_row.php:98 611 #: pro/app/views/links/geo_row.php:38 612 msgid "Remove" 613 msgstr "" 614 615 #: pro/app/views/links/tech_row.php:14 616 msgid "Device:" 617 msgstr "" 618 619 #: pro/app/views/links/tech_row.php:17 620 msgid "Technology Redirection Device" 621 msgstr "" 622 623 #. translators: %1$s: open b tag, %2$s: close b tag, %3$s: br tag 624 #: pro/app/views/links/tech_row.php:20 625 msgid "%1$sDesktop%2$s will match on any conventional laptop or desktop computer.%3$s%3$s%1$sMobile%2$s will match on any phone, tablet or other portable device.%3$s%3$s%1$sPhone%2$s will match on any phone or similarly small device.%3$s%3$s%1$sTablet%2$s will match on any tablet sized device." 626 msgstr "" 627 628 #: pro/app/views/links/tech_row.php:29 629 #: pro/app/views/links/tech_row.php:48 630 #: pro/app/views/links/tech_row.php:68 631 msgid "Any" 632 msgstr "" 633 634 #: pro/app/views/links/tech_row.php:30 635 msgid "Desktop" 636 msgstr "" 637 638 #: pro/app/views/links/tech_row.php:31 639 msgid "Mobile" 640 msgstr "" 641 642 #: pro/app/views/links/tech_row.php:32 643 msgid "Phone" 644 msgstr "" 645 646 #: pro/app/views/links/tech_row.php:33 647 msgid "Tablet" 648 msgstr "" 649 650 #: pro/app/views/links/tech_row.php:39 651 msgid "Operating System:" 652 msgstr "" 653 654 #: pro/app/views/links/tech_row.php:42 655 msgid "Technology Redirection OS" 656 msgstr "" 657 658 #: pro/app/views/links/tech_row.php:43 659 msgid "Use this dropdown to select which Operating System this redirect will match on." 660 msgstr "" 661 662 #: pro/app/views/links/tech_row.php:49 663 #: pro/app/views/links/tech_row.php:70 664 msgid "Android" 665 msgstr "" 666 667 #: pro/app/views/links/tech_row.php:50 668 msgid "iOS" 669 msgstr "" 670 671 #: pro/app/views/links/tech_row.php:51 672 msgid "Linux" 673 msgstr "" 674 675 #: pro/app/views/links/tech_row.php:52 676 msgid "Mac" 677 msgstr "" 678 679 #: pro/app/views/links/tech_row.php:53 680 msgid "Windows" 681 msgstr "" 682 683 #: pro/app/views/links/tech_row.php:59 684 msgid "Browser:" 685 msgstr "" 686 687 #: pro/app/views/links/tech_row.php:62 688 msgid "Technology Redirection Browser" 689 msgstr "" 690 691 #: pro/app/views/links/tech_row.php:63 692 msgid "Use this dropdown to select which Browser this redirect will match on." 693 msgstr "" 694 695 #: pro/app/views/links/tech_row.php:69 696 msgid "Amazon Silk" 697 msgstr "" 698 699 #: pro/app/views/links/tech_row.php:71 700 msgid "Chrome" 701 msgstr "" 702 703 #: pro/app/views/links/tech_row.php:72 704 msgid "Chromium" 705 msgstr "" 706 707 #: pro/app/views/links/tech_row.php:73 708 msgid "Edge" 709 msgstr "" 710 711 #: pro/app/views/links/tech_row.php:74 712 msgid "Firefox" 713 msgstr "" 714 715 #: pro/app/views/links/tech_row.php:75 716 msgid "Internet Explorer" 717 msgstr "" 718 719 #: pro/app/views/links/tech_row.php:76 720 msgid "Kindle" 721 msgstr "" 722 723 #: pro/app/views/links/tech_row.php:77 724 msgid "Opera" 725 msgstr "" 726 727 #: pro/app/views/links/tech_row.php:78 728 msgid "Opera Coast" 729 msgstr "" 730 731 #: pro/app/views/links/tech_row.php:79 732 msgid "Safari" 733 msgstr "" 734 735 #: pro/app/views/links/tech_row.php:88 736 msgid "Technology Redirection URL" 737 msgstr "" 738 739 #: pro/app/views/links/tech_row.php:89 740 msgid "This is the URL that this Pretty Link will redirect to if the visitor's device, os and browser match the settings here." 741 msgstr "" 742 743 #: pro/app/views/links/prettybar.php:46 744 msgid "You're viewing: %s" 745 msgstr "" 746 747 #: pro/app/views/links/prettybar.php:46 748 msgid "Viewing: %s" 749 msgstr "" 750 751 #: pro/app/views/links/prettybar.php:51 752 msgid "Share on Twitter" 753 msgstr "" 754 755 #: pro/app/views/links/prettybar.php:68 756 msgid "Powered by" 757 msgstr "" 758 759 #: pro/app/views/links/geo_row.php:12 760 msgid "Countries:" 761 msgstr "" 762 763 #: pro/app/views/links/geo_row.php:15 764 msgid "Technology Redirection Countries" 765 msgstr "" 766 767 #: pro/app/views/links/geo_row.php:16 768 msgid "This is a comma-separated list of countries that this redirect will match on. Just start typing a country's name and an autocomplete dropdown will appear to select from. Once a country is selected, feel free to start typing the name of another country. You can add as many as you'd like this redirect to match on" 769 msgstr "" 770 771 #: pro/app/views/links/geo_row.php:28 772 msgid "Geographic Redirection URL" 773 msgstr "" 774 775 #: pro/app/views/links/geo_row.php:29 776 msgid "This is the URL that this Pretty Link will redirect to if the visitor's country match the settings here." 777 msgstr "" 778 779 #: pro/app/views/public/form.php:28 780 msgid "ERROR:" 781 msgstr "" 782 783 #: pro/app/views/reports/edit.php:7 784 msgid "Edit Link Report" 785 msgstr "" 786 787 #: pro/app/views/reports/edit.php:18 788 #: app/views/groups/edit.php:21 789 msgid "Name:" 790 msgstr "" 791 792 #: pro/app/views/reports/edit.php:20 793 #: pro/app/views/reports/new.php:19 794 msgid "This is how you'll identify your Report." 795 msgstr "" 796 797 #: pro/app/views/reports/edit.php:26 798 #: pro/app/views/reports/new.php:26 799 msgid "Select Links to Analyze in this Report:" 800 msgstr "" 801 802 #: pro/app/views/reports/edit.php:36 803 #: pro/app/views/reports/new.php:36 804 msgid "Select some links to be analyzed in this report." 805 msgstr "" 806 807 #: pro/app/views/reports/edit.php:39 808 #: pro/app/views/reports/new.php:39 809 msgid "Select Your Goal Link (optional):" 810 msgstr "" 811 812 #: pro/app/views/reports/edit.php:44 813 #: pro/app/views/reports/list.php:32 814 #: pro/app/views/reports/list.php:86 815 #: pro/app/views/reports/new.php:44 816 #: app/views/groups/edit.php:36 817 #: app/views/groups/list.php:41 818 #: app/views/groups/list.php:93 819 #: app/views/groups/new.php:37 820 msgid "Name" 821 msgstr "" 822 823 #: pro/app/views/reports/edit.php:60 824 #: pro/app/views/reports/new.php:60 825 msgid "If you want to enable conversion tracking in this report then select a goal link." 826 msgstr "" 827 828 #: pro/app/views/reports/edit.php:66 829 #: app/views/options/form.php:999 830 #: app/views/groups/edit.php:72 831 #: app/controllers/PrliAppController.php:377 832 msgid "Update" 833 msgstr "" 834 835 #: pro/app/views/reports/edit.php:66 836 #: pro/app/views/reports/split-test-report.php:19 837 #: pro/app/views/reports/custom-report.php:22 838 #: pro/app/views/reports/new.php:66 839 #: app/views/groups/edit.php:72 840 #: app/views/groups/new.php:71 841 #: app/views/clicks/list.php:43 842 msgid "Cancel" 843 msgstr "" 844 845 #: pro/app/views/reports/list.php:4 846 #: pro/app/views/reports/reports.php:7 847 msgid "Link Reports" 848 msgstr "" 849 850 #: pro/app/views/reports/list.php:5 851 msgid "Add Report" 852 msgstr "" 853 854 #: pro/app/views/reports/list.php:18 855 #: app/views/groups/list.php:20 856 msgid "Search" 857 msgstr "" 858 859 #: pro/app/views/reports/list.php:20 860 #: app/views/groups/list.php:24 861 #: app/views/clicks/list.php:64 862 #: app/controllers/PrliLinksController.php:502 863 msgid "Reset" 864 msgstr "" 865 866 #: pro/app/views/reports/list.php:42 867 #: pro/app/views/reports/list.php:88 868 #: app/views/options/form.php:51 869 #: app/views/groups/list.php:46 870 #: app/views/groups/list.php:80 871 #: app/views/groups/list.php:94 872 msgid "Links" 873 msgstr "" 874 875 #: pro/app/views/reports/list.php:47 876 #: pro/app/views/reports/list.php:89 877 #: app/views/groups/list.php:51 878 #: app/views/groups/list.php:95 879 msgid "Created" 880 msgstr "" 881 882 #: pro/app/views/reports/list.php:57 883 msgid "No Pretty Link Reports were found" 884 msgstr "" 885 886 #: pro/app/views/reports/list.php:68 887 #: pro/app/views/reports/list.php:71 888 #: app/helpers/PrliLinksHelper.php:67 889 #: app/views/groups/list.php:75 890 #: app/views/groups/list.php:78 891 msgid "Edit %s" 892 msgstr "" 893 894 #: pro/app/views/reports/list.php:71 895 #: app/views/groups/list.php:78 896 msgid "Edit" 897 msgstr "" 898 899 #: pro/app/views/reports/list.php:72 900 msgid "Are you sure you want to delete your %s Pretty Link Report?" 901 msgstr "" 902 903 #: pro/app/views/reports/list.php:72 904 #: app/helpers/PrliLinksHelper.php:68 905 #: app/views/groups/list.php:79 906 msgid "Delete %s" 907 msgstr "" 908 909 #: pro/app/views/reports/list.php:72 910 #: app/views/groups/list.php:79 911 msgid "Delete" 912 msgstr "" 913 914 #: pro/app/views/reports/list.php:73 915 msgid "View report for %s" 916 msgstr "" 917 918 #: pro/app/views/reports/list.php:73 919 msgid "View" 920 msgstr "" 921 922 #: pro/app/views/reports/split-test-report.php:4 923 msgid "Link Split-Test Report" 924 msgstr "" 925 926 #: pro/app/views/reports/split-test-report.php:5 927 msgid "For Link:" 928 msgstr "" 929 930 #: pro/app/views/reports/split-test-report.php:7 931 msgid "Goal Link:" 932 msgstr "" 933 934 #: pro/app/views/reports/split-test-report.php:9 935 #: app/views/clicks/list.php:18 936 msgid "Back to Links" 937 msgstr "" 938 939 #: pro/app/views/reports/split-test-report.php:9 940 #: pro/app/views/reports/custom-report.php:12 941 #: app/views/clicks/list.php:11 942 msgid "Customize Report" 943 msgstr "" 944 945 #: pro/app/views/reports/split-test-report.php:13 946 #: pro/app/views/reports/custom-report.php:16 947 #: app/views/clicks/list.php:37 948 msgid "Date Range:" 949 msgstr "" 950 951 #: pro/app/views/reports/split-test-report.php:19 952 #: pro/app/views/reports/custom-report.php:22 953 #: app/views/clicks/list.php:43 954 msgid "Customize" 955 msgstr "" 956 957 #: pro/app/views/reports/split-test-report.php:27 958 msgid "Link Rotation URL" 959 msgstr "" 960 961 #: pro/app/views/reports/split-test-report.php:32 962 #: pro/app/views/reports/split-test-report.php:64 963 #: pro/app/views/reports/custom-report.php:35 964 #: pro/app/views/reports/custom-report.php:68 965 msgid "Conv Rate" 966 msgstr "" 967 968 #: pro/app/views/reports/split-test-report.php:59 969 msgid "Rotation URL" 970 msgstr "" 971 972 #: pro/app/views/reports/custom-report.php:7 973 msgid "Link Report" 974 msgstr "" 975 976 #: pro/app/views/reports/custom-report.php:8 977 msgid "Report:" 978 msgstr "" 979 980 #: pro/app/views/reports/custom-report.php:10 981 msgid "For Goal Link:" 982 msgstr "" 983 984 #: pro/app/views/reports/custom-report.php:30 985 #: pro/app/views/reports/custom-report.php:63 986 msgid "Link Name" 987 msgstr "" 988 989 #: pro/app/views/reports/reports.php:4 990 #: pro/app/controllers/PlpReportsController.php:15 991 msgid "Reports" 992 msgstr "" 993 994 #: pro/app/views/reports/new.php:7 995 msgid "Add Link Report" 996 msgstr "" 997 998 #: pro/app/views/reports/new.php:17 999 #: app/views/groups/new.php:22 1000 msgid "Name*:" 1001 msgstr "" 1002 1003 #: pro/app/views/reports/new.php:66 1004 #: app/views/groups/new.php:71 1005 #: app/views/widgets/widget.php:21 1006 msgid "Create" 1007 msgstr "" 1008 1009 #: pro/app/views/options/form.php:4 1010 #: app/views/options/form.php:305 1011 msgid "Keyword & URL Auto Replacements Options" 1012 msgstr "" 1013 1014 #: pro/app/views/options/form.php:13 1015 #: app/views/options/form.php:312 1016 msgid "Enable Replacements" 1017 msgstr "" 1018 1019 #: pro/app/views/options/form.php:15 1020 #: app/views/options/form.php:314 1021 msgid "Enable Keyword and URL Auto Replacement" 1022 msgstr "" 1023 1024 #: pro/app/views/options/form.php:16 1025 #: app/views/options/form.php:315 1026 msgid "If checked, this will enable you to automatically replace keywords and/or URLs on your blog with pretty links. You will specify the specific keywords and urls from your Pretty Link edit page." 1027 msgstr "" 1028 1029 #: pro/app/views/options/form.php:34 1030 #: app/views/options/form.php:334 1031 msgid "Thresholds" 1032 msgstr "" 1033 1034 #: pro/app/views/options/form.php:36 1035 #: app/views/options/form.php:336 1036 msgid "Set Keyword Replacement Thresholds" 1037 msgstr "" 1038 1039 #: pro/app/views/options/form.php:37 1040 #: app/views/options/form.php:337 1041 msgid "Don't want to have too many keyword replacements per page? Select to set some reasonable keyword replacement thresholds." 1042 msgstr "" 1043 1044 #: pro/app/views/options/form.php:54 1045 msgid "Max Keywords" 1046 msgstr "" 1047 1048 #: pro/app/views/options/form.php:56 1049 msgid "Set Maximum Keywords per Page" 1050 msgstr "" 1051 1052 #: pro/app/views/options/form.php:57 1053 msgid "Maximum number of unique keyword / keyphrases you can replace with Pretty Links per page." 1054 msgstr "" 1055 1056 #: pro/app/views/options/form.php:68 1057 msgid "Max Replacements" 1058 msgstr "" 1059 1060 #: pro/app/views/options/form.php:70 1061 msgid "Set Maximum Replacements per Keyword" 1062 msgstr "" 1063 1064 #: pro/app/views/options/form.php:71 1065 msgid "Maximum number of Pretty Link replacements per Keyword / Keyphrase." 1066 msgstr "" 1067 1068 #: pro/app/views/options/form.php:87 1069 #: app/views/options/form.php:353 1070 msgid "Open in New Window" 1071 msgstr "" 1072 1073 #: pro/app/views/options/form.php:89 1074 #: app/views/options/form.php:355 1075 msgid "Open Keyword Replacement Links in New Window" 1076 msgstr "" 1077 1078 #. translators: %1$s: open strong tag, %2$s: close strong tag 1079 #: pro/app/views/options/form.php:92 1080 #: app/views/options/form.php:358 1081 msgid "Ensure that these keyword replacement links are opened in a separate window. %1$sNote:%2$s This does not apply to url replacements--only keyword replacements." 1082 msgstr "" 1083 1084 #: pro/app/views/options/form.php:106 1085 #: app/views/options/form.php:373 1086 msgid "Add No Follows" 1087 msgstr "" 1088 1089 #: pro/app/views/options/form.php:108 1090 #: app/views/options/form.php:375 1091 msgid "Add 'nofollow' attribute to all Keyword Pretty Links" 1092 msgstr "" 1093 1094 #. translators: %1$s: open code tag, %2$s: close code tag, %3$s: open strong tag, %4$s close strong tag 1095 #: pro/app/views/options/form.php:111 1096 #: app/views/options/form.php:378 1097 msgid "This adds the html %1$sNOFOLLOW%2$s attribute to all keyword replacement links. %3$sNote:%4$s This does not apply to url replacements--only keyword replacements." 1098 msgstr "" 1099 1100 #: pro/app/views/options/form.php:127 1101 #: app/views/options/form.php:395 1102 msgid "Custom CSS" 1103 msgstr "" 1104 1105 #: pro/app/views/options/form.php:129 1106 #: app/views/options/form.php:397 1107 msgid "Add custom CSS to your keyword replacement links" 1108 msgstr "" 1109 1110 #. translators: %1$s: open strong tag, %2$s: close strong tag 1111 #: pro/app/views/options/form.php:132 1112 #: app/views/options/form.php:400 1113 msgid "Add some custom formatting to your keyword pretty link replacements. %1$sNote:%2$s This does not apply to url replacements--only keyword replacements." 1114 msgstr "" 1115 1116 #: pro/app/views/options/form.php:146 1117 #: app/views/options/form.php:415 1118 msgid "Custom Hover CSS" 1119 msgstr "" 1120 1121 #: pro/app/views/options/form.php:148 1122 #: app/views/options/form.php:417 1123 msgid "Add custom hover CSS to your keyword replacement links" 1124 msgstr "" 1125 1126 #. translators: %1$s: open strong tag, %2$s: close strong tag 1127 #: pro/app/views/options/form.php:151 1128 #: app/views/options/form.php:420 1129 msgid "Add some custom formatting to the hover attribute of your keyword pretty links. %1$sNote%2$s: This does not apply to url replacements--only keyword replacements." 1130 msgstr "" 1131 1132 #: pro/app/views/options/form.php:165 1133 #: app/views/options/form.php:435 1134 msgid "Link to Disclosures" 1135 msgstr "" 1136 1137 #: pro/app/views/options/form.php:168 1138 #: app/views/options/form.php:438 1139 msgid "Automatically Add a Link to Disclosures" 1140 msgstr "" 1141 1142 #: pro/app/views/options/form.php:169 1143 #: app/views/options/form.php:439 1144 msgid "When enabled, this will add a link to your official affiliate link disclosure page to any page, post or custom post type that have any keyword or URL replacements. You'll also be able to customize the URL and position of the disclosure link." 1145 msgstr "" 1146 1147 #: pro/app/views/options/form.php:190 1148 msgid "Disclosures Link URL" 1149 msgstr "" 1150 1151 #: pro/app/views/options/form.php:191 1152 msgid "This is the URL of the page that contains your official affiliate link disclosures. This URL will be used in the link that will be generated." 1153 msgstr "" 1154 1155 #: pro/app/views/options/form.php:202 1156 msgid "Text" 1157 msgstr "" 1158 1159 #: pro/app/views/options/form.php:205 1160 msgid "Disclosures Link Text" 1161 msgstr "" 1162 1163 #: pro/app/views/options/form.php:206 1164 msgid "This is the text of the link to your disclosures. This text will be visible to your visitors when the link is displayed." 1165 msgstr "" 1166 1167 #: pro/app/views/options/form.php:217 1168 msgid "Position" 1169 msgstr "" 1170 1171 #: pro/app/views/options/form.php:220 1172 msgid "Disclosures Link Position" 1173 msgstr "" 1174 1175 #: pro/app/views/options/form.php:221 1176 msgid "This is the position of the link to your disclosures in relation to your post content." 1177 msgstr "" 1178 1179 #: pro/app/views/options/form.php:227 1180 #: pro/app/views/options/form.php:810 1181 #: app/views/options/form.php:946 1182 msgid "Bottom" 1183 msgstr "" 1184 1185 #: pro/app/views/options/form.php:228 1186 #: pro/app/views/options/form.php:809 1187 #: app/views/options/form.php:945 1188 msgid "Top" 1189 msgstr "" 1190 1191 #: pro/app/views/options/form.php:229 1192 #: pro/app/views/options/form.php:811 1193 #: app/views/options/form.php:947 1194 msgid "Top and Bottom" 1195 msgstr "" 1196 1197 #: pro/app/views/options/form.php:241 1198 #: app/views/options/form.php:452 1199 msgid "Keyword Disclosures" 1200 msgstr "" 1201 1202 #: pro/app/views/options/form.php:244 1203 #: app/views/options/form.php:455 1204 msgid "Automatically Add Affiliate Link Disclosures to Keyword Replacements" 1205 msgstr "" 1206 1207 #. translators: %1$s: open b tag, %2$s close b tag 1208 #: pro/app/views/options/form.php:247 1209 #: app/views/options/form.php:458 1210 msgid "When enabled, this will add an affiliate link disclosure next to each one of your keyword replacements. %1$sNote:%2$s This does not apply to url replacements--only keyword replacements." 1211 msgstr "" 1212 1213 #: pro/app/views/options/form.php:268 1214 msgid "Disclosure Text" 1215 msgstr "" 1216 1217 #: pro/app/views/options/form.php:271 1218 msgid "Keyword Link Disclosure Text" 1219 msgstr "" 1220 1221 #: pro/app/views/options/form.php:272 1222 msgid "This is the text that will be added after each keyword replacement to indicate that the link is an affiliate link." 1223 msgstr "" 1224 1225 #: pro/app/views/options/form.php:288 1226 #: app/views/options/form.php:474 1227 msgid "Replace All URLs" 1228 msgstr "" 1229 1230 #: pro/app/views/options/form.php:290 1231 #: app/views/options/form.php:476 1232 msgid "Replace All non-Pretty Link URLs With Pretty Link URLs" 1233 msgstr "" 1234 1235 #: pro/app/views/options/form.php:291 1236 #: app/views/options/form.php:477 1237 msgid "This feature will take each url it finds and create or use an existing pretty link pointing to the url and replace it with the pretty link." 1238 msgstr "" 1239 1240 #: pro/app/views/options/form.php:308 1241 msgid "Domain Blacklist" 1242 msgstr "" 1243 1244 #: pro/app/views/options/form.php:310 1245 msgid "Do not replace links from these domains" 1246 msgstr "" 1247 1248 #. translators: %1$s: br tag, %2$s: open b tag, %3$s: close b tag 1249 #: pro/app/views/options/form.php:313 1250 msgid "Any links on your site which point to domains you define here will not be replaced automatically with Pretty Links. Place one domain per line.%1$s%1$sYou MUST enter http:// or https:// in front of the domain names and do NOT include any /'s or other text after the domain name.%1$s%1$sProper entry example:%1$s%2$shttps://www.google.com%3$s%1$s%2$shttp://mysite.org%3$s%1$s%1$sImproperly entered domains will be removed upon saving the Options." 1251 msgstr "" 1252 1253 #: pro/app/views/options/form.php:333 1254 #: app/views/options/form.php:489 1255 msgid "Replace in Comments" 1256 msgstr "" 1257 1258 #: pro/app/views/options/form.php:335 1259 #: app/views/options/form.php:491 1260 msgid "Replace Keywords and URLs in Comments" 1261 msgstr "" 1262 1263 #: pro/app/views/options/form.php:336 1264 #: app/views/options/form.php:492 1265 msgid "This option will enable the keyword / URL replacement routine to run in Comments." 1266 msgstr "" 1267 1268 #: pro/app/views/options/form.php:347 1269 #: app/views/options/form.php:504 1270 msgid "Replace in Feeds" 1271 msgstr "" 1272 1273 #: pro/app/views/options/form.php:349 1274 #: app/views/options/form.php:506 1275 msgid "Replace Keywords and URLs in Feeds" 1276 msgstr "" 1277 1278 #. translators: %1$s: br tag, %2$s open strong tag, %3$s: close strong tag 1279 #: pro/app/views/options/form.php:352 1280 #: app/views/options/form.php:509 1281 msgid "This option will enable the keyword / URL replacement routine to run in RSS Feeds.%1$s%2$sNote:%3$s This option can slow the load speed of your RSS feed -- unless used in conjunction with a caching plugin like W3 Total Cache or WP Super Cache.%1$s%2$sNote #2%3$s This option will only work if you have \"Full Text\" selected in your General WordPress Reading settings.%1$s%2$sNote #3:%3$s If this option is used along with \"Replace Keywords and URLs in Comments\" then your post comment feeds will have keywords replaced in them as well." 1282 msgstr "" 1283 1284 #: pro/app/views/options/form.php:367 1285 #: pro/app/views/options/form.php:369 1286 #: app/views/options/form.php:525 1287 #: app/views/options/form.php:527 1288 msgid "Index Replacements" 1289 msgstr "" 1290 1291 #. translators: %1$s: br tag, %2$s open strong tag, %3$s: close strong tag 1292 #: pro/app/views/options/form.php:372 1293 #: app/views/options/form.php:530 1294 msgid "This feature will index all of your keyword & URL replacements to dramatically improve performance.%1$s%1$sIf your site has a large number of replacements and/or posts then this feature may increase the load on your server temporarily and your replacements may not show up on your posts for a day or two initially (until all posts are indexed).%1$s%1$s%2$sNote:%3$s this feature requires the use of wp-cron." 1295 msgstr "" 1296 1297 #: pro/app/views/options/form.php:393 1298 #: pro/app/views/options/form.php:395 1299 msgid "Keyword Index Status" 1300 msgstr "" 1301 1302 #: pro/app/views/options/form.php:396 1303 msgid "This shows how many posts have keywords indexed for and are ready for replacement." 1304 msgstr "" 1305 1306 #: pro/app/views/options/form.php:404 1307 #: pro/app/views/options/form.php:427 1308 msgid "%1$s out of %2$s Posts Indexed" 1309 msgstr "" 1310 1311 #: pro/app/views/options/form.php:408 1312 #: pro/app/views/options/form.php:431 1313 msgid "%1$s out of %2$s Comments Indexed" 1314 msgstr "" 1315 1316 #: pro/app/views/options/form.php:416 1317 msgid "URL Index Status" 1318 msgstr "" 1319 1320 #: pro/app/views/options/form.php:418 1321 msgid "URL Replacements Index Status" 1322 msgstr "" 1323 1324 #: pro/app/views/options/form.php:419 1325 msgid "This shows how many posts have url replacements indexed for and are ready for replacement." 1326 msgstr "" 1327 1328 #: pro/app/views/options/form.php:447 1329 #: app/views/options/form.php:549 1330 msgid "Auto-Create Shortlink Options" 1331 msgstr "" 1332 1333 #: pro/app/views/options/form.php:468 1334 #: app/views/options/form.php:593 1335 msgid "Pretty Bar Options" 1336 msgstr "" 1337 1338 #: pro/app/views/options/form.php:474 1339 #: app/views/options/form.php:599 1340 msgid "Image URL" 1341 msgstr "" 1342 1343 #: pro/app/views/options/form.php:476 1344 #: app/views/options/form.php:601 1345 msgid "Pretty Bar Image URL" 1346 msgstr "" 1347 1348 #: pro/app/views/options/form.php:477 1349 #: app/views/options/form.php:602 1350 msgid "If set, this will replace the logo image on the Pretty Bar. The image that this URL references should be 48x48 Pixels to fit." 1351 msgstr "" 1352 1353 #: pro/app/views/options/form.php:488 1354 #: app/views/options/form.php:614 1355 msgid "Background Image URL" 1356 msgstr "" 1357 1358 #: pro/app/views/options/form.php:490 1359 #: app/views/options/form.php:616 1360 msgid "Pretty Bar Background Image URL" 1361 msgstr "" 1362 1363 #: pro/app/views/options/form.php:491 1364 #: app/views/options/form.php:617 1365 msgid "If set, this will replace the background image on Pretty Bar. The image that this URL references should be 65px tall - this image will be repeated horizontally across the bar." 1366 msgstr "" 1367 1368 #: pro/app/views/options/form.php:502 1369 #: app/views/options/form.php:629 1370 msgid "Background Color" 1371 msgstr "" 1372 1373 #: pro/app/views/options/form.php:504 1374 #: app/views/options/form.php:631 1375 msgid "Pretty Bar Background Color" 1376 msgstr "" 1377 1378 #: pro/app/views/options/form.php:505 1379 #: app/views/options/form.php:632 1380 msgid "This will alter the background color of the Pretty Bar if you haven't specified a Pretty Bar background image." 1381 msgstr "" 1382 1383 #: pro/app/views/options/form.php:516 1384 #: app/views/options/form.php:644 1385 msgid "Text Color" 1386 msgstr "" 1387 1388 #: pro/app/views/options/form.php:518 1389 #: app/views/options/form.php:646 1390 msgid "Pretty Bar Text Color" 1391 msgstr "" 1392 1393 #. translators: %1$s: open code tag, %2$s: close code tag 1394 #: pro/app/views/options/form.php:521 1395 #: app/views/options/form.php:649 1396 msgid "If not set, this defaults to black (RGB value %1$s#000000%2$s) but you can change it to whatever color you like." 1397 msgstr "" 1398 1399 #: pro/app/views/options/form.php:535 1400 #: app/views/options/form.php:664 1401 msgid "Link Color" 1402 msgstr "" 1403 1404 #: pro/app/views/options/form.php:537 1405 #: app/views/options/form.php:666 1406 msgid "Pretty Bar Link Color" 1407 msgstr "" 1408 1409 #. translators: %1$s: open code tag, %2$s: close code tag 1410 #: pro/app/views/options/form.php:540 1411 #: app/views/options/form.php:669 1412 msgid "If not set, this defaults to blue (RGB value %1$s#0000ee%2$s) but you can change it to whatever color you like." 1413 msgstr "" 1414 1415 #: pro/app/views/options/form.php:554 1416 #: app/views/options/form.php:684 1417 msgid "Link Hover Color" 1418 msgstr "" 1419 1420 #: pro/app/views/options/form.php:556 1421 #: app/views/options/form.php:686 1422 msgid "Pretty Bar Link Hover Color" 1423 msgstr "" 1424 1425 #. translators: %1$s: open code tag, %2$s: close code tag 1426 #: pro/app/views/options/form.php:559 1427 #: app/views/options/form.php:689 1428 msgid "If not set, this defaults to RGB value %1$s#ababab%2$s but you can change it to whatever color you like." 1429 msgstr "" 1430 1431 #: pro/app/views/options/form.php:573 1432 #: app/views/options/form.php:704 1433 msgid "Visited Link Color" 1434 msgstr "" 1435 1436 #: pro/app/views/options/form.php:575 1437 #: app/views/options/form.php:706 1438 msgid "Pretty Bar Visited Link Color" 1439 msgstr "" 1440 1441 #. translators: %1$s: open code tag, %2$s: close code tag 1442 #: pro/app/views/options/form.php:578 1443 #: app/views/options/form.php:709 1444 msgid "If not set, this defaults to RGB value %1$s#551a8b%2$s but you can change it to whatever color you like." 1445 msgstr "" 1446 1447 #: pro/app/views/options/form.php:592 1448 #: app/views/options/form.php:724 1449 msgid "Title Char Limit" 1450 msgstr "" 1451 1452 #: pro/app/views/options/form.php:594 1453 #: app/views/options/form.php:726 1454 msgid "Pretty Bar Title Char Limit" 1455 msgstr "" 1456 1457 #. translators: %1$s: open code tag, %2$s: close code tag 1458 #: pro/app/views/options/form.php:597 1459 #: app/views/options/form.php:729 1460 msgid "If your Website has a long title then you may need to adjust this value so that it will all fit on the Pretty Bar. It is recommended that you keep this value to %1$s30%2$s characters or less so the Pretty Bar's format looks good across different browsers and screen resolutions." 1461 msgstr "" 1462 1463 #: pro/app/views/options/form.php:611 1464 #: app/views/options/form.php:744 1465 msgid "Description Char Limit" 1466 msgstr "" 1467 1468 #: pro/app/views/options/form.php:613 1469 #: app/views/options/form.php:746 1470 msgid "Pretty Bar Description Char Limit" 1471 msgstr "" 1472 1473 #. translators: %1$s: open code tag, %2$s: close code tag 1474 #: pro/app/views/options/form.php:616 1475 #: app/views/options/form.php:749 1476 msgid "If your Website has a long Description (tagline) then you may need to adjust this value so that it will all fit on the Pretty Bar. It is recommended that you keep this value to %1$s40%2$s characters or less so the Pretty Bar's format looks good across different browsers and screen resolutions." 1477 msgstr "" 1478 1479 #: pro/app/views/options/form.php:630 1480 #: app/views/options/form.php:764 1481 msgid "Target URL Char Limit" 1482 msgstr "" 1483 1484 #: pro/app/views/options/form.php:632 1485 #: app/views/options/form.php:766 1486 msgid "Pretty Bar Target URL Char Limit" 1487 msgstr "" 1488 1489 #. translators: %1$s: open code tag, %2$s: close code tag 1490 #: pro/app/views/options/form.php:635 1491 #: app/views/options/form.php:769 1492 msgid "If you link to a lot of large Target URLs you may want to adjust this value. It is recommended that you keep this value to %1$s40%2$s or below so the Pretty Bar's format looks good across different browsers and URL sizes" 1493 msgstr "" 1494 1495 #: pro/app/views/options/form.php:649 1496 #: app/views/options/form.php:784 1497 msgid "Show Title" 1498 msgstr "" 1499 1500 #: pro/app/views/options/form.php:651 1501 #: app/views/options/form.php:786 1502 msgid "Pretty Bar Show Title" 1503 msgstr "" 1504 1505 #: pro/app/views/options/form.php:652 1506 #: app/views/options/form.php:787 1507 msgid "Make sure this is checked if you want the title of your blog (and link) to show up on the Pretty Bar." 1508 msgstr "" 1509 1510 #: pro/app/views/options/form.php:663 1511 #: app/views/options/form.php:799 1512 msgid "Show Description" 1513 msgstr "" 1514 1515 #: pro/app/views/options/form.php:665 1516 #: app/views/options/form.php:801 1517 msgid "Pretty Bar Show Description" 1518 msgstr "" 1519 1520 #: pro/app/views/options/form.php:666 1521 #: app/views/options/form.php:802 1522 msgid "Make sure this is checked if you want your site description to show up on the Pretty Bar." 1523 msgstr "" 1524 1525 #: pro/app/views/options/form.php:677 1526 #: app/views/options/form.php:814 1527 msgid "Show Share Links" 1528 msgstr "" 1529 1530 #: pro/app/views/options/form.php:679 1531 #: app/views/options/form.php:816 1532 msgid "Pretty Bar Show Share Links" 1533 msgstr "" 1534 1535 #: pro/app/views/options/form.php:680 1536 #: app/views/options/form.php:817 1537 msgid "Make sure this is checked if you want \"share links\" to show up on the Pretty Bar." 1538 msgstr "" 1539 1540 #: pro/app/views/options/form.php:691 1541 #: app/views/options/form.php:829 1542 msgid "Show Target URL" 1543 msgstr "" 1544 1545 #: pro/app/views/options/form.php:693 1546 #: app/views/options/form.php:831 1547 msgid "Pretty Bar Show Target URL Links" 1548 msgstr "" 1549 1550 #: pro/app/views/options/form.php:694 1551 #: app/views/options/form.php:832 1552 msgid "Make sure this is checked if you want a link displaying the Target URL to show up on the Pretty Bar." 1553 msgstr "" 1554 1555 #: pro/app/views/options/form.php:705 1556 #: pro/app/views/options/form.php:707 1557 #: app/views/options/form.php:844 1558 #: app/views/options/form.php:846 1559 msgid "Hide Attribution Link" 1560 msgstr "" 1561 1562 #. translators: %1$s: br tag, %2$s: open strong tag, %3$s close strong tag, %4$s open em tag, %5$s close em tag, %6$s open link tag, %7$s close link tag 1563 #: pro/app/views/options/form.php:710 1564 #: app/views/options/form.php:849 1565 msgid "Check this to hide the pretty link attribution link on the pretty bar.%1$s%1$s%2$sWait, before you do this, you might want to leave this un-checked and set the alternate URL of this link to your %4$sPretty Links Pro%5$s %6$sAffiliate URL%7$s to earn a few bucks while you are at it.%3$s" 1566 msgstr "" 1567 1568 #: pro/app/views/options/form.php:736 1569 #: app/views/options/form.php:876 1570 msgid "Attribution URL" 1571 msgstr "" 1572 1573 #: pro/app/views/options/form.php:738 1574 #: app/views/options/form.php:878 1575 msgid "Alternate Pretty Bar Attribution URL" 1576 msgstr "" 1577 1578 #. translators: %1$s open em tag, %2$s close em tag, %3$s open link tag, %4$s close link tag 1579 #: pro/app/views/options/form.php:741 1580 #: app/views/options/form.php:881 1581 msgid "If set, this will replace the Pretty Bars attribution URL. This is a very good place to put your %1$sPretty Links Pro%2$s %3$sAffiliate Link%4$s." 1582 msgstr "" 1583 1584 #: pro/app/views/options/form.php:760 1585 #: app/views/options/form.php:901 1586 msgid "Social Buttons Options" 1587 msgstr "" 1588 1589 #: pro/app/views/options/form.php:763 1590 #: app/views/options/form.php:903 1591 msgid "Buttons" 1592 msgstr "" 1593 1594 #: pro/app/views/options/form.php:765 1595 #: app/views/options/form.php:905 1596 msgid "Social Buttons" 1597 msgstr "" 1598 1599 #. translators: %1$s: br tag, %2$s open code tag, %3$s close code tag 1600 #: pro/app/views/options/form.php:768 1601 #: app/views/options/form.php:908 1602 msgid "Select which buttons you want to be visible on the Social Buttons Bar.%1$s%1$s%2$sNote:%3$s In order for the Social Buttons Bar to be visible on Pages and or Posts, you must first enable it in the \"Page & Post Options\" section above." 1603 msgstr "" 1604 1605 #: pro/app/views/options/form.php:795 1606 #: app/views/options/form.php:930 1607 msgid "Buttons Placement" 1608 msgstr "" 1609 1610 #: pro/app/views/options/form.php:797 1611 #: app/views/options/form.php:932 1612 msgid "Social Buttons Placement" 1613 msgstr "" 1614 1615 #. translators: %1$s: br tag, %2$s open code tag, %3$s close code tag 1616 #: pro/app/views/options/form.php:800 1617 #: app/views/options/form.php:935 1618 msgid "This determines where your Social Buttons Placement should appear in relation to content on Pages and/or Posts.%1$s%1$s%2$sNote:%3$s If you want this bar to appear then you must enable it in the \"Auto-Create Links\" section above." 1619 msgstr "" 1620 1621 #: pro/app/views/options/form.php:814 1622 #: app/views/options/form.php:950 1623 msgid "Social Buttons Manual Placement" 1624 msgstr "" 1625 1626 #. translators: %1$s: example shortcode, %2$s: example template tag 1627 #: pro/app/views/options/form.php:817 1628 #: app/views/options/form.php:953 1629 msgid "If you select none, you can still show your Social Buttons by manually adding the %1$s shortcode to your blog posts or %2$s template tag to your WordPress Theme." 1630 msgstr "" 1631 1632 #: pro/app/views/options/form.php:845 1633 #: app/views/options/form.php:966 1634 msgid "Public Links Creation Options" 1635 msgstr "" 1636 1637 #: pro/app/views/options/form.php:851 1638 #: app/views/options/form.php:972 1639 msgid "Enable Public Links" 1640 msgstr "" 1641 1642 #: pro/app/views/options/form.php:853 1643 #: app/views/options/form.php:974 1644 msgid "Enable Public Link Creation on this Site" 1645 msgstr "" 1646 1647 #: pro/app/views/options/form.php:855 1648 #: app/views/options/form.php:976 1649 msgid "This option will give you the ability to turn your website into a link shortening service for your users. Once selected, you can enable the Pretty Links Pro Sidebar Widget or just display the link creation form with the %s shortcode in any post or page on your website." 1650 msgstr "" 1651 1652 #: pro/app/views/options/form.php:874 1653 msgid "Use Display Page" 1654 msgstr "" 1655 1656 #: pro/app/views/options/form.php:876 1657 msgid "Use Public Link Display Page" 1658 msgstr "" 1659 1660 #: pro/app/views/options/form.php:877 1661 msgid "When a link is created using the public form, the user is typically redirected to a simple page displaying their new pretty link. But, you can specify a page that you want them to be redirected to on your website, using your branding instead by selecting this box and entering the url of the page you want them to go to." 1662 msgstr "" 1663 1664 #: pro/app/views/options/form.php:894 1665 msgid "Display Page" 1666 msgstr "" 1667 1668 #: pro/app/views/options/form.php:896 1669 msgid "Public Pretty Link Creation Display URL" 1670 msgstr "" 1671 1672 #: pro/app/views/options/form.php:898 1673 msgid "To set this up, create a new page on your WordPress site and make sure the %s appears somewhere on this page -- otherwise the link will never get created. Once this page is created, just enter the full URL to it here. Make sure this URL does not end with a slash (/)." 1674 msgstr "" 1675 1676 #: pro/app/views/options/autocreate.php:7 1677 msgid "%s Shortlinks" 1678 msgstr "" 1679 1680 #: pro/app/views/options/autocreate.php:10 1681 msgid "Create Pretty Links for %s" 1682 msgstr "" 1683 1684 #: pro/app/views/options/autocreate.php:11 1685 msgid "Automatically Create a Pretty Link for each of your published %s" 1686 msgstr "" 1687 1688 #: pro/app/views/options/autocreate.php:30 1689 msgid "Category" 1690 msgstr "" 1691 1692 #: pro/app/views/options/autocreate.php:33 1693 msgid "%s Auto Link Category" 1694 msgstr "" 1695 1696 #: pro/app/views/options/autocreate.php:34 1697 msgid "Category that Pretty Links for %s will be automatically added to." 1698 msgstr "" 1699 1700 #: pro/app/views/options/autocreate.php:51 1701 msgid "Add a New Category" 1702 msgstr "" 1703 1704 #: pro/app/views/options/autocreate.php:57 1705 msgid "Show Social Buttons" 1706 msgstr "" 1707 1708 #: pro/app/views/options/autocreate.php:60 1709 msgid "Show Social Buttons on %s" 1710 msgstr "" 1711 1712 #: pro/app/views/options/autocreate.php:61 1713 msgid "If this button is checked then you'll have the ability to include a social buttons bar on your %s." 1714 msgstr "" 1715 1716 #: pro/app/views/options/general.php:8 1717 msgid "Use Shortlink URL" 1718 msgstr "" 1719 1720 #: pro/app/views/options/general.php:10 1721 msgid "Use an Alternate Shortlink URL" 1722 msgstr "" 1723 1724 #: pro/app/views/options/general.php:11 1725 msgid "Use this option if you want to substitute your actual blog's url with another URL. You must have another valid domain name pointing to this WordPress install before you enable this option. If you are using this option to just get rid of the www in the beginning of your url that is fine -- just make sure your domain works without the www before enabling this option." 1726 msgstr "" 1727 1728 #: pro/app/views/options/general.php:28 1729 #: pro/app/views/options/general.php:30 1730 msgid "Shortlink URL" 1731 msgstr "" 1732 1733 #: pro/app/views/options/general.php:31 1734 msgid "Enter a valid base url that points at this WordPress install. Make sure this URL does not end with a slash (/)." 1735 msgstr "" 1736 1737 #: pro/app/views/options/general.php:47 1738 msgid "Minimum Admin Role" 1739 msgstr "" 1740 1741 #: pro/app/views/options/general.php:49 1742 msgid "Set Minimum Role Required To Access Pretty Link" 1743 msgstr "" 1744 1745 #: pro/app/views/options/general.php:50 1746 msgid "Use this option to set the minimum role of users who can access the Admin interface for Pretty Link." 1747 msgstr "" 1748 1749 #: pro/app/views/options/general.php:56 1750 msgid "Administrator" 1751 msgstr "" 1752 1753 #: pro/app/views/options/general.php:57 1754 msgid "Editor" 1755 msgstr "" 1756 1757 #: pro/app/views/options/general.php:58 1758 msgid "Author" 1759 msgstr "" 1760 1761 #: pro/app/views/options/general.php:59 1762 msgid "Contributor" 1763 msgstr "" 1764 1765 #: pro/app/views/options/general.php:60 1766 msgid "Subscriber" 1767 msgstr "" 1768 1769 #: pro/app/views/tools/nav.php:3 1770 msgid "Custom Bookmarklet" 1771 msgstr "" 1772 1773 #: pro/app/views/tools/generator.php:6 1774 msgid "Custom Bookmarklet:" 1775 msgstr "" 1776 1777 #: pro/app/views/tools/generator.php:7 1778 #: pro/app/views/tools/generator.php:17 1779 #: app/views/tools/form.php:26 1780 msgid "Get Pretty Link" 1781 msgstr "" 1782 1783 #: pro/app/views/tools/generator.php:9 1784 msgid "Customize Pretty Link Bookmarklet" 1785 msgstr "" 1786 1787 #: pro/app/views/tools/generator.php:10 1788 msgid "Alter the options below to customize this Bookmarklet. As you modify the label, redirect type, tracking and category, you will see this bookmarklet update -- when the settings are how you want them, drag the bookmarklet into your toolbar. You can create as many bookmarklets as you want each with different settings." 1789 msgstr "" 1790 1791 #: pro/app/views/tools/generator.php:13 1792 #: pro/app/widgets/PlpPublicLinksWidget.php:66 1793 msgid "Pretty Link Options" 1794 msgstr "" 1795 1796 #: pro/app/views/tools/generator.php:16 1797 msgid "Label:" 1798 msgstr "" 1799 1800 #: pro/app/views/tools/generator.php:20 1801 #: pro/app/widgets/PlpPublicLinksWidget.php:68 1802 msgid "Redirection:" 1803 msgstr "" 1804 1805 #: pro/app/views/tools/generator.php:21 1806 #: pro/app/views/tools/generator.php:26 1807 #: pro/app/widgets/PlpPublicLinksWidget.php:70 1808 #: pro/app/widgets/PlpPublicLinksWidget.php:82 1809 #: app/views/shared/tinymce_form_popup.php:31 1810 #: app/views/shared/tinymce_form_popup.php:48 1811 #: app/views/shared/tinymce_form_popup.php:56 1812 msgid "Default" 1813 msgstr "" 1814 1815 #: pro/app/views/tools/generator.php:24 1816 msgid "Tracking:" 1817 msgstr "" 1818 1819 #: pro/app/views/tools/generator.php:27 1820 #: pro/app/widgets/PlpPublicLinksWidget.php:83 1821 #: app/views/admin/popups/rating.php:12 1822 msgid "Yes" 1823 msgstr "" 1824 1825 #: pro/app/views/tools/generator.php:28 1826 #: pro/app/widgets/PlpPublicLinksWidget.php:84 1827 #: app/views/admin/popups/rating.php:13 1828 msgid "No" 1829 msgstr "" 1830 1831 #: pro/app/views/tools/generator.php:32 1832 #: pro/app/widgets/PlpPublicLinksWidget.php:89 1833 msgid "Category:" 1834 msgstr "" 1835 1836 #: pro/app/views/import-export/form.php:4 1837 msgid "Import / Export Links" 1838 msgstr "" 1839 1840 #: pro/app/views/import-export/form.php:9 1841 #: pro/app/views/import-export/form.php:12 1842 msgid "Export Pretty Links" 1843 msgstr "" 1844 1845 #: pro/app/views/import-export/form.php:13 1846 msgid "Export Links to a CSV File" 1847 msgstr "" 1848 1849 #: pro/app/views/import-export/form.php:17 1850 msgid "Export" 1851 msgstr "" 1852 1853 #: pro/app/views/import-export/form.php:22 1854 #: pro/app/views/import-export/form.php:25 1855 msgid "Import Pretty Links" 1856 msgstr "" 1857 1858 #: pro/app/views/import-export/form.php:27 1859 msgid "There are two ways to import a file.%1$s%1$s1) Importing to update existing links and%1$s%1$s2) Importing to generate new links. When Importing to generate new links, you must delete the \"id\" column from the CSV before importing. If the \"id\" column is present, Pretty Links Pro will attempt to update existing links." 1860 msgstr "" 1861 1862 #: pro/app/views/import-export/form.php:39 1863 msgid "Import" 1864 msgstr "" 1865 1866 #: pro/app/views/import-export/form.php:42 1867 msgid "Links Import File" 1868 msgstr "" 1869 1870 #: pro/app/views/import-export/form.php:43 1871 msgid "Select a file that has been formatted as a Pretty Link CSV import file and click \"Import\"" 1872 msgstr "" 1873 1874 #: pro/app/views/import-export/form.php:51 1875 msgid "Import/Export Help" 1876 msgstr "" 1877 1878 #: pro/app/views/import-export/import.php:4 1879 msgid "Import Results" 1880 msgstr "" 1881 1882 #: pro/app/views/import-export/import.php:5 1883 msgid "Total Rows: %s" 1884 msgstr "" 1885 1886 #: pro/app/views/import-export/import.php:7 1887 msgid "%s Pretty Links were Successfully Created" 1888 msgstr "" 1889 1890 #: pro/app/views/import-export/import.php:8 1891 msgid "%s Pretty Links were Successfully Updated" 1892 msgstr "" 1893 1894 #: pro/app/views/import-export/import.php:13 1895 msgid "Pretty Links were unable to be Created: %s" 1896 msgstr "" 1897 1898 #: pro/app/views/import-export/import.php:17 1899 msgid "Error(s) for Pretty Link with Slug: %s" 1900 msgstr "" 1901 1902 #: pro/app/views/import-export/import.php:32 1903 msgid "Pretty Links were unable to be Updated: %s" 1904 msgstr "" 1905 1906 #: pro/app/views/import-export/import.php:36 1907 msgid "Error(s) for Pretty Link with id: %s" 1908 msgstr "" 1909 1910 #: pro/app/controllers/PlpLinksController.php:195 1911 msgid "Your URL Replacements must be formatted as a comma separated list of properly formatted URLs (http[s]://example.com/whatever)" 1912 msgstr "" 1913 1914 #: pro/app/controllers/PlpLinksController.php:206 1915 msgid "Date must be valid and formatted YYYY-MM-DD." 1916 msgstr "" 1917 1918 #: pro/app/controllers/PlpLinksController.php:218 1919 msgid "Expire Clicks must be a number greater than zero." 1920 msgstr "" 1921 1922 #: pro/app/controllers/PlpLinksController.php:225 1923 msgid "Expired URL must be a valid URL." 1924 msgstr "" 1925 1926 #: pro/app/controllers/PlpLinksController.php:237 1927 msgid "Your URL Rotations must all be properly formatted URLs." 1928 msgstr "" 1929 1930 #: pro/app/controllers/PlpLinksController.php:246 1931 msgid "Your Link Rotation Weights must add up to 100%." 1932 msgstr "" 1933 1934 #: pro/app/controllers/PlpLinksController.php:256 1935 msgid "Your Geographic Redirect URLs must all be properly formatted." 1936 msgstr "" 1937 1938 #: pro/app/controllers/PlpLinksController.php:260 1939 msgid "Your Geographic Redirects URLs must not be empty." 1940 msgstr "" 1941 1942 #: pro/app/controllers/PlpLinksController.php:264 1943 msgid "Your Geographic Redirect Countries must not be empty." 1944 msgstr "" 1945 1946 #: pro/app/controllers/PlpLinksController.php:275 1947 msgid "Your Technology Redirect URLs must all be properly formatted." 1948 msgstr "" 1949 1950 #: pro/app/controllers/PlpLinksController.php:279 1951 msgid "Your Technology Redirects URLs must not be empty." 1952 msgstr "" 1953 1954 #: pro/app/controllers/PlpLinksController.php:290 1955 msgid "Your Time Period Redirect URLs must all be properly formatted." 1956 msgstr "" 1957 1958 #: pro/app/controllers/PlpLinksController.php:294 1959 msgid "Your Time Period Redirects URLs must not be empty." 1960 msgstr "" 1961 1962 #: pro/app/controllers/PlpLinksController.php:299 1963 msgid "Your Time Period Redirect start time must not be empty." 1964 msgstr "" 1965 1966 #: pro/app/controllers/PlpLinksController.php:302 1967 msgid "Your Time Period Redirect start time must be a properly formatted date." 1968 msgstr "" 1969 1970 #: pro/app/controllers/PlpLinksController.php:308 1971 msgid "Your Time Period Redirect end time must not be empty." 1972 msgstr "" 1973 1974 #: pro/app/controllers/PlpLinksController.php:311 1975 msgid "Your Time Period Redirect end time must be a properly formatted date." 1976 msgstr "" 1977 1978 #: pro/app/controllers/PlpLinksController.php:319 1979 msgid "Your Time Period Redirect start time must come before the end time." 1980 msgstr "" 1981 1982 #: pro/app/controllers/PlpLinksController.php:327 1983 msgid "Delay Redirect must be a number" 1984 msgstr "" 1985 1986 #: pro/app/controllers/PlpLinksController.php:623 1987 #: pro/app/controllers/PlpLinksController.php:668 1988 #: app/views/shared/tinymce_form_popup.php:37 1989 #: app/views/options/form.php:55 1990 msgid "Pretty Bar" 1991 msgstr "" 1992 1993 #: pro/app/controllers/PlpLinksController.php:624 1994 #: app/views/shared/tinymce_form_popup.php:38 1995 msgid "Cloaked" 1996 msgstr "" 1997 1998 #: pro/app/controllers/PlpLinksController.php:625 1999 #: pro/app/controllers/PlpLinksController.php:670 2000 #: app/views/shared/tinymce_form_popup.php:39 2001 msgid "Pixel" 2002 msgstr "" 2003 2004 #: pro/app/controllers/PlpLinksController.php:626 2005 #: pro/app/controllers/PlpLinksController.php:671 2006 #: app/views/shared/tinymce_form_popup.php:40 2007 msgid "Meta Refresh" 2008 msgstr "" 2009 2010 #: pro/app/controllers/PlpLinksController.php:627 2011 #: pro/app/controllers/PlpLinksController.php:672 2012 #: app/views/shared/tinymce_form_popup.php:41 2013 msgid "Javascript" 2014 msgstr "" 2015 2016 #: pro/app/controllers/PlpLinksController.php:669 2017 #: pro/app/widgets/PlpPublicLinksWidget.php:75 2018 msgid "Cloak" 2019 msgstr "" 2020 2021 #: pro/app/controllers/PlpLinksController.php:734 2022 msgid "View QR Code for this link: %s" 2023 msgstr "" 2024 2025 #: pro/app/controllers/PlpLinksController.php:734 2026 #: pro/app/controllers/PlpLinksController.php:738 2027 msgid "QR Code" 2028 msgstr "" 2029 2030 #: pro/app/controllers/PlpLinksController.php:738 2031 msgid "Download QR Code for this link: %s" 2032 msgstr "" 2033 2034 #: pro/app/controllers/PlpLinksController.php:811 2035 msgid "This link expired on %1$s and will now cause a 404 error when visited" 2036 msgstr "" 2037 2038 #: pro/app/controllers/PlpLinksController.php:814 2039 msgid "This link expired on %1$s and now redirects to %2$s" 2040 msgstr "" 2041 2042 #: pro/app/controllers/PlpLinksController.php:818 2043 msgid "This link is set to expire after the date %s" 2044 msgstr "" 2045 2046 #: pro/app/controllers/PlpLinksController.php:829 2047 msgid "This link expired after %d clicks and will now cause a 404 error when visited" 2048 msgstr "" 2049 2050 #: pro/app/controllers/PlpLinksController.php:832 2051 msgid "This link expired after %1$d clicks and now redirects to %2$s" 2052 msgstr "" 2053 2054 #: pro/app/controllers/PlpLinksController.php:836 2055 msgid "This link is set to expire after %d clicks" 2056 msgstr "" 2057 2058 #: pro/app/controllers/PlpLinksController.php:844 2059 msgid "This link has additional Target URL rotations" 2060 msgstr "" 2061 2062 #: pro/app/controllers/PlpLinksController.php:847 2063 msgid "This link has additional Geographic Target URLs" 2064 msgstr "" 2065 2066 #: pro/app/controllers/PlpLinksController.php:850 2067 msgid "This link has additional Technology Dependent Conditional Target URLs" 2068 msgstr "" 2069 2070 #: pro/app/controllers/PlpLinksController.php:855 2071 msgid "A Time Period Redirect is currently active for this link. When visited it will currently redirect to %s rather than the Target URL unless the link is expired." 2072 msgstr "" 2073 2074 #: pro/app/controllers/PlpLinksController.php:859 2075 msgid "Time Period Redirects have been setup for this link but the current time is not within any of them currently." 2076 msgstr "" 2077 2078 #: pro/app/controllers/PlpKeywordsController.php:68 2079 msgid "Pretty Link Post Build Index" 2080 msgstr "" 2081 2082 #: pro/app/controllers/PlpLinkCategoriesController.php:13 2083 msgctxt "taxonomy general name" 2084 msgid "Link Categories" 2085 msgstr "" 2086 2087 #: pro/app/controllers/PlpLinkCategoriesController.php:14 2088 msgctxt "taxonomy singular name" 2089 msgid "Link Category" 2090 msgstr "" 2091 2092 #: pro/app/controllers/PlpLinkCategoriesController.php:15 2093 msgid "Search Link Categories" 2094 msgstr "" 2095 2096 #: pro/app/controllers/PlpLinkCategoriesController.php:16 2097 msgid "All Link Categories" 2098 msgstr "" 2099 2100 #: pro/app/controllers/PlpLinkCategoriesController.php:17 2101 msgid "Parent Link Category" 2102 msgstr "" 2103 2104 #: pro/app/controllers/PlpLinkCategoriesController.php:18 2105 msgid "Parent Link Category:" 2106 msgstr "" 2107 2108 #: pro/app/controllers/PlpLinkCategoriesController.php:19 2109 msgid "Edit Link Category" 2110 msgstr "" 2111 2112 #: pro/app/controllers/PlpLinkCategoriesController.php:20 2113 msgid "Update Link Category" 2114 msgstr "" 2115 2116 #: pro/app/controllers/PlpLinkCategoriesController.php:21 2117 msgid "Add New Link Category" 2118 msgstr "" 2119 2120 #: pro/app/controllers/PlpLinkCategoriesController.php:22 2121 msgid "New Link Category Name" 2122 msgstr "" 2123 2124 #: pro/app/controllers/PlpLinkCategoriesController.php:23 2125 #: app/controllers/PrliLinksController.php:370 2126 msgid "Categories" 2127 msgstr "" 2128 2129 #: pro/app/controllers/PlpPrettyBarController.php:50 2130 msgid "Logo Image URL must be a correctly formatted URL" 2131 msgstr "" 2132 2133 #: pro/app/controllers/PlpPrettyBarController.php:54 2134 msgid "Background Image URL must be a correctly formatted URL" 2135 msgstr "" 2136 2137 #: pro/app/controllers/PlpPrettyBarController.php:60 2138 msgid "PrettyBar Background Color must be an actual RGB Value" 2139 msgstr "" 2140 2141 #: pro/app/controllers/PlpPrettyBarController.php:64 2142 msgid "PrettyBar Text Color must be an actual RGB Value" 2143 msgstr "" 2144 2145 #: pro/app/controllers/PlpPrettyBarController.php:68 2146 msgid "PrettyBar Link Color must be an actual RGB Value" 2147 msgstr "" 2148 2149 #: pro/app/controllers/PlpPrettyBarController.php:72 2150 #: pro/app/controllers/PlpPrettyBarController.php:76 2151 msgid "PrettyBar Hover Color must be an actual RGB Value" 2152 msgstr "" 2153 2154 #: pro/app/controllers/PlpPrettyBarController.php:80 2155 msgid "PrettyBar Title Character Limit must not be blank" 2156 msgstr "" 2157 2158 #: pro/app/controllers/PlpPrettyBarController.php:84 2159 msgid "PrettyBar Description Character Limit must not be blank" 2160 msgstr "" 2161 2162 #: pro/app/controllers/PlpPrettyBarController.php:88 2163 msgid "PrettyBar Link Character Limit must not be blank" 2164 msgstr "" 2165 2166 #: pro/app/controllers/PlpPrettyBarController.php:92 2167 msgid "PrettyBar Title Character Limit must be a number" 2168 msgstr "" 2169 2170 #: pro/app/controllers/PlpPrettyBarController.php:96 2171 msgid "PrettyBar Description Character Limit must be a number" 2172 msgstr "" 2173 2174 #: pro/app/controllers/PlpPrettyBarController.php:100 2175 msgid "PrettyBar Link Character Limit must be a number" 2176 msgstr "" 2177 2178 #: pro/app/controllers/PlpPostsController.php:50 2179 msgid "Pretty Links Pro" 2180 msgstr "" 2181 2182 #: pro/app/controllers/PlpPostsController.php:54 2183 msgid "Pretty Links Pro Options" 2184 msgstr "" 2185 2186 #: pro/app/controllers/PlpPostsController.php:139 2187 #: pro/app/controllers/PlpPostsController.php:155 2188 #: pro/app/controllers/PlpPostsController.php:236 2189 #: pro/app/controllers/PlpPostsController.php:249 2190 msgid "Untitled" 2191 msgstr "" 2192 2193 #: pro/app/controllers/PlpReportsController.php:14 2194 msgid "Pretty Links Pro | Reports" 2195 msgstr "" 2196 2197 #: pro/app/controllers/PlpReportsController.php:51 2198 msgid "Create a custom link report and analyze your data." 2199 msgstr "" 2200 2201 #: pro/app/controllers/PlpReportsController.php:94 2202 msgid "Your Pretty Link Report was Successfully Created" 2203 msgstr "" 2204 2205 #: pro/app/controllers/PlpReportsController.php:130 2206 msgid "Your Pretty Link Report was Successfully Updated" 2207 msgstr "" 2208 2209 #: pro/app/controllers/PlpReportsController.php:139 2210 msgid "Your Pretty Link Report was Successfully Deleted" 2211 msgstr "" 2212 2213 #: pro/app/controllers/PlpAppController.php:169 2214 msgid "ERROR: Your Pretty Link was unable to be created" 2215 msgstr "" 2216 2217 #: pro/app/controllers/PlpAppController.php:173 2218 msgid "Unauthorized" 2219 msgstr "" 2220 2221 #: pro/app/controllers/PlpPublicLinksController.php:37 2222 #: app/controllers/PrliLinksController.php:572 2223 msgid "Security check failed" 2224 msgstr "" 2225 2226 #: pro/app/controllers/PlpLinkTagsController.php:13 2227 msgctxt "taxonomy general name" 2228 msgid "Link Tags" 2229 msgstr "" 2230 2231 #: pro/app/controllers/PlpLinkTagsController.php:14 2232 msgctxt "taxonomy singular name" 2233 msgid "Link Tag" 2234 msgstr "" 2235 2236 #: pro/app/controllers/PlpLinkTagsController.php:15 2237 msgid "Search Link Tags" 2238 msgstr "" 2239 2240 #: pro/app/controllers/PlpLinkTagsController.php:16 2241 msgid "All Link Tags" 2242 msgstr "" 2243 2244 #: pro/app/controllers/PlpLinkTagsController.php:19 2245 msgid "Edit Link Tag" 2246 msgstr "" 2247 2248 #: pro/app/controllers/PlpLinkTagsController.php:20 2249 msgid "Update Link Tag" 2250 msgstr "" 2251 2252 #: pro/app/controllers/PlpLinkTagsController.php:21 2253 msgid "Add New Link Tag" 2254 msgstr "" 2255 2256 #: pro/app/controllers/PlpLinkTagsController.php:22 2257 msgid "New Link Tag Name" 2258 msgstr "" 2259 2260 #: pro/app/controllers/PlpLinkTagsController.php:23 2261 msgid "Separate Link Tags with commas" 2262 msgstr "" 2263 2264 #: pro/app/controllers/PlpLinkTagsController.php:24 2265 msgid "Add or remove Link Tags" 2266 msgstr "" 2267 2268 #: pro/app/controllers/PlpLinkTagsController.php:25 2269 msgid "Choose from the most used Link Tags" 2270 msgstr "" 2271 2272 #: pro/app/controllers/PlpLinkTagsController.php:26 2273 msgid "No Link Tags found." 2274 msgstr "" 2275 2276 #: pro/app/controllers/PlpLinkTagsController.php:27 2277 #: app/controllers/PrliLinksController.php:371 2278 msgid "Tags" 2279 msgstr "" 2280 2281 #: pro/app/controllers/PlpImportExportController.php:14 2282 msgid "Pretty Links Pro | Import / Export" 2283 msgstr "" 2284 2285 #: pro/app/controllers/PlpImportExportController.php:15 2286 msgid "Import / Export" 2287 msgstr "" 2288 2289 #: pro/app/controllers/PlpOptionsController.php:97 2290 msgid "Keywords Per Page is required" 2291 msgstr "" 2292 2293 #: pro/app/controllers/PlpOptionsController.php:101 2294 msgid "Keyword Links Per Page is required" 2295 msgstr "" 2296 2297 #: pro/app/controllers/PlpOptionsController.php:106 2298 msgid "You need to enter a valid Pretty Link Base URL now that you have selected \"Use an alternate base url for your Pretty Links\"" 2299 msgstr "" 2300 2301 #: pro/app/controllers/PlpOptionsController.php:111 2302 msgid "You need to enter a valid Public Link Display URL now that you have selected \"Use a custom public link display page\"" 2303 msgstr "" 2304 2305 #: pro/app/controllers/PlpOptionsController.php:117 2306 msgid "Pretty Bar Attribution URL must be a correctly formatted URL" 2307 msgstr "" 2308 2309 #: pro/app/widgets/PlpPublicLinksWidget.php:11 2310 msgid "Create a Short URL" 2311 msgstr "" 2312 2313 #: pro/app/widgets/PlpPublicLinksWidget.php:13 2314 msgid "Displays a form to create a Pretty Link." 2315 msgstr "" 2316 2317 #: pro/app/widgets/PlpPublicLinksWidget.php:60 2318 msgid "Enter a URL: " 2319 msgstr "" 2320 2321 #: pro/app/widgets/PlpPublicLinksWidget.php:64 2322 msgid "Label Text:" 2323 msgstr "" 2324 2325 #: pro/app/widgets/PlpPublicLinksWidget.php:65 2326 msgid "Button Text:" 2327 msgstr "" 2328 2329 #: pro/app/widgets/PlpPublicLinksWidget.php:65 2330 msgid "if left blank, no button will display" 2331 msgstr "" 2332 2333 #: pro/app/widgets/PlpPublicLinksWidget.php:71 2334 msgid "Permanent/301" 2335 msgstr "" 2336 2337 #: pro/app/widgets/PlpPublicLinksWidget.php:72 2338 msgid "Temporary/302" 2339 msgstr "" 2340 2341 #: pro/app/widgets/PlpPublicLinksWidget.php:73 2342 msgid "Temporary/307" 2343 msgstr "" 2344 2345 #: pro/app/widgets/PlpPublicLinksWidget.php:74 2346 msgid "PrettyBar" 2347 msgstr "" 2348 2349 #: pro/app/widgets/PlpPublicLinksWidget.php:80 2350 msgid "Tracking Enabled:" 2351 msgstr "" 2352 2353 #: pro/i18n/countries.php:5 2354 msgid "Afghanistan" 2355 msgstr "" 2356 2357 #: pro/i18n/countries.php:6 2358 msgid "Åland Islands" 2359 msgstr "" 2360 2361 #: pro/i18n/countries.php:7 2362 msgid "Albania" 2363 msgstr "" 2364 2365 #: pro/i18n/countries.php:8 2366 msgid "Algeria" 2367 msgstr "" 2368 2369 #: pro/i18n/countries.php:9 2370 msgid "Andorra" 2371 msgstr "" 2372 2373 #: pro/i18n/countries.php:10 2374 msgid "Angola" 2375 msgstr "" 2376 2377 #: pro/i18n/countries.php:11 2378 msgid "Anguilla" 2379 msgstr "" 2380 2381 #: pro/i18n/countries.php:12 2382 msgid "Antarctica" 2383 msgstr "" 2384 2385 #: pro/i18n/countries.php:13 2386 msgid "Antigua and Barbuda" 2387 msgstr "" 2388 2389 #: pro/i18n/countries.php:14 2390 msgid "Argentina" 2391 msgstr "" 2392 2393 #: pro/i18n/countries.php:15 2394 msgid "Armenia" 2395 msgstr "" 2396 2397 #: pro/i18n/countries.php:16 2398 msgid "Aruba" 2399 msgstr "" 2400 2401 #: pro/i18n/countries.php:17 2402 msgid "Australia" 2403 msgstr "" 2404 2405 #: pro/i18n/countries.php:18 2406 msgid "Austria" 2407 msgstr "" 2408 2409 #: pro/i18n/countries.php:19 2410 msgid "Azerbaijan" 2411 msgstr "" 2412 2413 #: pro/i18n/countries.php:20 2414 msgid "Bahamas" 2415 msgstr "" 2416 2417 #: pro/i18n/countries.php:21 2418 msgid "Bahrain" 2419 msgstr "" 2420 2421 #: pro/i18n/countries.php:22 2422 msgid "Bangladesh" 2423 msgstr "" 2424 2425 #: pro/i18n/countries.php:23 2426 msgid "Barbados" 2427 msgstr "" 2428 2429 #: pro/i18n/countries.php:24 2430 msgid "Belarus" 2431 msgstr "" 2432 2433 #: pro/i18n/countries.php:25 2434 msgid "Belgium" 2435 msgstr "" 2436 2437 #: pro/i18n/countries.php:26 2438 msgid "Belau" 2439 msgstr "" 2440 2441 #: pro/i18n/countries.php:27 2442 msgid "Belize" 2443 msgstr "" 2444 2445 #: pro/i18n/countries.php:28 2446 msgid "Benin" 2447 msgstr "" 2448 2449 #: pro/i18n/countries.php:29 2450 msgid "Bermuda" 2451 msgstr "" 2452 2453 #: pro/i18n/countries.php:30 2454 msgid "Bhutan" 2455 msgstr "" 2456 2457 #: pro/i18n/countries.php:31 2458 msgid "Bolivia" 2459 msgstr "" 2460 2461 #: pro/i18n/countries.php:32 2462 msgid "Bonaire, Saint Eustatius and Saba" 2463 msgstr "" 2464 2465 #: pro/i18n/countries.php:33 2466 msgid "Bosnia and Herzegovina" 2467 msgstr "" 2468 2469 #: pro/i18n/countries.php:34 2470 msgid "Botswana" 2471 msgstr "" 2472 2473 #: pro/i18n/countries.php:35 2474 msgid "Bouvet Island" 2475 msgstr "" 2476 2477 #: pro/i18n/countries.php:36 2478 msgid "Brazil" 2479 msgstr "" 2480 2481 #: pro/i18n/countries.php:37 2482 msgid "British Indian Ocean Territory" 2483 msgstr "" 2484 2485 #: pro/i18n/countries.php:38 2486 msgid "British Virgin Islands" 2487 msgstr "" 2488 2489 #: pro/i18n/countries.php:39 2490 msgid "Brunei" 2491 msgstr "" 2492 2493 #: pro/i18n/countries.php:40 2494 msgid "Bulgaria" 2495 msgstr "" 2496 2497 #: pro/i18n/countries.php:41 2498 msgid "Burkina Faso" 2499 msgstr "" 2500 2501 #: pro/i18n/countries.php:42 2502 msgid "Burundi" 2503 msgstr "" 2504 2505 #: pro/i18n/countries.php:43 2506 msgid "Cambodia" 2507 msgstr "" 2508 2509 #: pro/i18n/countries.php:44 2510 msgid "Cameroon" 2511 msgstr "" 2512 2513 #: pro/i18n/countries.php:45 2514 msgid "Canada" 2515 msgstr "" 2516 2517 #: pro/i18n/countries.php:46 2518 msgid "Cape Verde" 2519 msgstr "" 2520 2521 #: pro/i18n/countries.php:47 2522 msgid "Cayman Islands" 2523 msgstr "" 2524 2525 #: pro/i18n/countries.php:48 2526 msgid "Central African Republic" 2527 msgstr "" 2528 2529 #: pro/i18n/countries.php:49 2530 msgid "Chad" 2531 msgstr "" 2532 2533 #: pro/i18n/countries.php:50 2534 msgid "Chile" 2535 msgstr "" 2536 2537 #: pro/i18n/countries.php:51 2538 msgid "China" 2539 msgstr "" 2540 2541 #: pro/i18n/countries.php:52 2542 msgid "Christmas Island" 2543 msgstr "" 2544 2545 #: pro/i18n/countries.php:53 2546 msgid "Cocos/Keeling Islands" 2547 msgstr "" 2548 2549 #: pro/i18n/countries.php:54 2550 msgid "Colombia" 2551 msgstr "" 2552 2553 #: pro/i18n/countries.php:55 2554 msgid "Comoros" 2555 msgstr "" 2556 2557 #: pro/i18n/countries.php:56 2558 msgid "Congo (Brazzaville)" 2559 msgstr "" 2560 2561 #: pro/i18n/countries.php:57 2562 msgid "Congo (Kinshasa)" 2563 msgstr "" 2564 2565 #: pro/i18n/countries.php:58 2566 msgid "Cook Islands" 2567 msgstr "" 2568 2569 #: pro/i18n/countries.php:59 2570 msgid "Costa Rica" 2571 msgstr "" 2572 2573 #: pro/i18n/countries.php:60 2574 msgid "Croatia" 2575 msgstr "" 2576 2577 #: pro/i18n/countries.php:61 2578 msgid "Cuba" 2579 msgstr "" 2580 2581 #: pro/i18n/countries.php:62 2582 msgid "CuraÇao" 2583 msgstr "" 2584 2585 #: pro/i18n/countries.php:63 2586 msgid "Cyprus" 2587 msgstr "" 2588 2589 #: pro/i18n/countries.php:64 2590 msgid "Czech Republic" 2591 msgstr "" 2592 2593 #: pro/i18n/countries.php:65 2594 msgid "Denmark" 2595 msgstr "" 2596 2597 #: pro/i18n/countries.php:66 2598 msgid "Djibouti" 2599 msgstr "" 2600 2601 #: pro/i18n/countries.php:67 2602 msgid "Dominica" 2603 msgstr "" 2604 2605 #: pro/i18n/countries.php:68 2606 msgid "Dominican Republic" 2607 msgstr "" 2608 2609 #: pro/i18n/countries.php:69 2610 msgid "Ecuador" 2611 msgstr "" 2612 2613 #: pro/i18n/countries.php:70 2614 msgid "Egypt" 2615 msgstr "" 2616 2617 #: pro/i18n/countries.php:71 2618 msgid "El Salvador" 2619 msgstr "" 2620 2621 #: pro/i18n/countries.php:72 2622 msgid "Equatorial Guinea" 2623 msgstr "" 2624 2625 #: pro/i18n/countries.php:73 2626 msgid "Eritrea" 2627 msgstr "" 2628 2629 #: pro/i18n/countries.php:74 2630 msgid "Estonia" 2631 msgstr "" 2632 2633 #: pro/i18n/countries.php:75 2634 msgid "Ethiopia" 2635 msgstr "" 2636 2637 #: pro/i18n/countries.php:76 2638 msgid "Falkland Islands" 2639 msgstr "" 2640 2641 #: pro/i18n/countries.php:77 2642 msgid "Faroe Islands" 2643 msgstr "" 2644 2645 #: pro/i18n/countries.php:78 2646 msgid "Fiji" 2647 msgstr "" 2648 2649 #: pro/i18n/countries.php:79 2650 msgid "Finland" 2651 msgstr "" 2652 2653 #: pro/i18n/countries.php:80 2654 msgid "France" 2655 msgstr "" 2656 2657 #: pro/i18n/countries.php:81 2658 msgid "French Guiana" 2659 msgstr "" 2660 2661 #: pro/i18n/countries.php:82 2662 msgid "French Polynesia" 2663 msgstr "" 2664 2665 #: pro/i18n/countries.php:83 2666 msgid "French Southern Territories" 2667 msgstr "" 2668 2669 #: pro/i18n/countries.php:84 2670 msgid "Gabon" 2671 msgstr "" 2672 2673 #: pro/i18n/countries.php:85 2674 msgid "Gambia" 2675 msgstr "" 2676 2677 #: pro/i18n/countries.php:86 2678 msgid "Georgia" 2679 msgstr "" 2680 2681 #: pro/i18n/countries.php:87 2682 msgid "Germany" 2683 msgstr "" 2684 2685 #: pro/i18n/countries.php:88 2686 msgid "Ghana" 2687 msgstr "" 2688 2689 #: pro/i18n/countries.php:89 2690 msgid "Gibraltar" 2691 msgstr "" 2692 2693 #: pro/i18n/countries.php:90 2694 msgid "Greece" 2695 msgstr "" 2696 2697 #: pro/i18n/countries.php:91 2698 msgid "Greenland" 2699 msgstr "" 2700 2701 #: pro/i18n/countries.php:92 2702 msgid "Grenada" 2703 msgstr "" 2704 2705 #: pro/i18n/countries.php:93 2706 msgid "Guadeloupe" 2707 msgstr "" 2708 2709 #: pro/i18n/countries.php:94 2710 msgid "Guatemala" 2711 msgstr "" 2712 2713 #: pro/i18n/countries.php:95 2714 msgid "Guernsey" 2715 msgstr "" 2716 2717 #: pro/i18n/countries.php:96 2718 msgid "Guinea" 2719 msgstr "" 2720 2721 #: pro/i18n/countries.php:97 2722 msgid "Guinea-Bissau" 2723 msgstr "" 2724 2725 #: pro/i18n/countries.php:98 2726 msgid "Guyana" 2727 msgstr "" 2728 2729 #: pro/i18n/countries.php:99 2730 msgid "Haiti" 2731 msgstr "" 2732 2733 #: pro/i18n/countries.php:100 2734 msgid "Heard Island and McDonald Islands" 2735 msgstr "" 2736 2737 #: pro/i18n/countries.php:101 2738 msgid "Honduras" 2739 msgstr "" 2740 2741 #: pro/i18n/countries.php:102 2742 msgid "Hong Kong" 2743 msgstr "" 2744 2745 #: pro/i18n/countries.php:103 2746 msgid "Hungary" 2747 msgstr "" 2748 2749 #: pro/i18n/countries.php:104 2750 msgid "Iceland" 2751 msgstr "" 2752 2753 #: pro/i18n/countries.php:105 2754 msgid "India" 2755 msgstr "" 2756 2757 #: pro/i18n/countries.php:106 2758 msgid "Indonesia" 2759 msgstr "" 2760 2761 #: pro/i18n/countries.php:107 2762 msgid "Iran" 2763 msgstr "" 2764 2765 #: pro/i18n/countries.php:108 2766 msgid "Iraq" 2767 msgstr "" 2768 2769 #: pro/i18n/countries.php:109 2770 msgid "Republic of Ireland" 2771 msgstr "" 2772 2773 #: pro/i18n/countries.php:110 2774 msgid "Isle of Man" 2775 msgstr "" 2776 2777 #: pro/i18n/countries.php:111 2778 msgid "Israel" 2779 msgstr "" 2780 2781 #: pro/i18n/countries.php:112 2782 msgid "Italy" 2783 msgstr "" 2784 2785 #: pro/i18n/countries.php:113 2786 msgid "Ivory Coast" 2787 msgstr "" 2788 2789 #: pro/i18n/countries.php:114 2790 msgid "Jamaica" 2791 msgstr "" 2792 2793 #: pro/i18n/countries.php:115 2794 msgid "Japan" 2795 msgstr "" 2796 2797 #: pro/i18n/countries.php:116 2798 msgid "Jersey" 2799 msgstr "" 2800 2801 #: pro/i18n/countries.php:117 2802 msgid "Jordan" 2803 msgstr "" 2804 2805 #: pro/i18n/countries.php:118 2806 msgid "Kazakhstan" 2807 msgstr "" 2808 2809 #: pro/i18n/countries.php:119 2810 msgid "Kenya" 2811 msgstr "" 2812 2813 #: pro/i18n/countries.php:120 2814 msgid "Kiribati" 2815 msgstr "" 2816 2817 #: pro/i18n/countries.php:121 2818 msgid "Kuwait" 2819 msgstr "" 2820 2821 #: pro/i18n/countries.php:122 2822 msgid "Kyrgyzstan" 2823 msgstr "" 2824 2825 #: pro/i18n/countries.php:123 2826 msgid "Laos" 2827 msgstr "" 2828 2829 #: pro/i18n/countries.php:124 2830 msgid "Latvia" 2831 msgstr "" 2832 2833 #: pro/i18n/countries.php:125 2834 msgid "Lebanon" 2835 msgstr "" 2836 2837 #: pro/i18n/countries.php:126 2838 msgid "Lesotho" 2839 msgstr "" 2840 2841 #: pro/i18n/countries.php:127 2842 msgid "Liberia" 2843 msgstr "" 2844 2845 #: pro/i18n/countries.php:128 2846 msgid "Libya" 2847 msgstr "" 2848 2849 #: pro/i18n/countries.php:129 2850 msgid "Liechtenstein" 2851 msgstr "" 2852 2853 #: pro/i18n/countries.php:130 2854 msgid "Lithuania" 2855 msgstr "" 2856 2857 #: pro/i18n/countries.php:131 2858 msgid "Luxembourg" 2859 msgstr "" 2860 2861 #: pro/i18n/countries.php:132 2862 msgid "Macao S.A.R., China" 2863 msgstr "" 2864 2865 #: pro/i18n/countries.php:133 2866 msgid "Macedonia" 2867 msgstr "" 2868 2869 #: pro/i18n/countries.php:134 2870 msgid "Madagascar" 2871 msgstr "" 2872 2873 #: pro/i18n/countries.php:135 2874 msgid "Malawi" 2875 msgstr "" 2876 2877 #: pro/i18n/countries.php:136 2878 msgid "Malaysia" 2879 msgstr "" 2880 2881 #: pro/i18n/countries.php:137 2882 msgid "Maldives" 2883 msgstr "" 2884 2885 #: pro/i18n/countries.php:138 2886 msgid "Mali" 2887 msgstr "" 2888 2889 #: pro/i18n/countries.php:139 2890 msgid "Malta" 2891 msgstr "" 2892 2893 #: pro/i18n/countries.php:140 2894 msgid "Marshall Islands" 2895 msgstr "" 2896 2897 #: pro/i18n/countries.php:141 2898 msgid "Martinique" 2899 msgstr "" 2900 2901 #: pro/i18n/countries.php:142 2902 msgid "Mauritania" 2903 msgstr "" 2904 2905 #: pro/i18n/countries.php:143 2906 msgid "Mauritius" 2907 msgstr "" 2908 2909 #: pro/i18n/countries.php:144 2910 msgid "Mayotte" 2911 msgstr "" 2912 2913 #: pro/i18n/countries.php:145 2914 msgid "Mexico" 2915 msgstr "" 2916 2917 #: pro/i18n/countries.php:146 2918 msgid "Micronesia" 2919 msgstr "" 2920 2921 #: pro/i18n/countries.php:147 2922 msgid "Moldova" 2923 msgstr "" 2924 2925 #: pro/i18n/countries.php:148 2926 msgid "Monaco" 2927 msgstr "" 2928 2929 #: pro/i18n/countries.php:149 2930 msgid "Mongolia" 2931 msgstr "" 2932 2933 #: pro/i18n/countries.php:150 2934 msgid "Montenegro" 2935 msgstr "" 2936 2937 #: pro/i18n/countries.php:151 2938 msgid "Montserrat" 2939 msgstr "" 2940 2941 #: pro/i18n/countries.php:152 2942 msgid "Morocco" 2943 msgstr "" 2944 2945 #: pro/i18n/countries.php:153 2946 msgid "Mozambique" 2947 msgstr "" 2948 2949 #: pro/i18n/countries.php:154 2950 msgid "Myanmar" 2951 msgstr "" 2952 2953 #: pro/i18n/countries.php:155 2954 msgid "Namibia" 2955 msgstr "" 2956 2957 #: pro/i18n/countries.php:156 2958 msgid "Nauru" 2959 msgstr "" 2960 2961 #: pro/i18n/countries.php:157 2962 msgid "Nepal" 2963 msgstr "" 2964 2965 #: pro/i18n/countries.php:158 2966 msgid "Netherlands" 2967 msgstr "" 2968 2969 #: pro/i18n/countries.php:159 2970 msgid "Netherlands Antilles" 2971 msgstr "" 2972 2973 #: pro/i18n/countries.php:160 2974 msgid "New Caledonia" 2975 msgstr "" 2976 2977 #: pro/i18n/countries.php:161 2978 msgid "New Zealand" 2979 msgstr "" 2980 2981 #: pro/i18n/countries.php:162 2982 msgid "Nicaragua" 2983 msgstr "" 2984 2985 #: pro/i18n/countries.php:163 2986 msgid "Niger" 2987 msgstr "" 2988 2989 #: pro/i18n/countries.php:164 2990 msgid "Nigeria" 2991 msgstr "" 2992 2993 #: pro/i18n/countries.php:165 2994 msgid "Niue" 2995 msgstr "" 2996 2997 #: pro/i18n/countries.php:166 2998 msgid "Norfolk Island" 2999 msgstr "" 3000 3001 #: pro/i18n/countries.php:167 3002 msgid "North Korea" 3003 msgstr "" 3004 3005 #: pro/i18n/countries.php:168 3006 msgid "Norway" 3007 msgstr "" 3008 3009 #: pro/i18n/countries.php:169 3010 msgid "Oman" 3011 msgstr "" 3012 3013 #: pro/i18n/countries.php:170 3014 msgid "Pakistan" 3015 msgstr "" 3016 3017 #: pro/i18n/countries.php:171 3018 msgid "Palestinian Territory" 3019 msgstr "" 3020 3021 #: pro/i18n/countries.php:172 3022 msgid "Panama" 3023 msgstr "" 3024 3025 #: pro/i18n/countries.php:173 3026 msgid "Papua New Guinea" 3027 msgstr "" 3028 3029 #: pro/i18n/countries.php:174 3030 msgid "Paraguay" 3031 msgstr "" 3032 3033 #: pro/i18n/countries.php:175 3034 msgid "Peru" 3035 msgstr "" 3036 3037 #: pro/i18n/countries.php:176 3038 msgid "Philippines" 3039 msgstr "" 3040 3041 #: pro/i18n/countries.php:177 3042 msgid "Pitcairn" 3043 msgstr "" 3044 3045 #: pro/i18n/countries.php:178 3046 msgid "Poland" 3047 msgstr "" 3048 3049 #: pro/i18n/countries.php:179 3050 msgid "Portugal" 3051 msgstr "" 3052 3053 #: pro/i18n/countries.php:180 3054 msgid "Qatar" 3055 msgstr "" 3056 3057 #: pro/i18n/countries.php:181 3058 msgid "Reunion" 3059 msgstr "" 3060 3061 #: pro/i18n/countries.php:182 3062 msgid "Romania" 3063 msgstr "" 3064 3065 #: pro/i18n/countries.php:183 3066 msgid "Russia" 3067 msgstr "" 3068 3069 #: pro/i18n/countries.php:184 3070 msgid "Rwanda" 3071 msgstr "" 3072 3073 #: pro/i18n/countries.php:185 3074 msgid "Saint Barthélemy" 3075 msgstr "" 3076 3077 #: pro/i18n/countries.php:186 3078 msgid "Saint Helena" 3079 msgstr "" 3080 3081 #: pro/i18n/countries.php:187 3082 msgid "Saint Kitts and Nevis" 3083 msgstr "" 3084 3085 #: pro/i18n/countries.php:188 3086 msgid "Saint Lucia" 3087 msgstr "" 3088 3089 #: pro/i18n/countries.php:189 3090 msgid "Saint Martin (French part)" 3091 msgstr "" 3092 3093 #: pro/i18n/countries.php:190 3094 msgid "Saint Martin (Dutch part)" 3095 msgstr "" 3096 3097 #: pro/i18n/countries.php:191 3098 msgid "Saint Pierre and Miquelon" 3099 msgstr "" 3100 3101 #: pro/i18n/countries.php:192 3102 msgid "Saint Vincent and the Grenadines" 3103 msgstr "" 3104 3105 #: pro/i18n/countries.php:193 3106 msgid "San Marino" 3107 msgstr "" 3108 3109 #: pro/i18n/countries.php:194 3110 msgid "São Tomé and Príncipe" 3111 msgstr "" 3112 3113 #: pro/i18n/countries.php:195 3114 msgid "Saudi Arabia" 3115 msgstr "" 3116 3117 #: pro/i18n/countries.php:196 3118 msgid "Senegal" 3119 msgstr "" 3120 3121 #: pro/i18n/countries.php:197 3122 msgid "Serbia" 3123 msgstr "" 3124 3125 #: pro/i18n/countries.php:198 3126 msgid "Seychelles" 3127 msgstr "" 3128 3129 #: pro/i18n/countries.php:199 3130 msgid "Sierra Leone" 3131 msgstr "" 3132 3133 #: pro/i18n/countries.php:200 3134 msgid "Singapore" 3135 msgstr "" 3136 3137 #: pro/i18n/countries.php:201 3138 msgid "Slovakia" 3139 msgstr "" 3140 3141 #: pro/i18n/countries.php:202 3142 msgid "Slovenia" 3143 msgstr "" 3144 3145 #: pro/i18n/countries.php:203 3146 msgid "Solomon Islands" 3147 msgstr "" 3148 3149 #: pro/i18n/countries.php:204 3150 msgid "Somalia" 3151 msgstr "" 3152 3153 #: pro/i18n/countries.php:205 3154 msgid "South Africa" 3155 msgstr "" 3156 3157 #: pro/i18n/countries.php:206 3158 msgid "South Georgia/Sandwich Islands" 3159 msgstr "" 3160 3161 #: pro/i18n/countries.php:207 3162 msgid "South Korea" 3163 msgstr "" 3164 3165 #: pro/i18n/countries.php:208 3166 msgid "South Sudan" 3167 msgstr "" 3168 3169 #: pro/i18n/countries.php:209 3170 msgid "Spain" 3171 msgstr "" 3172 3173 #: pro/i18n/countries.php:210 3174 msgid "Sri Lanka" 3175 msgstr "" 3176 3177 #: pro/i18n/countries.php:211 3178 msgid "Sudan" 3179 msgstr "" 3180 3181 #: pro/i18n/countries.php:212 3182 msgid "Suriname" 3183 msgstr "" 3184 3185 #: pro/i18n/countries.php:213 3186 msgid "Svalbard and Jan Mayen" 3187 msgstr "" 3188 3189 #: pro/i18n/countries.php:214 3190 msgid "Swaziland" 3191 msgstr "" 3192 3193 #: pro/i18n/countries.php:215 3194 msgid "Sweden" 3195 msgstr "" 3196 3197 #: pro/i18n/countries.php:216 3198 msgid "Switzerland" 3199 msgstr "" 3200 3201 #: pro/i18n/countries.php:217 3202 msgid "Syria" 3203 msgstr "" 3204 3205 #: pro/i18n/countries.php:218 3206 msgid "Taiwan" 3207 msgstr "" 3208 3209 #: pro/i18n/countries.php:219 3210 msgid "Tajikistan" 3211 msgstr "" 3212 3213 #: pro/i18n/countries.php:220 3214 msgid "Tanzania" 3215 msgstr "" 3216 3217 #: pro/i18n/countries.php:221 3218 msgid "Thailand" 3219 msgstr "" 3220 3221 #: pro/i18n/countries.php:222 3222 msgid "Timor-Leste" 3223 msgstr "" 3224 3225 #: pro/i18n/countries.php:223 3226 msgid "Togo" 3227 msgstr "" 3228 3229 #: pro/i18n/countries.php:224 3230 msgid "Tokelau" 3231 msgstr "" 3232 3233 #: pro/i18n/countries.php:225 3234 msgid "Tonga" 3235 msgstr "" 3236 3237 #: pro/i18n/countries.php:226 3238 msgid "Trinidad and Tobago" 3239 msgstr "" 3240 3241 #: pro/i18n/countries.php:227 3242 msgid "Tunisia" 3243 msgstr "" 3244 3245 #: pro/i18n/countries.php:228 3246 msgid "Turkey" 3247 msgstr "" 3248 3249 #: pro/i18n/countries.php:229 3250 msgid "Turkmenistan" 3251 msgstr "" 3252 3253 #: pro/i18n/countries.php:230 3254 msgid "Turks and Caicos Islands" 3255 msgstr "" 3256 3257 #: pro/i18n/countries.php:231 3258 msgid "Tuvalu" 3259 msgstr "" 3260 3261 #: pro/i18n/countries.php:232 3262 msgid "Uganda" 3263 msgstr "" 3264 3265 #: pro/i18n/countries.php:233 3266 msgid "Ukraine" 3267 msgstr "" 3268 3269 #: pro/i18n/countries.php:234 3270 msgid "United Arab Emirates" 3271 msgstr "" 3272 3273 #: pro/i18n/countries.php:235 3274 msgid "United Kingdom (UK)" 3275 msgstr "" 3276 3277 #: pro/i18n/countries.php:236 3278 msgid "United States" 3279 msgstr "" 3280 3281 #: pro/i18n/countries.php:237 3282 msgid "Uruguay" 3283 msgstr "" 3284 3285 #: pro/i18n/countries.php:238 3286 msgid "Uzbekistan" 3287 msgstr "" 3288 3289 #: pro/i18n/countries.php:239 3290 msgid "Vanuatu" 3291 msgstr "" 3292 3293 #: pro/i18n/countries.php:240 3294 msgid "Vatican" 3295 msgstr "" 3296 3297 #: pro/i18n/countries.php:241 3298 msgid "Venezuela" 3299 msgstr "" 3300 3301 #: pro/i18n/countries.php:242 3302 msgid "Vietnam" 3303 msgstr "" 3304 3305 #: pro/i18n/countries.php:243 3306 msgid "Wallis and Futuna" 3307 msgstr "" 3308 3309 #: pro/i18n/countries.php:244 3310 msgid "Western Sahara" 3311 msgstr "" 3312 3313 #: pro/i18n/countries.php:245 3314 msgid "Western Samoa" 3315 msgstr "" 3316 3317 #: pro/i18n/countries.php:246 3318 msgid "Yemen" 3319 msgstr "" 3320 3321 #: pro/i18n/countries.php:247 3322 msgid "Zambia" 3323 msgstr "" 3324 3325 #: pro/i18n/countries.php:248 3326 msgid "Zimbabwe" 3327 msgstr "" 3328 3329 #: app/helpers/PrliAppHelper.php:20 3330 #: app/views/links/form.php:30 3331 #: app/controllers/PrliLinksController.php:383 3332 #: app/controllers/PrliLinksController.php:389 3333 #: app/controllers/PrliLinksController.php:395 3334 msgid "Pro" 3335 msgstr "" 3336 3337 #: app/helpers/PrliAppHelper.php:21 3338 msgid "Upgrade to Pro to unlock this feature" 3339 msgstr "" 3340 3341 #: app/helpers/PrliLinksHelper.php:14 3342 #: app/views/links/form_basic.php:15 3343 #: app/views/shared/tinymce_form_popup.php:32 3344 msgid "307 (Temporary)" 3345 msgstr "" 3346 3347 #: app/helpers/PrliLinksHelper.php:15 3348 #: app/views/links/form_basic.php:16 3349 #: app/views/shared/tinymce_form_popup.php:33 3350 msgid "302 (Temporary)" 3351 msgstr "" 3352 3353 #: app/helpers/PrliLinksHelper.php:16 3354 #: app/views/links/form_basic.php:17 3355 #: app/views/shared/tinymce_form_popup.php:34 3356 msgid "301 (Permanent)" 3357 msgstr "" 3358 3359 #: app/helpers/PrliLinksHelper.php:27 3360 msgid "PrettyBar Redirection" 3361 msgstr "" 3362 3363 #: app/helpers/PrliLinksHelper.php:30 3364 msgid "Cloaked Redirection" 3365 msgstr "" 3366 3367 #: app/helpers/PrliLinksHelper.php:33 3368 msgid "Pixel Tracking Redirection" 3369 msgstr "" 3370 3371 #: app/helpers/PrliLinksHelper.php:36 3372 msgid "Meta Refresh Redirection" 3373 msgstr "" 3374 3375 #: app/helpers/PrliLinksHelper.php:39 3376 msgid "Javascript Redirection" 3377 msgstr "" 3378 3379 #: app/helpers/PrliLinksHelper.php:42 3380 msgid "Temporary (307) Redirection" 3381 msgstr "" 3382 3383 #: app/helpers/PrliLinksHelper.php:45 3384 msgid "Temporary (302) Redirection" 3385 msgstr "" 3386 3387 #: app/helpers/PrliLinksHelper.php:48 3388 msgid "Permanent (301) Redirection" 3389 msgstr "" 3390 3391 #: app/helpers/PrliLinksHelper.php:52 3392 msgid "Nofollow Enabled" 3393 msgstr "" 3394 3395 #: app/helpers/PrliLinksHelper.php:56 3396 msgid "Parameter Forwarding Enabled" 3397 msgstr "" 3398 3399 #: app/helpers/PrliLinksHelper.php:68 3400 msgid "Are you sure you want to delete your %s Pretty Link? This will delete the Pretty Link and all of the statistical data about it in your database." 3401 msgstr "" 3402 3403 #: app/helpers/PrliLinksHelper.php:69 3404 msgid "Are you sure you want to reset your %s Pretty Link? This will delete all of the statistical data about this Pretty Link in your database." 3405 msgstr "" 3406 3407 #: app/helpers/PrliLinksHelper.php:69 3408 #: app/helpers/PrliLinksHelper.php:147 3409 msgid "Reset %s" 3410 msgstr "" 3411 3412 #: app/helpers/PrliLinksHelper.php:72 3413 #: app/views/clicks/list.php:161 3414 msgid "View clicks for %s" 3415 msgstr "" 3416 3417 #: app/helpers/PrliLinksHelper.php:77 3418 #: app/helpers/PrliLinksHelper.php:158 3419 msgid "Post %s to Twitter" 3420 msgstr "" 3421 3422 #: app/helpers/PrliLinksHelper.php:78 3423 #: app/helpers/PrliLinksHelper.php:169 3424 msgid "Send %s in an Email" 3425 msgstr "" 3426 3427 #: app/helpers/PrliLinksHelper.php:83 3428 #: app/helpers/PrliLinksHelper.php:180 3429 msgid "Visit Target URL: %s in a New Window" 3430 msgstr "" 3431 3432 #: app/helpers/PrliLinksHelper.php:84 3433 #: app/helpers/PrliLinksHelper.php:191 3434 msgid "Visit Short URL: %s in a New Window" 3435 msgstr "" 3436 3437 #: app/helpers/PrliLinksHelper.php:102 3438 msgid "%d Clicks / %d Uniques" 3439 msgstr "" 3440 3441 #: app/helpers/PrliLinksHelper.php:111 3442 msgid "This link isn't being tracked" 3443 msgstr "" 3444 3445 #: app/helpers/PrliLinksHelper.php:135 3446 msgid "Target URL:" 3447 msgstr "" 3448 3449 #: app/helpers/PrliLinksHelper.php:167 3450 #: app/views/links/form_basic.php:48 3451 #: app/views/shared/tinymce_form_popup.php:78 3452 #: app/views/widgets/widget.php:15 3453 #: app/controllers/PrliLinksController.php:44 3454 msgid "Pretty Link" 3455 msgstr "" 3456 3457 #: app/models/PrliUtils.php:88 3458 msgid "*** Pretty Links Debug: %s" 3459 msgstr "" 3460 3461 #: app/models/PrliUtils.php:98 3462 msgid "The Slug can't be empty" 3463 msgstr "" 3464 3465 #: app/models/PrliUtils.php:106 3466 msgid "There's a file this slug conflicts with: %s" 3467 msgstr "" 3468 3469 #: app/models/PrliUtils.php:115 3470 msgid "This Pretty Link Slug is already taken. There's already another pretty link with this slug: %s" 3471 msgstr "" 3472 3473 #: app/models/PrliUtils.php:133 3474 msgid "This Pretty Link Slug is already taken. The path resolved to URL: %s" 3475 msgstr "" 3476 3477 #: app/models/PrliUtils.php:138 3478 msgid "This Pretty Link Slug is already taken. The path redirected to URL: %s" 3479 msgstr "" 3480 3481 #. translators: %1$s: open link tag, %2$s: close link tag, %3$s: br tag 3482 #: app/models/PrliUtils.php:1107 3483 msgid "Get started by %1$sadding a URL%2$s that you want to turn into a pretty link.%3$sCome back to see how many times it was clicked." 3484 msgstr "" 3485 3486 #: app/models/PrliLink.php:495 3487 msgid "Target URL can't be blank" 3488 msgstr "" 3489 3490 #: app/models/PrliLink.php:499 3491 msgid "Target URL must be different than the Pretty Link" 3492 msgstr "" 3493 3494 #: app/models/PrliLink.php:503 3495 msgid "Link URL must be a correctly formatted url" 3496 msgstr "" 3497 3498 #: app/models/PrliLink.php:507 3499 msgid "Pretty Link slugs must not contain question marks, ampersands or number signs." 3500 msgstr "" 3501 3502 #: app/models/PrliLink.php:511 3503 msgid "Pretty Link slugs must not end with a slash (\"/\")" 3504 msgstr "" 3505 3506 #: app/models/PrliClick.php:237 3507 msgid "all links" 3508 msgstr "" 3509 3510 #: app/models/PrliClick.php:244 3511 msgid "All clicks" 3512 msgstr "" 3513 3514 #: app/models/PrliClick.php:247 3515 msgid "Unique hits" 3516 msgstr "" 3517 3518 #: app/models/PrliClick.php:251 3519 msgid "on" 3520 msgstr "" 3521 3522 #: app/models/PrliGroup.php:114 3523 msgid "Group must have a name." 3524 msgstr "" 3525 3526 #: app/views/links/form_advanced.php:6 3527 msgid "No Follow" 3528 msgstr "" 3529 3530 #: app/views/links/form_advanced.php:9 3531 msgid "Nofollow Link" 3532 msgstr "" 3533 3534 #: app/views/links/form_advanced.php:10 3535 msgid "Add a nofollow and noindex to this link's http redirect header" 3536 msgstr "" 3537 3538 #: app/views/links/form_advanced.php:19 3539 #: app/views/links/form_advanced.php:22 3540 msgid "Delay Redirect" 3541 msgstr "" 3542 3543 #: app/views/links/form_advanced.php:23 3544 msgid "Time in seconds to wait before redirecting" 3545 msgstr "" 3546 3547 #: app/views/links/form_advanced.php:32 3548 #: app/views/links/form_advanced.php:35 3549 msgid "Parameter Forwarding" 3550 msgstr "" 3551 3552 #: app/views/links/form_advanced.php:36 3553 msgid "Forward parameters passed to this link onto the Target URL" 3554 msgstr "" 3555 3556 #: app/views/links/form_advanced.php:45 3557 #: app/views/links/form_advanced.php:48 3558 #: app/views/shared/tinymce_form_popup.php:54 3559 msgid "Tracking" 3560 msgstr "" 3561 3562 #: app/views/links/form_advanced.php:49 3563 msgid "Enable Pretty Link's built-in hit (click) tracking" 3564 msgstr "" 3565 3566 #: app/views/links/form_advanced.php:61 3567 msgid "Google Analytics Tracking" 3568 msgstr "" 3569 3570 #: app/views/links/form_advanced.php:62 3571 msgid "Requires the Google Analyticator, Google Analytics by MonsterInsights (formerly Yoast) or Google Analytics Plugin installed and configured for this to work." 3572 msgstr "" 3573 3574 #: app/views/links/form_advanced.php:75 3575 msgid "It appears that %s is currently installed. Pretty Link will attempt to use its settings to track this link." 3576 msgstr "" 3577 3578 #: app/views/links/form_advanced.php:84 3579 msgid "No Google Analytics Plugin is currently installed. Pretty Link cannot track links using Google Analytics until one is." 3580 msgstr "" 3581 3582 #: app/views/links/form.php:28 3583 msgid "Basic" 3584 msgstr "" 3585 3586 #: app/views/links/form.php:29 3587 msgid "Advanced" 3588 msgstr "" 3589 3590 #: app/views/links/form_basic.php:6 3591 msgid "Redirection*" 3592 msgstr "" 3593 3594 #: app/views/links/form_basic.php:9 3595 #: app/views/options/form.php:77 3596 msgid "Redirection Type" 3597 msgstr "" 3598 3599 #: app/views/links/form_basic.php:10 3600 msgid "This is the method of redirection for your link." 3601 msgstr "" 3602 3603 #: app/views/links/form_basic.php:24 3604 #: app/views/options/form.php:87 3605 msgid "Get cloaked redirects, Javascript redirects and more when you %1$sUpgrade to PRO%2$s" 3606 msgstr "" 3607 3608 #: app/views/links/form_basic.php:32 3609 msgid "Target URL*" 3610 msgstr "" 3611 3612 #: app/views/links/form_basic.php:35 3613 #: app/views/shared/tinymce_form_popup.php:13 3614 #: app/views/shared/tinymce_form_popup.php:74 3615 #: app/views/widgets/widget.php:11 3616 msgid "Target URL" 3617 msgstr "" 3618 3619 #: app/views/links/form_basic.php:36 3620 msgid "This is the URL that your Pretty Link will redirect to." 3621 msgstr "" 3622 3623 #: app/views/links/form_basic.php:45 3624 msgid "Pretty Link*" 3625 msgstr "" 3626 3627 #: app/views/links/form_basic.php:49 3628 msgid "This is how your pretty link will appear. You can edit the Pretty Link slug here." 3629 msgstr "" 3630 3631 #: app/views/links/form_basic.php:58 3632 #: app/views/links/form_basic.php:61 3633 msgid "Notes" 3634 msgstr "" 3635 3636 #: app/views/links/form_basic.php:62 3637 msgid "This is a field where you can enter notes about a particular link. This notes field is mainly for your own link management needs. It isn't currently used anywhere on the front end." 3638 msgstr "" 3639 3640 #: app/views/links/form_pro.php:34 3641 msgid "Enter a comma separated list of keywords / keyword phrases that you'd like to replace with this link in your Posts & Pages." 3642 msgstr "" 3643 3644 #. translators: %1$s: open code tag, %2$s: close code tag 3645 #: app/views/links/form_pro.php:50 3646 msgid "Enter a comma separated list of the URLs that you'd like to replace with this Pretty Link in your Posts & Pages. These must be formatted as URLs for example: %1$shttp://example.com%2$s or %1$shttp://example.com?product_id=53%2$s" 3647 msgstr "" 3648 3649 #: app/views/shared/nav.php:6 3650 msgid "Pro Manual" 3651 msgstr "" 3652 3653 #: app/views/shared/nav.php:9 3654 #: app/views/admin/update/license.php:39 3655 #: app/views/admin/onboarding/welcome.php:116 3656 #: app/controllers/PrliAppController.php:276 3657 msgid "Upgrade to Pro" 3658 msgstr "" 3659 3660 #: app/views/shared/nav.php:14 3661 msgid "Connect:" 3662 msgstr "" 3663 3664 #: app/views/shared/nav.php:18 3665 msgid "Get Help:" 3666 msgstr "" 3667 3668 #: app/views/shared/nav.php:19 3669 msgid "Tutorials" 3670 msgstr "" 3671 3672 #: app/views/shared/public_link.php:22 3673 msgid "Here is your Pretty Link" 3674 msgstr "" 3675 3676 #: app/views/shared/public_link.php:30 3677 msgid "Here's your pretty link for" 3678 msgstr "" 3679 3680 #: app/views/shared/public_link.php:41 3681 msgid "send this link to:" 3682 msgstr "" 3683 3684 #: app/views/shared/public_link.php:45 3685 msgid "back" 3686 msgstr "" 3687 3688 #: app/views/shared/table-nav.php:14 3689 #: app/views/shared/link-table-nav.php:16 3690 #: app/views/shared/link-table-nav.php:106 3691 msgid "Displaying %1$s–%2$s of %3$s" 3692 msgstr "" 3693 3694 #: app/views/shared/tinymce_form_popup.php:4 3695 msgid "Insert Pretty Link" 3696 msgstr "" 3697 3698 #: app/views/shared/tinymce_form_popup.php:10 3699 #: js/editor/components/link-editor/index.js:377 3700 #: js/editor.js:12 3701 msgid "Create New Pretty Link" 3702 msgstr "" 3703 3704 #: app/views/shared/tinymce_form_popup.php:17 3705 msgid "Slug" 3706 msgstr "" 3707 3708 #: app/views/shared/tinymce_form_popup.php:20 3709 msgid "valid" 3710 msgstr "" 3711 3712 #: app/views/shared/tinymce_form_popup.php:21 3713 msgid "invalid" 3714 msgstr "" 3715 3716 #: app/views/shared/tinymce_form_popup.php:25 3717 #: app/views/shared/tinymce_form_popup.php:82 3718 msgid "Link Text" 3719 msgstr "" 3720 3721 #: app/views/shared/tinymce_form_popup.php:29 3722 msgid "Redirect Type" 3723 msgstr "" 3724 3725 #: app/views/shared/tinymce_form_popup.php:46 3726 msgid "Nofollow" 3727 msgstr "" 3728 3729 #: app/views/shared/tinymce_form_popup.php:49 3730 #: app/views/shared/tinymce_form_popup.php:57 3731 msgid "Enabled" 3732 msgstr "" 3733 3734 #: app/views/shared/tinymce_form_popup.php:50 3735 #: app/views/shared/tinymce_form_popup.php:58 3736 msgid "Disabled" 3737 msgstr "" 3738 3739 #: app/views/shared/tinymce_form_popup.php:63 3740 #: app/views/shared/tinymce_form_popup.php:87 3741 msgid "Open this Pretty Link in a new window/tab" 3742 msgstr "" 3743 3744 #: app/views/shared/tinymce_form_popup.php:66 3745 msgid "Insert New Pretty Link" 3746 msgstr "" 3747 3748 #: app/views/shared/tinymce_form_popup.php:70 3749 msgid "Use Existing Pretty Link" 3750 msgstr "" 3751 3752 #: app/views/shared/tinymce_form_popup.php:72 3753 msgid "Search by Slug, Title, or Target URL..." 3754 msgstr "" 3755 3756 #: app/views/shared/tinymce_form_popup.php:91 3757 msgid "Insert Existing Pretty Link" 3758 msgstr "" 3759 3760 #: app/views/shared/errors.php:12 3761 #: app/views/admin/errors.php:7 3762 msgid "ERROR" 3763 msgstr "" 3764 3765 #: app/views/admin/popups/upgrade.php:6 3766 msgid "Upgrade to Pretty Links PRO" 3767 msgstr "" 3768 3769 #: app/views/admin/popups/upgrade.php:7 3770 msgid "Unlock Pretty Links' PRO features and you'll be able to:" 3771 msgstr "" 3772 3773 #: app/views/admin/popups/upgrade.php:9 3774 msgid "Monetize existing content with automated Pretty Link placement" 3775 msgstr "" 3776 3777 #: app/views/admin/popups/upgrade.php:10 3778 msgid "Redirect with cloaking, Javascript or Meta-refresh" 3779 msgstr "" 3780 3781 #: app/views/admin/popups/upgrade.php:11 3782 msgid "Redirect by location, time, device or rotation" 3783 msgstr "" 3784 3785 #: app/views/admin/popups/upgrade.php:12 3786 msgid "Expire your Pretty Links" 3787 msgstr "" 3788 3789 #: app/views/admin/popups/upgrade.php:13 3790 msgid "Split-test your Pretty Links" 3791 msgstr "" 3792 3793 #: app/views/admin/popups/upgrade.php:14 3794 #: app/views/admin/update/license.php:60 3795 msgid "And much, much more!" 3796 msgstr "" 3797 3798 #: app/views/admin/popups/upgrade.php:17 3799 msgid "Plus, upgrading is fast, easy and won't disrupt any of your existing links or data." 3800 msgstr "" 3801 3802 #: app/views/admin/popups/upgrade.php:18 3803 #: app/views/admin/update/license.php:66 3804 msgid "We think you'll love it!" 3805 msgstr "" 3806 3807 #: app/views/admin/popups/upgrade.php:23 3808 msgid "Upgrade to Pretty Links Pro" 3809 msgstr "" 3810 3811 #: app/views/admin/popups/upgrade.php:24 3812 msgid "Maybe Later" 3813 msgstr "" 3814 3815 #: app/views/admin/popups/rating.php:8 3816 msgid "Are you enjoying using Pretty Links?" 3817 msgstr "" 3818 3819 #: app/views/admin/popups/rating.php:17 3820 msgid "Rate Pretty Links" 3821 msgstr "" 3822 3823 #: app/views/admin/popups/rating.php:18 3824 msgid "If you enjoy using Pretty Links would you mind taking a moment to rate it on WordPress.org? It won't take more than a minute." 3825 msgstr "" 3826 3827 #: app/views/admin/popups/rating.php:19 3828 #: app/views/admin/popups/rating.php:31 3829 msgid "Thanks for your support!" 3830 msgstr "" 3831 3832 #: app/views/admin/popups/rating.php:24 3833 #: app/views/admin/popups/rating.php:36 3834 msgid "Remind Me Later" 3835 msgstr "" 3836 3837 #: app/views/admin/popups/rating.php:25 3838 msgid "Review Pretty Links" 3839 msgstr "" 3840 3841 #: app/views/admin/popups/rating.php:29 3842 #: app/views/admin/popups/rating.php:37 3843 msgid "Leave Feedback" 3844 msgstr "" 3845 3846 #: app/views/admin/popups/rating.php:30 3847 msgid "To help us improve Pretty Links, would you mind taking a moment to leave feedback?" 3848 msgstr "" 3849 3850 #: app/views/admin/popups/rating.php:40 3851 msgid "Never Remind Me Again" 3852 msgstr "" 3853 3854 #: app/views/admin/update/addons.php:3 3855 msgid "Pretty Link Add-ons" 3856 msgstr "" 3857 3858 #: app/views/admin/update/addons.php:8 3859 msgid "There were no Add-ons found for your license or lack thereof..." 3860 msgstr "" 3861 3862 #: app/views/admin/update/addons.php:14 3863 msgid "Add-on" 3864 msgstr "" 3865 3866 #: app/views/admin/update/addons.php:15 3867 msgid "Description" 3868 msgstr "" 3869 3870 #: app/views/admin/update/addons.php:16 3871 #: app/views/admin/update/addons.php:54 3872 msgid "Install" 3873 msgstr "" 3874 3875 #: app/views/admin/update/addons.php:42 3876 msgid "(Update Available)" 3877 msgstr "" 3878 3879 #: app/views/admin/update/addons.php:50 3880 msgid "Installed & Active" 3881 msgstr "" 3882 3883 #: app/views/admin/update/addons.php:52 3884 msgid "Installed & Inactive" 3885 msgstr "" 3886 3887 #: app/views/admin/update/license.php:7 3888 msgid "Pretty Links Pro License" 3889 msgstr "" 3890 3891 #. translators: %1$s: link to pro site, %2$s: link to pro site login page 3892 #: app/views/admin/update/license.php:14 3893 msgid "You must have a License Key to enable automatic updates for Pretty Links Pro. If you don't have a License please go to %1$s to get one. If you do have a license you can login at %2$s to manage your licenses and site activations." 3894 msgstr "" 3895 3896 #: app/views/admin/update/license.php:25 3897 msgid "Enter Your Pretty Links Pro License Key:" 3898 msgstr "" 3899 3900 #: app/views/admin/update/license.php:32 3901 msgid "Activate License Key on %s" 3902 msgstr "" 3903 3904 #. translators: %1$s: open link tag, %2$s: close link tag 3905 #: app/views/admin/update/license.php:45 3906 msgid "It looks like you haven't %1$supgraded to Pretty Links Pro%2$s yet. Here are just a few things you could be doing with pro:" 3907 msgstr "" 3908 3909 #: app/views/admin/update/license.php:55 3910 msgid "Auto-replace keywords throughout your site with Pretty Links" 3911 msgstr "" 3912 3913 #: app/views/admin/update/license.php:56 3914 msgid "Protect your affiliate links by using Cloaked Redirects" 3915 msgstr "" 3916 3917 #: app/views/admin/update/license.php:57 3918 msgid "Redirect based on a visitor's location" 3919 msgstr "" 3920 3921 #: app/views/admin/update/license.php:58 3922 msgid "Auto-prettylink your Pages & Posts" 3923 msgstr "" 3924 3925 #: app/views/admin/update/license.php:59 3926 msgid "Find out what works and what doesn't by split testing your links" 3927 msgstr "" 3928 3929 #: app/views/admin/update/license.php:64 3930 msgid "Plus, upgrading is fast, easy and won't disrupt any of your existing links or data. And there's even a 14 day money back guarantee." 3931 msgstr "" 3932 3933 #: app/views/admin/update/license.php:68 3934 msgid "Upgrade to Pro today!" 3935 msgstr "" 3936 3937 #: app/views/admin/update/license.php:72 3938 msgid "Active License Key Information:" 3939 msgstr "" 3940 3941 #: app/views/admin/update/license.php:75 3942 msgid "License Key:" 3943 msgstr "" 3944 3945 #: app/views/admin/update/license.php:79 3946 msgid "Status:" 3947 msgstr "" 3948 3949 #: app/views/admin/update/license.php:80 3950 msgid "Active on %s" 3951 msgstr "" 3952 3953 #: app/views/admin/update/license.php:83 3954 msgid "Product:" 3955 msgstr "" 3956 3957 #: app/views/admin/update/license.php:87 3958 msgid "Activations:" 3959 msgstr "" 3960 3961 #. translators: %1$s: open b tag, %2$s: close b tag, %3$d: current activation count, %4$s: max activations 3962 #: app/views/admin/update/license.php:92 3963 msgid "%1$s%3$d of %4$s%2$s sites have been activated with this license key" 3964 msgstr "" 3965 3966 #: app/views/admin/update/license.php:102 3967 msgid "Are you sure? Pretty Links Pro will not be functional on %s if this License Key is deactivated." 3968 msgstr "" 3969 3970 #: app/views/admin/update/license.php:102 3971 msgid "Deactivate License Key on %s" 3972 msgstr "" 3973 3974 #: app/views/admin/update/license.php:105 3975 msgid "Upgrade plugin to Pro" 3976 msgstr "" 3977 3978 #: app/views/admin/update/license.php:110 3979 msgid "You're currently running version %s of Pretty Links Pro" 3980 msgstr "" 3981 3982 #: app/views/admin/update/addon_popup.php:4 3983 msgid "ACTION REQUIRED" 3984 msgstr "" 3985 3986 #: app/views/admin/update/addon_popup.php:5 3987 msgid "The %s features in your Pretty Link options have been moved from Pretty Link into a separate plugin." 3988 msgstr "" 3989 3990 #: app/views/admin/update/addon_popup.php:6 3991 msgid "Why you ask? Well, it's to streamline and increase the performance of Pretty Link for you." 3992 msgstr "" 3993 3994 #: app/views/admin/update/addon_popup.php:9 3995 msgid "And good for you, it looks like you've already got the %1$s Add-on installed. Just click the \"Activate %2$s Add-on\" button below and you'll get all these features back now." 3996 msgstr "" 3997 3998 #: app/views/admin/update/addon_popup.php:11 3999 msgid "Luckily it's easy to get these features back now. Just click the \"Install %s Add-on\" button below." 4000 msgstr "" 4001 4002 #. translators: %1$s: open link tag, %2$s: close link tag 4003 #: app/views/admin/update/addon_popup.php:16 4004 msgid "If you have problems with the auto-install please refer to %1$sthe user manual%2$s for manual install instructions." 4005 msgstr "" 4006 4007 #: app/views/admin/update/addon_popup.php:27 4008 msgid "Activate %s Add-on" 4009 msgstr "" 4010 4011 #: app/views/admin/update/addon_popup.php:29 4012 msgid "Install %s Add-on" 4013 msgstr "" 4014 4015 #: app/views/admin/update/addon_popup.php:31 4016 msgid "Don't Show This Message Again" 4017 msgstr "" 4018 4019 #: app/views/admin/update/ui.php:3 4020 msgid "Activate Pretty Links Pro" 4021 msgstr "" 4022 4023 #: app/views/admin/update/ui.php:16 4024 msgid "License" 4025 msgstr "" 4026 4027 #: app/views/admin/update/ui.php:17 4028 msgid "Add-Ons" 4029 msgstr "" 4030 4031 #: app/views/admin/update/edge_updates.php:4 4032 msgid "Include Pretty Links Pro edge (development) releases in automatic updates (not recommended for production websites)" 4033 msgstr "" 4034 4035 #: app/views/admin/update/edge_updates.php:4 4036 #: app/views/widgets/widget.php:22 4037 msgid "Loading..." 4038 msgstr "" 4039 4040 #: app/views/admin/update/activation_warning.php:7 4041 msgid "Error with PRETTYLINK_LICENSE_KEY: %s" 4042 msgstr "" 4043 4044 #: app/views/admin/update/activation_warning.php:14 4045 #: app/views/admin/update/activation_warning.php:41 4046 msgid "Pretty Links Pro isn't able to get critical automatic updates" 4047 msgstr "" 4048 4049 #: app/views/admin/update/activation_warning.php:15 4050 msgid "It looks like you used to have Pretty Links Pro activated with a username and password but now you need a license key to activate it." 4051 msgstr "" 4052 4053 #. translators: %1$s: open link tag, %2$s: close link tag 4054 #: app/views/admin/update/activation_warning.php:21 4055 msgid "You can get your license key by logging in at %1$sPrettyLinkPro.com.%2$s" 4056 msgstr "" 4057 4058 #. translators: %1$s: open link tag, %2$s: close link tag 4059 #: app/views/admin/update/activation_warning.php:32 4060 msgid "After you paste your license key on the %1$s\"Pretty Link\" -> \"Activate Pro\" admin page,%2$s you'll start getting updates again." 4061 msgstr "" 4062 4063 #. translators: %1$s: open link tag, %2$s: close link tag 4064 #: app/views/admin/update/activation_warning.php:47 4065 msgid "You can retrieve or purchase a license key at %1$sPrettyLinks.com%2$s to enable automatic updates today." 4066 msgstr "" 4067 4068 #. translators: %1$s: open link tag, %2$s: close link tag 4069 #: app/views/admin/update/activation_warning.php:58 4070 msgid "After you paste your license key on the %1$s\"Pretty Links\" -> \"Activate Pro\" admin page,%2$s you'll start getting automatic updates." 4071 msgstr "" 4072 4073 #: app/views/admin/onboarding/welcome.php:4 4074 #: app/views/admin/onboarding/welcome.php:7 4075 msgid "Welcome to Pretty Links!" 4076 msgstr "" 4077 4078 #: app/views/admin/onboarding/welcome.php:10 4079 msgid "Congratulations, you've just installed the most powerful link management platform for WordPress on Earth!" 4080 msgstr "" 4081 4082 #: app/views/admin/onboarding/welcome.php:11 4083 msgid "With Pretty Links, you'll no longer need to manage links from a spreadsheet and you'll be able to maximize the visibility of your links - these benefits (and more) will make it possible to make more money from your content like never before!" 4084 msgstr "" 4085 4086 #: app/views/admin/onboarding/welcome.php:17 4087 msgid "Getting Started" 4088 msgstr "" 4089 4090 #: app/views/admin/onboarding/welcome.php:18 4091 msgid "Start by creating your first Pretty Link:" 4092 msgstr "" 4093 4094 #: app/views/admin/onboarding/welcome.php:24 4095 msgid "Click \"Add New Link\"" 4096 msgstr "" 4097 4098 #: app/views/admin/onboarding/welcome.php:25 4099 msgid "1. Click \"Add New Link\"" 4100 msgstr "" 4101 4102 #: app/views/admin/onboarding/welcome.php:28 4103 msgid "Enter the URL of your Affiliate Link" 4104 msgstr "" 4105 4106 #: app/views/admin/onboarding/welcome.php:29 4107 msgid "2. Enter the URL of your Affiliate Link" 4108 msgstr "" 4109 4110 #: app/views/admin/onboarding/welcome.php:32 4111 msgid "Customize your Pretty Link Slug" 4112 msgstr "" 4113 4114 #: app/views/admin/onboarding/welcome.php:33 4115 msgid "3. Customize your Pretty Link Slug" 4116 msgstr "" 4117 4118 #: app/views/admin/onboarding/welcome.php:36 4119 msgid "Click \"Update\"" 4120 msgstr "" 4121 4122 #: app/views/admin/onboarding/welcome.php:37 4123 msgid "4. Click \"Update\"" 4124 msgstr "" 4125 4126 #: app/views/admin/onboarding/welcome.php:40 4127 msgid "Copy the Pretty Link URL" 4128 msgstr "" 4129 4130 #: app/views/admin/onboarding/welcome.php:41 4131 msgid "5. Copy the Pretty Link URL" 4132 msgstr "" 4133 4134 #: app/views/admin/onboarding/welcome.php:45 4135 msgid "Wasn't that easy? Now, you can use this link wherever you want!" 4136 msgstr "" 4137 4138 #: app/views/admin/onboarding/welcome.php:53 4139 msgid "The Power of Pretty Links Pro" 4140 msgstr "" 4141 4142 #: app/views/admin/onboarding/welcome.php:54 4143 msgid "There are many reasons that premium users of Pretty Links are able to take their business to the next level:" 4144 msgstr "" 4145 4146 #: app/views/admin/onboarding/welcome.php:59 4147 #: app/views/admin/onboarding/welcome.php:64 4148 msgid "Automated, Site-Wide Link Placement (Keyword Replacement)" 4149 msgstr "" 4150 4151 #: app/views/admin/onboarding/welcome.php:60 4152 msgid "Imagine if you never had to hand-edit links, copy and paste from a spreadsheet, or actively have to keep up with you links ever again. Well that time has come! Now with Pretty Links, all you have to do is create your links and let Pretty Links do the rest!" 4153 msgstr "" 4154 4155 #: app/views/admin/onboarding/welcome.php:61 4156 msgid "Pretty Links will scan your content for the keywords or URLs that you want to target and will replace them with Pretty Links automatically! This will save you tons of time so you can focus on growing your business!" 4157 msgstr "" 4158 4159 #: app/views/admin/onboarding/welcome.php:70 4160 #: app/views/admin/onboarding/welcome.php:73 4161 msgid "Categories & Tags" 4162 msgstr "" 4163 4164 #: app/views/admin/onboarding/welcome.php:74 4165 msgid "When you are dealing with a large number of links, it can be easy to be overwhelmed and confused by which links to you planned to use where. It's now easier than ever to organize your links and group them any way that you like for ultimate productivity and monetization!" 4166 msgstr "" 4167 4168 #: app/views/admin/onboarding/welcome.php:80 4169 #: app/views/admin/onboarding/welcome.php:85 4170 msgid "Advanced Redirect Types" 4171 msgstr "" 4172 4173 #: app/views/admin/onboarding/welcome.php:81 4174 msgid "Lite users can take advantage of 301 & 302 server side redirects but our pro users can also redirect with cloaking, JavaScript, Meta-refresh and more." 4175 msgstr "" 4176 4177 #: app/views/admin/onboarding/welcome.php:82 4178 msgid "So if you have social media links, a landing page, or a new page or post you'd like to redirect your customers to, this feature will definitely come in handy!" 4179 msgstr "" 4180 4181 #: app/views/admin/onboarding/welcome.php:91 4182 #: app/views/admin/onboarding/welcome.php:94 4183 msgid "Dynamic Redirect Types" 4184 msgstr "" 4185 4186 #: app/views/admin/onboarding/welcome.php:95 4187 msgid "Would you like your Pretty Link to redirect somewhere custom depending on what country your user is in, device they're using, time they're clicking the link or just randomly? Our pro users can do this easily with our Dynamic Redirections!" 4188 msgstr "" 4189 4190 #: app/views/admin/onboarding/welcome.php:96 4191 msgid "This feature is excellent if you are running a time-sensitive sales, want to create custom content for you customers, create stellar landing pages for customers in different countries!" 4192 msgstr "" 4193 4194 #: app/views/admin/onboarding/welcome.php:102 4195 #: app/views/admin/onboarding/welcome.php:106 4196 msgid "Import and Export Links" 4197 msgstr "" 4198 4199 #: app/views/admin/onboarding/welcome.php:103 4200 msgid "Export your links to a spreadsheet or import them en masse - our pro users can do this with ease. Simply download your spreadsheet, upload to WordPress, and your links are automatically added to Pretty Links!" 4201 msgstr "" 4202 4203 #: app/views/admin/onboarding/welcome.php:111 4204 msgid "The list goes on and on" 4205 msgstr "" 4206 4207 #: app/views/admin/onboarding/welcome.php:112 4208 msgid "Our premium editions of Pretty Links are a HUGE upgrade from Lite. Don’t miss out on our critical PRO benefits!" 4209 msgstr "" 4210 4211 #: app/views/admin/onboarding/welcome.php:117 4212 msgid "Upgrade NOW and get 50% off of your subscription!!!" 4213 msgstr "" 4214 4215 #: app/views/admin/onboarding/update.php:4 4216 #: app/views/admin/onboarding/update.php:7 4217 msgid "Get Some Quick Wins with Pretty Links 3.0!" 4218 msgstr "" 4219 4220 #. translators: %1$s: open strong tag, %2$s: close strong tag 4221 #: app/views/admin/onboarding/update.php:14 4222 msgid "We hope you know that here at Pretty Links, we work every day to deliver amazing tools for business owners to help them %1$swin more%2$s. We want our customers to make more money, easier through superior affiliate link strategy and management." 4223 msgstr "" 4224 4225 #. translators: %1$s: open strong tag, %2$s: close strong tag 4226 #: app/views/admin/onboarding/update.php:25 4227 msgid "That's why today, we're excited to announce that we're rolling out a major, new release. This release won't deliver any huge, new features but rather a set of incremental features & fixes that will %1$sinstantly give you some well deserved quick wins%2$s in your business." 4228 msgstr "" 4229 4230 #. translators: %1$s: open strong tag, %2$s: close strong tag 4231 #: app/views/admin/onboarding/update.php:36 4232 msgid "That's why we're calling Pretty Links 3.0 - %1$sQuick Wins!%2$s" 4233 msgstr "" 4234 4235 #: app/views/admin/onboarding/update.php:43 4236 msgid "What Changes Can You Expect, Exactly?" 4237 msgstr "" 4238 4239 #: app/views/admin/onboarding/update.php:45 4240 msgid "Check out these solid improvements that will make your experience with Pretty Links better in almost every way:" 4241 msgstr "" 4242 4243 #. translators: %1$s: open strong tag, %2$s: close strong tag 4244 #: app/views/admin/onboarding/update.php:53 4245 msgid "%1$sAn all-new Link Editor%2$s - We've completely overhauled our link editing experience. Our new, power-packed link editor will make creating and managing your affiliate links easier than ever before!" 4246 msgstr "" 4247 4248 #: app/views/admin/onboarding/update.php:61 4249 #: app/views/admin/onboarding/update.php:62 4250 #: app/views/admin/onboarding/update.php:66 4251 #: app/views/admin/onboarding/update.php:67 4252 msgid "An all-new Link Editor" 4253 msgstr "" 4254 4255 #. translators: %1$s: open strong tag, %2$s: close strong tag 4256 #: app/views/admin/onboarding/update.php:77 4257 msgid "%1$sAll new Link Listing%2$s - Gone is the clumsy, old Link Listing feature! You’ll now be able to send links to the \"Trash,\" customize what columns you see in your listing with \"Screen Options\" and change the number of rows displayed." 4258 msgstr "" 4259 4260 #: app/views/admin/onboarding/update.php:85 4261 #: app/views/admin/onboarding/update.php:86 4262 msgid "All new Link Listing" 4263 msgstr "" 4264 4265 #. translators: %1$s: open strong tag, %2$s: close strong tag 4266 #: app/views/admin/onboarding/update.php:96 4267 msgid "%1$sCustomizable Links Tags / Categories (Pro Only)%2$s - Once you upgrade to Quick Wins, you'll be able to categorize and tag your pretty links! This is a long-requested feature that will help you organize your links and group them any way that you'd like to for ultimate productivity and monetization!" 4268 msgstr "" 4269 4270 #: app/views/admin/onboarding/update.php:104 4271 #: app/views/admin/onboarding/update.php:105 4272 msgid "Customizable Links Tags / Categories (Pro Only)" 4273 msgstr "" 4274 4275 #. translators: %1$s: open strong tag, %2$s: close strong tag 4276 #: app/views/admin/onboarding/update.php:115 4277 msgid "%1$sGutenberg Block Link Integration%2$s - You can now use your Pretty Links directly inside the Gutenberg Paragraph Block. All you have to do is select the \"Pretty Link\" button from your Paragraph Block's formatting bar then you can search and insert Pretty Links instantly!" 4278 msgstr "" 4279 4280 #: app/views/admin/onboarding/update.php:123 4281 #: app/views/admin/onboarding/update.php:124 4282 msgid "Gutenberg Block Link Integration" 4283 msgstr "" 4284 4285 #: app/views/admin/onboarding/update.php:133 4286 msgid "Tons of Fixes and Enhancements" 4287 msgstr "" 4288 4289 #: app/views/admin/onboarding/update.php:135 4290 msgid "In addition to these streamlined, new features we’ve made hundreds of enhancements and numerous small fixes. Pretty Links Quick Wins is going to make your link experience easier, faster, more secure and more capable than ever before!" 4291 msgstr "" 4292 4293 #. translators: %1$s: open strong tag, %2$s: close strong tag 4294 #: app/views/admin/onboarding/update.php:141 4295 msgid "We're excited for you to start winning more today with %1$sPretty Link Quick Wins!%2$s" 4296 msgstr "" 4297 4298 #: app/views/options/form.php:3 4299 #: app/controllers/PrliAppController.php:125 4300 msgid "Options" 4301 msgstr "" 4302 4303 #: app/views/options/form.php:4 4304 msgid "User Manual" 4305 msgstr "" 4306 4307 #. translators: %1$s: open strong tag, %2$s: close strong tag 4308 #: app/views/options/form.php:17 4309 msgid "%1$sWordPress Must be Configured:%2$s Pretty Links won't work until you select a Permalink Structure other than 'Default'" 4310 msgstr "" 4311 4312 #: app/views/options/form.php:22 4313 msgid "Permalink Settings" 4314 msgstr "" 4315 4316 #: app/views/options/form.php:49 4317 msgid "General" 4318 msgstr "" 4319 4320 #: app/views/options/form.php:52 4321 msgid "Reporting" 4322 msgstr "" 4323 4324 #: app/views/options/form.php:53 4325 msgid "Replacements" 4326 msgstr "" 4327 4328 #: app/views/options/form.php:54 4329 msgid "Auto-Create Links" 4330 msgstr "" 4331 4332 #: app/views/options/form.php:56 4333 msgid "Social" 4334 msgstr "" 4335 4336 #: app/views/options/form.php:57 4337 msgid "Public" 4338 msgstr "" 4339 4340 #: app/views/options/form.php:64 4341 msgid "General Options" 4342 msgstr "" 4343 4344 #: app/views/options/form.php:70 4345 msgid "Default Link Options" 4346 msgstr "" 4347 4348 #: app/views/options/form.php:75 4349 msgid "Redirection" 4350 msgstr "" 4351 4352 #: app/views/options/form.php:78 4353 msgid "Select the type of redirection you want your newly created links to have." 4354 msgstr "" 4355 4356 #: app/views/options/form.php:95 4357 #: app/views/options/form.php:97 4358 msgid "Enable Tracking" 4359 msgstr "" 4360 4361 #: app/views/options/form.php:98 4362 msgid "Default all new links to be tracked." 4363 msgstr "" 4364 4365 #: app/views/options/form.php:107 4366 msgid "Enable No Follow" 4367 msgstr "" 4368 4369 #: app/views/options/form.php:109 4370 msgid "Add No Follow" 4371 msgstr "" 4372 4373 #: app/views/options/form.php:110 4374 msgid "Add the 'nofollow' attribute by default to new links." 4375 msgstr "" 4376 4377 #: app/views/options/form.php:119 4378 msgid "Enable Permalink Fix" 4379 msgstr "" 4380 4381 #: app/views/options/form.php:121 4382 msgid "Use fix for index.php Permalink Structure" 4383 msgstr "" 4384 4385 #: app/views/options/form.php:122 4386 msgid "This option should ONLY be checked if you have elements in your permalink structure that must be present in any link on your site. For example, some WordPress installs don't have the benefit of full rewrite capabilities and in this case you'd need an index.php included in each link (http://example.com/index.php/mycoolslug instead of http://example.com/mycoolslug). If this is the case for you then check this option but the vast majority of users will want to keep this unchecked." 4387 msgstr "" 4388 4389 #: app/views/options/form.php:180 4390 msgid "Enable %sQR Codes%s" 4391 msgstr "" 4392 4393 #: app/views/options/form.php:220 4394 msgid "Reporting Options" 4395 msgstr "" 4396 4397 #: app/views/options/form.php:225 4398 #: app/views/options/form.php:227 4399 msgid "Tracking Style" 4400 msgstr "" 4401 4402 #: app/views/options/form.php:228 4403 msgid "Changing your tracking style can affect the accuracy of your existing statistics. Extended mode must be used for Conversion reporting." 4404 msgstr "" 4405 4406 #: app/views/options/form.php:232 4407 msgid "Normal Tracking" 4408 msgstr "" 4409 4410 #: app/views/options/form.php:233 4411 msgid "Extended Tracking (more stats / slower performance)" 4412 msgstr "" 4413 4414 #: app/views/options/form.php:234 4415 msgid "Simple Click Count Tracking (less stats / faster performance)" 4416 msgstr "" 4417 4418 #: app/views/options/form.php:240 4419 msgid "Excluded IP Addresses:" 4420 msgstr "" 4421 4422 #: app/views/options/form.php:242 4423 msgid "Excluded IP Addresses" 4424 msgstr "" 4425 4426 #: app/views/options/form.php:243 4427 msgid "Enter IP Addresses or IP Ranges you want to exclude from your Click data and Stats. Each IP Address should be separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*" 4428 msgstr "" 4429 4430 #: app/views/options/form.php:246 4431 msgid "FYI, your current IP address is %s." 4432 msgstr "" 4433 4434 #: app/views/options/form.php:257 4435 msgid "Auto-Trim Clicks" 4436 msgstr "" 4437 4438 #: app/views/options/form.php:259 4439 msgid "Automatically Trim Clicks" 4440 msgstr "" 4441 4442 #: app/views/options/form.php:260 4443 msgid "Will automatically delete all hits older than 90 days. We strongly recommend doing this to keep your database performance up. This will permanently delete this click data, and is not undo-able. " 4444 msgstr "" 4445 4446 #: app/views/options/form.php:269 4447 #: app/views/options/form.php:271 4448 msgid "Filter Robots" 4449 msgstr "" 4450 4451 #: app/views/options/form.php:272 4452 msgid "Filter known Robots and unidentifiable browser clients from your click data, stats and reports. Works best if Tracking Style above is set to 'Extended Tracking'." 4453 msgstr "" 4454 4455 #: app/views/options/form.php:288 4456 #: app/views/options/form.php:290 4457 msgid "Whitelist IP Addresses" 4458 msgstr "" 4459 4460 #: app/views/options/form.php:291 4461 msgid "Enter IP Addresses or IP Ranges you want to always include in your Click data and Stats even if they are flagged as robots. Each IP Address should be separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*" 4462 msgstr "" 4463 4464 #: app/views/options/form.php:556 4465 msgid "Post Shortlinks" 4466 msgstr "" 4467 4468 #: app/views/options/form.php:559 4469 msgid "Create Pretty Links for Posts" 4470 msgstr "" 4471 4472 #: app/views/options/form.php:560 4473 msgid "Automatically Create a Pretty Link for each of your published Posts" 4474 msgstr "" 4475 4476 #: app/views/options/form.php:573 4477 msgid "Page Shortlinks" 4478 msgstr "" 4479 4480 #: app/views/options/form.php:576 4481 msgid "Create Pretty Links for Pages" 4482 msgstr "" 4483 4484 #: app/views/options/form.php:577 4485 msgid "Automatically Create a Pretty Link for each of your published Pages" 4486 msgstr "" 4487 4488 #: app/views/groups/edit.php:10 4489 msgid "Edit Group" 4490 msgstr "" 4491 4492 #: app/views/groups/edit.php:23 4493 #: app/views/groups/new.php:24 4494 msgid "This is how you'll identify your Group." 4495 msgstr "" 4496 4497 #: app/views/groups/edit.php:26 4498 #: app/views/groups/new.php:27 4499 msgid "Description:" 4500 msgstr "" 4501 4502 #: app/views/groups/edit.php:28 4503 #: app/views/groups/new.php:29 4504 msgid "A Description of this group." 4505 msgstr "" 4506 4507 #: app/views/groups/edit.php:31 4508 #: app/views/groups/new.php:32 4509 msgid "Links:" 4510 msgstr "" 4511 4512 #: app/views/groups/edit.php:37 4513 #: app/views/groups/new.php:38 4514 msgid "Current Group" 4515 msgstr "" 4516 4517 #. translators: %1$s: open strong tag, %2$s close strong tag 4518 #: app/views/groups/edit.php:61 4519 #: app/views/groups/new.php:60 4520 msgid "Select some links for this group. %1$sNote: each link can only be in one group at a time.%2$s" 4521 msgstr "" 4522 4523 #: app/views/groups/list.php:6 4524 msgid "Groups" 4525 msgstr "" 4526 4527 #: app/views/groups/list.php:7 4528 msgid "Add Group" 4529 msgstr "" 4530 4531 #: app/views/groups/list.php:62 4532 msgid "No Pretty Link Groups were found" 4533 msgstr "" 4534 4535 #: app/views/groups/list.php:79 4536 msgid "Are you sure you want to delete your %s Pretty Link Group?" 4537 msgstr "" 4538 4539 #: app/views/groups/list.php:80 4540 #: app/views/groups/list.php:84 4541 msgid "View links in %s" 4542 msgstr "" 4543 4544 #: app/views/groups/list.php:81 4545 msgid "View hits in %s" 4546 msgstr "" 4547 4548 #: app/views/groups/new.php:10 4549 msgid "New Group" 4550 msgstr "" 4551 4552 #: app/views/tools/form.php:3 4553 #: app/controllers/PrliAppController.php:122 62 4554 msgid "Tools" 63 4555 msgstr "" 64 4556 65 #: app/controllers/PrliAppController.php:91 66 msgid "Pretty Links | Options" 67 msgstr "" 68 69 #: app/controllers/PrliAppController.php:92 app/views/options/form.php:3 70 msgid "Options" 71 msgstr "" 72 73 #: app/controllers/PrliAppController.php:99 74 #: app/controllers/PrliAppController.php:102 75 msgid "Activate Pro" 76 msgstr "" 77 78 #: app/controllers/PrliAppController.php:105 79 #: app/controllers/PrliAppController.php:125 80 #: app/views/admin/update/license.php:27 app/views/shared/nav.php:9 81 msgid "Upgrade to Pro" 82 msgstr "" 83 84 #: app/controllers/PrliAppController.php:116 85 #: app/controllers/PrliAppController.php:122 86 #: app/controllers/PrliAppController.php:127 87 msgid "Docs" 88 msgstr "" 89 90 #: app/controllers/PrliAppController.php:117 91 msgid "Activate" 92 msgstr "" 93 94 #: app/controllers/PrliAppController.php:120 95 #: app/controllers/PrliAppController.php:126 96 msgid "Activate Pro License" 97 msgstr "" 98 99 #: app/controllers/PrliAppController.php:121 100 msgid "Buy" 101 msgstr "" 102 103 #: app/controllers/PrliAppController.php:284 104 msgid "" 105 "You're almost done!<br/>%1$sFinish your Re-Install of Pretty Links Pro%2$s" 106 msgstr "" 107 108 #: app/controllers/PrliAppController.php:291 109 msgid "Pretty Links Pro Successfully Uninstalled." 110 msgstr "" 111 112 #: app/controllers/PrliAppController.php:352 113 msgid "Pretty Link Quick Add" 114 msgstr "" 115 116 #: app/controllers/PrliAppController.php:391 117 msgid "" 118 "Your Pretty Links Pro installation isn't quite complete yet. " 119 "%1$sAutomatically Upgrade to Enable Pretty Links Pro%2$s" 120 msgstr "" 121 122 #: app/controllers/PrliAppController.php:412 123 msgid "" 124 "Your Pretty Links Pro installation isn't quite complete yet.<br/>" 125 "%1$sAutomatically Upgrade to Enable Pretty Links Pro%2$s" 4557 #: app/views/tools/form.php:18 4558 #: app/views/tools/form.php:25 4559 msgid "Bookmarklet" 4560 msgstr "" 4561 4562 #: app/views/tools/form.php:19 4563 #: app/views/tools/form.php:70 4564 msgid "Trim Clicks" 4565 msgstr "" 4566 4567 #: app/views/tools/form.php:28 4568 msgid "Install Pretty Link Bookmarklet" 4569 msgstr "" 4570 4571 #. translators: %1$s: open link tag, %2$s close link tag 4572 #: app/views/tools/form.php:31 4573 msgid "Just drag this \"Get PrettyLink\" link to your toolbar to install the bookmarklet. As you browse the web, you can just click this bookmarklet to create a pretty link from the current url you're looking at. %1$s(more help)%2$s" 4574 msgstr "" 4575 4576 #: app/views/tools/form.php:36 4577 msgid "Show iPhone Bookmarklet Instructions" 4578 msgstr "" 4579 4580 #. translators: %1$s: open strong tag, %2$s close strong tag 4581 #: app/views/tools/form.php:43 4582 msgid "%1$sNote:%2$s iPhone users can install this bookmarklet in their Safari to create Pretty Links with the following steps:" 4583 msgstr "" 4584 4585 #: app/views/tools/form.php:49 4586 msgid "Copy this text:" 4587 msgstr "" 4588 4589 #: app/views/tools/form.php:50 4590 msgid "Tap the + button at the bottom of the screen" 4591 msgstr "" 4592 4593 #: app/views/tools/form.php:51 4594 msgid "Choose to share the page, then click on \"Bookmark\". We recommend saving it in your Favorites folder. Rename your bookmark to \"Get PrettyLink\" (or whatever you want) and then \"Save\"" 4595 msgstr "" 4596 4597 #: app/views/tools/form.php:52 4598 msgid "Navigate through your Bookmarks until you find the new bookmark and click \"Edit\"" 4599 msgstr "" 4600 4601 #: app/views/tools/form.php:53 4602 msgid "Delete all the text from the address" 4603 msgstr "" 4604 4605 #: app/views/tools/form.php:54 4606 msgid "Paste the text you copied in Step 1 into the address field" 4607 msgstr "" 4608 4609 #. translators: %1$s: open strong tag, %2$s close strong tag 4610 #: app/views/tools/form.php:59 4611 msgid "To save the changes hit \"Bookmarks\" and %1$syou're done!%2$s" 4612 msgstr "" 4613 4614 #: app/views/tools/form.php:64 4615 msgid "Now when you find a page you want to save off as a Pretty Link, just click the \"Bookmarks\" icon at the bottom of the screen and select your \"Get PrettyLink\" bookmarklet." 4616 msgstr "" 4617 4618 #: app/views/tools/form.php:72 4619 msgid "Pretty Link is already automatically trimming Clicks older than 90 days. Although not necessary, you can still use the buttons below to force click trimming." 4620 msgstr "" 4621 4622 #: app/views/tools/form.php:75 4623 msgid "***WARNING*** If you click OK you will delete ALL of the Click data that is older than 30 days. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete this data because there is no going back!" 4624 msgstr "" 4625 4626 #: app/views/tools/form.php:75 4627 msgid "Delete Clicks older than 30 days" 4628 msgstr "" 4629 4630 #: app/views/tools/form.php:77 4631 msgid "Clear clicks 30 days or older" 4632 msgstr "" 4633 4634 #: app/views/tools/form.php:78 4635 msgid "This will clear all clicks in your database that are older than 30 days." 4636 msgstr "" 4637 4638 #: app/views/tools/form.php:80 4639 msgid "***WARNING*** If you click OK you will delete ALL of the Click data that is older than 90 days. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete this data because there is no going back!" 4640 msgstr "" 4641 4642 #: app/views/tools/form.php:80 4643 msgid "Delete Clicks older than 90 days" 4644 msgstr "" 4645 4646 #: app/views/tools/form.php:82 4647 msgid "Clear clicks 90 days or older" 4648 msgstr "" 4649 4650 #: app/views/tools/form.php:83 4651 msgid "This will clear all clicks in your database that are older than 90 days." 4652 msgstr "" 4653 4654 #: app/views/tools/form.php:87 4655 msgid "***WARNING*** If you click OK you will delete ALL of the Click data in your Database. Your data will be gone forever -- no way to retreive it. Do not click OK unless you are absolutely sure you want to delete all your data because there is no going back!" 4656 msgstr "" 4657 4658 #: app/views/tools/form.php:87 4659 msgid "Delete All Clicks" 4660 msgstr "" 4661 4662 #: app/views/tools/form.php:89 4663 msgid "Clear all clicks" 4664 msgstr "" 4665 4666 #: app/views/tools/form.php:90 4667 msgid "Seriously, only click this link if you want to delete all the Click data in your database." 4668 msgstr "" 4669 4670 #: app/views/clicks/list.php:6 4671 #: app/views/clicks/csv_download.php:4 4672 msgid "For %s" 4673 msgstr "" 4674 4675 #: app/views/clicks/list.php:21 4676 msgid "Back to Clicks" 4677 msgstr "" 4678 4679 #: app/views/clicks/list.php:30 4680 msgid "Type:" 4681 msgstr "" 4682 4683 #: app/views/clicks/list.php:39 4684 msgid "to" 4685 msgstr "" 4686 4687 #: app/views/clicks/list.php:62 4688 msgid "Search Clicks" 4689 msgstr "" 4690 4691 #: app/views/clicks/list.php:73 4692 #: app/views/clicks/list.php:171 4693 msgid "Browser" 4694 msgstr "" 4695 4696 #: app/views/clicks/list.php:75 4697 #: app/views/clicks/list.php:172 4698 msgid "OS" 4699 msgstr "" 4700 4701 #: app/views/clicks/list.php:79 4702 #: app/views/clicks/list.php:174 4703 msgid "IP" 4704 msgstr "" 4705 4706 #: app/views/clicks/list.php:83 4707 #: app/views/clicks/list.php:176 4708 msgid "Visitor" 4709 msgstr "" 4710 4711 #: app/views/clicks/list.php:87 4712 #: app/views/clicks/list.php:178 4713 msgid "Timestamp" 4714 msgstr "" 4715 4716 #: app/views/clicks/list.php:91 4717 #: app/views/clicks/list.php:180 4718 msgid "Host" 4719 msgstr "" 4720 4721 #: app/views/clicks/list.php:95 4722 #: app/views/clicks/list.php:182 4723 msgid "URI" 4724 msgstr "" 4725 4726 #: app/views/clicks/list.php:98 4727 #: app/views/clicks/list.php:183 4728 msgid "Referrer" 4729 msgstr "" 4730 4731 #: app/views/clicks/list.php:111 4732 msgid "No Clicks have been recorded yet" 4733 msgstr "" 4734 4735 #: app/views/clicks/list.php:147 4736 msgid "View All Activity for IP Address: %s" 4737 msgstr "" 4738 4739 #: app/views/clicks/list.php:150 4740 msgid "View All Activity for Visitor: %s" 4741 msgstr "" 4742 4743 #: app/views/clicks/list.php:190 4744 msgid "Download CSV" 4745 msgstr "" 4746 4747 #: app/views/clicks/csv_download.php:3 4748 msgid "Download Clicks" 4749 msgstr "" 4750 4751 #: app/views/clicks/csv_download.php:6 4752 msgid "Click Reports:" 4753 msgstr "" 4754 4755 #: app/views/clicks/csv_download.php:7 4756 msgid "All clicks on %s" 4757 msgstr "" 4758 4759 #: app/views/clicks/csv_download.php:24 4760 msgid "Clicks %d-%d (%d Records)" 4761 msgstr "" 4762 4763 #: app/controllers/PrliUpdateController.php:72 4764 msgid "Why you creepin'?" 4765 msgstr "" 4766 4767 #: app/controllers/PrliUpdateController.php:305 4768 msgid "Check for Update" 4769 msgstr "" 4770 4771 #: app/controllers/PrliUpdateController.php:374 4772 msgid "You had an HTTP error connecting to Caseproof's Mothership API" 4773 msgstr "" 4774 4775 #: app/controllers/PrliUpdateController.php:386 4776 msgid "Your License Key was invalid" 4777 msgstr "" 4778 4779 #: app/controllers/PrliUpdateController.php:412 4780 msgid "You do not have access." 4781 msgstr "" 4782 4783 #: app/controllers/PrliUpdateController.php:416 4784 msgid "Edge updates couldn't be updated." 4785 msgstr "" 4786 4787 #: app/controllers/PrliToolsController.php:94 4788 msgid "Click Database was Cleared." 4789 msgstr "" 4790 4791 #: app/controllers/PrliToolsController.php:100 4792 msgid "Clicks older than %1$d days (%2$d Clicks) were deleted" 4793 msgstr "" 4794 4795 #: app/controllers/PrliToolsController.php:103 4796 msgid "No clicks older than %1$d days were found, so nothing was deleted" 126 4797 msgstr "" 127 4798 … … 134 4805 msgstr "" 135 4806 136 #: app/controllers/PrliClicksController.php:100 137 msgid "Group: " 138 msgstr "" 139 140 #: app/controllers/PrliClicksController.php:105 4807 #: app/controllers/PrliClicksController.php:99 141 4808 msgid "All Links" 142 msgstr ""143 144 #: app/controllers/PrliGroupsController.php:40145 msgid "Cannot add group because current user is not authorized."146 msgstr ""147 148 #: app/controllers/PrliGroupsController.php:45149 msgid "An unknown error occurred when creating your group."150 msgstr ""151 152 #: app/controllers/PrliGroupsController.php:54153 msgid "Group Created"154 msgstr ""155 156 #: app/controllers/PrliGroupsController.php:61157 msgid "A name must be specified for your new group name"158 msgstr ""159 160 #: app/controllers/PrliGroupsController.php:66161 msgid "Cannot add group because security nonce failed"162 msgstr ""163 164 #: app/controllers/PrliGroupsController.php:76165 msgid "Create a group and use it to organize your Pretty Links."166 msgstr ""167 168 #: app/controllers/PrliGroupsController.php:100169 msgid "Your Pretty Link Group was Successfully Created"170 msgstr ""171 172 #: app/controllers/PrliGroupsController.php:130173 msgid "Your Pretty Link Group was Successfully Updated"174 msgstr ""175 176 #: app/controllers/PrliGroupsController.php:139177 msgid "Your Pretty Link Group was Successfully Deleted"178 msgstr ""179 180 #: app/controllers/PrliLinksController.php:53181 msgid "Links in Group: "182 msgstr ""183 184 #: app/controllers/PrliLinksController.php:98185 #: app/controllers/PrliLinksController.php:124186 msgid "Your Pretty Link was Successfully Created"187 msgstr ""188 189 #: app/controllers/PrliLinksController.php:163190 msgid "Your Pretty Link was Successfully Updated"191 msgstr ""192 193 #: app/controllers/PrliLinksController.php:178194 msgid "Your links were updated successfully"195 msgstr ""196 197 #: app/controllers/PrliLinksController.php:195198 #: app/controllers/PrliLinksController.php:245199 msgid "You are unauthorized to view this page."200 msgstr ""201 202 #: app/controllers/PrliLinksController.php:207203 msgid "Your Pretty Link was Successfully Reset"204 msgstr ""205 206 #: app/controllers/PrliLinksController.php:219207 msgid "Your Pretty Link was Successfully Destroyed"208 msgstr ""209 210 #: app/controllers/PrliLinksController.php:232211 msgid "Your links were deleted successfully"212 msgstr ""213 214 #: app/controllers/PrliLinksController.php:523215 msgid "Pretty Link Cleanup Visitor Locks"216 msgstr ""217 218 #: app/controllers/PrliLocalApiController.php:101219 #: app/controllers/PrliLocalApiController.php:160220 msgid "An error prevented your Pretty Link from being created"221 msgstr ""222 223 #: app/controllers/PrliLocalApiController.php:125224 msgid "Pretty Link ID must be set for successful update."225 msgstr ""226 227 #: app/controllers/PrliOptionsController.php:61228 msgid "Options saved."229 msgstr ""230 231 #: app/controllers/PrliOptionsController.php:75232 msgid ""233 "Excluded IP Addresses must be a comma separated list of IPv4 or IPv6 "234 "addresses or ranges."235 msgstr ""236 237 #: app/controllers/PrliOptionsController.php:79238 msgid ""239 "Whitlist IP Addresses must be a comma separated list of IPv4 or IPv6 "240 "addresses or ranges."241 msgstr ""242 243 #: app/controllers/PrliPopupController.php:62244 msgid "An unknown error occurred."245 msgstr ""246 247 #: app/controllers/PrliPopupController.php:89248 msgid "Forbidden"249 msgstr ""250 251 #: app/controllers/PrliPopupController.php:93252 msgid "Must specify a popup"253 msgstr ""254 255 #: app/controllers/PrliPopupController.php:99256 msgid "Invalid popup"257 msgstr ""258 259 #: app/controllers/PrliPopupController.php:104260 msgid "The popup was successfully delayed"261 msgstr ""262 263 #: app/controllers/PrliPopupController.php:108264 msgid "The popup was successfully stopped"265 msgstr ""266 267 #: app/controllers/PrliToolsController.php:89268 msgid "Click Database was Cleared."269 msgstr ""270 271 #: app/controllers/PrliToolsController.php:95272 msgid "Clicks older than %1$d days (%2$d Clicks) were deleted"273 msgstr ""274 275 #: app/controllers/PrliToolsController.php:98276 msgid "No clicks older than %1$d days were found, so nothing was deleted"277 msgstr ""278 279 #: app/controllers/PrliUpdateController.php:72280 msgid "Why you creepin'?"281 msgstr ""282 283 #: app/controllers/PrliUpdateController.php:306284 msgid "Check for Update"285 msgstr ""286 287 #: app/controllers/PrliUpdateController.php:375288 msgid "You had an HTTP error connecting to Caseproof's Mothership API"289 msgstr ""290 291 #: app/controllers/PrliUpdateController.php:387292 msgid "Your License Key was invalid"293 msgstr ""294 295 #: app/controllers/PrliUpdateController.php:413296 msgid "You do not have access."297 msgstr ""298 299 #: app/controllers/PrliUpdateController.php:417300 msgid "Edge updates couldn't be updated."301 4809 msgstr "" 302 4810 … … 373 4881 msgstr "" 374 4882 375 #: app/helpers/PrliAppHelper.php:23 app/helpers/PrliLinksHelper.php:14 376 #: app/views/links/form.php:100 app/views/shared/tinymce_form_popup.php:105 377 #: app/views/shared/tinymce_form_popup.php:109 pro/app/views/links/form.php:185 378 #: pro/app/views/options/form.php:703 pro/app/views/tools/generator.php:35 379 #: pro/app/widgets/PlpPublicLinksWidget.php:80 380 msgid "None" 381 msgstr "" 382 383 #: app/helpers/PrliLinksHelper.php:37 app/views/links/form.php:15 384 #: app/views/shared/tinymce_form_popup.php:62 385 msgid "307 (Temporary)" 386 msgstr "" 387 388 #: app/helpers/PrliLinksHelper.php:38 app/views/links/form.php:16 389 #: app/views/shared/tinymce_form_popup.php:63 390 msgid "302 (Temporary)" 391 msgstr "" 392 393 #: app/helpers/PrliLinksHelper.php:39 app/views/links/form.php:17 394 #: app/views/shared/tinymce_form_popup.php:64 395 msgid "301 (Permanent)" 396 msgstr "" 397 398 #: app/helpers/PrliLinksHelper.php:49 399 msgid "Bulk Actions" 400 msgstr "" 401 402 #: app/helpers/PrliLinksHelper.php:50 app/views/groups/list.php:66 403 #: pro/app/views/reports/list.php:55 404 msgid "Edit" 405 msgstr "" 406 407 #: app/helpers/PrliLinksHelper.php:51 app/views/groups/list.php:67 408 #: pro/app/views/reports/list.php:56 409 msgid "Delete" 410 msgstr "" 411 412 #: app/helpers/PrliLinksHelper.php:53 413 msgid "Are you sure you want to delete the selected links?" 414 msgstr "" 415 416 #: app/helpers/PrliLinksHelper.php:53 417 msgid "Apply" 418 msgstr "" 419 420 #: app/helpers/PrliLinksHelper.php:63 app/views/links/list.php:77 421 #: app/views/links/list.php:80 422 msgid "- No Change -" 423 msgstr "" 424 425 #: app/helpers/PrliLinksHelper.php:64 426 msgid "Off" 427 msgstr "" 428 429 #: app/helpers/PrliLinksHelper.php:65 430 msgid "On" 431 msgstr "" 432 433 #: app/helpers/PrliLinksHelper.php:75 434 msgid "PrettyBar Redirection" 435 msgstr "" 436 437 #: app/helpers/PrliLinksHelper.php:78 438 msgid "Cloaked Redirection" 439 msgstr "" 440 441 #: app/helpers/PrliLinksHelper.php:81 442 msgid "Pixel Tracking Redirection" 443 msgstr "" 444 445 #: app/helpers/PrliLinksHelper.php:84 446 msgid "Meta Refresh Redirection" 447 msgstr "" 448 449 #: app/helpers/PrliLinksHelper.php:87 450 msgid "Javascript Redirection" 451 msgstr "" 452 453 #: app/helpers/PrliLinksHelper.php:90 454 msgid "Temporary (307) Redirection" 455 msgstr "" 456 457 #: app/helpers/PrliLinksHelper.php:93 458 msgid "Temporary (302) Redirection" 459 msgstr "" 460 461 #: app/helpers/PrliLinksHelper.php:96 462 msgid "Permanent (301) Redirection" 463 msgstr "" 464 465 #: app/helpers/PrliLinksHelper.php:100 466 msgid "Nofollow Enabled" 467 msgstr "" 468 469 #: app/helpers/PrliLinksHelper.php:104 470 msgid "Parameter Forwarding Enabled" 471 msgstr "" 472 473 #: app/helpers/PrliLinksHelper.php:115 app/views/groups/list.php:63 474 #: app/views/groups/list.php:66 475 msgid "Edit %s" 476 msgstr "" 477 478 #: app/helpers/PrliLinksHelper.php:116 479 msgid "" 480 "Are you sure you want to delete your %s Pretty Link? This will delete the " 481 "Pretty Link and all of the statistical data about it in your database." 482 msgstr "" 483 484 #: app/helpers/PrliLinksHelper.php:116 485 msgid "Delete %s" 486 msgstr "" 487 488 #: app/helpers/PrliLinksHelper.php:117 489 msgid "" 490 "Are you sure you want to reset your %s Pretty Link? This will delete all of " 491 "the statistical data about this Pretty Link in your database." 492 msgstr "" 493 494 #: app/helpers/PrliLinksHelper.php:117 495 msgid "Reset %s" 496 msgstr "" 497 498 #: app/helpers/PrliLinksHelper.php:120 app/views/clicks/list.php:163 499 msgid "View clicks for %s" 500 msgstr "" 501 502 #: app/helpers/PrliLinksHelper.php:125 503 msgid "Post %s to Twitter" 504 msgstr "" 505 506 #: app/helpers/PrliLinksHelper.php:126 507 msgid "Send %s in an Email" 508 msgstr "" 509 510 #: app/models/PrliClick.php:237 511 msgid "group: '%s'" 512 msgstr "" 513 514 #: app/models/PrliClick.php:240 515 msgid "all links" 516 msgstr "" 517 518 #: app/models/PrliClick.php:247 519 msgid "All clicks" 520 msgstr "" 521 522 #: app/models/PrliClick.php:250 523 msgid "Unique hits" 524 msgstr "" 525 526 #: app/models/PrliClick.php:254 pro/app/helpers/PlpPostsHelper.php:66 527 msgid "Pretty Link:" 528 msgstr "" 529 530 #: app/models/PrliClick.php:254 531 msgid "on" 532 msgstr "" 533 534 #: app/models/PrliClick.php:254 pro/app/models/PlpReport.php:385 535 msgid "between" 536 msgstr "" 537 538 #: app/models/PrliClick.php:254 pro/app/models/PlpReport.php:244 539 #: pro/app/models/PlpReport.php:385 540 msgid "and" 541 msgstr "" 542 543 #: app/models/PrliClick.php:259 pro/app/views/links/form.php:35 544 #: pro/app/views/links/form.php:68 545 msgid "Date" 546 msgstr "" 547 548 #: app/models/PrliLink.php:559 549 msgid "Target URL can't be blank" 550 msgstr "" 551 552 #: app/models/PrliLink.php:563 553 msgid "Pretty Link can't be blank" 554 msgstr "" 555 556 #: app/models/PrliLink.php:567 557 msgid "Target URL must be different than the Pretty Link" 558 msgstr "" 559 560 #: app/models/PrliLink.php:571 561 msgid "Link URL must be a correctly formatted url" 562 msgstr "" 563 564 #: app/models/PrliLink.php:575 565 msgid "" 566 "Pretty Link slugs must not contain question marks, ampersands or number " 567 "signs." 568 msgstr "" 569 570 #: app/models/PrliLink.php:579 571 msgid "Pretty Link slugs must not end with a slash (\"/\")" 572 msgstr "" 573 574 #: app/models/PrliLink.php:584 575 msgid "" 576 "This Pretty Link Slug is already taken. Check to make sure it isn't being " 577 "used by another pretty link, post, page, category or tag slug. If none of " 578 "these are true then check to see that this slug isn't the name of a file in " 579 "the root folder of your wordpress install." 580 msgstr "" 581 582 #: app/models/PrliUtils.php:93 583 msgid "*** Pretty Links Debug: %s" 584 msgstr "" 585 586 #: app/views/admin/errors.php:7 app/views/shared/errors.php:12 587 msgid "ERROR" 588 msgstr "" 589 590 #: app/views/admin/popups/rating.php:6 591 msgid "Rate Pretty Link" 592 msgstr "" 593 594 #: app/views/admin/popups/rating.php:7 595 msgid "" 596 "If you enjoy using Pretty Link would you mind taking a moment to rate it on " 597 "WordPress.org? It won't take more than a minute." 598 msgstr "" 599 600 #: app/views/admin/popups/rating.php:8 601 msgid "Thanks for your support!" 602 msgstr "" 603 604 #: app/views/admin/popups/rating.php:13 app/views/admin/popups/upgrade.php:23 605 msgid "Remind Me Later" 606 msgstr "" 607 608 #: app/views/admin/popups/rating.php:14 609 msgid "Review Pretty Link" 610 msgstr "" 611 612 #: app/views/admin/popups/rating.php:16 app/views/admin/popups/upgrade.php:26 613 msgid "Never Remind Me Again" 614 msgstr "" 615 616 #: app/views/admin/popups/upgrade.php:6 617 msgid "Upgrade Pretty Link PRO" 618 msgstr "" 619 620 #: app/views/admin/popups/upgrade.php:7 621 msgid "Upgrading will enable you to:" 622 msgstr "" 623 624 #: app/views/admin/popups/upgrade.php:9 app/views/admin/update/license.php:36 625 #: app/views/links/form.php:225 626 msgid "Auto-replace keywords throughout your site with Pretty Links" 627 msgstr "" 628 629 #: app/views/admin/popups/upgrade.php:10 app/views/admin/update/license.php:37 630 #: app/views/links/form.php:226 631 msgid "Protect your affiliate links by using Cloaked Redirects" 632 msgstr "" 633 634 #: app/views/admin/popups/upgrade.php:11 app/views/admin/update/license.php:38 635 #: app/views/links/form.php:227 636 msgid "Redirect based on a visitor's location" 637 msgstr "" 638 639 #: app/views/admin/popups/upgrade.php:12 app/views/admin/update/license.php:39 640 #: app/views/links/form.php:228 641 msgid "Auto-prettylink your Pages & Posts" 642 msgstr "" 643 644 #: app/views/admin/popups/upgrade.php:13 app/views/admin/update/license.php:40 645 #: app/views/links/form.php:229 646 msgid "Find out what works and what doesn't by split testing your links" 647 msgstr "" 648 649 #: app/views/admin/popups/upgrade.php:14 app/views/admin/update/license.php:41 650 #: app/views/links/form.php:230 651 msgid "And much, much more!" 652 msgstr "" 653 654 #: app/views/admin/popups/upgrade.php:17 app/views/admin/update/license.php:45 655 #: app/views/links/form.php:233 656 msgid "" 657 "Plus, upgrading is fast, easy and won't disrupt any of your existing links " 658 "or data. And there's even a 14 day money back guarantee." 659 msgstr "" 660 661 #: app/views/admin/popups/upgrade.php:18 app/views/admin/update/license.php:47 662 #: app/views/links/form.php:235 663 msgid "We think you'll love it!" 664 msgstr "" 665 666 #: app/views/admin/popups/upgrade.php:24 667 msgid "Upgrade to Pretty Links Pro" 668 msgstr "" 669 670 #: app/views/admin/update/activation_warning.php:4 671 msgid "Error with PRETTYLINK_LICENSE_KEY: %s" 672 msgstr "" 673 674 #: app/views/admin/update/activation_warning.php:7 675 #: app/views/admin/update/activation_warning.php:14 676 msgid "Pretty Links Pro isn't able to get critical automatic updates" 677 msgstr "" 678 679 #: app/views/admin/update/activation_warning.php:8 680 msgid "" 681 "It looks like you used to have Pretty Links Pro activated with a username " 682 "and password but now you need a license key to activate it." 683 msgstr "" 684 685 #: app/views/admin/update/activation_warning.php:9 686 msgid "" 687 "You can get your license key by logging in at %1$sPrettyLinkPro.com.%2$s" 688 msgstr "" 689 690 #: app/views/admin/update/activation_warning.php:10 691 msgid "" 692 "After you paste your license key on the %1$s\"Pretty Link\" -> \"Activate Pro" 693 "\" admin page,%2$s you'll start getting updates again." 694 msgstr "" 695 696 #: app/views/admin/update/activation_warning.php:15 697 msgid "" 698 "You can retrieve or purchase a license key at %1$sPrettyLinkPro.com%2$s to " 699 "enable automatic updates today." 700 msgstr "" 701 702 #: app/views/admin/update/activation_warning.php:16 703 msgid "" 704 "After you paste your license key on the %1$s\"Pretty Link\" -> \"Activate Pro" 705 "\" admin page,%2$s you'll start getting automatic updates." 706 msgstr "" 707 708 #: app/views/admin/update/addon_popup.php:4 709 msgid "ACTION REQUIRED" 710 msgstr "" 711 712 #: app/views/admin/update/addon_popup.php:5 713 msgid "" 714 "The %s features in your Pretty Link options have been moved from Pretty Link " 715 "into a separate plugin." 716 msgstr "" 717 718 #: app/views/admin/update/addon_popup.php:6 719 msgid "" 720 "Why you ask? Well, it's to streamline and increase the performance of Pretty " 721 "Link for you." 722 msgstr "" 723 724 #: app/views/admin/update/addon_popup.php:9 725 msgid "" 726 "And good for you, it looks like you've already got the %1$s Add-on " 727 "installed. Just click the \"Activate %2$s Add-on\" button below and you'll " 728 "get all these features back now." 729 msgstr "" 730 731 #: app/views/admin/update/addon_popup.php:11 732 msgid "" 733 "Luckily it's easy to get these features back now. Just click the \"Install " 734 "%s Add-on\" button below." 735 msgstr "" 736 737 #: app/views/admin/update/addon_popup.php:12 738 msgid "" 739 "If you have problems with the auto-install please refer to %1$sthe user " 740 "manual%2$s for manual install instructions." 741 msgstr "" 742 743 #: app/views/admin/update/addon_popup.php:18 744 msgid "Activate %s Add-on" 745 msgstr "" 746 747 #: app/views/admin/update/addon_popup.php:20 748 msgid "Install %s Add-on" 749 msgstr "" 750 751 #: app/views/admin/update/addon_popup.php:22 752 msgid "Don't Show This Message Again" 753 msgstr "" 754 755 #: app/views/admin/update/addons.php:3 756 msgid "Pretty Link Add-ons" 757 msgstr "" 758 759 #: app/views/admin/update/addons.php:8 760 msgid "There were no Add-ons found for your license or lack thereof..." 761 msgstr "" 762 763 #: app/views/admin/update/addons.php:14 764 msgid "Add-on" 765 msgstr "" 766 767 #: app/views/admin/update/addons.php:15 768 msgid "Description" 769 msgstr "" 770 771 #: app/views/admin/update/addons.php:16 app/views/admin/update/addons.php:54 772 msgid "Install" 773 msgstr "" 774 775 #: app/views/admin/update/addons.php:42 776 msgid "(Update Available)" 777 msgstr "" 778 779 #: app/views/admin/update/addons.php:50 780 msgid "Installed & Active" 781 msgstr "" 782 783 #: app/views/admin/update/addons.php:52 784 msgid "Installed & Inactive" 785 msgstr "" 786 787 #: app/views/admin/update/edge_updates.php:4 788 msgid "" 789 "Include Pretty Links Pro edge (development) releases in automatic updates " 790 "(not recommended for production websites)" 791 msgstr "" 792 793 #: app/views/admin/update/edge_updates.php:4 794 msgid "Loading..." 795 msgstr "" 796 797 #: app/views/admin/update/license.php:4 798 msgid "Pretty Links Pro License" 799 msgstr "" 800 801 #: app/views/admin/update/license.php:7 802 msgid "" 803 "You must have a License Key to enable automatic updates for Pretty Links " 804 "Pro. If you don't have a License please go to %1$s to get one. If you do " 805 "have a license you can login at %2$s to manage your licenses and site " 806 "activations." 807 msgstr "" 808 809 #: app/views/admin/update/license.php:13 810 msgid "Enter Your Pretty Links Pro License Key:" 811 msgstr "" 812 813 #: app/views/admin/update/license.php:20 814 msgid "Activate License Key on %s" 815 msgstr "" 816 817 #: app/views/admin/update/license.php:30 app/views/links/form.php:221 818 msgid "" 819 "It looks like you haven't %1$supgraded to Pretty Links Pro%2$s yet. Here are " 820 "just a few things you could be doing with pro:" 821 msgstr "" 822 823 #: app/views/admin/update/license.php:49 app/views/links/form.php:237 824 msgid "Upgrade to Pro today!" 825 msgstr "" 826 827 #: app/views/admin/update/license.php:53 828 msgid "Active License Key Information:" 829 msgstr "" 830 831 #: app/views/admin/update/license.php:56 832 msgid "License Key:" 833 msgstr "" 834 835 #: app/views/admin/update/license.php:60 836 msgid "Status:" 837 msgstr "" 838 839 #: app/views/admin/update/license.php:61 840 msgid "<b>Active on %s</b>" 841 msgstr "" 842 843 #: app/views/admin/update/license.php:64 844 msgid "Product:" 845 msgstr "" 846 847 #: app/views/admin/update/license.php:68 848 msgid "Activations:" 849 msgstr "" 850 851 #: app/views/admin/update/license.php:72 852 msgid "" 853 "Are you sure? Pretty Links Pro will not be functional on %s if this License " 854 "Key is deactivated." 855 msgstr "" 856 857 #: app/views/admin/update/license.php:72 858 msgid "Deactivate License Key on %s" 859 msgstr "" 860 861 #: app/views/admin/update/license.php:75 862 msgid "Upgrade plugin to Pro" 863 msgstr "" 864 865 #: app/views/admin/update/license.php:80 866 msgid "You're currently running version %s of Pretty Links Pro" 867 msgstr "" 868 869 #: app/views/admin/update/ui.php:3 870 msgid "Activate Pretty Links Pro" 871 msgstr "" 872 873 #: app/views/admin/update/ui.php:16 874 msgid "License" 875 msgstr "" 876 877 #: app/views/admin/update/ui.php:17 878 msgid "Add-Ons" 879 msgstr "" 880 881 #: app/views/clicks/csv_download.php:3 882 msgid "Download Clicks" 883 msgstr "" 884 885 #: app/views/clicks/csv_download.php:6 886 msgid "Click Reports:" 887 msgstr "" 888 889 #: app/views/clicks/csv_download.php:7 890 msgid "All clicks on %s" 891 msgstr "" 892 893 #: app/views/clicks/csv_download.php:24 894 msgid "Clicks %d-%d (%d Records)" 895 msgstr "" 896 897 #: app/views/clicks/list.php:6 898 msgid "For" 899 msgstr "" 900 901 #: app/views/clicks/list.php:11 pro/app/views/reports/custom-report.php:12 902 #: pro/app/views/reports/split-test-report.php:9 903 msgid "Customize Report" 904 msgstr "" 905 906 #: app/views/clicks/list.php:18 pro/app/views/reports/split-test-report.php:9 907 msgid "Back to Links" 908 msgstr "" 909 910 #: app/views/clicks/list.php:21 911 msgid "Back to Clicks" 912 msgstr "" 913 914 #: app/views/clicks/list.php:30 915 msgid "Type:" 916 msgstr "" 917 918 #: app/views/clicks/list.php:32 pro/app/models/PlpReport.php:251 919 #: pro/app/models/PlpReport.php:260 pro/app/models/PlpReport.php:397 920 #: pro/app/models/PlpReport.php:404 921 msgid "All Clicks" 922 msgstr "" 923 924 #: app/views/clicks/list.php:33 pro/app/models/PlpReport.php:251 925 #: pro/app/models/PlpReport.php:260 pro/app/models/PlpReport.php:397 926 #: pro/app/models/PlpReport.php:404 927 msgid "Unique Clicks" 928 msgstr "" 929 930 #: app/views/clicks/list.php:37 pro/app/views/reports/custom-report.php:16 931 #: pro/app/views/reports/split-test-report.php:13 932 msgid "Date Range:" 933 msgstr "" 934 935 #: app/views/clicks/list.php:39 936 msgid "to" 937 msgstr "" 938 939 #: app/views/clicks/list.php:43 app/views/groups/edit.php:54 940 #: app/views/groups/new.php:58 app/views/links/edit.php:16 941 #: app/views/links/list.php:93 app/views/links/new.php:15 942 #: pro/app/views/reports/custom-report.php:22 943 #: pro/app/views/reports/edit.php:109 pro/app/views/reports/new.php:109 944 msgid "Cancel" 945 msgstr "" 946 947 #: app/views/clicks/list.php:64 app/views/groups/list.php:24 948 #: app/views/links/list.php:36 pro/app/views/reports/list.php:20 949 msgid "Reset" 950 msgstr "" 951 952 #: app/views/clicks/list.php:73 app/views/clicks/list.php:173 953 msgid "Browser" 954 msgstr "" 955 956 #: app/views/clicks/list.php:75 app/views/clicks/list.php:174 957 msgid "OS" 958 msgstr "" 959 960 #: app/views/clicks/list.php:79 app/views/clicks/list.php:176 961 msgid "IP" 962 msgstr "" 963 964 #: app/views/clicks/list.php:83 app/views/clicks/list.php:178 965 msgid "Visitor" 966 msgstr "" 967 968 #: app/views/clicks/list.php:87 app/views/clicks/list.php:180 969 msgid "Timestamp" 970 msgstr "" 971 972 #: app/views/clicks/list.php:91 app/views/clicks/list.php:182 973 msgid "Host" 974 msgstr "" 975 976 #: app/views/clicks/list.php:95 app/views/clicks/list.php:184 977 msgid "URI" 978 msgstr "" 979 980 #: app/views/clicks/list.php:98 app/views/clicks/list.php:185 981 msgid "Referrer" 982 msgstr "" 983 984 #: app/views/clicks/list.php:101 app/views/clicks/list.php:186 985 #: pro/app/models/PlpReport.php:251 pro/app/models/PlpReport.php:260 986 msgid "Link" 987 msgstr "" 988 989 #: app/views/clicks/list.php:111 990 msgid "No Clicks have been recorded yet" 991 msgstr "" 992 993 #: app/views/clicks/list.php:149 994 msgid "View All Activity for IP Address: %s" 995 msgstr "" 996 997 #: app/views/clicks/list.php:152 998 msgid "View All Activity for Visitor: %s" 999 msgstr "" 1000 1001 #: app/views/clicks/list.php:192 1002 msgid "Download CSV" 1003 msgstr "" 1004 1005 #: app/views/groups/edit.php:4 1006 msgid "Edit Group" 1007 msgstr "" 1008 1009 #: app/views/groups/edit.php:15 pro/app/views/reports/edit.php:15 1010 msgid "Name:" 1011 msgstr "" 1012 1013 #: app/views/groups/edit.php:17 app/views/groups/new.php:23 1014 msgid "This is how you'll identify your Group." 1015 msgstr "" 1016 1017 #: app/views/groups/edit.php:20 app/views/groups/new.php:26 1018 msgid "Description:" 1019 msgstr "" 1020 1021 #: app/views/groups/edit.php:22 app/views/groups/new.php:28 1022 msgid "A Description of this group." 1023 msgstr "" 1024 1025 #: app/views/groups/edit.php:25 app/views/groups/new.php:31 1026 msgid "Links:" 1027 msgstr "" 1028 1029 #: app/views/groups/edit.php:30 app/views/groups/list.php:39 1030 #: app/views/groups/list.php:81 app/views/groups/new.php:36 1031 #: app/views/links/list.php:52 app/views/links/list.php:153 1032 #: pro/app/views/reports/edit.php:85 pro/app/views/reports/list.php:30 1033 #: pro/app/views/reports/list.php:70 pro/app/views/reports/new.php:85 1034 msgid "Name" 1035 msgstr "" 1036 1037 #: app/views/groups/edit.php:31 app/views/groups/new.php:37 1038 msgid "Current Group" 1039 msgstr "" 1040 1041 #: app/views/groups/edit.php:48 app/views/groups/new.php:52 1042 msgid "" 1043 "Select some links for this group. <strong>Note: each link can only be in one " 1044 "group at a time.</strong>" 1045 msgstr "" 1046 1047 #: app/views/groups/edit.php:54 app/views/links/edit.php:16 1048 #: app/views/links/list.php:94 app/views/options/form.php:194 1049 #: pro/app/views/reports/edit.php:109 1050 msgid "Update" 1051 msgstr "" 1052 1053 #: app/views/groups/list.php:7 1054 msgid "Add Group" 1055 msgstr "" 1056 1057 #: app/views/groups/list.php:40 app/views/groups/list.php:68 1058 #: app/views/groups/list.php:82 app/views/links/list.php:57 1059 #: app/views/links/list.php:158 app/views/options/form.php:39 1060 #: pro/app/views/reports/list.php:32 pro/app/views/reports/list.php:72 1061 msgid "Links" 1062 msgstr "" 1063 1064 #: app/views/groups/list.php:41 app/views/groups/list.php:83 1065 #: app/views/links/list.php:56 app/views/links/list.php:157 1066 #: pro/app/views/reports/list.php:33 pro/app/views/reports/list.php:73 1067 msgid "Created" 1068 msgstr "" 1069 1070 #: app/views/groups/list.php:50 1071 msgid "No Pretty Link Groups were found" 1072 msgstr "" 1073 1074 #: app/views/groups/list.php:67 1075 msgid "Are you sure you want to delete your %s Pretty Link Group?" 1076 msgstr "" 1077 1078 #: app/views/groups/list.php:69 1079 msgid "View hits in %s" 1080 msgstr "" 1081 1082 #: app/views/groups/new.php:9 1083 msgid "New Group" 1084 msgstr "" 1085 1086 #: app/views/groups/new.php:21 pro/app/views/reports/new.php:14 1087 msgid "Name*:" 1088 msgstr "" 1089 1090 #: app/views/groups/new.php:58 app/views/links/new.php:15 1091 msgid "Create" 1092 msgstr "" 1093 1094 #: app/views/links/edit.php:4 1095 msgid "Edit Link" 1096 msgstr "" 1097 1098 #: app/views/links/form.php:6 1099 msgid "Redirection*" 1100 msgstr "" 1101 1102 #: app/views/links/form.php:9 app/views/options/form.php:58 1103 #: app/views/options/form.php:60 1104 msgid "Redirection Type" 1105 msgstr "" 1106 1107 #: app/views/links/form.php:10 1108 msgid "This is the method of redirection for your link." 1109 msgstr "" 1110 1111 #: app/views/links/form.php:24 1112 msgid "" 1113 "Make your life easier by upgrading to %1$sPretty Links Pro%2$s -- get more " 1114 "redirection types, speed, automations and <b>results from your links</b> by " 1115 "%1$sgoing pro today!%2$s" 1116 msgstr "" 1117 1118 #: app/views/links/form.php:31 1119 msgid "Target URL*" 1120 msgstr "" 1121 1122 #: app/views/links/form.php:34 app/views/shared/tinymce_form_popup.php:43 1123 #: app/views/shared/tinymce_form_popup.php:104 app/views/widgets/widget.php:13 1124 msgid "Target URL" 1125 msgstr "" 1126 1127 #: app/views/links/form.php:35 1128 msgid "This is the URL that your Pretty Link will redirect to." 1129 msgstr "" 1130 1131 #: app/views/links/form.php:44 1132 msgid "Pretty Link*" 1133 msgstr "" 1134 1135 #: app/views/links/form.php:47 app/views/shared/tinymce_form_popup.php:108 1136 #: app/views/widgets/widget.php:17 pro/app/views/links/prettybar.php:191 1137 msgid "Pretty Link" 1138 msgstr "" 1139 1140 #: app/views/links/form.php:48 1141 msgid "" 1142 "This is how your pretty link will appear. You can edit the Pretty Link slug " 1143 "here." 1144 msgstr "" 1145 1146 #: app/views/links/form.php:57 app/views/links/form.php:60 1147 msgid "Title" 1148 msgstr "" 1149 1150 #: app/views/links/form.php:61 1151 msgid "" 1152 "Leave this blank and Pretty Link will attempt to detect the title from the " 1153 "target url. Alternatively you can enter a custom title here." 1154 msgstr "" 1155 1156 #: app/views/links/form.php:70 app/views/links/form.php:73 1157 msgid "Notes" 1158 msgstr "" 1159 1160 #: app/views/links/form.php:74 1161 msgid "" 1162 "This is a field where you can enter notes about a particular link. This " 1163 "notes field is mainly for your own link management needs. It isn't currently " 1164 "used anywhere on the front end." 1165 msgstr "" 1166 1167 #: app/views/links/form.php:84 1168 msgid "Advanced Options" 1169 msgstr "" 1170 1171 #: app/views/links/form.php:91 app/views/links/list.php:55 1172 #: app/views/links/list.php:79 app/views/links/list.php:156 1173 #: pro/app/views/options/autocreate.php:30 pro/app/views/reports/edit.php:86 1174 #: pro/app/views/reports/new.php:86 1175 msgid "Group" 1176 msgstr "" 1177 1178 #: app/views/links/form.php:94 1179 msgid "Link Group" 1180 msgstr "" 1181 1182 #: app/views/links/form.php:95 1183 msgid "Select a Group for this Link" 1184 msgstr "" 1185 1186 #: app/views/links/form.php:109 pro/app/views/options/autocreate.php:41 1187 msgid "Add a New Group" 1188 msgstr "" 1189 1190 #: app/views/links/form.php:114 1191 msgid "No Follow" 1192 msgstr "" 1193 1194 #: app/views/links/form.php:117 1195 msgid "Nofollow Link" 1196 msgstr "" 1197 1198 #: app/views/links/form.php:118 1199 msgid "Add a nofollow and noindex to this link's http redirect header" 1200 msgstr "" 1201 1202 #: app/views/links/form.php:127 app/views/links/form.php:130 1203 msgid "Delay Redirect" 1204 msgstr "" 1205 1206 #: app/views/links/form.php:131 1207 msgid "Time in seconds to wait before redirecting" 1208 msgstr "" 1209 1210 #: app/views/links/form.php:140 app/views/links/form.php:143 1211 msgid "Parameter Forwarding" 1212 msgstr "" 1213 1214 #: app/views/links/form.php:144 1215 msgid "Forward parameters passed to this link onto the Target URL" 1216 msgstr "" 1217 1218 #: app/views/links/form.php:153 app/views/links/form.php:156 1219 #: app/views/shared/tinymce_form_popup.php:84 1220 msgid "Tracking" 1221 msgstr "" 1222 1223 #: app/views/links/form.php:157 1224 msgid "Enable Pretty Link's built-in hit (click) tracking" 1225 msgstr "" 1226 1227 #: app/views/links/form.php:166 pro/app/models/PlpUtils.php:42 1228 #: pro/app/views/links/bulk-edit.php:10 1229 msgid "Google Analytics" 1230 msgstr "" 1231 1232 #: app/views/links/form.php:169 1233 msgid "Google Analytics Tracking" 1234 msgstr "" 1235 1236 #: app/views/links/form.php:170 1237 msgid "" 1238 "Requires the Google Analyticator, Google Analytics by MonsterInsights " 1239 "(formerly Yoast) or Google Analytics Plugin installed and configured for " 1240 "this to work." 1241 msgstr "" 1242 1243 #: app/views/links/form.php:180 1244 msgid "" 1245 "It appears that <strong>%s</strong> is currently installed. Pretty Link will " 1246 "attempt to use its settings to track this link." 1247 msgstr "" 1248 1249 #: app/views/links/form.php:185 1250 msgid "" 1251 "No Google Analytics Plugin is currently installed. Pretty Link cannot track " 1252 "links using Google Analytics until one is." 1253 msgstr "" 1254 1255 #: app/views/links/form.php:198 1256 msgid "Pro Options" 1257 msgstr "" 1258 1259 #: app/views/links/form.php:218 1260 msgid "Oops!" 1261 msgstr "" 1262 1263 #: app/views/links/list.php:13 app/views/links/new.php:4 1264 msgid "Add Pretty Link" 1265 msgstr "" 1266 1267 #: app/views/links/list.php:19 1268 msgid "" 1269 "WordPress Must be Configured:</strong> Pretty Link won't work until you " 1270 "select a Permalink Structure other than 'Default'" 1271 msgstr "" 1272 1273 #: app/views/links/list.php:19 app/views/options/form.php:12 1274 msgid "Permalink Settings" 1275 msgstr "" 1276 1277 #: app/views/links/list.php:45 1278 msgid "Back to Groups" 1279 msgstr "" 1280 1281 #: app/views/links/list.php:54 app/views/links/list.php:155 1282 msgid "Clicks / Uniq" 1283 msgstr "" 1284 1285 #: app/views/links/list.php:68 1286 msgid "Bulk Edit" 1287 msgstr "" 1288 1289 #: app/views/links/list.php:75 1290 msgid "Basic Link Options" 1291 msgstr "" 1292 1293 #: app/views/links/list.php:76 app/views/shared/tinymce_form_popup.php:59 1294 msgid "Redirect Type" 1295 msgstr "" 1296 1297 #: app/views/links/list.php:82 1298 msgid "Track" 1299 msgstr "" 1300 1301 #: app/views/links/list.php:84 app/views/shared/tinymce_form_popup.php:76 1302 msgid "Nofollow" 1303 msgstr "" 1304 1305 #: app/views/links/list.php:86 1306 msgid "Forward Params" 1307 msgstr "" 1308 1309 #: app/views/links/list.php:94 1310 msgid "Bulk Update" 1311 msgstr "" 1312 1313 #: app/views/links/list.php:104 1314 msgid "No Pretty Links were found, %sCreate One%s" 1315 msgstr "" 1316 1317 #: app/views/links/list.php:143 1318 msgid "Target URL:" 1319 msgstr "" 1320 1321 #: app/views/options/form.php:4 1322 msgid "User Manual" 1323 msgstr "" 1324 1325 #: app/views/options/form.php:12 1326 msgid "WordPress Must be Configured:" 1327 msgstr "" 1328 1329 #: app/views/options/form.php:12 1330 msgid "" 1331 "Pretty Link won't work until you select a Permalink Structure other than " 1332 "'Default'" 1333 msgstr "" 1334 1335 #: app/views/options/form.php:37 1336 msgid "General" 1337 msgstr "" 1338 1339 #: app/views/options/form.php:40 1340 msgid "Reporting" 1341 msgstr "" 1342 1343 #: app/views/options/form.php:47 1344 msgid "General Options" 1345 msgstr "" 1346 1347 #: app/views/options/form.php:53 1348 msgid "Default Link Options" 1349 msgstr "" 1350 1351 #: app/views/options/form.php:61 1352 msgid "" 1353 "Select the type of redirection you want your newly created links to have." 1354 msgstr "" 1355 1356 #: app/views/options/form.php:70 app/views/options/form.php:72 1357 msgid "Enable Tracking" 1358 msgstr "" 1359 1360 #: app/views/options/form.php:73 1361 msgid "Default all new links to be tracked." 1362 msgstr "" 1363 1364 #: app/views/options/form.php:82 1365 msgid "Enable No Follow" 1366 msgstr "" 1367 1368 #: app/views/options/form.php:84 1369 msgid "Add No Follow" 1370 msgstr "" 1371 1372 #: app/views/options/form.php:85 1373 msgid "Add the 'nofollow' attribute by default to new links." 1374 msgstr "" 1375 1376 #: app/views/options/form.php:94 1377 msgid "Enable Permalink Fix" 1378 msgstr "" 1379 1380 #: app/views/options/form.php:96 1381 msgid "Use fix for index.php Permalink Structure" 1382 msgstr "" 1383 1384 #: app/views/options/form.php:97 1385 msgid "" 1386 "This option should ONLY be checked if you have elements in your permalink " 1387 "structure that must be present in any link on your site. For example, some " 1388 "WordPress installs don't have the benefit of full rewrite capabilities and " 1389 "in this case you'd need an index.php included in each link (http://example." 1390 "com/index.php/mycoolslug instead of http://example.com/mycoolslug). If this " 1391 "is the case for you then check this option but the vast majority of users " 1392 "will want to keep this unchecked." 1393 msgstr "" 1394 1395 #: app/views/options/form.php:110 1396 msgid "Reporting Options" 1397 msgstr "" 1398 1399 #: app/views/options/form.php:115 app/views/options/form.php:117 1400 msgid "Tracking Style" 1401 msgstr "" 1402 1403 #: app/views/options/form.php:118 1404 msgid "" 1405 "Changing your tracking style can affect the accuracy of your existing " 1406 "statistics. Extended mode must be used for Conversion reporting." 1407 msgstr "" 1408 1409 #: app/views/options/form.php:122 1410 msgid "Normal Tracking" 1411 msgstr "" 1412 1413 #: app/views/options/form.php:123 1414 msgid "Extended Tracking (more stats / slower performance)" 1415 msgstr "" 1416 1417 #: app/views/options/form.php:124 1418 msgid "Simple Click Count Tracking (less stats / faster performance)" 1419 msgstr "" 1420 1421 #: app/views/options/form.php:130 1422 msgid "Excluded IP Addresses:" 1423 msgstr "" 1424 1425 #: app/views/options/form.php:132 1426 msgid "Excluded IP Addresses" 1427 msgstr "" 1428 1429 #: app/views/options/form.php:133 1430 msgid "" 1431 "Enter IP Addresses or IP Ranges you want to exclude from your Click data and " 1432 "Stats. Each IP Address should be separated by commas. Example: 192.168.0.1, " 1433 "192.168.2.1, 192.168.3.4 or 192.168.*.*<br/><br/><strong>FYI, your current " 1434 "IP address is %s." 1435 msgstr "" 1436 1437 #: app/views/options/form.php:143 1438 msgid "Auto-Trim Clicks" 1439 msgstr "" 1440 1441 #: app/views/options/form.php:145 1442 msgid "Automatically Trim Clicks" 1443 msgstr "" 1444 1445 #: app/views/options/form.php:146 1446 msgid "" 1447 "Will automatically delete all hits older than 90 days. We strongly recommend " 1448 "doing this to keep your database performance up. This will permanently " 1449 "delete this click data, and is not undo-able. " 1450 msgstr "" 1451 1452 #: app/views/options/form.php:155 app/views/options/form.php:157 1453 msgid "Filter Robots" 1454 msgstr "" 1455 1456 #: app/views/options/form.php:158 1457 msgid "" 1458 "Filter known Robots and unidentifiable browser clients from your click data, " 1459 "stats and reports. Works best if Tracking Style above is set to 'Extended " 1460 "Tracking'." 1461 msgstr "" 1462 1463 #: app/views/options/form.php:174 1464 msgid "Whitelist IP Addresses" 1465 msgstr "" 1466 1467 #: app/views/options/form.php:176 1468 msgid "Whiltelist IP Addresses" 1469 msgstr "" 1470 1471 #: app/views/options/form.php:177 1472 msgid "" 1473 "Enter IP Addresses or IP Ranges you want to always include in your Click " 1474 "data and Stats even if they are flagged as robots. Each IP Address should be " 1475 "separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or " 1476 "192.168.*.*" 1477 msgstr "" 1478 1479 #: app/views/shared/link-table-nav.php:17 1480 #: app/views/shared/link-table-nav.php:108 app/views/shared/table-nav.php:12 1481 msgid "Displaying" 1482 msgstr "" 1483 1484 #: app/views/shared/nav.php:6 1485 msgid "Pro Manual" 1486 msgstr "" 1487 1488 #: app/views/shared/nav.php:14 1489 msgid "Connect:" 1490 msgstr "" 1491 1492 #: app/views/shared/nav.php:18 1493 msgid "Get Help:" 1494 msgstr "" 1495 1496 #: app/views/shared/nav.php:19 1497 msgid "Tutorials" 1498 msgstr "" 1499 1500 #: app/views/shared/public_link.php:23 1501 msgid "Here is your Pretty Link" 1502 msgstr "" 1503 1504 #: app/views/shared/public_link.php:41 1505 msgid "Here's your pretty link for" 1506 msgstr "" 1507 1508 #: app/views/shared/public_link.php:52 1509 msgid "send this link to:" 1510 msgstr "" 1511 1512 #: app/views/shared/public_link.php:56 1513 msgid "back" 1514 msgstr "" 1515 1516 #: app/views/shared/tinymce_form_popup.php:4 1517 msgid "Insert Pretty Link" 1518 msgstr "" 1519 1520 #: app/views/shared/tinymce_form_popup.php:40 1521 msgid "Create New Pretty Link" 1522 msgstr "" 1523 1524 #: app/views/shared/tinymce_form_popup.php:47 1525 msgid "Slug" 1526 msgstr "" 1527 1528 #: app/views/shared/tinymce_form_popup.php:50 1529 msgid "valid" 1530 msgstr "" 1531 1532 #: app/views/shared/tinymce_form_popup.php:51 1533 msgid "invalid" 1534 msgstr "" 1535 1536 #: app/views/shared/tinymce_form_popup.php:55 1537 #: app/views/shared/tinymce_form_popup.php:112 1538 msgid "Link Text" 1539 msgstr "" 1540 1541 #: app/views/shared/tinymce_form_popup.php:61 1542 #: app/views/shared/tinymce_form_popup.php:78 1543 #: app/views/shared/tinymce_form_popup.php:86 1544 #: pro/app/views/tools/generator.php:22 pro/app/views/tools/generator.php:27 1545 #: pro/app/widgets/PlpPublicLinksWidget.php:59 1546 #: pro/app/widgets/PlpPublicLinksWidget.php:71 1547 msgid "Default" 1548 msgstr "" 1549 1550 #: app/views/shared/tinymce_form_popup.php:67 1551 #: pro/app/controllers/PlpLinksController.php:628 1552 #: pro/app/controllers/PlpLinksController.php:667 1553 #: pro/app/views/options/nav.php:5 1554 msgid "Pretty Bar" 1555 msgstr "" 1556 1557 #: app/views/shared/tinymce_form_popup.php:68 1558 #: pro/app/controllers/PlpLinksController.php:629 1559 msgid "Cloaked" 1560 msgstr "" 1561 1562 #: app/views/shared/tinymce_form_popup.php:69 1563 #: pro/app/controllers/PlpLinksController.php:630 1564 #: pro/app/controllers/PlpLinksController.php:669 1565 msgid "Pixel" 1566 msgstr "" 1567 1568 #: app/views/shared/tinymce_form_popup.php:70 1569 #: pro/app/controllers/PlpLinksController.php:631 1570 #: pro/app/controllers/PlpLinksController.php:670 1571 msgid "Meta Refresh" 1572 msgstr "" 1573 1574 #: app/views/shared/tinymce_form_popup.php:71 1575 #: pro/app/controllers/PlpLinksController.php:632 1576 #: pro/app/controllers/PlpLinksController.php:671 1577 msgid "Javascript" 1578 msgstr "" 1579 1580 #: app/views/shared/tinymce_form_popup.php:79 1581 #: app/views/shared/tinymce_form_popup.php:87 1582 msgid "Enabled" 1583 msgstr "" 1584 1585 #: app/views/shared/tinymce_form_popup.php:80 1586 #: app/views/shared/tinymce_form_popup.php:88 1587 msgid "Disabled" 1588 msgstr "" 1589 1590 #: app/views/shared/tinymce_form_popup.php:93 1591 #: app/views/shared/tinymce_form_popup.php:117 1592 msgid "Open this Pretty Link in a new window/tab" 1593 msgstr "" 1594 1595 #: app/views/shared/tinymce_form_popup.php:96 1596 msgid "Insert New Pretty Link" 1597 msgstr "" 1598 1599 #: app/views/shared/tinymce_form_popup.php:100 1600 msgid "Use Existing Pretty Link" 1601 msgstr "" 1602 1603 #: app/views/shared/tinymce_form_popup.php:102 1604 msgid "Search by Slug, Title, or Target URL..." 1605 msgstr "" 1606 1607 #: app/views/shared/tinymce_form_popup.php:121 1608 msgid "Insert Existing Pretty Link" 1609 msgstr "" 1610 1611 #: app/views/tools/form.php:18 app/views/tools/form.php:25 1612 msgid "Bookmarklet" 1613 msgstr "" 1614 1615 #: app/views/tools/form.php:19 app/views/tools/form.php:48 1616 msgid "Trim Clicks" 1617 msgstr "" 1618 1619 #: app/views/tools/form.php:26 pro/app/views/tools/generator.php:7 1620 #: pro/app/views/tools/generator.php:17 1621 msgid "Get Pretty Link" 1622 msgstr "" 1623 1624 #: app/views/tools/form.php:28 1625 msgid "Install Pretty Link Bookmarklet" 1626 msgstr "" 1627 1628 #: app/views/tools/form.php:29 1629 msgid "" 1630 "Just drag this \"Get PrettyLink\" link to your toolbar to install the " 1631 "bookmarklet. As you browse the web, you can just click this bookmarklet to " 1632 "create a pretty link from the current url you're looking at. <a href=" 1633 "\"http://blairwilliams.com/pretty-link-bookmarklet/\">(more help)</a>" 1634 msgstr "" 1635 1636 #: app/views/tools/form.php:31 1637 msgid "Show iPhone Bookmarklet Instructions" 1638 msgstr "" 1639 1640 #: app/views/tools/form.php:35 1641 msgid "" 1642 "<strong>Note:</strong> iPhone users can install this bookmarklet in their " 1643 "Safari to create Pretty Links with the following steps:" 1644 msgstr "" 1645 1646 #: app/views/tools/form.php:37 1647 msgid "Copy this text:" 1648 msgstr "" 1649 1650 #: app/views/tools/form.php:38 1651 msgid "Tap the + button at the bottom of the screen" 1652 msgstr "" 1653 1654 #: app/views/tools/form.php:39 1655 msgid "" 1656 "Choose to share the page, then click on \"Bookmark\". We recommend saving it " 1657 "in your Favorites folder. Rename your bookmark to \"Get PrettyLink\" (or " 1658 "whatever you want) and then \"Save\"" 1659 msgstr "" 1660 1661 #: app/views/tools/form.php:40 1662 msgid "" 1663 "Navigate through your Bookmarks until you find the new bookmark and click " 1664 "\"Edit\"" 1665 msgstr "" 1666 1667 #: app/views/tools/form.php:41 1668 msgid "Delete all the text from the address" 1669 msgstr "" 1670 1671 #: app/views/tools/form.php:42 1672 msgid "Paste the text you copied in Step 1 into the address field" 1673 msgstr "" 1674 1675 #: app/views/tools/form.php:43 1676 msgid "To save the changes hit \"Bookmarks\" and <strong>you're done!" 1677 msgstr "" 1678 1679 #: app/views/tools/form.php:43 1680 msgid "" 1681 "Now when you find a page you want to save off as a Pretty Link, just click " 1682 "the \"Bookmarks\" icon at the bottom of the screen and select your \"Get " 1683 "PrettyLink\" bookmarklet." 1684 msgstr "" 1685 1686 #: app/views/tools/form.php:50 1687 msgid "" 1688 "Pretty Link is already automatically trimming Clicks older than 90 days. " 1689 "Although not necessary, you can still use the buttons below to force click " 1690 "trimming." 1691 msgstr "" 1692 1693 #: app/views/tools/form.php:53 1694 msgid "" 1695 "***WARNING*** If you click OK you will delete ALL of the Click data that is " 1696 "older than 30 days. Your data will be gone forever -- no way to retreive it. " 1697 "Do not click OK unless you are absolutely sure you want to delete this data " 1698 "because there is no going back!" 1699 msgstr "" 1700 1701 #: app/views/tools/form.php:53 1702 msgid "Delete Clicks older than 30 days" 1703 msgstr "" 1704 1705 #: app/views/tools/form.php:55 1706 msgid "Clear clicks 30 days or older" 1707 msgstr "" 1708 1709 #: app/views/tools/form.php:56 1710 msgid "" 1711 "This will clear all clicks in your database that are older than 30 days." 1712 msgstr "" 1713 1714 #: app/views/tools/form.php:58 1715 msgid "" 1716 "***WARNING*** If you click OK you will delete ALL of the Click data that is " 1717 "older than 90 days. Your data will be gone forever -- no way to retreive it. " 1718 "Do not click OK unless you are absolutely sure you want to delete this data " 1719 "because there is no going back!" 1720 msgstr "" 1721 1722 #: app/views/tools/form.php:58 1723 msgid "Delete Clicks older than 90 days" 1724 msgstr "" 1725 1726 #: app/views/tools/form.php:60 1727 msgid "Clear clicks 90 days or older" 1728 msgstr "" 1729 1730 #: app/views/tools/form.php:61 1731 msgid "" 1732 "This will clear all clicks in your database that are older than 90 days." 1733 msgstr "" 1734 1735 #: app/views/tools/form.php:65 1736 msgid "" 1737 "***WARNING*** If you click OK you will delete ALL of the Click data in your " 1738 "Database. Your data will be gone forever -- no way to retreive it. Do not " 1739 "click OK unless you are absolutely sure you want to delete all your data " 1740 "because there is no going back!" 1741 msgstr "" 1742 1743 #: app/views/tools/form.php:65 1744 msgid "Delete All Clicks" 1745 msgstr "" 1746 1747 #: app/views/tools/form.php:67 1748 msgid "Clear all clicks" 1749 msgstr "" 1750 1751 #: app/views/tools/form.php:68 1752 msgid "" 1753 "Seriously, only click this link if you want to delete all the Click data in " 1754 "your database." 1755 msgstr "" 1756 1757 #: pro/app/controllers/PlpAppController.php:165 1758 msgid "ERROR: Your Pretty Link was unable to be created" 1759 msgstr "" 1760 1761 #: pro/app/controllers/PlpAppController.php:169 1762 msgid "Unauthorized" 1763 msgstr "" 1764 1765 #: pro/app/controllers/PlpImportExportController.php:12 1766 msgid "Pretty Links Pro | Import/Export" 1767 msgstr "" 1768 1769 #: pro/app/controllers/PlpImportExportController.php:13 1770 msgid "Pro Import/Export" 1771 msgstr "" 1772 1773 #: pro/app/controllers/PlpKeywordsController.php:70 1774 msgid "Pretty Link Post Build Index" 1775 msgstr "" 1776 1777 #: pro/app/controllers/PlpKeywordsController.php:485 1778 #: pro/app/views/links/form.php:128 1779 msgid "Keywords" 1780 msgstr "" 1781 1782 #: pro/app/controllers/PlpLinksController.php:213 1783 msgid "" 1784 "Your URL Replacements must be formatted as a comma separated list of " 1785 "properly formatted URLs (http[s]://example.com/whatever)" 1786 msgstr "" 1787 1788 #: pro/app/controllers/PlpLinksController.php:224 1789 msgid "Date must be valid and formatted YYYY-MM-DD." 1790 msgstr "" 1791 1792 #: pro/app/controllers/PlpLinksController.php:236 1793 msgid "Expire Clicks must be a number greater than zero." 1794 msgstr "" 1795 1796 #: pro/app/controllers/PlpLinksController.php:243 1797 msgid "Expired URL must be a valid URL." 1798 msgstr "" 1799 1800 #: pro/app/controllers/PlpLinksController.php:255 1801 msgid "Your URL Rotations must all be properly formatted URLs." 1802 msgstr "" 1803 1804 #: pro/app/controllers/PlpLinksController.php:264 1805 msgid "Your Link Rotation Weights must add up to 100%." 1806 msgstr "" 1807 1808 #: pro/app/controllers/PlpLinksController.php:274 1809 msgid "Your Geographic Redirect URLs must all be properly formatted." 1810 msgstr "" 1811 1812 #: pro/app/controllers/PlpLinksController.php:278 1813 msgid "Your Geographic Redirects URLs must not be empty." 1814 msgstr "" 1815 1816 #: pro/app/controllers/PlpLinksController.php:282 1817 msgid "Your Geographic Redirect Countries must not be empty." 1818 msgstr "" 1819 1820 #: pro/app/controllers/PlpLinksController.php:293 1821 msgid "Your Technology Redirect URLs must all be properly formatted." 1822 msgstr "" 1823 1824 #: pro/app/controllers/PlpLinksController.php:297 1825 msgid "Your Technology Redirects URLs must not be empty." 1826 msgstr "" 1827 1828 #: pro/app/controllers/PlpLinksController.php:308 1829 msgid "Your Time Period Redirect URLs must all be properly formatted." 1830 msgstr "" 1831 1832 #: pro/app/controllers/PlpLinksController.php:312 1833 msgid "Your Time Period Redirects URLs must not be empty." 1834 msgstr "" 1835 1836 #: pro/app/controllers/PlpLinksController.php:317 1837 msgid "Your Time Period Redirect start time must not be empty." 1838 msgstr "" 1839 1840 #: pro/app/controllers/PlpLinksController.php:320 1841 msgid "Your Time Period Redirect start time must be a properly formatted date." 1842 msgstr "" 1843 1844 #: pro/app/controllers/PlpLinksController.php:326 1845 msgid "Your Time Period Redirect end time must not be empty." 1846 msgstr "" 1847 1848 #: pro/app/controllers/PlpLinksController.php:329 1849 msgid "Your Time Period Redirect end time must be a properly formatted date." 1850 msgstr "" 1851 1852 #: pro/app/controllers/PlpLinksController.php:337 1853 msgid "Your Time Period Redirect start time must come before the end time." 1854 msgstr "" 1855 1856 #: pro/app/controllers/PlpLinksController.php:345 1857 msgid "Delay Redirect must be a number" 1858 msgstr "" 1859 1860 #: pro/app/controllers/PlpLinksController.php:668 1861 #: pro/app/widgets/PlpPublicLinksWidget.php:64 1862 msgid "Cloak" 1863 msgstr "" 1864 1865 #: pro/app/controllers/PlpLinksController.php:736 1866 msgid "View QR Code for this link: %s" 1867 msgstr "" 1868 1869 #: pro/app/controllers/PlpLinksController.php:740 1870 msgid "Download QR Code for this link: %s" 1871 msgstr "" 1872 1873 #: pro/app/controllers/PlpLinksController.php:811 1874 msgid "This link expired on %1$s and will now cause a 404 error when visited" 1875 msgstr "" 1876 1877 #: pro/app/controllers/PlpLinksController.php:814 1878 msgid "This link expired on %1$s and now redirects to %2$s" 1879 msgstr "" 1880 1881 #: pro/app/controllers/PlpLinksController.php:818 1882 msgid "This link is set to expire after the date %s" 1883 msgstr "" 1884 1885 #: pro/app/controllers/PlpLinksController.php:829 1886 msgid "" 1887 "This link expired after %d clicks and will now cause a 404 error when visited" 1888 msgstr "" 1889 1890 #: pro/app/controllers/PlpLinksController.php:832 1891 msgid "This link expired after %1$d clicks and now redirects to %2$s" 1892 msgstr "" 1893 1894 #: pro/app/controllers/PlpLinksController.php:836 1895 msgid "This link is set to expire after %d clicks" 1896 msgstr "" 1897 1898 #: pro/app/controllers/PlpLinksController.php:844 1899 msgid "This link has additional Target URL rotations" 1900 msgstr "" 1901 1902 #: pro/app/controllers/PlpLinksController.php:847 1903 msgid "This link has additional Geographic Target URLs" 1904 msgstr "" 1905 1906 #: pro/app/controllers/PlpLinksController.php:850 1907 msgid "This link has additional Technology Dependent Conditional Target URLs" 1908 msgstr "" 1909 1910 #: pro/app/controllers/PlpLinksController.php:855 1911 msgid "" 1912 "A Time Period Redirect is currently active for this link. When visited it " 1913 "will currently redirect to %s rather than the Target URL unless the link is " 1914 "expired." 1915 msgstr "" 1916 1917 #: pro/app/controllers/PlpLinksController.php:859 1918 msgid "" 1919 "Time Period Redirects have been setup for this link but the current time is " 1920 "not within any of them currently." 1921 msgstr "" 1922 1923 #: pro/app/controllers/PlpOptionsController.php:102 1924 msgid "Keywords Per Page is required" 1925 msgstr "" 1926 1927 #: pro/app/controllers/PlpOptionsController.php:106 1928 msgid "Keyword Links Per Page is required" 1929 msgstr "" 1930 1931 #: pro/app/controllers/PlpOptionsController.php:111 1932 msgid "" 1933 "You need to enter a valid Pretty Link Base URL now that you have selected " 1934 "\"Use an alternate base url for your Pretty Links\"" 1935 msgstr "" 1936 1937 #: pro/app/controllers/PlpOptionsController.php:116 1938 msgid "" 1939 "You need to enter a valid Public Link Display URL now that you have selected " 1940 "\"Use a custom public link display page\"" 1941 msgstr "" 1942 1943 #: pro/app/controllers/PlpOptionsController.php:122 1944 msgid "Pretty Bar Attribution URL must be a correctly formatted URL" 1945 msgstr "" 1946 1947 #: pro/app/controllers/PlpPostsController.php:50 1948 msgid "Pretty Links Pro" 1949 msgstr "" 1950 1951 #: pro/app/controllers/PlpPostsController.php:54 1952 msgid "Pretty Links Pro Options" 1953 msgstr "" 1954 1955 #: pro/app/controllers/PlpPrettyBarController.php:50 1956 msgid "Logo Image URL must be a correctly formatted URL" 1957 msgstr "" 1958 1959 #: pro/app/controllers/PlpPrettyBarController.php:54 1960 msgid "Background Image URL must be a correctly formatted URL" 1961 msgstr "" 1962 1963 #: pro/app/controllers/PlpPrettyBarController.php:60 1964 msgid "PrettyBar Background Color must be an actual RGB Value" 1965 msgstr "" 1966 1967 #: pro/app/controllers/PlpPrettyBarController.php:64 1968 msgid "PrettyBar Text Color must be an actual RGB Value" 1969 msgstr "" 1970 1971 #: pro/app/controllers/PlpPrettyBarController.php:68 1972 msgid "PrettyBar Link Color must be an actual RGB Value" 1973 msgstr "" 1974 1975 #: pro/app/controllers/PlpPrettyBarController.php:72 1976 #: pro/app/controllers/PlpPrettyBarController.php:76 1977 msgid "PrettyBar Hover Color must be an actual RGB Value" 1978 msgstr "" 1979 1980 #: pro/app/controllers/PlpPrettyBarController.php:80 1981 msgid "PrettyBar Title Character Limit must not be blank" 1982 msgstr "" 1983 1984 #: pro/app/controllers/PlpPrettyBarController.php:84 1985 msgid "PrettyBar Description Character Limit must not be blank" 1986 msgstr "" 1987 1988 #: pro/app/controllers/PlpPrettyBarController.php:88 1989 msgid "PrettyBar Link Character Limit must not be blank" 1990 msgstr "" 1991 1992 #: pro/app/controllers/PlpPrettyBarController.php:92 1993 msgid "PrettyBar Title Character Limit must be a number" 1994 msgstr "" 1995 1996 #: pro/app/controllers/PlpPrettyBarController.php:96 1997 msgid "PrettyBar Description Character Limit must be a number" 1998 msgstr "" 1999 2000 #: pro/app/controllers/PlpPrettyBarController.php:100 2001 msgid "PrettyBar Link Character Limit must be a number" 2002 msgstr "" 2003 2004 #: pro/app/controllers/PlpPublicLinksController.php:98 2005 #: pro/app/helpers/PlpPublicLinksHelper.php:6 2006 msgid "Enter a URL:" 2007 msgstr "" 2008 2009 #: pro/app/controllers/PlpPublicLinksController.php:99 2010 #: pro/app/helpers/PlpPublicLinksHelper.php:7 2011 msgid "Shrink" 2012 msgstr "" 2013 2014 #: pro/app/controllers/PlpReportsController.php:12 2015 msgid "Pretty Links Pro | Reports" 2016 msgstr "" 2017 2018 #: pro/app/controllers/PlpReportsController.php:13 2019 msgid "Pro Reports" 2020 msgstr "" 2021 2022 #: pro/app/controllers/PlpReportsController.php:49 2023 msgid "Create a custom link report and analyze your data." 2024 msgstr "" 2025 2026 #: pro/app/controllers/PlpReportsController.php:60 2027 msgid "View the Split Test Report for %s" 2028 msgstr "" 2029 2030 #: pro/app/controllers/PlpReportsController.php:86 2031 msgid "Your Pretty Link Report was Successfully Created" 2032 msgstr "" 2033 2034 #: pro/app/controllers/PlpReportsController.php:116 2035 msgid "Your Pretty Link Report was Successfully Updated" 2036 msgstr "" 2037 2038 #: pro/app/controllers/PlpReportsController.php:125 2039 msgid "Your Pretty Link Report was Successfully Deleted" 2040 msgstr "" 2041 2042 #: pro/app/helpers/PlpLinksHelper.php:18 pro/app/views/links/form.php:209 2043 msgid "weight:" 2044 msgstr "" 2045 2046 #: pro/app/helpers/PlpPostsHelper.php:19 2047 msgid "Hide Social Buttons on this post." 2048 msgstr "" 2049 2050 #: pro/app/helpers/PlpPostsHelper.php:26 2051 msgid "Disable Keyword Replacements on this post." 2052 msgstr "" 2053 2054 #: pro/app/helpers/PlpPostsHelper.php:44 2055 msgid "A Pretty Link will be created on Publish" 2056 msgstr "" 2057 2058 #: pro/app/helpers/PlpPostsHelper.php:63 2059 #: pro/app/views/reports/custom-report.php:32 2060 #: pro/app/views/reports/custom-report.php:65 2061 #: pro/app/views/reports/split-test-report.php:29 2062 #: pro/app/views/reports/split-test-report.php:61 2063 msgid "Uniques" 2064 msgstr "" 2065 2066 #: pro/app/helpers/PlpPostsHelper.php:68 2067 msgid "edit" 2068 msgstr "" 2069 2070 #: pro/app/helpers/PlpPostsHelper.php:70 2071 msgid "Visit Pretty Link:" 2072 msgstr "" 2073 2074 #: pro/app/helpers/PlpPostsHelper.php:70 2075 msgid "in a New Window" 2076 msgstr "" 2077 2078 #: pro/app/helpers/PlpPostsHelper.php:70 2079 msgid "visit" 2080 msgstr "" 2081 2082 #: pro/app/helpers/PlpPostsHelper.php:76 2083 msgid "" 2084 "A Pretty Link hasn't been generated for this entry yet. Click \"Update Post" 2085 "\" to generate." 2086 msgstr "" 2087 2088 #: pro/app/models/PlpOptions.php:99 2089 msgid "Facebook" 2090 msgstr "" 2091 2092 #: pro/app/models/PlpOptions.php:106 2093 msgid "Twitter" 2094 msgstr "" 2095 2096 #: pro/app/models/PlpOptions.php:113 2097 msgid "Google+" 2098 msgstr "" 2099 2100 #: pro/app/models/PlpOptions.php:120 2101 msgid "Pinterest" 2102 msgstr "" 2103 2104 #: pro/app/models/PlpOptions.php:127 2105 msgid "LinkedIn" 2106 msgstr "" 2107 2108 #: pro/app/models/PlpOptions.php:134 2109 msgid "Reddit" 2110 msgstr "" 2111 2112 #: pro/app/models/PlpOptions.php:141 2113 msgid "StumbleUpon" 2114 msgstr "" 2115 2116 #: pro/app/models/PlpOptions.php:148 2117 msgid "Digg" 2118 msgstr "" 2119 2120 #: pro/app/models/PlpOptions.php:155 2121 msgid "Email" 2122 msgstr "" 2123 2124 #: pro/app/models/PlpOptions.php:238 2125 msgid "Affiliate Link Disclosures" 2126 msgstr "" 2127 2128 #: pro/app/models/PlpOptions.php:247 2129 msgid "(aff)" 2130 msgstr "" 2131 2132 #: pro/app/models/PlpPostOptions.php:33 2133 msgid "This pretty link slug is already taken, please choose a different one" 2134 msgstr "" 2135 2136 #: pro/app/models/PlpReport.php:149 2137 msgid "Report must have a name." 2138 msgstr "" 2139 2140 #: pro/app/models/PlpReport.php:153 2141 msgid "At least one link must be selected for analysis." 2142 msgstr "" 2143 2144 #: pro/app/models/PlpReport.php:244 2145 msgid "Pretty Links Pro: Clicks for" 2146 msgstr "" 2147 2148 #: pro/app/models/PlpReport.php:244 2149 msgid "report between" 2150 msgstr "" 2151 2152 #: pro/app/models/PlpReport.php:251 pro/app/models/PlpReport.php:397 2153 #: pro/app/views/reports/custom-report.php:34 2154 #: pro/app/views/reports/custom-report.php:67 2155 #: pro/app/views/reports/split-test-report.php:31 2156 #: pro/app/views/reports/split-test-report.php:63 2157 msgid "Conversions" 2158 msgstr "" 2159 2160 #: pro/app/models/PlpReport.php:385 2161 msgid "Pretty Links Pro: Split Report for" 2162 msgstr "" 2163 2164 #: pro/app/models/PlpReport.php:397 pro/app/models/PlpReport.php:404 2165 #: pro/app/views/links/form.php:186 2166 msgid "Rotation" 2167 msgstr "" 2168 2169 #: pro/app/models/PlpUtils.php:36 2170 msgid "Google Analyticator" 2171 msgstr "" 2172 2173 #: pro/app/models/PlpUtils.php:39 2174 msgid "Google Analytics by MonsterInsights" 2175 msgstr "" 2176 2177 #: pro/app/views/import-export/form.php:4 2178 msgid "Import / Export Links" 2179 msgstr "" 2180 2181 #: pro/app/views/import-export/form.php:9 2182 #: pro/app/views/import-export/form.php:12 2183 msgid "Export Pretty Links" 2184 msgstr "" 2185 2186 #: pro/app/views/import-export/form.php:13 2187 msgid "Export Links to a CSV File" 2188 msgstr "" 2189 2190 #: pro/app/views/import-export/form.php:17 2191 msgid "Export" 2192 msgstr "" 2193 2194 #: pro/app/views/import-export/form.php:22 2195 #: pro/app/views/import-export/form.php:25 2196 msgid "Import Pretty Links" 2197 msgstr "" 2198 2199 #: pro/app/views/import-export/form.php:26 2200 msgid "" 2201 "There are two ways to import a file.<br/><br/>1) Importing to update " 2202 "existing links and<br/><br/>2) Importing to generate new links. When " 2203 "Importing to generate new links, you must delete the \"id\" column from the " 2204 "CSV before importing. If the \"id\" column is present, Pretty Links Pro will " 2205 "attempt to update existing links." 2206 msgstr "" 2207 2208 #: pro/app/views/import-export/form.php:36 2209 msgid "Import" 2210 msgstr "" 2211 2212 #: pro/app/views/import-export/form.php:39 2213 msgid "Links Import File" 2214 msgstr "" 2215 2216 #: pro/app/views/import-export/form.php:40 2217 msgid "" 2218 "Select a file that has been formatted as a Pretty Link CSV import file and " 2219 "click \"Import\"" 2220 msgstr "" 2221 2222 #: pro/app/views/import-export/form.php:48 2223 msgid "Import/Export Help" 2224 msgstr "" 2225 2226 #: pro/app/views/import-export/import.php:4 2227 msgid "Import Results" 2228 msgstr "" 2229 2230 #: pro/app/views/import-export/import.php:5 2231 msgid "Total Rows:" 2232 msgstr "" 2233 2234 #: pro/app/views/import-export/import.php:7 2235 msgid "Pretty Links were Successfully Created" 2236 msgstr "" 2237 2238 #: pro/app/views/import-export/import.php:8 2239 msgid "Pretty Links were Successfully Updated" 2240 msgstr "" 2241 2242 #: pro/app/views/import-export/import.php:13 2243 msgid "Pretty Links were unable to be Created:" 2244 msgstr "" 2245 2246 #: pro/app/views/import-export/import.php:17 2247 msgid "Error(s) for Pretty Link with Slug:" 2248 msgstr "" 2249 2250 #: pro/app/views/import-export/import.php:32 2251 msgid "Pretty Links were unable to be Updated:" 2252 msgstr "" 2253 2254 #: pro/app/views/import-export/import.php:36 2255 msgid "Error(s) for Pretty Link with id:" 2256 msgstr "" 2257 2258 #: pro/app/views/links/bulk-edit.php:6 2259 msgid "Advanced Link Options" 2260 msgstr "" 2261 2262 #: pro/app/views/links/cloaked-redirect.php:36 2263 msgid "Your browser does not support frames." 2264 msgstr "" 2265 2266 #: pro/app/views/links/form.php:7 2267 msgid "Expire" 2268 msgstr "" 2269 2270 #: pro/app/views/links/form.php:10 2271 msgid "Expire Link" 2272 msgstr "" 2273 2274 #: pro/app/views/links/form.php:11 2275 msgid "Set this link to expire after a specific date or number of clicks." 2276 msgstr "" 2277 2278 #: pro/app/views/links/form.php:26 2279 msgid "Expire After" 2280 msgstr "" 2281 2282 #: pro/app/views/links/form.php:29 2283 msgid "Expiration Type" 2284 msgstr "" 2285 2286 #: pro/app/views/links/form.php:30 2287 msgid "" 2288 "Select the type of expiration you want for this link.<br/><br/><b>Date</b> " 2289 "Select this option if you'd like to expire your link after a certain date." 2290 "<br/><br/><b>Clicks</b>: Select this option to expire this link after it has " 2291 "been clicked a specific number of times." 2292 msgstr "" 2293 2294 #: pro/app/views/links/form.php:51 2295 msgid "Number of Clicks" 2296 msgstr "" 2297 2298 #: pro/app/views/links/form.php:52 2299 msgid "" 2300 "Enter the number of times this link can be clicked before it expires.<br/" 2301 "><br/><b>Note: Expirations based on clicks wouldn't work properly if you had " 2302 "tracking turned off for this link so as long as this is set to Clicks, " 2303 "Pretty Link will ensure tracking is turned on for this link as well.</b>" 2304 msgstr "" 2305 2306 #: pro/app/views/links/form.php:71 2307 msgid "Expiration Date" 2308 msgstr "" 2309 2310 #: pro/app/views/links/form.php:72 2311 msgid "" 2312 "Enter a date here in the format YYYY-MM-DD to set when this link should " 2313 "expire." 2314 msgstr "" 2315 2316 #: pro/app/views/links/form.php:88 2317 msgid "Expired Redirect" 2318 msgstr "" 2319 2320 #: pro/app/views/links/form.php:91 2321 msgid "Redirect to URL when Expired" 2322 msgstr "" 2323 2324 #: pro/app/views/links/form.php:92 2325 msgid "" 2326 "When this link expires, do you want to redirect to a specific URL. You can " 2327 "use this to redirect to a page you've setup to indicate that the link is " 2328 "expired.<br/><br/><b>Note: If this is not set the link will throw a 404 " 2329 "error when expired</b>." 2330 msgstr "" 2331 2332 #: pro/app/views/links/form.php:107 pro/app/views/options/form.php:165 2333 msgid "URL" 2334 msgstr "" 2335 2336 #: pro/app/views/links/form.php:110 2337 msgid "Expired URL" 2338 msgstr "" 2339 2340 #: pro/app/views/links/form.php:111 2341 msgid "" 2342 "This is the URL that this link will redirect to after the expiration date " 2343 "above." 2344 msgstr "" 2345 2346 #: pro/app/views/links/form.php:131 2347 msgid "Auto-Replace Keywords" 2348 msgstr "" 2349 2350 #: pro/app/views/links/form.php:132 2351 msgid "" 2352 "Enter a comma separated list of keywords / keyword phrases that you'd like " 2353 "to replace with this link in your Posts & Pages." 2354 msgstr "" 2355 2356 #: pro/app/views/links/form.php:140 2357 msgid "URL Replacements" 2358 msgstr "" 2359 2360 #: pro/app/views/links/form.php:143 2361 msgid "Auto-Replace URLs" 2362 msgstr "" 2363 2364 #: pro/app/views/links/form.php:144 2365 msgid "" 2366 "Enter a comma separated list of the URLs that you'd like to replace with " 2367 "this Pretty Link in your Posts & Pages. These must be formatted as URLs " 2368 "for example: <code>http://example.com</code> or <code>http://example.com?" 2369 "product_id=53</code>" 2370 msgstr "" 2371 2372 #: pro/app/views/links/form.php:159 pro/app/views/links/form.php:162 2373 msgid "Head Scripts" 2374 msgstr "" 2375 2376 #: pro/app/views/links/form.php:163 2377 msgid "" 2378 "Useful for adding Google Analytics tracking, Facebook retargeting pixels, or " 2379 "any other kind of tracking script to the HTML head for this pretty link.<br/" 2380 "><br/>These scripts will be in addition to any global one's you've defined " 2381 "in the options.<br/><br/><b>NOTE:</b> This does NOT work with 301, 302 and " 2382 "307 type redirects." 2383 msgstr "" 2384 2385 #: pro/app/views/links/form.php:176 2386 msgid "Dynamic Redirection" 2387 msgstr "" 2388 2389 #: pro/app/views/links/form.php:179 2390 msgid "Dynamic Redirection Options" 2391 msgstr "" 2392 2393 #: pro/app/views/links/form.php:180 2394 msgid "" 2395 "These powerful options are available to give you dynamic control over " 2396 "redirection for this pretty link." 2397 msgstr "" 2398 2399 #: pro/app/views/links/form.php:187 2400 msgid "Geographic" 2401 msgstr "" 2402 2403 #: pro/app/views/links/form.php:188 2404 msgid "Technology" 2405 msgstr "" 2406 2407 #: pro/app/views/links/form.php:189 2408 msgid "Time" 2409 msgstr "" 2410 2411 #: pro/app/views/links/form.php:199 pro/app/views/links/form.php:202 2412 msgid "Target URL Rotations" 2413 msgstr "" 2414 2415 #: pro/app/views/links/form.php:203 2416 msgid "" 2417 "Enter the Target URLs that you'd like to rotate through when this Pretty " 2418 "Link is Clicked. These must be formatted as URLs example: <code>http://" 2419 "example.com</code> or <code>http://example.com?product_id=53</code>" 2420 msgstr "" 2421 2422 #: pro/app/views/links/form.php:208 2423 msgid "Target URL (above)" 2424 msgstr "" 2425 2426 #: pro/app/views/links/form.php:220 2427 msgid "Add Link Rotation" 2428 msgstr "" 2429 2430 #: pro/app/views/links/form.php:226 2431 msgid "Split Test" 2432 msgstr "" 2433 2434 #: pro/app/views/links/form.php:229 2435 msgid "Split Test This Link" 2436 msgstr "" 2437 2438 #: pro/app/views/links/form.php:230 2439 msgid "" 2440 "Split testing will enable you to track the effectiveness of several links " 2441 "against each other. This works best when you have multiple link rotation " 2442 "URLs entered." 2443 msgstr "" 2444 2445 #: pro/app/views/links/form.php:246 pro/app/views/reports/list.php:31 2446 #: pro/app/views/reports/list.php:71 2447 msgid "Goal Link" 2448 msgstr "" 2449 2450 #: pro/app/views/links/form.php:249 2451 msgid "Goal Link for Split Test" 2452 msgstr "" 2453 2454 #: pro/app/views/links/form.php:250 2455 msgid "This is the goal link for your split test." 2456 msgstr "" 2457 2458 #: pro/app/views/links/form.php:261 2459 msgid "id: %1$s | slug: %3$s | name: %2$s%4$s" 2460 msgstr "" 2461 2462 #: pro/app/views/links/form.php:281 pro/app/views/links/form.php:284 2463 msgid "Geographic Redirects" 2464 msgstr "" 2465 2466 #: pro/app/views/links/form.php:285 2467 msgid "" 2468 "This will enable you to setup specific target urls that this pretty link " 2469 "will redirect to based on the country of the person visiting the url." 2470 msgstr "" 2471 2472 #: pro/app/views/links/form.php:290 pro/app/views/links/form.php:304 2473 #: pro/app/views/links/form.php:318 2474 msgid "Add" 2475 msgstr "" 2476 2477 #: pro/app/views/links/form.php:295 pro/app/views/links/form.php:298 2478 msgid "Technology Redirects" 2479 msgstr "" 2480 2481 #: pro/app/views/links/form.php:299 2482 msgid "" 2483 "This will allow you to redirect based on your visitor's device, operating " 2484 "system and/or browser" 2485 msgstr "" 2486 2487 #: pro/app/views/links/form.php:309 pro/app/views/links/form.php:312 2488 msgid "Time Period Redirects" 2489 msgstr "" 2490 2491 #: pro/app/views/links/form.php:313 2492 msgid "" 2493 "This will allow you to redirect based on the time period in which your " 2494 "visitor visits this link.<br/><br/><b>Note: If your visitor doesn't visit " 2495 "the link during any of the specified time periods set here, they'll simply " 2496 "be redirected to the main target url.</b>" 2497 msgstr "" 2498 2499 #: pro/app/views/links/geo_row.php:12 2500 msgid "Countries:" 2501 msgstr "" 2502 2503 #: pro/app/views/links/geo_row.php:15 2504 msgid "Technology Redirection Countries" 2505 msgstr "" 2506 2507 #: pro/app/views/links/geo_row.php:16 2508 msgid "" 2509 "This is a comma-separated list of countries that this redirect will match " 2510 "on. Just start typing a country's name and an autocomplete dropdown will " 2511 "appear to select from. Once a country is selected, feel free to start typing " 2512 "the name of another country. You can add as many as you'd like this redirect " 2513 "to match on" 2514 msgstr "" 2515 2516 #: pro/app/views/links/geo_row.php:25 pro/app/views/links/tech_row.php:79 2517 #: pro/app/views/links/time_row.php:39 2518 msgid "URL:" 2519 msgstr "" 2520 2521 #: pro/app/views/links/geo_row.php:28 2522 msgid "Geographic Redirection URL" 2523 msgstr "" 2524 2525 #: pro/app/views/links/geo_row.php:29 2526 msgid "" 2527 "This is the URL that this Pretty Link will redirect to if the visitor's " 2528 "country match the settings here." 2529 msgstr "" 2530 2531 #: pro/app/views/links/geo_row.php:38 pro/app/views/links/tech_row.php:92 2532 #: pro/app/views/links/time_row.php:52 2533 msgid "Remove" 2534 msgstr "" 2535 2536 #: pro/app/views/links/link-has-expired.php:9 2537 msgid "Link Not Found" 2538 msgstr "" 2539 2540 #: pro/app/views/links/link-has-expired.php:33 2541 msgid "Sorry, this link has expired" 2542 msgstr "" 2543 2544 #: pro/app/views/links/link-options.php:3 2545 #: pro/app/views/links/link-options.php:5 2546 msgid "Base Slug Prefix" 2547 msgstr "" 2548 2549 #: pro/app/views/links/link-options.php:6 2550 msgid "" 2551 "Use this to prefix all newly generated pretty links with a directory of your " 2552 "choice. For example set to <b>out</b> to make your pretty links look like " 2553 "http://site.com/<b>out</b>/xyz. Changing this option will NOT affect " 2554 "existing pretty links. If you do not wish to use a directory prefix, leave " 2555 "this text field blank. Whatever you type here will be sanitized and modified " 2556 "to ensure it is URL-safe. So <b>Hello World</b> might get changed to " 2557 "something like <b>hello-world</b> instead. Lowercase letters, numbers, " 2558 "dashes, and underscores are allowed." 2559 msgstr "" 2560 2561 #: pro/app/views/links/link-options.php:16 2562 #: pro/app/views/links/link-options.php:18 2563 msgid "Slug Character Count" 2564 msgstr "" 2565 2566 #: pro/app/views/links/link-options.php:19 2567 msgid "" 2568 "The number of characters to use when auto-generating a random slug for " 2569 "pretty links. The default is 4. You cannot use less than 2." 2570 msgstr "" 2571 2572 #: pro/app/views/links/link-options.php:29 2573 #: pro/app/views/links/link-options.php:30 2574 msgid "Enable Google Analytics" 2575 msgstr "" 2576 2577 #: pro/app/views/links/link-options.php:31 2578 msgid "" 2579 "Requires Google Analyticator, Google Analytics by MonsterInsights (formerly " 2580 "Yoast), or the Google Analytics Plugin to be installed and configured on " 2581 "your site." 2582 msgstr "" 2583 2584 #: pro/app/views/links/link-options.php:41 2585 msgid "Enable %sQR Codes%s" 2586 msgstr "" 2587 2588 #: pro/app/views/links/link-options.php:43 2589 msgid "Generate QR Codes" 2590 msgstr "" 2591 2592 #: pro/app/views/links/link-options.php:44 2593 msgid "" 2594 "This will enable a link in your pretty link admin that will allow you to " 2595 "automatically download a QR Code for each individual Pretty Link." 2596 msgstr "" 2597 2598 #: pro/app/views/links/link-options.php:54 2599 #: pro/app/views/links/link-options.php:56 2600 msgid "Global Head Scripts" 2601 msgstr "" 2602 2603 #: pro/app/views/links/link-options.php:57 2604 msgid "" 2605 "Useful for adding Google Analytics tracking, Facebook retargeting pixels, or " 2606 "any other kind of tracking script to the HTML head.<br/><br/>What you enter " 2607 "in this box will be applied to all supported pretty links.<br/><br/><b>NOTE:" 2608 "</b> This does NOT work with 301, 302 and 307 type redirects." 2609 msgstr "" 2610 2611 #: pro/app/views/links/prettybar.php:174 2612 msgid "Share on Twitter" 2613 msgstr "" 2614 2615 #: pro/app/views/links/prettybar.php:191 2616 msgid "Powered by" 2617 msgstr "" 2618 2619 #: pro/app/views/links/tech_row.php:14 2620 msgid "Device:" 2621 msgstr "" 2622 2623 #: pro/app/views/links/tech_row.php:17 2624 msgid "Technology Redirection Device" 2625 msgstr "" 2626 2627 #: pro/app/views/links/tech_row.php:18 2628 msgid "" 2629 "<b>Desktop</b> will match on any conventional laptop or desktop computer.<br/" 2630 "><br/><b>Mobile</b> will match on any phone, tablet or other portable device." 2631 "<br/><br/><b>Phone</b> will match on any phone or similarly small device.<br/" 2632 "><br/><b>Tablet</b> will match on any tablet sized device." 2633 msgstr "" 2634 2635 #: pro/app/views/links/tech_row.php:23 pro/app/views/links/tech_row.php:42 2636 #: pro/app/views/links/tech_row.php:62 2637 msgid "Any" 2638 msgstr "" 2639 2640 #: pro/app/views/links/tech_row.php:24 2641 msgid "Desktop" 2642 msgstr "" 2643 2644 #: pro/app/views/links/tech_row.php:25 2645 msgid "Mobile" 2646 msgstr "" 2647 2648 #: pro/app/views/links/tech_row.php:26 2649 msgid "Phone" 2650 msgstr "" 2651 2652 #: pro/app/views/links/tech_row.php:27 2653 msgid "Tablet" 2654 msgstr "" 2655 2656 #: pro/app/views/links/tech_row.php:33 2657 msgid "Operating System:" 2658 msgstr "" 2659 2660 #: pro/app/views/links/tech_row.php:36 2661 msgid "Technology Redirection OS" 2662 msgstr "" 2663 2664 #: pro/app/views/links/tech_row.php:37 2665 msgid "" 2666 "Use this dropdown to select which Operating System this redirect will match " 2667 "on." 2668 msgstr "" 2669 2670 #: pro/app/views/links/tech_row.php:43 pro/app/views/links/tech_row.php:64 2671 msgid "Android" 2672 msgstr "" 2673 2674 #: pro/app/views/links/tech_row.php:44 2675 msgid "iOS" 2676 msgstr "" 2677 2678 #: pro/app/views/links/tech_row.php:45 2679 msgid "Linux" 2680 msgstr "" 2681 2682 #: pro/app/views/links/tech_row.php:46 2683 msgid "Mac" 2684 msgstr "" 2685 2686 #: pro/app/views/links/tech_row.php:47 2687 msgid "Windows" 2688 msgstr "" 2689 2690 #: pro/app/views/links/tech_row.php:53 2691 msgid "Browser:" 2692 msgstr "" 2693 2694 #: pro/app/views/links/tech_row.php:56 2695 msgid "Technology Redirection Browser" 2696 msgstr "" 2697 2698 #: pro/app/views/links/tech_row.php:57 2699 msgid "Use this dropdown to select which Browser this redirect will match on." 2700 msgstr "" 2701 2702 #: pro/app/views/links/tech_row.php:63 2703 msgid "Amazon Silk" 2704 msgstr "" 2705 2706 #: pro/app/views/links/tech_row.php:65 2707 msgid "Chrome" 2708 msgstr "" 2709 2710 #: pro/app/views/links/tech_row.php:66 2711 msgid "Chromium" 2712 msgstr "" 2713 2714 #: pro/app/views/links/tech_row.php:67 2715 msgid "Edge" 2716 msgstr "" 2717 2718 #: pro/app/views/links/tech_row.php:68 2719 msgid "Firefox" 2720 msgstr "" 2721 2722 #: pro/app/views/links/tech_row.php:69 2723 msgid "Internet Explorer" 2724 msgstr "" 2725 2726 #: pro/app/views/links/tech_row.php:70 2727 msgid "Kindle" 2728 msgstr "" 2729 2730 #: pro/app/views/links/tech_row.php:71 2731 msgid "Opera" 2732 msgstr "" 2733 2734 #: pro/app/views/links/tech_row.php:72 2735 msgid "Opera Coast" 2736 msgstr "" 2737 2738 #: pro/app/views/links/tech_row.php:73 2739 msgid "Safari" 2740 msgstr "" 2741 2742 #: pro/app/views/links/tech_row.php:82 2743 msgid "Technology Redirection URL" 2744 msgstr "" 2745 2746 #: pro/app/views/links/tech_row.php:83 2747 msgid "" 2748 "This is the URL that this Pretty Link will redirect to if the visitor's " 2749 "device, os and browser match the settings here." 2750 msgstr "" 2751 2752 #: pro/app/views/links/time_row.php:13 2753 msgid "Start Time:" 2754 msgstr "" 2755 2756 #: pro/app/views/links/time_row.php:16 2757 msgid "Start of Time Period" 2758 msgstr "" 2759 2760 #: pro/app/views/links/time_row.php:17 2761 msgid "" 2762 "This is where you'll enter the beginning of the time period for this redirect" 2763 msgstr "" 2764 2765 #: pro/app/views/links/time_row.php:26 2766 msgid "End Time:" 2767 msgstr "" 2768 2769 #: pro/app/views/links/time_row.php:29 2770 msgid "End of Time Period" 2771 msgstr "" 2772 2773 #: pro/app/views/links/time_row.php:30 2774 msgid "This is where you'll enter the end of the time period for this redirect" 2775 msgstr "" 2776 2777 #: pro/app/views/links/time_row.php:42 2778 msgid "Time Period Redirect URL" 2779 msgstr "" 2780 2781 #: pro/app/views/links/time_row.php:43 2782 msgid "" 2783 "This is the URL that this Pretty Link will redirect to when the visitor " 2784 "visits the link in the associated time period." 2785 msgstr "" 2786 2787 #: pro/app/views/options/autocreate.php:7 2788 msgid "%s Shortlinks" 2789 msgstr "" 2790 2791 #: pro/app/views/options/autocreate.php:10 2792 msgid "Create Pretty Links for %s" 2793 msgstr "" 2794 2795 #: pro/app/views/options/autocreate.php:11 2796 msgid "Automatically Create a Pretty Link for each of your published %s" 2797 msgstr "" 2798 2799 #: pro/app/views/options/autocreate.php:33 2800 msgid "%s Auto Link Group" 2801 msgstr "" 2802 2803 #: pro/app/views/options/autocreate.php:34 2804 msgid "Group that Pretty Links for %s will be automatically added to." 2805 msgstr "" 2806 2807 #: pro/app/views/options/autocreate.php:47 2808 msgid "Show Social Buttons" 2809 msgstr "" 2810 2811 #: pro/app/views/options/autocreate.php:50 2812 msgid "Show Social Buttons on %s" 2813 msgstr "" 2814 2815 #: pro/app/views/options/autocreate.php:51 2816 msgid "" 2817 "If this button is checked then you'll have the ability to include a social " 2818 "buttons bar on your %s." 2819 msgstr "" 2820 2821 #: pro/app/views/options/form.php:4 2822 msgid "Keyword & URL Auto Replacements Options" 2823 msgstr "" 2824 2825 #: pro/app/views/options/form.php:13 2826 msgid "Enable Replacements" 2827 msgstr "" 2828 2829 #: pro/app/views/options/form.php:15 2830 msgid "Enable Keyword and URL Auto Replacement" 2831 msgstr "" 2832 2833 #: pro/app/views/options/form.php:16 2834 msgid "" 2835 "If checked, this will enable you to automatically replace keywords and/or " 2836 "URLs on your blog with pretty links. You will specify the specific keywords " 2837 "and urls from your Pretty Link edit page." 2838 msgstr "" 2839 2840 #: pro/app/views/options/form.php:34 2841 msgid "Thresholds" 2842 msgstr "" 2843 2844 #: pro/app/views/options/form.php:36 2845 msgid "Set Keyword Replacement Thresholds" 2846 msgstr "" 2847 2848 #: pro/app/views/options/form.php:37 2849 msgid "" 2850 "Don't want to have too many keyword replacements per page? Select to set " 2851 "some reasonable keyword replacement thresholds." 2852 msgstr "" 2853 2854 #: pro/app/views/options/form.php:54 2855 msgid "Max Keywords" 2856 msgstr "" 2857 2858 #: pro/app/views/options/form.php:56 2859 msgid "Set Maximum Keywords per Page" 2860 msgstr "" 2861 2862 #: pro/app/views/options/form.php:57 2863 msgid "" 2864 "Maximum number of unique keyword / keyphrases you can replace with Pretty " 2865 "Links per page." 2866 msgstr "" 2867 2868 #: pro/app/views/options/form.php:68 2869 msgid "Max Replacements" 2870 msgstr "" 2871 2872 #: pro/app/views/options/form.php:70 2873 msgid "Set Maximum Replacements per Keyword" 2874 msgstr "" 2875 2876 #: pro/app/views/options/form.php:71 2877 msgid "Maximum number of Pretty Link replacements per Keyword / Keyphrase." 2878 msgstr "" 2879 2880 #: pro/app/views/options/form.php:87 2881 msgid "Open in New Window" 2882 msgstr "" 2883 2884 #: pro/app/views/options/form.php:89 2885 msgid "Open Keyword Replacement Links in New Window" 2886 msgstr "" 2887 2888 #: pro/app/views/options/form.php:90 2889 msgid "" 2890 "Ensure that these keyword replacement links are opened in a separate window. " 2891 "<strong>Note:</strong> This does not apply to url replacements--only keyword " 2892 "replacements." 2893 msgstr "" 2894 2895 #: pro/app/views/options/form.php:101 2896 msgid "Add No Follows" 2897 msgstr "" 2898 2899 #: pro/app/views/options/form.php:103 2900 msgid "Add 'nofollow' attribute to all Keyword Pretty Links" 2901 msgstr "" 2902 2903 #: pro/app/views/options/form.php:104 2904 msgid "" 2905 "This adds the html <code>NOFOLLOW</code> attribute to all keyword " 2906 "replacement links. <strong>Note:</strong> This does not apply to url " 2907 "replacements--only keyword replacements." 2908 msgstr "" 2909 2910 #: pro/app/views/options/form.php:115 2911 msgid "Custom CSS" 2912 msgstr "" 2913 2914 #: pro/app/views/options/form.php:117 2915 msgid "Add custom CSS to your keyword replacement links" 2916 msgstr "" 2917 2918 #: pro/app/views/options/form.php:118 2919 msgid "" 2920 "Add some custom formatting to your keyword pretty link replacements. " 2921 "<strong>Note:</strong> This does not apply to url replacements--only keyword " 2922 "replacements." 2923 msgstr "" 2924 2925 #: pro/app/views/options/form.php:129 2926 msgid "Custom Hover CSS" 2927 msgstr "" 2928 2929 #: pro/app/views/options/form.php:131 2930 msgid "Add custom hover CSS to your keyword replacement links" 2931 msgstr "" 2932 2933 #: pro/app/views/options/form.php:132 2934 msgid "" 2935 "Add some custom formatting to the hover attribute of your keyword pretty " 2936 "links. <strong>Note:</strong> This does not apply to url replacements--only " 2937 "keyword replacements." 2938 msgstr "" 2939 2940 #: pro/app/views/options/form.php:143 2941 msgid "Link to Disclosures" 2942 msgstr "" 2943 2944 #: pro/app/views/options/form.php:146 2945 msgid "Automatically Add a Link to Disclosures" 2946 msgstr "" 2947 2948 #: pro/app/views/options/form.php:147 2949 msgid "" 2950 "When enabled, this will add a link to your official affiliate link " 2951 "disclosure page to any page, post or custom post type that have any keyword " 2952 "or URL replacements. You'll also be able to customize the URL and position " 2953 "of the disclosure link." 2954 msgstr "" 2955 2956 #: pro/app/views/options/form.php:168 2957 msgid "Disclosures Link URL" 2958 msgstr "" 2959 2960 #: pro/app/views/options/form.php:169 2961 msgid "" 2962 "This is the URL of the page that contains your official affiliate link " 2963 "disclosures. This URL will be used in the link that will be generated." 2964 msgstr "" 2965 2966 #: pro/app/views/options/form.php:180 2967 msgid "Text" 2968 msgstr "" 2969 2970 #: pro/app/views/options/form.php:183 2971 msgid "Disclosures Link Text" 2972 msgstr "" 2973 2974 #: pro/app/views/options/form.php:184 2975 msgid "" 2976 "This is the text of the link to your disclosures. This text will be visible " 2977 "to your visitors when the link is displayed." 2978 msgstr "" 2979 2980 #: pro/app/views/options/form.php:195 2981 msgid "Position" 2982 msgstr "" 2983 2984 #: pro/app/views/options/form.php:198 2985 msgid "Disclosures Link Position" 2986 msgstr "" 2987 2988 #: pro/app/views/options/form.php:199 2989 msgid "" 2990 "This is the position of the link to your disclosures in relation to your " 2991 "post content." 2992 msgstr "" 2993 2994 #: pro/app/views/options/form.php:205 pro/app/views/options/form.php:701 2995 msgid "Bottom" 2996 msgstr "" 2997 2998 #: pro/app/views/options/form.php:206 pro/app/views/options/form.php:700 2999 msgid "Top" 3000 msgstr "" 3001 3002 #: pro/app/views/options/form.php:207 pro/app/views/options/form.php:702 3003 msgid "Top and Bottom" 3004 msgstr "" 3005 3006 #: pro/app/views/options/form.php:219 3007 msgid "Keyword Disclosures" 3008 msgstr "" 3009 3010 #: pro/app/views/options/form.php:222 3011 msgid "Automatically Add Affiliate Link Disclosures to Keyword Replacements" 3012 msgstr "" 3013 3014 #: pro/app/views/options/form.php:223 3015 msgid "" 3016 "When enabled, this will add an affiliate link disclosure next to each one of " 3017 "your keyword replacements. <b>Note:</b> This does not apply to url " 3018 "replacements--only keyword replacements." 3019 msgstr "" 3020 3021 #: pro/app/views/options/form.php:241 3022 msgid "Disclosure Text" 3023 msgstr "" 3024 3025 #: pro/app/views/options/form.php:244 3026 msgid "Keyword Link Disclosure Text" 3027 msgstr "" 3028 3029 #: pro/app/views/options/form.php:245 3030 msgid "" 3031 "This is the text that will be added after each keyword replacement to " 3032 "indicate that the link is an affiliate link." 3033 msgstr "" 3034 3035 #: pro/app/views/options/form.php:261 3036 msgid "Replace All URLs" 3037 msgstr "" 3038 3039 #: pro/app/views/options/form.php:263 3040 msgid "Replace All non-Pretty Link URLs With Pretty Link URLs" 3041 msgstr "" 3042 3043 #: pro/app/views/options/form.php:264 3044 msgid "" 3045 "This feature will take each url it finds and create or use an existing " 3046 "pretty link pointing to the url and replace it with the pretty link." 3047 msgstr "" 3048 3049 #: pro/app/views/options/form.php:281 3050 msgid "Domain Blacklist" 3051 msgstr "" 3052 3053 #: pro/app/views/options/form.php:283 3054 msgid "Do not replace links from these domains" 3055 msgstr "" 3056 3057 #: pro/app/views/options/form.php:284 3058 msgid "" 3059 "Any links on your site which point to domains you define here will not be " 3060 "replaced automatically with Pretty Links. Place one domain per line.<br/><br/" 3061 ">You MUST enter http:// or https:// in front of the domain names and do NOT " 3062 "include any /'s or other text after the domain name.<br/><br/>Proper entry " 3063 "example:<br/><b>https://www.google.com</b><br/><b>http://mysite.org</b><br/" 3064 "><br/>Improperly entered domains will be removed upon saving the Options." 3065 msgstr "" 3066 3067 #: pro/app/views/options/form.php:300 3068 msgid "Replace in Comments" 3069 msgstr "" 3070 3071 #: pro/app/views/options/form.php:302 3072 msgid "Replace Keywords and URLs in Comments" 3073 msgstr "" 3074 3075 #: pro/app/views/options/form.php:303 3076 msgid "" 3077 "This option will enable the keyword / URL replacement routine to run in " 3078 "Comments." 3079 msgstr "" 3080 3081 #: pro/app/views/options/form.php:314 3082 msgid "Replace in Feeds" 3083 msgstr "" 3084 3085 #: pro/app/views/options/form.php:316 3086 msgid "Replace Keywords and URLs in Feeds" 3087 msgstr "" 3088 3089 #: pro/app/views/options/form.php:317 3090 msgid "" 3091 "This option will enable the keyword / URL replacement routine to run in RSS " 3092 "Feeds.<br/><strong>Note:</strong> This option can slow the load speed of " 3093 "your RSS feed -- unless used in conjunction with a caching plugin like W3 " 3094 "Total Cache or WP Super Cache.<br/><strong>Note #2</strong> This option will " 3095 "only work if you have \"Full Text\" selected in your General WordPress " 3096 "Reading settings.<br/><strong>Note #3:</strong> If this option is used along " 3097 "with \"Replace Keywords and URLs in Comments\" then your post comment feeds " 3098 "will have keywords replaced in them as well." 3099 msgstr "" 3100 3101 #: pro/app/views/options/form.php:328 pro/app/views/options/form.php:330 3102 msgid "Index Replacements" 3103 msgstr "" 3104 3105 #: pro/app/views/options/form.php:331 3106 msgid "" 3107 "This feature will index all of your keyword & URL replacements to " 3108 "dramatically improve performance.<br/><br/>If your site has a large number " 3109 "of replacements and/or posts then this feature may increase the load on your " 3110 "server temporarily and your replacements may not show up on your posts for a " 3111 "day or two initially (until all posts are indexed).<br/><br/><strong>Note:</" 3112 "strong> this feature requires the use of wp-cron." 3113 msgstr "" 3114 3115 #: pro/app/views/options/form.php:348 pro/app/views/options/form.php:350 3116 msgid "Keyword Index Status" 3117 msgstr "" 3118 3119 #: pro/app/views/options/form.php:351 3120 msgid "" 3121 "This shows how many posts have keywords indexed for and are ready for " 3122 "replacement." 3123 msgstr "" 3124 3125 #: pro/app/views/options/form.php:359 pro/app/views/options/form.php:382 3126 msgid "%1$s out of %2$s Posts Indexed" 3127 msgstr "" 3128 3129 #: pro/app/views/options/form.php:363 pro/app/views/options/form.php:386 3130 msgid "%1$s out of %2$s Comments Indexed" 3131 msgstr "" 3132 3133 #: pro/app/views/options/form.php:371 3134 msgid "URL Index Status" 3135 msgstr "" 3136 3137 #: pro/app/views/options/form.php:373 3138 msgid "URL Replacements Index Status" 3139 msgstr "" 3140 3141 #: pro/app/views/options/form.php:374 3142 msgid "" 3143 "This shows how many posts have url replacements indexed for and are ready " 3144 "for replacement." 3145 msgstr "" 3146 3147 #: pro/app/views/options/form.php:402 3148 msgid "Auto-Create Shortlink Options" 3149 msgstr "" 3150 3151 #: pro/app/views/options/form.php:423 3152 msgid "Pretty Bar Options" 3153 msgstr "" 3154 3155 #: pro/app/views/options/form.php:429 3156 msgid "Image URL" 3157 msgstr "" 3158 3159 #: pro/app/views/options/form.php:431 3160 msgid "Pretty Bar Image URL" 3161 msgstr "" 3162 3163 #: pro/app/views/options/form.php:432 3164 msgid "" 3165 "If set, this will replace the logo image on the Pretty Bar. The image that " 3166 "this URL references should be 48x48 Pixels to fit." 3167 msgstr "" 3168 3169 #: pro/app/views/options/form.php:443 3170 msgid "Background Image URL" 3171 msgstr "" 3172 3173 #: pro/app/views/options/form.php:445 3174 msgid "Pretty Bar Background Image URL" 3175 msgstr "" 3176 3177 #: pro/app/views/options/form.php:446 3178 msgid "" 3179 "If set, this will replace the background image on Pretty Bar. The image that " 3180 "this URL references should be 65px tall - this image will be repeated " 3181 "horizontally across the bar." 3182 msgstr "" 3183 3184 #: pro/app/views/options/form.php:457 3185 msgid "Background Color" 3186 msgstr "" 3187 3188 #: pro/app/views/options/form.php:459 3189 msgid "Pretty Bar Background Color" 3190 msgstr "" 3191 3192 #: pro/app/views/options/form.php:460 3193 msgid "" 3194 "This will alter the background color of the Pretty Bar if you haven't " 3195 "specified a Pretty Bar background image." 3196 msgstr "" 3197 3198 #: pro/app/views/options/form.php:471 3199 msgid "Text Color" 3200 msgstr "" 3201 3202 #: pro/app/views/options/form.php:473 3203 msgid "Pretty Bar Text Color" 3204 msgstr "" 3205 3206 #: pro/app/views/options/form.php:474 3207 msgid "" 3208 "If not set, this defaults to black (RGB value <code>#000000</code>) but you " 3209 "can change it to whatever color you like." 3210 msgstr "" 3211 3212 #: pro/app/views/options/form.php:485 3213 msgid "Link Color" 3214 msgstr "" 3215 3216 #: pro/app/views/options/form.php:487 3217 msgid "Pretty Bar Link Color" 3218 msgstr "" 3219 3220 #: pro/app/views/options/form.php:488 3221 msgid "" 3222 "If not set, this defaults to blue (RGB value <code>#0000ee</code>) but you " 3223 "can change it to whatever color you like." 3224 msgstr "" 3225 3226 #: pro/app/views/options/form.php:499 3227 msgid "Link Hover Color" 3228 msgstr "" 3229 3230 #: pro/app/views/options/form.php:501 3231 msgid "Pretty Bar Link Hover Color" 3232 msgstr "" 3233 3234 #: pro/app/views/options/form.php:502 3235 msgid "" 3236 "If not set, this defaults to RGB value <code>#ababab</code> but you can " 3237 "change it to whatever color you like." 3238 msgstr "" 3239 3240 #: pro/app/views/options/form.php:513 3241 msgid "Visited Link Color" 3242 msgstr "" 3243 3244 #: pro/app/views/options/form.php:515 3245 msgid "Pretty Bar Visited Link Color" 3246 msgstr "" 3247 3248 #: pro/app/views/options/form.php:516 3249 msgid "" 3250 "If not set, this defaults to RGB value <code>#551a8b</code> but you can " 3251 "change it to whatever color you like." 3252 msgstr "" 3253 3254 #: pro/app/views/options/form.php:527 3255 msgid "Title Char Limit" 3256 msgstr "" 3257 3258 #: pro/app/views/options/form.php:529 3259 msgid "Pretty Bar Title Char Limit" 3260 msgstr "" 3261 3262 #: pro/app/views/options/form.php:530 3263 msgid "" 3264 "If your Website has a long title then you may need to adjust this value so " 3265 "that it will all fit on the Pretty Bar. It is recommended that you keep this " 3266 "value to <code>30</code> characters or less so the Pretty Bar's format looks " 3267 "good across different browsers and screen resolutions." 3268 msgstr "" 3269 3270 #: pro/app/views/options/form.php:541 3271 msgid "Description Char Limit" 3272 msgstr "" 3273 3274 #: pro/app/views/options/form.php:543 3275 msgid "Pretty Bar Description Char Limit" 3276 msgstr "" 3277 3278 #: pro/app/views/options/form.php:544 3279 msgid "" 3280 "If your Website has a long Description (tagline) then you may need to adjust " 3281 "this value so that it will all fit on the Pretty Bar. It is recommended that " 3282 "you keep this value to <code>40</code> characters or less so the Pretty " 3283 "Bar's format looks good across different browsers and screen resolutions." 3284 msgstr "" 3285 3286 #: pro/app/views/options/form.php:555 3287 msgid "Target URL Char Limit" 3288 msgstr "" 3289 3290 #: pro/app/views/options/form.php:557 3291 msgid "Pretty Bar Target URL Char Limit" 3292 msgstr "" 3293 3294 #: pro/app/views/options/form.php:558 3295 msgid "" 3296 "If you link to a lot of large Target URLs you may want to adjust this value. " 3297 "It is recommended that you keep this value to <code>40</code> or below so " 3298 "the Pretty Bar's format looks good across different browsers and URL sizes" 3299 msgstr "" 3300 3301 #: pro/app/views/options/form.php:569 3302 msgid "Show Title" 3303 msgstr "" 3304 3305 #: pro/app/views/options/form.php:571 3306 msgid "Pretty Bar Show Title" 3307 msgstr "" 3308 3309 #: pro/app/views/options/form.php:572 3310 msgid "" 3311 "Make sure this is checked if you want the title of your blog (and link) to " 3312 "show up on the Pretty Bar." 3313 msgstr "" 3314 3315 #: pro/app/views/options/form.php:583 3316 msgid "Show Description" 3317 msgstr "" 3318 3319 #: pro/app/views/options/form.php:585 3320 msgid "Pretty Bar Show Description" 3321 msgstr "" 3322 3323 #: pro/app/views/options/form.php:586 3324 msgid "" 3325 "Make sure this is checked if you want your site description to show up on " 3326 "the Pretty Bar." 3327 msgstr "" 3328 3329 #: pro/app/views/options/form.php:597 3330 msgid "Show Share Links" 3331 msgstr "" 3332 3333 #: pro/app/views/options/form.php:599 3334 msgid "Pretty Bar Show Share Links" 3335 msgstr "" 3336 3337 #: pro/app/views/options/form.php:600 3338 msgid "" 3339 "Make sure this is checked if you want \"share links\" to show up on the " 3340 "Pretty Bar." 3341 msgstr "" 3342 3343 #: pro/app/views/options/form.php:611 3344 msgid "Show Target URL" 3345 msgstr "" 3346 3347 #: pro/app/views/options/form.php:613 3348 msgid "Pretty Bar Show Target URL Links" 3349 msgstr "" 3350 3351 #: pro/app/views/options/form.php:614 3352 msgid "" 3353 "Make sure this is checked if you want a link displaying the Target URL to " 3354 "show up on the Pretty Bar." 3355 msgstr "" 3356 3357 #: pro/app/views/options/form.php:625 pro/app/views/options/form.php:627 3358 msgid "Hide Attribution Link" 3359 msgstr "" 3360 3361 #: pro/app/views/options/form.php:628 3362 msgid "" 3363 "Check this to hide the pretty link attribution link on the pretty bar.<br/" 3364 "><br/><strong>Wait, before you do this, you might want to leave this un-" 3365 "checked and set the alternate URL of this link to your <em>Pretty Links Pro</" 3366 "em> <a href=\"https://prettylinks.com/plp/options/aff-attribution" 3367 "\">Affiliate URL</a> to earn a few bucks while you are at it." 3368 msgstr "" 3369 3370 #: pro/app/views/options/form.php:646 3371 msgid "Attribution URL" 3372 msgstr "" 3373 3374 #: pro/app/views/options/form.php:648 3375 msgid "Alternate Pretty Bar Attribution URL" 3376 msgstr "" 3377 3378 #: pro/app/views/options/form.php:649 3379 msgid "" 3380 "If set, this will replace the Pretty Bars attribution URL. This is a very " 3381 "good place to put your <em>Pretty Links Pro</em> <a href=\"https://" 3382 "prettylinks.com/plp/options/aff-attribution-2\">Affiliate Link</a>." 3383 msgstr "" 3384 3385 #: pro/app/views/options/form.php:663 3386 msgid "Social Buttons Options" 3387 msgstr "" 3388 3389 #: pro/app/views/options/form.php:666 3390 msgid "Buttons" 3391 msgstr "" 3392 3393 #: pro/app/views/options/form.php:668 3394 msgid "Social Buttons" 3395 msgstr "" 3396 3397 #: pro/app/views/options/form.php:669 3398 msgid "" 3399 "Select which buttons you want to be visible on the Social Buttons Bar.<br/" 3400 "><br/><code>Note:</code> In order for the Social Buttons Bar to be visible " 3401 "on Pages and or Posts, you must first enable it in the \"Page & Post " 3402 "Options\" section above." 3403 msgstr "" 3404 3405 #: pro/app/views/options/form.php:692 3406 msgid "Buttons Placement" 3407 msgstr "" 3408 3409 #: pro/app/views/options/form.php:694 3410 msgid "Social Buttons Placement" 3411 msgstr "" 3412 3413 #: pro/app/views/options/form.php:695 3414 msgid "" 3415 "This determines where your Social Buttons Placement should appear in " 3416 "relation to content on Pages and/or Posts.<br/><br/><code>Note:</code> If " 3417 "you want this bar to appear then you must enable it in the \"Page and Post " 3418 "Options\" above." 3419 msgstr "" 3420 3421 #: pro/app/views/options/form.php:705 3422 msgid "Social Buttons Manual Placement" 3423 msgstr "" 3424 3425 #: pro/app/views/options/form.php:706 3426 msgid "" 3427 "If you select none, you can still show your Social Buttons by manually " 3428 "adding the <code>[social_buttons_bar]</code> shortcode to your blog posts or " 3429 "<code><?php the_social_buttons_bar(); ?></code> template tag to your " 3430 "WordPress Theme." 3431 msgstr "" 3432 3433 #: pro/app/views/options/form.php:731 3434 msgid "Public Links Creation Options" 3435 msgstr "" 3436 3437 #: pro/app/views/options/form.php:737 3438 msgid "Enable Public Links" 3439 msgstr "" 3440 3441 #: pro/app/views/options/form.php:739 3442 msgid "Enable Public Link Creation on this Site" 3443 msgstr "" 3444 3445 #: pro/app/views/options/form.php:740 3446 msgid "" 3447 "This option will give you the ability to turn your website into a link " 3448 "shortening service for your users. Once selected, you can enable the Pretty " 3449 "Links Pro Sidebar Widget or just display the link creation form with the " 3450 "<code>[prli_create_form]</code> shortcode in any post or page on your " 3451 "website." 3452 msgstr "" 3453 3454 #: pro/app/views/options/form.php:757 3455 msgid "Use Display Page" 3456 msgstr "" 3457 3458 #: pro/app/views/options/form.php:759 3459 msgid "Use Public Link Display Page" 3460 msgstr "" 3461 3462 #: pro/app/views/options/form.php:760 3463 msgid "" 3464 "When a link is created using the public form, the user is typically " 3465 "redirected to a simple page displaying their new pretty link. But, you can " 3466 "specify a page that you want them to be redirected to on your website, using " 3467 "your branding instead by selecting this box and entering the url of the page " 3468 "you want them to go to." 3469 msgstr "" 3470 3471 #: pro/app/views/options/form.php:777 3472 msgid "Display Page" 3473 msgstr "" 3474 3475 #: pro/app/views/options/form.php:779 3476 msgid "Public Pretty Link Creation Display URL" 3477 msgstr "" 3478 3479 #: pro/app/views/options/form.php:780 3480 msgid "" 3481 "To set this up, create a new page on your WordPress site and make sure the " 3482 "<code>[prli_create_display]</code> appears somewhere on this page -- " 3483 "otherwise the link will never get created. Once this page is created, just " 3484 "enter the full URL to it here. Make sure this URL does npt end with a slash " 3485 "(/)." 3486 msgstr "" 3487 3488 #: pro/app/views/options/general.php:8 3489 msgid "Use Shortlink URL" 3490 msgstr "" 3491 3492 #: pro/app/views/options/general.php:10 3493 msgid "Use an Alternate Shortlink URL" 3494 msgstr "" 3495 3496 #: pro/app/views/options/general.php:11 3497 msgid "" 3498 "Use this option if you want to substitute your actual blog's url with " 3499 "another URL. You must have another valid domain name pointing to this " 3500 "WordPress install before you enable this option. If you are using this " 3501 "option to just get rid of the www in the beginning of your url that is fine " 3502 "-- just make sure your domain works without the www before enabling this " 3503 "option." 3504 msgstr "" 3505 3506 #: pro/app/views/options/general.php:28 pro/app/views/options/general.php:30 3507 msgid "Shortlink URL" 3508 msgstr "" 3509 3510 #: pro/app/views/options/general.php:31 3511 msgid "" 3512 "Enter a valid base url that points at this WordPress install. Make sure this " 3513 "URL does not end with a slash (/)." 3514 msgstr "" 3515 3516 #: pro/app/views/options/general.php:47 3517 msgid "Minimum Admin Role" 3518 msgstr "" 3519 3520 #: pro/app/views/options/general.php:49 3521 msgid "Set Minimum Role Required To Access Pretty Link" 3522 msgstr "" 3523 3524 #: pro/app/views/options/general.php:50 3525 msgid "" 3526 "Use this option to set the minimum role of users who can access the Admin " 3527 "interface for Pretty Link." 3528 msgstr "" 3529 3530 #: pro/app/views/options/general.php:56 3531 msgid "Administrator" 3532 msgstr "" 3533 3534 #: pro/app/views/options/general.php:57 3535 msgid "Editor" 3536 msgstr "" 3537 3538 #: pro/app/views/options/general.php:58 3539 msgid "Author" 3540 msgstr "" 3541 3542 #: pro/app/views/options/general.php:59 3543 msgid "Contributor" 3544 msgstr "" 3545 3546 #: pro/app/views/options/general.php:60 3547 msgid "Subscriber" 3548 msgstr "" 3549 3550 #: pro/app/views/options/nav.php:3 3551 msgid "Replacements" 3552 msgstr "" 3553 3554 #: pro/app/views/options/nav.php:4 3555 msgid "Auto-Create Links" 3556 msgstr "" 3557 3558 #: pro/app/views/options/nav.php:6 3559 msgid "Social" 3560 msgstr "" 3561 3562 #: pro/app/views/options/nav.php:7 3563 msgid "Public" 3564 msgstr "" 3565 3566 #: pro/app/views/public/form.php:30 3567 msgid "ERROR:" 3568 msgstr "" 3569 3570 #: pro/app/views/reports/custom-report.php:7 3571 msgid "Link Report" 3572 msgstr "" 3573 3574 #: pro/app/views/reports/custom-report.php:8 3575 msgid "Report:" 3576 msgstr "" 3577 3578 #: pro/app/views/reports/custom-report.php:10 3579 msgid "For Goal Link:" 3580 msgstr "" 3581 3582 #: pro/app/views/reports/custom-report.php:30 3583 #: pro/app/views/reports/custom-report.php:63 3584 msgid "Link Name" 3585 msgstr "" 3586 3587 #: pro/app/views/reports/custom-report.php:35 3588 #: pro/app/views/reports/custom-report.php:68 3589 #: pro/app/views/reports/split-test-report.php:32 3590 #: pro/app/views/reports/split-test-report.php:64 3591 msgid "Conv Rate" 3592 msgstr "" 3593 3594 #: pro/app/views/reports/edit.php:4 3595 msgid "Edit Link Report" 3596 msgstr "" 3597 3598 #: pro/app/views/reports/edit.php:17 pro/app/views/reports/new.php:16 3599 msgid "This is how you'll identify your Report." 3600 msgstr "" 3601 3602 #: pro/app/views/reports/edit.php:23 pro/app/views/reports/new.php:23 3603 msgid "Select Links to Analyze in this Report:" 3604 msgstr "" 3605 3606 #: pro/app/views/reports/edit.php:77 pro/app/views/reports/new.php:77 3607 msgid "Select some links to be analyzed in this report." 3608 msgstr "" 3609 3610 #: pro/app/views/reports/edit.php:80 pro/app/views/reports/new.php:80 3611 msgid "Select Your Goal Link (optional):" 3612 msgstr "" 3613 3614 #: pro/app/views/reports/edit.php:103 pro/app/views/reports/new.php:103 3615 msgid "" 3616 "If you want to enable conversion tracking in this report then select a goal " 3617 "link." 3618 msgstr "" 3619 3620 #: pro/app/views/reports/list.php:4 pro/app/views/reports/reports.php:7 3621 msgid "Link Reports" 3622 msgstr "" 3623 3624 #: pro/app/views/reports/list.php:5 3625 msgid "Add Report" 3626 msgstr "" 3627 3628 #: pro/app/views/reports/list.php:41 3629 msgid "No Pretty Link Reports were found" 3630 msgstr "" 3631 3632 #: pro/app/views/reports/list.php:57 3633 msgid "View" 3634 msgstr "" 3635 3636 #: pro/app/views/reports/new.php:4 3637 msgid "Add Link Report" 3638 msgstr "" 3639 3640 #: pro/app/views/reports/reports.php:4 3641 msgid "Reports" 3642 msgstr "" 3643 3644 #: pro/app/views/reports/split-test-report.php:4 3645 msgid "Link Split-Test Report" 3646 msgstr "" 3647 3648 #: pro/app/views/reports/split-test-report.php:5 3649 msgid "For Link:" 3650 msgstr "" 3651 3652 #: pro/app/views/reports/split-test-report.php:7 3653 msgid "Goal Link:" 3654 msgstr "" 3655 3656 #: pro/app/views/reports/split-test-report.php:27 3657 msgid "Link Rotation URL" 3658 msgstr "" 3659 3660 #: pro/app/views/reports/split-test-report.php:59 3661 msgid "Rotation URL" 3662 msgstr "" 3663 3664 #: pro/app/views/tools/generator.php:6 3665 msgid "Custom Bookmarklet:" 3666 msgstr "" 3667 3668 #: pro/app/views/tools/generator.php:9 3669 msgid "Customize Pretty Link Bookmarklet" 3670 msgstr "" 3671 3672 #: pro/app/views/tools/generator.php:10 3673 msgid "" 3674 "Alter the options below to customize this Bookmarklet. As you modify the " 3675 "label, redirect type, tracking and group, you will see this bookmarklet " 3676 "update -- when the settings are how you want them, drag the bookmarklet into " 3677 "your toolbar. You can create as many bookmarklets as you want each with " 3678 "different settings." 3679 msgstr "" 3680 3681 #: pro/app/views/tools/generator.php:13 3682 #: pro/app/widgets/PlpPublicLinksWidget.php:55 3683 msgid "Pretty Link Options" 3684 msgstr "" 3685 3686 #: pro/app/views/tools/generator.php:16 3687 msgid "Label:" 3688 msgstr "" 3689 3690 #: pro/app/views/tools/generator.php:21 3691 #: pro/app/widgets/PlpPublicLinksWidget.php:57 3692 msgid "Redirection:" 3693 msgstr "" 3694 3695 #: pro/app/views/tools/generator.php:25 3696 msgid "Tracking:" 3697 msgstr "" 3698 3699 #: pro/app/views/tools/generator.php:28 3700 #: pro/app/widgets/PlpPublicLinksWidget.php:72 3701 msgid "Yes" 3702 msgstr "" 3703 3704 #: pro/app/views/tools/generator.php:29 3705 #: pro/app/widgets/PlpPublicLinksWidget.php:73 3706 msgid "No" 3707 msgstr "" 3708 3709 #: pro/app/views/tools/generator.php:33 3710 #: pro/app/widgets/PlpPublicLinksWidget.php:78 3711 msgid "Group:" 3712 msgstr "" 3713 3714 #: pro/app/views/tools/nav.php:3 3715 msgid "Custom Bookmarklet" 3716 msgstr "" 3717 3718 #: pro/app/widgets/PlpPublicLinksWidget.php:7 3719 msgid "Create a Short URL" 3720 msgstr "" 3721 3722 #: pro/app/widgets/PlpPublicLinksWidget.php:53 3723 msgid "Label Text:" 3724 msgstr "" 3725 3726 #: pro/app/widgets/PlpPublicLinksWidget.php:54 3727 msgid "Button Text:" 3728 msgstr "" 3729 3730 #: pro/app/widgets/PlpPublicLinksWidget.php:54 3731 msgid "if left blank, no button will display" 3732 msgstr "" 3733 3734 #: pro/app/widgets/PlpPublicLinksWidget.php:60 3735 msgid "Permanent/301" 3736 msgstr "" 3737 3738 #: pro/app/widgets/PlpPublicLinksWidget.php:61 3739 msgid "Temporary/302" 3740 msgstr "" 3741 3742 #: pro/app/widgets/PlpPublicLinksWidget.php:62 3743 msgid "Temporary/307" 3744 msgstr "" 3745 3746 #: pro/app/widgets/PlpPublicLinksWidget.php:63 3747 msgid "PrettyBar" 3748 msgstr "" 3749 3750 #: pro/app/widgets/PlpPublicLinksWidget.php:69 3751 msgid "Tracking Enabled:" 3752 msgstr "" 3753 3754 #: pro/i18n/countries.php:5 3755 msgid "Afghanistan" 3756 msgstr "" 3757 3758 #: pro/i18n/countries.php:6 3759 msgid "Åland Islands" 3760 msgstr "" 3761 3762 #: pro/i18n/countries.php:7 3763 msgid "Albania" 3764 msgstr "" 3765 3766 #: pro/i18n/countries.php:8 3767 msgid "Algeria" 3768 msgstr "" 3769 3770 #: pro/i18n/countries.php:9 3771 msgid "Andorra" 3772 msgstr "" 3773 3774 #: pro/i18n/countries.php:10 3775 msgid "Angola" 3776 msgstr "" 3777 3778 #: pro/i18n/countries.php:11 3779 msgid "Anguilla" 3780 msgstr "" 3781 3782 #: pro/i18n/countries.php:12 3783 msgid "Antarctica" 3784 msgstr "" 3785 3786 #: pro/i18n/countries.php:13 3787 msgid "Antigua and Barbuda" 3788 msgstr "" 3789 3790 #: pro/i18n/countries.php:14 3791 msgid "Argentina" 3792 msgstr "" 3793 3794 #: pro/i18n/countries.php:15 3795 msgid "Armenia" 3796 msgstr "" 3797 3798 #: pro/i18n/countries.php:16 3799 msgid "Aruba" 3800 msgstr "" 3801 3802 #: pro/i18n/countries.php:17 3803 msgid "Australia" 3804 msgstr "" 3805 3806 #: pro/i18n/countries.php:18 3807 msgid "Austria" 3808 msgstr "" 3809 3810 #: pro/i18n/countries.php:19 3811 msgid "Azerbaijan" 3812 msgstr "" 3813 3814 #: pro/i18n/countries.php:20 3815 msgid "Bahamas" 3816 msgstr "" 3817 3818 #: pro/i18n/countries.php:21 3819 msgid "Bahrain" 3820 msgstr "" 3821 3822 #: pro/i18n/countries.php:22 3823 msgid "Bangladesh" 3824 msgstr "" 3825 3826 #: pro/i18n/countries.php:23 3827 msgid "Barbados" 3828 msgstr "" 3829 3830 #: pro/i18n/countries.php:24 3831 msgid "Belarus" 3832 msgstr "" 3833 3834 #: pro/i18n/countries.php:25 3835 msgid "Belgium" 3836 msgstr "" 3837 3838 #: pro/i18n/countries.php:26 3839 msgid "Belau" 3840 msgstr "" 3841 3842 #: pro/i18n/countries.php:27 3843 msgid "Belize" 3844 msgstr "" 3845 3846 #: pro/i18n/countries.php:28 3847 msgid "Benin" 3848 msgstr "" 3849 3850 #: pro/i18n/countries.php:29 3851 msgid "Bermuda" 3852 msgstr "" 3853 3854 #: pro/i18n/countries.php:30 3855 msgid "Bhutan" 3856 msgstr "" 3857 3858 #: pro/i18n/countries.php:31 3859 msgid "Bolivia" 3860 msgstr "" 3861 3862 #: pro/i18n/countries.php:32 3863 msgid "Bonaire, Saint Eustatius and Saba" 3864 msgstr "" 3865 3866 #: pro/i18n/countries.php:33 3867 msgid "Bosnia and Herzegovina" 3868 msgstr "" 3869 3870 #: pro/i18n/countries.php:34 3871 msgid "Botswana" 3872 msgstr "" 3873 3874 #: pro/i18n/countries.php:35 3875 msgid "Bouvet Island" 3876 msgstr "" 3877 3878 #: pro/i18n/countries.php:36 3879 msgid "Brazil" 3880 msgstr "" 3881 3882 #: pro/i18n/countries.php:37 3883 msgid "British Indian Ocean Territory" 3884 msgstr "" 3885 3886 #: pro/i18n/countries.php:38 3887 msgid "British Virgin Islands" 3888 msgstr "" 3889 3890 #: pro/i18n/countries.php:39 3891 msgid "Brunei" 3892 msgstr "" 3893 3894 #: pro/i18n/countries.php:40 3895 msgid "Bulgaria" 3896 msgstr "" 3897 3898 #: pro/i18n/countries.php:41 3899 msgid "Burkina Faso" 3900 msgstr "" 3901 3902 #: pro/i18n/countries.php:42 3903 msgid "Burundi" 3904 msgstr "" 3905 3906 #: pro/i18n/countries.php:43 3907 msgid "Cambodia" 3908 msgstr "" 3909 3910 #: pro/i18n/countries.php:44 3911 msgid "Cameroon" 3912 msgstr "" 3913 3914 #: pro/i18n/countries.php:45 3915 msgid "Canada" 3916 msgstr "" 3917 3918 #: pro/i18n/countries.php:46 3919 msgid "Cape Verde" 3920 msgstr "" 3921 3922 #: pro/i18n/countries.php:47 3923 msgid "Cayman Islands" 3924 msgstr "" 3925 3926 #: pro/i18n/countries.php:48 3927 msgid "Central African Republic" 3928 msgstr "" 3929 3930 #: pro/i18n/countries.php:49 3931 msgid "Chad" 3932 msgstr "" 3933 3934 #: pro/i18n/countries.php:50 3935 msgid "Chile" 3936 msgstr "" 3937 3938 #: pro/i18n/countries.php:51 3939 msgid "China" 3940 msgstr "" 3941 3942 #: pro/i18n/countries.php:52 3943 msgid "Christmas Island" 3944 msgstr "" 3945 3946 #: pro/i18n/countries.php:53 3947 msgid "Cocos/Keeling Islands" 3948 msgstr "" 3949 3950 #: pro/i18n/countries.php:54 3951 msgid "Colombia" 3952 msgstr "" 3953 3954 #: pro/i18n/countries.php:55 3955 msgid "Comoros" 3956 msgstr "" 3957 3958 #: pro/i18n/countries.php:56 3959 msgid "Congo (Brazzaville)" 3960 msgstr "" 3961 3962 #: pro/i18n/countries.php:57 3963 msgid "Congo (Kinshasa)" 3964 msgstr "" 3965 3966 #: pro/i18n/countries.php:58 3967 msgid "Cook Islands" 3968 msgstr "" 3969 3970 #: pro/i18n/countries.php:59 3971 msgid "Costa Rica" 3972 msgstr "" 3973 3974 #: pro/i18n/countries.php:60 3975 msgid "Croatia" 3976 msgstr "" 3977 3978 #: pro/i18n/countries.php:61 3979 msgid "Cuba" 3980 msgstr "" 3981 3982 #: pro/i18n/countries.php:62 3983 msgid "CuraÇao" 3984 msgstr "" 3985 3986 #: pro/i18n/countries.php:63 3987 msgid "Cyprus" 3988 msgstr "" 3989 3990 #: pro/i18n/countries.php:64 3991 msgid "Czech Republic" 3992 msgstr "" 3993 3994 #: pro/i18n/countries.php:65 3995 msgid "Denmark" 3996 msgstr "" 3997 3998 #: pro/i18n/countries.php:66 3999 msgid "Djibouti" 4000 msgstr "" 4001 4002 #: pro/i18n/countries.php:67 4003 msgid "Dominica" 4004 msgstr "" 4005 4006 #: pro/i18n/countries.php:68 4007 msgid "Dominican Republic" 4008 msgstr "" 4009 4010 #: pro/i18n/countries.php:69 4011 msgid "Ecuador" 4012 msgstr "" 4013 4014 #: pro/i18n/countries.php:70 4015 msgid "Egypt" 4016 msgstr "" 4017 4018 #: pro/i18n/countries.php:71 4019 msgid "El Salvador" 4020 msgstr "" 4021 4022 #: pro/i18n/countries.php:72 4023 msgid "Equatorial Guinea" 4024 msgstr "" 4025 4026 #: pro/i18n/countries.php:73 4027 msgid "Eritrea" 4028 msgstr "" 4029 4030 #: pro/i18n/countries.php:74 4031 msgid "Estonia" 4032 msgstr "" 4033 4034 #: pro/i18n/countries.php:75 4035 msgid "Ethiopia" 4036 msgstr "" 4037 4038 #: pro/i18n/countries.php:76 4039 msgid "Falkland Islands" 4040 msgstr "" 4041 4042 #: pro/i18n/countries.php:77 4043 msgid "Faroe Islands" 4044 msgstr "" 4045 4046 #: pro/i18n/countries.php:78 4047 msgid "Fiji" 4048 msgstr "" 4049 4050 #: pro/i18n/countries.php:79 4051 msgid "Finland" 4052 msgstr "" 4053 4054 #: pro/i18n/countries.php:80 4055 msgid "France" 4056 msgstr "" 4057 4058 #: pro/i18n/countries.php:81 4059 msgid "French Guiana" 4060 msgstr "" 4061 4062 #: pro/i18n/countries.php:82 4063 msgid "French Polynesia" 4064 msgstr "" 4065 4066 #: pro/i18n/countries.php:83 4067 msgid "French Southern Territories" 4068 msgstr "" 4069 4070 #: pro/i18n/countries.php:84 4071 msgid "Gabon" 4072 msgstr "" 4073 4074 #: pro/i18n/countries.php:85 4075 msgid "Gambia" 4076 msgstr "" 4077 4078 #: pro/i18n/countries.php:86 4079 msgid "Georgia" 4080 msgstr "" 4081 4082 #: pro/i18n/countries.php:87 4083 msgid "Germany" 4084 msgstr "" 4085 4086 #: pro/i18n/countries.php:88 4087 msgid "Ghana" 4088 msgstr "" 4089 4090 #: pro/i18n/countries.php:89 4091 msgid "Gibraltar" 4092 msgstr "" 4093 4094 #: pro/i18n/countries.php:90 4095 msgid "Greece" 4096 msgstr "" 4097 4098 #: pro/i18n/countries.php:91 4099 msgid "Greenland" 4100 msgstr "" 4101 4102 #: pro/i18n/countries.php:92 4103 msgid "Grenada" 4104 msgstr "" 4105 4106 #: pro/i18n/countries.php:93 4107 msgid "Guadeloupe" 4108 msgstr "" 4109 4110 #: pro/i18n/countries.php:94 4111 msgid "Guatemala" 4112 msgstr "" 4113 4114 #: pro/i18n/countries.php:95 4115 msgid "Guernsey" 4116 msgstr "" 4117 4118 #: pro/i18n/countries.php:96 4119 msgid "Guinea" 4120 msgstr "" 4121 4122 #: pro/i18n/countries.php:97 4123 msgid "Guinea-Bissau" 4124 msgstr "" 4125 4126 #: pro/i18n/countries.php:98 4127 msgid "Guyana" 4128 msgstr "" 4129 4130 #: pro/i18n/countries.php:99 4131 msgid "Haiti" 4132 msgstr "" 4133 4134 #: pro/i18n/countries.php:100 4135 msgid "Heard Island and McDonald Islands" 4136 msgstr "" 4137 4138 #: pro/i18n/countries.php:101 4139 msgid "Honduras" 4140 msgstr "" 4141 4142 #: pro/i18n/countries.php:102 4143 msgid "Hong Kong" 4144 msgstr "" 4145 4146 #: pro/i18n/countries.php:103 4147 msgid "Hungary" 4148 msgstr "" 4149 4150 #: pro/i18n/countries.php:104 4151 msgid "Iceland" 4152 msgstr "" 4153 4154 #: pro/i18n/countries.php:105 4155 msgid "India" 4156 msgstr "" 4157 4158 #: pro/i18n/countries.php:106 4159 msgid "Indonesia" 4160 msgstr "" 4161 4162 #: pro/i18n/countries.php:107 4163 msgid "Iran" 4164 msgstr "" 4165 4166 #: pro/i18n/countries.php:108 4167 msgid "Iraq" 4168 msgstr "" 4169 4170 #: pro/i18n/countries.php:109 4171 msgid "Republic of Ireland" 4172 msgstr "" 4173 4174 #: pro/i18n/countries.php:110 4175 msgid "Isle of Man" 4176 msgstr "" 4177 4178 #: pro/i18n/countries.php:111 4179 msgid "Israel" 4180 msgstr "" 4181 4182 #: pro/i18n/countries.php:112 4183 msgid "Italy" 4184 msgstr "" 4185 4186 #: pro/i18n/countries.php:113 4187 msgid "Ivory Coast" 4188 msgstr "" 4189 4190 #: pro/i18n/countries.php:114 4191 msgid "Jamaica" 4192 msgstr "" 4193 4194 #: pro/i18n/countries.php:115 4195 msgid "Japan" 4196 msgstr "" 4197 4198 #: pro/i18n/countries.php:116 4199 msgid "Jersey" 4200 msgstr "" 4201 4202 #: pro/i18n/countries.php:117 4203 msgid "Jordan" 4204 msgstr "" 4205 4206 #: pro/i18n/countries.php:118 4207 msgid "Kazakhstan" 4208 msgstr "" 4209 4210 #: pro/i18n/countries.php:119 4211 msgid "Kenya" 4212 msgstr "" 4213 4214 #: pro/i18n/countries.php:120 4215 msgid "Kiribati" 4216 msgstr "" 4217 4218 #: pro/i18n/countries.php:121 4219 msgid "Kuwait" 4220 msgstr "" 4221 4222 #: pro/i18n/countries.php:122 4223 msgid "Kyrgyzstan" 4224 msgstr "" 4225 4226 #: pro/i18n/countries.php:123 4227 msgid "Laos" 4228 msgstr "" 4229 4230 #: pro/i18n/countries.php:124 4231 msgid "Latvia" 4232 msgstr "" 4233 4234 #: pro/i18n/countries.php:125 4235 msgid "Lebanon" 4236 msgstr "" 4237 4238 #: pro/i18n/countries.php:126 4239 msgid "Lesotho" 4240 msgstr "" 4241 4242 #: pro/i18n/countries.php:127 4243 msgid "Liberia" 4244 msgstr "" 4245 4246 #: pro/i18n/countries.php:128 4247 msgid "Libya" 4248 msgstr "" 4249 4250 #: pro/i18n/countries.php:129 4251 msgid "Liechtenstein" 4252 msgstr "" 4253 4254 #: pro/i18n/countries.php:130 4255 msgid "Lithuania" 4256 msgstr "" 4257 4258 #: pro/i18n/countries.php:131 4259 msgid "Luxembourg" 4260 msgstr "" 4261 4262 #: pro/i18n/countries.php:132 4263 msgid "Macao S.A.R., China" 4264 msgstr "" 4265 4266 #: pro/i18n/countries.php:133 4267 msgid "Macedonia" 4268 msgstr "" 4269 4270 #: pro/i18n/countries.php:134 4271 msgid "Madagascar" 4272 msgstr "" 4273 4274 #: pro/i18n/countries.php:135 4275 msgid "Malawi" 4276 msgstr "" 4277 4278 #: pro/i18n/countries.php:136 4279 msgid "Malaysia" 4280 msgstr "" 4281 4282 #: pro/i18n/countries.php:137 4283 msgid "Maldives" 4284 msgstr "" 4285 4286 #: pro/i18n/countries.php:138 4287 msgid "Mali" 4288 msgstr "" 4289 4290 #: pro/i18n/countries.php:139 4291 msgid "Malta" 4292 msgstr "" 4293 4294 #: pro/i18n/countries.php:140 4295 msgid "Marshall Islands" 4296 msgstr "" 4297 4298 #: pro/i18n/countries.php:141 4299 msgid "Martinique" 4300 msgstr "" 4301 4302 #: pro/i18n/countries.php:142 4303 msgid "Mauritania" 4304 msgstr "" 4305 4306 #: pro/i18n/countries.php:143 4307 msgid "Mauritius" 4308 msgstr "" 4309 4310 #: pro/i18n/countries.php:144 4311 msgid "Mayotte" 4312 msgstr "" 4313 4314 #: pro/i18n/countries.php:145 4315 msgid "Mexico" 4316 msgstr "" 4317 4318 #: pro/i18n/countries.php:146 4319 msgid "Micronesia" 4320 msgstr "" 4321 4322 #: pro/i18n/countries.php:147 4323 msgid "Moldova" 4324 msgstr "" 4325 4326 #: pro/i18n/countries.php:148 4327 msgid "Monaco" 4328 msgstr "" 4329 4330 #: pro/i18n/countries.php:149 4331 msgid "Mongolia" 4332 msgstr "" 4333 4334 #: pro/i18n/countries.php:150 4335 msgid "Montenegro" 4336 msgstr "" 4337 4338 #: pro/i18n/countries.php:151 4339 msgid "Montserrat" 4340 msgstr "" 4341 4342 #: pro/i18n/countries.php:152 4343 msgid "Morocco" 4344 msgstr "" 4345 4346 #: pro/i18n/countries.php:153 4347 msgid "Mozambique" 4348 msgstr "" 4349 4350 #: pro/i18n/countries.php:154 4351 msgid "Myanmar" 4352 msgstr "" 4353 4354 #: pro/i18n/countries.php:155 4355 msgid "Namibia" 4356 msgstr "" 4357 4358 #: pro/i18n/countries.php:156 4359 msgid "Nauru" 4360 msgstr "" 4361 4362 #: pro/i18n/countries.php:157 4363 msgid "Nepal" 4364 msgstr "" 4365 4366 #: pro/i18n/countries.php:158 4367 msgid "Netherlands" 4368 msgstr "" 4369 4370 #: pro/i18n/countries.php:159 4371 msgid "Netherlands Antilles" 4372 msgstr "" 4373 4374 #: pro/i18n/countries.php:160 4375 msgid "New Caledonia" 4376 msgstr "" 4377 4378 #: pro/i18n/countries.php:161 4379 msgid "New Zealand" 4380 msgstr "" 4381 4382 #: pro/i18n/countries.php:162 4383 msgid "Nicaragua" 4384 msgstr "" 4385 4386 #: pro/i18n/countries.php:163 4387 msgid "Niger" 4388 msgstr "" 4389 4390 #: pro/i18n/countries.php:164 4391 msgid "Nigeria" 4392 msgstr "" 4393 4394 #: pro/i18n/countries.php:165 4395 msgid "Niue" 4396 msgstr "" 4397 4398 #: pro/i18n/countries.php:166 4399 msgid "Norfolk Island" 4400 msgstr "" 4401 4402 #: pro/i18n/countries.php:167 4403 msgid "North Korea" 4404 msgstr "" 4405 4406 #: pro/i18n/countries.php:168 4407 msgid "Norway" 4408 msgstr "" 4409 4410 #: pro/i18n/countries.php:169 4411 msgid "Oman" 4412 msgstr "" 4413 4414 #: pro/i18n/countries.php:170 4415 msgid "Pakistan" 4416 msgstr "" 4417 4418 #: pro/i18n/countries.php:171 4419 msgid "Palestinian Territory" 4420 msgstr "" 4421 4422 #: pro/i18n/countries.php:172 4423 msgid "Panama" 4424 msgstr "" 4425 4426 #: pro/i18n/countries.php:173 4427 msgid "Papua New Guinea" 4428 msgstr "" 4429 4430 #: pro/i18n/countries.php:174 4431 msgid "Paraguay" 4432 msgstr "" 4433 4434 #: pro/i18n/countries.php:175 4435 msgid "Peru" 4436 msgstr "" 4437 4438 #: pro/i18n/countries.php:176 4439 msgid "Philippines" 4440 msgstr "" 4441 4442 #: pro/i18n/countries.php:177 4443 msgid "Pitcairn" 4444 msgstr "" 4445 4446 #: pro/i18n/countries.php:178 4447 msgid "Poland" 4448 msgstr "" 4449 4450 #: pro/i18n/countries.php:179 4451 msgid "Portugal" 4452 msgstr "" 4453 4454 #: pro/i18n/countries.php:180 4455 msgid "Qatar" 4456 msgstr "" 4457 4458 #: pro/i18n/countries.php:181 4459 msgid "Reunion" 4460 msgstr "" 4461 4462 #: pro/i18n/countries.php:182 4463 msgid "Romania" 4464 msgstr "" 4465 4466 #: pro/i18n/countries.php:183 4467 msgid "Russia" 4468 msgstr "" 4469 4470 #: pro/i18n/countries.php:184 4471 msgid "Rwanda" 4472 msgstr "" 4473 4474 #: pro/i18n/countries.php:185 4475 msgid "Saint Barthélemy" 4476 msgstr "" 4477 4478 #: pro/i18n/countries.php:186 4479 msgid "Saint Helena" 4480 msgstr "" 4481 4482 #: pro/i18n/countries.php:187 4483 msgid "Saint Kitts and Nevis" 4484 msgstr "" 4485 4486 #: pro/i18n/countries.php:188 4487 msgid "Saint Lucia" 4488 msgstr "" 4489 4490 #: pro/i18n/countries.php:189 4491 msgid "Saint Martin (French part)" 4492 msgstr "" 4493 4494 #: pro/i18n/countries.php:190 4495 msgid "Saint Martin (Dutch part)" 4496 msgstr "" 4497 4498 #: pro/i18n/countries.php:191 4499 msgid "Saint Pierre and Miquelon" 4500 msgstr "" 4501 4502 #: pro/i18n/countries.php:192 4503 msgid "Saint Vincent and the Grenadines" 4504 msgstr "" 4505 4506 #: pro/i18n/countries.php:193 4507 msgid "San Marino" 4508 msgstr "" 4509 4510 #: pro/i18n/countries.php:194 4511 msgid "São Tomé and Príncipe" 4512 msgstr "" 4513 4514 #: pro/i18n/countries.php:195 4515 msgid "Saudi Arabia" 4516 msgstr "" 4517 4518 #: pro/i18n/countries.php:196 4519 msgid "Senegal" 4520 msgstr "" 4521 4522 #: pro/i18n/countries.php:197 4523 msgid "Serbia" 4524 msgstr "" 4525 4526 #: pro/i18n/countries.php:198 4527 msgid "Seychelles" 4528 msgstr "" 4529 4530 #: pro/i18n/countries.php:199 4531 msgid "Sierra Leone" 4532 msgstr "" 4533 4534 #: pro/i18n/countries.php:200 4535 msgid "Singapore" 4536 msgstr "" 4537 4538 #: pro/i18n/countries.php:201 4539 msgid "Slovakia" 4540 msgstr "" 4541 4542 #: pro/i18n/countries.php:202 4543 msgid "Slovenia" 4544 msgstr "" 4545 4546 #: pro/i18n/countries.php:203 4547 msgid "Solomon Islands" 4548 msgstr "" 4549 4550 #: pro/i18n/countries.php:204 4551 msgid "Somalia" 4552 msgstr "" 4553 4554 #: pro/i18n/countries.php:205 4555 msgid "South Africa" 4556 msgstr "" 4557 4558 #: pro/i18n/countries.php:206 4559 msgid "South Georgia/Sandwich Islands" 4560 msgstr "" 4561 4562 #: pro/i18n/countries.php:207 4563 msgid "South Korea" 4564 msgstr "" 4565 4566 #: pro/i18n/countries.php:208 4567 msgid "South Sudan" 4568 msgstr "" 4569 4570 #: pro/i18n/countries.php:209 4571 msgid "Spain" 4572 msgstr "" 4573 4574 #: pro/i18n/countries.php:210 4575 msgid "Sri Lanka" 4576 msgstr "" 4577 4578 #: pro/i18n/countries.php:211 4579 msgid "Sudan" 4580 msgstr "" 4581 4582 #: pro/i18n/countries.php:212 4583 msgid "Suriname" 4584 msgstr "" 4585 4586 #: pro/i18n/countries.php:213 4587 msgid "Svalbard and Jan Mayen" 4588 msgstr "" 4589 4590 #: pro/i18n/countries.php:214 4591 msgid "Swaziland" 4592 msgstr "" 4593 4594 #: pro/i18n/countries.php:215 4595 msgid "Sweden" 4596 msgstr "" 4597 4598 #: pro/i18n/countries.php:216 4599 msgid "Switzerland" 4600 msgstr "" 4601 4602 #: pro/i18n/countries.php:217 4603 msgid "Syria" 4604 msgstr "" 4605 4606 #: pro/i18n/countries.php:218 4607 msgid "Taiwan" 4608 msgstr "" 4609 4610 #: pro/i18n/countries.php:219 4611 msgid "Tajikistan" 4612 msgstr "" 4613 4614 #: pro/i18n/countries.php:220 4615 msgid "Tanzania" 4616 msgstr "" 4617 4618 #: pro/i18n/countries.php:221 4619 msgid "Thailand" 4620 msgstr "" 4621 4622 #: pro/i18n/countries.php:222 4623 msgid "Timor-Leste" 4624 msgstr "" 4625 4626 #: pro/i18n/countries.php:223 4627 msgid "Togo" 4628 msgstr "" 4629 4630 #: pro/i18n/countries.php:224 4631 msgid "Tokelau" 4632 msgstr "" 4633 4634 #: pro/i18n/countries.php:225 4635 msgid "Tonga" 4636 msgstr "" 4637 4638 #: pro/i18n/countries.php:226 4639 msgid "Trinidad and Tobago" 4640 msgstr "" 4641 4642 #: pro/i18n/countries.php:227 4643 msgid "Tunisia" 4644 msgstr "" 4645 4646 #: pro/i18n/countries.php:228 4647 msgid "Turkey" 4648 msgstr "" 4649 4650 #: pro/i18n/countries.php:229 4651 msgid "Turkmenistan" 4652 msgstr "" 4653 4654 #: pro/i18n/countries.php:230 4655 msgid "Turks and Caicos Islands" 4656 msgstr "" 4657 4658 #: pro/i18n/countries.php:231 4659 msgid "Tuvalu" 4660 msgstr "" 4661 4662 #: pro/i18n/countries.php:232 4663 msgid "Uganda" 4664 msgstr "" 4665 4666 #: pro/i18n/countries.php:233 4667 msgid "Ukraine" 4668 msgstr "" 4669 4670 #: pro/i18n/countries.php:234 4671 msgid "United Arab Emirates" 4672 msgstr "" 4673 4674 #: pro/i18n/countries.php:235 4675 msgid "United Kingdom (UK)" 4676 msgstr "" 4677 4678 #: pro/i18n/countries.php:236 4679 msgid "United States" 4680 msgstr "" 4681 4682 #: pro/i18n/countries.php:237 4683 msgid "Uruguay" 4684 msgstr "" 4685 4686 #: pro/i18n/countries.php:238 4687 msgid "Uzbekistan" 4688 msgstr "" 4689 4690 #: pro/i18n/countries.php:239 4691 msgid "Vanuatu" 4692 msgstr "" 4693 4694 #: pro/i18n/countries.php:240 4695 msgid "Vatican" 4696 msgstr "" 4697 4698 #: pro/i18n/countries.php:241 4699 msgid "Venezuela" 4700 msgstr "" 4701 4702 #: pro/i18n/countries.php:242 4703 msgid "Vietnam" 4704 msgstr "" 4705 4706 #: pro/i18n/countries.php:243 4707 msgid "Wallis and Futuna" 4708 msgstr "" 4709 4710 #: pro/i18n/countries.php:244 4711 msgid "Western Sahara" 4712 msgstr "" 4713 4714 #: pro/i18n/countries.php:245 4715 msgid "Western Samoa" 4716 msgstr "" 4717 4718 #: pro/i18n/countries.php:246 4719 msgid "Yemen" 4720 msgstr "" 4721 4722 #: pro/i18n/countries.php:247 4723 msgid "Zambia" 4724 msgstr "" 4725 4726 #: pro/i18n/countries.php:248 4727 msgid "Zimbabwe" 4728 msgstr "" 4729 4730 #: script/i18n/pomo/sample/app.php:56 4731 msgid "Welcome %s!" 4732 msgstr "" 4733 4734 #: script/i18n/pomo/sample/app.php:60 4735 msgid "A string with low priority!" 4736 msgstr "" 4737 4738 #: script/i18n/pomo/sample/app.php:62 4739 msgid "Bye\n" 4740 msgstr "" 4741 4742 #. Plugin URI of the plugin/theme 4743 msgid "https://prettylinks.com/pl/plugin-uri" 4744 msgstr "" 4745 4746 #. Description of the plugin/theme 4747 msgid "" 4748 "Shrink, track and share any URL on the Internet from your WordPress website!" 4749 msgstr "" 4750 4751 #. Author of the plugin/theme 4752 msgid "Blair Williams" 4753 msgstr "" 4754 4755 #. Author URI of the plugin/theme 4756 msgid "http://blairwilliams.com" 4757 msgstr "" 4883 #: app/controllers/PrliOptionsController.php:61 4884 msgid "Options saved." 4885 msgstr "" 4886 4887 #: app/controllers/PrliOptionsController.php:75 4888 msgid "Excluded IP Addresses must be a comma separated list of IPv4 or IPv6 addresses or ranges." 4889 msgstr "" 4890 4891 #: app/controllers/PrliOptionsController.php:79 4892 msgid "Whitelist IP Addresses must be a comma separated list of IPv4 or IPv6 addresses or ranges." 4893 msgstr "" 4894 4895 #: app/controllers/PrliPopupController.php:63 4896 msgid "An unknown error occurred." 4897 msgstr "" 4898 4899 #: app/controllers/PrliPopupController.php:93 4900 #: app/controllers/PrliLinksController.php:338 4901 #: app/controllers/PrliLinksController.php:550 4902 msgid "Forbidden" 4903 msgstr "" 4904 4905 #: app/controllers/PrliPopupController.php:97 4906 msgid "Must specify a popup" 4907 msgstr "" 4908 4909 #: app/controllers/PrliPopupController.php:103 4910 msgid "Invalid popup" 4911 msgstr "" 4912 4913 #: app/controllers/PrliPopupController.php:108 4914 msgid "The popup was successfully delayed" 4915 msgstr "" 4916 4917 #: app/controllers/PrliPopupController.php:112 4918 msgid "The popup was successfully stopped" 4919 msgstr "" 4920 4921 #: app/controllers/PrliLocalApiController.php:100 4922 #: app/controllers/PrliLocalApiController.php:159 4923 msgid "An error prevented your Pretty Link from being created" 4924 msgstr "" 4925 4926 #: app/controllers/PrliLocalApiController.php:124 4927 msgid "Pretty Link ID must be set for successful update." 4928 msgstr "" 4929 4930 #: app/controllers/PrliLinksController.php:45 4931 msgid "Add New Pretty Link" 4932 msgstr "" 4933 4934 #: app/controllers/PrliLinksController.php:46 4935 msgid "Edit Pretty Link" 4936 msgstr "" 4937 4938 #: app/controllers/PrliLinksController.php:47 4939 #: js/editor/components/link-editor/index.js:324 4940 #: js/editor.js:12 4941 msgid "New Pretty Link" 4942 msgstr "" 4943 4944 #: app/controllers/PrliLinksController.php:48 4945 msgid "View Pretty Link" 4946 msgstr "" 4947 4948 #: app/controllers/PrliLinksController.php:49 4949 msgid "Search Pretty Links" 4950 msgstr "" 4951 4952 #: app/controllers/PrliLinksController.php:50 4953 msgid "No Pretty Links found" 4954 msgstr "" 4955 4956 #: app/controllers/PrliLinksController.php:51 4957 msgid "No Pretty Links found in Trash" 4958 msgstr "" 4959 4960 #: app/controllers/PrliLinksController.php:52 4961 msgid "Parent Pretty Link:" 4962 msgstr "" 4963 4964 #: app/controllers/PrliLinksController.php:97 4965 msgid "Pretty Link Settings" 4966 msgstr "" 4967 4968 #: app/controllers/PrliLinksController.php:326 4969 msgid "Pretty Link Cleanup Visitor Locks" 4970 msgstr "" 4971 4972 #: app/controllers/PrliLinksController.php:346 4973 msgid "Success!" 4974 msgstr "" 4975 4976 #: app/controllers/PrliLinksController.php:348 4977 msgid "Fix the following errors:" 4978 msgstr "" 4979 4980 #: app/controllers/PrliLinksController.php:384 4981 msgid "Upgrade to a Pretty Links premium plan to get Link Categories" 4982 msgstr "" 4983 4984 #: app/controllers/PrliLinksController.php:390 4985 msgid "Upgrade to a Pretty Links premium plan to get Link Tags" 4986 msgstr "" 4987 4988 #: app/controllers/PrliLinksController.php:396 4989 msgid "Upgrade to a Pretty Links premium plan to get Keyword Replacements" 4990 msgstr "" 4991 4992 #: app/controllers/PrliLinksController.php:402 4993 msgid "Settings" 4994 msgstr "" 4995 4996 #: app/controllers/PrliLinksController.php:403 4997 msgid "Link Title" 4998 msgstr "" 4999 5000 #: app/controllers/PrliLinksController.php:505 5001 msgid "Tweet" 5002 msgstr "" 5003 5004 #: app/controllers/PrliLinksController.php:507 5005 msgid "Target »" 5006 msgstr "" 5007 5008 #: app/controllers/PrliLinksController.php:508 5009 msgid "Pretty Link »" 5010 msgstr "" 5011 5012 #: app/controllers/PrliLinksController.php:530 5013 #: app/controllers/PrliLinksController.php:531 5014 msgid "View Split Test Report" 5015 msgstr "" 5016 5017 #: app/controllers/PrliLinksController.php:556 5018 msgid "Your Pretty Link was Successfully Reset" 5019 msgstr "" 5020 5021 #: app/controllers/PrliLinksController.php:564 5022 msgid "Bad request" 5023 msgstr "" 5024 5025 #: app/controllers/PrliLinksController.php:568 5026 msgid "Insufficient permissions" 5027 msgstr "" 5028 5029 #: app/controllers/PrliLinksController.php:597 5030 msgid "An error occurred creating the link" 5031 msgstr "" 5032 5033 #: app/controllers/PrliLinksController.php:629 5034 msgid "All Groups (Legacy)" 5035 msgstr "" 5036 5037 #: app/controllers/PrliAppController.php:84 5038 msgid "Link Categories [Pro Only]" 5039 msgstr "" 5040 5041 #: app/controllers/PrliAppController.php:85 5042 msgid "Categories [Pro]" 5043 msgstr "" 5044 5045 #: app/controllers/PrliAppController.php:92 5046 msgid "Link Tags [Pro Only]" 5047 msgstr "" 5048 5049 #: app/controllers/PrliAppController.php:93 5050 msgid "Tags [Pro]" 5051 msgstr "" 5052 5053 #: app/controllers/PrliAppController.php:100 5054 msgid "Link Reports [Pro Only]" 5055 msgstr "" 5056 5057 #: app/controllers/PrliAppController.php:101 5058 msgid "Reports [Pro]" 5059 msgstr "" 5060 5061 #: app/controllers/PrliAppController.php:108 5062 msgid "Import / Export [Pro Only]" 5063 msgstr "" 5064 5065 #: app/controllers/PrliAppController.php:109 5066 msgid "Import / Export [Pro]" 5067 msgstr "" 5068 5069 #: app/controllers/PrliAppController.php:118 5070 msgid "Pretty Links | Clicks" 5071 msgstr "" 5072 5073 #: app/controllers/PrliAppController.php:122 5074 msgid "Pretty Links | Tools" 5075 msgstr "" 5076 5077 #: app/controllers/PrliAppController.php:125 5078 msgid "Pretty Links | Options" 5079 msgstr "" 5080 5081 #: app/controllers/PrliAppController.php:129 5082 #: app/controllers/PrliAppController.php:132 5083 #: app/controllers/PrliAppController.php:268 5084 msgid "Activate" 5085 msgstr "" 5086 5087 #: app/controllers/PrliAppController.php:135 5088 msgid "Upgrade" 5089 msgstr "" 5090 5091 #: app/controllers/PrliAppController.php:140 5092 msgid "Welcome" 5093 msgstr "" 5094 5095 #: app/controllers/PrliAppController.php:141 5096 msgid "What's New" 5097 msgstr "" 5098 5099 #: app/controllers/PrliAppController.php:267 5100 #: app/controllers/PrliAppController.php:273 5101 #: app/controllers/PrliAppController.php:278 5102 msgid "Docs" 5103 msgstr "" 5104 5105 #: app/controllers/PrliAppController.php:271 5106 #: app/controllers/PrliAppController.php:277 5107 msgid "Activate Pro License" 5108 msgstr "" 5109 5110 #: app/controllers/PrliAppController.php:272 5111 msgid "Buy" 5112 msgstr "" 5113 5114 #: app/controllers/PrliAppController.php:397 5115 msgid "Are you sure you want to reset your Pretty Link? This will delete all of the statistical data about this Pretty Link in your database." 5116 msgstr "" 5117 5118 #. translators: %1$s: br tag, %2$s: open link tag, %3$s: close link tag 5119 #: app/controllers/PrliAppController.php:483 5120 msgid "You're almost done!%1$s%2$sFinish your Re-Install of Pretty Links Pro%3$s" 5121 msgstr "" 5122 5123 #: app/controllers/PrliAppController.php:498 5124 msgid "Pretty Links Pro Successfully Uninstalled." 5125 msgstr "" 5126 5127 #: app/controllers/PrliAppController.php:547 5128 msgid "Invalid server response" 5129 msgstr "" 5130 5131 #: app/controllers/PrliAppController.php:548 5132 msgid "Ajax error" 5133 msgstr "" 5134 5135 #: app/controllers/PrliAppController.php:565 5136 msgid "Pretty Link Quick Add" 5137 msgstr "" 5138 5139 #: app/controllers/PrliAppController.php:604 5140 msgid "Your Pretty Links Pro installation isn't quite complete yet. %1$sAutomatically Upgrade to Enable Pretty Links Pro%2$s" 5141 msgstr "" 5142 5143 #: app/controllers/PrliAppController.php:625 5144 msgid "Your Pretty Links Pro installation isn't quite complete yet.<br/>%1$sAutomatically Upgrade to Enable Pretty Links Pro%2$s" 5145 msgstr "" 5146 5147 #. translators: $1$s - Pretty Links plugin name; $2$s - WP.org review link; $3$s - WP.org review link. 5148 #: app/controllers/PrliAppController.php:672 5149 msgid "Enjoying %1$s? Please rate <a href=\"%2$s\" target=\"_blank\" rel=\"noopener noreferrer\">★★★★★</a> on <a href=\"%3$s\" target=\"_blank\" rel=\"noopener\">WordPress.org</a> to help us spread the word. Thanks from the Pretty Links team!" 5150 msgstr "" -
pretty-link/trunk/js/admin_popup.js
r1601826 r2124183 9 9 }, 10 10 closeOnBgClick: false, 11 closeBtnInside: false 11 closeBtnInside: false, 12 mainClass: 'mfp-prli' 12 13 }); 13 14 }); … … 70 71 }); 71 72 }); 73 74 $('.prli-leave-feedback').on('click', function () { 75 var _this = this; 76 77 prli_delay_popup('rating', function() { 78 $(_this).trigger('prli-popup-delayed',['rating']); 79 $.magnificPopup.close(); 80 }); 81 }); 82 83 $('.prli-rating-enjoy-yes-popup').on('click', function (e) { 84 e.preventDefault(); 85 86 $('#prli-rating-stage-one').hide(); 87 $('#prli-rating-stage-two-yes').show(); 88 }); 89 90 $('.prli-rating-enjoy-no-popup').on('click', function (e) { 91 e.preventDefault(); 92 93 $('#prli-rating-stage-one').hide(); 94 $('#prli-rating-stage-two-no').show(); 95 }); 72 96 }); 73 97 -
pretty-link/trunk/js/admin_shared.js
r1572224 r2124183 5 5 jQuery(document).ready(function($) { 6 6 $(".prli-social-button-checkboxes").sortable(); 7 8 if ($.fn.magnificPopup) { 9 $('.prli-update').magnificPopup({ 10 delegate: '.prli-image-popup', 11 type: 'image', 12 mainClass: 'mfp-prli', 13 gallery: { 14 enabled: true 15 } 16 }); 17 } 18 19 // Remove Status from Link quick edit 20 if (window.pagenow === 'edit-pretty-link' && $('#bulk-edit').length) { 21 $('#bulk-edit').find('select[name="_status"]').closest('.inline-edit-col').remove(); 22 } 7 23 }); 8 24 -
pretty-link/trunk/js/prli-admin-links.js
r1575248 r2124183 63 63 }); 64 64 65 $("#add_group_textbox").keypress(function(e) {66 // Apparently 13 is the enter key67 if(e.which == 13) {68 e.preventDefault();69 70 var add_new_group_data = {71 action: 'add_new_prli_group',72 new_group_name: $('#add_group_textbox').val(),73 _prli_nonce: $('#add_group_textbox').attr('prli_nonce')74 };75 76 $.post(ajaxurl, add_new_group_data, function(data) {77 if(data['status']=='success') {78 $('#group_dropdown').append(data['group_option']);79 $('#group_dropdown').val(data['group_id']);80 $('#add_group_textbox').val('');81 $("#add_group_textbox").blur();82 $("#add_group_message").addClass('updated');83 $("#add_group_message").text(data['message']);84 $("#add_group_message").show();85 86 $("#add_group_message").fadeOut(5000, function(e) {87 $("#add_group_message").removeClass('updated');88 });89 }90 else {91 $("#add_group_message").addClass('error');92 $("#add_group_message").text(data['message']);93 94 $("#add_group_message").fadeOut(5000, function(e) {95 $("#add_group_message").removeClass('error');96 });97 }98 });99 }100 });101 102 65 $(".defaultText").focus(function(srcc) { 103 66 if ($(this).val() == $(this)[0].title) { … … 117 80 $(".defaultText").blur(); 118 81 119 $(".link_row").hover( function() {120 $(this).find(".link_actions").show();121 },122 function() {123 $(this).find(".link_actions").hide();124 });125 126 $('.prli_bulk_action_apply').click( function() {127 if($('.prli_bulk_action').val()=='edit') {128 if($('.link-action-checkbox:checkbox:checked').length > 0)129 $('#bulk-edit').slideDown('slow');130 }131 else if($('.prli_bulk_action').val()=='delete') {132 var confmsg = $(this).attr('data-confmsg');133 if(confirm(confmsg)) {134 var ids = $('.link-action-checkbox:checkbox:checked').map(function() {135 return $(this).attr('data-id');136 }).get().join(',');137 var delurl = $('.prli_bulk_action_apply').attr('data-url') +138 window.location.search +139 '&action=bulk-destroy' +140 '&_wpnonce=' + $('.prli_bulk_action_apply').attr('data-wpnonce') +141 '&ids=' + ids;142 143 window.location = delurl;144 }145 }146 });147 148 $('.bulk-edit-cancel').click( function() {149 $('#bulk-edit').slideUp('slow');150 });151 152 $('.bulk-edit-update').click( function() {153 var ids = $('.link-action-checkbox:checkbox:checked').map(function() {154 return $(this).attr('data-id');155 }).get().join(',');156 var editurl = $('.prli_bulk_action_apply').attr('data-url') +157 window.location.search +158 '&action=bulk-update' +159 '&_wpnonce=' + $('.prli_bulk_action_apply').attr('data-wpnonce') +160 '&ids=' + ids;161 162 $('.bulk-edit-select').each( function() {163 if($(this).val() != '##nochange##')164 editurl += '&' + $(this).attr('name') + '=' + encodeURIComponent($(this).val());165 });166 167 $('.bulk-edit-text').each( function() {168 editurl += '&' + $(this).attr('name') + '=' + encodeURIComponent($(this).val());169 });170 171 window.location = editurl;172 });173 174 $('.link-action-checkbox').change( function() {175 if($(this).prop('checked')==false)176 $('.select-all-link-action-checkboxes').prop('checked',false);177 178 $('#bulk-titles').html('');179 $('.link-action-checkbox:checkbox:checked').each( function() {180 var nid = $(this).attr('data-id');181 var ntitle = $(this).attr('data-title');182 $('#bulk-titles').append('<div id="ttle'+nid+'"><a data-id="'+nid+'" class="ntdelbutton" title="Remove From Bulk Edit">X</a>"'+ntitle+'"</div>');183 $('.ntdelbutton').click( function() {184 var nid = $(this).attr('data-id');185 $('.link-action-checkbox[data-id='+nid+']').prop('checked',false);186 $('.link-action-checkbox[data-id='+nid+']').trigger('change');187 });188 });189 });190 191 // Check all boxes when the select all box is checked, etc192 $('.select-all-link-action-checkboxes').change(function() {193 if($(this).prop('checked'))194 $('.link-action-checkbox').prop('checked',true);195 else196 $('.link-action-checkbox').prop('checked',false);197 198 $('.link-action-checkbox').trigger('change');199 });200 201 // Set the correct colspan for the bulk-edit form202 // This is necessary because in some cases, PLP adds a203 // keyword column to this table -- so it has to be dynamic204 $('.prli-edit-table td.colspanchange').attr('colspan', $('table.prli-edit-table thead tr th').length);205 82 206 83 $('#prli_add_link_rotation').on('click', function(e) { … … 209 86 }); 210 87 211 //PAGE TOGGLING IN LIST MODE 212 $('.prli-page-size').change(function() { 213 window.location.href = $(this).data("url") + $(this).val(); 88 $('.prli_reset_pretty_link').on('click', function(e) { 89 e.preventDefault(); 90 91 if(confirm(PrliLinkList.reset_str)) { 92 var args = { 93 'action' : 'reset_pretty_link', 94 'id' : $(this).data('id'), 95 'security' : PrliLinkList.reset_security 96 }; 97 98 $.post( ajaxurl, args, function(data) { 99 $('.clicks.column-clicks a#link_clicks_' + args.id).html('0/0'); 100 101 // show message coming from the server indicating 102 // whether or not the reset was successful or not 103 alert(data.message); 104 }, 'json' ); 105 } 214 106 }); 107 215 108 }); 216 109 })(jQuery); -
pretty-link/trunk/js/tinymce_form_popup.js
r1683659 r2124183 7 7 init : function() { 8 8 //Used in our insert function for link text 9 prli _selected_text = parent.tinymce.activeEditor.selection.getContent({format: 'text'});9 prliTinymceL10n.prli_selected_text = parent.tinymce.activeEditor.selection.getContent({format: 'text'}); 10 10 }, 11 11 insert_new : function() { … … 24 24 //Change vars to actual defaults if default was chosen 25 25 if(redirect == 'default') { 26 redirect = default_redirect;26 redirect = prliTinymceL10n.default_redirect; 27 27 } 28 28 if(nofollow == 'default') { 29 nofollow = default_nofollow;29 nofollow = prliTinymceL10n.default_nofollow; 30 30 } 31 31 if(tracking == 'default') { 32 tracking = default_tracking;32 tracking = prliTinymceL10n.default_tracking; 33 33 } 34 34 … … 59 59 jQuery("#insert_loading").fadeIn(); 60 60 61 jQuery.post( ajaxurl, data, function(response) {61 jQuery.post(prliTinymceL10n.ajaxurl, data, function(response) { 62 62 var trimmed_data = response.replace(/^\s+|\s+$/g, ''); //Trim whitespace 63 63 64 64 if(trimmed_data == 'true') { 65 65 var output = ''; 66 var pretty_link = home_url + slug;66 var pretty_link = prliTinymceL10n.home_url + slug; 67 67 68 68 //Set the link text to the link itself … … 145 145 setTimeout(function() { 146 146 //Nothing selected 147 if(prli _selected_text.length === 0) {147 if(prliTinymceL10n.prli_selected_text.length === 0) { 148 148 $("#prli_insert_link_link_text").val("Click Here"); 149 149 $("#existing_link_link_text").val("Click Here"); 150 150 } 151 151 //If selected text is a link, make it the target URL 152 else if(prli _selected_text.match(/https?:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/)) {153 $("#prli_insert_link_target").val(prli _selected_text);152 else if(prliTinymceL10n.prli_selected_text.match(/https?:\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/)) { 153 $("#prli_insert_link_target").val(prliTinymceL10n.prli_selected_text); 154 154 $("#prli_insert_link_link_text").val("Click Here"); 155 155 $("#existing_link_link_text").val("Click Here"); 156 156 //Show selected text 157 157 } else { 158 $("#prli_insert_link_link_text").val(prli _selected_text);159 $("#existing_link_link_text").val(prli _selected_text);158 $("#prli_insert_link_link_text").val(prliTinymceL10n.prli_selected_text); 159 $("#existing_link_link_text").val(prliTinymceL10n.prli_selected_text); 160 160 } 161 161 }, 200); //200ms … … 178 178 $("#prlitinymce-thinking").show(); 179 179 180 $.post( ajaxurl, data, function(response) {180 $.post(prliTinymceL10n.ajaxurl, data, function(response) { 181 181 var trimmed_data = response.replace(/^\s+|\s+$/g, ''); //Trim whitespace 182 182 … … 223 223 //Load the autocomplete stuff 224 224 $('#prli_search_box').autocomplete({ 225 source: ajaxurl + "?action=prli_search_for_links",225 source: prliTinymceL10n.ajaxurl + "?action=prli_search_for_links", 226 226 minLength: 2, 227 227 select: function(event, ui) { 228 228 $("#existing_link_target").html(ui.item.target); 229 229 $("#existing_link_nofollow").val(ui.item.nofollow); 230 $("#existing_link_slug").html( home_url + ui.item.slug);230 $("#existing_link_slug").html(prliTinymceL10n.home_url + ui.item.slug); 231 231 } 232 232 }); -
pretty-link/trunk/pretty-link.php
r2108490 r2124183 4 4 Plugin URI: https://prettylinks.com/pl/plugin-uri 5 5 Description: Shrink, track and share any URL on the Internet from your WordPress website! 6 Version: 2.1.106 Version: 3.0.0 7 7 Author: Blair Williams 8 8 Author URI: http://blairwilliams.com 9 9 Text Domain: pretty-link 10 Copyright: 2004-201 7, Caseproof, LLC10 Copyright: 2004-2019, Caseproof, LLC 11 11 12 12 GNU General Public License, Free Software Foundation <http://creativecommons.org/licenses/GPL/2.0/> … … 152 152 153 153 // i18n 154 add_action(' init', 'prli_load_textdomain');154 add_action('plugins_loaded', 'prli_load_textdomain'); 155 155 function prli_load_textdomain() { 156 156 $plugin_dir = basename(dirname(__FILE__)); … … 168 168 global $prli_db_version, $plp_db_version; 169 169 170 $prli_db_version = 18; // this is the version of the database we're moving to171 $plp_db_version = 7; // this is the version of the database we're moving to170 $prli_db_version = 21; // this is the version of the database we're moving to 171 $plp_db_version = 9; // this is the version of the database we're moving to 172 172 173 173 global $prli_app_controller; -
pretty-link/trunk/readme.txt
r2108490 r2124183 5 5 Requires at least: 5.1 6 6 Tested up to: 5.2.2 7 Stable tag: 2.1.107 Stable tag: 3.0.0 8 8 9 9 Shrink, beautify, track, manage and share any URL on or off of your WordPress website. Create links that look how you want using your own domain name! … … 15 15 [Upgrade to Pretty Links Pro](https://prettylinks.com/why-upgrade/ "Upgrade to Pretty Links Pro") 16 16 17 *Pretty Links Pro* is a **significant upgrade** that adds many tools and redirection types that will allow you to create pretty links automatically, cloak links, replace keywords thoughout your blog with pretty links and much more. You can learn more about *Pretty Links Pro* here:17 *Pretty Links Pro* is a **significant upgrade** that adds many tools and redirection types that will allow you to create pretty links automatically, cloak links, replace keywords thoughout your blog with pretty links, categorize & tag your pretty links and much more. You can learn more about *Pretty Links Pro* here: 18 18 19 19 [Learn More](https://prettylinks.com/about "Learn More") | [Pricing](https://prettylinks.com/pricing/plans/ "Pricing") … … 52 52 * Select Temporary (302 or 307) or Permanent (301) redirection for your pretty links 53 53 * Cookie based system for tracking visitor activity across clicks 54 * Organize Links into Groups55 54 * Create nofollow/noindex links 56 55 * Turn tracking on / off on each link … … 66 65 67 66 == Changelog == 67 = 3.0.0 = 68 * Re-designed Admin UI especially the Admin Links UI including links listing, adding new links and editing links 69 * Added an Insert Pretty Link button for Gutenberg Paragraph Blocks 70 * Security fixes and hardening 71 * Fixed Slug is not Available Error 72 * Removed Pretty Links Groups (lite users will still be able to access legacy groups on the links listing page but pro users & lite users who upgrade to pro will have their groups migrated to become link categories) 73 * PRO ONLY: Added Pretty Link Categories 74 * PRO ONLY: Added Pretty Link Tags 75 * PRO ONLY: Fixed some issues with Pretty Link Imports and Exports 76 * Many other small fixes and enhancements 77 68 78 = 2.1.10 = 69 79 * More security hardening
Note: See TracChangeset
for help on using the changeset viewer.