Shortlinks by Pretty Links – Best WordPress Link Tracking Plugin - Version 2.0.0

Version Description

  • Added an Insert Pretty Link editor popup to create and insert pretty links while editing a page, post or custom post type
  • Added a base slug prefix feature so that new Pretty Links can be prefixed
  • Added auto-trimming for clicks to keep click databases operating at full performance
  • Refactored entire codebase
  • Completely new UI
  • Tools have been better separated out into it's own admin page
  • Now fully translatable
  • Fixed numerous bugs including "Slug Not Available" issue
  • Numerous stability, security and performance fixes
  • Removed banner advertisements on the Pretty Link list admin page for lite users
  • PRO Added support for automatically created links on Custom Post Types
  • PRO Added automatic link disclosures for keyword replacements
  • PRO Added pretty link keyword replacement indexing for better performance
  • PRO Added Geographic redirects
  • PRO Added Technology-based redirects
  • PRO Added Time-based redirects
  • PRO Added Link Expirations
  • PRO Enhanced Link Rotations to accept more target URLs
  • PRO Enhanced Social Share buttons to look better and support modern social sites
  • PRO Enhanced QR codes code that produces them quicker and at larger sizes
  • PRO Added an auto url replacement blacklist to ensure some URLs won't ever be replaced
  • PRO Added the ability to add custom head scripts to redirect types that support it (Javascript, Cloaked, Pretty Bar, Meta Refresh, etc)
  • PRO Enhanced the reliability and amount of data that can be imported and exported
  • PRO Changed auto update system to use a license key instead of username / password
  • PRO Consolidated the "Pro" Options to appear on the main Pretty Link Options admin page
  • PRO Removed the Twitter Badge option ... this is now handled better with the social share bar or through another plugin like Social Warfare
  • PRO Removed the Auto-Tweet capability ... auto-tweeting is handled better on a service like Buffer or Hootsuite
Download this release

Release Info

Developer supercleanse
Plugin Icon 128x128 Shortlinks by Pretty Links – Best WordPress Link Tracking Plugin
Version 2.0.0
Comparing to
See all releases

Code changes from version 1.7.2 to 2.0.0

Files changed (154) hide show
  1. app/controllers/PrliAppController.php +376 -0
  2. app/controllers/PrliClicksController.php +227 -0
  3. app/controllers/PrliGroupsController.php +248 -0
  4. app/controllers/PrliLinksController.php +444 -0
  5. app/controllers/PrliLocalApiController.php +316 -0
  6. app/controllers/PrliOptionsController.php +104 -0
  7. app/controllers/PrliPostsController.php +152 -0
  8. app/controllers/PrliReportsController.php +45 -0
  9. app/controllers/PrliToolsController.php +105 -0
  10. app/controllers/PrliUpdateController.php +480 -0
  11. app/controllers/PrliXmlRpcController.php +344 -0
  12. app/controllers/index.php +2 -0
  13. app/helpers/PrliAppHelper.php +41 -0
  14. app/helpers/PrliClicksHelper.php +108 -0
  15. app/helpers/PrliLinksHelper.php +137 -0
  16. app/helpers/index.php +2 -0
  17. app/index.php +2 -0
  18. app/lib/PrliBaseController.php +6 -0
  19. app/models/PrliClick.php +258 -0
  20. app/models/PrliDb.php +153 -0
  21. {classes → app}/models/PrliGroup.php +17 -17
  22. {classes → app}/models/PrliLink.php +298 -202
  23. app/models/PrliLinkMeta.php +82 -0
  24. {classes → app}/models/PrliOptions.php +52 -44
  25. app/models/PrliUtils.php +1270 -0
  26. app/models/index.php +2 -0
  27. app/views/admin/errors.php +16 -0
  28. app/views/admin/update/activation_warning.php +18 -0
  29. app/views/admin/update/addon_popup.php +27 -0
  30. app/views/admin/update/addons.php +65 -0
  31. app/views/admin/update/edge_updates.php +6 -0
  32. app/views/admin/update/index.php +1 -0
  33. app/views/admin/update/license.php +84 -0
  34. app/views/admin/update/ui.php +34 -0
  35. {classes/views/prli-clicks → app/views/clicks}/csv.php +5 -5
  36. app/views/clicks/csv_download.php +34 -0
  37. app/views/clicks/index.php +2 -0
  38. app/views/clicks/list.php +196 -0
  39. app/views/groups/edit.php +57 -0
  40. app/views/groups/index.php +2 -0
  41. app/views/groups/list.php +91 -0
  42. app/views/groups/new.php +62 -0
  43. app/views/index.php +2 -0
  44. app/views/links/edit.php +19 -0
  45. app/views/links/form.php +244 -0
  46. app/views/links/index.php +2 -0
  47. app/views/links/list.php +160 -0
  48. app/views/links/new.php +18 -0
  49. app/views/options/form.php +198 -0
  50. app/views/options/index.php +2 -0
  51. {classes → app}/views/shared/errors.php +0 -0
  52. app/views/shared/index.php +2 -0
  53. {classes → app}/views/shared/jsredirect.php +0 -0
  54. app/views/shared/link-table-nav.php +117 -0
  55. app/views/shared/nav.php +22 -0
  56. app/views/shared/public_link.php +46 -0
  57. {classes → app}/views/shared/table-nav.php +20 -16
  58. app/views/shared/tinymce_form_popup.php +127 -0
  59. app/views/shared/title_text.php +3 -0
  60. app/views/tools/form.php +75 -0
  61. app/views/tools/index.php +2 -0
  62. app/views/widgets/index.php +2 -0
  63. app/views/widgets/widget.php +26 -0
  64. classes/controllers/PrliAppController.php +0 -88
  65. classes/controllers/PrliBookmarkletController.php +0 -38
  66. classes/controllers/PrliGroupsController.php +0 -43
  67. classes/controllers/PrliLinksController.php +0 -363
  68. classes/helpers/PrliAppHelper.php +0 -7
  69. classes/helpers/PrliLinksHelper.php +0 -69
  70. classes/models/PrliClick.php +0 -267
  71. classes/models/PrliLinkMeta.php +0 -69
  72. classes/models/PrliUpdate.php +0 -301
  73. classes/models/PrliUtils.php +0 -1234
  74. classes/models/models.inc.php +0 -89
  75. classes/views/prli-clicks/csv_download.php +0 -36
  76. classes/views/prli-clicks/head.php +0 -60
  77. classes/views/prli-clicks/list.php +0 -170
  78. classes/views/prli-dashboard-widget/widget.php +0 -24
  79. classes/views/prli-groups/edit.php +0 -63
  80. classes/views/prli-groups/head.php +0 -39
  81. classes/views/prli-groups/list.php +0 -89
  82. classes/views/prli-groups/new.php +0 -66
  83. classes/views/prli-links/edit.php +0 -27
  84. classes/views/prli-links/form.php +0 -119
  85. classes/views/prli-links/list.php +0 -243
  86. classes/views/prli-links/new.php +0 -27
  87. classes/views/prli-options/form.php +0 -125
  88. classes/views/prli-options/head.php +0 -53
  89. classes/views/prli-options/pro-settings.php +0 -22
  90. classes/views/prli-tools/bookmarklet.php +0 -83
  91. classes/views/prli-tools/form.php +0 -34
  92. classes/views/shared/link-table-nav.php +0 -123
  93. classes/views/shared/nav.php +0 -12
  94. classes/views/shared/title_text.php +0 -2
  95. css/admin-activate.css +206 -0
  96. css/admin_groups.css +17 -0
  97. css/admin_options.css +3 -0
  98. css/admin_reports.css +20 -0
  99. css/admin_shared.css +140 -0
  100. css/index.php +2 -0
  101. css/menu-styles.css +62 -0
  102. css/prli-admin-links.css +5 -0
  103. css/public_link.css +31 -0
  104. css/settings_table.css +188 -0
  105. css/simplegrid.css +289 -0
  106. css/social_buttons.css +109 -0
  107. css/tinymce_form_popup.css +100 -0
  108. i18n/index.php +1 -0
  109. i18n/pretty-link.pot +3536 -1454
  110. i18n/prettylinkpro-es_ES.mo +0 -0
  111. i18n/prettylinkpro-es_ES.po +4451 -0
  112. images/bookmark.png +0 -0
  113. images/co.mments.gif +0 -0
  114. images/delicious_32.png +0 -0
  115. images/digg_32.png +0 -0
  116. images/email_32.png +0 -0
  117. images/facebook.png +0 -0
  118. images/facebook_32.png +0 -0
  119. images/forward_params.png +0 -0
  120. images/hyves_32.png +0 -0
  121. images/index.php +2 -0
  122. images/linkedin_32.png +0 -0
  123. images/mixx_32.png +0 -0
  124. images/newsvine_32.png +0 -0
  125. images/nofollow.png +0 -0
  126. images/pbar_grad.png +0 -0
  127. images/pixel_track.png +0 -0
  128. images/pl-logo-horiz-RGB.png +0 -0
  129. images/pl-logo-horiz-RGB.svg +75 -0
  130. images/pretty-link-48x48.png +0 -0
  131. images/pretty-link-add.png +0 -0
  132. images/pretty-link-med.png +0 -0
  133. images/pretty-link-small.png +0 -0
  134. images/prettylink_logo.jpg +0 -0
  135. images/prettylink_logo_64.jpg +0 -0
  136. images/prettylink_logo_med.jpg +0 -0
  137. images/prettylink_logo_small.jpg +0 -0
  138. images/reddit_32.png +0 -0
  139. images/retweet.gif +0 -0
  140. images/retweet.png +0 -0
  141. images/settings_table/arrow_sprite.png +0 -0
  142. images/sphinn_32.png +0 -0
  143. images/square-loader.gif +0 -0
  144. images/stumbleupon_32.png +0 -0
  145. images/technorati_32.png +0 -0
  146. images/tinymce_form_popup.png +0 -0
  147. images/tracking.png +0 -0
  148. images/tweet.gif +0 -0
  149. images/tweet.png +0 -0
  150. images/twitter_32.png +0 -0
  151. images/ultra-cloak.png +0 -0
  152. images/url_icon.gif +0 -0
  153. images/yahoobuzz_32.png +0 -0
  154. includes/php/php_browsecap.ini +0 -7695
app/controllers/PrliAppController.php ADDED
@@ -0,0 +1,376 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ class PrliAppController extends PrliBaseController {
4
+ public function load_hooks() {
5
+ global $prli_options;
6
+
7
+ add_action('init', array($this, 'parse_standalone_request'));
8
+ add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
9
+ 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
+
11
+ //Where the magic happens when not in wp-admin nor !GET request
12
+ if($_SERVER["REQUEST_METHOD"] == 'GET' && !is_admin()) {
13
+ add_action('plugins_loaded', array($this, 'redirect'), 1); // Redirect
14
+ }
15
+
16
+ // Hook into the 'wp_dashboard_setup' action to register our other functions
17
+ add_action('wp_dashboard_setup', array($this, 'add_dashboard_widgets'));
18
+
19
+ add_action('after_plugin_row', array($this, 'pro_action_needed'));
20
+ add_action('admin_notices', array($this, 'pro_get_started_headline'));
21
+
22
+ // DB upgrades/installs will happen here, as a non-blocking process hopefully
23
+ add_action('init', array($this, 'install'));
24
+ }
25
+
26
+ public function menu() {
27
+ global $prli_options, $plp_options, $plp_update;
28
+
29
+ $role = 'administrator';
30
+ if(isset($plp_options->min_role))
31
+ $role = $plp_options->min_role;
32
+
33
+ $prli_menu_hook = add_menu_page(
34
+ __('Pretty Link | Manage Pretty Links', 'pretty-link'),
35
+ __('Pretty Link', 'pretty-link'),
36
+ $role, 'pretty-link',
37
+ 'PrliLinksController::route',
38
+ PRLI_IMAGES_URL.'/pretty-link-small.png'
39
+ );
40
+
41
+ $prli_add_links_menu_hook = add_submenu_page(
42
+ 'pretty-link',
43
+ __('Pretty Link | Manage Pretty Links', 'pretty-link'),
44
+ __('Pretty Link', 'pretty-link'),
45
+ $role, 'pretty-link',
46
+ 'PrliLinksController::route'
47
+ );
48
+
49
+ $prli_add_links_menu_hook = add_submenu_page(
50
+ 'pretty-link',
51
+ __('Pretty Link | Add New Link', 'pretty-link'),
52
+ __('Add New Link', 'pretty-link'),
53
+ $role, 'add-new-pretty-link',
54
+ 'PrliLinksController::new_link'
55
+ );
56
+
57
+ $groups_ctrl = new PrliGroupsController();
58
+ add_submenu_page(
59
+ 'pretty-link',
60
+ __('Pretty Link | Groups', 'pretty-link'),
61
+ __('Groups', 'pretty-link'),
62
+ $role, 'pretty-link-groups',
63
+ array( $groups_ctrl, 'route' )
64
+ );
65
+
66
+ if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking != 'count' ) {
67
+ $clicks_ctrl = new PrliClicksController();
68
+ add_submenu_page(
69
+ 'pretty-link',
70
+ __('Pretty Link | Clicks', 'pretty-link'),
71
+ __('Clicks', 'pretty-link'),
72
+ $role, 'pretty-link-clicks',
73
+ array( $clicks_ctrl, 'route' )
74
+ );
75
+ }
76
+
77
+ $routes_ctrl = new PrliToolsController();
78
+ add_submenu_page(
79
+ 'pretty-link',
80
+ __('Pretty Link | Tools', 'pretty-link'),
81
+ __('Tools', 'pretty-link'),
82
+ $role, 'pretty-link-tools',
83
+ array($routes_ctrl,'route')
84
+ );
85
+
86
+ $options_ctrl = new PrliOptionsController();
87
+ add_submenu_page(
88
+ 'pretty-link',
89
+ __('Pretty Link | Options', 'pretty-link'),
90
+ __('Options', 'pretty-link'),
91
+ $role, 'pretty-link-options',
92
+ array( $options_ctrl, 'route' )
93
+ );
94
+
95
+ if(!defined('PRETTYLINK_LICENSE_KEY') && class_exists('PrliUpdateController')) {
96
+ if($plp_update->is_installed_and_activated()) {
97
+ add_submenu_page( 'pretty-link', __('Activate Pro', 'pretty-link'), __('Activate Pro', 'pretty-link'), $role, 'pretty-link-updates', array($plp_update, 'route'));
98
+ }
99
+ else if($plp_update->is_installed()) {
100
+ 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'));
101
+ }
102
+ else {
103
+ 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'));
104
+ }
105
+ }
106
+ }
107
+
108
+ public function enqueue_admin_scripts($hook) {
109
+ global $wp_version;
110
+
111
+ wp_enqueue_style( 'prli-fontello-animation',
112
+ PRLI_VENDOR_LIB_URL.'/fontello/css/animation.css',
113
+ array(), PRLI_VERSION );
114
+ wp_enqueue_style( 'prli-fontello-pretty-link',
115
+ PRLI_VENDOR_LIB_URL.'/fontello/css/pretty-link.css',
116
+ array('prli-fontello-animation'), PRLI_VERSION );
117
+
118
+ // If we're in 3.8 now then use a font for the admin image
119
+ if( version_compare( $wp_version, '3.8', '>=' ) ) {
120
+ wp_enqueue_style( 'prli-menu-styles', PRLI_CSS_URL.'/menu-styles.css',
121
+ array('prli-fontello-pretty-link'), PRLI_VERSION );
122
+ }
123
+
124
+ $wp_scripts = new WP_Scripts();
125
+ $ui = $wp_scripts->query('jquery-ui-core');
126
+ $url = "//ajax.googleapis.com/ajax/libs/jqueryui/{$ui->ver}/themes/smoothness/jquery-ui.css";
127
+
128
+ if(strstr($hook, 'pretty') !== false) {
129
+ wp_enqueue_style('pl-ui-smoothness', $url);
130
+ wp_enqueue_script('jquery');
131
+ wp_enqueue_script('jquery-ui-datepicker');
132
+
133
+ wp_enqueue_style('prli-simplegrid', PRLI_CSS_URL.'/simplegrid.css', array(), PRLI_VERSION);
134
+ wp_enqueue_style('prli-admin-shared', PRLI_CSS_URL.'/admin_shared.css', array('wp-pointer','prli-simplegrid'), PRLI_VERSION);
135
+ wp_enqueue_style('prli-social', PRLI_CSS_URL.'/social_buttons.css', array(), PRLI_VERSION);
136
+
137
+ wp_enqueue_script('prli-tooltip', PRLI_JS_URL.'/tooltip.js', array('jquery', 'wp-pointer'), PRLI_VERSION);
138
+ wp_localize_script('prli-tooltip', 'PrliTooltip', array( 'show_about_notice' => $this->show_about_notice(),
139
+ 'about_notice' => $this->about_notice() ));
140
+
141
+ wp_enqueue_script('prli-admin-shared', PRLI_JS_URL.'/admin_shared.js', array('jquery','jquery-ui-sortable'), PRLI_VERSION);
142
+ }
143
+
144
+ if( in_array( $hook, array( 'toplevel_page_pretty-link', 'pretty-link_page_add-new-pretty-link' ) ) ) {
145
+ wp_enqueue_style( 'prli-admin-links', PRLI_CSS_URL . '/prli-admin-links.css', array(), PRLI_VERSION );
146
+ wp_enqueue_script( 'jquery-clippy', PRLI_JS_URL . '/jquery.clippy.js', array('jquery'), PRLI_VERSION );
147
+
148
+ wp_enqueue_script( 'prli-admin-links', PRLI_JS_URL . '/prli-admin-links.js', array('jquery','jquery-clippy'), PRLI_VERSION );
149
+
150
+ wp_enqueue_script( 'prli-admin-link-list', PRLI_JS_URL . '/admin_link_list.js', array('jquery','jquery-clippy'), PRLI_VERSION );
151
+ wp_localize_script( 'prli-admin-link-list', 'PrliLink', array('clippy_url' => PRLI_JS_URL.'/clippy.swf') );
152
+ }
153
+
154
+ if( $hook === 'pretty-link_page_pretty-link-groups' ) {
155
+ wp_enqueue_style('pl-groups', PRLI_CSS_URL.'/admin_groups.css', null, PRLI_VERSION);
156
+ wp_enqueue_script('pl-groups', PRLI_JS_URL.'/admin_groups.js', array('jquery'), PRLI_VERSION);
157
+ }
158
+
159
+ if( $hook === 'pretty-link_page_pretty-link-options' ) {
160
+ wp_enqueue_style('pl-options', PRLI_CSS_URL.'/admin_options.css', null, PRLI_VERSION);
161
+ wp_enqueue_script('pl-options', PRLI_JS_URL.'/admin_options.js', array('jquery'), PRLI_VERSION);
162
+ }
163
+
164
+ if(in_array($hook, array(
165
+ 'toplevel_page_pretty-link',
166
+ 'pretty-link_page_add-new-pretty-link',
167
+ 'pretty-link_page_pretty-link-tools',
168
+ 'pretty-link_page_pretty-link-options'
169
+ ))) {
170
+ wp_enqueue_style('pl-settings-table', PRLI_CSS_URL.'/settings_table.css', null, PRLI_VERSION);
171
+ wp_enqueue_script('pl-settings-table', PRLI_JS_URL.'/settings_table.js', array('jquery'), PRLI_VERSION);
172
+ }
173
+
174
+ if( $hook === 'pretty-link_page_pretty-link-clicks' ) {
175
+ wp_enqueue_script('google-visualization-api', 'https://www.google.com/jsapi', null, PRLI_VERSION);
176
+ wp_enqueue_style('pl-reports', PRLI_CSS_URL.'/admin_reports.css', null, PRLI_VERSION);
177
+ wp_enqueue_script('pl-reports', PRLI_JS_URL.'/admin_reports.js', array('jquery','google-visualization-api'), PRLI_VERSION);
178
+ wp_localize_script('pl-reports', 'PrliReport', PrliReportsController::chart_data());
179
+ }
180
+
181
+ do_action('prli_load_admin_scripts', $hook);
182
+ }
183
+
184
+ public function parse_standalone_request() {
185
+ if( !empty($_REQUEST['plugin']) and $_REQUEST['plugin'] == 'pretty-link' and
186
+ !empty($_REQUEST['controller']) and !empty($_REQUEST['action']) ) {
187
+ $this->standalone_route($_REQUEST['controller'], $_REQUEST['action']);
188
+ do_action('prli-standalone-route');
189
+ exit;
190
+ }
191
+ else if( !empty($_GET['action']) and $_GET['action']=='prli_bookmarklet' ) {
192
+ PrliToolsController::standalone_route();
193
+ exit;
194
+ }
195
+ }
196
+
197
+ public function standalone_route($controller, $action) {
198
+ return; // Nothing here now that we've moved DB upgrade out of here
199
+ }
200
+
201
+ public static function install() {
202
+ global $plp_update, $prli_utils;
203
+ $prli_db = new PrliDb();
204
+
205
+ if($prli_db->should_install()) {
206
+ @ignore_user_abort(true);
207
+ @set_time_limit(0);
208
+ $prli_db->prli_install();
209
+ }
210
+
211
+ // Install Pro DB maybe
212
+ if($plp_update->is_activated() && $prli_utils->should_install_pro_db()) {
213
+ @ignore_user_abort(true);
214
+ @set_time_limit(0);
215
+ $prli_utils->install_pro_db();
216
+ }
217
+ }
218
+
219
+ public function pro_settings_submenu() {
220
+ global $wpdb, $prli_utils, $plp_update, $prli_db_version;
221
+
222
+ if(isset($_GET['action']) && $_GET['action'] == 'force-pro-reinstall') {
223
+ // Queue the update and auto upgrade
224
+ $plp_update->manually_queue_update();
225
+ $reinstall_url = wp_nonce_url('update.php?action=upgrade-plugin&plugin=pretty-link/pretty-link.php', 'upgrade-plugin_pretty-link/pretty-link.php');
226
+ ?>
227
+
228
+ <div class="updated notice notice-success"><p><strong><?php printf(__('You\'re almost done!<br/>%1$sFinish your Re-Install of Pretty Link Pro%2$s', 'pretty-link'), '<a href="'.$reinstall_url.'">', '</a>'); ?></strong></p></div>
229
+ <?php
230
+ }
231
+
232
+ if(isset($_GET['action']) and $_GET['action'] == 'pro-uninstall') {
233
+ $prli_utils->uninstall_pro();
234
+ ?>
235
+ <div class="updated notice notice-success is-dismissible"><p><strong><?php _e('Pretty Link Pro Successfully Uninstalled.' , 'pretty-link'); ?></strong></p></div>
236
+ <?php
237
+ }
238
+
239
+ require_once(PRLI_VIEWS_PATH.'/options/pro-settings.php');
240
+ }
241
+
242
+ /********* ADD REDIRECTS FOR STANDARD MODE ***********/
243
+ public function redirect() {
244
+ global $prli_link;
245
+
246
+ // Remove the trailing slash if there is one
247
+ $request_uri = preg_replace('#/(\?.*)?$#', '$1', urldecode($_SERVER['REQUEST_URI']));
248
+
249
+ if($link_info = $prli_link->is_pretty_link($request_uri,false)) {
250
+ $params = (isset($link_info['pretty_link_params'])?$link_info['pretty_link_params']:'');
251
+ $this->link_redirect_from_slug( $link_info['pretty_link_found']->slug, $params );
252
+ }
253
+ }
254
+
255
+ // For use with the redirect function
256
+ public function link_redirect_from_slug($slug,$param_str) {
257
+ global $prli_link, $prli_utils;
258
+
259
+ $link = $prli_link->getOneFromSlug(urldecode($slug));
260
+
261
+ if(isset($link->slug) and !empty($link->slug)) {
262
+ $custom_get = $_GET;
263
+
264
+ /* Don't do any custom param forwarding now
265
+ if(isset($link->param_forwarding) and $link->param_forwarding == 'custom')
266
+ $custom_get = $prli_utils->decode_custom_param_str($link->param_struct, $param_str);
267
+ */
268
+
269
+ $success = $prli_utils->track_link($link->slug, $custom_get);
270
+
271
+ if($success) { exit; }
272
+ }
273
+ }
274
+
275
+ /********* DASHBOARD WIDGET ***********/
276
+ public function dashboard_widget_function() {
277
+ global $prli_group,$prli_link,$prli_blogurl;
278
+
279
+ $groups = $prli_group->getAll('',' ORDER BY name');
280
+ $values = PrliLinksController::setup_new_vars($groups);
281
+
282
+ require_once(PRLI_VIEWS_PATH . '/widgets/widget.php');
283
+ }
284
+
285
+ // Create the function use in the action hook
286
+ public function add_dashboard_widgets() {
287
+ $current_user = PrliUtils::get_currentuserinfo();
288
+
289
+ if($current_user->user_level >= 8) {
290
+ wp_add_dashboard_widget('prli_dashboard_widget', __('Pretty Link Quick Add', 'pretty-link'), array($this,'dashboard_widget_function'));
291
+
292
+ // Globalize the metaboxes array, this holds all the widgets for wp-admin
293
+ global $wp_meta_boxes;
294
+
295
+ // Get the regular dashboard widgets array
296
+ $normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core'];
297
+
298
+ // Backup and delete our new dashbaord widget from the end of the array
299
+ $prli_widget_backup = array('prli_dashboard_widget' => $normal_dashboard['prli_dashboard_widget']);
300
+ unset($normal_dashboard['prli_dashboard_widget']);
301
+
302
+ // Merge the two arrays together so our widget is at the beginning
303
+ $i = 0;
304
+ foreach($normal_dashboard as $key => $value) {
305
+ if($i == 1 or (count($normal_dashboard) <= 1 and $i == count($normal_dashboard) - 1)) {
306
+ $sorted_dashboard['prli_dashboard_widget'] = $prli_widget_backup['prli_dashboard_widget'];
307
+ }
308
+
309
+ $sorted_dashboard[$key] = $normal_dashboard[$key];
310
+ $i++;
311
+ }
312
+
313
+ // Save the sorted array back into the original metaboxes
314
+ $wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard;
315
+ }
316
+ }
317
+
318
+
319
+ public function pro_action_needed( $plugin ) {
320
+ global $plp_update;
321
+
322
+ if( $plugin == 'pretty-link/pretty-link.php' && $plp_update->is_activated() && !$plp_update->is_installed() ) {
323
+ $plp_update->manually_queue_update();
324
+ $inst_install_url = $plp_update->update_plugin_url();
325
+
326
+ ?>
327
+ <td colspan="3" class="plugin-update" style="border-left: 4px solid #d54e21; background-color: #fef7f1;">
328
+ <div class="update-message"><?php printf(__('Your Pretty Link Pro installation isn\'t quite complete yet.<br/>%1$sAutomatically Upgrade to Enable Pretty Link Pro%2$s', 'pretty-link'), '<a href="'.$inst_install_url.'">', '</a>'); ?></div>
329
+ </td>
330
+ <?php
331
+ }
332
+ }
333
+
334
+ public function pro_get_started_headline() {
335
+ global $plp_update;
336
+
337
+ // Don't display this error as we're upgrading the thing... cmon
338
+ if(isset($_GET['action']) && $_GET['action'] == 'upgrade-plugin') {
339
+ return;
340
+ }
341
+
342
+ if( $plp_update->is_activated() && !$plp_update->is_installed()) {
343
+ $plp_update->manually_queue_update();
344
+ $inst_install_url = wp_nonce_url('update.php?action=upgrade-plugin&plugin=' . PRLI_PLUGIN_SLUG, 'upgrade-plugin_' . PRLI_PLUGIN_SLUG);
345
+
346
+ ?>
347
+ <div class="error" style="padding-top: 5px; padding-bottom: 5px;"><?php printf(__('Your Pretty Link Pro installation isn\'t quite complete yet.<br/>%1$sAutomatically Upgrade to Enable Pretty Link Pro%2$s', 'pretty-link'), '<a href="'.$inst_install_url.'">','</a>'); ?></div>
348
+ <?php
349
+ }
350
+ }
351
+
352
+ public function show_about_notice() {
353
+ $last_shown_notice = get_option('prli_about_notice_version');
354
+ $version_str = preg_replace('/\./','-',PRLI_VERSION);
355
+ return ( $last_shown_notice != PRLI_VERSION and
356
+ file_exists( PRLI_VIEWS_PATH . "/about/{$version_str}.php" ) );
357
+ }
358
+
359
+ public function about_notice() {
360
+ $version_str = preg_replace('/\./','-',PRLI_VERSION);
361
+ $version_file = PRLI_VIEWS_PATH . "/about/{$version_str}.php";
362
+
363
+ if( file_exists( $version_file ) ) {
364
+ ob_start();
365
+ require_once($version_file);
366
+ return ob_get_clean();
367
+ }
368
+
369
+ return '';
370
+ }
371
+
372
+ public static function close_about_notice() {
373
+ update_option('prli_about_notice_version',PRLI_VERSION);
374
+ }
375
+ }
376
+
app/controllers/PrliClicksController.php ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ class PrliClicksController extends PrliBaseController {
5
+ public $max_rows_per_file;
6
+
7
+ public function __construct() {
8
+ $this->max_rows_per_file = 5000;
9
+ }
10
+
11
+ public function load_hooks() {
12
+ add_action('init', array($this,'route_scripts'));
13
+ add_action('admin_init', array($this, 'auto_trim_clicks'));
14
+ }
15
+
16
+ public function route() {
17
+ if(isset($_REQUEST['action']) and $_REQUEST['action'] == 'csv') {
18
+ $this->csv();
19
+ } else {
20
+ $this->admin_page();
21
+ }
22
+ }
23
+
24
+ public function route_scripts() {
25
+ if( isset($_GET['action']) && $_GET['action'] == 'prli_download_csv_hit_report' ) {
26
+ $this->click_report();
27
+ exit;
28
+ }
29
+ }
30
+
31
+ public function auto_trim_clicks() {
32
+ global $prli_options, $prli_click;
33
+
34
+ if($prli_options->auto_trim_clicks) {
35
+ $last_run = get_option('prli_auto_trim_clicks_last_run', 0);
36
+ $now = time();
37
+
38
+ //Run once per day at most
39
+ if(($now - $last_run) > 86400) {
40
+ $prli_click->clear_clicks_by_age_in_days(90);
41
+ update_option('prli_auto_trim_clicks_last_run', time());
42
+ }
43
+ }
44
+ }
45
+
46
+ public function admin_page() {
47
+ global $wpdb, $prli_options, $prli_click, $prli_group, $prli_link, $prli_utils, $page_size;
48
+
49
+ $page_params = '';
50
+
51
+ $params = $prli_click->get_params_array();
52
+ $page_size = (isset($_REQUEST['size']) && is_numeric($_REQUEST['size']) && !empty($_REQUEST['size']))?$_REQUEST['size']:10;
53
+ $current_page = $params['paged'];
54
+
55
+ $start_timestamp = $prli_utils->get_start_date($params);
56
+ $end_timestamp = $prli_utils->get_end_date($params);
57
+
58
+ $start_timestamp = mktime(0, 0, 0, date('n', $start_timestamp), date('j', $start_timestamp), date('Y', $start_timestamp));
59
+ $end_timestamp = mktime(0, 0, 0, date('n', $end_timestamp), date('j', $end_timestamp), date('Y', $end_timestamp) );
60
+
61
+ $sdyear = date('Y',$start_timestamp);
62
+ $sdmon = date('n',$start_timestamp);
63
+ $sddom = date('j',$start_timestamp);
64
+
65
+ $edyear = date('Y',$end_timestamp);
66
+ $edmon = date('n',$end_timestamp);
67
+ $eddom = date('j',$end_timestamp);
68
+
69
+ $where_clause = $wpdb->prepare(
70
+ " cl.created_at BETWEEN '%d-%d-%d 00:00:00' AND '%d-%d-%d 23:59:59'",
71
+ $sdyear,$sdmon,$sddom,$edyear,$edmon,$eddom );
72
+
73
+ if(!empty($params['sdate']) and preg_match('/^\d\d\d\d-\d\d-\d\d$/', $params['sdate'])) {
74
+ $page_params .= "&sdate={$params['sdate']}";
75
+ }
76
+
77
+ if(!empty($params['edate']) and preg_match('/^\d\d\d\d-\d\d-\d\d$/', $params['edate'])) {
78
+ $page_params .= "&edate={$params['edate']}";
79
+ }
80
+
81
+ if(!empty($params['l']) and $params['l'] != 'all') {
82
+ $where_clause .= (($params['l'] != 'all') ? $wpdb->prepare(' AND cl.link_id=%d', $params['l']):'');
83
+ $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d", $params['l']));
84
+ $link_slug = $wpdb->get_var($wpdb->prepare("SELECT slug FROM {$wpdb->prefix}prli_links WHERE id=%d", $params['l']));
85
+
86
+ $page_params .= "&l={$params['l']}";
87
+ }
88
+ else if(!empty($params['ip'])) {
89
+ $link_name = __('IP Address: ', 'pretty-link') . esc_html($params['ip']);
90
+ $where_clause .= $wpdb->prepare(" AND cl.ip=%s", $params['ip']);
91
+ $page_params .= "&ip={$params['ip']}";
92
+ }
93
+ else if(!empty($params['vuid'])) {
94
+ $link_name = __('Visitor: ', 'pretty-link') . esc_html($params['vuid']);
95
+ $where_clause .= $wpdb->prepare(" AND cl.vuid=%s",$params['vuid']);
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
+ }
104
+ else {
105
+ $link_name = __('All Links', 'pretty-link');
106
+ $where_clause .= "";
107
+ $page_params .= "";
108
+ }
109
+
110
+ if($params['type'] == 'unique') {
111
+ $where_clause .= ' AND first_click=1';
112
+ $page_params .= '&type=unique';
113
+ }
114
+
115
+ $click_vars = PrliClicksHelper::get_click_sort_vars($params,$where_clause);
116
+ $sort_params = $page_params . $click_vars['sort_params'];
117
+ $page_params .= $click_vars['page_params'];
118
+ $sort_str = $click_vars['sort_str'];
119
+ $sdir_str = $click_vars['sdir_str'];
120
+ $search_str = $click_vars['search_str'];
121
+
122
+ $where_clause = $click_vars['where_clause'];
123
+ $order_by = $click_vars['order_by'];
124
+ $count_where_clause = $click_vars['count_where_clause'];
125
+
126
+ $record_count = $prli_click->getRecordCount($count_where_clause);
127
+ $page_count = $prli_click->getPageCount($page_size,$count_where_clause);
128
+ $clicks = $prli_click->getPage($current_page,$page_size,$where_clause,$order_by,true);
129
+ $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size);
130
+ $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size);
131
+
132
+ require_once(PRLI_VIEWS_PATH.'/clicks/list.php');
133
+ }
134
+
135
+ public function click_report() {
136
+ global $wpdb, $prli_click, $prli_group, $prli_link;
137
+
138
+ if(isset($_GET['l'])) {
139
+ $where_clause = $wpdb->prepare(" link_id=%d",$_GET['l']);
140
+ $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d",$_GET['l']));
141
+ $link_slug = $wpdb->get_var($wpdb->prepare("SELECT slug FROM {$wpdb->prefix}prli_links WHERE id=%d",$_GET['l']));
142
+ }
143
+ else if(isset($_GET['ip'])) {
144
+ $link_name = "ip_addr_{$_GET['ip']}";
145
+ $where_clause = $wpdb->prepare(" cl.ip=%s",$_GET['ip']);
146
+ }
147
+ else if(isset($_GET['vuid'])) {
148
+ $link_name = "visitor_{$_GET['vuid']}";
149
+ $where_clause = $wpdb->prepare(" cl.vuid=%s",$_GET['vuid']);
150
+ }
151
+ else if(isset($_GET['group'])) {
152
+ $group = $prli_group->getOne($_GET['group']);
153
+ $link_name = "group_{$group->name}";
154
+ $where_clause .= $wpdb->prepare(" cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)", $_GET['group']);
155
+ }
156
+ else {
157
+ $link_name = "all_links";
158
+ $where_clause = "";
159
+ }
160
+
161
+ $link_name = stripslashes($link_name);
162
+ $link_name = preg_replace('#[ ,]#','',$link_name);
163
+
164
+ $record_count = $prli_click->getRecordCount($where_clause);
165
+ $page_count = (int)ceil($record_count / $this->max_rows_per_file);
166
+ $prli_page = esc_html($_GET['prli_page']);
167
+ $hmin = 0;
168
+
169
+ if($prli_page) {
170
+ $hmin = ($prli_page - 1) * $this->max_rows_per_file;
171
+ }
172
+
173
+ if($prli_page==$page_count) {
174
+ $hmax = $record_count;
175
+ }
176
+ else {
177
+ $hmax = ($prli_page * $this->max_rows_per_file) - 1;
178
+ }
179
+
180
+ $hlimit = "{$hmin},{$this->max_rows_per_file}";
181
+ $clicks = $prli_click->getAll($where_clause,'',false,$hlimit);
182
+
183
+ require_once PRLI_VIEWS_PATH . '/clicks/csv.php';
184
+ }
185
+
186
+ public function csv() {
187
+ global $wpdb, $prli_blogurl, $prli_link, $prli_click, $prli_group;
188
+
189
+ $param_string = $where_clause = '';
190
+
191
+ if(isset($_GET['l'])) {
192
+ $where_clause = $wpdb->prepare(' link_id=%d', $_GET['l']);
193
+ $link_name = $wpdb->get_var($wpdb->prepare("SELECT name FROM {$wpdb->prefix}prli_links WHERE id=%d", $_GET['l']));
194
+ $link_slug = $wpdb->get_var($wpdb->prepare("SELECT slug FROM {$wpdb->prefix}prli_links WHERE id=%d", $_GET['l']));
195
+ $param_string .= "l={$_GET['l']}";
196
+ }
197
+ else if(isset($_GET['ip'])) {
198
+ $link_name = "ip_addr_{$_GET['ip']}";
199
+ $where_clause = $wpdb->prepare(' cl.ip=%s', $_GET['ip']);
200
+ $param_string .= "ip={$_GET['ip']}";
201
+ }
202
+ else if(isset($_GET['vuid'])) {
203
+ $link_name = "visitor_{$_GET['vuid']}";
204
+ $where_clause = $wpdb->prepare(' cl.vuid=%s', $_GET['vuid']);
205
+ $param_string .= "vuid={$_GET['vuid']}";
206
+ }
207
+ else if(isset($_GET['group'])) {
208
+ $group = $prli_group->getOne($_GET['group']);
209
+ $link_name = "group_{$group->name}";
210
+ $where_clause .= $wpdb->prepare(" cl.link_id IN (SELECT id FROM {$prli_link->table_name} WHERE group_id=%d)", $_GET['group']);
211
+ $param_string .= "group={$_GET['group']}";
212
+ }
213
+ else {
214
+ $link_name = 'all_links';
215
+ }
216
+
217
+ $hit_record_count = $prli_click->getRecordCount($where_clause);
218
+ $hit_page_count = (int)ceil($hit_record_count / $this->max_rows_per_file);
219
+
220
+ $param_string = (empty($param_string)?'':"&{$param_string}");
221
+ $hit_report_url = "{$prli_blogurl}/index.php?action=prli_download_csv_hit_report{$param_string}";
222
+
223
+ $max_rows_per_file = $this->max_rows_per_file;
224
+
225
+ require_once PRLI_VIEWS_PATH . '/clicks/csv_download.php';
226
+ }
227
+ }
app/controllers/PrliGroupsController.php ADDED
@@ -0,0 +1,248 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ // We'll do a full refactor later -- for now we'll just implement the add group ajax method
5
+ class PrliGroupsController extends PrliBaseController {
6
+ public function load_hooks() {
7
+ add_action('wp_ajax_add_new_prli_group', array($this,'ajax_new_group'));
8
+ }
9
+
10
+ public function route() {
11
+ global $prli_group;
12
+
13
+ $params = $prli_group->get_params_array();
14
+
15
+ if($params['action'] == 'list') {
16
+ $this->display_list($params);
17
+ }
18
+ else if($params['action'] == 'new') {
19
+ $this->display_new($params);
20
+ }
21
+ else if($params['action'] == 'create') {
22
+ $this->create($params);
23
+ }
24
+ else if($params['action'] == 'edit') {
25
+ $this->display_edit($params);
26
+ }
27
+ else if($params['action'] == 'update') {
28
+ $this->update($params);
29
+ }
30
+ else if($params['action'] == 'destroy') {
31
+ $this->destroy($params);
32
+ }
33
+ }
34
+
35
+ public function ajax_new_group() {
36
+ global $prli_group;
37
+
38
+ // Default response
39
+ $response = json_encode( array( 'status' => 'failure',
40
+ 'message' => __('An unknown error occurred when creating your group.', 'pretty-link') ) );
41
+
42
+ if(isset($_REQUEST['_prli_nonce']) and wp_verify_nonce($_REQUEST['_prli_nonce'], 'prli-add-new-group')) {
43
+ if(isset($_REQUEST['new_group_name'])) {
44
+ $new_group_name = stripslashes($_REQUEST['new_group_name']);
45
+ $group_id = $prli_group->create( array( 'name' => $new_group_name, 'description' => '' ) );
46
+
47
+ if( $group_id ) {
48
+ $response = json_encode( array( 'status' => 'success',
49
+ 'message' => __('Group Created', 'pretty-link'),
50
+ 'group_id' => $group_id,
51
+ 'group_option' => "<option value=\"{$group_id}\">{$new_group_name}</option>" ) );
52
+ }
53
+ }
54
+ else {
55
+ $response = json_encode( array( 'status' => 'failure',
56
+ 'message' => __('A name must be specified for your new group name', 'pretty-link') ) );
57
+ }
58
+ }
59
+ else {
60
+ $response = json_encode( array( 'status' => 'failure',
61
+ 'message' => __('Cannot add group because security nonce failed', 'pretty-link') ) );
62
+ }
63
+
64
+ header( "Content-Type: application/json" );
65
+ echo $response;
66
+
67
+ exit;
68
+ }
69
+
70
+ public function display_list($params) {
71
+ $this->display_groups_list($params, __('Create a group and use it to organize your Pretty Links.', 'pretty-link'));
72
+ }
73
+
74
+ public function display_new($params) {
75
+ global $prli_link;
76
+ $links = $prli_link->getAll('',' ORDER BY li.name');
77
+ require_once(PRLI_VIEWS_PATH.'/groups/new.php');
78
+ }
79
+
80
+ public function create($params) {
81
+ global $prli_group, $prli_link;
82
+
83
+ $errors = $prli_group->validate($_POST);
84
+ if( count($errors) > 0 ) {
85
+ $links = $prli_link->getAll('',' ORDER BY li.name');
86
+ require_once(PRLI_VIEWS_PATH.'/groups/new.php');
87
+ }
88
+ else {
89
+ $insert_id = $prli_group->create($_POST);
90
+
91
+ if(isset($_POST['link'])) {
92
+ $this->update_groups($insert_id, $_POST['link']);
93
+ }
94
+
95
+ $this->display_groups_list($params, __("Your Pretty Link Group was Successfully Created", 'pretty-link'), '', 1);
96
+ }
97
+ }
98
+
99
+ public function display_edit($params) {
100
+ global $prli_group, $prli_link;
101
+
102
+ $record = $prli_group->getOne( $params['id'] );
103
+ $id = $params['id'];
104
+ $links = $prli_link->getAll('',' ORDER BY li.name');
105
+
106
+ require_once(PRLI_VIEWS_PATH.'/groups/edit.php');
107
+ }
108
+
109
+ public function update($params) {
110
+ global $prli_group, $prli_link;
111
+
112
+ $errors = $prli_group->validate($_POST);
113
+ $id = $_POST['id'];
114
+ if( count($errors) > 0 ) {
115
+ $links = $prli_link->getAll('',' ORDER BY li.name');
116
+ require_once(PRLI_VIEWS_PATH.'/groups/edit.php');
117
+ }
118
+ else {
119
+ $record = $prli_group->update( $_POST['id'], $_POST );
120
+
121
+ if(isset($_POST['link'])) {
122
+ $this->update_groups($_POST['id'],$_POST['link']);
123
+ }
124
+
125
+ $this->display_groups_list($params, __('Your Pretty Link Group was Successfully Updated', 'pretty-link'), '', 1);
126
+ }
127
+ }
128
+
129
+ public function destroy($params) {
130
+ global $prli_group;
131
+
132
+ $prli_group->destroy( $params['id'] );
133
+
134
+ $this->display_groups_list($params, __("Your Pretty Link Group was Successfully Deleted", 'pretty-link'), '', 1);
135
+ }
136
+
137
+ public function update_groups($group_id, $values) {
138
+ global $prli_link;
139
+
140
+ $links = $prli_link->getAll();
141
+
142
+ foreach($links as $link) {
143
+ // Only update a group if the user's pulling it from another group
144
+ if($link->group_id != $group_id and empty($values[$link->id])) {
145
+ continue;
146
+ }
147
+
148
+ $prli_link->update_group($link->id, $values[$link->id], $group_id);
149
+ }
150
+ }
151
+
152
+ // Helpers
153
+ public function display_groups_list($params, $prli_message, $page_params_ov = false, $current_page_ov = false) {
154
+ global $wpdb, $prli_utils, $prli_group, $prli_click, $prli_link, $page_size;
155
+
156
+ $controller_file = basename(__FILE__);
157
+ $group_vars = $this->get_group_sort_vars($params);
158
+
159
+ if($current_page_ov) {
160
+ $current_page = $current_page_ov;
161
+ }
162
+ else {
163
+ $current_page = $params['paged'];
164
+ }
165
+
166
+ if($page_params_ov) {
167
+ $page_params = $page_params_ov;
168
+ }
169
+ else {
170
+ $page_params = $group_vars['page_params'];
171
+ }
172
+
173
+ $sort_str = $group_vars['sort_str'];
174
+ $sdir_str = $group_vars['sdir_str'];
175
+ $search_str = $group_vars['search_str'];
176
+
177
+ $record_count = $prli_group->getRecordCount($group_vars['where_clause']);
178
+ $page_count = $prli_group->getPageCount($page_size,$group_vars['where_clause']);
179
+ $groups = $prli_group->getPage($current_page,$page_size,$group_vars['where_clause'],$group_vars['order_by']);
180
+ $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size);
181
+ $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size);
182
+
183
+ require_once(PRLI_VIEWS_PATH.'/groups/list.php');
184
+ }
185
+
186
+ public function get_group_sort_vars($params,$where_clause = '') {
187
+ $order_by = '';
188
+ $page_params = '';
189
+
190
+ // These will have to work with both get and post
191
+ $sort_str = $params['sort'];
192
+ $sdir_str = $params['sdir'];
193
+ $search_str = $params['search'];
194
+
195
+ // Insert search string
196
+ if(!empty($search_str)) {
197
+ $search_params = explode(" ", $search_str);
198
+
199
+ foreach($search_params as $search_param) {
200
+ if(!empty($where_clause))
201
+ $where_clause .= " AND";
202
+
203
+ $where_clause .= " (name like '%$search_param%' OR description like '%$search_param%' OR created_at like '%$search_param%')";
204
+ }
205
+
206
+ $page_params .="&search=$search_str";
207
+ }
208
+
209
+ // make sure page params stay correct
210
+ if(!empty($sort_str)) {
211
+ $page_params .="&sort=$sort_str";
212
+ }
213
+
214
+ if(!empty($sdir_str)) {
215
+ $page_params .= "&sdir=$sdir_str";
216
+ }
217
+
218
+ // Add order by clause
219
+ switch($sort_str) {
220
+ case "name":
221
+ case "link_count":
222
+ case "click_count":
223
+ case "description":
224
+ $order_by .= " ORDER BY $sort_str";
225
+ break;
226
+ default:
227
+ $order_by .= " ORDER BY created_at";
228
+ }
229
+
230
+ // Toggle ascending / descending
231
+ if((empty($sort_str) and empty($sdir_str)) or $sdir_str == 'desc') {
232
+ $order_by .= ' DESC';
233
+ $sdir_str = 'desc';
234
+ }
235
+ else {
236
+ $sdir_str = 'asc';
237
+ }
238
+
239
+ return array(
240
+ 'order_by' => $order_by,
241
+ 'sort_str' => $sort_str,
242
+ 'sdir_str' => $sdir_str,
243
+ 'search_str' => $search_str,
244
+ 'where_clause' => $where_clause,
245
+ 'page_params' => $page_params
246
+ );
247
+ }
248
+ }
app/controllers/PrliLinksController.php ADDED
@@ -0,0 +1,444 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ class PrliLinksController extends PrliBaseController {
4
+ public function load_hooks() {
5
+ // nothing yet
6
+ }
7
+
8
+ public static function route() {
9
+ $action = (isset($_REQUEST['action'])?$_REQUEST['action']:null);
10
+ $params = self::get_params_array();
11
+
12
+ // "new()" has its own submenu so we don't need a route for it here
13
+ switch($action) {
14
+ case 'list-form':
15
+ return self::list_form($params);
16
+ case 'quick-create':
17
+ return self::quick_create_link($params);
18
+ case 'create':
19
+ return self::create_link($params);
20
+ case 'edit':
21
+ return self::edit_link($params);
22
+ case 'bulk-update':
23
+ return self::bulk_update_links($params);
24
+ case 'update':
25
+ return self::update_link($params);
26
+ case 'reset':
27
+ return self::reset_link($params);
28
+ case 'destroy':
29
+ return self::destroy_link($params);
30
+ case 'bulk-destroy':
31
+ return self::bulk_destroy_links($params);
32
+ default:
33
+ return self::list_links($params);
34
+ }
35
+ }
36
+
37
+ public static function list_links($params) {
38
+ global $wpdb, $prli_group;
39
+
40
+ if(!empty($params['message']))
41
+ $prli_message = $params['message'];
42
+ else if(empty($params['group']))
43
+ $prli_message = PrliUtils::get_main_message();
44
+ else
45
+ $prli_message = __("Links in Group: ", 'pretty-link') . $wpdb->get_var("SELECT name FROM " . $prli_group->table_name . " WHERE id=".$params['group']);
46
+
47
+ self::display_links_list($params, $prli_message);
48
+ }
49
+
50
+ public function list_form($params) {
51
+ if(apply_filters('prli-link-list-process-form', true))
52
+ self::display_links_list($params, PrliUtils::get_main_message());
53
+ }
54
+
55
+ public static function new_link($params) {
56
+ global $prli_group;
57
+ $groups = $prli_group->getAll('',' ORDER BY name');
58
+ $values = self::setup_new_vars($groups);
59
+
60
+ require_once PRLI_VIEWS_PATH . '/links/new.php';
61
+ }
62
+
63
+ public static function quick_create_link($params) {
64
+ global $prli_link, $prli_group, $prli_options;
65
+
66
+ $params = self::get_params_array();
67
+ $errors = $prli_link->validate($_POST);
68
+
69
+ if( count($errors) > 0 )
70
+ {
71
+ $groups = $prli_group->getAll('',' ORDER BY name');
72
+ $values = self::setup_new_vars($groups);
73
+ require_once PRLI_VIEWS_PATH . '/links/new.php';
74
+ }
75
+ else
76
+ {
77
+ unset($_POST['param_forwarding']);
78
+
79
+ $_POST['param_struct'] = '';
80
+ $_POST['name'] = '';
81
+ $_POST['description'] = '';
82
+ if( $prli_options->link_track_me )
83
+ $_POST['track_me'] = 'on';
84
+ if( $prli_options->link_nofollow )
85
+ $_POST['nofollow'] = 'on';
86
+
87
+ $_POST['redirect_type'] = $prli_options->link_redirect_type;
88
+
89
+ $record = $prli_link->create( $_POST );
90
+
91
+ $prli_message = __("Your Pretty Link was Successfully Created", 'pretty-link');
92
+ self::display_links_list($params, $prli_message, '', 1);
93
+ }
94
+ }
95
+
96
+ public static function create_link($params) {
97
+ global $prli_link, $prli_group;
98
+ $errors = $prli_link->validate($_POST);
99
+
100
+ $errors = apply_filters( "prli_validate_link", $errors );
101
+
102
+ if(count($errors) > 0) {
103
+ $groups = $prli_group->getAll('',' ORDER BY name');
104
+ $values = self::setup_new_vars($groups);
105
+ require_once PRLI_VIEWS_PATH . '/links/new.php';
106
+ }
107
+ else {
108
+ $record = $prli_link->create( $_POST );
109
+
110
+ do_action('prli_update_link', $record);
111
+
112
+ $prli_message = __("Your Pretty Link was Successfully Created", 'pretty-link');
113
+ self::display_links_list($params, $prli_message, '', 1);
114
+ }
115
+ }
116
+
117
+ public static function edit_link($params) {
118
+ global $prli_group, $prli_link;
119
+ $groups = $prli_group->getAll('',' ORDER BY name');
120
+
121
+ $record = $prli_link->getOne( $params['id'] );
122
+ $values = self::setup_edit_vars($groups,$record);
123
+ $id = $params['id'];
124
+ require_once(PRLI_VIEWS_PATH . '/links/edit.php');
125
+ }
126
+
127
+ public static function update_link($params) {
128
+ global $prli_link, $prli_group;
129
+ $errors = $prli_link->validate($_POST);
130
+ $id = $_POST['id'];
131
+
132
+ $errors = apply_filters( "prli_validate_link", $errors );
133
+
134
+ if( count($errors) > 0 ) {
135
+ $groups = $prli_group->getAll('',' ORDER BY name');
136
+ $record = $prli_link->getOne( $params['id'] );
137
+ $values = self::setup_edit_vars($groups,$record);
138
+ require_once(PRLI_VIEWS_PATH . '/links/edit.php');
139
+ }
140
+ else {
141
+ $record = $prli_link->update( $_POST['id'], $_POST );
142
+
143
+ do_action('prli_update_link', $id);
144
+
145
+ $prli_message = __('Your Pretty Link was Successfully Updated', 'pretty-link');
146
+ self::display_links_list($params, $prli_message, '', 1);
147
+ }
148
+ }
149
+
150
+ public static function bulk_update_links() {
151
+ global $prli_link;
152
+ if(wp_verify_nonce($_REQUEST['_wpnonce'],'prli_bulk_update') and isset($_REQUEST['ids'])) {
153
+
154
+ $ids = $_REQUEST['ids'];
155
+ $params = $_REQUEST['bu'];
156
+
157
+ $prli_link->bulk_update( $ids, $params );
158
+ do_action('prli-bulk-action-update',$ids,$params);
159
+
160
+ $message = __('Your links were updated successfully', 'pretty-link');
161
+
162
+ //self::display_links_list(self::get_params_array(),$message);
163
+
164
+ // We're going to redirect here to avoid having a big nasty url that
165
+ // can cause problems when doing several activities in a row.
166
+
167
+ // Scrub message, action, _wpnonce, ids & bu vars from the arguments and redirect
168
+ $request_uri = preg_replace( '#\&(message|action|_wpnonce|ids|bu\[[^\]]*?\])=[^\&]*#', '', $_SERVER['REQUEST_URI'] );
169
+
170
+ // we assume here that some arguments are set ... if not this value is meaningless anyway
171
+ $request_uri .= '&message=' . urlencode($message);
172
+ $redirect_url = 'http' . (empty($_SERVER['HTTPS'])?'':'s') . '://' . $_SERVER['HTTP_HOST'] . $request_uri;
173
+
174
+ require PRLI_VIEWS_PATH . '/shared/jsredirect.php';
175
+ }
176
+ else {
177
+ wp_die(__('You are unauthorized to view this page.', 'pretty-link'));
178
+ }
179
+ }
180
+
181
+ public static function reset_link($params) {
182
+ global $prli_link;
183
+ $prli_link->reset( $params['id'] );
184
+ $prli_message = __("Your Pretty Link was Successfully Reset", 'pretty-link');
185
+ self::display_links_list($params, $prli_message, '', 1);
186
+ }
187
+
188
+ public static function destroy_link($params) {
189
+ global $prli_link;
190
+ $prli_link->destroy( $params['id'] );
191
+ $prli_message = __("Your Pretty Link was Successfully Destroyed", 'pretty-link');
192
+ self::display_links_list($params, $prli_message, '', 1);
193
+ }
194
+
195
+ public static function bulk_destroy_links($params) {
196
+ global $prli_link;
197
+ if(wp_verify_nonce($_REQUEST['_wpnonce'],'prli_bulk_update') and isset($_REQUEST['ids'])) {
198
+ $ids = explode(',', $_REQUEST['ids']);
199
+
200
+ foreach($ids as $id) {
201
+ $prli_link->destroy( $id );
202
+ }
203
+
204
+ $message = __('Your links were deleted successfully', 'pretty-link');
205
+
206
+ //self::display_links_list($params,$message);
207
+ // Scrub message, action, _wpnonce, ids & bu vars from the arguments and redirect
208
+ $request_uri = preg_replace( '#\&(message|action|_wpnonce|ids|bu\[[^\]]*?\])=[^\&]*#', '', $_SERVER['REQUEST_URI'] );
209
+
210
+ // we assume here that some arguments are set ... if not this value is meaningless anyway
211
+ $request_uri .= '&message=' . urlencode($message);
212
+ $redirect_url = 'http' . (empty($_SERVER['HTTPS'])?'':'s') . '://' . $_SERVER['HTTP_HOST'] . $request_uri;
213
+
214
+ require PRLI_VIEWS_PATH . '/shared/jsredirect.php';
215
+ }
216
+ else {
217
+ wp_die(__('You are unauthorized to view this page.', 'pretty-link'));
218
+ }
219
+ }
220
+
221
+ public static function display_links_list($params, $prli_message, $page_params_ov = false, $current_page_ov = false) {
222
+ global $wpdb, $prli_utils, $prli_click, $prli_group, $prli_link, $page_size, $prli_options;
223
+
224
+ $controller_file = basename(__FILE__);
225
+
226
+ $where_clause = '';
227
+ $page_params = '';
228
+ $group_param = '';
229
+
230
+ $page_size = (isset($_REQUEST['size']) && is_numeric($_REQUEST['size']) && !empty($_REQUEST['size']))?$_REQUEST['size']:10;
231
+
232
+ if(!empty($params['group'])) {
233
+ $where_clause = " group_id=" . $params['group'];
234
+ $group_param = "&group={$params['group']}";
235
+ $page_params = "&group=" . $params['group'];
236
+ }
237
+
238
+ $link_vars = self::get_link_sort_vars($params, $where_clause);
239
+
240
+ if($current_page_ov)
241
+ $current_page = $current_page_ov;
242
+ else
243
+ $current_page = $params['paged'];
244
+
245
+ if($page_params_ov)
246
+ $page_params .= $page_params_ov;
247
+ else
248
+ $page_params .= $link_vars['page_params'];
249
+
250
+ $sort_str = $link_vars['sort_str'];
251
+ $sdir_str = $link_vars['sdir_str'];
252
+ $search_str = $link_vars['search_str'];
253
+
254
+ $record_count = $prli_link->getRecordCount($link_vars['where_clause']);
255
+ $page_count = $prli_link->getPageCount($page_size,$link_vars['where_clause']);
256
+ $links = $prli_link->getPage($current_page,$page_size,$link_vars['where_clause'],$link_vars['order_by']);
257
+ $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size);
258
+ $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size);
259
+
260
+ require_once(PRLI_VIEWS_PATH . '/links/list.php');
261
+ }
262
+
263
+ public static function get_link_sort_vars($params,$where_clause = '')
264
+ {
265
+ $order_by = '';
266
+ $page_params = '';
267
+
268
+ // These will have to work with both get and post
269
+ $sort_str = $params['sort'];
270
+ $sdir_str = $params['sdir'];
271
+ $search_str = $params['search'];
272
+
273
+ // Insert search string
274
+ if(!empty($search_str))
275
+ {
276
+ $search_params = explode(" ", $search_str);
277
+
278
+ foreach($search_params as $search_param)
279
+ {
280
+ if(!empty($where_clause))
281
+ $where_clause .= " AND";
282
+
283
+ $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%')";
284
+ }
285
+
286
+ $page_params .="&search=$search_str";
287
+ }
288
+
289
+ // make sure page params stay correct
290
+ if(!empty($sort_str))
291
+ $page_params .="&sort=$sort_str";
292
+
293
+ if(!empty($sdir_str))
294
+ $page_params .= "&sdir=$sdir_str";
295
+
296
+ // Add order by clause
297
+ switch($sort_str)
298
+ {
299
+ case "name":
300
+ case "clicks":
301
+ case "group_name":
302
+ case "slug":
303
+ $order_by .= " ORDER BY $sort_str";
304
+ break;
305
+ default:
306
+ $order_by .= " ORDER BY created_at";
307
+ }
308
+
309
+ // Toggle ascending / descending
310
+ if((empty($sort_str) and empty($sdir_str)) or $sdir_str == 'desc')
311
+ {
312
+ $order_by .= ' DESC';
313
+ $sdir_str = 'desc';
314
+ }
315
+ else
316
+ $sdir_str = 'asc';
317
+
318
+ return array('order_by' => $order_by,
319
+ 'sort_str' => $sort_str,
320
+ 'sdir_str' => $sdir_str,
321
+ 'search_str' => $search_str,
322
+ 'where_clause' => $where_clause,
323
+ 'page_params' => $page_params);
324
+ }
325
+
326
+ // Set defaults and grab get or post of each possible param
327
+ public static function get_params_array()
328
+ {
329
+ return array(
330
+ 'action' => (isset($_REQUEST['action'])?$_REQUEST['action']:'list'),
331
+ 'regenerate' => (isset($_REQUEST['regenerate'])?$_REQUEST['regenerate']:'false'),
332
+ 'id' => (isset($_REQUEST['id'])?$_REQUEST['id']:''),
333
+ 'group_name' => (isset($_REQUEST['group_name'])?$_REQUEST['group_name']:''),
334
+ 'paged' => (isset($_REQUEST['paged'])?$_REQUEST['paged']:1),
335
+ 'group' => (isset($_REQUEST['group'])?(int)$_REQUEST['group']:''),
336
+ 'search' => (isset($_REQUEST['search'])?$_REQUEST['search']:''),
337
+ 'sort' => (isset($_REQUEST['sort'])?$_REQUEST['sort']:''),
338
+ 'sdir' => (isset($_REQUEST['sdir'])?$_REQUEST['sdir']:''),
339
+ 'message' => (isset($_REQUEST['message'])?$_REQUEST['message']:'')
340
+ );
341
+ }
342
+
343
+ public static function setup_new_vars($groups) {
344
+ global $prli_link, $prli_options;
345
+
346
+ $values = array();
347
+ $values['url'] = (isset($_REQUEST['url'])?$_REQUEST['url']:'');
348
+ $values['slug'] = (isset($_REQUEST['slug'])?$_REQUEST['slug']:$prli_link->generateValidSlug());
349
+ $values['name'] = htmlspecialchars((isset($_REQUEST['name'])?stripslashes($_REQUEST['name']):''));
350
+ $values['description'] = htmlspecialchars((isset($_REQUEST['description'])?stripslashes($_REQUEST['description']):''));
351
+
352
+ $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"':'');
353
+ $values['nofollow'] = (((isset($_REQUEST['nofollow']) and $_REQUEST['nofollow'] == 'on') or (!isset($_REQUEST['nofollow']) and $prli_options->link_nofollow == '1'))?'checked="true"':'');
354
+
355
+ $values['redirect_type'] = array();
356
+ $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"':'');
357
+ $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"':'');
358
+ $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"':'');
359
+ $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"':'');
360
+ $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"':'');
361
+ $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"':'');
362
+ $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"':'');
363
+ $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"':'');
364
+
365
+ $values['groups'] = array();
366
+
367
+ if(is_array($groups)) {
368
+ foreach($groups as $group) {
369
+ $values['groups'][] = array(
370
+ 'id' => $group->id,
371
+ 'value' => ((isset($_REQUEST['group_id']) && $_REQUEST['group_id'] == $group->id)?' selected="true"':''),
372
+ 'name' => $group->name
373
+ );
374
+ }
375
+ }
376
+
377
+ $values['param_forwarding'] = isset($_REQUEST['param_forwarding']);
378
+ $values['delay'] = (isset($_REQUEST['delay']) ? $_REQUEST['delay'] : 0);
379
+
380
+ if(isset($_REQUEST['google_tracking'])) {
381
+ $values['google_tracking'] = ' checked=checked';
382
+ }
383
+ else {
384
+ global $plp_update;
385
+ if( $plp_update->is_installed() ) {
386
+ global $plp_options;
387
+ $values['google_tracking'] = $plp_options->google_tracking?' checked=checked':'';
388
+ }
389
+ else {
390
+ $values['google_tracking'] = '';
391
+ }
392
+ }
393
+
394
+ return $values;
395
+ }
396
+
397
+ public static function setup_edit_vars($groups,$record) {
398
+ global $prli_link, $prli_link_meta;
399
+
400
+ $values = array();
401
+ $values['url'] = ((isset($_REQUEST['url']) and $record == null)?$_REQUEST['url']:$record->url);
402
+ $values['slug'] = ((isset($_REQUEST['slug']) and $record == null)?$_REQUEST['slug']:$record->slug);
403
+ $values['name'] = htmlspecialchars(stripslashes(((isset($_REQUEST['name']) and $record == null)?$_REQUEST['name']:$record->name)));
404
+ $values['description'] = htmlspecialchars(stripslashes(((isset($_REQUEST['description']) and $record == null)?$_REQUEST['description']:$record->description)));
405
+ $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"':'');
406
+ $values['nofollow'] = (((isset($_REQUEST['nofollow']) and $_REQUEST['nofollow'] == 'on') or (isset($record->nofollow) && $record->nofollow == 1))?'checked="true"':'');
407
+
408
+ $values['groups'] = array();
409
+ foreach($groups as $group) {
410
+ $values['groups'][] = array( 'id' => $group->id,
411
+ 'value' => (((isset($_REQUEST['group_id']) and ($_REQUEST['group_id'] == $group->id)) or ($record->group_id == $group->id))?' selected="true"':''),
412
+ 'name' => $group->name );
413
+ }
414
+
415
+ $values['param_forwarding'] = (isset($_REQUEST['param_forwarding']) || !(empty($record->param_forwarding) || $record->param_forwarding=='off'));
416
+
417
+ $values['redirect_type'] = array();
418
+ $values['redirect_type']['307'] = ((!isset($_REQUEST['redirect_type']) or (isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '307') or (isset($record->redirect_type) and $record->redirect_type == '307'))?' selected="selected"':'');
419
+ $values['redirect_type']['302'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '302') or (isset($record->redirect_type) and $record->redirect_type == '302'))?' selected="selected"':'');
420
+ $values['redirect_type']['301'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == '301') or (isset($record->redirect_type) and $record->redirect_type == '301'))?' selected="selected"':'');
421
+ $values['redirect_type']['prettybar'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'prettybar') or (isset($record->redirect_type) and $record->redirect_type == 'prettybar'))?' selected="selected"':'');
422
+ $values['redirect_type']['cloak'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'cloak') or (isset($record->redirect_type) and $record->redirect_type == 'cloak'))?' selected="selected"':'');
423
+ $values['redirect_type']['pixel'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'pixel') or (isset($record->redirect_type) and $record->redirect_type == 'pixel'))?' selected="selected"':'');
424
+ $values['redirect_type']['metarefresh'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'metarefresh') or (isset($record->redirect_type) and $record->redirect_type == 'metarefresh'))?' selected="selected"':'');
425
+ $values['redirect_type']['javascript'] = (((isset($_REQUEST['redirect_type']) and $_REQUEST['redirect_type'] == 'javascript') or (isset($record->redirect_type) and $record->redirect_type == 'javascript'))?' selected="selected"':'');
426
+
427
+ if(isset($_REQUEST['delay'])) {
428
+ $values['delay'] = $_REQUEST['delay'];
429
+ }
430
+ else {
431
+ $values['delay'] = $prli_link_meta->get_link_meta($record->id, 'delay', true);
432
+ }
433
+
434
+ if(isset($_REQUEST['google_tracking'])) {
435
+ $values['google_tracking'] = ' checked=checked';
436
+ }
437
+ else {
438
+ $values['google_tracking'] = (($prli_link_meta->get_link_meta($record->id, 'google_tracking', true) == 1)?' checked=checked':'');
439
+ }
440
+
441
+ return $values;
442
+ }
443
+ }
444
+
app/controllers/PrliLocalApiController.php ADDED
@@ -0,0 +1,316 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ /**
4
+ * Pretty Link WordPress Plugin API
5
+ */
6
+ class PrliLocalApiController extends PrliBaseController {
7
+ public function load_hooks() {
8
+ // nothing yet
9
+ }
10
+
11
+ /**
12
+ * Returns the API Version as a string.
13
+ */
14
+ public function api_version() {
15
+ return '1.3';
16
+ }
17
+
18
+ /**
19
+ * Create a Pretty Link for a long, ugly URL.
20
+ *
21
+ * @param string $target_url Required, it is the value of the Target URL you
22
+ * want the Pretty Link to redirect to
23
+ *
24
+ * @param string $slug Optional, slug for the Pretty Link (string that comes
25
+ * after the Pretty Link's slash) if this value isn't set
26
+ * then a random slug will be automatically generated.
27
+ *
28
+ * @param string $name Optional, name for the Pretty Link. If this value isn't
29
+ * set then the name will be the slug.
30
+ *
31
+ * @param string $description Optional, description for the Pretty Link.
32
+ *
33
+ * @param integer $group_id Optional, the group that this link will be placed in.
34
+ * If this value isn't set then the link will not be
35
+ * placed in a group.
36
+ *
37
+ * @param boolean $link_track_me Optional, If true the link will be tracked,
38
+ * if not set the default value (from the pretty
39
+ * link option page) will be used
40
+ *
41
+ * @param boolean $link_nofollow Optional, If true the nofollow attribute will
42
+ * be set for the link, if not set the default
43
+ * value (from the pretty link option page) will
44
+ * be used
45
+ *
46
+ * @param string $link_redirect_type Optional, valid values include '307', '302', '301',
47
+ * 'prettybar', 'cloak' or 'pixel'
48
+ * if not set the default value (from the pretty
49
+ * link option page) will be used
50
+ *
51
+ * @return boolean / string The Full Pretty Link if Successful and false for Failure.
52
+ * This function will also set a global variable named
53
+ * $prli_pretty_slug which gives the slug of the link
54
+ * created if the link is successfully created -- it will
55
+ * set a variable named $prli_error_messages if the link
56
+ * was not successfully created.
57
+ */
58
+ public function create_pretty_link( $target_url,
59
+ $slug = '',
60
+ $name = '',
61
+ $description = '',
62
+ $group_id = 0,
63
+ $track_me = '',
64
+ $nofollow = '',
65
+ $redirect_type = '',
66
+ $param_forwarding = '',
67
+ $param_struct = '' ) {
68
+ global $wpdb, $prli_link, $prli_blogurl;
69
+ global $prli_error_messages, $prli_pretty_link, $prli_pretty_slug, $prli_options;
70
+
71
+ $prli_error_messages = array();
72
+
73
+ $values = array();
74
+ $values['url'] = $target_url;
75
+ $values['slug'] = (($slug == '')?$prli_link->generateValidSlug():$slug);
76
+ $values['name'] = $name;
77
+ $values['description'] = $description;
78
+ $values['group_id'] = $group_id;
79
+ $values['redirect_type'] = (($redirect_type == '')?$prli_options->link_redirect_type:$redirect_type);
80
+ $values['nofollow'] = (($nofollow === '')?$prli_options->link_nofollow:$nofollow);
81
+ $values['track_me'] = (($track_me === '')?$prli_options->link_track_me:$track_me);
82
+ $values['param_forwarding'] = !empty($param_forwarding);
83
+ $values['param_struct'] = $param_struct;
84
+
85
+ // make array look like $_POST
86
+ if(empty($values['nofollow']) or !$values['nofollow']) {
87
+ unset($values['nofollow']);
88
+ }
89
+
90
+ if(empty($values['track_me']) or !$values['track_me']) {
91
+ unset($values['track_me']);
92
+ }
93
+
94
+ $prli_error_messages = $prli_link->validate( $values );
95
+
96
+ if( count($prli_error_messages) == 0 ) {
97
+ if( $id = $prli_link->create( $values ) ) {
98
+ return $id;
99
+ }
100
+ else {
101
+ $prli_error_messages[] = __("An error prevented your Pretty Link from being created", 'pretty-link');
102
+ return false;
103
+ }
104
+ }
105
+ else
106
+ return false;
107
+ }
108
+
109
+ public function update_pretty_link( $id,
110
+ $target_url = '',
111
+ $slug = '',
112
+ $name = -1,
113
+ $description = -1,
114
+ $group_id = '',
115
+ $track_me = '',
116
+ $nofollow = '',
117
+ $redirect_type = '',
118
+ $param_forwarding = '',
119
+ $param_struct = -1 ) {
120
+ global $wpdb, $prli_link, $prli_blogurl;
121
+ global $prli_error_messages, $prli_pretty_link, $prli_pretty_slug;
122
+
123
+ if(empty($id))
124
+ {
125
+ $prli_error_messages[] = __("Pretty Link ID must be set for successful update.", 'pretty-link');
126
+ return false;
127
+ }
128
+
129
+ $record = $prli_link->getOne($id);
130
+
131
+ $prli_error_messages = array();
132
+
133
+ $values = array();
134
+ $values['id'] = $id;
135
+ $values['url'] = (($target_url == '')?$record->url:$target_url);
136
+ $values['slug'] = (($slug == '')?$record->slug:$slug);
137
+ $values['name'] = (($name == -1)?$record->name:$name);
138
+ $values['description'] = (($description == -1)?$record->description:$description);
139
+ $values['group_id'] = (($group_id === '')?$record->group_id:$group_id);
140
+ $values['redirect_type'] = (($redirect_type == '')?$record->redirect_type:$redirect_type);
141
+ $values['nofollow'] = (($nofollow === '')?$record->nofollow:$nofollow);
142
+ $values['track_me'] = (($track_me === '')?(int)$record->track_me:$track_me);
143
+ $values['param_forwarding'] = !empty($param_forwarding);
144
+ $values['param_struct'] = (($param_struct == -1)?$record->param_struct:$param_struct);
145
+
146
+ // make array look like $_POST
147
+ if(empty($values['nofollow']) or !$values['nofollow'])
148
+ unset($values['nofollow']);
149
+ if(empty($values['track_me']) or !$values['track_me'])
150
+ unset($values['track_me']);
151
+
152
+ $prli_error_messages = $prli_link->validate( $values );
153
+
154
+ if( count($prli_error_messages) == 0 )
155
+ {
156
+ if( $prli_link->update( $id, $values ) )
157
+ return true;
158
+ else
159
+ {
160
+ $prli_error_messages[] = __("An error prevented your Pretty Link from being created", 'pretty-link');
161
+ return false;
162
+ }
163
+ }
164
+ else
165
+ return false;
166
+ }
167
+
168
+ /**
169
+ * Get all the pretty link groups in an array suitable for creating a select box.
170
+ *
171
+ * @return bool (false if failure) | array A numerical array of associative arrays
172
+ * containing all the data about the pretty
173
+ * link groups.
174
+ */
175
+ public function get_all_groups() {
176
+ global $prli_group;
177
+ $groups = $prli_group->getAll('',' ORDER BY gr.name', ARRAY_A);
178
+ return $groups;
179
+ }
180
+
181
+ /**
182
+ * Get all the pretty links in an array suitable for creating a select box.
183
+ *
184
+ * @return bool (false if failure) | array A numerical array of associative arrays
185
+ * containing all the data about the pretty
186
+ * links.
187
+ */
188
+ public function get_all_links() {
189
+ global $prli_link;
190
+ $links = $prli_link->getAll('',' ORDER BY li.name', ARRAY_A);
191
+ return $links;
192
+ }
193
+
194
+ /**
195
+ * Gets a specific link from a slug and returns info about it in an array
196
+ *
197
+ * @return bool (false if failure) | array An associative array with all the
198
+ * data about the given pretty link.
199
+ */
200
+ public function get_link_from_slug($slug, $return_type = OBJECT, $include_stats = false) {
201
+ global $prli_link;
202
+ $link = $prli_link->getOneFromSlug($slug, $return_type, $include_stats);
203
+ return $link;
204
+ }
205
+
206
+ /**
207
+ * Gets a specific link from id and returns info about it in an array
208
+ *
209
+ * @return bool (false if failure) | array An associative array with all the
210
+ * data about the given pretty link.
211
+ */
212
+ public function get_link($id, $return_type = OBJECT, $include_stats = false) {
213
+ global $prli_link;
214
+ $link = $prli_link->getOne($id, $return_type, $include_stats);
215
+ return $link;
216
+ }
217
+
218
+ /**
219
+ * Gets the full pretty link url from an id
220
+ *
221
+ * @return bool (false if failure) | string the pretty link url
222
+ */
223
+ public function get_pretty_link_url($id) {
224
+ global $prli_link,$prli_blogurl;
225
+
226
+ if($pretty_link = $prli_link->getOne($id))
227
+ return "{$prli_blogurl}".PrliUtils::get_permalink_pre_slug_uri()."{$pretty_link->slug}";
228
+
229
+ return false;
230
+ }
231
+
232
+ }
233
+
234
+
235
+ /**
236
+ * Pretty Link WordPress Plugin API Functions
237
+ */
238
+
239
+ function prli_api_version() {
240
+ $ctrl = new PrliLocalApiController();
241
+ return $ctrl->api_version;
242
+ }
243
+
244
+ function prli_create_pretty_link( $target_url,
245
+ $slug = '',
246
+ $name = '',
247
+ $description = '',
248
+ $group_id = 0,
249
+ $track_me = '',
250
+ $nofollow = '',
251
+ $redirect_type = '',
252
+ $param_forwarding = '',
253
+ $param_struct = '' ) {
254
+ $ctrl = new PrliLocalApiController();
255
+ return $ctrl->create_pretty_link( $target_url,
256
+ $slug,
257
+ $name,
258
+ $description,
259
+ $group_id,
260
+ $track_me,
261
+ $nofollow,
262
+ $redirect_type,
263
+ $param_forwarding,
264
+ $param_struct );
265
+ }
266
+
267
+ function prli_update_pretty_link( $id,
268
+ $target_url = '',
269
+ $slug = '',
270
+ $name = -1,
271
+ $description = -1,
272
+ $group_id = '',
273
+ $track_me = '',
274
+ $nofollow = '',
275
+ $redirect_type = '',
276
+ $param_forwarding = '',
277
+ $param_struct = -1 ) {
278
+ $ctrl = new PrliLocalApiController();
279
+ return $ctrl->update_pretty_link( $id,
280
+ $target_url,
281
+ $slug,
282
+ $name,
283
+ $description,
284
+ $group_id,
285
+ $track_me,
286
+ $nofollow,
287
+ $redirect_type,
288
+ $param_forwarding,
289
+ $param_struct );
290
+ }
291
+
292
+ function prli_get_all_groups() {
293
+ $ctrl = new PrliLocalApiController();
294
+ return $ctrl->get_all_groups();
295
+ }
296
+
297
+ function prli_get_all_links() {
298
+ $ctrl = new PrliLocalApiController();
299
+ return $ctrl->get_all_links();
300
+ }
301
+
302
+ function prli_get_link_from_slug($slug, $return_type = OBJECT, $include_stats = false) {
303
+ $ctrl = new PrliLocalApiController();
304
+ return $ctrl->get_link_from_slug($slug, $return_type, $include_stats);
305
+ }
306
+
307
+ function prli_get_link($id, $return_type = OBJECT, $include_stats = false) {
308
+ $ctrl = new PrliLocalApiController();
309
+ return $ctrl->get_link($id, $return_type, $include_stats);
310
+ }
311
+
312
+ function prli_get_pretty_link_url($id) {
313
+ $ctrl = new PrliLocalApiController();
314
+ return $ctrl->get_pretty_link_url($id);
315
+ }
316
+
app/controllers/PrliOptionsController.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ class PrliOptionsController extends PrliBaseController {
5
+ public $opt_fields;
6
+
7
+ public function __construct() {
8
+ $this->opt_fields = array(
9
+ 'prli_exclude_ips' => 'prli_exclude_ips',
10
+ 'whitelist_ips' => 'prli_whitelist_ips',
11
+ 'filter_robots' => 'prli_filter_robots',
12
+ 'extended_tracking' => 'prli_extended_tracking',
13
+ 'link_track_me' => 'prli_link_track_me',
14
+ 'link_prefix' => 'prli_link_prefix',
15
+ 'auto_trim_clicks' => 'prli_auto_trim_clicks',
16
+ 'link_nofollow' => 'prli_link_nofollow',
17
+ 'link_redirect_type' => 'prli_link_redirect_type',
18
+ 'hidden_field_name' => 'prli_update_options'
19
+ );
20
+ }
21
+
22
+ public function load_hooks() {
23
+ // nothing yet
24
+ }
25
+
26
+ public function route() {
27
+ global $prli_options, $prli_utils, $plp_update;
28
+
29
+ extract( $this->opt_fields );
30
+ $errors = array();
31
+
32
+ $update_message = false;
33
+
34
+ // See if the user has posted us some information
35
+ // If they did, this hidden field will be set to 'Y'
36
+ if( isset($_REQUEST[ $hidden_field_name ]) && $_REQUEST[ $hidden_field_name ] == 'Y' ) {
37
+ $update_message = $this->update();
38
+ }
39
+
40
+ $update_message = apply_filters('prli_options_update_message', $update_message);
41
+
42
+ require_once(PRLI_VIEWS_PATH.'/options/form.php');
43
+ }
44
+
45
+ private function update() {
46
+ global $prli_options;
47
+
48
+ $update_message = '';
49
+
50
+ $errors = $this->validate(array(),$_POST);
51
+ $this->update_attrs($_POST);
52
+
53
+ if( empty($errors) ) {
54
+ // Save the posted value in the database
55
+ //update_option( 'prli_options', $prli_options );
56
+ $prli_options->store();
57
+
58
+ do_action('prli-store-options');
59
+
60
+ // Put an options updated message on the screen
61
+ $update_message = __('Options saved.', 'pretty-link');
62
+ }
63
+ else {
64
+ require(PRLI_VIEWS_PATH.'/shared/errors.php');
65
+ }
66
+
67
+ return $update_message;
68
+ }
69
+
70
+ private function validate($errors=array(), $params) {
71
+ extract( $this->opt_fields );
72
+
73
+ // Validate This
74
+ if( !empty($params[ $prli_exclude_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[ $prli_exclude_ips ] ) ) {
75
+ $errors[] = __('Excluded IP Addresses must be a comma separated list of IPv4 or IPv6 addresses or ranges.', 'pretty-link');
76
+ }
77
+
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[] = __('Whitlist IP Addresses must be a comma separated list of IPv4 or IPv6 addresses or ranges.', 'pretty-link');
80
+ }
81
+
82
+ return apply_filters( 'prli-validate-options', $errors, $params );
83
+ }
84
+
85
+ private function update_attrs($params) {
86
+ global $prli_options;
87
+
88
+ extract( $this->opt_fields );
89
+
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 ]);
93
+ $prli_options->filter_robots = (int)isset($params[ $filter_robots ]);
94
+ $prli_options->extended_tracking = stripslashes($params[ $extended_tracking ]);
95
+ $prli_options->link_track_me = (int)isset($params[ $link_track_me ]);
96
+ $prli_options->link_prefix = (int)isset($params[ $link_prefix ]);
97
+ $prli_options->auto_trim_clicks = (int)isset($params[ $auto_trim_clicks ]);
98
+ $prli_options->link_nofollow = (int)isset($params[ $link_nofollow ]);
99
+ $prli_options->link_redirect_type = $params[ $link_redirect_type ];
100
+
101
+ do_action('prli-update-options', $params);
102
+ }
103
+ }
104
+
app/controllers/PrliPostsController.php ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ class PrliPostsController extends PrliBaseController {
5
+ public $opt_fields;
6
+
7
+ public function load_hooks() {
8
+ add_action('init', array($this, 'add_tinymce_buttons'));
9
+ add_action('wp_ajax_prli_tinymce_form', array($this, 'display_tinymce_form'));
10
+ add_action('wp_ajax_prli_tinymce_validate_slug', array($this, 'validate_tinymce_slug'));
11
+ add_action('wp_ajax_prli_create_pretty_link', array($this, 'create_pretty_link'));
12
+ add_action('wp_ajax_prli_search_for_links', array($this, 'search_results'));
13
+ }
14
+
15
+ // registers the buttons for use
16
+ public function register_buttons($buttons) {
17
+ array_push($buttons, "prli_tinymce_form");
18
+ return $buttons;
19
+ }
20
+
21
+ // add the button to the tinyMCE bar
22
+ public function add_tinymce_plugin($plugin_array) {
23
+ $plugin_array['PrliTinyMCE'] = PRLI_JS_URL.'/tinymce_form.js';
24
+ return $plugin_array;
25
+ }
26
+
27
+ // filters the tinyMCE buttons and adds our custom buttons
28
+ public function add_tinymce_buttons() {
29
+ // Don't bother doing this stuff if the current user lacks permissions
30
+ if(!current_user_can('edit_posts') && ! current_user_can('edit_pages'))
31
+ return;
32
+
33
+ // Add only in Rich Editor mode
34
+ if(get_user_option('rich_editing') == 'true') {
35
+ // filter the tinyMCE buttons and add our own
36
+ add_filter("mce_external_plugins", array($this, "add_tinymce_plugin"));
37
+ add_filter('mce_buttons', array($this, 'register_buttons'));
38
+ }
39
+ }
40
+
41
+ //AJAX
42
+ public function display_tinymce_form() {
43
+ global $prli_link, $prli_options, $plp_update;
44
+
45
+ //Setup some vars for the view
46
+ $home_url = home_url() . '/';
47
+ $random_slug = $prli_link->generateValidSlug();
48
+ $default_redirect = $prli_options->link_redirect_type;
49
+ $default_nofollow = ($prli_options->link_nofollow)?'enabled':'disabled';
50
+ $default_tracking = ($prli_options->link_track_me)?'enabled':'disabled';
51
+
52
+ //Get alternate Base URL
53
+ if($plp_update->is_installed()) {
54
+ global $plp_options;
55
+
56
+ if(isset($plp_options) && $plp_options->use_prettylink_url && !empty($plp_options->prettylink_url)) {
57
+ $home_url = stripslashes($plp_options->prettylink_url) . '/';
58
+ }
59
+ }
60
+
61
+ require(PRLI_VIEWS_PATH.'/shared/tinymce_form_popup.php');
62
+ die();
63
+ }
64
+
65
+ //AJAX
66
+ public function validate_tinymce_slug() {
67
+ if(!isset($_POST['slug']) || empty($_POST['slug'])) {
68
+ echo "false";
69
+ die();
70
+ }
71
+
72
+ $slug = trim(stripslashes($_POST['slug']));
73
+
74
+ //Can't end in a slash
75
+ if(substr($slug, -1) == '/' || $slug[0] == '/' || preg_match('/\s/', $slug) || !PrliUtils::slugIsAvailable($slug)) {
76
+ echo "false";
77
+ die();
78
+ }
79
+
80
+ echo "true";
81
+ die();
82
+ }
83
+
84
+ //AJAX
85
+ public function create_pretty_link() {
86
+ $valid_vars = array('target', 'slug', 'redirect', 'nofollow', 'tracking');
87
+
88
+ if(!isset($_POST) || !($valid_vars == array_intersect($valid_vars, array_keys($_POST)))) {
89
+ echo "invalid_inputs";
90
+ die();
91
+ }
92
+
93
+ //Using the local API Yo
94
+ $id = prli_create_pretty_link(
95
+ stripslashes($_POST['target']),
96
+ stripslashes($_POST['slug']),
97
+ '', //Name
98
+ '', //Desc
99
+ 0, //Group ID
100
+ (int)($_POST['tracking'] == 'enabled'),
101
+ (int)($_POST['nofollow'] == 'enabled'),
102
+ $_POST['redirect']
103
+ );
104
+
105
+ if((int)$id > 0) {
106
+ echo "true";
107
+ die();
108
+ }
109
+
110
+ echo "link_failed_to_create";
111
+ die();
112
+ }
113
+
114
+ //AJAX
115
+ public function search_results() {
116
+ global $prli_link, $wpdb;
117
+
118
+ if(!isset($_GET['term']) || empty($_GET['term'])) { die(''); }
119
+
120
+ $return = array();
121
+ $term = '%' . urldecode(stripslashes($_GET['term'])) . '%';
122
+ $q = "SELECT * FROM {$prli_link->table_name} WHERE slug LIKE %s OR name LIKE %s OR url LIKE %s LIMIT 20";
123
+ $q = $wpdb->prepare($q, $term, $term, $term);
124
+ $results = $wpdb->get_results($q, ARRAY_A);
125
+
126
+ //Prepare the results for JSON
127
+ if(!empty($results)) {
128
+ foreach($results as $result) {
129
+ $result = stripslashes_deep($result);
130
+
131
+ if(extension_loaded('mbstring')) {
132
+ $alt_name = (mb_strlen($result['name']) > 55)?mb_substr($result['name'], 0, 55).'...':$result['name'];
133
+ }
134
+ else {
135
+ $alt_name = (strlen($result['name']) > 55)?substr($result['name'], 0, 55).'...':$result['name'];
136
+ }
137
+
138
+ $return[] = array(
139
+ 'value' => (empty($result['name']))?$result['slug']:$alt_name,
140
+ 'slug' => $result['slug'],
141
+ 'target' => $result['url'],
142
+ 'title' => $result['name'], //Not used currently, but we may want this at some point
143
+ 'nofollow' => (int)$result['nofollow']
144
+ );
145
+ }
146
+
147
+ die(json_encode($return));
148
+ }
149
+
150
+ die();
151
+ }
152
+ } //End class
app/controllers/PrliReportsController.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ class PrliReportsController extends PrliBaseController {
5
+ public function load_hooks() {
6
+ // Nothing yet
7
+ }
8
+
9
+ public static function chart_data() {
10
+ global $prli_siteurl, $prli_click, $prli_utils;
11
+
12
+ $params = $prli_click->get_params_array();
13
+ $first_click = $prli_utils->getFirstClickDate();
14
+
15
+ // Adjust for the first click
16
+ if(isset($first_click)) {
17
+ $min_date = (int)((time()-$first_click)/60/60/24);
18
+
19
+ if($min_date < 30)
20
+ $start_timestamp = $prli_utils->get_start_date($params,$min_date);
21
+ else
22
+ $start_timestamp = $prli_utils->get_start_date($params,30);
23
+
24
+ $end_timestamp = $prli_utils->get_end_date($params);
25
+ }
26
+ else {
27
+ $min_date = 0;
28
+ $start_timestamp = time();
29
+ $end_timestamp = time();
30
+ }
31
+
32
+ $link_id = $params['l'];
33
+ $type = $params['type'];
34
+ $group = $params['group'];
35
+ $show_chart = (!isset($_GET['ip']) and !isset($_GET['vuid']));
36
+
37
+ return array(
38
+ 'show_chart' => $show_chart,
39
+ 'min_date' => $min_date * -1,
40
+ 'chart' => $prli_click->setupClickLineGraph($start_timestamp, $end_timestamp, $link_id, $type, $group),
41
+ 'titles' => $prli_click->setupClickLineGraph($start_timestamp, $end_timestamp, $link_id, $type, $group, true)
42
+ );
43
+ }
44
+ }
45
+
app/controllers/PrliToolsController.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ class PrliToolsController extends PrliBaseController {
4
+ public function load_hooks() {
5
+ // Purely for reverse compatibility
6
+ add_action('init',array($this,'redirect'));
7
+ }
8
+
9
+ public function route() {
10
+ global $prli_options;
11
+
12
+ $update_message = '';
13
+ $action = isset($_GET['action']) ? $_GET['action'] : '';
14
+
15
+ if($action == 'clear_all_clicks') {
16
+ $update_message = $this->clear_clicks();
17
+ }
18
+ else if($action == 'clear_30day_clicks') {
19
+ $update_message = $this->clear_clicks(30);
20
+ }
21
+ else if($action == 'clear_90day_clicks') {
22
+ $update_message = $this->clear_clicks(90);
23
+ }
24
+
25
+ $update_message = apply_filters('prli_tools_update_message', $update_message);
26
+ require_once(PRLI_VIEWS_PATH . '/tools/form.php');
27
+ }
28
+
29
+ public static function standalone_route() {
30
+ global $prli_options;
31
+
32
+ $action = isset($_GET['action']) ? $_GET['action'] : '';
33
+ if(isset($_GET['k']) && $_GET['k']==$prli_options->bookmarklet_auth) {
34
+ if( $action == 'prli_bookmarklet' && isset($_GET['target_url']) &&
35
+ PrliUtils::is_url($_GET['target_url']) ) {
36
+ return self::bookmark($_GET['target_url']);
37
+ }
38
+ }
39
+ else {
40
+ wp_redirect(home_url());
41
+ exit;
42
+ }
43
+ }
44
+
45
+ public static function bookmark($target_url) {
46
+ global $prli_options, $prli_blogurl, $prli_link, $plp_update;
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']:'');
51
+
52
+ $result = prli_create_pretty_link( esc_url_raw($target_url, array('http','https')), '', '', '', $group, $track, '', $redirect_type );
53
+
54
+ $plink = $prli_link->getOne($result);
55
+ $target_url = $plink->url;
56
+ $target_url_title = $plink->name;
57
+ $pretty_link = $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $plink->slug;
58
+
59
+ $twitter_status = substr($target_url_title,0,(114 - strlen($pretty_link))) . ((strlen($target_url_title) > 114)?"...":'') . " | $pretty_link";
60
+ $pretty_link_id = $plink->id;
61
+
62
+ require( PRLI_VIEWS_PATH . '/shared/public_link.php' );
63
+ }
64
+
65
+ // This is for reverse compatibility ...
66
+ public function redirect() {
67
+ $path = preg_replace( '!'.home_url().'!', '', PRLI_URL.'/prli-bookmarklet.php' );
68
+
69
+ if($_SERVER['REQUEST_URI']==$path) {
70
+ $accepted_params = array('k','target_url','action','rt','trk','grp');
71
+ $param_str = '';
72
+
73
+ foreach($_GET as $k => $v) {
74
+ if(in_array($k,$accepted_params)) {
75
+ $param_str .= "&{$k}={$v}";
76
+ }
77
+ }
78
+
79
+ header("location: /index.php?action=prli_bookmarklet{$param_str}");
80
+ exit;
81
+ }
82
+ }
83
+
84
+ private function clear_clicks($days=false) {
85
+ global $prli_click;
86
+
87
+ if($days===false) {
88
+ $prli_click->clearAllClicks();
89
+ $update_message = __('Click Database was Cleared.', 'pretty-link');
90
+ }
91
+ else {
92
+ $num_clicks = $prli_click->clear_clicks_by_age_in_days($days);
93
+
94
+ if($num_clicks) {
95
+ $update_message = sprintf(__('Clicks older than %1$d days (%2$d Clicks) were deleted' , 'pretty-link'), $days, $num_clicks);
96
+ }
97
+ else {
98
+ $update_message = sprintf(__('No clicks older than %1$d days were found, so nothing was deleted' , 'pretty-link'), $days);
99
+ }
100
+ }
101
+
102
+ return $update_message;
103
+ }
104
+ }
105
+
app/controllers/PrliUpdateController.php ADDED
@@ -0,0 +1,480 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');}
3
+
4
+ class PrliUpdateController {
5
+ public $mothership_license, $edge_updates, $mothership_license_str, $edge_updates_str, $pro_script, $plugin_slug;
6
+
7
+ public function __construct() {
8
+ $this->mothership_license_str = 'plp_mothership_license';
9
+ $this->mothership_license = get_option($this->mothership_license_str);
10
+ $this->edge_updates_str = 'plp_edge_updates';
11
+ $this->edge_updates = get_option($this->edge_updates_str);
12
+ $this->plugin_slug = PRLI_PLUGIN_SLUG;
13
+
14
+ $this->pro_script = PRLI_PATH . '/pro/pretty-link-pro.php';
15
+ }
16
+
17
+ public function load_hooks() {
18
+ if(!empty($this->mothership_license)) {
19
+ add_filter('pre_set_site_transient_update_plugins', array($this, 'queue_update'));
20
+ add_action('wp_ajax_plp_edge_updates', array($this, 'plp_edge_updates'));
21
+ add_filter('plugins_api', array($this, 'plugin_info'), 11, 3);
22
+ }
23
+
24
+ add_action('admin_init', array($this, 'activate_from_define'));
25
+ add_action('admin_init', array($this, 'maybe_activate'));
26
+ add_action('admin_notices', array($this, 'activation_warning'));
27
+ add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'));
28
+ //add_action('prli_display_options', array($this, 'queue_button'));
29
+ }
30
+
31
+ public function route() {
32
+ if(strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
33
+ return $this->process_form();
34
+ }
35
+ else {
36
+ if( isset($_GET['action']) &&
37
+ $_GET['action'] == 'deactivate' &&
38
+ isset($_GET['_wpnonce']) &&
39
+ wp_verify_nonce($_GET['_wpnonce'], 'pretty-link_deactivate') ) {
40
+ return $this->deactivate();
41
+ }
42
+ else {
43
+ return $this->display_form();
44
+ }
45
+ }
46
+ }
47
+
48
+ public function set_edge_updates($updates) {
49
+ update_option('plp_edge_updates', $updates);
50
+ $this->edge_updates = $updates;
51
+ }
52
+
53
+ public function set_mothership_license($license) {
54
+ update_option('plp_mothership_license', $license);
55
+ $this->mothership_license = $license;
56
+ }
57
+
58
+ public function display_form($message='', $errors=array()) {
59
+ // We just force the queue to update when this page is visited
60
+ // that way we ensure the license info transient is set
61
+ $this->manually_queue_update();
62
+
63
+ if(!empty($this->mothership_license) && empty($errors)) {
64
+ $li = get_site_transient( 'prli_license_info' );
65
+ }
66
+
67
+ require(PRLI_VIEWS_PATH.'/admin/update/ui.php');
68
+ }
69
+
70
+ public function process_form() {
71
+ if(!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'],'activation_form')) {
72
+ wp_die(_e('Why you creepin\'?', 'pretty-link'));
73
+ }
74
+
75
+ if(!isset($_POST[$this->mothership_license_str])) {
76
+ $this->display_form();
77
+ return;
78
+ }
79
+
80
+ $message = '';
81
+ $errors = array();
82
+ $this->set_mothership_license(stripslashes($_POST[$this->mothership_license_str]));
83
+ $domain = urlencode(PrliUtils::site_domain());
84
+
85
+ try {
86
+ $args = compact('domain');
87
+ $act = $this->send_mothership_request("/license_keys/activate/{$this->mothership_license}", $args, 'post');
88
+ $this->manually_queue_update();
89
+ $message = $act['message'];
90
+
91
+ if(strpos($message, 'site has already been activated') !== false ) {
92
+ $this->deactivate(true);
93
+ }
94
+ }
95
+ catch(Exception $e) {
96
+ $errors[] = $e->getMessage();
97
+ }
98
+
99
+ $this->display_form($message, $errors);
100
+ }
101
+
102
+ public function is_activated() {
103
+ $activated = get_option('prli_activated');
104
+ return (!empty($this->mothership_license) && !empty($activated));
105
+ }
106
+
107
+ public function was_activated_with_username_and_password() {
108
+ $credentials = get_option('prlipro-credentials');
109
+ $authorized = get_option('prlipro_activated');
110
+
111
+ return (($credentials && is_array($credentials)) &&
112
+ (isset($credentials['username']) && !empty($credentials['username'])) &&
113
+ (isset($credentials['password']) && !empty($credentials['password'])) &&
114
+ ($authorized && $authorized=='true'));
115
+ }
116
+
117
+ public function is_installed() {
118
+ return file_exists($this->pro_script);
119
+ }
120
+
121
+ public function is_installed_and_activated() {
122
+ return ($this->is_installed() && $this->is_activated());
123
+ }
124
+
125
+ public function check_license_activation() {
126
+ $aov = get_option('prli_activation_override');
127
+
128
+ if(!empty($aov)) { return update_option('prli_activated', true); }
129
+
130
+ $domain = urlencode(PrliUtils::site_domain());
131
+
132
+ try {
133
+ $act = $this->send_mothership_request("/license_keys/a/{$domain}/{$this->mothership_license}", array(), 'get');
134
+
135
+ if(!empty($act) && is_array($act) && isset($act['status'])) {
136
+ update_option('prli_activated', ($act['status']=='enabled'));
137
+ }
138
+ }
139
+ catch(Exception $e) {
140
+ // TODO: For now do nothing if the server can't be reached
141
+ }
142
+ }
143
+
144
+ public function maybe_activate() {
145
+ $activated = get_option('prli_activated');
146
+
147
+ if(!$activated) {
148
+ $this->check_license_activation();
149
+ }
150
+ }
151
+
152
+ public function activate_from_define() {
153
+ if( defined('PRETTYLINK_LICENSE_KEY') &&
154
+ $this->mothership_license != PRETTYLINK_LICENSE_KEY ) {
155
+ $message = '';
156
+ $errors = array();
157
+ $this->mothership_license = stripslashes(PRETTYLINK_LICENSE_KEY);
158
+ $domain = urlencode(PrliUtils::site_domain());
159
+
160
+ try {
161
+ $args = compact('domain');
162
+
163
+ if(!empty($this->mothership_license)) {
164
+ $act = $this->send_mothership_request("/license_keys/deactivate/{$this->mothership_license}", $args, 'post');
165
+ delete_site_transient('prli_addons');
166
+ }
167
+
168
+ $act = $this->send_mothership_request("/license_keys/activate/".PRETTYLINK_LICENSE_KEY, $args, 'post');
169
+
170
+ $this->manually_queue_update();
171
+
172
+ // If we're using defines then we have to do this with defines too
173
+ $this->set_edge_updates(false);
174
+
175
+ $message = $act['message'];
176
+ $callback = create_function( '', '$message = "'.$message.'"; ' .
177
+ 'require(PRLI_VIEWS_PATH."/admin/errors.php");' );
178
+ }
179
+ catch(Exception $e) {
180
+ $callback = create_function( '', '$error = "'.$e->getMessage().'"; ' .
181
+ 'require(PRLI_VIEWS_PATH."/admin/update/activation_warning.php");' );
182
+ }
183
+
184
+ add_action( 'admin_notices', $callback );
185
+ }
186
+ }
187
+
188
+ public function deactivate($hide_form = false) {
189
+ $domain = urlencode(PrliUtils::site_domain());
190
+
191
+ try {
192
+ $args = compact('domain');
193
+ $act = $this->send_mothership_request("/license_keys/deactivate/{$this->mothership_license}", $args, 'post');
194
+
195
+ $this->manually_queue_update();
196
+
197
+ $this->set_mothership_license('');
198
+
199
+ // Don't need to check the mothership for this one ... we just deactivated
200
+ update_option('prli_activated', false);
201
+
202
+ $message = $act['message'];
203
+ }
204
+ catch(Exception $e) {
205
+ update_option('prli_activated', false);
206
+ update_option($this->mothership_license_str, '');
207
+ $errors[] = $e->getMessage();
208
+ }
209
+
210
+ if(!$hide_form) { $this->display_form($message); }
211
+ }
212
+
213
+ public function queue_update($transient, $force=false) {
214
+ if(!$this->is_installed() && !$this->is_activated()) { return $transient; }
215
+
216
+ if($force || (false === ($update_info = get_site_transient('prli_update_info')))) {
217
+ if(empty($this->mothership_license)) {
218
+ // Just here to query for the current version
219
+ $args = array();
220
+ if( $this->edge_updates || ( defined( "PRETTYLINK_EDGE" ) && PRETTYLINK_EDGE ) ) {
221
+ $args['edge'] = 'true';
222
+ }
223
+
224
+ $version_info = $this->send_mothership_request( "/versions/latest/pretty-link-pro-developer", $args );
225
+ $curr_version = $version_info['version'];
226
+ $download_url = '';
227
+ }
228
+ else {
229
+ try {
230
+ $domain = urlencode(PrliUtils::site_domain());
231
+ $args = compact('domain');
232
+
233
+ if( $this->edge_updates || ( defined( "PRETTYLINK_EDGE" ) && PRETTYLINK_EDGE ) ) {
234
+ $args['edge'] = 'true';
235
+ }
236
+
237
+ $license_info = $this->send_mothership_request("/versions/info/{$this->mothership_license}", $args, 'post');
238
+ $curr_version = $license_info['version'];
239
+ $download_url = $license_info['url'];
240
+
241
+ set_site_transient(
242
+ 'prli_license_info',
243
+ $license_info,
244
+ (12*HOUR_IN_SECONDS)
245
+ );
246
+ }
247
+ catch(Exception $e) {
248
+ try {
249
+ // Just here to query for the current version
250
+ $args = array();
251
+ if( $this->edge_updates || ( defined( "PRETTYLINK_EDGE" ) && PRETTYLINK_EDGE ) ) {
252
+ $args['edge'] = 'true';
253
+ }
254
+
255
+ $version_info = $this->send_mothership_request("/versions/latest/pretty-link-pro-developer", $args);
256
+ $curr_version = $version_info['version'];
257
+ $download_url = '';
258
+ }
259
+ catch(Exception $e) {
260
+ if(isset($transient->response[PRLI_PLUGIN_SLUG])) {
261
+ unset($transient->response[PRLI_PLUGIN_SLUG]);
262
+ }
263
+
264
+ $this->check_license_activation();
265
+ return $transient;
266
+ }
267
+ }
268
+ }
269
+
270
+ set_site_transient(
271
+ 'prli_update_info',
272
+ compact('curr_version', 'download_url'),
273
+ (12*HOUR_IN_SECONDS)
274
+ );
275
+
276
+ $this->addons(false, true);
277
+ }
278
+ else {
279
+ extract( $update_info );
280
+ }
281
+
282
+ if(($this->is_activated() && !$this->is_installed()) || (isset($curr_version) && version_compare($curr_version, PRLI_VERSION, '>'))) {
283
+ $transient->response[PRLI_PLUGIN_SLUG] = (object)array(
284
+ 'id' => $curr_version,
285
+ 'slug' => 'pretty-link',
286
+ 'new_version' => $curr_version,
287
+ 'url' => 'http://prettylinkpro.com',
288
+ 'package' => $download_url
289
+ );
290
+ }
291
+ elseif(isset($transient->response[PRLI_PLUGIN_SLUG])) {
292
+ unset($transient->response[PRLI_PLUGIN_SLUG]);
293
+ }
294
+
295
+ $this->check_license_activation();
296
+ return $transient;
297
+ }
298
+
299
+ public function manually_queue_update() {
300
+ $transient = get_site_transient('update_plugins');
301
+ set_site_transient('update_plugins', $this->queue_update($transient, true));
302
+ }
303
+
304
+ public function queue_button() {
305
+ ?>
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>
307
+ <?php
308
+ }
309
+
310
+ // Return up-to-date addon info for pretty-link & its addons
311
+ public function plugin_info($api, $action, $args) {
312
+ global $wp_version;
313
+
314
+ if(!isset($action) ||
315
+ $action != 'plugin_information' ||
316
+ (isset($args->slug) &&
317
+ !preg_match("#^pretty-link-(basic|plus|pro)$#", $args->slug))) {
318
+ return $api;
319
+ }
320
+
321
+ // Any addons should accept the pretty-link license for now
322
+ if(!empty($this->mothership_license)) {
323
+ try {
324
+ $domain = urlencode(PrliUtils::site_domain());
325
+ $params = compact('domain');
326
+
327
+ if($this->edge_updates || (defined('PRETTYLINK_EDGE') && PRETTYLINK_EDGE)) {
328
+ $params['edge'] = 'true';
329
+ }
330
+
331
+ $plugin_info = $this->send_mothership_request(
332
+ "/versions/plugin_information/{$args->slug}/{$this->mothership_license}",
333
+ $params,
334
+ 'get'
335
+ );
336
+
337
+ if(isset($plugin_info['requires'])) { $plugin_info['requires'] = $wp_version; }
338
+ if(isset($plugin_info['tested'])) { $plugin_info['tested'] = $wp_version; }
339
+ if(isset($plugin_info['compatibility'])) { $plugin_info['compatibility'] = array($wp_version => array($wp_version => array(100, 0, 0))); }
340
+
341
+ return (object)$plugin_info;
342
+ }
343
+ catch(Exception $e) {
344
+ // Fail silently for now
345
+ }
346
+ }
347
+
348
+ return $api;
349
+ }
350
+
351
+ public function send_mothership_request( $endpoint,
352
+ $args=array(),
353
+ $method='get',
354
+ $domain='http://mothership.caseproof.com',
355
+ $blocking=true ) {
356
+ $uri = "{$domain}{$endpoint}";
357
+
358
+ $arg_array = array(
359
+ 'method' => strtoupper($method),
360
+ 'body' => $args,
361
+ 'timeout' => 15,
362
+ 'blocking' => $blocking,
363
+ 'sslverify' => false
364
+ );
365
+
366
+ $resp = wp_remote_request($uri, $arg_array);
367
+
368
+ // If we're not blocking then the response is irrelevant
369
+ // So we'll just return true.
370
+ if($blocking == false) {
371
+ return true;
372
+ }
373
+
374
+ if(is_wp_error($resp)) {
375
+ throw new Exception(__('You had an HTTP error connecting to Caseproof\'s Mothership API', 'pretty-link'));
376
+ }
377
+ else {
378
+ if(null !== ($json_res = json_decode($resp['body'], true))) {
379
+ if(isset($json_res['error'])) {
380
+ throw new Exception($json_res['error']);
381
+ }
382
+ else {
383
+ return $json_res;
384
+ }
385
+ }
386
+ else {
387
+ throw new Exception(__( 'Your License Key was invalid', 'pretty-link'));
388
+ }
389
+ }
390
+
391
+ return false;
392
+ }
393
+
394
+ public function enqueue_scripts($hook) {
395
+ if($hook == 'pretty-link_page_pretty-link-updates') {
396
+ wp_register_style('prli-settings-table', PRLI_CSS_URL.'/settings_table.css', array(), PRLI_VERSION);
397
+ wp_enqueue_style('prli-activate-css', PRLI_CSS_URL.'/admin-activate.css', array('prli-settings-table'), PRLI_VERSION);
398
+
399
+ wp_register_script('prli-settings-table', PRLI_JS_URL.'/settings_table.js', array(), PRLI_VERSION);
400
+ wp_enqueue_script('prli-activate-js', PRLI_JS_URL.'/admin_activate.js', array('prli-settings-table'), PRLI_VERSION);
401
+ }
402
+ }
403
+
404
+ public function activation_warning() {
405
+ if($this->is_installed() && empty($this->mothership_license) &&
406
+ (!isset($_REQUEST['page']) || !($_REQUEST['page']=='pretty-link-updates'))) {
407
+ require(PRLI_VIEWS_PATH.'/admin/update/activation_warning.php');
408
+ }
409
+ }
410
+
411
+ public function plp_edge_updates() {
412
+ if(!PrliUtils::is_prli_admin() || !wp_verify_nonce($_POST['wpnonce'],'wp-edge-updates')) {
413
+ die(json_encode(array('error' => __('You do not have access.', 'pretty-link'))));
414
+ }
415
+
416
+ if(!isset($_POST['edge'])) {
417
+ die(json_encode(array('error' => __('Edge updates couldn\'t be updated.', 'pretty-link'))));
418
+ }
419
+
420
+ $this->set_edge_updates($_POST['edge']=='true');
421
+
422
+ // Re-queue updates when this is checked
423
+ $this->manually_queue_update();
424
+
425
+ die(json_encode(array('state' => ($this->edge_updates ? 'true' : 'false'))));
426
+ }
427
+
428
+ public function addons($return_object=false, $force=false) {
429
+ $license = $this->mothership_license;
430
+
431
+ if($force) {
432
+ delete_site_transient('prli_addons');
433
+ }
434
+
435
+ if(($addons = get_site_transient('prli_addons'))) {
436
+ $addons = json_decode($addons);
437
+ }
438
+ else {
439
+ $addons = array();
440
+
441
+ if(!empty($license)) {
442
+ try {
443
+ $domain = urlencode(PrliUtils::site_domain());
444
+ $args = compact('domain');
445
+
446
+ if(defined('PRETTYLINK_EDGE') && PRETTYLINK_EDGE) { $args['edge'] = 'true'; }
447
+ $addons = $this->send_mothership_request('/versions/addons/'.PRLI_EDITION."/{$license}", $args);
448
+ }
449
+ catch(Exception $e) {
450
+ // fail silently
451
+ }
452
+ }
453
+
454
+ $json = json_encode($addons);
455
+ set_site_transient('prli_addons',$json,(HOUR_IN_SECONDS*12));
456
+
457
+ if($return_object) {
458
+ $addons = json_decode($json);
459
+ }
460
+ }
461
+
462
+ return $addons;
463
+ }
464
+
465
+ public function activate_page_url() {
466
+ return admin_url('admin.php?page=pretty-link-updates');
467
+ }
468
+
469
+ public function update_plugin_url() {
470
+ return admin_url('update.php?action=upgrade-plugin&plugin=' . urlencode($this->plugin_slug) . '&_wpnonce=' . wp_create_nonce('upgrade-plugin_' . $this->plugin_slug));
471
+ }
472
+
473
+ public function update_plugin() {
474
+ $this->manually_queue_update();
475
+ wp_redirect($this->update_plugin_url());
476
+ exit;
477
+ }
478
+
479
+ } //End class
480
+
app/controllers/PrliXmlRpcController.php ADDED
@@ -0,0 +1,344 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ /**
4
+ * Pretty Link WordPress Plugin API export via XML-RPC
5
+ *
6
+ * The first 2 arguments to each of these methods are username and password.
7
+ */
8
+ require_once(ABSPATH . '/wp-includes/class-IXR.php');
9
+
10
+ class PrliXmlRpcController extends PrliBaseController {
11
+ public function load_hooks() {
12
+ add_filter('xmlrpc_methods', array($this, 'export_api'));
13
+ }
14
+
15
+ /********* EXPORT PRETTY LINK API VIA XML-RPC ***********/
16
+ public function export_api($api_methods) {
17
+ $api_methods['prli.create_pretty_link'] = array($this,'create_pretty_link');
18
+ $api_methods['prli.get_all_groups'] = array($this,'get_all_groups');
19
+ $api_methods['prli.get_all_links'] = array($this,'get_all_links');
20
+ $api_methods['prli.get_link'] = array($this,'get_link');
21
+ $api_methods['prli.get_link_from_slug'] = array($this,'get_link_from_slug');
22
+ $api_methods['prli.get_pretty_link_url'] = array($this,'get_pretty_link_url');
23
+ $api_methods['prli.api_version'] = array($this,'api_version');
24
+
25
+ return $api_methods;
26
+ }
27
+
28
+ /**
29
+ * Returns the API Version as a string.
30
+ */
31
+ public function api_version($args) {
32
+ $username = $args[0];
33
+ $password = $args[1];
34
+
35
+ if ( !get_option( 'enable_xmlrpc' ) )
36
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' , 'pretty-link') );
37
+
38
+ if (!user_pass_ok($username, $password))
39
+ return new IXR_Error( 401, __( 'Sorry, Login failed' , 'pretty-link') );
40
+
41
+ // make sure user is an admin
42
+ $userdata = get_userdatabylogin( $username );
43
+ if( !isset($userdata->user_level) or
44
+ (int)$userdata->user_level < 8 )
45
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' , 'pretty-link') );
46
+
47
+ return prli_api_version();
48
+ }
49
+
50
+ /**
51
+ * Get a Pretty Link for a long, ugly URL.
52
+ *
53
+ * @param string $username Required, an admin user of this blog
54
+ *
55
+ * @param string $password Required, the password for this user
56
+ *
57
+ * @param string $target_url Required, it is the value of the Target URL you
58
+ * want the Pretty Link to redirect to
59
+ *
60
+ * @param string $slug Optional, slug for the Pretty Link (string that comes
61
+ * after the Pretty Link's slash) if this value isn't set
62
+ * then a random slug will be automatically generated.
63
+ *
64
+ * @param string $name Optional, name for the Pretty Link. If this value isn't
65
+ * set then the name will be the slug.
66
+ *
67
+ * @param string $description Optional, description for the Pretty Link.
68
+ *
69
+ * @param integer $group_id Optional, the group that this link will be placed in.
70
+ * If this value isn't set then the link will not be
71
+ * placed in a group.
72
+ *
73
+ * @param boolean $link_track_me Optional, If true the link will be tracked,
74
+ * if not set the default value (from the pretty
75
+ * link option page) will be used
76
+ *
77
+ * @param boolean $link_nofollow Optional, If true the nofollow attribute will
78
+ * be set for the link, if not set the default
79
+ * value (from the pretty link option page) will
80
+ * be used
81
+ *
82
+ * @param string $link_redirect_type Optional, valid values include '307', '302', or '301',
83
+ * if not set the default value (from the pretty
84
+ * link option page) will be used
85
+ *
86
+ * @return boolean / string The Full Pretty Link if Successful and false for Failure.
87
+ * This function will also set a global variable named
88
+ * $prli_pretty_slug which gives the slug of the link
89
+ * created if the link is successfully created -- it will
90
+ * set a variable named $prli_error_messages if the link
91
+ * was not successfully created.
92
+ */
93
+ public function create_pretty_link( $args ) {
94
+ $username = $args[0];
95
+ $password = $args[1];
96
+
97
+ if ( !get_option( 'enable_xmlrpc' ) )
98
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' , 'pretty-link') );
99
+
100
+ if (!user_pass_ok($username, $password))
101
+ return new IXR_Error( 401, __( 'Sorry, Login failed' , 'pretty-link') );
102
+
103
+ // make sure user is an admin
104
+ $userdata = get_userdatabylogin( $username );
105
+ if( !isset($userdata->user_level) or
106
+ (int)$userdata->user_level < 8 )
107
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' , 'pretty-link') );
108
+
109
+ // Target URL Required
110
+ if(!isset($args[2]))
111
+ return new IXR_Error( 401, __( 'You must provide a target URL' , 'pretty-link') );
112
+
113
+ $target_url = $args[2];
114
+
115
+ $slug = (isset($args[3])?$args[3]:'');
116
+ $name = (isset($args[4])?$args[4]:'');
117
+ $description = (isset($args[5])?$args[5]:'');
118
+ $group_id = (isset($args[6])?$args[6]:'');
119
+ $track_me = (isset($args[7])?$args[7]:'');
120
+ $nofollow = (isset($args[8])?$args[8]:'');
121
+ $redirect_type = (isset($args[9])?$args[9]:'');
122
+ $param_forwarding = (isset($args[10]) && !empty($args[10]) && $args[10] != 'off');
123
+ $param_struct = (isset($args[11])?$args[11]:'');
124
+
125
+ if( $link = prli_create_pretty_link( $target_url,
126
+ $slug,
127
+ $name,
128
+ $description,
129
+ $group_id,
130
+ $track_me,
131
+ $nofollow,
132
+ $redirect_type,
133
+ $param_forwarding,
134
+ $param_struct ) )
135
+ return $link;
136
+ else
137
+ return new IXR_Error( 401, __( 'There was an error creating your Pretty Link' , 'pretty-link') );
138
+ }
139
+
140
+ public function update_pretty_link( $args ) {
141
+ $username = $args[0];
142
+ $password = $args[1];
143
+
144
+ if ( !get_option( 'enable_xmlrpc' ) )
145
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' , 'pretty-link') );
146
+
147
+ if (!user_pass_ok($username, $password))
148
+ return new IXR_Error( 401, __( 'Sorry, Login failed' , 'pretty-link') );
149
+
150
+ // make sure user is an admin
151
+ $userdata = get_userdatabylogin( $username );
152
+ if( !isset($userdata->user_level) or
153
+ (int)$userdata->user_level < 8 )
154
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' , 'pretty-link') );
155
+
156
+ // Target URL Required
157
+ if(!isset($args[2]))
158
+ return new IXR_Error( 401, __( 'You must provide the id of the link you want to update' , 'pretty-link') );
159
+
160
+ $id = $args[2];
161
+ $target_url = (isset($args[3])?$args[3]:'');
162
+ $slug = (isset($args[4])?$args[4]:'');
163
+ $name = (isset($args[5])?$args[5]:'');
164
+ $description = (isset($args[6])?$args[6]:'');
165
+ $group_id = (isset($args[7])?$args[7]:'');
166
+ $track_me = (isset($args[8])?$args[8]:'');
167
+ $nofollow = (isset($args[9])?$args[9]:'');
168
+ $redirect_type = (isset($args[10])?$args[10]:'');
169
+ $param_forwarding = (isset($args[11])?$args[11]:'');
170
+ $param_struct = (isset($args[12])?$args[12]:'');
171
+
172
+ if( $link = prli_update_pretty_link( $id,
173
+ $target_url,
174
+ $slug,
175
+ $name,
176
+ $description,
177
+ $group_id,
178
+ $track_me,
179
+ $nofollow,
180
+ $redirect_type,
181
+ $param_forwarding,
182
+ $param_struct ) )
183
+ return $link;
184
+ else
185
+ return new IXR_Error( 401, __( 'There was an error creating your Pretty Link' , 'pretty-link') );
186
+ }
187
+
188
+ /**
189
+ * Get all the pretty link groups in an array suitable for creating a select box.
190
+ *
191
+ * @return bool (false if failure) | array A numerical array of associative arrays
192
+ * containing all the data about the pretty
193
+ * link groups.
194
+ */
195
+ public function get_all_groups($args) {
196
+ $username = $args[0];
197
+ $password = $args[1];
198
+
199
+ if ( !get_option( 'enable_xmlrpc' ) )
200
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' , 'pretty-link') );
201
+
202
+ if (!user_pass_ok($username, $password))
203
+ return new IXR_Error( 401, __( 'Sorry, Login failed' , 'pretty-link') );
204
+
205
+ // make sure user is an admin
206
+ $userdata = get_userdatabylogin( $username );
207
+ if( !isset($userdata->user_level) or
208
+ (int)$userdata->user_level < 8 )
209
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' , 'pretty-link') );
210
+
211
+ if( $groups = prli_get_all_groups())
212
+ return $groups;
213
+ else
214
+ return new IXR_Error( 401, __( 'There was an error fetching the Pretty Link Groups' , 'pretty-link') );
215
+ }
216
+
217
+ /**
218
+ * Get all the pretty links in an array suitable for creating a select box.
219
+ *
220
+ * @return bool (false if failure) | array A numerical array of associative arrays
221
+ * containing all the data about the pretty
222
+ * links.
223
+ */
224
+ public function get_all_links($args) {
225
+ $username = $args[0];
226
+ $password = $args[1];
227
+
228
+ if ( !get_option( 'enable_xmlrpc' ) )
229
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' , 'pretty-link') );
230
+
231
+ if (!user_pass_ok($username, $password))
232
+ return new IXR_Error( 401, __( 'Sorry, Login failed' , 'pretty-link') );
233
+
234
+ // make sure user is an admin
235
+ $userdata = get_userdatabylogin( $username );
236
+ if( !isset($userdata->user_level) or
237
+ (int)$userdata->user_level < 8 )
238
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' , 'pretty-link') );
239
+
240
+ if( $links = prli_get_all_links())
241
+ return $links;
242
+ else
243
+ return new IXR_Error( 401, __( 'There was an error fetching the Pretty Links' , 'pretty-link') );
244
+ }
245
+
246
+ /**
247
+ * Gets a specific link from a slug and returns info about it in an array
248
+ *
249
+ * @return bool (false if failure) | array An associative array with all the
250
+ * data about the given pretty link.
251
+ */
252
+ public function get_link_from_slug($args) {
253
+ $username = $args[0];
254
+ $password = $args[1];
255
+
256
+ if ( !get_option( 'enable_xmlrpc' ) )
257
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' , 'pretty-link') );
258
+
259
+ if (!user_pass_ok($username, $password))
260
+ return new IXR_Error( 401, __( 'Sorry, Login failed' , 'pretty-link') );
261
+
262
+ // make sure user is an admin
263
+ $userdata = get_userdatabylogin( $username );
264
+ if( !isset($userdata->user_level) or
265
+ (int)$userdata->user_level < 8 )
266
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' , 'pretty-link') );
267
+
268
+ if(!isset($args[2]))
269
+ return new IXR_Error( 401, __( 'Sorry, you must provide a slug to lookup' , 'pretty-link') );
270
+
271
+ $slug = $args[2];
272
+
273
+ if( $link = prli_get_link_from_slug($slug) )
274
+ return $link;
275
+ else
276
+ return new IXR_Error( 401, __( 'There was an error fetching your Pretty Link' , 'pretty-link') );
277
+ }
278
+
279
+ /**
280
+ * Gets a specific link from an id and returns info about it in an array
281
+ *
282
+ * @return bool (false if failure) | array An associative array with all the
283
+ * data about the given pretty link.
284
+ */
285
+ public function get_link($args) {
286
+ $username = $args[0];
287
+ $password = $args[1];
288
+
289
+ if ( !get_option( 'enable_xmlrpc' ) )
290
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' , 'pretty-link') );
291
+
292
+ if (!user_pass_ok($username, $password))
293
+ return new IXR_Error( 401, __( 'Sorry, Login failed' , 'pretty-link') );
294
+
295
+ // make sure user is an admin
296
+ $userdata = get_userdatabylogin( $username );
297
+ if( !isset($userdata->user_level) or
298
+ (int)$userdata->user_level < 8 )
299
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' , 'pretty-link') );
300
+
301
+ if(!isset($args[2]))
302
+ return new IXR_Error( 401, __( 'Sorry, you must provide an id to lookup' , 'pretty-link') );
303
+
304
+ $id = $args[2];
305
+
306
+ if( $link = prli_get_link($id) )
307
+ return $link;
308
+ else
309
+ return new IXR_Error( 401, __( 'There was an error fetching your Pretty Link' , 'pretty-link') );
310
+ }
311
+
312
+ /**
313
+ * Gets the full Pretty Link URL from a link id
314
+ *
315
+ * @return bool (false if failure) | string containing the pretty link url
316
+ */
317
+ public function get_pretty_link_url($args) {
318
+ $username = $args[0];
319
+ $password = $args[1];
320
+
321
+ if ( !get_option( 'enable_xmlrpc' ) )
322
+ return new IXR_Error( 401, __( 'Sorry, XML-RPC Not enabled for this website' , 'pretty-link') );
323
+
324
+ if (!user_pass_ok($username, $password))
325
+ return new IXR_Error( 401, __( 'Sorry, Login failed' , 'pretty-link') );
326
+
327
+ // make sure user is an admin
328
+ $userdata = get_userdatabylogin( $username );
329
+ if( !isset($userdata->user_level) or
330
+ (int)$userdata->user_level < 8 )
331
+ return new IXR_Error( 401, __( 'Sorry, you must be an administrator to access this resource' , 'pretty-link') );
332
+
333
+ if(!isset($args[2]))
334
+ return new IXR_Error( 401, __( 'Sorry, you must provide an id to lookup' , 'pretty-link') );
335
+
336
+ $id = $args[2];
337
+
338
+ if( $url = prli_get_pretty_link_url($id) )
339
+ return $url;
340
+ else
341
+ return new IXR_Error( 401, __( 'There was an error fetching your Pretty Link URL' , 'pretty-link') );
342
+ }
343
+ }
344
+
app/controllers/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/helpers/PrliAppHelper.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ class PrliAppHelper {
4
+ public static function page_title($page_title) {
5
+ require(PRLI_VIEWS_PATH . '/shared/title_text.php');
6
+ }
7
+
8
+ public static function info_tooltip($id, $title, $info) {
9
+ ?>
10
+ <span id="prli-tooltip-<?php echo $id; ?>" class="prli-tooltip">
11
+ <span><i class="pl-icon pl-icon-info-circled pl-16"></i></span>
12
+ <span class="prli-data-title prli-hidden"><?php echo $title; ?></span>
13
+ <span class="prli-data-info prli-hidden"><?php echo $info; ?></span>
14
+ </span>
15
+ <?php
16
+ }
17
+
18
+ public static function groups_dropdown( $field_name, $value='', $include_blank=true ) {
19
+ ?>
20
+ <select name="<?php echo $field_name; ?>">
21
+
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
39
+ }
40
+ }
41
+
app/helpers/PrliClicksHelper.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ class PrliClicksHelper {
5
+ public static function get_click_sort_vars($params,$where_clause = '') {
6
+ global $wpdb;
7
+
8
+ $count_where_clause = $where_clause;
9
+ $page_params = '';
10
+ $order_by = '';
11
+
12
+ // These will have to work with both get and post
13
+ $sort_str = $params['sort'];
14
+ $sdir_str = $params['sdir'];
15
+ $search_str = $params['search'];
16
+
17
+ // Insert search string
18
+ if(!empty($search_str)) {
19
+ $search_params = explode(' ', esc_html($search_str));
20
+
21
+ $first_pass = true;
22
+ foreach($search_params as $search_param) {
23
+ if($first_pass) {
24
+ if($where_clause != '') {
25
+ $where_clause .= ' AND';
26
+ $count_where_clause .= ' AND';
27
+ }
28
+
29
+ $first_pass = false;
30
+ }
31
+ else {
32
+ $where_clause .= ' AND';
33
+ $count_where_clause .= ' AND';
34
+ }
35
+
36
+ $search_param = $sp = '%' . $wpdb->esc_like($search_param) . '%';
37
+
38
+ $where_clause .= $wpdb->prepare(
39
+ ' ( cl.ip LIKE %s OR
40
+ cl.vuid LIKE %s OR
41
+ cl.btype LIKE %s OR
42
+ cl.bversion LIKE %s OR
43
+ cl.host LIKE %s OR
44
+ cl.referer LIKE %s OR
45
+ cl.uri LIKE %s OR
46
+ cl.created_at LIKE %s',
47
+ $sp, $sp, $sp, $sp, $sp, $sp, $sp, $sp );
48
+
49
+ $count_where_clause .= $wpdb->prepare(
50
+ ' ( cl.ip LIKE %s OR
51
+ cl.vuid LIKE %s OR
52
+ cl.btype LIKE %s OR
53
+ cl.bversion LIKE %s OR
54
+ cl.host LIKE %s OR
55
+ cl.referer LIKE %s OR
56
+ cl.uri LIKE %s OR
57
+ cl.created_at LIKE %s',
58
+ $sp, $sp, $sp, $sp, $sp, $sp, $sp, $sp );
59
+
60
+ $count_where_clause .= ' )';
61
+ $where_clause .= $wpdb->prepare( ' OR li.name LIKE %s )', $sp );
62
+ }
63
+
64
+ $page_params .= "&search=" . urlencode($search_str);
65
+ }
66
+
67
+ // Have to create a separate var so sorting doesn't get screwed up
68
+ $sort_params = $page_params;
69
+
70
+ // make sure page params stay correct
71
+ if(!empty($sort_str)) { $page_params .="&sort={$sort_str}"; }
72
+
73
+ if(!empty($sdir_str)) { $page_params .= "&sdir={$sdir_str}"; }
74
+
75
+ if(empty($count_where_clause)) { $count_where_clause = $where_clause; }
76
+
77
+ // Add order by clause
78
+ switch($sort_str) {
79
+ case 'ip':
80
+ case 'vuid':
81
+ case 'btype':
82
+ case 'bversion':
83
+ case 'host':
84
+ case 'referer':
85
+ case 'uri':
86
+ $order_by .= " ORDER BY cl.{$sort_str}";
87
+ break;
88
+ case 'link':
89
+ $order_by .= ' ORDER BY li.name';
90
+ break;
91
+ default:
92
+ $order_by .= ' ORDER BY cl.created_at';
93
+ }
94
+
95
+ // Toggle ascending / descending
96
+ if((empty($sort_str) && empty($sdir_str)) || $sdir_str == 'desc') {
97
+ $order_by .= ' DESC';
98
+ $sdir_str = 'desc';
99
+ }
100
+ else {
101
+ $sdir_str = 'asc';
102
+ }
103
+
104
+ return compact( 'count_where_clause', 'sort_str', 'sdir_str', 'search_str',
105
+ 'where_clause', 'order_by', 'sort_params', 'page_params' );
106
+ }
107
+ }
108
+
app/helpers/PrliLinksHelper.php ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class PrliLinksHelper {
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'); ?>&nbsp;</option>
15
+ <?php else:
16
+ foreach($extra_options as $exoptkey => $exoptval): ?>
17
+ <option value="<?php echo $exoptval; ?>"><?php echo $exoptkey; ?>&nbsp;</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; ?>&nbsp;</option>
23
+ <?php endforeach; ?>
24
+ </select>
25
+ <?php
26
+ }
27
+
28
+ public static function redirect_type_dropdown($fieldname, $value='', $extra_options=array(), $classes='') {
29
+ $idname = preg_match('#^.*\[(.*?)\]$#',$fieldname,$matches)?$matches[1]:$fieldname;
30
+ ?>
31
+ <select id="<?php echo $idname; ?>" name="<?php echo $fieldname; ?>" class="<?php echo $classes; ?>">
32
+ <?php if( !empty($extra_options) ): ?>
33
+ <?php foreach( $extra_options as $exoptkey => $exoptval ): ?>
34
+ <option value="<?php echo $exoptval; ?>"><?php echo $exoptkey; ?>&nbsp;</option>
35
+ <?php endforeach; ?>
36
+ <?php endif; ?>
37
+ <option value="307" <?php selected((int)$value,(int)307); ?>><?php _e('307 (Temporary)', 'pretty-link') ?>&nbsp;</option>
38
+ <option value="302" <?php selected((int)$value,(int)302); ?>><?php _e('302 (Temporary)', 'pretty-link') ?>&nbsp;</option>
39
+ <option value="301" <?php selected((int)$value,(int)301); ?>><?php _e('301 (Permanent)', 'pretty-link') ?>&nbsp;</option>
40
+ <?php do_action('prli_redirection_types', array(), $value); ?>
41
+ </select>
42
+ <?php
43
+ }
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'); ?>&nbsp;</option>
50
+ <option value="edit"><?php _e('Edit', 'pretty-link'); ?>&nbsp;</option>
51
+ <option value="delete"><?php _e('Delete', 'pretty-link'); ?>&nbsp;</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
+ <?php
56
+ }
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'); ?>&nbsp;</option>
64
+ <option value="off"><?php _e('Off', 'pretty-link'); ?>&nbsp;</option>
65
+ <option value="on"><?php _e('On', 'pretty-link'); ?>&nbsp;</option>
66
+ </select>
67
+ <?php
68
+ }
69
+
70
+ public static function link_list_icons($link) {
71
+ do_action('prli_list_icon',$link->id);
72
+
73
+ switch( $link->redirect_type ):
74
+ case 'prettybar': ?>
75
+ <i title="<?php _e('PrettyBar Redirection', 'pretty-link'); ?>" class="pl-icon-star pl-list-icon"></i><?php
76
+ break;
77
+ case 'cloak': ?>
78
+ <i title="<?php _e('Cloaked Redirection', 'pretty-link'); ?>" class="pl-icon-cloak pl-list-icon"></i><?php
79
+ break;
80
+ case 'pixel': ?>
81
+ <i title="<?php _e('Pixel Tracking Redirection', 'pretty-link'); ?>" class="pl-icon-eye-off pl-list-icon"></i><?php
82
+ break;
83
+ case 'metarefresh': ?>
84
+ <i title="<?php _e('Meta Refresh Redirection', 'pretty-link'); ?>" class="pl-icon-cw pl-list-icon"></i><?php
85
+ break;
86
+ case 'javascript': ?>
87
+ <i title="<?php _e('Javascript Redirection', 'pretty-link'); ?>" class="pl-icon-code pl-list-icon"></i><?php
88
+ break;
89
+ case '307': ?>
90
+ <i title="<?php _e('Temporary (307) Redirection', 'pretty-link'); ?>" class="pl-icon-307 pl-list-icon"></i><?php
91
+ break;
92
+ 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><?php
94
+ break;
95
+ case '301': ?>
96
+ <i title="<?php _e('Permanent (301) Redirection', 'pretty-link'); ?>" class="pl-icon-301 pl-list-icon"></i><?php
97
+ endswitch;
98
+
99
+ if( $link->nofollow ): ?>
100
+ <i title="<?php _e('Nofollow Enabled', 'pretty-link'); ?>" class="pl-icon-cancel-circled pl-list-icon"></i><?php
101
+ endif;
102
+
103
+ 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><?php
105
+ endif;
106
+
107
+ do_action('prli_list_end_icon',$link);
108
+ }
109
+
110
+ public static function link_list_actions($link, $pretty_link_url) {
111
+ global $prli_options;
112
+
113
+ ?>
114
+ <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>
115
+ <a href="<?php echo admin_url('admin.php?page=pretty-link&action=destroy&id=' . $link->id); ?>" 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>
116
+ <a href="<?php echo admin_url('admin.php?page=pretty-link&action=reset&id=' . $link->id); ?>" 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>
117
+ <?php
118
+ if( $link->track_me and $prli_options->extended_tracking!='count' ):
119
+ ?><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><?php
120
+ do_action('prli-link-action',$link->id);
121
+ endif;
122
+
123
+ if( $link->redirect_type != 'pixel' ):
124
+ ?><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>
125
+ <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><?php
126
+ endif;
127
+ ?>
128
+
129
+ <?php if( $link->redirect_type != 'pixel' ): ?>
130
+ <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>
131
+ <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><?php
132
+ endif;
133
+
134
+ do_action('prli-special-link-action',$link->id);
135
+ }
136
+ }
137
+
app/helpers/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/lib/PrliBaseController.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ abstract class PrliBaseController {
4
+ abstract public function load_hooks();
5
+ }
6
+
app/models/PrliClick.php ADDED
@@ -0,0 +1,258 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH'))
3
+ die('You are not allowed to call this page directly.');
4
+
5
+ class PrliClick {
6
+ var $table_name;
7
+
8
+ public function __construct() {
9
+ global $wpdb;
10
+ $this->table_name = "{$wpdb->prefix}prli_clicks";
11
+ }
12
+
13
+ public function get_exclude_where_clause( $where = '', $abbr = 'cl') {
14
+ global $prli_options;
15
+ $exclude_list = trim($prli_options->prli_exclude_ips);
16
+ $filter_bots = (int)$prli_options->filter_robots;
17
+ $return_stmt = '';
18
+
19
+ if(empty($exclude_list) and $filter_bots == 0)
20
+ return $return_stmt;
21
+
22
+ $return_stmt .= (empty($where)?'':' AND');
23
+
24
+ if(!empty($exclude_list)) {
25
+ $exclude_ips = explode(',',$exclude_list);
26
+ for($i = 0; $i < count($exclude_ips); $i++) {
27
+ $exclude_ip = trim(preg_replace('#\*#','%%',$exclude_ips[$i]));
28
+
29
+ if($i > 0)
30
+ $return_stmt .= ' AND';
31
+
32
+ $return_stmt .= " {$abbr}.ip NOT LIKE '{$exclude_ip}'";
33
+ }
34
+ }
35
+
36
+ if($filter_bots != 0) {
37
+ $return_stmt .= (empty($exclude_list)?' (':' AND (');
38
+ $whitelist = trim($prli_options->whitelist_ips);
39
+
40
+ if(!empty($whitelist)) {
41
+ $whitelist_ips = explode(',',$whitelist);
42
+
43
+ for($i = 0; $i <= count($whitelist_ips); $i++) {
44
+ if($i == count($whitelist_ips)) {
45
+ $return_stmt .= ' OR';
46
+ break;
47
+ }
48
+
49
+ $whitelist_ip = trim(preg_replace('#\*#','%%',$whitelist_ips[$i]));
50
+
51
+ if($i > 0)
52
+ $return_stmt .= ' OR';
53
+
54
+ $return_stmt .= " {$abbr}.ip LIKE '{$whitelist_ip}'";
55
+ }
56
+
57
+ }
58
+
59
+ $return_stmt .= " {$abbr}.robot=0 )";
60
+ }
61
+
62
+ return $return_stmt;
63
+ }
64
+
65
+ public function getOne($id) {
66
+ global $wpdb, $prli_link, $prli_utils;
67
+
68
+ $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id AND id=' . $id . $prli_utils->prepend_and_or_where(' AND',$this->get_exclude_where_clause());
69
+
70
+ return $wpdb->get_row($query);
71
+ }
72
+
73
+ // SELECT cl.*,li.name as link_name FROM wp_prli_clicks cl, wp_prli_links li WHERE li.id = cl.link_id ORDER BY created_at DESC
74
+ public function getAll($where = '', $order = '', $include_stats = false, $limit = '') {
75
+ global $wpdb, $prli_link, $prli_utils;
76
+
77
+ $where .= $this->get_exclude_where_clause( $where );
78
+ $where = $prli_utils->prepend_and_or_where(' AND', $where);
79
+ $limit = (empty($limit)?'':" LIMIT {$limit}");
80
+ if($include_stats)
81
+ $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . $limit;
82
+ else
83
+ $query = 'SELECT cl.*, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . $limit;
84
+
85
+ return $wpdb->get_results($query);
86
+ }
87
+
88
+ // Delete all of the clicks from the database.
89
+ public function clearAllClicks() {
90
+ global $wpdb, $prli_link_meta;
91
+
92
+ $query = $wpdb->prepare("DELETE FROM {$prli_link_meta->table_name} WHERE meta_key=%s OR meta_key=%s", 'static-clicks', 'static-uniques');
93
+ $wpdb->query($query);
94
+
95
+ $query = "TRUNCATE TABLE {$this->table_name}";
96
+ return $wpdb->query($query);
97
+ }
98
+
99
+ /* This will delete all the clicks in the database by their age measured in days. */
100
+ public function clear_clicks_by_age_in_days($days) {
101
+ global $wpdb;
102
+
103
+ $days_in_seconds = $days * 24 * 60 * 60;
104
+ $oldest_time = time() - $days_in_seconds;
105
+
106
+ $num_records = $this->getRecordCount( " UNIX_TIMESTAMP(created_at) < {$oldest_time}" );
107
+
108
+ if($num_records) {
109
+ $query = "DELETE FROM {$this->table_name} WHERE UNIX_TIMESTAMP(created_at) < %d";
110
+ $query = $wpdb->prepare( $query, $oldest_time );
111
+
112
+ $wpdb->query($query);
113
+ }
114
+
115
+ return $num_records;
116
+ }
117
+
118
+ public function get_distinct_ip_count($where = '') {
119
+ global $wpdb, $prli_link, $prli_utils;
120
+
121
+ $where .= $this->get_exclude_where_clause( $where );
122
+ $where = $prli_utils->prepend_and_or_where(' WHERE', $where);
123
+ $query = 'SELECT COUNT(DISTINCT ip) FROM ' . $this->table_name . ' cl'. $where;
124
+
125
+ return $wpdb->get_var($query);
126
+ }
127
+
128
+ // Pagination Methods
129
+ public function getRecordCount($where = '') {
130
+ global $wpdb, $prli_link, $prli_utils;
131
+ $where .= $this->get_exclude_where_clause( $where );
132
+ $where = $prli_utils->prepend_and_or_where(' WHERE', $where);
133
+ $query = 'SELECT COUNT(*) FROM ' . $this->table_name . ' cl'. $where;
134
+
135
+ return $wpdb->get_var($query);
136
+ }
137
+
138
+ public function getPageCount($p_size, $where = '') {
139
+ return ceil((int)$this->getRecordCount($where) / (int)$p_size);
140
+ }
141
+
142
+ public function getPage($current_p, $p_size, $where = '', $order = '', $include_stats = false) {
143
+ global $wpdb, $prli_link, $prli_utils;
144
+
145
+ $end_index = $current_p * $p_size;
146
+ $start_index = $end_index - $p_size;
147
+ $where .= $this->get_exclude_where_clause( $where );
148
+ $where = $prli_utils->prepend_and_or_where(' AND', $where);
149
+ if($include_stats)
150
+ $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . ' LIMIT ' . $start_index . ',' . $p_size . ';';
151
+ else
152
+ $query = 'SELECT cl.*, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . ' LIMIT ' . $start_index . ',' . $p_size . ';';
153
+ $results = $wpdb->get_results($query);
154
+
155
+ return $results;
156
+ }
157
+
158
+ public function generateUniqueVisitorId() {
159
+ return uniqid();
160
+ }
161
+
162
+ public function get_counts_by_days($start_timestamp, $end_timestamp, $link_id = "all", $type = "all", $group = '') {
163
+ global $wpdb, $prli_link;
164
+
165
+ $search_where = '';
166
+ $query = "SELECT DATE(cl.created_at) as cldate,COUNT(*) as clcount FROM ".$this->table_name." cl WHERE cl.created_at BETWEEN '".date("Y-n-j",$start_timestamp)." 00:00:00' AND '".date("Y-n-j",$end_timestamp)." 23:59:59'".$search_where.$this->get_exclude_where_clause( ' AND' );
167
+
168
+ if($link_id != "all")
169
+ $query .= " AND link_id=$link_id";
170
+
171
+ if(!empty($group))
172
+ $query .= " AND link_id IN (SELECT id FROM " . $prli_link->table_name . " WHERE group_id=$group)";
173
+
174
+ if($type == "unique")
175
+ $query .= " AND first_click=1";
176
+
177
+ $query .= ' GROUP BY DATE(cl.created_at)';
178
+
179
+ $clicks_array = $wpdb->get_results($query);
180
+
181
+ $temp_array = array();
182
+ $counts_array = array();
183
+ $dates_array = array();
184
+
185
+ // Refactor Array for use later on
186
+ foreach($clicks_array as $c)
187
+ $temp_array[$c->cldate] = $c->clcount;
188
+
189
+ // Get the dates array
190
+ for($c = $start_timestamp; $c <= $end_timestamp; $c += 60*60*24)
191
+ $dates_array[] = date("Y-m-d",$c);
192
+
193
+ // Make sure counts array is in order and includes zero click days
194
+ foreach($dates_array as $date_str) {
195
+ if(isset($temp_array[$date_str]))
196
+ $counts_array[$date_str] = $temp_array[$date_str];
197
+ else
198
+ $counts_array[$date_str] = 0;
199
+ }
200
+
201
+ return $counts_array;
202
+ }
203
+
204
+ public function setupClickLineGraph($start_timestamp, $end_timestamp, $link_id = "all", $type = "all", $group = '', $title_only = false) {
205
+ global $wpdb, $prli_utils, $prli_link, $prli_group;
206
+
207
+ if(!empty($group)) {
208
+ $link_slug = sprintf(__("group: '%s'", 'pretty-link'),$wpdb->get_var($wpdb->prepare("SELECT name FROM {$prli_group->table_name} WHERE id = %d", $group)));
209
+ }
210
+ else if($link_id == 'all') {
211
+ $link_slug = __('all links', 'pretty-link');
212
+ }
213
+ else {
214
+ $link_slug = "'/".$wpdb->get_var($wpdb->prepare("SELECT slug FROM {$prli_link->table_name} WHERE id = %d", $link_id))."'";
215
+ }
216
+
217
+ if($type == "all") {
218
+ $type_string = __('All clicks', 'pretty-link');
219
+ }
220
+ else {
221
+ $type_string = __('Unique hits', 'pretty-link');
222
+ }
223
+
224
+ if($title_only) {
225
+ return __('Pretty Link:', 'pretty-link').' '.$type_string.' '.__('on', 'pretty-link').' '.$link_slug.' '.__('between', 'pretty-link').' '.date("Y-n-j", $start_timestamp).' '.__('and', 'pretty-link').' '.date("Y-n-j", $end_timestamp);
226
+ }
227
+
228
+ $dates_array = $this->get_counts_by_days($start_timestamp, $end_timestamp,$link_id, $type,$group);
229
+
230
+ $chart_data = array('cols' => array(array("label" => __('Date', 'pretty-link'), 'type' => 'string'), array("label" => __('Clicks', 'pretty-link'), 'type' => 'number')));
231
+
232
+ foreach($dates_array as $key => $value) {
233
+ $chart_data['rows'][] = array('c' => array(array('v' => $key, 'f' => null), array('v' => (int)$value, 'f' => null)));
234
+ }
235
+
236
+ return json_encode($chart_data);
237
+ }
238
+
239
+ // Set defaults and grab get or post of each possible param
240
+ public function get_params_array() {
241
+ $values = array(
242
+ 'paged' => (isset($_GET['paged'])?$_GET['paged']:(isset($_POST['paged'])?$_POST['paged']:1)),
243
+ 'l' => (isset($_GET['l'])?(int)$_GET['l']:(isset($_POST['l'])?(int)$_POST['l']:'all')),
244
+ 'group' => (isset($_GET['group'])?$_GET['group']:(isset($_POST['group'])?$_POST['group']:'')),
245
+ 'ip' => (isset($_GET['ip'])?$_GET['ip']:(isset($_POST['ip'])?$_POST['ip']:'')),
246
+ 'vuid' => (isset($_GET['vuid'])?$_GET['vuid']:(isset($_POST['vuid'])?$_POST['vuid']:'')),
247
+ 'sdate' => (isset($_GET['sdate'])?$_GET['sdate']:(isset($_POST['sdate'])?$_POST['sdate']:'')),
248
+ 'edate' => (isset($_GET['edate'])?$_GET['edate']:(isset($_POST['edate'])?$_POST['edate']:'')),
249
+ 'type' => (isset($_GET['type'])?$_GET['type']:(isset($_POST['type'])?$_POST['type']:'all')),
250
+ 'search' => (isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:'')),
251
+ 'sort' => (isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:'')),
252
+ 'sdir' => (isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))
253
+ );
254
+
255
+ return $values;
256
+ }
257
+
258
+ }
app/models/PrliDb.php ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ class PrliDb {
5
+ public $groups, $clicks, $links, $linkmeta;
6
+
7
+ public function __construct() {
8
+ global $wpdb;
9
+
10
+ $this->groups = "{$wpdb->prefix}prli_groups";
11
+ $this->clicks = "{$wpdb->prefix}prli_clicks";
12
+ $this->links = "{$wpdb->prefix}prli_links";
13
+ $this->linkmeta = "{$wpdb->prefix}prli_link_metas";
14
+ }
15
+
16
+ public function should_install() {
17
+ global $prli_db_version;
18
+ $old_db_version = get_option('prli_db_version');
19
+
20
+ if($prli_db_version != $old_db_version) { return true; }
21
+
22
+ return false;
23
+ }
24
+
25
+ /********* INSTALL PLUGIN ***********/
26
+ public function prli_install() {
27
+ global $wpdb, $prli_utils, $plp_update, $prli_db_version;
28
+
29
+ // This was introduced in WordPress 3.5
30
+ // $charset_collate = $wpdb->get_charset_collate(); //This doesn't work for most non english setups
31
+ $charset_collate = "";
32
+ $collation = $wpdb->get_row("SHOW FULL COLUMNS FROM {$wpdb->posts} WHERE field = 'post_content'");
33
+
34
+ if(isset($collation->Collation)) {
35
+ $charset = explode('_', $collation->Collation);
36
+
37
+ if(is_array($charset) && count($charset) > 1) {
38
+ $charset = $charset[0]; //Get the charset from the collation
39
+ $charset_collate = "DEFAULT CHARACTER SET {$charset} COLLATE {$collation->Collation}";
40
+ }
41
+ }
42
+
43
+ //Fine we'll try it your way this time
44
+ if(empty($charset_collate)) { $charset_collate = $wpdb->get_charset_collate(); }
45
+
46
+ $prli_utils->migrate_before_db_upgrade();
47
+
48
+ require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
49
+
50
+ /* Create/Upgrade Clicks (Clicks) Table */
51
+ $sql = "CREATE TABLE {$this->clicks} (
52
+ id int(11) NOT NULL auto_increment,
53
+ ip varchar(255) default NULL,
54
+ browser varchar(255) default NULL,
55
+ btype varchar(255) default NULL,
56
+ bversion varchar(255) default NULL,
57
+ os varchar(255) default NULL,
58
+ referer varchar(255) default NULL,
59
+ host varchar(255) default NULL,
60
+ uri varchar(255) default NULL,
61
+ robot tinyint default 0,
62
+ first_click tinyint default 0,
63
+ created_at datetime NOT NULL,
64
+ link_id int(11) default NULL,
65
+ vuid varchar(25) default NULL,
66
+ PRIMARY KEY (id),
67
+ KEY link_id (link_id),
68
+ KEY ip (ip),
69
+ KEY browser (browser),
70
+ KEY btype (btype),
71
+ KEY bversion (bversion),
72
+ KEY os (os),
73
+ KEY referer (referer),
74
+ KEY host (host),
75
+ KEY uri (uri),
76
+ KEY robot (robot),
77
+ KEY first_click (first_click),
78
+ KEY vuid (vuid)".
79
+ // We won't worry about this constraint for now.
80
+ //CONSTRAINT ".$clicks_table."_ibfk_1 FOREIGN KEY (link_id) REFERENCES $pretty_links_table (id)
81
+ ") {$charset_collate};";
82
+
83
+ dbDelta($sql);
84
+
85
+ /* Create/Upgrade Pretty Links Table */
86
+ $sql = "CREATE TABLE {$this->links} (
87
+ id int(11) NOT NULL auto_increment,
88
+ name varchar(255) default NULL,
89
+ description text default NULL,
90
+ url text default NULL,
91
+ slug varchar(255) default NULL,
92
+ nofollow tinyint(1) default 0,
93
+ track_me tinyint(1) default 1,
94
+ param_forwarding varchar(255) default NULL,
95
+ param_struct varchar(255) default NULL,
96
+ redirect_type varchar(255) default '307',
97
+ created_at datetime NOT NULL,
98
+ updated_at datetime default NULL,
99
+ group_id int(11) default NULL,
100
+ PRIMARY KEY (id),
101
+ KEY group_id (group_id),
102
+ KEY name (name),
103
+ KEY nofollow (nofollow),
104
+ KEY track_me (track_me),
105
+ KEY param_forwarding (param_forwarding),
106
+ KEY param_struct (param_struct),
107
+ KEY redirect_type (redirect_type),
108
+ KEY slug (slug),
109
+ KEY created_at (created_at),
110
+ KEY updated_at (updated_at)
111
+ ) {$charset_collate};";
112
+
113
+ dbDelta($sql);
114
+
115
+ /* Create/Upgrade Groups Table */
116
+ $sql = "CREATE TABLE {$this->groups} (
117
+ id int(11) NOT NULL auto_increment,
118
+ name varchar(255) default NULL,
119
+ description text default NULL,
120
+ created_at datetime NOT NULL,
121
+ PRIMARY KEY (id),
122
+ KEY name (name)
123
+ ) {$charset_collate};";
124
+
125
+ dbDelta($sql);
126
+
127
+ /* Create/Upgrade Groups Table */
128
+ $sql = "CREATE TABLE {$this->linkmeta} (
129
+ id int(11) NOT NULL auto_increment,
130
+ meta_key varchar(255) default NULL,
131
+ meta_value longtext default NULL,
132
+ link_id int(11) NOT NULL,
133
+ created_at datetime NOT NULL,
134
+ PRIMARY KEY (id),
135
+ KEY meta_key (meta_key),
136
+ KEY link_id (link_id)
137
+ ) {$charset_collate};";
138
+
139
+ dbDelta($sql);
140
+
141
+ $prli_utils->migrate_after_db_upgrade();
142
+
143
+ // If there are any post metas with a post_id of 0 get rid of them...
144
+ $prli_utils->clear_unknown_post_metas();
145
+
146
+ /***** SAVE OPTIONS *****/
147
+ $prli_options = PrliOptions::get_options();
148
+ $prli_options->store();
149
+
150
+ /***** SAVE DB VERSION *****/
151
+ update_option('prli_db_version', $prli_db_version);
152
+ }
153
+ }
{classes → app}/models/PrliGroup.php RENAMED
@@ -6,41 +6,41 @@ class PrliGroup
6
  {
7
  var $table_name;
8
 
9
- function __construct()
10
  {
11
  global $wpdb;
12
  $this->table_name = "{$wpdb->prefix}prli_groups";
13
  }
14
 
15
- function create( $values )
16
  {
17
  global $wpdb;
18
 
19
  $query = "INSERT INTO {$this->table_name} (name,description,created_at) VALUES (%s, %s, NOW())";
20
- $query = $wpdb->prepare( $query, esc_html($values['name']), esc_html($values['description']) );
21
  $query_results = $wpdb->query($query);
22
  return $wpdb->insert_id;
23
  }
24
 
25
- function update( $id, $values )
26
  {
27
  global $wpdb;
28
 
29
- $query = 'UPDATE ' . $this->table_name .
30
- ' SET name=\'' . esc_html($values['name']) . '\', ' .
31
- ' description=\'' . esc_html($values['description']) . '\' ' .
32
  ' WHERE id='.$id;
33
  $query_results = $wpdb->query($query);
34
  return $query_results;
35
  }
36
 
37
- function destroy( $id )
38
  {
39
- require_once(PRLI_MODELS_PATH.'/models.inc.php');
40
  global $wpdb, $prli_link;
41
 
42
  // 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);
@@ -49,7 +49,7 @@ class PrliGroup
49
  return $wpdb->query($destroy);
50
  }
51
 
52
- function getOne( $id, $include_stats = false )
53
  {
54
  global $wpdb, $prli_link, $prli_click;
55
 
@@ -60,7 +60,7 @@ class PrliGroup
60
  return $wpdb->get_row($query);
61
  }
62
 
63
- function getAll( $where = '', $order_by = '', $return_type = OBJECT, $include_stats = false )
64
  {
65
  global $wpdb, $prli_utils, $prli_link, $prli_click;
66
 
@@ -72,19 +72,19 @@ class PrliGroup
72
  }
73
 
74
  // Pagination Methods
75
- function getRecordCount($where="")
76
  {
77
  global $wpdb, $prli_utils;
78
  $query = 'SELECT COUNT(*) FROM ' . $this->table_name . $prli_utils->prepend_and_or_where(' WHERE', $where);
79
  return $wpdb->get_var($query);
80
  }
81
 
82
- function getPageCount($p_size, $where="")
83
  {
84
  return ceil((int)$this->getRecordCount($where) / (int)$p_size);
85
  }
86
 
87
- function getPage($current_p,$p_size, $where = "", $order_by = '')
88
  {
89
  global $wpdb, $prli_link, $prli_utils, $prli_click;
90
  $end_index = $current_p * $p_size;
@@ -95,7 +95,7 @@ class PrliGroup
95
  }
96
 
97
  // Set defaults and grab get or post of each possible param
98
- function get_params_array()
99
  {
100
  $values = array(
101
  'action' => (isset($_GET['action'])?$_GET['action']:(isset($_POST['action'])?$_POST['action']:'list')),
@@ -110,7 +110,7 @@ class PrliGroup
110
  return $values;
111
  }
112
 
113
- function validate( $values )
114
  {
115
  global $wpdb, $prli_utils;
116
 
6
  {
7
  var $table_name;
8
 
9
+ public function __construct()
10
  {
11
  global $wpdb;
12
  $this->table_name = "{$wpdb->prefix}prli_groups";
13
  }
14
 
15
+ public function create( $values )
16
  {
17
  global $wpdb;
18
 
19
  $query = "INSERT INTO {$this->table_name} (name,description,created_at) VALUES (%s, %s, NOW())";
20
+ $query = $wpdb->prepare( $query, $values['name'], $values['description'] );
21
  $query_results = $wpdb->query($query);
22
  return $wpdb->insert_id;
23
  }
24
 
25
+ public function update( $id, $values )
26
  {
27
  global $wpdb;
28
 
29
+ $query = 'UPDATE ' . $this->table_name .
30
+ ' SET name=\'' . $values['name'] . '\', ' .
31
+ ' description=\'' . $values['description'] . '\' ' .
32
  ' WHERE id='.$id;
33
  $query_results = $wpdb->query($query);
34
  return $query_results;
35
  }
36
 
37
+ public function destroy( $id )
38
  {
39
+ //require_once(PRLI_MODELS_PATH.'/models.inc.php');
40
  global $wpdb, $prli_link;
41
 
42
  // 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);
49
  return $wpdb->query($destroy);
50
  }
51
 
52
+ public function getOne( $id, $include_stats = false )
53
  {
54
  global $wpdb, $prli_link, $prli_click;
55
 
60
  return $wpdb->get_row($query);
61
  }
62
 
63
+ public function getAll( $where = '', $order_by = '', $return_type = OBJECT, $include_stats = false )
64
  {
65
  global $wpdb, $prli_utils, $prli_link, $prli_click;
66
 
72
  }
73
 
74
  // Pagination Methods
75
+ public function getRecordCount($where="")
76
  {
77
  global $wpdb, $prli_utils;
78
  $query = 'SELECT COUNT(*) FROM ' . $this->table_name . $prli_utils->prepend_and_or_where(' WHERE', $where);
79
  return $wpdb->get_var($query);
80
  }
81
 
82
+ public function getPageCount($p_size, $where="")
83
  {
84
  return ceil((int)$this->getRecordCount($where) / (int)$p_size);
85
  }
86
 
87
+ public function getPage($current_p,$p_size, $where = "", $order_by = '')
88
  {
89
  global $wpdb, $prli_link, $prli_utils, $prli_click;
90
  $end_index = $current_p * $p_size;
95
  }
96
 
97
  // Set defaults and grab get or post of each possible param
98
+ public function get_params_array()
99
  {
100
  $values = array(
101
  'action' => (isset($_GET['action'])?$_GET['action']:(isset($_POST['action'])?$_POST['action']:'list')),
110
  return $values;
111
  }
112
 
113
+ public function validate( $values )
114
  {
115
  global $wpdb, $prli_utils;
116
 
{classes → app}/models/PrliLink.php RENAMED
@@ -1,157 +1,188 @@
1
  <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
 
5
- class PrliLink
6
- {
7
  public $table_name;
8
 
9
- public function __construct()
10
- {
11
  global $wpdb;
12
  $this->table_name = "{$wpdb->prefix}prli_links";
13
  }
14
 
15
- public function create( $values )
16
- {
17
- global $wpdb;
 
18
 
19
- if($values['redirect_type'] == 'pixel')
20
  $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']);
21
- else
 
22
  $values['name'] = (!empty($values['name'])?$values['name']:PrliUtils::get_page_title($values['url'],$values['slug']));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
- $query_str = "INSERT INTO {$this->table_name} " .
25
- '(url,'.
26
- 'slug,'.
27
- 'name,'.
28
- 'param_forwarding,'.
29
- 'param_struct,'.
30
- 'redirect_type,'.
31
- 'description,'.
32
- 'track_me,'.
33
- 'nofollow,'.
34
- 'group_id,'.
35
- 'created_at) ' .
36
- 'VALUES (%s,%s,%s,%s,%s,%s,%s,%d,%d,%d,NOW())';
37
-
38
- $query = $wpdb->prepare( $query_str,
39
- $values['url'],
40
- $values['slug'],
41
- esc_html($values['name']),
42
- $values['param_forwarding'],
43
- $values['param_struct'],
44
- $values['redirect_type'],
45
- esc_html($values['description']),
46
- (int)isset($values['track_me']),
47
- (int)isset($values['nofollow']),
48
- (isset($values['group_id'])?(int)$values['group_id']:'NULL') );
49
  $query_results = $wpdb->query($query);
50
 
51
- if($query_results)
52
- $link_id = $wpdb->insert_id;
53
- else
54
- $link_id = false;
 
 
55
 
56
  do_action('prli-create-link', $link_id, $values);
57
 
58
  return $link_id;
59
  }
60
 
61
- public function update( $id, $values )
62
- {
63
  global $wpdb;
64
 
65
- if($values['redirect_type'] == 'pixel')
 
 
66
  $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']);
67
- else
 
68
  $values['name'] = (!empty($values['name'])?$values['name']:PrliUtils::get_page_title($values['url'],$values['slug']));
 
69
 
70
- $query_str = "UPDATE {$this->table_name} " .
71
- 'SET url=%s, ' .
72
- 'slug=%s, ' .
73
- 'name=%s, ' .
74
- 'param_forwarding=%s, ' .
75
- 'param_struct=%s, ' .
76
- 'redirect_type=%s, ' .
77
- 'description=%s, ' .
78
- 'track_me=%d, ' .
79
- 'nofollow=%d, ' .
80
- 'group_id=%d ' .
81
- ' WHERE id=%d';
82
-
83
- $query = $wpdb->prepare( $query_str,
84
- isset($values['url'])?$values['url']:'',
85
- isset($values['slug'])?$values['slug']:'',
86
- isset($values['name'])?esc_html($values['name']):'',
87
- isset($values['param_forwarding'])?$values['param_forwarding']:'',
88
- isset($values['param_struct'])?$values['param_struct']:'',
89
- isset($values['redirect_type'])?$values['redirect_type']:'',
90
- isset($values['description'])?esc_html($values['description']):'',
91
- (int)isset($values['track_me']),
92
- (int)isset($values['nofollow']),
93
- (isset($values['group_id'])?(int)$values['group_id']:'NULL'),
94
- $id );
 
 
 
 
 
95
 
96
  $query_results = $wpdb->query($query);
 
97
  return $query_results;
98
  }
99
 
100
- public function bulk_update( $ids, $values ) {
101
- if( !empty($ids) and is_array($values) and !empty($values) ) {
102
  global $wpdb;
103
- $query = "UPDATE {$this->table_name} SET ";
104
-
105
- $link_columns = array( 'name',
106
- 'description',
107
- 'url',
108
- 'slug',
109
- 'nofollow',
110
- 'track_me',
111
- 'param_forwarding',
112
- 'param_struct',
113
- 'redirect_type',
114
- 'group_id' );
115
-
116
- $sets = array();
 
 
 
 
117
  foreach($values as $lnkkey => $lnkval) {
118
  // make sure this is an option contained in the links table
119
  if(in_array($lnkkey, $link_columns)) {
120
  // check to see if this is a checkbox
121
- if(in_array(strtolower($lnkval), array('on','off')))
122
- $sets[] = $wpdb->prepare("{$lnkkey}=%d", (strtolower($lnkval)=='on'));
123
- else
124
- $sets[] = $wpdb->prepare("{$lnkkey}=%s", $lnkval);
 
 
125
  }
126
  }
127
 
128
- $query .= implode(',', $sets);
129
-
130
- if(preg_match('/,/',$ids))
 
 
 
131
  $query .= " WHERE id IN ({$ids})";
132
- else
 
133
  $query .= $wpdb->prepare(" WHERE id=%d", $ids);
134
-
 
135
  $query_results = $wpdb->query($query);
 
136
  return $query_results;
137
  }
138
-
139
  return false;
140
  }
141
 
142
- public function update_group( $id, $value, $group_id )
143
- {
144
  global $wpdb;
145
- $query = 'UPDATE ' . $this->table_name .
146
- ' SET group_id=' . (isset($value)?$group_id:'NULL') .
 
147
  ' WHERE id='.$id;
148
  $query_results = $wpdb->query($query);
 
149
  return $query_results;
150
  }
151
 
152
- public function destroy( $id )
153
- {
154
- require_once(PRLI_MODELS_PATH.'/models.inc.php');
155
  global $wpdb, $prli_click, $prli_link_meta;
156
 
157
  do_action('prli_delete_link', $id);
@@ -161,92 +192,124 @@ class PrliLink
161
 
162
  $wpdb->query($metas);
163
  $wpdb->query($reset);
 
164
  return $wpdb->query($destroy);
165
  }
166
 
167
- public function reset( $id )
168
- {
169
- require_once(PRLI_MODELS_PATH.'/models.inc.php');
170
  global $wpdb, $prli_click, $prli_link_meta;
171
 
172
  $prli_link_meta->delete_link_meta($id, 'static-clicks');
173
  $prli_link_meta->delete_link_meta($id, 'static-uniques');
174
 
175
  $reset = $wpdb->prepare("DELETE FROM {$prli_click->table_name} WHERE link_id=%d", $id);
 
176
  return $wpdb->query($reset);
177
  }
178
 
179
- public function getOneFromSlug( $slug, $return_type = OBJECT, $include_stats = false )
180
- {
181
  global $wpdb, $prli_click, $prli_options, $prli_link_meta;
182
- if($include_stats)
183
- {
 
 
 
 
 
 
 
 
184
  $query = 'SELECT li.*, ';
185
- if($prli_options->extended_tracking != 'count')
186
- {
187
  $query .= '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
188
  'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .
189
  '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
190
  'WHERE cl.link_id = li.id ' .
191
  'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques ';
192
  }
193
- else
194
- {
195
  $query .= '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .
196
  'WHERE lm.meta_key="static-clicks" AND lm.link_id=li.id LIMIT 1) as clicks, ' .
197
  '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .
198
  'WHERE lm.meta_key="static-uniques" AND lm.link_id=li.id LIMIT 1) as uniques ';
199
  }
 
200
  $query .= "FROM {$this->table_name} li " .
201
  'WHERE slug=%s';
202
  }
203
- else
204
  $query = "SELECT * FROM {$this->table_name} WHERE slug=%s";
 
205
 
206
- $query = $wpdb->prepare($query, $slug);
207
- $link = $wpdb->get_row($query, $return_type);
208
 
209
- if( $include_stats and $link and $prli_options->extended_tracking == 'count' )
210
- {
211
  $link->clicks = $prli_link_meta->get_link_meta($link->id,'static-clicks',true);
212
  $link->uniques = $prli_link_meta->get_link_meta($link->id,'static-uniques',true);
213
  }
214
 
 
 
 
 
 
215
  return $link;
216
  }
217
 
218
- public function getOne( $id, $return_type = OBJECT, $include_stats = false )
219
- {
220
  global $wpdb, $prli_click, $prli_link_meta, $prli_options;
221
- if( !isset($id) or empty($id) )
222
- return false;
223
 
224
- if($include_stats)
225
- {
 
 
 
 
 
 
 
 
 
226
  $query = 'SELECT li.*, ';
227
- if($prli_options->extended_tracking != 'count')
228
- {
229
  $query .= '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
230
  'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .
231
  '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
232
  'WHERE cl.link_id = li.id ' .
233
  'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques ';
234
  }
235
- else
236
- {
237
  $query .= '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .
238
  'WHERE lm.meta_key="static-clicks" AND lm.link_id=li.id LIMIT 1) as clicks, ' .
239
  '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .
240
  'WHERE lm.meta_key="static-uniques" AND lm.link_id=li.id LIMIT 1) as uniques ';
241
  }
 
242
  $query .= 'FROM ' . $this->table_name . ' li ' .
243
  'WHERE id=%d';
244
  }
245
- else
246
  $query = "SELECT * FROM {$this->table_name} WHERE id=%d";
 
247
 
248
- $query = $wpdb->prepare($query, $id);
249
- return $wpdb->get_row($query, $return_type);
 
 
 
 
 
 
 
 
 
 
 
 
250
  }
251
 
252
  public function find_first_target_url($target_url)
@@ -286,13 +349,13 @@ class PrliLink
286
 
287
  // Resolve WP installs in sub-directories
288
  preg_match('#^(https?://.*?)(/.*)$#', $prli_blogurl, $subdir);
289
-
290
  $struct = PrliUtils::get_permalink_pre_slug_regex();
291
 
292
  $subdir_str = (isset($subdir[2])?$subdir[2]:'');
293
 
294
  $match_str = '#^'.$subdir_str.'('.$struct.')([^\?]*?)([\?].*?)?$#';
295
-
296
  if(preg_match($match_str, $uri, $match_val))
297
  {
298
  // Match longest slug -- this is the most common
@@ -305,8 +368,8 @@ class PrliLink
305
 
306
  // cycle through the links (maximum depth 25 folders so we don't get out
307
  // of control -- that should be enough eh?) and trim the link down each time
308
- for( $i=0; ($i < 25) and
309
- $matched_link and
310
  !empty($matched_link) and
311
  $matched_link != $match_val[2]; $i++ )
312
  {
@@ -321,21 +384,28 @@ class PrliLink
321
  }
322
  }
323
  }
324
-
325
  return false;
326
  }
327
 
328
  public function is_pretty_link_slug($slug)
329
  {
330
- return apply_filters('prli-check-if-slug', $this->getOneFromSlug( urldecode($slug) ), urldecode($slug));
331
  }
332
 
333
- public function get_link_min( $id, $return_type = OBJECT )
334
- {
335
- global $wpdb;
336
  $query_str = "SELECT * FROM {$this->table_name} WHERE id=%d";
337
  $query = $wpdb->prepare($query_str, $id);
338
- return $wpdb->get_row($query, $return_type);
 
 
 
 
 
 
 
 
339
  }
340
 
341
  public function getAll($where = '', $order_by = '', $return_type = OBJECT, $include_stats = false)
@@ -362,16 +432,16 @@ class PrliLink
362
  }
363
  $query .= 'gr.name as group_name ' .
364
  'FROM '. $this->table_name . ' li ' .
365
- 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
366
  $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by;
367
  }
368
  else
369
  {
370
- $query = "SELECT li.*, gr.name as group_name FROM {$this->table_name} li " .
371
- 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
372
  $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by;
373
  }
374
-
375
  return $wpdb->get_results($query, $return_type);
376
  }
377
 
@@ -411,47 +481,52 @@ class PrliLink
411
  }
412
  $query .= 'gr.name as group_name ' .
413
  'FROM ' . $this->table_name . ' li ' .
414
- 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
415
- $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by . ' ' .
416
  'LIMIT ' . $start_index . ',' . $p_size . ';';
417
  $results = $wpdb->get_results($query, $return_type);
418
  return $results;
419
  }
420
 
421
- public function generateValidSlug($num_chars = 4)
422
- {
423
- global $wpdb;
424
-
425
- $slug = PrliUtils::gen_random_string($num_chars);
 
 
 
 
 
 
 
 
 
426
 
427
  $query = "SELECT slug FROM {$this->table_name}";
428
  $slugs = $wpdb->get_col($query,0);
429
 
430
  // It is highly unlikely that we'll ever see 2 identical random slugs
431
  // but just in case, here's some code to prevent collisions
432
- while( in_array($slug,$slugs) or !PrliUtils::slugIsAvailable($slug) )
433
- $slug = PrliUtils::gen_random_string($num_chars);
434
 
435
- return $slug;
436
  }
437
-
438
  public function get_pretty_link_url($slug)
439
  {
440
  global $prli_blogurl;
441
 
442
  $link = $this->getOneFromSlug($slug);
443
 
444
- if((isset($link->param_forwarding) and $link->param_forwarding == 'custom') and
445
- (isset($link->redirect_type) and $link->redirect_type == 'pixel'))
446
- return "&lt;img src=\"".$prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug . $link->param_struct . "\" width=\"1\" height=\"1\" style=\"display: none\" /&gt;";
447
- else if((!isset($link->param_forwarding) or $link->param_forwarding != 'custom') and
448
- (isset($link->redirect_type) and $link->redirect_type == 'pixel'))
449
- return "&lt;img src=\"".$prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug . "\" width=\"1\" height=\"1\" style=\"display: none\" /&gt;";
450
- else if((isset($link->param_forwarding) and $link->param_forwarding == 'custom') and
451
- (!isset($link->redirect_type) or $link->redirect_type != 'pixel'))
452
- return $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug . $link->param_struct;
453
- else
454
  return $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug;
 
455
  }
456
 
457
  public function validate( $values )
@@ -459,74 +534,95 @@ class PrliLink
459
  global $wpdb, $prli_utils, $prli_blogurl;
460
 
461
  $errors = array();
462
- if( ( $values['url'] == null or $values['url'] == '') and $values['redirect_type'] != 'pixel' )
463
  $errors[] = __("Target URL can't be blank", 'pretty-link');
 
464
 
465
- if( $values['slug'] == null or $values['slug'] == '' )
466
  $errors[] = __("Pretty Link can't be blank", 'pretty-link');
 
467
 
468
- if( $values['url'] == $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri().$values['slug'] )
469
  $errors[] = __("Target URL must be different than the Pretty Link", 'pretty-link');
 
470
 
471
- if( !empty($values['url']) and
472
- !preg_match('/^http.?:\/\/.*\..*$/', $values['url'] ) and
473
- !preg_match('!^(http|https)://(localhost|127\.0\.0\.1)(:\d+)?(/[\w- ./?%&=]*)?!', $values['url'] ) )
474
  $errors[] = __("Link URL must be a correctly formatted url", 'pretty-link');
 
475
 
476
- if( preg_match('/^[\?\&\#]+$/', $values['slug'] ) )
477
  $errors[] = __("Pretty Link slugs must not contain question marks, ampersands or number signs.", 'pretty-link');
 
478
 
479
- if( preg_match('#/$#', $values['slug']) )
480
  $errors[] = __("Pretty Link slugs must not end with a slash (\"/\")", 'pretty-link');
 
481
 
482
  $id = isset($values['id'])?$values['id']:null;
483
- if( !$prli_utils->slugIsAvailable($values['slug'],$id) )
484
  $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');
485
-
486
- if( isset($values['param_forwarding']) and $values['param_forwarding'] == 'custom' and empty($values['param_struct']) )
487
- $errors[] = __("If Custom Parameter Forwarding has been selected then you must specify a forwarding format.", 'pretty-link');
488
-
489
- if( isset($values['param_forwarding']) and $values['param_forwarding'] == 'custom' and !preg_match('#%.*?%#', $values['param_struct']) )
490
- $errors[] = __("Your parameter forwarding must have at least one parameter specified in the format ex: <code>/%var1%/%var_two%/%varname3% ...</code>", 'pretty-link');
491
 
492
  return $errors;
493
  }
494
-
 
 
 
 
 
 
 
495
  public function get_target_to_pretty_urls($urls=array(),$create_pretty_links=false) {
496
- global $wpdb, $prli_blogurl;
497
 
498
- if(empty($urls))
499
- return false;
500
 
501
  $decoded_urls = array_map( create_function( '$url', 'return html_entity_decode(urldecode($url));' ), $urls );
502
-
503
- if( count($decoded_urls) > 1 )
504
- $where = "IN (" . implode( ',', array_map( create_function( '$url', 'return "\"{$url}\"";' ), $decoded_urls ) ) . ")";
505
- else
506
- $where = "= '" . html_entity_decode(urldecode($decoded_urls[0])) . "'";
507
 
508
- $query = "SELECT li.url AS target_url, " .
509
- "CONCAT(%s, li.slug) AS pretty_url " .
510
- "FROM {$this->table_name} AS li " .
511
- "WHERE li.url {$where}";
512
 
 
 
 
 
 
513
  $query = $wpdb->prepare($query, $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri());
514
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
515
  $results = (array)$wpdb->get_results($query);
516
-
517
  $prli_lookup = array();
518
  foreach($results as $url_hash) {
519
- if(isset($prli_lookup[$url_hash->target_url]))
520
- $prli_lookup[$url_hash->target_url][] = $url_hash->pretty_url;
521
- else
522
- $prli_lookup[$url_hash->target_url] = array($url_hash->pretty_url);
 
 
523
  }
524
-
525
  if($create_pretty_links) {
526
  foreach($decoded_urls as $url) {
527
  if(!isset($prli_lookup[$url])) {
528
- if( $id = prli_create_pretty_link( $url ) )
529
  $prli_lookup[$url] = array(prli_get_pretty_link_url($id));
 
530
  }
531
  }
532
  }
1
  <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
 
3
 
4
+ class PrliLink {
 
5
  public $table_name;
6
 
7
+ public function __construct() {
 
8
  global $wpdb;
9
  $this->table_name = "{$wpdb->prefix}prli_links";
10
  }
11
 
12
+ public function create( $values ) {
13
+ global $wpdb, $prli_link_meta;
14
+
15
+ $now = date('Y-m-d H:i:s');
16
 
17
+ if($values['redirect_type'] == 'pixel') {
18
  $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']);
19
+ }
20
+ else {
21
  $values['name'] = (!empty($values['name'])?$values['name']:PrliUtils::get_page_title($values['url'],$values['slug']));
22
+ }
23
+
24
+ // We no longer handle this: 'param_struct,'.
25
+ $query_str = "
26
+ INSERT INTO {$this->table_name} (
27
+ url,
28
+ slug,
29
+ name,
30
+ param_forwarding,
31
+ redirect_type,
32
+ description,
33
+ track_me,
34
+ nofollow,
35
+ group_id,
36
+ created_at,
37
+ updated_at
38
+ )
39
+ VALUES (%s,%s,%s,%s,%s,%s,%d,%d,%d,%s,%s)
40
+ ";
41
+
42
+ $query = $wpdb->prepare(
43
+ $query_str,
44
+ $values['url'],
45
+ $values['slug'],
46
+ $values['name'],
47
+ (isset($values['param_forwarding']) && !empty($values['param_forwarding']))?1:0,
48
+ // We no longer handle this: $values['param_struct'],
49
+ $values['redirect_type'],
50
+ $values['description'],
51
+ (isset($values['track_me']) && !empty($values['track_me']))?1:0,
52
+ (isset($values['nofollow']) && !empty($values['nofollow']))?1:0,
53
+ (isset($values['group_id'])?(int)$values['group_id']:'NULL'),
54
+ $now, $now
55
+ );
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  $query_results = $wpdb->query($query);
58
 
59
+ $link_id = ($query_results ? $wpdb->insert_id : false);
60
+
61
+ //If JS or MetaRefresh are the default types we need to set this to 0 or the redirects will fail
62
+ if($link_id) {
63
+ $prli_link_meta->update_link_meta($link_id, 'delay', 0);
64
+ }
65
 
66
  do_action('prli-create-link', $link_id, $values);
67
 
68
  return $link_id;
69
  }
70
 
71
+ public function update( $id, $values ) {
 
72
  global $wpdb;
73
 
74
+ $now = date('Y-m-d H:i:s');
75
+
76
+ if($values['redirect_type'] == 'pixel') {
77
  $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']);
78
+ }
79
+ else {
80
  $values['name'] = (!empty($values['name'])?$values['name']:PrliUtils::get_page_title($values['url'],$values['slug']));
81
+ }
82
 
83
+ // 'param_struct=%s, ' .
84
+ $query_str = "
85
+ UPDATE {$this->table_name}
86
+ SET url=%s,
87
+ slug=%s,
88
+ name=%s,
89
+ param_forwarding=%s,
90
+ redirect_type=%s,
91
+ description=%s,
92
+ track_me=%d,
93
+ nofollow=%d,
94
+ group_id=%d,
95
+ updated_at=%s
96
+ WHERE id=%d
97
+ ";
98
+
99
+ // isset($values['param_struct'])?$values['param_struct']:'',
100
+ $query = $wpdb->prepare(
101
+ $query_str,
102
+ isset($values['url'])?$values['url']:'',
103
+ isset($values['slug'])?$values['slug']:'',
104
+ isset($values['name'])?$values['name']:'',
105
+ (isset($values['param_forwarding']) && !empty($values['param_forwarding']))?1:0,
106
+ isset($values['redirect_type'])?$values['redirect_type']:'',
107
+ isset($values['description'])?$values['description']:'',
108
+ (isset($values['track_me']) && !empty($values['track_me']))?1:0,
109
+ (isset($values['nofollow']) && !empty($values['nofollow']))?1:0,
110
+ (isset($values['group_id'])?(int)$values['group_id']:'NULL'),
111
+ $now, $id
112
+ );
113
 
114
  $query_results = $wpdb->query($query);
115
+
116
  return $query_results;
117
  }
118
 
119
+ public function bulk_update($ids, $values) {
120
+ if(!empty($ids) && is_array($values) && !empty($values)) {
121
  global $wpdb;
122
+
123
+ $now = date('Y-m-d H:i:s');
124
+ $sets = array();
125
+ $query = $wpdb->prepare("UPDATE {$this->table_name} SET updated_at=%s ", $now);
126
+
127
+ $link_columns = array(
128
+ 'name',
129
+ 'description',
130
+ 'url',
131
+ 'slug',
132
+ 'nofollow',
133
+ 'track_me',
134
+ 'param_forwarding',
135
+ 'param_struct',
136
+ 'redirect_type',
137
+ 'group_id'
138
+ );
139
+
140
  foreach($values as $lnkkey => $lnkval) {
141
  // make sure this is an option contained in the links table
142
  if(in_array($lnkkey, $link_columns)) {
143
  // check to see if this is a checkbox
144
+ if(in_array(strtolower($lnkval), array('on','off'))) {
145
+ $sets[] = $wpdb->prepare("{$lnkkey}=%d", (strtolower($lnkval)=='on'));
146
+ }
147
+ else {
148
+ $sets[] = $wpdb->prepare("{$lnkkey}=%s", $lnkval);
149
+ }
150
  }
151
  }
152
 
153
+ if(!empty($sets)) {
154
+ $query .= ', ';
155
+ $query .= implode(',', $sets);
156
+ }
157
+
158
+ if(preg_match('/,/',$ids)) {
159
  $query .= " WHERE id IN ({$ids})";
160
+ }
161
+ else {
162
  $query .= $wpdb->prepare(" WHERE id=%d", $ids);
163
+ }
164
+
165
  $query_results = $wpdb->query($query);
166
+
167
  return $query_results;
168
  }
169
+
170
  return false;
171
  }
172
 
173
+ public function update_group($id, $value, $group_id) {
 
174
  global $wpdb;
175
+
176
+ $query = 'UPDATE ' . $this->table_name .
177
+ ' SET group_id=' . (isset($value)?$group_id:'NULL') .
178
  ' WHERE id='.$id;
179
  $query_results = $wpdb->query($query);
180
+
181
  return $query_results;
182
  }
183
 
184
+ public function destroy($id) {
185
+ //require_once(PRLI_MODELS_PATH.'/models.inc.php');
 
186
  global $wpdb, $prli_click, $prli_link_meta;
187
 
188
  do_action('prli_delete_link', $id);
192
 
193
  $wpdb->query($metas);
194
  $wpdb->query($reset);
195
+
196
  return $wpdb->query($destroy);
197
  }
198
 
199
+ public function reset($id) {
200
+ //require_once(PRLI_MODELS_PATH.'/models.inc.php');
 
201
  global $wpdb, $prli_click, $prli_link_meta;
202
 
203
  $prli_link_meta->delete_link_meta($id, 'static-clicks');
204
  $prli_link_meta->delete_link_meta($id, 'static-uniques');
205
 
206
  $reset = $wpdb->prepare("DELETE FROM {$prli_click->table_name} WHERE link_id=%d", $id);
207
+
208
  return $wpdb->query($reset);
209
  }
210
 
211
+ public function getOneFromSlug( $slug, $return_type = OBJECT, $include_stats = false ) {
 
212
  global $wpdb, $prli_click, $prli_options, $prli_link_meta;
213
+
214
+ static $cached;
215
+
216
+ if(!isset($cached)) { $cached = array(); }
217
+
218
+ if(!$include_stats && isset($cached[$slug])) {
219
+ return $cached[$slug];
220
+ }
221
+
222
+ if($include_stats) {
223
  $query = 'SELECT li.*, ';
224
+
225
+ if($prli_options->extended_tracking != 'count') {
226
  $query .= '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
227
  'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .
228
  '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
229
  'WHERE cl.link_id = li.id ' .
230
  'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques ';
231
  }
232
+ else {
 
233
  $query .= '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .
234
  'WHERE lm.meta_key="static-clicks" AND lm.link_id=li.id LIMIT 1) as clicks, ' .
235
  '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .
236
  'WHERE lm.meta_key="static-uniques" AND lm.link_id=li.id LIMIT 1) as uniques ';
237
  }
238
+
239
  $query .= "FROM {$this->table_name} li " .
240
  'WHERE slug=%s';
241
  }
242
+ else {
243
  $query = "SELECT * FROM {$this->table_name} WHERE slug=%s";
244
+ }
245
 
246
+ $query = $wpdb->prepare($query, $slug);
247
+ $link = $wpdb->get_row($query, $return_type);
248
 
249
+ if($include_stats and $link and $prli_options->extended_tracking == 'count') {
 
250
  $link->clicks = $prli_link_meta->get_link_meta($link->id,'static-clicks',true);
251
  $link->uniques = $prli_link_meta->get_link_meta($link->id,'static-uniques',true);
252
  }
253
 
254
+ //Cache this to prevent multiple queries
255
+ if(!$include_stats) {
256
+ $cached[$slug] = $link;
257
+ }
258
+
259
  return $link;
260
  }
261
 
262
+ public function getOne( $id, $return_type = OBJECT, $include_stats = false ) {
 
263
  global $wpdb, $prli_click, $prli_link_meta, $prli_options;
 
 
264
 
265
+ if(!isset($id) or empty($id)) { return false; }
266
+
267
+ static $cached;
268
+
269
+ if(!isset($cached)) { $cached = array(); }
270
+
271
+ if(!$include_stats && isset($cached[$id])) {
272
+ return $cached[$id];
273
+ }
274
+
275
+ if($include_stats) {
276
  $query = 'SELECT li.*, ';
277
+
278
+ if($prli_options->extended_tracking != 'count') {
279
  $query .= '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
280
  'WHERE cl.link_id = li.id' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as clicks, ' .
281
  '(SELECT COUNT(*) FROM ' . $prli_click->table_name . ' cl ' .
282
  'WHERE cl.link_id = li.id ' .
283
  'AND cl.first_click <> 0' . $prli_click->get_exclude_where_clause( ' AND' ) . ') as uniques ';
284
  }
285
+ else {
 
286
  $query .= '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .
287
  'WHERE lm.meta_key="static-clicks" AND lm.link_id=li.id LIMIT 1) as clicks, ' .
288
  '(SELECT lm.meta_value FROM ' . $prli_link_meta->table_name . ' lm ' .
289
  'WHERE lm.meta_key="static-uniques" AND lm.link_id=li.id LIMIT 1) as uniques ';
290
  }
291
+
292
  $query .= 'FROM ' . $this->table_name . ' li ' .
293
  'WHERE id=%d';
294
  }
295
+ else {
296
  $query = "SELECT * FROM {$this->table_name} WHERE id=%d";
297
+ }
298
 
299
+ $query = $wpdb->prepare($query, $id);
300
+ $link = $wpdb->get_row($query, $return_type);
301
+
302
+ if($include_stats and $link and $prli_options->extended_tracking == 'count') {
303
+ $link->clicks = $prli_link_meta->get_link_meta($link->id,'static-clicks',true);
304
+ $link->uniques = $prli_link_meta->get_link_meta($link->id,'static-uniques',true);
305
+ }
306
+
307
+ //Cache this to prevent multiple queries
308
+ if(!$include_stats) {
309
+ $cached[$id] = $link;
310
+ }
311
+
312
+ return $link;
313
  }
314
 
315
  public function find_first_target_url($target_url)
349
 
350
  // Resolve WP installs in sub-directories
351
  preg_match('#^(https?://.*?)(/.*)$#', $prli_blogurl, $subdir);
352
+
353
  $struct = PrliUtils::get_permalink_pre_slug_regex();
354
 
355
  $subdir_str = (isset($subdir[2])?$subdir[2]:'');
356
 
357
  $match_str = '#^'.$subdir_str.'('.$struct.')([^\?]*?)([\?].*?)?$#';
358
+
359
  if(preg_match($match_str, $uri, $match_val))
360
  {
361
  // Match longest slug -- this is the most common
368
 
369
  // cycle through the links (maximum depth 25 folders so we don't get out
370
  // of control -- that should be enough eh?) and trim the link down each time
371
+ for( $i=0; ($i < 25) and
372
+ $matched_link and
373
  !empty($matched_link) and
374
  $matched_link != $match_val[2]; $i++ )
375
  {
384
  }
385
  }
386
  }
387
+
388
  return false;
389
  }
390
 
391
  public function is_pretty_link_slug($slug)
392
  {
393
+ return apply_filters('prli-check-if-slug', $this->getOneFromSlug( urldecode($slug) ), urldecode($slug));
394
  }
395
 
396
+ public function get_link_min( $id, $return_type = OBJECT ) {
397
+ global $wpdb, $prli_link_meta;
 
398
  $query_str = "SELECT * FROM {$this->table_name} WHERE id=%d";
399
  $query = $wpdb->prepare($query_str, $id);
400
+ $res = $wpdb->get_row($query, $return_type);
401
+
402
+ //Load in some meta data too
403
+ if($res && $return_type == ARRAY_A) {
404
+ $res['delay'] = (int)$prli_link_meta->get_link_meta($id, 'delay', true);
405
+ $res['google_tracking'] = (int)$prli_link_meta->get_link_meta($id, 'google_tracking', true);
406
+ }
407
+
408
+ return $res;
409
  }
410
 
411
  public function getAll($where = '', $order_by = '', $return_type = OBJECT, $include_stats = false)
432
  }
433
  $query .= 'gr.name as group_name ' .
434
  'FROM '. $this->table_name . ' li ' .
435
+ 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
436
  $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by;
437
  }
438
  else
439
  {
440
+ $query = "SELECT li.*, gr.name as group_name FROM {$this->table_name} li " .
441
+ 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
442
  $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by;
443
  }
444
+
445
  return $wpdb->get_results($query, $return_type);
446
  }
447
 
481
  }
482
  $query .= 'gr.name as group_name ' .
483
  'FROM ' . $this->table_name . ' li ' .
484
+ 'LEFT OUTER JOIN ' . $prli_group->table_name . ' gr ON li.group_id=gr.id' .
485
+ $prli_utils->prepend_and_or_where(' WHERE', $where) . $order_by . ' ' .
486
  'LIMIT ' . $start_index . ',' . $p_size . ';';
487
  $results = $wpdb->get_results($query, $return_type);
488
  return $results;
489
  }
490
 
491
+ public function generateValidSlug($num_chars = 4) {
492
+ global $wpdb, $plp_update, $plp_options;
493
+ $slug_prefix = '';
494
+
495
+ //Maybe use a different number of characters?
496
+ if($plp_update->is_installed()) {
497
+ if(!empty($plp_options->base_slug_prefix)) {
498
+ $slug_prefix = $plp_options->base_slug_prefix . '/';
499
+ }
500
+
501
+ $num_chars = $plp_options->num_slug_chars;
502
+ }
503
+
504
+ $slug = $slug_prefix . PrliUtils::gen_random_string($num_chars);
505
 
506
  $query = "SELECT slug FROM {$this->table_name}";
507
  $slugs = $wpdb->get_col($query,0);
508
 
509
  // It is highly unlikely that we'll ever see 2 identical random slugs
510
  // but just in case, here's some code to prevent collisions
511
+ while(in_array($slug, $slugs) or !PrliUtils::slugIsAvailable($slug))
512
+ $slug = $slug_prefix . PrliUtils::gen_random_string($num_chars);
513
 
514
+ return apply_filters('prli-auto-generated-slug', $slug, $slugs, $num_chars);
515
  }
516
+
517
  public function get_pretty_link_url($slug)
518
  {
519
  global $prli_blogurl;
520
 
521
  $link = $this->getOneFromSlug($slug);
522
 
523
+ if( ( !isset($link->param_forwarding) || empty($link->param_forwarding) || $link->param_forwarding=='off' ) &&
524
+ ( isset($link->redirect_type) && $link->redirect_type == 'pixel' ) ) {
525
+ return '&lt;img src="'.$prli_blogurl.PrliUtils::get_permalink_pre_slug_uri().$link->slug.'" width="1" height="1" style="display: none" &gt;';
526
+ }
527
+ else {
 
 
 
 
 
528
  return $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug;
529
+ }
530
  }
531
 
532
  public function validate( $values )
534
  global $wpdb, $prli_utils, $prli_blogurl;
535
 
536
  $errors = array();
537
+ if( empty($values['url']) && $values['redirect_type'] != 'pixel' ) {
538
  $errors[] = __("Target URL can't be blank", 'pretty-link');
539
+ }
540
 
541
+ if( $values['slug'] == null || $values['slug'] == '' ) {
542
  $errors[] = __("Pretty Link can't be blank", 'pretty-link');
543
+ }
544
 
545
+ if( $values['url'] == $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri().$values['slug'] ) {
546
  $errors[] = __("Target URL must be different than the Pretty Link", 'pretty-link');
547
+ }
548
 
549
+ if( !empty($values['url']) && !PrliUtils::is_url($values['url']) ) {
 
 
550
  $errors[] = __("Link URL must be a correctly formatted url", 'pretty-link');
551
+ }
552
 
553
+ if( preg_match('/^[\?\&\#]+$/', $values['slug'] ) ) {
554
  $errors[] = __("Pretty Link slugs must not contain question marks, ampersands or number signs.", 'pretty-link');
555
+ }
556
 
557
+ if( preg_match('#/$#', $values['slug']) ) {
558
  $errors[] = __("Pretty Link slugs must not end with a slash (\"/\")", 'pretty-link');
559
+ }
560
 
561
  $id = isset($values['id'])?$values['id']:null;
562
+ if( !$prli_utils->slugIsAvailable($values['slug'],$id) ) {
563
  $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');
564
+ }
 
 
 
 
 
565
 
566
  return $errors;
567
  }
568
+
569
+ public function get_link_slug($url) {
570
+ global $prli_blogurl;
571
+ $ugh = preg_quote($prli_blogurl.PrliUtils::get_permalink_pre_slug_uri(), '!');
572
+ $mod = preg_replace("!^{$ugh}!", '', $url);
573
+ return "\"{$mod}\"";
574
+ }
575
+
576
  public function get_target_to_pretty_urls($urls=array(),$create_pretty_links=false) {
577
+ global $wpdb, $prli_blogurl;
578
 
579
+ if(empty($urls)) { return false; }
 
580
 
581
  $decoded_urls = array_map( create_function( '$url', 'return html_entity_decode(urldecode($url));' ), $urls );
 
 
 
 
 
582
 
583
+ // Filter out urls that are already Pretty Links
584
+ $where = "IN (" . implode( ',', array_map( array($this, 'get_link_slug'), $decoded_urls ) ) . ")";
 
 
585
 
586
+ $query = "
587
+ SELECT CONCAT(%s, li.slug) AS pretty_url
588
+ FROM {$this->table_name} AS li
589
+ WHERE li.slug {$where}
590
+ ";
591
  $query = $wpdb->prepare($query, $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri());
592
+ $plinks = $wpdb->get_col($query);
593
+
594
+ $decoded_urls = array_diff($decoded_urls, $plinks);
595
+
596
+ if(empty($decoded_urls)) { return false; }
597
+
598
+ $where = "IN (" . implode( ',', array_map( create_function( '$url', 'return "\"{$url}\"";' ), $decoded_urls ) ) . ")";
599
+
600
+ $query = "
601
+ SELECT li.url AS target_url,
602
+ CONCAT(%s, li.slug) AS pretty_url
603
+ FROM {$this->table_name} AS li
604
+ WHERE li.url {$where}
605
+ ";
606
+ $query = $wpdb->prepare($query, $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri());
607
+
608
  $results = (array)$wpdb->get_results($query);
609
+
610
  $prli_lookup = array();
611
  foreach($results as $url_hash) {
612
+ if(isset($prli_lookup[$url_hash->target_url])) {
613
+ $prli_lookup[$url_hash->target_url][] = $url_hash->pretty_url;
614
+ }
615
+ else {
616
+ $prli_lookup[$url_hash->target_url] = array($url_hash->pretty_url);
617
+ }
618
  }
619
+
620
  if($create_pretty_links) {
621
  foreach($decoded_urls as $url) {
622
  if(!isset($prli_lookup[$url])) {
623
+ if( $id = prli_create_pretty_link( $url ) ) {
624
  $prli_lookup[$url] = array(prli_get_pretty_link_url($id));
625
+ }
626
  }
627
  }
628
  }
app/models/PrliLinkMeta.php ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ class PrliLinkMeta {
5
+ var $table_name;
6
+
7
+ public function __construct() {
8
+ global $wpdb;
9
+
10
+ $this->table_name = "{$wpdb->prefix}prli_link_metas";
11
+ }
12
+
13
+ public function get_link_meta($link_id, $meta_key, $return_var = false) {
14
+ global $wpdb;
15
+
16
+ static $cached;
17
+
18
+ if(!isset($cached)) { $cached = array(); }
19
+
20
+ if(isset($cached[$link_id][$meta_key][(int)$return_var])) {
21
+ return $cached[$link_id][$meta_key][(int)$return_var];
22
+ }
23
+
24
+ $query_str = "SELECT meta_value FROM {$this->table_name} WHERE meta_key=%s and link_id=%d";
25
+ $query = $wpdb->prepare($query_str,$meta_key,$link_id);
26
+
27
+ if($return_var) {
28
+ $res = $wpdb->get_var("{$query} LIMIT 1");
29
+ }
30
+ else {
31
+ $res = $wpdb->get_col($query, 0);
32
+ }
33
+
34
+ $cached[$link_id][$meta_key][(int)$return_var] = $res;
35
+
36
+ return $res;
37
+ }
38
+
39
+ public function add_link_meta($link_id, $meta_key, $meta_value) {
40
+ global $wpdb;
41
+
42
+ $query_str = "INSERT INTO {$this->table_name} " .
43
+ '(meta_key,meta_value,link_id,created_at) VALUES (%s,%s,%d,NOW())';
44
+ $query = $wpdb->prepare($query_str, $meta_key, $meta_value, $link_id);
45
+ return $wpdb->query($query);
46
+ }
47
+
48
+ public function update_link_meta($link_id, $meta_key, $meta_values) {
49
+ global $wpdb;
50
+
51
+ $this->delete_link_meta($link_id, $meta_key);
52
+
53
+ if(!is_array($meta_values)) { $meta_values = array($meta_values); }
54
+
55
+ $status = false;
56
+
57
+ foreach($meta_values as $meta_value) {
58
+ $status = $this->add_link_meta($link_id, $meta_key, $meta_value);
59
+ }
60
+
61
+ return $status;
62
+ }
63
+
64
+ public function delete_link_meta($link_id, $meta_key) {
65
+ global $wpdb;
66
+
67
+ $query_str = "DELETE FROM {$this->table_name} " .
68
+ "WHERE meta_key=%s AND link_id=%d";
69
+ $query = $wpdb->prepare($query_str, $meta_key, $link_id);
70
+
71
+ return $wpdb->query($query);
72
+ }
73
+
74
+ public function delete_link_metas($link_id) {
75
+ global $wpdb;
76
+
77
+ $query_str = "DELETE FROM {$this->table_name} WHERE link_id=%d";
78
+ $query = $wpdb->prepare($query_str, $meta_key, $link_id);
79
+
80
+ return $wpdb->query($query);
81
+ }
82
+ } //End class
{classes → app}/models/PrliOptions.php RENAMED
@@ -24,24 +24,23 @@ class PrliOptions
24
  public $prettybar_link_limit;
25
 
26
  public $link_redirect_type;
27
- public $link_redirect_action;
28
  public $link_prefix;
 
29
  public $link_track_me;
30
  public $link_nofollow;
31
 
32
  public $bookmarklet_auth;
33
 
34
- function __construct($options_array=array())
35
- {
36
  // Set values from array
37
- foreach($options_array as $key => $value)
38
  $this->{$key} = $value;
39
-
 
40
  $this->set_default_options();
41
  }
42
 
43
- function set_default_options()
44
- {
45
  // Must account for the Legacy Options
46
  $prli_exclude_ips = 'prli_exclude_ips';
47
  $prettybar_image_url = 'prli_prettybar_image_url';
@@ -62,11 +61,10 @@ class PrliOptions
62
  $link_ultra_cloak = 'prli_link_ultra_cloak';
63
  $link_track_me = 'prli_link_track_me';
64
  $link_prefix = 'prli_link_prefix';
 
65
  $link_track_as_pixel = 'prli_link_track_as_pixel';
66
  $link_nofollow = 'prli_link_nofollow';
67
  $link_redirect_type = 'prli_link_redirect_type';
68
- $link_redirect_action = 'prli_link_redirect_action';
69
-
70
 
71
  if(!isset($this->prettybar_show_title)) {
72
  if($var = get_option( $prettybar_show_title )) {
@@ -113,8 +111,13 @@ class PrliOptions
113
  $this->link_track_me = '1';
114
  }
115
 
116
- if(!isset($this->link_prefix))
117
- $this->link_prefix = 0;
 
 
 
 
 
118
 
119
  if(!isset($this->link_nofollow)) {
120
  if($var = get_option( $link_nofollow )) {
@@ -122,7 +125,7 @@ class PrliOptions
122
  delete_option( $link_nofollow );
123
  }
124
  else
125
- $this->link_nofollow = '0';
126
  }
127
 
128
  if(!isset($this->link_redirect_type)) {
@@ -158,11 +161,7 @@ class PrliOptions
158
  $this->link_redirect_type = '307';
159
  }
160
 
161
- if(!isset($this->link_redirect_action))
162
- $this->link_redirect_action = 'init';
163
-
164
- if(!isset($this->prli_exclude_ips))
165
- {
166
  if($var = get_option( $prli_exclude_ips )) {
167
  $this->prli_exclude_ips = $var;
168
  delete_option( $prli_exclude_ips );
@@ -171,8 +170,7 @@ class PrliOptions
171
  $this->prli_exclude_ips = '';
172
  }
173
 
174
- if(!isset($this->prettybar_image_url))
175
- {
176
  if($var = get_option( $prettybar_image_url )) {
177
  $this->prettybar_image_url = $var;
178
  delete_option( $prettybar_image_url );
@@ -181,8 +179,7 @@ class PrliOptions
181
  $this->prettybar_image_url = PRLI_IMAGES_URL . '/pretty-link-48x48.png';
182
  }
183
 
184
- if(!isset($this->prettybar_background_image_url))
185
- {
186
  if($var = get_option( $prettybar_background_image_url )) {
187
  $this->prettybar_background_image_url = $var;
188
  delete_option( $prettybar_background_image_url );
@@ -191,8 +188,7 @@ class PrliOptions
191
  $this->prettybar_background_image_url = PRLI_IMAGES_URL . '/bar_background.png';
192
  }
193
 
194
- if(!isset($this->prettybar_color))
195
- {
196
  if($var = get_option( $prettybar_color )) {
197
  $this->prettybar_color = $var;
198
  delete_option( $prettybar_color );
@@ -200,9 +196,11 @@ class PrliOptions
200
  else
201
  $this->prettybar_color = '';
202
  }
 
 
 
203
 
204
- if(!isset($this->prettybar_text_color))
205
- {
206
  if($var = get_option( $prettybar_text_color )) {
207
  $this->prettybar_text_color = $var;
208
  delete_option( $prettybar_text_color );
@@ -210,9 +208,11 @@ class PrliOptions
210
  else
211
  $this->prettybar_text_color = '000000';
212
  }
 
 
 
213
 
214
- if(!isset($this->prettybar_link_color))
215
- {
216
  if($var = get_option( $prettybar_link_color )) {
217
  $this->prettybar_link_color = $var;
218
  delete_option( $prettybar_link_color );
@@ -220,9 +220,11 @@ class PrliOptions
220
  else
221
  $this->prettybar_link_color = '0000ee';
222
  }
 
 
 
223
 
224
- if(!isset($this->prettybar_hover_color))
225
- {
226
  if($var = get_option( $prettybar_hover_color )) {
227
  $this->prettybar_hover_color = $var;
228
  delete_option( $prettybar_hover_color );
@@ -230,9 +232,11 @@ class PrliOptions
230
  else
231
  $this->prettybar_hover_color = 'ababab';
232
  }
 
 
 
233
 
234
- if(!isset($this->prettybar_visited_color))
235
- {
236
  if($var = get_option( $prettybar_visited_color )) {
237
  $this->prettybar_visited_color = $var;
238
  delete_option( $prettybar_visited_color );
@@ -240,9 +244,11 @@ class PrliOptions
240
  else
241
  $this->prettybar_visited_color = '551a8b';
242
  }
 
 
 
243
 
244
- if(!isset($this->prettybar_title_limit))
245
- {
246
  if($var = get_option( $prettybar_title_limit )) {
247
  $this->prettybar_title_limit = $var;
248
  delete_option( $prettybar_title_limit );
@@ -251,8 +257,7 @@ class PrliOptions
251
  $this->prettybar_title_limit = '25';
252
  }
253
 
254
- if(!isset($this->prettybar_desc_limit))
255
- {
256
  if($var = get_option( $prettybar_desc_limit )) {
257
  $this->prettybar_desc_limit = $var;
258
  delete_option( $prettybar_desc_limit );
@@ -261,8 +266,7 @@ class PrliOptions
261
  $this->prettybar_desc_limit = '30';
262
  }
263
 
264
- if(!isset($this->prettybar_link_limit))
265
- {
266
  if($var = get_option( $prettybar_link_limit )) {
267
  $this->prettybar_link_limit = $var;
268
  delete_option( $prettybar_link_limit );
@@ -271,17 +275,21 @@ class PrliOptions
271
  $this->prettybar_link_limit = '30';
272
  }
273
 
274
- if(!isset($this->bookmarklet_auth))
275
- $this->bookmarklet_auth = md5(get_option('auth_salt') . time());
 
276
 
277
- if(!isset($this->whitelist_ips))
278
  $this->whitelist_ips = '';
 
279
 
280
- if(!isset($this->filter_robots))
281
  $this->filter_robots = 0;
 
282
 
283
- if(!isset($this->extended_tracking))
284
  $this->extended_tracking = 'normal';
 
285
  }
286
 
287
  public function store() {
@@ -291,11 +299,11 @@ class PrliOptions
291
 
292
  public static function get_options() {
293
  $prli_options = get_option('prli_options');
294
-
295
  if($prli_options) {
296
  if(is_string($prli_options))
297
  $prli_options = unserialize($prli_options);
298
-
299
  if(is_object($prli_options) and is_a($prli_options,'PrliOptions')) {
300
  $prli_options->set_default_options();
301
  $prli_options->store(); // store will convert this back into an array
24
  public $prettybar_link_limit;
25
 
26
  public $link_redirect_type;
 
27
  public $link_prefix;
28
+ public $auto_trim_clicks;
29
  public $link_track_me;
30
  public $link_nofollow;
31
 
32
  public $bookmarklet_auth;
33
 
34
+ public function __construct($options_array = array()) {
 
35
  // Set values from array
36
+ foreach($options_array as $key => $value) {
37
  $this->{$key} = $value;
38
+ }
39
+
40
  $this->set_default_options();
41
  }
42
 
43
+ public function set_default_options() {
 
44
  // Must account for the Legacy Options
45
  $prli_exclude_ips = 'prli_exclude_ips';
46
  $prettybar_image_url = 'prli_prettybar_image_url';
61
  $link_ultra_cloak = 'prli_link_ultra_cloak';
62
  $link_track_me = 'prli_link_track_me';
63
  $link_prefix = 'prli_link_prefix';
64
+ $auto_trim_clicks = 'prli_auto_trim_clicks';
65
  $link_track_as_pixel = 'prli_link_track_as_pixel';
66
  $link_nofollow = 'prli_link_nofollow';
67
  $link_redirect_type = 'prli_link_redirect_type';
 
 
68
 
69
  if(!isset($this->prettybar_show_title)) {
70
  if($var = get_option( $prettybar_show_title )) {
111
  $this->link_track_me = '1';
112
  }
113
 
114
+ if(!isset($this->link_prefix)) {
115
+ $this->link_prefix = 0;
116
+ }
117
+
118
+ if(!isset($this->auto_trim_clicks)) {
119
+ $this->auto_trim_clicks = 0;
120
+ }
121
 
122
  if(!isset($this->link_nofollow)) {
123
  if($var = get_option( $link_nofollow )) {
125
  delete_option( $link_nofollow );
126
  }
127
  else
128
+ $this->link_nofollow = '1';
129
  }
130
 
131
  if(!isset($this->link_redirect_type)) {
161
  $this->link_redirect_type = '307';
162
  }
163
 
164
+ if(!isset($this->prli_exclude_ips)) {
 
 
 
 
165
  if($var = get_option( $prli_exclude_ips )) {
166
  $this->prli_exclude_ips = $var;
167
  delete_option( $prli_exclude_ips );
170
  $this->prli_exclude_ips = '';
171
  }
172
 
173
+ if(!isset($this->prettybar_image_url)) {
 
174
  if($var = get_option( $prettybar_image_url )) {
175
  $this->prettybar_image_url = $var;
176
  delete_option( $prettybar_image_url );
179
  $this->prettybar_image_url = PRLI_IMAGES_URL . '/pretty-link-48x48.png';
180
  }
181
 
182
+ if(!isset($this->prettybar_background_image_url)) {
 
183
  if($var = get_option( $prettybar_background_image_url )) {
184
  $this->prettybar_background_image_url = $var;
185
  delete_option( $prettybar_background_image_url );
188
  $this->prettybar_background_image_url = PRLI_IMAGES_URL . '/bar_background.png';
189
  }
190
 
191
+ if(!isset($this->prettybar_color)) {
 
192
  if($var = get_option( $prettybar_color )) {
193
  $this->prettybar_color = $var;
194
  delete_option( $prettybar_color );
196
  else
197
  $this->prettybar_color = '';
198
  }
199
+ else if(!preg_match('/^#/',$this->prettybar_color)) {
200
+ $this->prettybar_color = '#' . $this->prettybar_color;
201
+ }
202
 
203
+ if(!isset($this->prettybar_text_color)) {
 
204
  if($var = get_option( $prettybar_text_color )) {
205
  $this->prettybar_text_color = $var;
206
  delete_option( $prettybar_text_color );
208
  else
209
  $this->prettybar_text_color = '000000';
210
  }
211
+ else if(!preg_match('/^#/',$this->prettybar_text_color)) {
212
+ $this->prettybar_text_color = '#' . $this->prettybar_text_color;
213
+ }
214
 
215
+ if(!isset($this->prettybar_link_color)) {
 
216
  if($var = get_option( $prettybar_link_color )) {
217
  $this->prettybar_link_color = $var;
218
  delete_option( $prettybar_link_color );
220
  else
221
  $this->prettybar_link_color = '0000ee';
222
  }
223
+ else if(!preg_match('/^#/',$this->prettybar_link_color)) {
224
+ $this->prettybar_link_color = '#' . $this->prettybar_link_color;
225
+ }
226
 
227
+ if(!isset($this->prettybar_hover_color)) {
 
228
  if($var = get_option( $prettybar_hover_color )) {
229
  $this->prettybar_hover_color = $var;
230
  delete_option( $prettybar_hover_color );
232
  else
233
  $this->prettybar_hover_color = 'ababab';
234
  }
235
+ else if(!preg_match('/^#/',$this->prettybar_hover_color)) {
236
+ $this->prettybar_hover_color = '#' . $this->prettybar_hover_color;
237
+ }
238
 
239
+ if(!isset($this->prettybar_visited_color)) {
 
240
  if($var = get_option( $prettybar_visited_color )) {
241
  $this->prettybar_visited_color = $var;
242
  delete_option( $prettybar_visited_color );
244
  else
245
  $this->prettybar_visited_color = '551a8b';
246
  }
247
+ else if(!preg_match('/^#/',$this->prettybar_visited_color)) {
248
+ $this->prettybar_visited_color = '#' . $this->prettybar_visited_color;
249
+ }
250
 
251
+ if(!isset($this->prettybar_title_limit)) {
 
252
  if($var = get_option( $prettybar_title_limit )) {
253
  $this->prettybar_title_limit = $var;
254
  delete_option( $prettybar_title_limit );
257
  $this->prettybar_title_limit = '25';
258
  }
259
 
260
+ if(!isset($this->prettybar_desc_limit)) {
 
261
  if($var = get_option( $prettybar_desc_limit )) {
262
  $this->prettybar_desc_limit = $var;
263
  delete_option( $prettybar_desc_limit );
266
  $this->prettybar_desc_limit = '30';
267
  }
268
 
269
+ if(!isset($this->prettybar_link_limit)) {
 
270
  if($var = get_option( $prettybar_link_limit )) {
271
  $this->prettybar_link_limit = $var;
272
  delete_option( $prettybar_link_limit );
275
  $this->prettybar_link_limit = '30';
276
  }
277
 
278
+ if(!isset($this->bookmarklet_auth)) {
279
+ $this->bookmarklet_auth = md5(get_option('auth_salt') . time());
280
+ }
281
 
282
+ if(!isset($this->whitelist_ips)) {
283
  $this->whitelist_ips = '';
284
+ }
285
 
286
+ if(!isset($this->filter_robots)) {
287
  $this->filter_robots = 0;
288
+ }
289
 
290
+ if(!isset($this->extended_tracking)) {
291
  $this->extended_tracking = 'normal';
292
+ }
293
  }
294
 
295
  public function store() {
299
 
300
  public static function get_options() {
301
  $prli_options = get_option('prli_options');
302
+
303
  if($prli_options) {
304
  if(is_string($prli_options))
305
  $prli_options = unserialize($prli_options);
306
+
307
  if(is_object($prli_options) and is_a($prli_options,'PrliOptions')) {
308
  $prli_options->set_default_options();
309
  $prli_options->store(); // store will convert this back into an array
app/models/PrliUtils.php ADDED
@@ -0,0 +1,1270 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
3
+
4
+ //require_once('models.inc.php');
5
+
6
+ class PrliUtils {
7
+ /** Okay I realize that Percentagize isn't really a word but
8
+ * this is so that the values we have will work with google
9
+ * charts.
10
+ */
11
+ public function percentagizeArray($data,$max_value) {
12
+ $new_data = array();
13
+ foreach($data as $point) {
14
+ if( $max_value > 0 ) {
15
+ $new_data[] = $point / $max_value * 100;
16
+ }
17
+ else {
18
+ $new_data[] = 0;
19
+ }
20
+ }
21
+ return $new_data;
22
+ }
23
+
24
+ public function getTopValue($values_array) {
25
+ rsort($values_array);
26
+ return $values_array[0];
27
+ }
28
+
29
+ public function getFirstClickDate() {
30
+ global $wpdb;
31
+
32
+ $clicks_table = $wpdb->prefix . "prli_clicks";
33
+ $query = "SELECT created_at FROM $clicks_table ORDER BY created_at LIMIT 1";
34
+ $first_click = $wpdb->get_var($query);
35
+
36
+ if(isset($first_click)) {
37
+ return strtotime($first_click);
38
+ }
39
+ else {
40
+ return null;
41
+ }
42
+ }
43
+
44
+ public function getMonthsArray() {
45
+ global $wpdb;
46
+ global $prli_click;
47
+
48
+ $months = array();
49
+ $year = date("Y");
50
+ $month = date("m");
51
+ $current_timestamp = time();
52
+ $current_month_timestamp = mktime(0, 0, 0, date("m", $current_timestamp), 1, date("Y", $current_timestamp));
53
+
54
+ $clicks_table = $prli_click->tableName();
55
+ $first_click = $wpdb->get_var("SELECT created_at FROM $clicks_table ORDER BY created_at LIMIT 1;");
56
+ $first_timestamp = ((empty($first_click))?$current_timestamp:strtotime($first_click));
57
+ $first_date = mktime(0, 0, 0, date("m", $first_timestamp), 1, date("Y", $first_timestamp));
58
+
59
+ while($current_month_timestamp >= $first_date) {
60
+ $months[] = $current_month_timestamp;
61
+ if(date("m") == 1) {
62
+ $current_month_timestamp = mktime(0, 0, 0, 12, 1, date("Y", $current_month_timestamp)-1);
63
+ }
64
+ else {
65
+ $current_month_timestamp = mktime(0, 0, 0, date("m", $current_month_timestamp)-1, 1, date("Y", $current_month_timestamp));
66
+ }
67
+ }
68
+ return $months;
69
+ }
70
+
71
+ // For Pagination
72
+ public function getLastRecordNum($r_count,$current_p,$p_size) {
73
+ return (($r_count < ($current_p * $p_size))?$r_count:($current_p * $p_size));
74
+ }
75
+
76
+ // For Pagination
77
+ public function getFirstRecordNum($r_count,$current_p,$p_size) {
78
+ if($current_p == 1) {
79
+ return 1;
80
+ }
81
+ else {
82
+ return ($this->getLastRecordNum($r_count,($current_p - 1),$p_size) + 1);
83
+ }
84
+ }
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
+ public static function debug_log($message) {
92
+ if(defined('WP_DEBUG') && WP_DEBUG) {
93
+ error_log(sprintf(__('*** Pretty Links Debug: %s', 'pretty-link'), $message));
94
+ }
95
+ }
96
+
97
+ public static function slugIsAvailable( $slug, $id = '' ) {
98
+ global $wp_rewrite, $prli_link;
99
+ $url = self::get_url_from_slug($slug);
100
+
101
+ if(empty($slug)) {
102
+ self::debug_log('SlugIsAvailable: $slug was empty');
103
+ return false;
104
+ }
105
+
106
+ // Check Filepaths
107
+ $filepath = ABSPATH . $slug;
108
+ if( file_exists($filepath) ) {
109
+ self::debug_log('SlugIsAvailable: There\'s already a file at: ' . $filepath);
110
+ return false;
111
+ }
112
+
113
+ // 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
+ }
172
+ }
173
+ }
174
+
175
+ return true;
176
+ }
177
+
178
+ public static function object_to_string($obj) {
179
+ ob_start();
180
+ print_r($obj);
181
+ return ob_get_clean();
182
+ }
183
+
184
+ public function php_get_browsercap_ini() {
185
+ // Since it's a fairly expensive proposition to load the ini file
186
+ // let's make sure we only do it once
187
+ static $browsecap_ini;
188
+
189
+ if(!isset($browsecap_ini)) {
190
+ if( version_compare(PHP_VERSION, '5.3.0') >= 0 ) {
191
+ $browsecap_ini = parse_ini_file( PRLI_VENDOR_LIB_PATH . '/browscap/php_browscap.ini', true, INI_SCANNER_RAW );
192
+ }
193
+ else {
194
+ $browsecap_ini = parse_ini_file( PRLI_VENDOR_LIB_PATH . '/browscap/php_browscap.ini', true );
195
+ }
196
+ }
197
+
198
+ return $browsecap_ini;
199
+ }
200
+
201
+ /* Needed because we don't know if the target uesr will have a browsercap file installed
202
+ on their server ... particularly in a shared hosting environment this is difficult
203
+ */
204
+ public function php_get_browser($agent = NULL) {
205
+ $agent=$agent?$agent:$_SERVER['HTTP_USER_AGENT'];
206
+ $yu=array();
207
+ $q_s=array("#\.#","#\*#","#\?#");
208
+ $q_r=array("\.",".*",".?");
209
+ $brows = $this->php_get_browsercap_ini();
210
+
211
+ if(empty($agent)) { return array(); }
212
+
213
+ //Do a bit of caching here
214
+ static $hu;
215
+ if(!isset($hu)) {
216
+ $hu = array();
217
+ }
218
+ else {
219
+ return $hu;
220
+ }
221
+
222
+ if(!empty($brows) and $brows and is_array($brows)) {
223
+ foreach($brows as $k=>$t) {
224
+ if(fnmatch($k,$agent)) {
225
+ $yu['browser_name_pattern']=$k;
226
+ $pat=preg_replace($q_s,$q_r,$k);
227
+ $yu['browser_name_regex']=strtolower("^$pat$");
228
+ foreach($brows as $g=>$r) {
229
+ if($t['Parent']==$g) {
230
+ foreach($brows as $a=>$b) {
231
+ if(isset($r['Parent']) && $r['Parent']==$a) {
232
+ $yu=array_merge($yu,$b,$r,$t);
233
+ foreach($yu as $d=>$z) {
234
+ $l=strtolower($d);
235
+ $hu[$l]=$z;
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+
242
+ break;
243
+ }
244
+ }
245
+ }
246
+
247
+ return $hu;
248
+ }
249
+
250
+ // This is where the magic happens!
251
+ public function track_link($slug,$values) {
252
+ global $wpdb, $prli_click, $prli_options, $prli_link, $plp_update;
253
+
254
+ $query = "SELECT * FROM ".$prli_link->table_name." WHERE slug='$slug' LIMIT 1";
255
+ $pretty_link = $wpdb->get_row($query);
256
+ $pretty_link_target = apply_filters( 'prli_target_url', array( 'url' => $pretty_link->url, 'link_id' => $pretty_link->id, 'redirect_type' => $pretty_link->redirect_type ) );
257
+
258
+ // Error out when url is blank
259
+ if(!isset($pretty_link_target['url']) || empty($pretty_link_target['url'])) {
260
+ return false;
261
+ }
262
+
263
+ $pretty_link_url = $pretty_link_target['url'];
264
+ $track_me = apply_filters('prli_track_link', $pretty_link->track_me);
265
+
266
+ if(isset($track_me) and !empty($track_me) and $track_me) {
267
+ $first_click = 0;
268
+ $click_ip = $this->get_current_client_ip();
269
+ $click_referer = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';
270
+ $click_uri = isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'';
271
+ $click_user_agent = isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:'';
272
+
273
+ //Set Cookie if it doesn't exist
274
+ $cookie_name = 'prli_click_' . $pretty_link->id;
275
+
276
+ //Used for unique click tracking
277
+ $cookie_expire_time = time()+60*60*24*30; // Expire in 30 days
278
+
279
+ if(!isset($_COOKIE[$cookie_name])) {
280
+ setcookie($cookie_name,$slug,$cookie_expire_time,'/');
281
+ $first_click = 1;
282
+ }
283
+
284
+ // Set the visitor cookie now
285
+ $visitor_cookie = 'prli_visitor';
286
+ //Used for visitor activity
287
+ $visitor_cookie_expire_time = time()+60*60*24*365; // Expire in 1 year
288
+
289
+ // Retrieve / Generate visitor id
290
+ if(!isset($_COOKIE[$visitor_cookie])) {
291
+ $visitor_uid = $prli_click->generateUniqueVisitorId();
292
+ setcookie($visitor_cookie,$visitor_uid,$visitor_cookie_expire_time,'/');
293
+ }
294
+ else {
295
+ $visitor_uid = $_COOKIE[$visitor_cookie];
296
+ }
297
+
298
+
299
+ if(isset($prli_options->extended_tracking) and $prli_options->extended_tracking == 'extended') {
300
+ $click_browser = $this->php_get_browser();
301
+ $click_host = gethostbyaddr($click_ip);
302
+ }
303
+ else {
304
+ $click_browser = array( 'browser' => '', 'version' => '', 'platform' => '', 'crawler' => '' );
305
+ $click_host = '';
306
+ }
307
+
308
+ // If this is flagged as a dup then don't track this link
309
+ // This is to prevent duplicate clicks being recorded due to things like
310
+ // Browser pre-fetching especially, which is no longer detectable using
311
+ // HTTP headers so we have to resort to this not-as-accurate approach
312
+ $visitor_uid_store_key = "{$visitor_cookie}_{$visitor_uid}";
313
+ $visitor_uid_store_time = 10; // 10 seconds
314
+ if(!($visitor_uid_store = get_transient($visitor_uid_store_key))) {
315
+ set_transient($visitor_uid_store_key, $visitor_uid, $visitor_uid_store_time);
316
+
317
+ if($prli_options->extended_tracking != 'count') {
318
+ //Record Click in DB
319
+ $insert_str = "INSERT INTO {$prli_click->table_name} (link_id,vuid,ip,browser,btype,bversion,os,referer,uri,host,first_click,robot,created_at) VALUES (%d,%s,%s,%s,%s,%s,%s,%s,%s,%s,%d,%d,NOW())";
320
+ $insert = $wpdb->prepare(
321
+ $insert_str,
322
+ $pretty_link->id,
323
+ $visitor_uid,
324
+ $click_ip,
325
+ $click_user_agent,
326
+ (isset($click_browser['browser']) ? $click_browser['browser'] : ''),
327
+ (isset($click_browser['version']) ? $click_browser['version'] : ''),
328
+ (isset($click_browser['platform']) ? $click_browser['platform'] : ''),
329
+ $click_referer,
330
+ $click_uri,
331
+ $click_host,
332
+ $first_click,
333
+ $this->this_is_a_robot($click_user_agent,$click_browser)
334
+ );
335
+
336
+ $results = $wpdb->query( $insert );
337
+
338
+ do_action('prli_record_click',array('link_id' => $pretty_link->id, 'click_id' => $wpdb->insert_id, 'url' => $pretty_link_url));
339
+ }
340
+ else {
341
+ global $prli_link_meta;
342
+ $exclude_ips = explode(",", $prli_options->prli_exclude_ips);
343
+ if(!in_array($click_ip, $exclude_ips) and !$this->this_is_a_robot($click_user_agent,$click_browser)) {
344
+ $clicks = $prli_link_meta->get_link_meta($pretty_link->id, 'static-clicks', true);
345
+ $clicks = (empty($clicks) or $clicks === false)?0:$clicks;
346
+ $prli_link_meta->update_link_meta($pretty_link->id, 'static-clicks', $clicks+1);
347
+
348
+ if($first_click) {
349
+ $uniques = $prli_link_meta->get_link_meta($pretty_link->id, 'static-uniques', true);
350
+ $uniques = (empty($uniques) or $uniques === false)?0:$uniques;
351
+ $prli_link_meta->update_link_meta($pretty_link->id, 'static-uniques', $uniques+1);
352
+ }
353
+ }
354
+ }
355
+ }
356
+ }
357
+
358
+ $param_string = '';
359
+ if( isset($pretty_link->param_forwarding) && !empty($pretty_link->param_forwarding) &&
360
+ $pretty_link->param_forwarding!='off' && isset( $values ) && count( $values ) >= 1 ) {
361
+ $parray = explode( '?', $_SERVER['REQUEST_URI'] );
362
+
363
+ if(isset($parray[1])) {
364
+ $param_string = (preg_match("#\?#", $pretty_link_url)?"&":"?") . $parray[1];
365
+ }
366
+
367
+ $param_string = preg_replace( array("#%5B#i","#%5D#i"), array("[","]"), $param_string );
368
+
369
+ $param_string = apply_filters('prli_redirect_params', $param_string);
370
+ }
371
+
372
+ if(isset($pretty_link->nofollow) and $pretty_link->nofollow) {
373
+ header("X-Robots-Tag: noindex, nofollow", true);
374
+ }
375
+
376
+ //This action replaces custom variable parameters
377
+ do_action_ref_array('prli_before_redirect', array(&$pretty_link_url, &$param_string, $_GET));
378
+
379
+ header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
380
+ header("Cache-Control: post-check=0, pre-check=0", false);
381
+ header("Pragma: no-cache");
382
+ header("Expires: Mon, 07 Jul 1777 07:07:07 GMT"); // Battle of Hubbardton
383
+ $prli_edition = ucwords(preg_replace('/-/', ' ', PRLI_EDITION));
384
+ header("X-Redirect-Powered-By: {$prli_edition} " . PRLI_VERSION . " http://prettylink.com");
385
+
386
+ switch($pretty_link->redirect_type) {
387
+ case '301':
388
+ header("HTTP/1.1 301 Moved Permanently");
389
+ header('Location: '.$pretty_link_url.$param_string, true, 301);
390
+ break;
391
+ case '302':
392
+ header("HTTP/1.1 302 Found");
393
+ header('Location: '.$pretty_link_url.$param_string, true, 302);
394
+ break;
395
+ default:
396
+ if( $pretty_link->redirect_type == '307' ||
397
+ !$plp_update->is_installed() ) {
398
+ if($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0') {
399
+ header("HTTP/1.1 302 Found");
400
+ }
401
+ else {
402
+ header("HTTP/1.1 307 Temporary Redirect");
403
+ }
404
+ header('Location: '.$pretty_link_url.$param_string, true, 307);
405
+ }
406
+ else {
407
+ do_action('prli_issue_cloaked_redirect', $pretty_link->redirect_type, $pretty_link, $pretty_link_url, $param_string);
408
+ }
409
+ }
410
+
411
+ return true;
412
+ }
413
+
414
+ public function get_current_client_ip() {
415
+ $ipaddress = (isset($_SERVER['REMOTE_ADDR']))?$_SERVER['REMOTE_ADDR']:'';
416
+
417
+ if(isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP'] != '127.0.0.1') {
418
+ $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
419
+ }
420
+ elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '127.0.0.1') {
421
+ $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
422
+ }
423
+ elseif(isset($_SERVER['HTTP_X_FORWARDED']) && $_SERVER['HTTP_X_FORWARDED'] != '127.0.0.1') {
424
+ $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
425
+ }
426
+ elseif(isset($_SERVER['HTTP_FORWARDED_FOR']) && $_SERVER['HTTP_FORWARDED_FOR'] != '127.0.0.1') {
427
+ $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
428
+ }
429
+ elseif(isset($_SERVER['HTTP_FORWARDED']) && $_SERVER['HTTP_FORWARDED'] != '127.0.0.1') {
430
+ $ipaddress = $_SERVER['HTTP_FORWARDED'];
431
+ }
432
+
433
+ return $ipaddress;
434
+ }
435
+
436
+ public function get_custom_forwarding_rule($param_struct) {
437
+ $param_struct = preg_replace('#%.*?%#','(.*?)',$param_struct);
438
+ return preg_replace('#\(\.\*\?\)$#','(.*)',$param_struct); // replace the last one with a greedy operator
439
+ }
440
+
441
+ public function get_custom_forwarding_params($param_struct, $start_index = 1) {
442
+ preg_match_all('#%(.*?)%#', $param_struct, $matches);
443
+
444
+ $param_string = '';
445
+ $match_index = $start_index;
446
+
447
+ for($i = 0; $i < count($matches[1]); $i++) {
448
+ if($i == 0 and $start_index == 1)
449
+ $param_string .= "?";
450
+ else
451
+ $param_string .= "&";
452
+
453
+ $param_string .= $matches[1][$i] . "=$$match_index";
454
+ $match_index++;
455
+ }
456
+
457
+ return $param_string;
458
+ }
459
+
460
+ public function decode_custom_param_str($param_struct, $uri_string) {
461
+ // Get the structure matches (param names)
462
+ preg_match_all('#%(.*?)%#', $param_struct, $struct_matches);
463
+
464
+ // Get the uri matches (param values)
465
+ $match_str = '#'.$this->get_custom_forwarding_rule($param_struct).'#';
466
+ preg_match($match_str, $uri_string, $uri_matches);
467
+
468
+ $param_array = array();
469
+ for($i = 0; $i < count($struct_matches[1]); $i++) {
470
+ $param_array[$struct_matches[1][$i]] = $uri_matches[$i+1];
471
+ }
472
+
473
+ return $param_array;
474
+ }
475
+
476
+ // Detects whether an array is a true numerical array or an
477
+ // associative array (or hash).
478
+ public function prli_array_type($item) {
479
+ $array_type = 'unknown';
480
+
481
+ if(is_array($item)) {
482
+ $array_type = 'array';
483
+
484
+ foreach($item as $key => $value) {
485
+ if(!is_numeric($key)) {
486
+ $array_type = 'hash';
487
+ break;
488
+ }
489
+ }
490
+ }
491
+
492
+ return $array_type;
493
+ }
494
+
495
+ // Get the timestamp of the start date
496
+ public function get_start_date($values,$min_date = '') {
497
+ // set default to 30 days ago
498
+ if(empty($min_date)) {
499
+ $min_date = 30;
500
+ }
501
+
502
+ if(!empty($values['sdate'])) {
503
+ $sdate = explode("-",$values['sdate']);
504
+ $start_timestamp = mktime(0,0,0,$sdate[1],$sdate[2],$sdate[0]);
505
+ }
506
+ else {
507
+ $start_timestamp = time()-60*60*24*(int)$min_date;
508
+ }
509
+
510
+ return $start_timestamp;
511
+ }
512
+
513
+ // Get the timestamp of the end date
514
+ public function get_end_date($values)
515
+ {
516
+ if(!empty($values['edate']))
517
+ {
518
+ $edate = explode("-",$values['edate']);
519
+ $end_timestamp = mktime(0,0,0,$edate[1],$edate[2],$edate[0]);
520
+ }
521
+ else
522
+ $end_timestamp = time();
523
+
524
+ return $end_timestamp;
525
+ }
526
+
527
+ public function prepend_and_or_where( $starts_with = ' WHERE', $where = '' )
528
+ {
529
+ return (( $where == '' )?'':$starts_with . $where);
530
+ }
531
+
532
+ public function uninstall_pro()
533
+ {
534
+ $plp_path = PRLI_PATH . '/pro';
535
+
536
+ // unlink pro directory
537
+ $this->delete_dir($plp_path);
538
+
539
+ delete_option( 'prlipro_activated' );
540
+ delete_option( 'prlipro_username' );
541
+ delete_option( 'prlipro_password' );
542
+ delete_option( 'prlipro-credentials' );
543
+
544
+ // Yah- I just leave the pro database tables & data hanging
545
+ // around in case you want to re-install it at some point
546
+ }
547
+
548
+ public function should_install_pro_db() {
549
+ global $plp_db_version;
550
+ $old_pro_db_version = get_option('prlipro_db_version');
551
+
552
+ if($plp_db_version != $old_pro_db_version) { return true; }
553
+
554
+ return false;
555
+ }
556
+
557
+ public function install_pro_db() {
558
+ global $wpdb, $plp_db_version;
559
+
560
+ $upgrade_path = ABSPATH . 'wp-admin/includes/upgrade.php';
561
+ require_once($upgrade_path);
562
+
563
+ // Pretty Link Pro Tables
564
+ $keywords_table = "{$wpdb->prefix}prli_keywords";
565
+ $post_keywords_table = "{$wpdb->prefix}prli_post_keywords";
566
+ $post_urls_table = "{$wpdb->prefix}prli_post_urls";
567
+ $reports_table = "{$wpdb->prefix}prli_reports";
568
+ $report_links_table = "{$wpdb->prefix}prli_report_links";
569
+ $link_rotations_table = "{$wpdb->prefix}prli_link_rotations";
570
+ $clicks_rotations_table = "{$wpdb->prefix}prli_clicks_rotations";
571
+
572
+ // This was introduced in WordPress 3.5
573
+ // $charset_collate = $wpdb->get_charset_collate(); //This doesn't work for most non english setups
574
+ $charset_collate = "";
575
+ $collation = $wpdb->get_row("SHOW FULL COLUMNS FROM {$wpdb->posts} WHERE field = 'post_content'");
576
+
577
+ if(isset($collation->Collation)) {
578
+ $charset = explode('_', $collation->Collation);
579
+
580
+ if(is_array($charset) && count($charset) > 1) {
581
+ $charset = $charset[0]; //Get the charset from the collation
582
+ $charset_collate = "DEFAULT CHARACTER SET {$charset} COLLATE {$collation->Collation}";
583
+ }
584
+ }
585
+
586
+ //Fine we'll try it your way this time
587
+ if(empty($charset_collate)) { $charset_collate = $wpdb->get_charset_collate(); }
588
+
589
+ /* Create/Upgrade Keywords Table */
590
+ $sql = "
591
+ CREATE TABLE {$keywords_table} (
592
+ id int(11) NOT NULL auto_increment,
593
+ text varchar(255) NOT NULL,
594
+ link_id int(11) NOT NULL,
595
+ created_at datetime NOT NULL,
596
+ PRIMARY KEY (id),
597
+ KEY link_id (link_id),
598
+ KEY text (text)
599
+ ) {$charset_collate};
600
+ ";
601
+
602
+ dbDelta($sql);
603
+
604
+ /* Create/Upgrade Keywords Table */
605
+ $sql = "
606
+ CREATE TABLE {$post_keywords_table} (
607
+ id int(11) NOT NULL auto_increment,
608
+ keyword_id int(11) NOT NULL,
609
+ post_id int(11) NOT NULL,
610
+ PRIMARY KEY (id),
611
+ KEY keyword_id (keyword_id),
612
+ KEY post_id (post_id),
613
+ UNIQUE KEY post_keyword_index (keyword_id,post_id)
614
+ ) {$charset_collate};
615
+ ";
616
+
617
+ dbDelta($sql);
618
+
619
+ /* Create/Upgrade URLs Table */
620
+ $sql = "
621
+ CREATE TABLE {$post_urls_table} (
622
+ id int(11) NOT NULL auto_increment,
623
+ url_id int(11) NOT NULL,
624
+ post_id int(11) NOT NULL,
625
+ PRIMARY KEY (id),
626
+ KEY url_id (url_id),
627
+ KEY post_id (post_id),
628
+ UNIQUE KEY post_url_index (url_id,post_id)
629
+ ) {$charset_collate};
630
+ ";
631
+
632
+ dbDelta($sql);
633
+
634
+ /* Create/Upgrade Reports Table */
635
+ $sql = "
636
+ CREATE TABLE {$reports_table} (
637
+ id int(11) NOT NULL auto_increment,
638
+ name varchar(255) NOT NULL,
639
+ goal_link_id int(11) default NULL,
640
+ created_at datetime NOT NULL,
641
+ PRIMARY KEY (id),
642
+ KEY goal_link_id (goal_link_id),
643
+ KEY name (name)
644
+ ) {$charset_collate};
645
+ ";
646
+
647
+ dbDelta($sql);
648
+
649
+ /* Create/Upgrade Reports Table */
650
+ $sql = "
651
+ CREATE TABLE {$report_links_table} (
652
+ id int(11) NOT NULL auto_increment,
653
+ report_id int(11) NOT NULL,
654
+ link_id int(11) NOT NULL,
655
+ created_at datetime NOT NULL,
656
+ PRIMARY KEY (id),
657
+ KEY report_id (report_id),
658
+ KEY link_id (link_id)
659
+ ) {$charset_collate};
660
+ ";
661
+
662
+ dbDelta($sql);
663
+
664
+ /* Create/Upgrade Link Rotations Table */
665
+ $sql = "
666
+ CREATE TABLE {$link_rotations_table} (
667
+ id int(11) NOT NULL auto_increment,
668
+ url varchar(255) default NULL,
669
+ weight int(11) default 0,
670
+ r_index int(11) default 0,
671
+ link_id int(11) NOT NULL,
672
+ created_at datetime NOT NULL,
673
+ PRIMARY KEY (id),
674
+ KEY link_id (link_id),
675
+ KEY url (url),
676
+ KEY weight (weight),
677
+ KEY r_index (r_index)
678
+ ) {$charset_collate};
679
+ ";
680
+
681
+ dbDelta($sql);
682
+
683
+ /* Create/Upgrade Clicks / Rotations Table */
684
+ $sql = "
685
+ CREATE TABLE {$clicks_rotations_table} (
686
+ id int(11) NOT NULL auto_increment,
687
+ click_id int(11) NOT NULL,
688
+ link_id int(11) NOT NULL,
689
+ url text NOT NULL,
690
+ PRIMARY KEY (id),
691
+ KEY click_id (click_id),
692
+ KEY link_id (link_id)
693
+ ) {$charset_collate};
694
+ ";
695
+
696
+ dbDelta($sql);
697
+
698
+ /***** SAVE DB VERSION *****/
699
+ update_option('prlipro_db_version', $plp_db_version);
700
+ }
701
+
702
+ // be careful with this one -- I use it to forceably reinstall pretty link pro
703
+ public function delete_dir($dir) {
704
+ if (!file_exists($dir)) {
705
+ return true;
706
+ }
707
+
708
+ if (!is_dir($dir)) {
709
+ return unlink($dir);
710
+ }
711
+
712
+ foreach (scandir($dir) as $item)
713
+ {
714
+ if ($item == '.' || $item == '..')
715
+ continue;
716
+
717
+ if (!$this->delete_dir($dir.DIRECTORY_SEPARATOR.$item))
718
+ return false;
719
+ }
720
+
721
+ return rmdir($dir);
722
+ }
723
+
724
+ // Used in the install procedure to migrate database columns
725
+ public function migrate_before_db_upgrade() {
726
+ global $prli_options, $prli_link, $prli_click, $wpdb;
727
+ $db_version = (int)get_option('prli_db_version');
728
+
729
+ if(!$db_version)
730
+ return;
731
+
732
+ // Migration for version 1 of the database
733
+ if($db_version and $db_version < 1)
734
+ {
735
+ $query = "SELECT * from {$prli_link->table_name}";
736
+ $links = $wpdb->get_results($query);
737
+ $query_str = "UPDATE {$prli_link->table_name} SET redirect_type=%s WHERE id=%d";
738
+
739
+ foreach($links as $link)
740
+ {
741
+ if(isset($link->track_as_img) and $link->track_as_img)
742
+ {
743
+ $query = $wpdb->prepare($query_str, 'pixel', $link->id);
744
+ $wpdb->query($query);
745
+ }
746
+ else if(isset($link->use_prettybar) and $link->use_prettybar)
747
+ {
748
+ $query = $wpdb->prepare($query_str, 'prettybar', $link->id);
749
+ $wpdb->query($query);
750
+ }
751
+ else if(isset($link->use_ultra_cloak) and $link->use_ultra_cloak)
752
+ {
753
+ $query = $wpdb->prepare($query_str, 'cloak', $link->id);
754
+ $wpdb->query($query);
755
+ }
756
+ }
757
+
758
+ $query = "ALTER TABLE {$prli_link->table_name} DROP COLUMN track_as_img, DROP COLUMN use_prettybar, DROP COLUMN use_ultra_cloak, DROP COLUMN gorder";
759
+ $wpdb->query($query);
760
+ }
761
+
762
+ if($db_version and $db_version < 2)
763
+ {
764
+ unset($prli_options->prli_exclude_ips);
765
+ unset($prli_options->prettybar_image_url);
766
+ unset($prli_options->prettybar_background_image_url);
767
+ unset($prli_options->prettybar_color);
768
+ unset($prli_options->prettybar_text_color);
769
+ unset($prli_options->prettybar_link_color);
770
+ unset($prli_options->prettybar_hover_color);
771
+ unset($prli_options->prettybar_visited_color);
772
+ unset($prli_options->prettybar_title_limit);
773
+ unset($prli_options->prettybar_desc_limit);
774
+ unset($prli_options->prettybar_link_limit);
775
+
776
+ // Save the posted value in the database
777
+ //update_option( 'prli_options', $prli_options );
778
+ $prli_options->store();
779
+ }
780
+
781
+ // Modify the tables so they're UTF-8
782
+ if($db_version and $db_version < 3)
783
+ {
784
+ $charset_collate = '';
785
+ if( $wpdb->has_cap( 'collation' ) )
786
+ {
787
+ if( !empty($wpdb->charset) )
788
+ $charset_collate = "CONVERT TO CHARACTER SET $wpdb->charset";
789
+ if( !empty($wpdb->collate) )
790
+ $charset_collate .= " COLLATE $wpdb->collate";
791
+ }
792
+
793
+ if(!empty($charset_collate))
794
+ {
795
+ $prli_table_names = array( "{$wpdb->prefix}prli_groups",
796
+ "{$wpdb->prefix}prli_clicks",
797
+ "{$wpdb->prefix}prli_links",
798
+ "{$wpdb->prefix}prli_link_metas",
799
+ "{$wpdb->prefix}prli_tweets",
800
+ "{$wpdb->prefix}prli_keywords",
801
+ "{$wpdb->prefix}prli_reports",
802
+ "{$wpdb->prefix}prli_report_links",
803
+ "{$wpdb->prefix}prli_link_rotations",
804
+ "{$wpdb->prefix}prli_clicks_rotations" );
805
+
806
+ foreach($prli_table_names as $prli_table_name)
807
+ {
808
+ $query = "ALTER TABLE {$prli_table_name} {$charset_collate}";
809
+ $wpdb->query($query);
810
+ }
811
+ }
812
+ }
813
+
814
+ if($db_version and $db_version < 8)
815
+ {
816
+ // Install / Upgrade Pretty Link Pro
817
+ $plp_username = get_option( 'prlipro_username' );
818
+ $plp_password = get_option( 'prlipro_password' );
819
+
820
+ if( !empty($plp_username) and !empty($plp_password) )
821
+ {
822
+ $creds = array('username' => $plp_username,
823
+ 'password' => $plp_password);
824
+ update_option('prlipro-credentials', $creds);
825
+ }
826
+ }
827
+
828
+ // Hiding pretty link custom fields
829
+ if($db_version and $db_version < 10) {
830
+ $query_str = "UPDATE {$wpdb->postmeta} SET meta_key=%s WHERE meta_key=%s";
831
+
832
+ $query = $wpdb->prepare($query_str, '_pretty-link', 'pretty-link');
833
+ $wpdb->query($query);
834
+
835
+ $query = $wpdb->prepare($query_str, '_prli-keyword-cached-content', 'prli-keyword-cached-content');
836
+ $wpdb->query($query);
837
+
838
+ $query = $wpdb->prepare($query_str, '_prlipro-post-options', 'prlipro-post-options');
839
+ $wpdb->query($query);
840
+ }
841
+ }
842
+
843
+ public function migrate_after_db_upgrade() {
844
+ global $prli_options, $prli_link, $prli_link_meta, $prli_click, $wpdb;
845
+ $db_version = (int)get_option('prli_db_version');
846
+
847
+ if(!$db_version)
848
+ return;
849
+
850
+ if($db_version and $db_version < 5)
851
+ {
852
+ // Migrate pretty-link-posted-to-twitter
853
+ $query = "SELECT * FROM {$wpdb->prefix}postmeta WHERE meta_key=%s";
854
+ $query = $wpdb->prepare($query,'pretty-link-posted-to-twitter');
855
+ $posts_posted = $wpdb->get_results($query);
856
+
857
+ foreach($posts_posted as $postmeta)
858
+ {
859
+ if($postmeta->meta_value == '1')
860
+ {
861
+ $link_id = PrliUtils::get_prli_post_meta($postmeta->post_id,'pretty-link',true);
862
+ $prli_link_meta->update_link_meta($link_id,'pretty-link-posted-to-twitter','1');
863
+ }
864
+ }
865
+
866
+ // Cleanup
867
+ $query = "DELETE FROM {$wpdb->prefix}postmeta WHERE meta_key=%s OR meta_key=%s OR meta_key=%s OR meta_key=%s";
868
+ $query = $wpdb->prepare($query,'pretty-link-posted-to-twitter','pretty-link-tweet-count','pretty-link-tweet-last-update','prli-keyword-replacement-count');
869
+ $results = $wpdb->query($query);
870
+
871
+ $query = "DELETE FROM {$prli_link_meta->table_name} WHERE meta_key=%s";
872
+ $query = $wpdb->prepare($query,'prli-url-aliases');
873
+ $results = $wpdb->query($query);
874
+ }
875
+ }
876
+
877
+ public function this_is_a_robot($browser_ua,$browsecap,$header='')
878
+ {
879
+ $click = new PrliClick();
880
+ $click->browser = $browser_ua;
881
+ $click->btype = (isset($browsecap['browser']) ? $browsecap['browser'] : '');
882
+ return $this->is_robot($click, $browsecap, $header);
883
+ }
884
+
885
+ public function is_robot($click,$browsecap,$header='')
886
+ {
887
+ global $prli_utils, $prli_click, $prli_options;
888
+ $ua_string = trim(urldecode($click->browser));
889
+ $btype = trim($click->btype);
890
+
891
+ // Yah, if the whole user agent string is missing -- wtf?
892
+ if(empty($ua_string))
893
+ return 1;
894
+
895
+ // If we're doing extended tracking and the Browser type
896
+ // was unidentifiable then it's most likely a bot
897
+ if( isset($prli_options->extended_tracking) and
898
+ $prli_options->extended_tracking == 'extended' and
899
+ empty($btype) )
900
+ return 1;
901
+
902
+ // Some bots actually say they're bots right up front let's get rid of them asap
903
+ if(preg_match("#(bot|spider|crawl)#", strtolower($ua_string)))
904
+ return 1;
905
+
906
+ $crawler = (isset($browsecap['crawler']) && $browsecap['crawler'] == 'true');
907
+
908
+ // If php_browsecap tells us its a bot, let's believe him
909
+ if($crawler)
910
+ return 1;
911
+
912
+ return 0;
913
+ }
914
+
915
+ public static function get_permalink_pre_slug_uri($force=false,$trim=false)
916
+ {
917
+ global $prli_options;
918
+
919
+ if($force or $prli_options->link_prefix)
920
+ {
921
+ preg_match('#^([^%]*?)%#', get_option('permalink_structure'), $struct);
922
+
923
+ $pre_slug_uri = '';
924
+ if(isset($struct[1])) {
925
+ $pre_slug_uri = $struct[1];
926
+ }
927
+
928
+ if($trim)
929
+ {
930
+ $pre_slug_uri = trim($pre_slug_uri);
931
+ $pre_slug_uri = preg_replace('#^/#','',$pre_slug_uri);
932
+ $pre_slug_uri = preg_replace('#/$#','',$pre_slug_uri);
933
+ }
934
+
935
+ return $pre_slug_uri;
936
+ }
937
+ else
938
+ return '/';
939
+ }
940
+
941
+ public static function get_permalink_pre_slug_regex()
942
+ {
943
+ $pre_slug_uri = PrliUtils::get_permalink_pre_slug_uri(true);
944
+
945
+ if(empty($pre_slug_uri))
946
+ return '/';
947
+ else
948
+ return "{$pre_slug_uri}|/";
949
+ }
950
+
951
+ public function rewriting_on()
952
+ {
953
+ $permalink_structure = get_option('permalink_structure');
954
+
955
+ return ($permalink_structure and !empty($permalink_structure));
956
+ }
957
+
958
+ public static function get_prli_post_meta($post_id, $key, $single=false)
959
+ {
960
+ if( isset($post_id) and !empty($post_id) and
961
+ $post_id and is_numeric($post_id) )
962
+ return get_post_meta($post_id, $key, $single);
963
+ else
964
+ return false;
965
+ }
966
+
967
+ public static function update_prli_post_meta($post_id, $meta_key, $meta_value)
968
+ {
969
+ if( isset($post_id) and !empty($post_id) and
970
+ $post_id and is_numeric($post_id) )
971
+ return update_post_meta($post_id, $meta_key, $meta_value);
972
+ else
973
+ return false;
974
+ }
975
+
976
+ public function delete_prli_post_meta($post_id, $key)
977
+ {
978
+ if( isset($post_id) and !empty($post_id) and
979
+ $post_id and is_numeric($post_id) )
980
+ return delete_post_meta($post_id, $key);
981
+ else
982
+ return false;
983
+ }
984
+
985
+ /** Gets rid of any pretty link postmetas created without a post_id **/
986
+ public function clear_unknown_post_metas()
987
+ {
988
+ global $wpdb;
989
+
990
+ $query = "SELECT count(*) FROM {$wpdb->postmeta} WHERE ( meta_key LIKE 'prli%' OR meta_key LIKE 'pretty-link%' OR meta_key LIKE '_prli%' OR meta_key LIKE '_pretty-link%' ) AND post_id=0";
991
+ $count = $wpdb->get_var($query);
992
+
993
+ if($count)
994
+ {
995
+ $query = "DELETE FROM {$wpdb->postmeta} WHERE ( meta_key LIKE 'prli%' OR meta_key LIKE 'pretty-link%' OR meta_key LIKE '_prli%' OR meta_key LIKE '_pretty-link%' ) AND post_id=0";
996
+ $wpdb->query($query);
997
+ }
998
+ }
999
+
1000
+ public static function gen_random_string($length = 4)
1001
+ {
1002
+ $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
1003
+ $string = '';
1004
+ $max_index = strlen($characters) - 1;
1005
+
1006
+ for($p = 0; $p < $length; $p++)
1007
+ $string .= $characters[mt_rand(0, $max_index)];
1008
+
1009
+ return $string;
1010
+ }
1011
+
1012
+ public static function get_page_title($url, $slug='') {
1013
+ $title = '';
1014
+ $wp_http = new WP_Http;
1015
+ $result = $wp_http->request( $url, array( 'sslverify' => false ) );
1016
+
1017
+ if(!$result or is_a($result, 'WP_Error') or !isset($result['body'])) {
1018
+ return apply_filters('prli-get-page-title-return-slug', $slug, $url);
1019
+ }
1020
+
1021
+ $data = $result['body'];
1022
+
1023
+ // Look for <title>(.*?)</title> in the text
1024
+ if($data and preg_match('#<title>[\s\n\r]*?(.*?)[\s\n\r]*?</title>#im', $data, $matches)) {
1025
+ $title = trim($matches[1]);
1026
+ }
1027
+
1028
+ //Attempt to covert cyrillic and other weird shiz to UTF-8 - if it fails we'll just return the slug next
1029
+ if(extension_loaded('mbstring') && function_exists('iconv')) {
1030
+ $title = iconv(mb_detect_encoding($title, mb_detect_order(), true), "UTF-8", $title);
1031
+ }
1032
+
1033
+ if(empty($title) or !$title) {
1034
+ return apply_filters('prli-get-page-title-return-slug', $slug, $url);
1035
+ }
1036
+
1037
+ return apply_filters('prli-get-page-title', $title, $url, $slug);
1038
+ }
1039
+
1040
+ //public static function is_date($str) {
1041
+ // return ( preg_match('/^(\d\d\d\d)-(\d\d)-(\d\d)$/', $str, $m) &&
1042
+ // (int)$m[1] >= 1900 && (int)$m[1] <= 2200 && // Validate Year
1043
+ // (int)$m[2] >= 1 && (int)$m[2] <= 12 && // Validate Month
1044
+ // (int)$m[3] >= 1 && (int)$m[3] <= 31 ); // Validate Day
1045
+ // }
1046
+ //}
1047
+
1048
+ public static function is_date($str) {
1049
+ if(!is_string($str)) { return false; }
1050
+ $d = strtotime($str);
1051
+ return ($d !== false);
1052
+ }
1053
+
1054
+ //public static function is_url($url) {
1055
+ // return ( preg_match('/^http.?:\/\/.*\..*$/', $url ) ||
1056
+ // preg_match('!^(http|https)://(localhost|127\.0\.0\.1)(:\d+)?(/[\w- ./?%&=]*)?!', $url ) );
1057
+ //}
1058
+
1059
+ // This uses the @diegoperini URL matching regex adapted for PHP from https://gist.github.com/dperini/729294
1060
+ public static function is_url($str) {
1061
+ return 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-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);
1062
+ }
1063
+
1064
+ public static function is_email($str) {
1065
+ return preg_match('/[\w\d._%+-]+@[\w\d.-]+\.[\w]{2,4}/', $str);
1066
+ }
1067
+
1068
+ public static function is_phone($str) {
1069
+ return preg_match('/\(?\d{3}\)?[- ]\d{3}-\d{4}/', $str);
1070
+ }
1071
+
1072
+ public static function get_plp_permalink($link) {
1073
+ global $prli_blogurl;
1074
+
1075
+ $struct = PrliUtils::get_permalink_pre_slug_uri();
1076
+
1077
+ if(isset($link->slug))
1078
+ return "{$prli_blogurl}{$struct}{$link->slug}";
1079
+ else
1080
+ return false;
1081
+ }
1082
+
1083
+ public static function browser_image($browser) {
1084
+ $browser = strtolower($browser);
1085
+
1086
+ $browser_images = array(
1087
+ 'android' => 'android_32x32.png',
1088
+ 'android webview' => 'android_32x32.png',
1089
+ 'chrome' => 'chrome_32x32.png',
1090
+ 'chromium' => 'chromium_32x32.png',
1091
+ 'coast' => 'coast_32x32.png',
1092
+ //'default browser' => 'default_browser_32x32.png',
1093
+ //'defaultproperties' => 'defaultproperties_32x32.png',
1094
+ 'edge' => 'edge_32x32.png',
1095
+ 'fake ie' => 'fake_32x32.png',
1096
+ 'firefox' => 'firefox_32x32.png',
1097
+ 'ie' => 'ie_32x32.png',
1098
+ 'opera' => 'opera_32x32.png',
1099
+ 'safari' => 'safari_32x32.png',
1100
+ );
1101
+
1102
+ if(isset($browser_images[$browser])) {
1103
+ return $browser_images[$browser];
1104
+ }
1105
+
1106
+ return false;
1107
+ }
1108
+
1109
+ public static function os_image($os) {
1110
+ $os = strtolower($os);
1111
+
1112
+ $os_images = array(
1113
+ 'android' => 'android_32x32.png',
1114
+ 'linux' => 'linux_32x32.png',
1115
+ 'macosx' => 'macos_32x32.png',
1116
+ 'win10' => 'win8_32x32.png',
1117
+ 'win32' => 'winxp_32x32.png',
1118
+ 'win7' => 'win8_32x32.png',
1119
+ 'win8' => 'win8_32x32.png',
1120
+ 'win8.1' => 'win8_32x32.png',
1121
+ 'winnt' => 'winxp_32x32.png',
1122
+ 'winvista' => 'winxp_32x32.png',
1123
+ 'ios' => 'ios_32x32.png',
1124
+ );
1125
+
1126
+ if(isset($os_images[$os])) {
1127
+ return $os_images[$os];
1128
+ }
1129
+
1130
+ return false;
1131
+ }
1132
+
1133
+ public static function current_page_url() {
1134
+ $pageURL = 'http';
1135
+ if( isset($_SERVER["HTTPS"]) ) {
1136
+ if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
1137
+ }
1138
+ $pageURL .= "://";
1139
+ if ($_SERVER["SERVER_PORT"] != "80") {
1140
+ $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
1141
+ } else {
1142
+ $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
1143
+ }
1144
+ return $pageURL;
1145
+ }
1146
+
1147
+ public static function is_logged_in_and_current_user($user_id) {
1148
+ $current_user = self::get_currentuserinfo();
1149
+
1150
+ return (self::is_user_logged_in() and (is_object($current_user) && $current_user->ID == $user_id));
1151
+ }
1152
+
1153
+ public static function is_logged_in_and_an_admin() {
1154
+ return (self::is_user_logged_in() and self::is_admin());
1155
+ }
1156
+
1157
+ public static function is_logged_in_and_a_subscriber() {
1158
+ return (self::is_user_logged_in() and self::is_subscriber());
1159
+ }
1160
+
1161
+ public static function is_admin() {
1162
+ return current_user_can('administrator');
1163
+ }
1164
+
1165
+ public static function is_subscriber() {
1166
+ return (current_user_can('subscriber'));
1167
+ }
1168
+
1169
+ /* PLUGGABLE FUNCTIONS AS TO NOT STEP ON OTHER PLUGINS' CODE */
1170
+ public static function include_pluggables($function_name) {
1171
+ if(!function_exists($function_name)) {
1172
+ require_once(ABSPATH.WPINC.'/pluggable.php');
1173
+ }
1174
+ }
1175
+
1176
+ public static function is_user_logged_in() {
1177
+ self::include_pluggables('is_user_logged_in');
1178
+ return is_user_logged_in();
1179
+ }
1180
+
1181
+ public static function get_currentuserinfo() {
1182
+ self::include_pluggables('wp_get_current_user');
1183
+ $current_user = wp_get_current_user();
1184
+
1185
+ if(isset($current_user->ID) && $current_user->ID > 0) {
1186
+ return $current_user;
1187
+ }
1188
+ else {
1189
+ return false;
1190
+ }
1191
+ }
1192
+
1193
+ // Get new messages every 1/2 hour
1194
+ public static function get_main_message($message = '',$expiration = 43200) { //43200 = 12 hours
1195
+ global $plp_update;
1196
+
1197
+ // Set the default message
1198
+ if(empty($message)) {
1199
+ $message = sprintf( __( 'Get started by %1$sadding a URL%2$s that you want to turn into a pretty link.<br/>' .
1200
+ 'Come back to see how many times it was clicked.' , 'pretty-link' ),
1201
+ '<a href="' . admin_url( 'admin.php?page=add-new-pretty-link' ) . '">', '</a>' );
1202
+ }
1203
+
1204
+ //Pro users don't want to be spammed
1205
+ if($plp_update->is_installed_and_activated()) { return $message; }
1206
+
1207
+ $messages = get_site_transient('_prli_messages');
1208
+
1209
+ // if the messages array has expired go back to the mothership
1210
+ if(!$messages) {
1211
+ $message_mothership = "https://s3.amazonaws.com/plpmessages/plp_messages.json";
1212
+
1213
+ if(!class_exists('WP_Http')) {
1214
+ include_once(ABSPATH . WPINC . '/class-http.php');
1215
+ }
1216
+
1217
+ $http = new WP_Http;
1218
+ $response = $http->request( $message_mothership );
1219
+
1220
+ if( isset($response) and
1221
+ is_array($response) and // if response is an error then WP_Error will be returned
1222
+ isset($response['body']) and
1223
+ !empty($response['body'])) {
1224
+ $messages = json_decode($response['body']);
1225
+ }
1226
+ else {
1227
+ $messages = array($message);
1228
+ }
1229
+
1230
+ set_site_transient("_prli_messages", $messages, $expiration);
1231
+ }
1232
+
1233
+ if(empty($messages) or !$messages or !is_array($messages)) {
1234
+ return $message;
1235
+ }
1236
+ else {
1237
+ return $messages[array_rand($messages)];
1238
+ }
1239
+ }
1240
+
1241
+ public static function get_post_content($post_id) {
1242
+ $post = get_post($post_id);
1243
+
1244
+ $content = $post->post_content;
1245
+ $content = apply_filters('the_content', $content);
1246
+ $content = str_replace(']]>', ']]&gt;', $content);
1247
+
1248
+ return $content;
1249
+ }
1250
+
1251
+ public static function now() {
1252
+ return date('Y-m-d H:i:s');
1253
+ }
1254
+
1255
+ public static function site_domain() {
1256
+ return preg_replace('#^https?://(www\.)?([^\?\/]*)#', '$2', home_url());
1257
+ }
1258
+
1259
+ public static function is_prli_admin($user_id=null) {
1260
+ $prli_cap = 'install_plugins';
1261
+
1262
+ if(empty($user_id)) {
1263
+ return current_user_can($prli_cap);
1264
+ }
1265
+ else {
1266
+ return user_can($user_id, $prli_cap);
1267
+ }
1268
+ }
1269
+ }
1270
+
app/models/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/views/admin/errors.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+
3
+ <?php if(isset($errors) && $errors != null && count($errors) > 0): ?>
4
+ <div class="error notice is-dismissible below-h2">
5
+ <ul>
6
+ <?php foreach($errors as $error): ?>
7
+ <li><strong><?php _e('ERROR', 'pretty-link'); ?></strong>: <?php print $error; ?></li>
8
+ <?php endforeach; ?>
9
+ </ul>
10
+ </div>
11
+ <?php endif; ?>
12
+ <?php if( isset($message) and !empty($message) ): ?>
13
+ <div class="updated notice notice-success is-dismissible">
14
+ <p><?php echo $message; ?></p>
15
+ </div>
16
+ <?php endif; ?>
app/views/admin/update/activation_warning.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+ <?php global $plp_update; ?>
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>
5
+ <?php elseif($plp_update->was_activated_with_username_and_password()): ?>
6
+ <div class="prli-red-notice">
7
+ <h2><?php _e('Pretty Link Pro isn\'t able to get critical automatic updates', 'pretty-link'); ?></h2>
8
+ <p><?php _e('It looks like you used to have Pretty Link 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://prettylinkpro.com/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>
11
+ </div>
12
+ <?php else: ?>
13
+ <div class="prli-red-notice">
14
+ <h2><?php _e('Pretty Link Pro isn\'t able to get critical automatic updates', 'pretty-link'); ?></h2>
15
+ <p><strong><?php printf(__('You can purchase a license key at %1$sPrettyLinkPro.com%2$s to enable automatic updates today.', 'pretty-link'), '<a href="https://prettylinkpro.com/" target="_blank">','</a>'); ?></strong></p>
16
+ </div>
17
+ <?php endif; ?>
18
+
app/views/admin/update/addon_popup.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+
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>
7
+
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>
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://www.prettylinkpro.com/marketing/" target="_blank">', '</a>'); ?></p>
13
+ <?php endif; ?>
14
+ <br/>
15
+ <center>
16
+ <div data-addon="<?php echo $k; ?>">
17
+ <?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>
19
+ <?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>
21
+ <?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>
23
+ </div>
24
+ </center>
25
+ <br/>
26
+ </div>
27
+
app/views/admin/update/addons.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+
3
+ <div class="prli-page-title"><?php _e('Pretty Link Add-ons', 'pretty-link'); ?></div>
4
+
5
+ <?php $addons = PrliUpdateController::addons(true); ?>
6
+
7
+ <?php if(empty($addons)): ?>
8
+ <h3><?php _e('There were no Add-ons found for your license or lack thereof...', 'pretty-link'); ?></h3>
9
+ <?php else: ?>
10
+ <table class="widefat">
11
+
12
+ <thead>
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>
17
+ </tr>
18
+ </thead>
19
+
20
+ <tbody>
21
+ <?php $alternate = true; ?>
22
+ <?php foreach($addons as $slug => $info):
23
+ $info = (object)$info;
24
+
25
+ $update_available = false;
26
+ if(($installed = (isset($info->extra_info->directory) && is_dir(WP_PLUGIN_DIR . '/' . $info->extra_info->directory)))) {
27
+ $update_available = PrliAddonsHelper::is_update_available($info->extra_info->main_file, $info->version);
28
+ }
29
+
30
+ include_once(ABSPATH . 'wp-admin/includes/plugin.php');
31
+ $active = (isset($info->extra_info->main_file) && is_plugin_active($info->extra_info->main_file));
32
+
33
+ ?>
34
+ <tr class="<?php echo $alternate ? 'alternate' : ''; ?>">
35
+ <td>
36
+ <strong>
37
+ <?php
38
+
39
+ echo isset($info->extra_info->list_title) ? $info->extra_info->list_title : $info->product_name;
40
+
41
+ if($update_available) {
42
+ echo ' ' . __('(Update Available)', 'pretty-link');
43
+ }
44
+ ?>
45
+ </strong>
46
+ </td>
47
+ <td><?php echo $info->extra_info->description; ?></td>
48
+ <td>
49
+ <?php if($installed && $active): ?>
50
+ <a class="button" href="" style="pointer-events: none;" disabled><?php _e('Installed & Active', 'pretty-link'); ?></a>
51
+ <?php elseif($installed && !$active): ?>
52
+ <a class="button" href="" style="pointer-events: none;" disabled><?php _e('Installed & Inactive', 'pretty-link'); ?></a>
53
+ <?php else: ?>
54
+ <a class="button button-primary" href="<?php echo PrliAddonsHelper::install_url($slug); ?>"><?php _e('Install', 'pretty-link'); ?></a>
55
+ <?php endif; ?>
56
+ </td>
57
+ </tr>
58
+
59
+ <?php $alternate = !$alternate; ?>
60
+ <?php endforeach; ?>
61
+ </tbody>
62
+
63
+ </table>
64
+ <?php endif; ?>
65
+
app/views/admin/update/edge_updates.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
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); ?>/>&nbsp;<?php _e('Include Pretty Link 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" />
5
+ </div>
6
+
app/views/admin/update/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php /* Silence will fall */ ?>
app/views/admin/update/license.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+ <?php global $plp_update; ?>
3
+
4
+ <div class="prli-page-title"><?php _e('Pretty Link Pro License', 'pretty-link'); ?></div>
5
+
6
+ <?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 Link 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://prettylinkpro.com">prettylinkpro.com</a>', '<a href="http://prettylinkpro.com/login">prettylinkpro.com/login</a>'); ?></p>
8
+ <form name="activation_form" method="post" action="">
9
+ <?php wp_nonce_field('activation_form'); ?>
10
+
11
+ <table class="form-table">
12
+ <tr class="form-field">
13
+ <td valign="top" width="225px"><?php _e('Enter Your Pretty Link Pro License Key:', 'pretty-link'); ?></td>
14
+ <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); ?>"/>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ <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()); ?>" />
21
+ </p>
22
+ </form>
23
+
24
+ <?php if(!$plp_update->is_installed()): ?>
25
+ <div>&nbsp;</div>
26
+
27
+ <div class="prli-page-title"><?php _e('Upgrade to Pro', 'pretty-link'); ?></div>
28
+
29
+ <div>
30
+ <?php printf(__('It looks like you\'re missing out on quite a few awesome features because you haven\'t %1$sUpgraded to Pretty Link Pro%2$s yet. Here are just a few of the features you\'re missing out on:', 'pretty-link'),'<a href="http://prettylinkpro.com" target="_blank">',"</a>") ?>
31
+ </div>
32
+
33
+ <div>&nbsp;</div>
34
+
35
+ <ul style="padding-left: 25px">
36
+ <li>&bullet; <?php _e('Cloaked Redirects', 'pretty-link'); ?></li>
37
+ <li>&bullet; <?php _e('Keyword Link Replacements', 'pretty-link'); ?></li>
38
+ <li>&bullet; <?php _e('Weighted Link Rotations', 'pretty-link'); ?></li>
39
+ <li>&bullet; <?php _e('Link Expirations', 'pretty-link'); ?></li>
40
+ <li>&bullet; <?php _e('Geographic Redirects', 'pretty-link'); ?></li>
41
+ <li>&bullet; <?php _e('Technology Based Redirects', 'pretty-link'); ?></li>
42
+ <li>&bullet; <?php _e('Time Period Redirects', 'pretty-link'); ?></li>
43
+ <li>&bullet; <?php _e('Double Redirects', 'pretty-link'); ?></li>
44
+ <li>&bullet; <?php _e('Split Tests', 'pretty-link'); ?></li>
45
+ <li>&bullet; <?php _e('Automated Link Disclosures', 'pretty-link'); ?></li>
46
+ <li>&bullet; <?php _e('... and much more', 'pretty-link'); ?></li>
47
+ </ul>
48
+
49
+ <div>&nbsp;</div>
50
+
51
+ <div><a href="https://prettylinkpro.com" class="button button-primary"><?php _e('Upgrade to Pro today!', 'pretty-link'); ?></a></div>
52
+ <?php endif; ?>
53
+ <?php else: ?>
54
+ <div class="prli-license-active">
55
+ <div><h4><?php _e('Active License Key Information:', 'pretty-link'); ?></h4></div>
56
+ <table>
57
+ <tr>
58
+ <td><?php _e('License Key:', 'pretty-link'); ?></td>
59
+ <td>********-****-****-****-<?php echo substr($li['license_key']['license'], -12); ?></td>
60
+ </tr>
61
+ <tr>
62
+ <td><?php _e('Status:', 'pretty-link'); ?></td>
63
+ <td><?php printf(__('<b>Active on %s</b>', 'pretty-link'), PrliUtils::site_domain()); ?></td>
64
+ </tr>
65
+ <tr>
66
+ <td><?php _e('Product:', 'pretty-link'); ?></td>
67
+ <td><?php echo $li['product_name']; ?></td>
68
+ </tr>
69
+ <tr>
70
+ <td><?php _e('Activations:', 'pretty-link'); ?></td>
71
+ <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>
72
+ </tr>
73
+ </table>
74
+ <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 Link 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>
75
+ </div>
76
+ <?php if(!$this->is_installed()): ?>
77
+ <div><a href="<?php echo $this->update_plugin_url(); ?>" class="button button-primary"><?php _e('Upgrade plugin to Pro', 'pretty-link'); ?></a></div>
78
+ <div>&nbsp;</div>
79
+ <?php endif; ?>
80
+ <?php require(PRLI_VIEWS_PATH.'/admin/update/edge_updates.php'); ?>
81
+ <br/>
82
+ <div id="prli-version-string"><?php printf(__("You're currently running version %s of Pretty Link Pro", 'pretty-link'), '<b>'.PRLI_VERSION.'</b>'); ?></div>
83
+ <?php endif; ?>
84
+
app/views/admin/update/ui.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+ <div class="wrap">
3
+ <?php echo PrliAppHelper::page_title(__('Activate Pretty Link Pro', 'pretty-link')); ?>
4
+ <?php require(PRLI_VIEWS_PATH.'/admin/errors.php'); ?>
5
+
6
+ <div class="prli_spacer"></div>
7
+ <table class="prli-settings-table">
8
+ <tr class="prli-mobile-nav">
9
+ <td colspan="2">
10
+ <a href="" class="prli-toggle-nav"><i class="mp-icon-menu"> </i></a>
11
+ </td>
12
+ </tr>
13
+ <tr>
14
+ <td class="prli-settings-table-nav">
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> -->
18
+ <?php do_action('prli_updates_nav_items'); ?>
19
+ </ul>
20
+ </td>
21
+ <td class="prli-settings-table-pages">
22
+ <div class="prli-page" id="license">
23
+ <?php require(PRLI_VIEWS_PATH.'/admin/update/license.php'); ?>
24
+ </div>
25
+ <!--
26
+ <div class="prli-page" id="addons">
27
+ <?php require(PRLI_VIEWS_PATH.'/admin/update/addons.php'); ?>
28
+ </div>
29
+ -->
30
+ <?php do_action('prli_updates_pages'); ?>
31
+ </td>
32
+ </tr>
33
+ </table>
34
+ </div>
{classes/views/prli-clicks → app/views/clicks}/csv.php RENAMED
@@ -2,7 +2,7 @@
2
  if(!defined('ABSPATH'))
3
  die('You are not allowed to call this page directly.');
4
 
5
- if(is_user_logged_in() and current_user_can( 'update_core' ))
6
  {
7
 
8
  $filename = date("ymdHis",time()) . '_' . $link_name . '_pretty_link_clicks_' . $hmin . '-' . $hmax . '.csv';
@@ -12,14 +12,14 @@ if(!defined('ABSPATH'))
12
  header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
13
  header("Cache-Control: no-cache, must-revalidate");
14
  header("Pragma: no-cache");
15
-
16
  echo '"Browser","Browser Version","Platform","IP","Visitor ID","Timestamp","Host","URI","Referrer","Link"' . "\n";
17
  foreach($clicks as $click)
18
  {
19
  $link = $prli_link->getOne($click->link_id);
20
-
21
- echo "\"$click->btype\",\"$click->bversion\",\"$click->os\",\"$click->ip\",\"$click->vuid\",\"$click->created_at\",\"$click->host\",\"$click->uri\",\"$click->referer\",\"" . ((empty($link->name))?$link->slug:esc_html($link->name)) . "\"\n";
22
  }
23
  }
24
  else
25
- header("Location: " . $prli_blogurl);
2
  if(!defined('ABSPATH'))
3
  die('You are not allowed to call this page directly.');
4
 
5
+ if(is_user_logged_in() and current_user_can('level_10'))
6
  {
7
 
8
  $filename = date("ymdHis",time()) . '_' . $link_name . '_pretty_link_clicks_' . $hmin . '-' . $hmax . '.csv';
12
  header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
13
  header("Cache-Control: no-cache, must-revalidate");
14
  header("Pragma: no-cache");
15
+
16
  echo '"Browser","Browser Version","Platform","IP","Visitor ID","Timestamp","Host","URI","Referrer","Link"' . "\n";
17
  foreach($clicks as $click)
18
  {
19
  $link = $prli_link->getOne($click->link_id);
20
+
21
+ echo "\"$click->btype\",\"$click->bversion\",\"$click->os\",\"$click->ip\",\"$click->vuid\",\"$click->created_at\",\"$click->host\",\"$click->uri\",\"$click->referer\",\"" . ((empty($link->name))?$link->slug:$link->name) . "\"\n";
22
  }
23
  }
24
  else
25
+ header("Location: " . $prli_blogurl);
app/views/clicks/csv_download.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+ <div class="wrap">
3
+ <?php echo PrliAppHelper::page_title(__('Download Clicks', 'pretty-link')); ?>
4
+ <span style="font-size: 14px; font-weight: bold;">For <?php echo stripslashes($link_name); ?>: </span>
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>
8
+ <br/>
9
+ <ul>
10
+ <?php
11
+ for($i=$hit_page_count; $i>0; $i--) {
12
+ $hit_min = 0;
13
+
14
+ if($i) { $hit_min = ($i - 1) * $max_rows_per_file; }
15
+
16
+ if($i==$hit_page_count) {
17
+ $hit_max = $hit_record_count;
18
+ }
19
+ else {
20
+ $hit_max = ($i * $max_rows_per_file) - 1;
21
+ }
22
+
23
+ $hit_count = $hit_max - $hit_min + 1;
24
+ $report_label = sprintf(__('Clicks %d-%d (%d Records)', 'pretty-link'), $hit_min, $hit_max, $hit_count);
25
+ $hit_param_delim = (preg_match('#\?#',$hit_report_url)?'&':'?');
26
+
27
+ ?>
28
+ <li><a href="<?php echo $hit_report_url . $hit_param_delim; ?>prli_page=<?php echo $i; ?>"><?php echo $report_label; ?></a></li>
29
+ <?php
30
+ }
31
+ ?>
32
+ </ul>
33
+ </div>
34
+
app/views/clicks/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/views/clicks/list.php ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+
3
+ <div class="wrap">
4
+ <?php echo PrliAppHelper::page_title(__('Clicks', 'pretty-link')); ?>
5
+ <br/>
6
+ <span style="font-size: 14px;"><?php echo __('For', 'pretty-link').' '.stripslashes($link_name); ?>: </span>
7
+ <?php
8
+ // Don't show this sheesh if we're displaying the vuid or ip grouping
9
+ if(empty($params['ip']) and empty($params['vuid'])) {
10
+ ?>
11
+ <a href="#" class="filter_toggle button button-primary" style="vertical-align:middle;"><?php _e('Customize Report', 'pretty-link'); ?></a>
12
+ <?php
13
+ }
14
+ ?>
15
+
16
+ <?php
17
+ if(!empty($params['l']) && $params['l'] != 'all') {
18
+ echo '<br/><a href="'.admin_url("admin.php?page=pretty-link-clicks").'">&laquo '.__("Back to Links", 'pretty-link').'</a>';
19
+ }
20
+ else if(!empty($params['ip']) || !empty($params['vuid'])) {
21
+ echo '<br/><a href="'.admin_url('admin.php?page=pretty-link-clicks').'">&laquo '.__("Back to Clicks", 'pretty-link').'</a>';
22
+ }
23
+
24
+ if(empty($params['ip']) && empty($params['vuid'])) {
25
+ ?>
26
+
27
+ <div class="filter_pane" style="margin-top:15px;">
28
+ <form class="form-fields" name="form2" method="post" action="">
29
+ <?php wp_nonce_field('prli-reports'); ?>
30
+ <span><?php _e('Type:', 'pretty-link'); ?></span>&nbsp;
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'); ?>&nbsp;</option>
33
+ <option value="unique"<?php selected($params['type'] == 'unique'); ?>><?php _e('Unique Clicks', 'pretty-link'); ?>&nbsp;</option>
34
+ </select>
35
+ <br/>
36
+ <br/>
37
+ <span><?php _e('Date Range:', 'pretty-link'); ?></span>
38
+ <div id="dateselectors" style="display: inline;">
39
+ <input type="text" name="sdate" id="sdate" value="<?php echo $params['sdate']; ?>" style="display:inline;"/>&nbsp;<?php _e('to', 'pretty-link'); ?>&nbsp;<input type="text" name="edate" id="edate" value="<?php echo $params['edate']; ?>" style="display:inline;"/>
40
+ </div>
41
+ <br/>
42
+ <br/>
43
+ <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Customize" class="button button-primary" /> &nbsp; <a href="#" class="filter_toggle button"><?php _e('Cancel', 'pretty-link'); ?></a></div>
44
+ </form>
45
+ </div>
46
+
47
+ <div id="my_chart" style="margin-top:15px;"></div>
48
+
49
+ <?php
50
+ }
51
+ $navstyle = "float: right;";
52
+ require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
53
+ ?>
54
+
55
+ <div id="search_pane" style="margin-top:25px;margin-bottom:15px;">
56
+ <form class="form-fields" name="click_form" method="post" action="">
57
+ <?php wp_nonce_field('prli-clicks'); ?>
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; ?>" />
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"/>
63
+ <?php if(!empty($search_str)): ?>
64
+ &nbsp; <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>
65
+ <?php endif; ?>
66
+ </div>
67
+ </form>
68
+ </div>
69
+ <table class="widefat post fixed" cellspacing="0">
70
+ <thead>
71
+ <tr>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
76
+ </th>
77
+ <?php } ?>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
80
+ </th>
81
+ <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
84
+ </th>
85
+ <?php } ?>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
88
+ </th>
89
+ <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
92
+ </th>
93
+ <?php } ?>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
96
+ </th>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
99
+ </th>
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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
102
+ </th>
103
+ </tr>
104
+ </thead>
105
+ <?php
106
+
107
+ if(count($clicks) <= 0)
108
+ {
109
+ ?>
110
+ <tr>
111
+ <td colspan="8"><?php _e('No Clicks have been recorded yet', 'pretty-link'); ?></td>
112
+ </tr>
113
+ <?php
114
+ }
115
+ else
116
+ {
117
+ $row_index=0;
118
+ foreach($clicks as $click) {
119
+ $alternate = ( $row_index++ % 2 ? '' : 'alternate' );
120
+
121
+ ?>
122
+ <tr id="record_<?php echo $click->id; ?>" class="<?php echo $alternate; ?>">
123
+
124
+ <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ): ?>
125
+ <td>
126
+ <?php
127
+ $browser_image = PrliUtils::browser_image($click->btype);
128
+ $os_image = PrliUtils::os_image($click->os);
129
+ ?>
130
+
131
+ <?php if(false===$browser_image): ?>
132
+ <span style="font-size: 16px; cursor: pointer;" title="<?php echo $click->btype; ?>"><strong>?</strong></span>
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;" />
135
+ <?php endif; ?>
136
+ </td>
137
+
138
+ <td>
139
+ <?php if(false===$os_image): ?>
140
+ <span style="font-size: 16px; cursor: pointer;" title="<?php echo $click->os; ?>"><strong>?</strong></span>
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>
143
+ <?php endif; ?>
144
+ </td>
145
+ <?php endif; ?>
146
+
147
+ <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>
148
+
149
+ <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ): ?>
150
+ <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>
151
+ <?php endif; ?>
152
+
153
+ <td><?php echo $click->created_at; ?></td>
154
+
155
+ <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ): ?>
156
+ <td><?php echo $click->host; ?></td>
157
+ <?php endif; ?>
158
+
159
+ <td><?php echo $click->uri; ?></td>
160
+ <td><a href="<?php echo $click->referer; ?>"><?php echo $click->referer; ?></a></td>
161
+ <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>
162
+ </tr>
163
+ <?php
164
+
165
+ }
166
+ }
167
+ ?>
168
+ <tfoot>
169
+ <tr>
170
+ <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
171
+ <th class="manage-column"><?php _e('Browser', 'pretty-link'); ?></th>
172
+ <th class="manage-column"><?php _e('OS', 'pretty-link'); ?></th>
173
+ <?php } ?>
174
+ <th class="manage-column"><?php _e('IP', 'pretty-link'); ?></th>
175
+ <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
176
+ <th class="manage-column"><?php _e('Visitor', 'pretty-link'); ?></th>
177
+ <?php } ?>
178
+ <th class="manage-column"><?php _e('Timestamp', 'pretty-link'); ?></th>
179
+ <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
180
+ <th class="manage-column"><?php _e('Host', 'pretty-link'); ?></th>
181
+ <?php } ?>
182
+ <th class="manage-column"><?php _e('URI', 'pretty-link'); ?></th>
183
+ <th class="manage-column"><?php _e('Referrer', 'pretty-link'); ?></th>
184
+ <th class="manage-column"><?php _e('Link', 'pretty-link'); ?></th>
185
+ </tr>
186
+ </tfoot>
187
+ </table>
188
+
189
+ <br/>
190
+ <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>
191
+
192
+ <?php
193
+ require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
194
+ ?>
195
+
196
+ </div>
app/views/groups/edit.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) die('You are not allowed to call this page directly.'); ?>
2
+
3
+ <div class="wrap">
4
+ <?php echo PrliAppHelper::page_title(__('Edit Group', 'pretty-link')); ?>
5
+
6
+ <?php require(PRLI_VIEWS_PATH.'/shared/errors.php'); ?>
7
+
8
+ <form name="form1" method="post" action="<?php echo admin_url("admin.php?page=pretty-link-groups"); ?>">
9
+ <input type="hidden" name="action" value="update">
10
+ <input type="hidden" name="id" value="<?php echo $id; ?>">
11
+ <?php wp_nonce_field('update-options'); ?>
12
+
13
+ <table class="form-table">
14
+ <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>
18
+ </tr>
19
+ <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>
23
+ </tr>
24
+ <tr class="form-field" valign="top">
25
+ <td valign="top"><?php _e('Links:', 'pretty-link'); ?> </td>
26
+ <td valign="top">
27
+ <div style="height: 400px; width: 95%; border: 1px solid #8cbdd5; overflow: auto;">
28
+ <table width="100%" cellspacing="0">
29
+ <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>
32
+ </thead>
33
+ <?php
34
+ for($i = 0; $i < count($links); $i++) {
35
+ $link = $links[$i];
36
+
37
+ ?>
38
+ <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>&nbsp;<?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>
41
+ </tr>
42
+ <?php
43
+
44
+ }
45
+ ?>
46
+ </table>
47
+ </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>
49
+ </td>
50
+ </tr>
51
+ </table>
52
+
53
+ <p class="submit">
54
+ <input type="submit" class="button button-primary" name="submit" value="<?php _e('Update', 'pretty-link'); ?>" /> &nbsp; <a href="<?php echo admin_url('admin.php?page=pretty-link-groups'); ?>" class="button"><?php _e('Cancel', 'pretty-link'); ?></a>
55
+ </p>
56
+ </form>
57
+ </div>
app/views/groups/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/views/groups/list.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH'))
3
+ die('You are not allowed to call this page directly.');
4
+ ?>
5
+ <div class="wrap">
6
+ <?php echo PrliAppHelper::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>
8
+ <hr class="wp-header-end">
9
+
10
+ <?php if(empty($groups)): ?>
11
+ <div class="updated notice notice-success is-dismissible"><p><?php echo $prli_message; ?></p></div>
12
+ <?php endif; ?>
13
+
14
+ <div id="search_pane" style="float: right;">
15
+ <form class="form-fields" name="group_form" method="post" action="">
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; ?>" />
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"/>
21
+ <?php
22
+ if(!empty($search_str)) {
23
+ ?>
24
+ &nbsp; <a href="<?php echo admin_url("admin.php?page=pretty-link-groups"); ?>" class="button"><?php _e('Reset', 'pretty-link'); ?></a>
25
+ <?php
26
+ }
27
+ ?>
28
+ </div>
29
+ </form>
30
+ </div>
31
+
32
+ <?php
33
+ require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
34
+ ?>
35
+
36
+ <table class="widefat post fixed" cellspacing="0">
37
+ <thead>
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')?'&nbsp;&nbsp;&nbsp;<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')?'&nbsp;&nbsp;&nbsp;<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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
42
+ </tr>
43
+ </thead>
44
+ <?php
45
+
46
+ if($record_count <= 0)
47
+ {
48
+ ?>
49
+ <tr>
50
+ <td colspan="5"><?php _e('No Pretty Link Groups were found', 'pretty-link'); ?></td>
51
+ </tr>
52
+ <?php
53
+ }
54
+ else
55
+ {
56
+ $row_index=0;
57
+ foreach($groups as $group)
58
+ {
59
+ $alternate = ( $row_index++ % 2 ? '' : 'alternate' );
60
+ ?>
61
+ <tr id="record_<?php echo $group->id; ?>" class="<?php echo $alternate; ?>">
62
+ <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>
64
+ <br/>
65
+ <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>&nbsp;|
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>&nbsp;|
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>&nbsp;|
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>
70
+ </div>
71
+ </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>
74
+ </tr>
75
+ <?php
76
+ }
77
+ }
78
+ ?>
79
+ <tfoot>
80
+ <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>
84
+ </tr>
85
+ </tfoot>
86
+ </table>
87
+ <?php
88
+ require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
89
+ ?>
90
+
91
+ </div>
app/views/groups/new.php ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH'))
3
+ die('You are not allowed to call this page directly.');
4
+
5
+ $name = isset($_POST['name']) ? esc_html($_POST['name']) : '';
6
+ ?>
7
+
8
+ <div class="wrap">
9
+ <?php echo PrliAppHelper::page_title(__('New Group', 'pretty-link')); ?>
10
+
11
+ <?php
12
+ require(PRLI_VIEWS_PATH.'/shared/errors.php');
13
+ ?>
14
+
15
+ <form name="form1" method="post" action="<?php echo admin_url("admin.php?page=pretty-link-groups"); ?>">
16
+ <input type="hidden" name="action" value="create">
17
+ <?php wp_nonce_field('update-options'); ?>
18
+
19
+ <table class="form-table">
20
+ <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>
24
+ </tr>
25
+ <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']))?$_POST['description']:''); ?></textarea>
28
+ <br/><span class="setting-description"><?php _e('A Description of this group.', 'pretty-link'); ?></span></td>
29
+ </tr>
30
+ <tr class="form-field" valign="top">
31
+ <td valign="top"><?php _e('Links:', 'pretty-link'); ?> </td>
32
+ <td valign="top">
33
+ <div style="height: 400px; width: 95%; border: 1px solid #8cbdd5; overflow: auto;">
34
+ <table width="100%" cellspacing="0">
35
+ <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>
38
+ </thead>
39
+ <?php
40
+ for($i = 0; $i < count($links); $i++) {
41
+ $link = $links[$i];
42
+ ?>
43
+ <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"':''); ?>/>&nbsp;<?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>
46
+ </tr>
47
+ <?php
48
+ }
49
+ ?>
50
+ </table>
51
+ </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>
53
+ </td>
54
+ </tr>
55
+ </table>
56
+
57
+ <p class="submit">
58
+ <input type="submit" class="button button-primary" name="submit" value="<?php _e('Create', 'pretty-link'); ?>" /> &nbsp; <a href="<?php echo admin_url("admin.php?page=pretty-link-groups"); ?>" class="button"><?php _e('Cancel', 'pretty-link'); ?></a>
59
+ </p>
60
+
61
+ </form>
62
+ </div>
app/views/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/views/links/edit.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
+
3
+ <div class="wrap">
4
+ <?php echo PrliAppHelper::page_title(__('Edit Link', 'pretty-link')); ?>
5
+
6
+ <?php require(PRLI_VIEWS_PATH.'/shared/errors.php'); ?>
7
+
8
+ <form name="form1" method="post" action="<?php echo admin_url('admin.php?page=pretty-link'); ?>">
9
+ <input type="hidden" name="action" value="update">
10
+ <input type="hidden" name="id" value="<?php echo $id; ?>">
11
+ <?php wp_nonce_field('update-options'); ?>
12
+
13
+ <?php require(PRLI_VIEWS_PATH.'/links/form.php'); ?>
14
+
15
+ <p class="submit">
16
+ <input type="submit" class="button button-primary" name="submit" value="<?php _e('Update', 'pretty-link'); ?>" /> &nbsp; <a href="<?php echo admin_url('admin.php?page=pretty-link'); ?>" class="button"><?php _e('Cancel', 'pretty-link'); ?></a>
17
+ </p>
18
+ </form>
19
+ </div>
app/views/links/form.php ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
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') ?>&nbsp;</option>
16
+ <option value="302"<?php echo esc_html($values['redirect_type']['302']); ?>><?php _e("302 (Temporary)", 'pretty-link') ?>&nbsp;</option>
17
+ <option value="301"<?php echo esc_html($values['redirect_type']['301']); ?>><?php _e("301 (Permanent)", 'pretty-link') ?>&nbsp;</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(__("To Enable Cloaked, Meta-Refresh, Javascript, Pixel and Pretty Bar Redirection, upgrade to %sPretty Link Pro%s", 'pretty-link'),'<a href="http://prettylinkpro.com" 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>
40
+ </td>
41
+ </tr>
42
+ <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']); ?>" />
53
+ </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>
79
+ </td>
80
+ </tr>
81
+ </table>
82
+
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
+ <?php
102
+ 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']); ?>&nbsp;</option>
105
+ <?php
106
+ }
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
+ <?php
175
+ 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
+ <?php
182
+ 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
+ <?php
187
+ endif;
188
+ endif;
189
+ ?>
190
+ </td>
191
+ </tr>
192
+ </tbody>
193
+ </table>
194
+ </div>
195
+ </div>
196
+ <div>&nbsp;</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
+ <?php
202
+ global $plp_update;
203
+ if($plp_update->is_installed()) {
204
+ ?>
205
+ <table class="form-table" id="prli-link-pro-options-box">
206
+ <?php
207
+
208
+ $id = isset($id)?$id:false;
209
+ // Add stuff to the form here
210
+ do_action('prli_link_fields',$id);
211
+
212
+ ?>
213
+ </table>
214
+ <?php
215
+ }
216
+ else {
217
+ ?>
218
+ <h2><?php _e('Oops!', 'pretty-link'); ?></h2>
219
+
220
+ <div>
221
+ <?php printf(__('It looks like you\'re missing out on quite a few awesome features because you haven\'t %1$sUpgraded to Pretty Link Pro%2$s yet. Here are just a few of the features you\'re missing out on:', 'pretty-link'),'<a href="http://prettylinkpro.com" target="_blank">',"</a>") ?>
222
+ </div>
223
+ <div>&nbsp;</div>
224
+ <ul style="padding-left: 25px;">
225
+ <li>&bullet; <?php _e('Cloaked Redirects', 'pretty-link'); ?></li>
226
+ <li>&bullet; <?php _e('Keyword Link Replacements', 'pretty-link'); ?></li>
227
+ <li>&bullet; <?php _e('Weighted Link Rotations', 'pretty-link'); ?></li>
228
+ <li>&bullet; <?php _e('Link Expirations', 'pretty-link'); ?></li>
229
+ <li>&bullet; <?php _e('Geographic Redirects', 'pretty-link'); ?></li>
230
+ <li>&bullet; <?php _e('Technology Based Redirects', 'pretty-link'); ?></li>
231
+ <li>&bullet; <?php _e('Time Period Redirects', 'pretty-link'); ?></li>
232
+ <li>&bullet; <?php _e('Double Redirects', 'pretty-link'); ?></li>
233
+ <li>&bullet; <?php _e('Split Tests', 'pretty-link'); ?></li>
234
+ <li>&bullet; <?php _e('Automated Link Disclosures', 'pretty-link'); ?></li>
235
+ <li>&bullet; <?php _e('... and much more', 'pretty-link'); ?></li>
236
+ </ul>
237
+ <div>&nbsp;</div>
238
+ <div><a href="https://prettylinkpro.com" class="button button-primary"><?php _e('Upgrade to Pro today!', 'pretty-link'); ?></a></div>
239
+ <?php
240
+ }
241
+ ?>
242
+ </div>
243
+ </div>
244
+
app/views/links/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/views/links/list.php ADDED
@@ -0,0 +1,160 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH'))
3
+ die('You are not allowed to call this page directly.');
4
+ ?>
5
+
6
+ <div class="wrap">
7
+ <?php echo PrliAppHelper::page_title(__('Links', 'pretty-link')); ?>
8
+ <a href="<?php echo admin_url('admin.php?page=add-new-pretty-link'); ?>" class="page-title-action"><?php _e('Add Pretty Link', 'pretty-link'); ?></a>
9
+ <hr class="wp-header-end">
10
+
11
+ <?php if(empty($params['group'])): ?>
12
+ <?php $permalink_structure = get_option('permalink_structure'); ?>
13
+ <?php if(!$permalink_structure or empty($permalink_structure)): ?>
14
+ <div class="error"><p><strong><?php _e("WordPress Must be Configured:</strong> Pretty Link won't work until you select a Permalink Structure other than 'Default'", 'pretty-link'); ?> ... <a href="<?php echo admin_url('options-permalink.php'); ?>"><?php _e('Permalink Settings', 'pretty-link'); ?></a></p></div>
15
+ <?php endif; //end $permalink_structure ?>
16
+ <?php if($record_count <= 0): ?>
17
+ <div class="updated notice notice-success is-dismissible"><p><?php echo $prli_message; ?></p></div>
18
+ <?php endif; //end $record_count message ?>
19
+ <?php do_action('prli-link-message'); ?>
20
+ <div id="search_pane" style="float: right;">
21
+ <form class="form-fields" name="link_form" method="post" action="">
22
+ <?php wp_nonce_field('prli-links'); ?>
23
+ <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />
24
+ <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />
25
+ <input type="text" name="search" id="search" value="<?php echo esc_attr($search_str); ?>" style="display:inline;"/>
26
+ <div class="submit" style="display: inline;"><input class="button button-primary" type="submit" name="Submit" value="Search"/>
27
+ <?php
28
+ if(!empty($search_str)) {
29
+ ?>
30
+ &nbsp; <a href="<?php echo admin_url('admin.php?page=pretty-link&action=reset'); ?>" class="button"><?php _e('Reset', 'pretty-link'); ?></a>
31
+ <?php
32
+ }
33
+ ?>
34
+ </div>
35
+ </form>
36
+ </div>
37
+ <?php else: //else if Groups ?>
38
+ <h3><?php echo $prli_message; ?></h3>
39
+ <a href="<?php echo admin_url('admin.php?page=pretty-link-groups'); ?>">&laquo <?php _e('Back to Groups', 'pretty-link'); ?></a>
40
+ <br/><br/>
41
+ <?php endif; //end if Groups ?>
42
+ <?php $footer = false; require(PRLI_VIEWS_PATH.'/shared/link-table-nav.php'); ?>
43
+ <table class="prli-edit-table widefat post fixed" cellspacing="0">
44
+ <thead>
45
+ <tr>
46
+ <th class="manage-column" width="30%"><input type="checkbox" name="check-all" class="select-all-link-action-checkboxes" style="margin-left: 1px;"/>&nbsp;&nbsp;<a href="<?php echo admin_url('admin.php?page=pretty-link&sort=name' . (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':'') . $group_param); ?>"><?php _e('Name', 'pretty-link'); echo (($sort_str == 'name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
47
+ <?php do_action('prli_link_column_header'); ?>
48
+ <th class="manage-column" width="10%"><a href="<?php echo admin_url('admin.php?page=pretty-link&sort=clicks' . (($sort_str == 'clicks' and $sdir_str == 'asc')?'&sdir=desc':'') . $group_param); ?>"><?php _e('Clicks / Uniq', 'pretty-link'); echo (($sort_str == 'clicks')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
49
+ <th class="manage-column" width="5%"><a href="<?php echo admin_url('admin.php?page=pretty-link&sort=group_name' . (($sort_str == 'group_name' and $sdir_str == 'asc')?'&sdir=desc':'') . $group_param) ?>"><?php _e('Group', 'pretty-link'); echo (($sort_str == 'group_name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
50
+ <th class="manage-column" width="12%"><a href="<?php echo admin_url('admin.php?page=pretty-link&sort=created_at' . (($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':'') . $group_param); ?>"><?php _e('Created', 'pretty-link'); echo ((empty($sort_str) or $sort_str == 'created_at')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
51
+ <th class="manage-column" width="20%"><a href="<?php echo admin_url('admin.php?page=pretty-link&sort=slug' . (($sort_str == 'slug' and $sdir_str == 'asc')?'&sdir=desc':'') . $group_param); ?>"><?php _e('Links', 'pretty-link'); echo (($sort_str == 'slug')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
52
+ </tr>
53
+ </thead>
54
+ <tr id="bulk-edit" class="inline-edit-row inline-edit-row-post inline-edit-post bulk-edit-row bulk-edit-row-post bulk-edit-post" style="display: none;">
55
+ <td class="colspanchange">
56
+ <form id="prli-bulk-action-form" action="<?php echo admin_url('admin.php'); ?>" method="post">
57
+ <input type="hidden" name="page" value="pretty-link" />
58
+ <input type="hidden" name="action" value="bulk-edit" />
59
+ <input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce('prli-bulk-edit'); ?>" />
60
+ <fieldset class="inline-edit-col-left">
61
+ <div class="inline-edit-col">
62
+ <h4><?php _e('Bulk Edit', 'pretty-link'); ?></h4>
63
+ <div id="bulk-title-div">
64
+ <div id="bulk-titles"></div>
65
+ </div>
66
+ </div>
67
+ </fieldset>
68
+ <fieldset class="inline-edit-col-center">
69
+ <h4><?php _e('Basic Link Options', 'pretty-link'); ?></h4>
70
+ <div class="bacheck-title"><?php _e('Redirect Type', 'pretty-link'); ?></div>
71
+ <?php PrliLinksHelper::redirect_type_dropdown( 'bu[redirect_type]', '', array(__('- No Change -', 'pretty-link') => '##nochange##'), 'bulk-edit-select' ) ?>
72
+ <br/>
73
+ <div class="bacheck-title"><?php _e('Group', 'pretty-link'); ?></div>
74
+ <?php PrliLinksHelper::groups_dropdown('bu[group_id]', '', array(__('- No Change -', 'pretty-link') => '##nochange##'), 'bulk-edit-select'); ?>
75
+ <br/>
76
+ <?php PrliLinksHelper::bulk_action_checkbox_dropdown('bu[track_me]', __('Track', 'pretty-link'), 'bulk-edit-select'); ?>
77
+ <br/>
78
+ <?php PrliLinksHelper::bulk_action_checkbox_dropdown('bu[nofollow]', __('Nofollow', 'pretty-link'), 'bulk-edit-select'); ?>
79
+ <br/>
80
+ <?php PrliLinksHelper::bulk_action_checkbox_dropdown('bu[param_forwarding]', __('Forward Params', 'pretty-link'), 'bulk-edit-select'); ?>
81
+ <br/>
82
+ </fieldset>
83
+ <fieldset class="inline-edit-col-right">
84
+ <?php do_action('prli_bulk_action_right_col'); ?>
85
+ </fieldset>
86
+ <p class="submit inline-edit-save">
87
+ <a href="javascript:" title="<?php _e('Cancel', 'pretty-link'); ?>" class="button-secondary bulk-edit-cancel alignleft"><?php _e('Cancel', 'pretty-link'); ?></a>
88
+ <a href="javascript:" title="<?php _e('Update', 'pretty-link'); ?>" class="button-primary bulk-edit-update alignright"><?php _e('Bulk Update', 'pretty-link'); ?></a><br class="clear">
89
+ </p>
90
+ </form>
91
+ </td>
92
+ </tr>
93
+ <?php
94
+
95
+ if($record_count <= 0) {
96
+ ?>
97
+ <tr>
98
+ <td colspan="5"><?php printf(__('No Pretty Links were found, %sCreate One%s', 'pretty-link'), '<a href="' . admin_url('admin.php?page=add-new-pretty-link') . '">', '</a>'); ?></td>
99
+ </tr>
100
+ <?php
101
+ }
102
+ else {
103
+ global $prli_blogurl;
104
+ $row_index=0;
105
+ foreach($links as $link) {
106
+ $alternate = ( $row_index++ % 2 ? '' : ' alternate' );
107
+ $struct = PrliUtils::get_permalink_pre_slug_uri();
108
+ $pretty_link_url = "{$prli_blogurl}{$struct}{$link->slug}";
109
+ $dln = stripslashes($link->name);
110
+ ?>
111
+
112
+ <tr id="record_<?php echo $link->id; ?>" class="link_row<?php echo $alternate; ?>">
113
+ <td class="edit_link">
114
+
115
+ <input type="checkbox" name="link-action[<?php echo $link->id; ?>]" class="link-action-checkbox" data-id="<?php echo $link->id; ?>" data-title="<?php echo stripslashes($link->name); ?>" />&nbsp;&nbsp;<?php PrliLinksHelper::link_list_icons($link); ?>
116
+ <a class="slug_name" href="<?php echo admin_url('admin.php?page=pretty-link&action=edit&id='.$link->id); ?>" title="<?php echo stripslashes($link->name); ?>"><?php echo substr($dln, 0, 30); echo (strlen($dln) >= 30 ? '...' : ''); ?></a>
117
+ <div class="link_actions">
118
+ <br/>
119
+ <?php echo PrliLinksHelper::link_list_actions($link, $pretty_link_url); ?>
120
+ </div>
121
+ </td>
122
+ <?php do_action('prli_link_column_row',$link->id); ?>
123
+ <td>
124
+ <?php if($prli_options->extended_tracking!='count')
125
+ echo (($link->track_me)?"<a href=\"". admin_url( "admin.php?page=pretty-link-clicks&l={$link->id}" ) . "\" title=\"View clicks for $link->slug\">" . (empty($link->clicks)?0:$link->clicks) . "/" . (empty($link->uniques)?0:$link->uniques) . "</a>":"<img src=\"".PRLI_IMAGES_URL."/not_tracking.png\" title=\"This link isn't being tracked\"/>");
126
+ else
127
+ echo (($link->track_me)?(empty($link->clicks)?0:$link->clicks) . "/" . (empty($link->uniques)?0:$link->uniques):"<img src=\"".PRLI_IMAGES_URL."/not_tracking.png\" title=\"This link isn't being tracked\"/>");
128
+ ?>
129
+ </td>
130
+ <td><a href="<?php echo admin_url( "admin.php?page=pretty-link&group={$link->group_id}"); ?>"><?php echo $link->group_name; ?></a></td>
131
+ <td><?php echo $link->created_at; ?></td>
132
+ </td>
133
+ <td>
134
+ <input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='<?php echo $pretty_link_url; ?>' />
135
+ <span class="list-clippy prli-clipboard"><?php echo $pretty_link_url; ?></span>
136
+ <?php if( $link->redirect_type != 'pixel' )
137
+ {
138
+ ?>
139
+ <span style="font-size: 8px;" title="<?php echo $link->url; ?>"><strong><?php _e('Target URL:', 'pretty-link'); ?></strong> <?php echo htmlentities((substr($link->url,0,47) . ((strlen($link->url) >= 47)?'...':'')),ENT_COMPAT,'UTF-8'); ?></span></td>
140
+ <?php
141
+ }
142
+ ?>
143
+ </tr>
144
+ <?php
145
+ }
146
+ }
147
+ ?>
148
+ <tfoot>
149
+ <tr>
150
+ <th class="manage-column"><?php do_action('prli-list-header-icon'); ?><?php _e('Name', 'pretty-link'); ?></th>
151
+ <?php do_action('prli_link_column_footer'); ?>
152
+ <th class="manage-column"><?php _e('Clicks / Uniq', 'pretty-link'); ?></th>
153
+ <th class="manage-column"><?php _e('Group', 'pretty-link'); ?></th>
154
+ <th class="manage-column"><?php _e('Created', 'pretty-link'); ?></th>
155
+ <th class="manage-column"><?php _e('Links', 'pretty-link'); ?></th>
156
+ </tr>
157
+ </tfoot>
158
+ </table>
159
+ <?php $footer = true; require(PRLI_VIEWS_PATH.'/shared/link-table-nav.php'); ?>
160
+ </div> <!-- end wrap -->
app/views/links/new.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
+
3
+ <div class="wrap">
4
+ <?php echo PrliAppHelper::page_title(__('Add Link', 'pretty-link')); ?>
5
+
6
+ <?php require(PRLI_VIEWS_PATH.'/shared/errors.php'); ?>
7
+
8
+ <form name="form1" method="post" action="<?php echo admin_url("admin.php?page=pretty-link"); ?>">
9
+ <input type="hidden" name="action" value="create">
10
+ <?php wp_nonce_field('update-options'); ?>
11
+
12
+ <?php require(PRLI_VIEWS_PATH.'/links/form.php'); ?>
13
+
14
+ <p class="submit">
15
+ <input type="submit" class="button button-primary" name="submit" value="<?php _e('Create', 'pretty-link'); ?>" /> &nbsp; <a href="<?php echo admin_url('admin.php?page=pretty-link'); ?>" class="button"><?php _e('Cancel', 'pretty-link'); ?></a>
16
+ </p>
17
+ </form>
18
+ </div>
app/views/options/form.php ADDED
@@ -0,0 +1,198 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
+ <div class="wrap">
3
+ <?php echo PrliAppHelper::page_title(__('Options', 'pretty-link')); ?>
4
+ <a href="https://prettylinkpro.com/user-manual-2/" class="page-title-action"><?php _e('User Manual', 'pretty-link'); ?></a>
5
+ <hr class="wp-header-end">
6
+
7
+ <?php
8
+ $permalink_structure = get_option('permalink_structure');
9
+ if(!$permalink_structure or empty($permalink_structure)) {
10
+ global $prli_siteurl;
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>
13
+ <?php
14
+ }
15
+
16
+ do_action('prli-options-message');
17
+ ?>
18
+
19
+ <?php if($update_message): ?>
20
+ <div class="updated notice notice-success is-dismissible"><p><strong><?php echo esc_html($update_message); ?></strong></p></div>
21
+ <?php endif; ?>
22
+
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">
25
+ <?php wp_nonce_field('update-options'); ?>
26
+
27
+ <table class="prli-settings-table">
28
+ <tr class="prli-mobile-nav">
29
+ <td colspan="2">
30
+ <a href="" class="prli-toggle-nav"><i class="pl-icon-menu"> </i></a>
31
+ </td>
32
+ </tr>
33
+ <tr>
34
+ <td class="prli-settings-table-nav">
35
+ <ul class="prli-sidebar-nav">
36
+ <?php if($plp_update->is_installed()): ?>
37
+ <li><a data-id="general"><?php _e('General', 'pretty-link'); ?></a></li>
38
+ <?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>
41
+ <?php do_action('prli_admin_options_nav'); ?>
42
+ </ul>
43
+ </td>
44
+ <td class="prli-settings-table-pages">
45
+ <?php if($plp_update->is_installed()): ?>
46
+ <div class="prli-page" id="general">
47
+ <div class="prli-page-title"><?php _e('General Options', 'pretty-link'); ?></div>
48
+ <?php do_action('prli_admin_general_options'); ?>
49
+ </div>
50
+ <?php endif; ?>
51
+
52
+ <div class="prli-page" id="links">
53
+ <div class="prli-page-title"><?php _e('Default Link Options', 'pretty-link'); ?></div>
54
+ <table class="form-table">
55
+ <tbody>
56
+ <tr valign="top">
57
+ <th scope="row">
58
+ <label for="<?php echo $link_redirect_type; ?>"><?php _e('Redirection Type', 'pretty-link') ?></label>
59
+ <?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'));
62
+ ?>
63
+ </th>
64
+ <td>
65
+ <?php PrliLinksHelper::redirect_type_dropdown($link_redirect_type, $prli_options->link_redirect_type); ?>
66
+ </td>
67
+ </tr>
68
+ <tr valign="top">
69
+ <th scope="row">
70
+ <label for="<?php echo $link_track_me; ?>"><?php _e('Enable Tracking', 'pretty-link'); ?></label>
71
+ <?php PrliAppHelper::info_tooltip('prli-options-track-link',
72
+ __('Enable Tracking', 'pretty-link'),
73
+ __('Default all new links to be tracked.', 'pretty-link'));
74
+ ?>
75
+ </th>
76
+ <td>
77
+ <input type="checkbox" name="<?php echo $link_track_me; ?>" <?php checked($prli_options->link_track_me != 0); ?>/>
78
+ </td>
79
+ </tr>
80
+ <tr valign="top">
81
+ <th scope="row">
82
+ <label for="<?php echo $link_nofollow; ?>"><?php _e('Enable No Follow', 'pretty-link'); ?></label>
83
+ <?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'));
86
+ ?>
87
+ </th>
88
+ <td>
89
+ <input type="checkbox" name="<?php echo $link_nofollow; ?>" <?php checked($prli_options->link_nofollow != 0); ?>/>
90
+ </td>
91
+ </tr>
92
+ <tr valign="top">
93
+ <th scope="row">
94
+ <label for="<?php echo $link_prefix; ?>"><?php _e('Enable Permalink Fix', 'pretty-link'); ?></label>
95
+ <?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'));
98
+ ?>
99
+ </th>
100
+ <td>
101
+ <input type="checkbox" name="<?php echo $link_prefix; ?>" <?php checked($prli_options->link_prefix != 0); ?>/>
102
+ </td>
103
+ </tr>
104
+ <?php do_action('prli_custom_link_options'); ?>
105
+ </tbody>
106
+ </table>
107
+ </div>
108
+
109
+ <div class="prli-page" id="reporting">
110
+ <div class="prli-page-title"><?php _e('Reporting Options', 'pretty-link'); ?></div>
111
+ <table class="form-table">
112
+ <tbody>
113
+ <tr valign="top">
114
+ <th scope="row">
115
+ <?php _e('Tracking Style', 'pretty-link'); ?>
116
+ <?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'));
119
+ ?>
120
+ </th>
121
+ <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/>
125
+ </td>
126
+ </tr>
127
+ <tr valign="top">
128
+ <th scope="row">
129
+ <label for="<?php echo $prli_exclude_ips; ?>">
130
+ <?php _e('Excluded IP Addresses:', 'pretty-link'); ?>
131
+ <?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; ?>">
139
+ </td>
140
+ </tr>
141
+ <tr valign="top">
142
+ <th scope="row">
143
+ <?php _e('Auto-Trim Clicks', 'pretty-link'); ?>
144
+ <?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'));
147
+ ?>
148
+ </th>
149
+ <td>
150
+ <input type="checkbox" name="<?php echo $auto_trim_clicks; ?>" <?php checked($prli_options->auto_trim_clicks != 0); ?> />
151
+ </td>
152
+ </tr>
153
+ <tr valign="top">
154
+ <th scope="row">
155
+ <?php _e('Filter Robots', 'pretty-link'); ?>
156
+ <?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'));
159
+ ?>
160
+ </th>
161
+ <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); ?> />
163
+ </td>
164
+ </tr>
165
+ </tbody>
166
+ </table>
167
+ <div class="prli-sub-box prli-whitelist-ips">
168
+ <div class="prli-arrow prli-gray prli-up prli-sub-box-arrow"> </div>
169
+ <table class="form-table">
170
+ <tbody>
171
+ <tr valign="top">
172
+ <th scope="row">
173
+ <label for="<?php echo $whitelist_ips; ?>">
174
+ <?php _e('Whitelist IP Addresses', 'pretty-link'); ?>
175
+ <?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'));
178
+ ?>
179
+ </label>
180
+ </th>
181
+ <td><input type="text" name="<?php echo $whitelist_ips; ?>" class="regular-text" value="<?php echo $prli_options->whitelist_ips; ?>"></td>
182
+ </tr>
183
+ </tbody>
184
+ </table>
185
+ </div>
186
+ </div>
187
+
188
+ <?php do_action('prli_admin_options_pages'); ?>
189
+ </td>
190
+ </tr>
191
+ </table>
192
+
193
+ <p class="submit">
194
+ <input type="submit" name="submit" class="button button-primary" value="<?php _e('Update', 'pretty-link') ?>" />
195
+ </p>
196
+
197
+ </form>
198
+ </div>
app/views/options/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
{classes → app}/views/shared/errors.php RENAMED
File without changes
app/views/shared/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
{classes → app}/views/shared/jsredirect.php RENAMED
File without changes
app/views/shared/link-table-nav.php ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ $curr_size = isset($_REQUEST['size']) ? $_REQUEST['size'] : 10;
4
+ $curr_url = esc_html($_REQUEST['page'].$page_params);
5
+
6
+ // Only show the pager bar if there is more than 1 page
7
+ if($page_count > 1) {
8
+ ?>
9
+ <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
10
+ <div class='tablenav-pages'>
11
+ <span class="displaying-num">
12
+ <?php
13
+ _e('Displaying', 'pretty-link');
14
+ echo " $page_first_record&#8211;$page_last_record of $record_count";
15
+ ?>
16
+ </span>
17
+
18
+ <?php
19
+ // Only show the prev page button if the current page is not the first page
20
+ if($current_page > 1) {
21
+ ?>
22
+ <a class='prev page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo ($current_page-1); ?>&size=<?php echo $curr_size; ?>'>&laquo;</a>
23
+ <?php
24
+ }
25
+
26
+ // First page is always displayed
27
+ if($current_page==1) {
28
+ ?>
29
+ <a class='page-numbers disabled' href="#">1</a>
30
+ <?php
31
+ }
32
+ else {
33
+ ?>
34
+ <a class='page-numbers' href='?page=<?php echo $curr_url; ?>&paged=1&size=<?php echo $curr_size; ?>'>1</a>
35
+ <?php
36
+ }
37
+
38
+ // If the current page is more than 2 spaces away from the first page then we put some dots in here
39
+ if($current_page >= 5) {
40
+ ?>
41
+ <span class='page-numbers dots'>...</span>
42
+ <?php
43
+ }
44
+
45
+ // display the current page icon and the 2 pages beneath and above it
46
+ $low_page = (($current_page >= 5)?($current_page-2):2);
47
+ $high_page = ((($current_page + 2) < ($page_count-1))?($current_page+2):($page_count-1));
48
+ for($i = $low_page; $i <= $high_page; $i++) {
49
+ if($current_page==$i) {
50
+ ?>
51
+ <a class='page-numbers disabled' href="#"><?php echo $i; ?></a>
52
+ <?php
53
+ }
54
+ else {
55
+ ?>
56
+ <a class='page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo $i; ?>&size=<?php echo $curr_size; ?>'><?php echo $i; ?></a>
57
+ <?php
58
+ }
59
+ }
60
+
61
+ // If the current page is more than 2 away from the last page then show ellipsis
62
+ if($current_page < ($page_count - 3)) {
63
+ ?>
64
+ <span class='page-numbers dots'>...</span>
65
+ <?php
66
+ }
67
+
68
+ // Display the last page icon
69
+ if($current_page == $page_count) {
70
+ ?>
71
+ <a class='page-numbers disabled' href="#"><?php echo $page_count; ?></a>
72
+ <?php
73
+ }
74
+ else {
75
+ ?>
76
+ <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
+ <?php
78
+ }
79
+
80
+ // Display the next page icon if there is a next page
81
+ if($current_page < $page_count) {
82
+ ?>
83
+ <a class='next page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo ($current_page + 1); ?>&size=<?php echo $curr_size; ?>'>&raquo;</a>
84
+ <?php
85
+ }
86
+ ?>
87
+ <select class="prli-page-size" onchange="location='<?php echo admin_url("admin.php?page={$curr_url}&paged=1&size='+this.options[this.selectedIndex].value"); ?>">
88
+ <option value="10" selected="selected">10</option>
89
+ <option value="25" <?php if($curr_size == 25) echo 'selected="selected"'; ?>>25</option>
90
+ <option value="50" <?php if($curr_size == 50) echo 'selected="selected"'; ?>>50</option>
91
+ <option value="100" <?php if($curr_size == 100) echo 'selected="selected"'; ?>>100&nbsp;</option>
92
+ </select>
93
+ </div>
94
+ <?php if(!$footer): ?>
95
+ <?php PrliLinksHelper::bulk_action_dropdown(); ?>
96
+ <?php endif; ?>
97
+ </div>
98
+ <?php
99
+ }
100
+ else {
101
+ ?>
102
+ <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
103
+ <div class='tablenav-pages'>
104
+ <span class="displaying-num"><?php _e('Displaying', 'pretty-link'); ?> <?php echo "$page_first_record&#8211;$page_last_record of $record_count"; ?></span>
105
+ <select class="prli-page-size" onchange="location='<?php echo admin_url("admin.php?page={$curr_url}&paged=1&size='+this.options[this.selectedIndex].value"); ?>">
106
+ <option value="10" selected="selected">10</option>
107
+ <option value="25" <?php if($curr_size == 25) echo 'selected="selected"'; ?>>25</option>
108
+ <option value="50" <?php if($curr_size == 50) echo 'selected="selected"'; ?>>50</option>
109
+ <option value="100" <?php if($curr_size == 100) echo 'selected="selected"'; ?>>100&nbsp;</option>
110
+ </select>
111
+ </div>
112
+ <?php if(!$footer): ?>
113
+ <?php PrliLinksHelper::bulk_action_dropdown(); ?>
114
+ <?php endif; ?>
115
+ </div>
116
+ <?php
117
+ }
app/views/shared/nav.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); }
2
+
3
+ global $plp_update;
4
+
5
+ if($plp_update->is_installed()) {
6
+ $support_link = "&nbsp;|&nbsp;<a href=\"http://prettylinkpro.com/user-manual\" target=\"_blank\">" . __('Pro Manual', 'pretty-link') . '</a>';
7
+ }
8
+ else {
9
+ $support_link = "&nbsp;|&nbsp;<a href=\"http://prettylinkpro.com\" target=\"_blank\">" . __('Upgrade to Pro', 'pretty-link') . '</a>';
10
+ }
11
+
12
+ ?>
13
+ <p class="prli-shared-header">
14
+ <span><?php _e('Connect:', 'pretty-link'); ?></span>
15
+ <a href="http://twitter.com/blairwilli"><img src="<?php echo PRLI_IMAGES_URL; ?>/twitter_32.png" class="prli-icon" /></a>
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
+ <br/>
18
+ <?php _e('Get Help:', 'pretty-link'); ?>
19
+ <a href="http://blairwilliams.com/xba" target="_blank"><?php _e('Tutorials', 'pretty-link'); ?></a>
20
+ <?php echo $support_link; ?>
21
+ </p>
22
+
app/views/shared/public_link.php ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) die('You are not allowed to call this page directly.');
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
+
13
+ ?>
14
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
15
+ "http://www.w3.org/TR/html4/loose.dtd">
16
+ <html>
17
+ <head>
18
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
19
+ <title><?php _e('Here is your Pretty Link', 'pretty-link'); ?></title>
20
+ <script type='text/javascript' src='<?php echo site_url('/wp-includes/js/jquery/jquery.js'); ?>'></script>
21
+ <script type='text/javascript' src='<?php echo PRLI_JS_URL . '/jquery.clippy.js'; ?>'></script>
22
+ <script type="text/javascript">
23
+ jQuery(document).ready(function($) {
24
+ /* Set up the clippies! */
25
+ $('.clippy').clippy({clippy_path: '<?php echo PRLI_JS_URL; ?>/clippy.swf', width: '100px'});
26
+ });
27
+ </script>
28
+ <link rel="stylesheet" href="<?php echo PRLI_VENDOR_LIB_URL.'/fontello/css/animation.css'; ?>" type="text/css" media="all" />
29
+ <link rel="stylesheet" href="<?php echo PRLI_VENDOR_LIB_URL.'/fontello/css/pretty-link.css'; ?>" type="text/css" media="all" />
30
+ <link rel="stylesheet" href="<?php echo PRLI_CSS_URL . '/social_buttons.css'; ?>" type="text/css" media="all" />
31
+ <link rel="stylesheet" href="<?php echo PRLI_CSS_URL . '/public_link.css'; ?>" type="text/css" media="all" />
32
+ </head>
33
+ <body>
34
+ <p><img src="<?php echo PRLI_IMAGES_URL; ?>/pl-logo-horiz-RGB.svg" width="400px" height="64px" /></p>
35
+ <h4><em><?php _e('Here\'s your pretty link for:', 'pretty-link'); ?></em><br/><?php echo $target_url_title; ?><br/>(<span title="<?php echo $target_url; ?>"><?php echo substr($target_url,0,50) . ((strlen($target_url)>50)?"...":''); ?></span>)</h4>
36
+ <h2><a href="<?php echo $pretty_link_raw; ?>"><?php echo $pretty_link; ?></a><br/><span class="clippy"><?php echo $pretty_link_raw; ?></span></h2>
37
+ <?php global $plp_update; ?>
38
+ <?php if( $plp_update->is_installed() ): ?>
39
+ <p><?php _e('send this link to:', 'pretty-link'); ?><br/>
40
+ <?php echo PlpSocialButtonsHelper::get_social_buttons_bar($pretty_link_id); ?>
41
+ <?php endif; ?>
42
+ <p><a href="<?php echo $target_url_raw; ?>">&laquo; <?php _e('back', 'pretty-link'); ?></a></p>
43
+ </body>
44
+ </html>
45
+
46
+
{classes → app}/views/shared/table-nav.php RENAMED
@@ -1,35 +1,39 @@
1
  <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
  <?php
 
 
 
 
3
  // Only show the pager bar if there is more than 1 page
4
  if($page_count > 1)
5
  {
6
  ?>
7
  <div class="tablenav"<?php echo (isset($navstyle)?" style=\"" . esc_html($navstyle) . "\"":''); ?>>
8
- <div class='tablenav-pages'><span class="displaying-num"><?php _e('Displaying', 'pretty-link'); echo esc_html("$page_first_record&#8211;$page_last_record of $record_count"); ?></span>
9
-
10
  <?php
11
  // Only show the prev page button if the current page is not the first page
12
  if($current_page > 1)
13
  {
14
  ?>
15
- <a class='prev page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'] . $page_params); ?>&paged=<?php print($current_page-1); ?>'>&laquo;</a>
16
  <?php
17
  }
18
-
19
  // First page is always displayed
20
  if($current_page==1)
21
  {
22
  ?>
23
- <span class='page-numbers current'>1</span>
24
  <?php
25
  }
26
  else
27
  {
28
  ?>
29
- <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'] . $page_params); ?>&paged=1'>1</a>
30
  <?php
31
  }
32
-
33
  // If the current page is more than 2 spaces away from the first page then we put some dots in here
34
  if($current_page >= 5)
35
  {
@@ -37,7 +41,7 @@
37
  <span class='page-numbers dots'>...</span>
38
  <?php
39
  }
40
-
41
  // display the current page icon and the 2 pages beneath and above it
42
  $low_page = (($current_page >= 5)?($current_page-2):2);
43
  $high_page = ((($current_page + 2) < ($page_count-1))?($current_page+2):($page_count-1));
@@ -46,17 +50,17 @@
46
  if($current_page==$i)
47
  {
48
  ?>
49
- <span class='page-numbers current'><?php echo esc_html($i); ?></span>
50
  <?php
51
  }
52
  else
53
  {
54
  ?>
55
- <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'] . $page_params); ?>&paged=<?php echo esc_html($i); ?>'><?php echo esc_html($i); ?></a>
56
  <?php
57
  }
58
  }
59
-
60
  // If the current page is more than 2 away from the last page then show ellipsis
61
  if($current_page < ($page_count - 3))
62
  {
@@ -64,26 +68,26 @@
64
  <span class='page-numbers dots'>...</span>
65
  <?php
66
  }
67
-
68
  // Display the last page icon
69
  if($current_page == $page_count)
70
  {
71
  ?>
72
- <span class='page-numbers current'><?php echo esc_html($page_count); ?></span>
73
  <?php
74
  }
75
  else
76
  {
77
  ?>
78
- <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'] . $page_params); ?>&paged=<?php echo esc_html($page_count); ?>'><?php echo esc_html($page_count); ?></a>
79
  <?php
80
  }
81
-
82
  // Display the next page icon if there is a next page
83
  if($current_page < $page_count)
84
  {
85
  ?>
86
- <a class='next page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'] . $page_params); ?>&paged=<?php print($current_page + 1); ?>'>&raquo;</a>
87
  <?php
88
  }
89
  ?>
1
  <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
  <?php
3
+
4
+ $curr_size = isset($_REQUEST['size']) ? $_REQUEST['size'] : 10;
5
+ $curr_url = esc_html($_REQUEST['page'].$page_params);
6
+
7
  // Only show the pager bar if there is more than 1 page
8
  if($page_count > 1)
9
  {
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&#8211;$page_last_record of $record_count"); ?></span>
13
+
14
  <?php
15
  // Only show the prev page button if the current page is not the first page
16
  if($current_page > 1)
17
  {
18
  ?>
19
+ <a class='prev page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php print($current_page-1); ?>'>&laquo;</a>
20
  <?php
21
  }
22
+
23
  // First page is always displayed
24
  if($current_page==1)
25
  {
26
  ?>
27
+ <a class='page-numbers disabled' href="#">1</a>
28
  <?php
29
  }
30
  else
31
  {
32
  ?>
33
+ <a class='page-numbers' href='?page=<?php echo $curr_url; ?>&paged=1'>1</a>
34
  <?php
35
  }
36
+
37
  // If the current page is more than 2 spaces away from the first page then we put some dots in here
38
  if($current_page >= 5)
39
  {
41
  <span class='page-numbers dots'>...</span>
42
  <?php
43
  }
44
+
45
  // display the current page icon and the 2 pages beneath and above it
46
  $low_page = (($current_page >= 5)?($current_page-2):2);
47
  $high_page = ((($current_page + 2) < ($page_count-1))?($current_page+2):($page_count-1));
50
  if($current_page==$i)
51
  {
52
  ?>
53
+ <a class='page-numbers disabled' href="#"><?php echo esc_html($i); ?></a>
54
  <?php
55
  }
56
  else
57
  {
58
  ?>
59
+ <a class='page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php echo esc_html($i); ?>'><?php echo esc_html($i); ?></a>
60
  <?php
61
  }
62
  }
63
+
64
  // If the current page is more than 2 away from the last page then show ellipsis
65
  if($current_page < ($page_count - 3))
66
  {
68
  <span class='page-numbers dots'>...</span>
69
  <?php
70
  }
71
+
72
  // Display the last page icon
73
  if($current_page == $page_count)
74
  {
75
  ?>
76
+ <a class='page-numbers disabled' href="#"><?php echo esc_html($page_count); ?></a>
77
  <?php
78
  }
79
  else
80
  {
81
  ?>
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>
83
  <?php
84
  }
85
+
86
  // Display the next page icon if there is a next page
87
  if($current_page < $page_count)
88
  {
89
  ?>
90
+ <a class='next page-numbers' href='?page=<?php echo $curr_url; ?>&paged=<?php print($current_page + 1); ?>'>&raquo;</a>
91
  <?php
92
  }
93
  ?>
app/views/shared/tinymce_form_popup.php ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
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 language="javascript" type="text/javascript" src="<?php echo includes_url('/js/tinymce/tiny_mce_popup.js'); ?>"></script>
26
+ <script type="text/javascript">
27
+ //Setting up some JS variables for the tinymce_form_popup.js file
28
+ //Doing this here becuase I have access to PHP
29
+ var prli_selected_text = ''; //Updated on ButtonDialog.init
30
+ var home_url = '<?php echo $home_url; ?>';
31
+ var default_redirect = '<?php echo $default_redirect; ?>';
32
+ var default_nofollow = '<?php echo $default_nofollow; ?>';
33
+ var default_tracking = '<?php echo $default_tracking; ?>';
34
+ var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
35
+ </script>
36
+ <script language="javascript" type="text/javascript" src="<?php echo PRLI_JS_URL . '/tinymce_form_popup.js'; ?>"></script>
37
+ </head>
38
+ <body>
39
+ <div id="errors"></div>
40
+ <div id="prli_accordion">
41
+ <h3><?php _e('Create New Pretty Link', 'pretty-link'); ?></h3>
42
+ <div class="prlitinymce-options">
43
+ <div class="prlitinymce-options-row">
44
+ <label><?php _e('Target URL', 'pretty-link'); ?>:</label>
45
+ <input type="text" name="prli_insert_link_target" id="prli_insert_link_target" value="" />
46
+ </div>
47
+ <div class="prlitinymce-options-row">
48
+ <label><?php _e('Slug', 'pretty-link'); ?>:</label>
49
+ <input type="text" name="prli_insert_link_slug" id="prli_insert_link_slug" value="<?php echo $random_slug; ?>" />
50
+ <span id="prlitinymce-thinking" class="prlitinymce-hidden"><img src="<?php echo admin_url('images/wpspin_light.gif'); ?>" /></span>
51
+ <span id="prlitinymce-good-slug" class="prlitinymce-hidden"><small><?php _e('valid', 'pretty-link'); ?></small></span>
52
+ <span id="prlitinymce-bad-slug" class="prlitinymce-hidden"><small><?php _e('invalid', 'pretty-link'); ?></small></span>
53
+ <input type="hidden" name="prli_is_valid_slug" id="prli_is_valid_slug" value="good" />
54
+ </div>
55
+ <div class="prlitinymce-options-row">
56
+ <label><?php _e('Link Text', 'pretty-link'); ?>:</label>
57
+ <input type="text" name="prli_insert_link_link_text" id="prli_insert_link_link_text" value="" />
58
+ </div>
59
+ <div class="prlitinymce-options-row">
60
+ <label><?php _e('Redirect Type', 'pretty-link'); ?>:</label>
61
+ <select name="prli_insert_link_redirect" id="prli_insert_link_redirect">
62
+ <option value="default"><?php _e('Default', 'pretty-link'); ?></option>
63
+ <option value="307"><?php _e('307 (Temporary)', 'pretty-link'); ?></option>
64
+ <option value="302"><?php _e('302 (Temporary)', 'pretty-link'); ?></option>
65
+ <option value="301"><?php _e('301 (Permanent)', 'pretty-link'); ?></option>
66
+ <?php global $plp_update; ?>
67
+ <?php if($plp_update->is_installed()): ?>
68
+ <option value="prettybar"><?php _e('Pretty Bar', 'pretty-link'); ?></option>
69
+ <option value="cloak"><?php _e('Cloaked', 'pretty-link'); ?></option>
70
+ <option value="pixel"><?php _e('Pixel', 'pretty-link'); ?></option>
71
+ <option value="metarefresh"><?php _e('Meta Refresh', 'pretty-link'); ?></option>
72
+ <option value="javascript"><?php _e('Javascript', 'pretty-link'); ?></option>
73
+ <?php endif; ?>
74
+ </select>
75
+ </div>
76
+ <div class="prlitinymce-options-row">
77
+ <label><?php _e('Nofollow', 'pretty-link'); ?>:</label>
78
+ <select name="prli_insert_link_nofollow" id="prli_insert_link_nofollow">
79
+ <option value="default"><?php _e('Default', 'pretty-link'); ?></option>
80
+ <option value="enabled"><?php _e('Enabled', 'pretty-link'); ?></option>
81
+ <option value="disabled"><?php _e('Disabled', 'pretty-link'); ?></option>
82
+ </select>
83
+ </div>
84
+ <div class="prlitinymce-options-row">
85
+ <label><?php _e('Tracking', 'pretty-link'); ?>:</label>
86
+ <select name="prli_insert_link_tracking" id="prli_insert_link_tracking">
87
+ <option value="default"><?php _e('Default', 'pretty-link'); ?></option>
88
+ <option value="enabled"><?php _e('Enabled', 'pretty-link'); ?></option>
89
+ <option value="disabled"><?php _e('Disabled', 'pretty-link'); ?></option>
90
+ </select>
91
+ </div>
92
+ <div class="prlitinymce-options-row">
93
+ <label>&nbsp;</label>
94
+ <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'); ?>
95
+ </div>
96
+ <div class="prlitinymce-options-row" id="prlitinymce-insert">
97
+ <a href="javascript:ButtonDialog.insert_new(ButtonDialog.local_ed)" class="prli_button"><?php _e('Insert New Pretty Link', 'pretty-link'); ?></a>
98
+ <span id="insert_loading" class="prlitinymce-hidden"><img src="<?php echo includes_url('/js/thickbox/loadingAnimation.gif'); ?>" width="150" /></span>
99
+ </div>
100
+ </div>
101
+ <h3><?php _e("Use Existing Pretty Link", 'pretty-link'); ?></h3>
102
+ <div id="prlitinymce-search-area" class="prlitinymce-options">
103
+ <input type="text" name="prli_search_box" id="prli_search_box" value="" placeholder="<?php _e('Search by Slug, Title, or Target URL...', 'pretty-link'); ?>" />
104
+ <div class="prlitinymce-options-row">
105
+ <label class="lefty"><?php _e('Target URL', 'pretty-link'); ?>:</label>
106
+ <small id="existing_link_target" class="righty"><?php _e('None', 'pretty-link'); ?></small>
107
+ </div>
108
+ <div class="prlitinymce-options-row">
109
+ <label class="lefty"><?php _e('Pretty Link', 'pretty-link'); ?>:</label>
110
+ <small id="existing_link_slug" class="righty"><?php _e('None', 'pretty-link'); ?></small>
111
+ </div>
112
+ <div class="prlitinymce-options-row">
113
+ <label><?php _e('Link Text', 'pretty-link'); ?>:</label>
114
+ <input type="text" name="existing_link_link_text" id="existing_link_link_text" value="" />
115
+ </div>
116
+ <div class="prlitinymce-options-row">
117
+ <label>&nbsp;</label>
118
+ <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'); ?>
119
+ </div>
120
+ <div class="prlitinymce-options-row" id="existing_link_insert">
121
+ <input type="hidden" name="existing_link_nofollow" id="existing_link_nofollow" value="0" />
122
+ <a href="javascript:ButtonDialog.insert_existing(ButtonDialog.local_ed)" class="prli_button"><?php _e('Insert Existing Pretty Link', 'pretty-link'); ?></a>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </body>
127
+ </html>
app/views/shared/title_text.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
+ <div class="prli_admin_branding"></div>
3
+ <h1 class="wp-heading-inline" style="margin-bottom:15px;"><?php echo esc_html($page_title); ?></h1>
app/views/tools/form.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
+ <div class="wrap">
3
+ <?php echo PrliAppHelper::page_title(__('Tools', 'pretty-link')); ?>
4
+
5
+ <?php if($update_message): ?>
6
+ <div class="updated notice notice-success is-dismissible"><p><strong><?php echo esc_html($update_message); ?></strong></p></div>
7
+ <?php endif; ?>
8
+
9
+ <table class="prli-settings-table">
10
+ <tr class="prli-mobile-nav">
11
+ <td colspan="2">
12
+ <a href="" class="prli-toggle-nav"><i class="pl-icon-menu"> </i></a>
13
+ </td>
14
+ </tr>
15
+ <tr>
16
+ <td class="prli-settings-table-nav">
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>
20
+ <?php do_action('prli_admin_tools_nav'); ?>
21
+ </ul>
22
+ </td>
23
+ <td class="prli-settings-table-pages">
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>&nbsp;&nbsp;
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') );
30
+ ?>
31
+ <br/><br/><a href="javascript:toggle_iphone_instructions()"><strong><?php _e('Show iPhone Bookmarklet Instructions', 'pretty-link'); ?></strong></a>
32
+ <br/><br/>
33
+ <div class="prli-sub-box iphone_instructions" style="display: none">
34
+ <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/>
36
+ <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>
44
+ </ol>
45
+ </div>
46
+ </div>
47
+ <div class="prli-page" id="trim">
48
+ <div class="prli-page-title"><?php _e('Trim Clicks', 'pretty-link'); ?></div>
49
+ <?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>
51
+ <?php endif; ?>
52
+ <?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>&nbsp;&nbsp;
54
+ <?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') ); ?>
57
+ <div>&nbsp;</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>&nbsp;&nbsp;
59
+ <?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') ); ?>
62
+ <div>&nbsp;</div>
63
+ <?php endif; ?>
64
+
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>&nbsp;&nbsp;
66
+ <?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') ); ?>
69
+ </div>
70
+
71
+ <?php do_action('prli_admin_tools_pages'); ?>
72
+ </td>
73
+ </tr>
74
+ </table>
75
+ </div>
app/views/tools/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/views/widgets/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
app/views/widgets/widget.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
+ <div class="wrap">
3
+ <p style="text-align: left;">
4
+ <a href="https://prettylinkpro.com/"><img style="border: 0px;" src="<?php echo PRLI_IMAGES_URL . '/pl-logo-horiz-RGB.svg'; ?>" width="75%" /></a>
5
+ </p>
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'); ?>
10
+
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>
25
+ </form>
26
+ </div>
classes/controllers/PrliAppController.php DELETED
@@ -1,88 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- class PrliAppController
6
- {
7
- function __construct()
8
- {
9
- add_action('init', array(&$this,'parse_standalone_request'));
10
- add_action('admin_notices', array(&$this, 'upgrade_database_headline'));
11
- add_action('admin_enqueue_scripts', array(&$this, 'enqueue_admin_scripts'));
12
- }
13
-
14
- public function enqueue_admin_scripts($hook)
15
- {
16
- $wp_scripts = new WP_Scripts();
17
- $ui = $wp_scripts->query('jquery-ui-core');
18
- $url = "//ajax.googleapis.com/ajax/libs/jqueryui/{$ui->ver}/themes/smoothness/jquery-ui.css";
19
- if(strstr($hook, 'pretty') !== false)
20
- {
21
- wp_enqueue_style('pl-ui-smoothness', $url);
22
- wp_enqueue_script('jquery');
23
- wp_enqueue_script('jquery-ui-datepicker');
24
- }
25
- }
26
-
27
- public function upgrade_database_headline()
28
- {
29
- global $prli_update, $prli_db_version, $prlipro_db_version;
30
-
31
- // Only show the message if the user can update core
32
- if(current_user_can( 'update_core' )) {
33
- $old_prli_db_version = get_option('prli_db_version');
34
- $show_db_upgrade_message = ( !$old_prli_db_version or ( intval($old_prli_db_version) < $prli_db_version ) );
35
-
36
- if( !$show_db_upgrade_message and
37
- $prli_update->pro_is_installed_and_authorized())
38
- {
39
- $old_prlipro_db_version = get_option('prlipro_db_version');
40
- $show_db_upgrade_message = ( !$old_prlipro_db_version or ( intval($old_prlipro_db_version) < $prlipro_db_version ) );
41
- }
42
-
43
- if( $show_db_upgrade_message )
44
- {
45
- $db_upgrade_url = wp_nonce_url(site_url("index.php?plugin=pretty-link&controller=admin&action=db_upgrade"), "prli-db-upgrade");
46
- ?>
47
- <div class="error" style="padding-top: 5px; padding-bottom: 5px;"><?php printf(__('Database Upgrade is required for Pretty Link to work properly<br/>%1$sAutomatically Upgrade your Database%2$s', 'pretty-link'), "<a href=\"{$db_upgrade_url}\">",'</a>'); ?></div>
48
- <?php
49
- }
50
- }
51
- }
52
-
53
- public function parse_standalone_request()
54
- {
55
- if( !empty($_REQUEST['plugin']) and $_REQUEST['plugin'] == 'pretty-link' and
56
- !empty($_REQUEST['controller']) and !empty($_REQUEST['action']) ) {
57
- $this->standalone_route($_REQUEST['controller'], $_REQUEST['action']);
58
- do_action('prli-standalone-route');
59
- exit;
60
- }
61
- else if( !empty($_GET['action']) and $_GET['action']=='prli_bookmarklet' ) {
62
- PrliBookmarkletController::route();
63
- exit;
64
- }
65
- }
66
-
67
- public function standalone_route($controller, $action)
68
- {
69
- if($controller=='admin')
70
- {
71
- if($action=='db_upgrade')
72
- $this->db_upgrade();
73
- }
74
- }
75
-
76
- public function db_upgrade()
77
- {
78
- if(!function_exists('wp_redirect'))
79
- require_once(ABSPATH . WPINC . '/pluggable.php');
80
-
81
- if( wp_verify_nonce( $_REQUEST['_wpnonce'], "prli-db-upgrade" ) and current_user_can( 'update_core' ) ) {
82
- prli_install();
83
- wp_redirect(admin_url("admin.php?page=pretty-link&message=" . urlencode(__('Your Database Has Been Successfully Upgraded.', 'pretty-link'))));
84
- }
85
- else
86
- wp_redirect(home_url());
87
- }
88
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/controllers/PrliBookmarkletController.php DELETED
@@ -1,38 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- class PrliBookmarkletController {
6
- public static function route() {
7
- global $prli_options;
8
- $action = isset($_GET['action']) ? $_GET['action'] : '';
9
- if(isset($_GET['k']) and $_GET['k']==$prli_options->bookmarklet_auth) {
10
- if($action == 'prli_bookmarklet' and
11
- isset($_GET['target_url']) and
12
- PrliUtils::is_url($_GET['target_url'])) { return self::bookmark($_GET['target_url']); }
13
- }
14
- else {
15
- wp_redirect(home_url());
16
- exit;
17
- }
18
- }
19
-
20
- public static function bookmark($target_url) {
21
- global $prli_options, $prli_blogurl, $prli_link;
22
-
23
- $redirect_type = esc_html((isset($_GET['rt']) and $_GET['rt'] != '-1')?$_GET['rt']:'');
24
- $track = esc_html((isset($_GET['trk']) and $_GET['trk'] != '-1')?$_GET['trk']:'');
25
- $group = esc_html((isset($_GET['grp']) and $_GET['grp'] != '-1')?$_GET['grp']:'');
26
-
27
- $result = prli_create_pretty_link( esc_url_raw($target_url, array('http','https')), '', '', '', $group, $track, '', $redirect_type );
28
-
29
- $plink = $prli_link->getOne($result);
30
- $target_url = $plink->url;
31
- $target_url_title = esc_html($plink->name);
32
- $pretty_link = $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $plink->slug;
33
-
34
- $twitter_status = substr($target_url_title,0,(114 - strlen($pretty_link))) . ((strlen($target_url_title) > 114)?"...":'') . " | $pretty_link";
35
-
36
- require PRLI_VIEWS_PATH . '/prli-tools/bookmarklet.php';
37
- }
38
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/controllers/PrliGroupsController.php DELETED
@@ -1,43 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- // We'll do a full refactor later -- for now we'll just implement the add group ajax method
6
- class PrliGroupsController
7
- {
8
- public static function load_hooks() {
9
- add_action('wp_ajax_add_new_prli_group', 'PrliGroupsController::ajax_new_group');
10
- }
11
-
12
- public static function ajax_new_group() {
13
- global $prli_group;
14
-
15
- // Default response
16
- $response = json_encode( array( 'status' => 'failure',
17
- 'message' => __('An unknown error occurred when creating your group.', 'pretty-link') ) );
18
-
19
- if(isset($_REQUEST['_prli_nonce']) and wp_verify_nonce($_REQUEST['_prli_nonce'], 'prli-add-new-group')) {
20
- if(isset($_REQUEST['new_group_name'])) {
21
- $new_group_name = stripslashes($_REQUEST['new_group_name']);
22
- $group_id = $prli_group->create( array( 'name' => $new_group_name, 'description' => '' ) );
23
-
24
- if( $group_id )
25
- $response = json_encode( array( 'status' => 'success',
26
- 'message' => __('Group Created', 'pretty-link'),
27
- 'group_id' => $group_id,
28
- 'group_option' => "<option value=\"{$group_id}\">{$new_group_name}</option>" ) );
29
- }
30
- else
31
- $response = json_encode( array( 'status' => 'failure',
32
- 'message' => __('A name must be specified for your new group name', 'pretty-link') ) );
33
- }
34
- else
35
- $response = json_encode( array( 'status' => 'failure',
36
- 'message' => __('Cannot add group because security nonce failed', 'pretty-link') ) );
37
-
38
- header( "Content-Type: application/json" );
39
- echo $response;
40
-
41
- exit;
42
- }
43
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/controllers/PrliLinksController.php DELETED
@@ -1,363 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- class PrliLinksController
6
- {
7
- public static function route()
8
- {
9
- $action = (isset($_REQUEST['action'])?$_REQUEST['action']:null);
10
-
11
- $params = self::get_params_array();
12
-
13
- // "new()" has its own submenu so we don't need a route for it here
14
-
15
- if($action == 'list-form')
16
- return self::list_form($params);
17
- else if($action == 'quick-create')
18
- return self::quick_create_link($params);
19
- else if($action == 'create')
20
- return self::create_link($params);
21
- else if($action == 'edit')
22
- return self::edit_link($params);
23
- else if($action == 'bulk-update')
24
- return self::bulk_update_links($params);
25
- else if($action == 'update')
26
- return self::update_link($params);
27
- else if($action == 'reset')
28
- return self::reset_link($params);
29
- else if($action == 'destroy')
30
- return self::destroy_link($params);
31
- else if($action == 'bulk-destroy')
32
- return self::bulk_destroy_links($params);
33
- else
34
- return self::list_links($params);
35
- }
36
-
37
- public static function load_styles() {
38
- wp_enqueue_style( 'prli-admin-links', PRLI_CSS_URL . '/prli-admin-links.css', array() );
39
- }
40
-
41
- public static function load_scripts() {
42
- wp_enqueue_script( 'jquery-clippy', PRLI_JS_URL . '/jquery.clippy.js', array('jquery') );
43
- wp_enqueue_script( 'prli-admin-links', PRLI_JS_URL . '/prli-admin-links.js', array('jquery','jquery-clippy') );
44
- }
45
-
46
- public static function load_dynamic_scripts() {
47
- ?>
48
- <script type="text/javascript">
49
- jQuery(document).ready(function() {
50
- /* Set up the clippies! */
51
- jQuery('.list-clippy').clippy({clippy_path: '<?php echo PRLI_JS_URL; ?>/clippy.swf', width: '100px', color: '#F9F9F9'});
52
- });
53
- </script>
54
- <?php
55
- }
56
-
57
- public static function list_links($params) {
58
- global $wpdb, $prli_group;
59
-
60
- if(!empty($params['message']))
61
- $prli_message = $params['message'];
62
- else if(empty($params['group']))
63
- $prli_message = prli_get_main_message();
64
- else
65
- $prli_message = __("Links in Group: ", 'pretty-link') . $wpdb->get_var("SELECT name FROM " . $prli_group->table_name . " WHERE id=".(int)$params['group']);
66
-
67
- self::display_links_list($params, $prli_message);
68
- }
69
-
70
- public function list_form($params) {
71
- if(apply_filters('prli-link-list-process-form', true))
72
- self::display_links_list($params, prli_get_main_message());
73
- }
74
-
75
- public static function new_link($params) {
76
- global $prli_group;
77
- $groups = $prli_group->getAll('',' ORDER BY name');
78
- $values = setup_new_vars($groups);
79
-
80
- require_once PRLI_VIEWS_PATH . '/prli-links/new.php';
81
- }
82
-
83
- public static function quick_create_link($params) {
84
- global $prli_link, $prli_group, $prli_options;
85
-
86
- $params = self::get_params_array();
87
- $errors = $prli_link->validate($_POST);
88
-
89
- if( count($errors) > 0 )
90
- {
91
- $groups = $prli_group->getAll('',' ORDER BY name');
92
- $values = setup_new_vars($groups);
93
- require_once PRLI_VIEWS_PATH . '/prli-links/new.php';
94
- }
95
- else
96
- {
97
- $_POST['param_forwarding'] = 'off';
98
- $_POST['param_struct'] = '';
99
- $_POST['name'] = '';
100
- $_POST['description'] = '';
101
- if( $prli_options->link_track_me )
102
- $_POST['track_me'] = 'on';
103
- if( $prli_options->link_nofollow )
104
- $_POST['nofollow'] = 'on';
105
-
106
- $_POST['redirect_type'] = $prli_options->link_redirect_type;
107
-
108
- $record = $prli_link->create( $_POST );
109
-
110
- $prli_message = __("Your Pretty Link was Successfully Created", 'pretty-link');
111
- self::display_links_list($params, $prli_message, '', 1);
112
- }
113
- }
114
-
115
- public static function create_link($params) {
116
- global $prli_link, $prli_group;
117
- $errors = $prli_link->validate($_POST);
118
-
119
- $errors = apply_filters( "prli_validate_link", $errors );
120
-
121
- if( count($errors) > 0 )
122
- {
123
- $groups = $prli_group->getAll('',' ORDER BY name');
124
- $values = setup_new_vars($groups);
125
- require_once PRLI_VIEWS_PATH . '/prli-links/new.php';
126
- }
127
- else
128
- {
129
- $record = $prli_link->create( $_POST );
130
-
131
- do_action( "prli_update_link", $record );
132
-
133
- $prli_message = __("Your Pretty Link was Successfully Created", 'pretty-link');
134
- self::display_links_list($params, $prli_message, '', 1);
135
- }
136
- }
137
-
138
- public static function edit_link($params) {
139
- global $prli_group, $prli_link;
140
- $groups = $prli_group->getAll('',' ORDER BY name');
141
-
142
- $record = $prli_link->getOne( $params['id'] );
143
- $values = setup_edit_vars($groups,$record);
144
- $id = $params['id'];
145
- require_once PRLI_VIEWS_PATH . '/prli-links/edit.php';
146
- }
147
-
148
- public static function update_link($params) {
149
- global $prli_link, $prli_group;
150
- $errors = $prli_link->validate($_POST);
151
- $id = (int)$_POST['id'];
152
-
153
- $errors = apply_filters( "prli_validate_link", $errors );
154
-
155
- if( count($errors) > 0 )
156
- {
157
- $groups = $prli_group->getAll('',' ORDER BY name');
158
- $record = $prli_link->getOne( $params['id'] );
159
- $values = setup_edit_vars($groups,$record);
160
- require_once PRLI_VIEWS_PATH . '/prli-links/edit.php';
161
- }
162
- else
163
- {
164
- $record = $prli_link->update( (int)$_POST['id'], $_POST );
165
-
166
- do_action( "prli_update_link", $id );
167
-
168
- $prli_message = __("Your Pretty Link was Successfully Updated", 'pretty-link');
169
- self::display_links_list($params, $prli_message, '', 1);
170
- }
171
- }
172
-
173
- public static function bulk_update_links() {
174
- global $prli_link;
175
- if(wp_verify_nonce($_REQUEST['_wpnonce'],'prli_bulk_update') and isset($_REQUEST['ids'])) {
176
-
177
- $ids = $_REQUEST['ids'];
178
- $params = $_REQUEST['bu'];
179
-
180
- $prli_link->bulk_update( $ids, $params );
181
- do_action('prli-bulk-action-update',$ids,$params);
182
-
183
- $message = __('Your links were updated successfully', 'pretty-link');
184
-
185
- //self::display_links_list(self::get_params_array(),$message);
186
-
187
- // We're going to redirect here to avoid having a big nasty url that
188
- // can cause problems when doing several activities in a row.
189
-
190
- // Scrub message, action, _wpnonce, ids & bu vars from the arguments and redirect
191
- $request_uri = preg_replace( '#\&(message|action|_wpnonce|ids|bu\[[^\]]*?\])=[^\&]*#', '', $_SERVER['REQUEST_URI'] );
192
-
193
- // we assume here that some arguments are set ... if not this value is meaningless anyway
194
- $request_uri .= '&message=' . urlencode($message);
195
- $redirect_url = 'http' . (empty($_SERVER['HTTPS'])?'':'s') . '://' . $_SERVER['HTTP_HOST'] . $request_uri;
196
-
197
- require PRLI_VIEWS_PATH . '/shared/jsredirect.php';
198
- }
199
- else
200
- wp_die(__('You are unauthorized to view this page.', 'pretty-link'));
201
- }
202
-
203
- public static function reset_link($params) {
204
- global $prli_link;
205
- $prli_link->reset( $params['id'] );
206
- $prli_message = __("Your Pretty Link was Successfully Reset", 'pretty-link');
207
- self::display_links_list($params, $prli_message, '', 1);
208
- }
209
-
210
- public static function destroy_link($params) {
211
- global $prli_link;
212
- $prli_link->destroy( $params['id'] );
213
- $prli_message = __("Your Pretty Link was Successfully Destroyed", 'pretty-link');
214
- self::display_links_list($params, $prli_message, '', 1);
215
- }
216
-
217
- public static function bulk_destroy_links($params) {
218
- global $prli_link;
219
- if(wp_verify_nonce($_REQUEST['_wpnonce'],'prli_bulk_update') and isset($_REQUEST['ids'])) {
220
- $ids = explode(',', $_REQUEST['ids']);
221
-
222
- foreach($ids as $id) {
223
- $prli_link->destroy( $id );
224
- }
225
-
226
- $message = __('Your links were deleted successfully', 'pretty-link');
227
-
228
- //self::display_links_list($params,$message);
229
- // Scrub message, action, _wpnonce, ids & bu vars from the arguments and redirect
230
- $request_uri = preg_replace( '#\&(message|action|_wpnonce|ids|bu\[[^\]]*?\])=[^\&]*#', '', $_SERVER['REQUEST_URI'] );
231
-
232
- // we assume here that some arguments are set ... if not this value is meaningless anyway
233
- $request_uri .= '&message=' . urlencode($message);
234
- $redirect_url = 'http' . (empty($_SERVER['HTTPS'])?'':'s') . '://' . $_SERVER['HTTP_HOST'] . $request_uri;
235
-
236
- require PRLI_VIEWS_PATH . '/shared/jsredirect.php';
237
- }
238
- else
239
- wp_die(__('You are unauthorized to view this page.', 'pretty-link'));
240
- }
241
-
242
- public static function display_links_list($params, $prli_message, $page_params_ov = false, $current_page_ov = false)
243
- {
244
- global $wpdb, $prli_utils, $prli_click, $prli_group, $prli_link, $page_size, $prli_options;
245
-
246
- $controller_file = basename(__FILE__);
247
-
248
- $where_clause = '';
249
- $page_params = '';
250
-
251
- $page_size = (isset($_REQUEST['size']) && is_numeric($_REQUEST['size']) && !empty($_REQUEST['size']))?$_REQUEST['size']:10;
252
-
253
- if(!empty($params['group']))
254
- {
255
- $where_clause = " group_id=" . $params['group'];
256
- $page_params = "&group=" . $params['group'];
257
- }
258
-
259
- $link_vars = self::get_link_sort_vars($params, $where_clause);
260
-
261
- if($current_page_ov)
262
- $current_page = $current_page_ov;
263
- else
264
- $current_page = $params['paged'];
265
-
266
- if($page_params_ov)
267
- $page_params .= $page_params_ov;
268
- else
269
- $page_params .= $link_vars['page_params'];
270
-
271
- $sort_str = $link_vars['sort_str'];
272
- $sdir_str = $link_vars['sdir_str'];
273
- $search_str = $link_vars['search_str'];
274
-
275
- $record_count = $prli_link->getRecordCount($link_vars['where_clause']);
276
- $page_count = $prli_link->getPageCount($page_size,$link_vars['where_clause']);
277
- $links = $prli_link->getPage($current_page,$page_size,$link_vars['where_clause'],$link_vars['order_by']);
278
- $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size);
279
- $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size);
280
-
281
- require_once PRLI_VIEWS_PATH . '/prli-links/list.php';
282
- }
283
-
284
- public static function get_link_sort_vars($params,$where_clause = '')
285
- {
286
- $order_by = '';
287
- $page_params = '';
288
-
289
- // These will have to work with both get and post
290
- $sort_str = $params['sort'];
291
- $sdir_str = $params['sdir'];
292
- $search_str = $params['search'];
293
-
294
- // Insert search string
295
- if(!empty($search_str))
296
- {
297
- $search_params = explode(" ", $search_str);
298
-
299
- foreach($search_params as $search_param)
300
- {
301
- if(!empty($where_clause))
302
- $where_clause .= " AND";
303
-
304
- $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%')";
305
- }
306
-
307
- $page_params .="&search=$search_str";
308
- }
309
-
310
- // make sure page params stay correct
311
- if(!empty($sort_str))
312
- $page_params .="&sort=$sort_str";
313
-
314
- if(!empty($sdir_str))
315
- $page_params .= "&sdir=$sdir_str";
316
-
317
- // Add order by clause
318
- switch($sort_str)
319
- {
320
- case "name":
321
- case "clicks":
322
- case "group_name":
323
- case "slug":
324
- $order_by .= " ORDER BY $sort_str";
325
- break;
326
- default:
327
- $order_by .= " ORDER BY created_at";
328
- }
329
-
330
- // Toggle ascending / descending
331
- if((empty($sort_str) and empty($sdir_str)) or $sdir_str == 'desc')
332
- {
333
- $order_by .= ' DESC';
334
- $sdir_str = 'desc';
335
- }
336
- else
337
- $sdir_str = 'asc';
338
-
339
- return array('order_by' => $order_by,
340
- 'sort_str' => $sort_str,
341
- 'sdir_str' => $sdir_str,
342
- 'search_str' => $search_str,
343
- 'where_clause' => $where_clause,
344
- 'page_params' => $page_params);
345
- }
346
-
347
- // Set defaults and grab get or post of each possible param
348
- public static function get_params_array()
349
- {
350
- return array(
351
- 'action' => (isset($_REQUEST['action'])?$_REQUEST['action']:'list'),
352
- 'regenerate' => (isset($_REQUEST['regenerate'])?$_REQUEST['regenerate']:'false'),
353
- 'id' => (isset($_REQUEST['id'])?$_REQUEST['id']:''),
354
- 'group_name' => (isset($_REQUEST['group_name'])?$_REQUEST['group_name']:''),
355
- 'paged' => (isset($_REQUEST['paged'])?$_REQUEST['paged']:1),
356
- 'group' => (isset($_REQUEST['group'])?(int)$_REQUEST['group']:''),
357
- 'search' => (isset($_REQUEST['search'])?$_REQUEST['search']:''),
358
- 'sort' => (isset($_REQUEST['sort'])?$_REQUEST['sort']:''),
359
- 'sdir' => (isset($_REQUEST['sdir'])?$_REQUEST['sdir']:''),
360
- 'message' => (isset($_REQUEST['message'])?$_REQUEST['message']:'')
361
- );
362
- }
363
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/helpers/PrliAppHelper.php DELETED
@@ -1,7 +0,0 @@
1
- <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
- <?php
3
- class PrliAppHelper {
4
- public static function page_title($page_title) {
5
- require(PRLI_VIEWS_PATH . '/shared/title_text.php');
6
- }
7
- }
 
 
 
 
 
 
 
classes/helpers/PrliLinksHelper.php DELETED
@@ -1,69 +0,0 @@
1
- <?php
2
-
3
- class PrliLinksHelper {
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'); ?>&nbsp;</option>
15
- <?php else:
16
- foreach($extra_options as $exoptkey => $exoptval): ?>
17
- <option value="<?php echo $exoptval; ?>"><?php echo $exoptkey; ?>&nbsp;</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; ?>&nbsp;</option>
23
- <?php endforeach; ?>
24
- </select>
25
- <?php
26
- }
27
-
28
- public static function redirect_type_dropdown($fieldname, $value='', $extra_options=array(), $classes='') {
29
- $selected = ' selected="selected"';
30
- $idname = preg_match('#^.*\[(.*?)\]$#',$fieldname,$matches)?$matches[1]:$fieldname;
31
- ?>
32
- <select id="<?php echo $idname; ?>" name="<?php echo $fieldname; ?>" class="<?php echo $classes; ?>">
33
- <?php if( !empty($extra_options) ):
34
- foreach($extra_options as $exoptkey => $exoptval): ?>
35
- <option value="<?php echo $exoptval; ?>"><?php echo $exoptkey; ?>&nbsp;</option>
36
- <?php endforeach;
37
- endif; ?>
38
- <option value="307"<?php echo ($value==307)?$selected:''; ?>><?php _e("307 (Temporary)", 'pretty-link') ?>&nbsp;</option>
39
- <option value="301"<?php echo ($value==301)?$selected:''; ?>><?php _e("301 (Permanent)", 'pretty-link') ?>&nbsp;</option>
40
- <?php do_action('prli_redirection_types', array()); ?>
41
- </select>
42
- <?php
43
- }
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'); ?>&nbsp;</option>
50
- <option value="edit"><?php _e('Edit', 'pretty-link'); ?>&nbsp;</option>
51
- <option value="delete"><?php _e('Delete', 'pretty-link'); ?>&nbsp;</option>
52
- </select>
53
- <a href="javascript:" class="prli_bulk_action_apply button" 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'); ?>" ><?php _e('Apply', 'pretty-link'); ?></a>
54
- </div>
55
- <?php
56
- }
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'); ?>&nbsp;</option>
64
- <option value="off"><?php _e('Off', 'pretty-link'); ?>&nbsp;</option>
65
- <option value="on"><?php _e('On', 'pretty-link'); ?>&nbsp;</option>
66
- </select>
67
- <?php
68
- }
69
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/models/PrliClick.php DELETED
@@ -1,267 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- class PrliClick
6
- {
7
- var $table_name;
8
-
9
- function __construct()
10
- {
11
- global $wpdb;
12
- $this->table_name = "{$wpdb->prefix}prli_clicks";
13
- }
14
-
15
- function get_exclude_where_clause( $where = '', $abbr = 'cl')
16
- {
17
- global $prli_options;
18
- $exclude_list = trim($prli_options->prli_exclude_ips);
19
- $filter_bots = (int)$prli_options->filter_robots;
20
- $return_stmt = '';
21
-
22
- if(empty($exclude_list) and $filter_bots == 0)
23
- return $return_stmt;
24
-
25
- $return_stmt .= (empty($where)?'':' AND');
26
-
27
- if(!empty($exclude_list))
28
- {
29
- $exclude_ips = explode(',',$exclude_list);
30
- for($i = 0; $i < count($exclude_ips); $i++)
31
- {
32
- $exclude_ip = trim(preg_replace('#\*#','%%',$exclude_ips[$i]));
33
-
34
- if($i > 0)
35
- $return_stmt .= ' AND';
36
-
37
- $return_stmt .= " {$abbr}.ip NOT LIKE '{$exclude_ip}'";
38
- }
39
- }
40
-
41
- if($filter_bots != 0)
42
- {
43
- $return_stmt .= (empty($exclude_list)?' (':' AND (');
44
- $whitelist = trim($prli_options->whitelist_ips);
45
-
46
- if(!empty($whitelist))
47
- {
48
- $whitelist_ips = explode(',',$whitelist);
49
- for($i = 0; $i <= count($whitelist_ips); $i++)
50
- {
51
- if($i == count($whitelist_ips))
52
- {
53
- $return_stmt .= ' OR';
54
- break;
55
- }
56
-
57
- $whitelist_ip = trim(preg_replace('#\*#','%%',$whitelist_ips[$i]));
58
-
59
- if($i > 0)
60
- $return_stmt .= ' OR';
61
-
62
- $return_stmt .= " {$abbr}.ip LIKE '{$whitelist_ip}'";
63
- }
64
-
65
- }
66
-
67
- $return_stmt .= " {$abbr}.robot=0 )";
68
- }
69
-
70
- return $return_stmt;
71
- }
72
-
73
- function getOne( $id )
74
- {
75
- global $wpdb, $prli_link, $prli_utils;
76
- $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id AND id=' . $id . $prli_utils->prepend_and_or_where(' AND',$this->get_exclude_where_clause());
77
-
78
- return $wpdb->get_row($query);
79
- }
80
-
81
- // SELECT cl.*,li.name as link_name FROM wp_prli_clicks cl, wp_prli_links li WHERE li.id = cl.link_id ORDER BY created_at DESC
82
- function getAll($where = '', $order = '', $include_stats = false, $limit = '')
83
- {
84
- global $wpdb, $prli_link, $prli_utils;
85
- $where .= $this->get_exclude_where_clause( $where );
86
- $where = $prli_utils->prepend_and_or_where(' AND', $where);
87
- $limit = (empty($limit)?'':" LIMIT {$limit}");
88
- if($include_stats)
89
- $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . $limit;
90
- else
91
- $query = 'SELECT cl.*, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . $limit;
92
-
93
- return $wpdb->get_results($query);
94
- }
95
-
96
- // Delete all of the clicks from the database.
97
- function clearAllClicks()
98
- {
99
- global $wpdb, $prli_link_meta;
100
-
101
- $query = $wpdb->prepare("DELETE FROM {$prli_link_meta->table_name} WHERE meta_key=%s OR meta_key=%s", 'static-clicks', 'static-uniques');
102
- $wpdb->query($query);
103
-
104
- $query = "TRUNCATE TABLE {$this->table_name}";
105
- return $wpdb->query($query);
106
- }
107
-
108
- /* This will delete all the clicks in the database by their age measured in days. */
109
- function clear_clicks_by_age_in_days($days)
110
- {
111
- global $wpdb;
112
-
113
- $days_in_seconds = $days * 24 * 60 * 60;
114
- $oldest_time = time() - $days_in_seconds;
115
-
116
- $num_records = $this->getRecordCount( " UNIX_TIMESTAMP(created_at) < {$oldest_time}" );
117
-
118
- if($num_records)
119
- {
120
- $query = "DELETE FROM {$this->table_name} WHERE UNIX_TIMESTAMP(created_at) < %d";
121
- $query = $wpdb->prepare( $query, $oldest_time );
122
-
123
- $wpdb->query($query);
124
- }
125
-
126
- return $num_records;
127
- }
128
-
129
- function get_distinct_ip_count($where='')
130
- {
131
- global $wpdb, $prli_link, $prli_utils;
132
- $where .= $this->get_exclude_where_clause( $where );
133
- $where = $prli_utils->prepend_and_or_where(' WHERE', $where);
134
- $query = 'SELECT COUNT(DISTINCT ip) FROM ' . $this->table_name . ' cl'. $where;
135
- return $wpdb->get_var($query);
136
- }
137
-
138
- // Pagination Methods
139
- function getRecordCount($where='')
140
- {
141
- global $wpdb, $prli_link, $prli_utils;
142
- $where .= $this->get_exclude_where_clause( $where );
143
- $where = $prli_utils->prepend_and_or_where(' WHERE', $where);
144
- $query = 'SELECT COUNT(*) FROM ' . $this->table_name . ' cl'. $where;
145
-
146
- return $wpdb->get_var($query);
147
- }
148
-
149
- function getPageCount($p_size, $where='')
150
- {
151
- return ceil((int)$this->getRecordCount($where) / (int)$p_size);
152
- }
153
-
154
- function getPage($current_p,$p_size, $where = '', $order = '',$include_stats=false)
155
- {
156
- global $wpdb, $prli_link, $prli_utils;
157
- $end_index = $current_p * $p_size;
158
- $start_index = $end_index - $p_size;
159
- $where .= $this->get_exclude_where_clause( $where );
160
- $where = $prli_utils->prepend_and_or_where(' AND', $where);
161
- if($include_stats)
162
- $query = 'SELECT cl.*, (SELECT count(*) FROM '. $this->table_name .' cl2 WHERE cl2.ip = cl.ip) as ip_count, (SELECT count(*) FROM '. $this->table_name .' cl3 WHERE cl3.vuid = cl.vuid) as vuid_count, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . ' LIMIT ' . $start_index . ',' . $p_size . ';';
163
- else
164
- $query = 'SELECT cl.*, li.name as link_name FROM ' . $this->table_name . ' cl, ' . $prli_link->table_name . ' li WHERE li.id = cl.link_id' . $where . $order . ' LIMIT ' . $start_index . ',' . $p_size . ';';
165
- $results = $wpdb->get_results($query);
166
- return $results;
167
- }
168
-
169
- function generateUniqueVisitorId()
170
- {
171
- return uniqid();
172
- }
173
-
174
- function get_counts_by_days($start_timestamp, $end_timestamp, $link_id = "all", $type = "all", $group = '')
175
- {
176
- global $wpdb, $prli_link;
177
-
178
- $search_where = '';
179
- $query = "SELECT DATE(cl.created_at) as cldate,COUNT(*) as clcount FROM ".$this->table_name." cl WHERE cl.created_at BETWEEN '".date("Y-n-j",$start_timestamp)." 00:00:00' AND '".date("Y-n-j",$end_timestamp)." 23:59:59'".$search_where.$this->get_exclude_where_clause( ' AND' );
180
-
181
- if($link_id != "all")
182
- $query .= " AND link_id=$link_id";
183
-
184
- if(!empty($group))
185
- $query .= " AND link_id IN (SELECT id FROM " . $prli_link->table_name . " WHERE group_id=$group)";
186
-
187
- if($type == "unique")
188
- $query .= " AND first_click=1";
189
-
190
- $query .= ' GROUP BY DATE(cl.created_at)';
191
-
192
- $clicks_array = $wpdb->get_results($query);
193
-
194
- $temp_array = array();
195
- $counts_array = array();
196
- $dates_array = array();
197
-
198
- // Refactor Array for use later on
199
- foreach($clicks_array as $c)
200
- $temp_array[$c->cldate] = $c->clcount;
201
-
202
- // Get the dates array
203
- for($c = $start_timestamp; $c <= $end_timestamp; $c += 60*60*24)
204
- $dates_array[] = date("Y-m-d",$c);
205
-
206
- // Make sure counts array is in order and includes zero click days
207
- foreach($dates_array as $date_str)
208
- {
209
- if(isset($temp_array[$date_str]))
210
- $counts_array[$date_str] = $temp_array[$date_str];
211
- else
212
- $counts_array[$date_str] = 0;
213
- }
214
-
215
- return $counts_array;
216
- }
217
-
218
- function setupClickLineGraph($start_timestamp,$end_timestamp, $link_id = "all", $type = "all", $group = '', $title_only = false)
219
- {
220
- global $wpdb, $prli_utils, $prli_link, $prli_group;
221
-
222
- if(!empty($group))
223
- $link_slug = "group: '".$wpdb->get_var($wpdb->prepare("SELECT name FROM {$prli_group->table_name} WHERE id = %d", $group))."'";
224
- else if($link_id == "all")
225
- $link_slug = "all links";
226
- else
227
- $link_slug = "'/".$wpdb->get_var($wpdb->prepare("SELECT slug FROM {$prli_link->table_name} WHERE id = %d", $link_id))."'";
228
-
229
- if($type == "all")
230
- $type_string = "All hits";
231
- else
232
- $type_string = "Unique hits";
233
-
234
- if($title_only)
235
- return __('Pretty Link:', 'pretty-link').' '.$type_string.' '.__('on', 'pretty-link').' '.$link_slug.' '.__('between', 'pretty-link').' '.date("Y-n-j", $start_timestamp).' '.__('and', 'pretty-link').' '.date("Y-n-j", $end_timestamp);
236
-
237
- $dates_array = $this->get_counts_by_days($start_timestamp,$end_timestamp,$link_id,$type,$group);
238
-
239
- $chart_data = array('cols' => array(array("label" => __('Date', 'pretty-link'), 'type' => 'string'), array("label" => __('Hits', 'pretty-link'), 'type' => 'number')));
240
-
241
- foreach($dates_array as $key => $value)
242
- $chart_data['rows'][] = array('c' => array(array('v' => $key, 'f' => null), array('v' => (int)$value, 'f' => null)));
243
-
244
- return json_encode($chart_data);
245
- }
246
-
247
- // Set defaults and grab get or post of each possible param
248
- function get_params_array()
249
- {
250
- $values = array(
251
- 'paged' => (isset($_GET['paged'])?$_GET['paged']:(isset($_POST['paged'])?$_POST['paged']:1)),
252
- 'l' => (isset($_GET['l'])?(int)$_GET['l']:(isset($_POST['l'])?(int)$_POST['l']:'all')),
253
- 'group' => (isset($_GET['group'])?$_GET['group']:(isset($_POST['group'])?$_POST['group']:'')),
254
- 'ip' => (isset($_GET['ip'])?$_GET['ip']:(isset($_POST['ip'])?$_POST['ip']:'')),
255
- 'vuid' => (isset($_GET['vuid'])?$_GET['vuid']:(isset($_POST['vuid'])?$_POST['vuid']:'')),
256
- 'sdate' => (isset($_GET['sdate'])?$_GET['sdate']:(isset($_POST['sdate'])?$_POST['sdate']:'')),
257
- 'edate' => (isset($_GET['edate'])?$_GET['edate']:(isset($_POST['edate'])?$_POST['edate']:'')),
258
- 'type' => (isset($_GET['type'])?$_GET['type']:(isset($_POST['type'])?$_POST['type']:'all')),
259
- 'search' => (isset($_GET['search'])?$_GET['search']:(isset($_POST['search'])?$_POST['search']:'')),
260
- 'sort' => (isset($_GET['sort'])?$_GET['sort']:(isset($_POST['sort'])?$_POST['sort']:'')),
261
- 'sdir' => (isset($_GET['sdir'])?$_GET['sdir']:(isset($_POST['sdir'])?$_POST['sdir']:''))
262
- );
263
-
264
- return $values;
265
- }
266
-
267
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/models/PrliLinkMeta.php DELETED
@@ -1,69 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- class PrliLinkMeta
6
- {
7
- var $table_name;
8
-
9
- function __construct()
10
- {
11
- global $wpdb;
12
- $this->table_name = "{$wpdb->prefix}prli_link_metas";
13
- }
14
-
15
- function get_link_meta($link_id,$meta_key,$return_var=false)
16
- {
17
- global $wpdb;
18
- $query_str = "SELECT meta_value FROM {$this->table_name} WHERE meta_key=%s and link_id=%d";
19
- $query = $wpdb->prepare($query_str,$meta_key,$link_id);
20
-
21
- if($return_var)
22
- return $wpdb->get_var("{$query} LIMIT 1");
23
- else
24
- return $wpdb->get_col($query, 0);
25
- }
26
-
27
- function add_link_meta($link_id, $meta_key, $meta_value)
28
- {
29
- global $wpdb;
30
-
31
- $query_str = "INSERT INTO {$this->table_name} " .
32
- '(meta_key,meta_value,link_id,created_at) VALUES (%s,%s,%d,NOW())';
33
- $query = $wpdb->prepare($query_str, $meta_key, $meta_value, $link_id);
34
- return $wpdb->query($query);
35
- }
36
-
37
- function update_link_meta($link_id, $meta_key, $meta_values)
38
- {
39
- global $wpdb;
40
- $this->delete_link_meta($link_id, $meta_key);
41
-
42
- if(!is_array($meta_values))
43
- $meta_values = array($meta_values);
44
-
45
- $status = false;
46
- foreach($meta_values as $meta_value)
47
- $status = $this->add_link_meta($link_id, $meta_key, $meta_value);
48
-
49
- return $status;
50
- }
51
-
52
- function delete_link_meta($link_id, $meta_key)
53
- {
54
- global $wpdb;
55
-
56
- $query_str = "DELETE FROM {$this->table_name} " .
57
- "WHERE meta_key=%s AND link_id=%d";
58
- $query = $wpdb->prepare($query_str, $meta_key, $link_id);
59
- return $wpdb->query($query);
60
- }
61
-
62
- function delete_link_metas($link_id) {
63
- global $wpdb;
64
-
65
- $query_str = "DELETE FROM {$this->table_name} WHERE link_id=%d";
66
- $query = $wpdb->prepare($query_str, $meta_key, $link_id);
67
- return $wpdb->query($query);
68
- }
69
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/models/PrliUpdate.php DELETED
@@ -1,301 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH')) die('You are not allowed to call this page directly.');
3
-
4
- /** Okay, this class is not a pure model -- it contains all the functions
5
- * necessary to successfully provide an update mechanism for Pretty Link Pro
6
- */
7
- class PrliUpdate
8
- {
9
- public $plugin_name;
10
- public $plugin_slug;
11
- public $plugin_url;
12
- public $pro_script;
13
- public $pro_mothership;
14
- public $get_started_page;
15
-
16
- public $pro_cred_store;
17
- public $pro_auth_store;
18
-
19
- public $pro_username_label;
20
- public $pro_password_label;
21
-
22
- public $pro_username_str;
23
- public $pro_password_str;
24
-
25
- public $pro_error_message_str;
26
-
27
- public $activation_order;
28
-
29
- public $pro_username;
30
- public $pro_password;
31
- public $pro_mothership_xmlrpc_url;
32
-
33
- function __construct()
34
- {
35
- // Where all the vitals are defined for this plugin
36
- $this->plugin_name = 'pretty-link/pretty-link.php';
37
- $this->plugin_slug = 'pretty-link';
38
- $this->plugin_url = 'http://prettylinkpro.com';
39
- $this->pro_script = PRLI_PATH . '/pro/pretty-link-pro.php';
40
- $this->pro_mothership = 'http://prettylinkpro.com';
41
- $this->get_started_page = 'pretty-link';
42
- $this->pro_cred_store = 'prlipro-credentials';
43
- $this->pro_auth_store = 'prlipro_activated';
44
- $this->pro_username_label = __('Pretty Link Pro Username', 'pretty-link');
45
- $this->pro_password_label = __('Pretty Link Pro Password', 'pretty-link');
46
- $this->pro_error_message_str = __('Your Pretty Link Pro Username or Password was Invalid', 'pretty-link');
47
- $this->activation_order = 'dontcare';
48
-
49
- // Don't modify these variables
50
- $this->pro_username_str = 'proplug-username';
51
- $this->pro_password_str = 'proplug-password';
52
- $this->pro_mothership_xmlrpc_url = $this->pro_mothership . '/xmlrpc.php';
53
-
54
- add_filter( 'pre_set_site_transient_update_plugins', array( &$this, 'queue_update' ) );
55
-
56
- // Retrieve Pro Credentials
57
- $creds = get_option($this->pro_cred_store);
58
- if($creds and is_array($creds))
59
- {
60
- extract($creds);
61
- $this->pro_username = ((isset($username) and !empty($username))?$username:'');
62
- $this->pro_password = ((isset($password) and !empty($password))?$password:'');
63
- }
64
-
65
- if(isset($this->activation_order) and ($this->activation_order != 'dontcare'))
66
- add_action("activated_plugin", array(&$this,'reorder_activation'));
67
- }
68
-
69
- public function reorder_activation() {
70
- // ensure path to this file is via main wp plugin path
71
- $this_plugin = plugin_basename(trim($this->pro_script));
72
- $active_plugins = get_option('active_plugins');
73
- $this_plugin_key = array_search($this_plugin, $active_plugins);
74
- array_splice($active_plugins, $this_plugin_key, 1);
75
-
76
- if($this->activation_order == 'last')
77
- array_push($active_plugins, $this_plugin);
78
- else
79
- array_unshift($active_plugins, $this_plugin);
80
-
81
- update_option('active_plugins', $active_plugins);
82
- }
83
-
84
- public function pro_is_installed()
85
- {
86
- return file_exists($this->pro_script);
87
- }
88
-
89
- public function pro_is_authorized($force_check=false)
90
- {
91
- if( !empty($this->pro_username) and
92
- !empty($this->pro_password) )
93
- {
94
- $authorized = get_option($this->pro_auth_store);
95
-
96
- if(!$force_check and isset($authorized) and $authorized and ($authorized=='true' or $authorized=='false'))
97
- return ($authorized=='true');
98
- else
99
- {
100
- $new_auth = $this->authorize_user($this->pro_username,$this->pro_password);
101
- $new_auth = ($new_auth?'true':'false');
102
- update_option($this->pro_auth_store, $new_auth);
103
- return ($new_auth=='true');
104
- }
105
- }
106
-
107
- return false;
108
- }
109
-
110
- public function pro_is_installed_and_authorized()
111
- {
112
- return ($this->pro_is_installed() and $this->pro_is_authorized());
113
- }
114
-
115
- public function authorize_user($username, $password)
116
- {
117
- include_once( ABSPATH . 'wp-includes/class-IXR.php' );
118
-
119
- $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
120
-
121
- if ( !$client->query( 'proplug.is_user_authorized', $username, $password ) )
122
- return false;
123
-
124
- return $client->getResponse();
125
- }
126
-
127
- public function user_allowed_to_download()
128
- {
129
- include_once( ABSPATH . 'wp-includes/class-IXR.php' );
130
-
131
- $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
132
-
133
- if ( !$client->query( 'proplug.is_user_allowed_to_download', $this->pro_username, $this->pro_password, get_option('home') ) )
134
- return false;
135
-
136
- return $client->getResponse();
137
- }
138
-
139
- public function pro_cred_form()
140
- {
141
- if(isset($_POST) and
142
- isset($_POST['process_cred_form']) and
143
- $_POST['process_cred_form'] == 'Y')
144
- {
145
- if($this->process_pro_cred_form())
146
- {
147
- if(!$this->pro_is_installed())
148
- {
149
- $inst_install_url = wp_nonce_url('update.php?action=upgrade-plugin&plugin=' . $this->plugin_name, 'upgrade-plugin_' . $this->plugin_name);
150
-
151
- ?>
152
- <div id="message" class="updated fade">
153
- <strong><?php printf(__('Your Username & Password was accepted<br/>Now you can %1$sUpgrade Automatically!%2$s', 'pretty-link'), "<a href=\"{$inst_install_url}\">","</a>"); ?></strong>
154
- </div>
155
- <?php
156
- }
157
- else
158
- {
159
- $plugin_url = wp_nonce_url("admin.php?page={$this->get_started_page}", "configure-plugin_{$this->get_started_page}");
160
-
161
- ?>
162
- <div id="message" class="updated fade">
163
- <strong><?php printf(__('Your Username & Password was accepted<br/>Now you can %1$sGet Started!%2$s', 'pretty-link'), "<a href=\"{$plugin_url}\">","</a>"); ?></strong>
164
- </div>
165
- <?php
166
- }
167
- }
168
- else
169
- {
170
- ?>
171
- <div class="error">
172
- <ul>
173
- <li><strong><?php _e('ERROR', 'pretty-link'); ?></strong>: <?php echo $this->pro_error_message_str; ?></li>
174
- </ul>
175
- </div>
176
- <?php
177
- }
178
- }
179
-
180
- $this->display_pro_cred_form();
181
- }
182
-
183
- public function display_pro_cred_form()
184
- {
185
- // Yah, this is the view for the credentials form -- this class isn't a true model
186
- $this_uri = preg_replace('#&.*?$#', '', str_replace( '%7E', '~', $_SERVER['REQUEST_URI']));
187
- extract($this->get_pro_cred_form_vals());
188
- ?>
189
- <form name="cred_form" method="post" action="<?php echo $this_uri; ?>">
190
- <input type="hidden" name="process_cred_form" value="Y">
191
- <?php wp_nonce_field('cred_form'); ?>
192
-
193
- <table class="form-table">
194
- <tr class="form-field">
195
- <td valign="top" width="15%"><?php echo $this->pro_username_label; ?>:</td>
196
- <td width="85%">
197
- <input type="text" name="<?php echo $this->pro_username_str; ?>" value="<?php echo $username; ?>"/>
198
- </td>
199
- </tr>
200
- <tr class="form-field">
201
- <td valign="top" width="15%"><?php echo $this->pro_password_label; ?>:</td>
202
- <td width="85%">
203
- <input type="password" name="<?php echo $this->pro_password_str; ?>" value="<?php echo $password; ?>"/>
204
- </td>
205
- </tr>
206
- </table>
207
- <p class="submit">
208
- <input type="submit" name="Submit" value="<?php _e('Save', 'pretty-link'); ?>" />
209
- </p>
210
- </form>
211
- <?php
212
- }
213
-
214
- public function process_pro_cred_form()
215
- {
216
- $creds = $this->get_pro_cred_form_vals();
217
- $user_authorized = $this->authorize_user($creds['username'], $creds['password']);
218
-
219
- if(!empty($user_authorized) and $user_authorized)
220
- {
221
- update_option($this->pro_cred_store, $creds);
222
- update_option($this->pro_auth_store, ($user_authorized?'true':'false'));
223
-
224
- extract($creds);
225
- $this->pro_username = ((isset($username) and !empty($username))?$username:'');
226
- $this->pro_password = ((isset($password) and !empty($password))?$password:'');
227
-
228
- if(!$this->pro_is_installed())
229
- $this->manually_queue_update();
230
- }
231
-
232
- return $user_authorized;
233
- }
234
-
235
- public function get_pro_cred_form_vals()
236
- {
237
- $username = ((isset($_POST[$this->pro_username_str]))?$_POST[$this->pro_username_str]:$this->pro_username);
238
- $password = ((isset($_POST[$this->pro_password_str]))?$_POST[$this->pro_password_str]:$this->pro_password);
239
-
240
- return compact('username','password');
241
- }
242
-
243
- public function get_download_url($version)
244
- {
245
- include_once( ABSPATH . 'wp-includes/class-IXR.php' );
246
-
247
- $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
248
-
249
- if( !$client->query( 'proplug.get_download_url', $this->pro_username, $this->pro_password, $version ) )
250
- return false;
251
-
252
- return $client->getResponse();
253
- }
254
-
255
- public function get_current_info($version, $force=false)
256
- {
257
- include_once( ABSPATH . 'wp-includes/class-IXR.php' );
258
-
259
- $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
260
-
261
- $force = ($force ? 'true' : 'false');
262
-
263
- if( !$client->query( 'proplug.get_current_info', $this->pro_username, $this->pro_password, $version, $force ) )
264
- return false;
265
-
266
- return $client->getResponse();
267
- }
268
-
269
- public function get_current_version()
270
- {
271
- include_once( ABSPATH . 'wp-includes/class-IXR.php' );
272
-
273
- $client = new IXR_Client( $this->pro_mothership_xmlrpc_url );
274
-
275
- if( !$client->query( 'proplug.get_current_version' ) )
276
- return false;
277
-
278
- return $client->getResponse();
279
- }
280
-
281
- public function queue_update($transient, $force=false) {
282
- if( empty( $transient->checked ) )
283
- return $transient;
284
-
285
- if( $this->pro_is_authorized() ) {
286
- if( !$this->pro_is_installed() ) { $force = true; }
287
-
288
- $update = $this->get_current_info( $transient->checked[ $this->plugin_name ], $force );
289
-
290
- if( $update and !empty( $update ) )
291
- $transient->response[ $this->plugin_name ] = (object) $update;
292
- }
293
-
294
- return $transient;
295
- }
296
-
297
- public function manually_queue_update() {
298
- $transient = get_site_transient("update_plugins");
299
- set_site_transient("update_plugins",$this->queue_update($transient, true));
300
- }
301
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/models/PrliUtils.php DELETED
@@ -1,1234 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- require_once('models.inc.php');
6
-
7
- class PrliUtils
8
- {
9
- /** Okay I realize that Percentagize isn't really a word but
10
- * this is so that the values we have will work with google
11
- * charts.
12
- */
13
- function percentagizeArray($data,$max_value)
14
- {
15
- $new_data = array();
16
- foreach($data as $point)
17
- {
18
- if( $max_value > 0 )
19
- {
20
- $new_data[] = $point / $max_value * 100;
21
- }
22
- else
23
- {
24
- $new_data[] = 0;
25
- }
26
- }
27
- return $new_data;
28
- }
29
-
30
- function getTopValue($values_array)
31
- {
32
- rsort($values_array);
33
- return $values_array[0];
34
- }
35
-
36
- function getFirstClickDate()
37
- {
38
- global $wpdb;
39
-
40
- $clicks_table = $wpdb->prefix . "prli_clicks";
41
- $query = "SELECT created_at FROM $clicks_table ORDER BY created_at LIMIT 1";
42
- $first_click = $wpdb->get_var($query);
43
-
44
- if(isset($first_click))
45
- {
46
- return strtotime($first_click);
47
- }
48
- else
49
- return null;
50
- }
51
-
52
- function getMonthsArray()
53
- {
54
- global $wpdb;
55
- global $prli_click;
56
-
57
- $months = array();
58
- $year = date("Y");
59
- $month = date("m");
60
- $current_timestamp = time();
61
- $current_month_timestamp = mktime(0, 0, 0, date("m", $current_timestamp), 1, date("Y", $current_timestamp));
62
-
63
- $clicks_table = $prli_click->tableName();
64
- $first_click = $wpdb->get_var("SELECT created_at FROM $clicks_table ORDER BY created_at LIMIT 1;");
65
- $first_timestamp = ((empty($first_click))?$current_timestamp:strtotime($first_click));
66
- $first_date = mktime(0, 0, 0, date("m", $first_timestamp), 1, date("Y", $first_timestamp));
67
-
68
- while($current_month_timestamp >= $first_date)
69
- {
70
- $months[] = $current_month_timestamp;
71
- if(date("m") == 1)
72
- $current_month_timestamp = mktime(0, 0, 0, 12, 1, date("Y", $current_month_timestamp)-1);
73
- else
74
- $current_month_timestamp = mktime(0, 0, 0, date("m", $current_month_timestamp)-1, 1, date("Y", $current_month_timestamp));
75
- }
76
- return $months;
77
- }
78
-
79
- // For Pagination
80
- function getLastRecordNum($r_count,$current_p,$p_size)
81
- {
82
- return (($r_count < ($current_p * $p_size))?$r_count:($current_p * $p_size));
83
- }
84
-
85
- // For Pagination
86
- function getFirstRecordNum($r_count,$current_p,$p_size)
87
- {
88
- if($current_p == 1)
89
- return 1;
90
- else
91
- return ($this->getLastRecordNum($r_count,($current_p - 1),$p_size) + 1);
92
- }
93
-
94
- public static function slugIsAvailable( $full_slug, $id = '' )
95
- {
96
- global $wpdb, $prli_blogurl, $prli_link;
97
-
98
- // We don't care about anything after the slash for now because we don't want
99
- // to have to worry about comparing against every imaginable combination in WordPress
100
- $slug_components = explode('/',$full_slug);
101
- $slug = $slug_components[0];
102
-
103
- // Check slug uniqueness against posts, pages and categories
104
- // $postname = $wpdb->get_var($wpdb->prepare("SELECT post_name FROM {$wpdb->posts} WHERE post_name=%s LIMIT 1",$slug));
105
- $taxonomy = $wpdb->get_var($wpdb->prepare("SELECT taxonomy FROM {$wpdb->term_taxonomy} WHERE taxonomy=%s LIMIT 1",$slug));
106
-
107
- // If anything was returned for these two calls then the slug has been taken
108
- if(/* $postname or */$taxonomy )
109
- return false;
110
-
111
- // Check slug against files on the root wordpress install
112
- $root_dir = opendir(ABSPATH);
113
-
114
- while (($file = readdir($root_dir)) !== false) {
115
- $haystack = strtolower($file);
116
- if($haystack == $slug)
117
- return false;
118
- }
119
-
120
- // Check slug against other slugs in the prli links database.
121
- // We'll use the full_slug here because its easier to guarantee uniqueness.
122
- if(!is_null($id) and !empty($id) and is_numeric($id))
123
- $query = $wpdb->prepare("SELECT slug FROM {$prli_link->table_name} WHERE slug=%s AND id <> %d", $full_slug, $id);
124
- else
125
- $query = $wpdb->prepare("SELECT slug FROM {$prli_link->table_name} WHERE slug=%s", $full_slug);
126
-
127
- $link_slug = $wpdb->get_var($query);
128
-
129
- if( $link_slug == $full_slug )
130
- return false;
131
-
132
- $pre_slug_slug = PrliUtils::get_permalink_pre_slug_uri(true,true);
133
-
134
- if($full_slug == $pre_slug_slug)
135
- return false;
136
-
137
- // TODO: Check permalink structure to avoid the ability of creating a year or something as a slug
138
-
139
- return true;
140
- }
141
-
142
- function &php_get_browsercap_ini()
143
- {
144
- // Since it's a fairly expensive proposition to load the ini file
145
- // let's make sure we only do it once
146
- static $browsecap_ini;
147
-
148
- if(!isset($browsecap_ini))
149
- {
150
- if( version_compare(PHP_VERSION, '5.3.0') >= 0 )
151
- $browsecap_ini = parse_ini_file( PRLI_PATH . "/includes/php/php_browsecap.ini", true, INI_SCANNER_RAW );
152
- else
153
- $browsecap_ini = parse_ini_file( PRLI_PATH . "/includes/php/php_browsecap.ini", true );
154
- }
155
-
156
- return $browsecap_ini;
157
- }
158
-
159
- /* Needed because we don't know if the target uesr will have a browsercap file installed
160
- on their server ... particularly in a shared hosting environment this is difficult
161
- */
162
- function php_get_browser($agent = NULL)
163
- {
164
- $agent=$agent?$agent:$_SERVER['HTTP_USER_AGENT'];
165
- $yu=array();
166
- $q_s=array("#\.#","#\*#","#\?#");
167
- $q_r=array("\.",".*",".?");
168
- $brows = $this->php_get_browsercap_ini();
169
-
170
- if(!empty($brows) and $brows and is_array($brows))
171
- {
172
- foreach($brows as $k=>$t)
173
- {
174
- if(fnmatch($k,$agent))
175
- {
176
- $yu['browser_name_pattern']=$k;
177
- $pat=preg_replace($q_s,$q_r,$k);
178
- $yu['browser_name_regex']=strtolower("^$pat$");
179
- foreach($brows as $g=>$r)
180
- {
181
- if($t['Parent']==$g)
182
- {
183
- foreach($brows as $a=>$b)
184
- {
185
- if($r['Parent']==$a)
186
- {
187
- $yu=array_merge($yu,$b,$r,$t);
188
- foreach($yu as $d=>$z)
189
- {
190
- $l=strtolower($d);
191
- $hu[$l]=$z;
192
- }
193
- }
194
- }
195
- }
196
- }
197
-
198
- break;
199
- }
200
- }
201
- }
202
-
203
- return $hu;
204
- }
205
-
206
- // This is where the magic happens!
207
- function track_link($slug,$values)
208
- {
209
- global $wpdb, $prli_click, $prli_options, $prli_link, $prli_update;
210
-
211
- $query = "SELECT * FROM ".$prli_link->table_name." WHERE slug='$slug' LIMIT 1";
212
- $pretty_link = $wpdb->get_row($query);
213
- $pretty_link_target = apply_filters( 'prli_target_url', array( 'url' => $pretty_link->url, 'link_id' => $pretty_link->id, 'redirect_type' => $pretty_link->redirect_type ) );
214
- $pretty_link_url = $pretty_link_target['url'];
215
- $track_me = apply_filters('prli_track_link', $pretty_link->track_me);
216
-
217
- if(isset($track_me) and !empty($track_me) and $track_me)
218
- {
219
- $first_click = 0;
220
-
221
- $click_ip = isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:'';
222
- $click_referer = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';
223
- $click_uri = isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'';
224
- $click_user_agent = isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:'';
225
-
226
- //Set Cookie if it doesn't exist
227
- $cookie_name = 'prli_click_' . $pretty_link->id;
228
-
229
- //Used for unique click tracking
230
- $cookie_expire_time = time()+60*60*24*30; // Expire in 30 days
231
-
232
- if(!isset($_COOKIE[$cookie_name]))
233
- {
234
- setcookie($cookie_name,$slug,$cookie_expire_time,'/');
235
- $first_click = 1;
236
- }
237
-
238
- if(isset($prli_options->extended_tracking) and $prli_options->extended_tracking == 'extended')
239
- {
240
- $click_browser = $this->php_get_browser();
241
- $click_host = gethostbyaddr($click_ip);
242
-
243
- $visitor_cookie = 'prli_visitor';
244
- //Used for visitor activity
245
- $visitor_cookie_expire_time = time()+60*60*24*365; // Expire in 1 year
246
-
247
- // Retrieve / Generate visitor id
248
- if(!isset($_COOKIE[$visitor_cookie]))
249
- {
250
- $visitor_uid = $prli_click->generateUniqueVisitorId();
251
- setcookie($visitor_cookie,$visitor_uid,$visitor_cookie_expire_time,'/');
252
- }
253
- else
254
- $visitor_uid = $_COOKIE[$visitor_cookie];
255
- }
256
- else
257
- {
258
- $click_browser = array( 'browser' => '', 'version' => '', 'platform' => '', 'crawler' => '' );
259
- $click_host = '';
260
- $visitor_uid = '';
261
- }
262
-
263
- if($prli_options->extended_tracking != 'count')
264
- {
265
- //Record Click in DB
266
- $insert_str = "INSERT INTO {$prli_click->table_name} (link_id,vuid,ip,browser,btype,bversion,os,referer,uri,host,first_click,robot,created_at) VALUES (%d,%s,%s,%s,%s,%s,%s,%s,%s,%s,%d,%d,NOW())";
267
- $insert = $wpdb->prepare($insert_str, $pretty_link->id,
268
- $visitor_uid,
269
- $click_ip,
270
- $click_user_agent,
271
- $click_browser['browser'],
272
- $click_browser['version'],
273
- $click_browser['platform'],
274
- $click_referer,
275
- $click_uri,
276
- $click_host,
277
- $first_click,
278
- $this->this_is_a_robot($click_user_agent,$click_browser));
279
-
280
- $results = $wpdb->query( $insert );
281
-
282
- do_action('prli_record_click',array('link_id' => $pretty_link->id, 'click_id' => $wpdb->insert_id, 'url' => $pretty_link_url));
283
- }
284
- else
285
- {
286
- global $prli_link_meta;
287
- $exclude_ips = explode(",", $prli_options->prli_exclude_ips);
288
- if(!in_array($click_ip, $exclude_ips) and !$this->this_is_a_robot($click_user_agent,$click_browser))
289
- {
290
- $clicks = $prli_link_meta->get_link_meta($pretty_link->id, 'static-clicks', true);
291
- $clicks = (empty($clicks) or $clicks === false)?0:$clicks;
292
- $prli_link_meta->update_link_meta($pretty_link->id, 'static-clicks', $clicks+1);
293
-
294
- if($first_click)
295
- {
296
- $uniques = $prli_link_meta->get_link_meta($pretty_link->id, 'static-uniques', true);
297
- $uniques = (empty($uniques) or $uniques === false)?0:$uniques;
298
- $prli_link_meta->update_link_meta($pretty_link->id, 'static-uniques', $uniques+1);
299
- }
300
- }
301
- }
302
- }
303
-
304
- $param_string = '';
305
- if( isset($pretty_link->param_forwarding) and
306
- ( $pretty_link->param_forwarding == 'custom' or
307
- $pretty_link->param_forwarding == 'on') and
308
- isset( $values ) and count( $values ) >= 1 ) {
309
- $parray = explode( '?', $_SERVER['REQUEST_URI'] );
310
-
311
- if(isset($parray[1]))
312
- $param_string = (preg_match("#\?#", $pretty_link_url)?"&":"?") . $parray[1];
313
-
314
- $param_string = preg_replace( array("#%5B#i","#%5D#i"), array("[","]"), $param_string );
315
-
316
- $param_string = apply_filters('prli_redirect_params', $param_string);
317
- }
318
-
319
- if(isset($pretty_link->nofollow) and $pretty_link->nofollow)
320
- header("X-Robots-Tag: noindex, nofollow", true);
321
-
322
- switch($pretty_link->redirect_type)
323
- {
324
- case '301':
325
- header("HTTP/1.1 301 Moved Permanently");
326
- header('Location: '.$pretty_link_url.$param_string);
327
- break;
328
- default:
329
- if( $pretty_link->redirect_type == '307' or
330
- !$prli_update->pro_is_installed_and_authorized() )
331
- {
332
- if($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0')
333
- header("HTTP/1.1 302 Found");
334
- else
335
- header("HTTP/1.1 307 Temporary Redirect");
336
- header('Location: '.$pretty_link_url.$param_string);
337
- }
338
- else
339
- do_action('prli_issue_cloaked_redirect', $pretty_link->redirect_type, $pretty_link, $pretty_link_url, $param_string);
340
- }
341
- }
342
-
343
- function get_custom_forwarding_rule($param_struct)
344
- {
345
- $param_struct = preg_replace('#%.*?%#','(.*?)',$param_struct);
346
- return preg_replace('#\(\.\*\?\)$#','(.*)',$param_struct); // replace the last one with a greedy operator
347
- }
348
-
349
- function get_custom_forwarding_params($param_struct, $start_index = 1)
350
- {
351
- preg_match_all('#%(.*?)%#', $param_struct, $matches);
352
-
353
- $param_string = '';
354
- $match_index = $start_index;
355
- for($i = 0; $i < count($matches[1]); $i++)
356
- {
357
- if($i == 0 and $start_index == 1)
358
- $param_string .= "?";
359
- else
360
- $param_string .= "&";
361
-
362
- $param_string .= $matches[1][$i] . "=$$match_index";
363
- $match_index++;
364
- }
365
-
366
- return $param_string;
367
- }
368
-
369
- function decode_custom_param_str($param_struct, $uri_string)
370
- {
371
- // Get the structure matches (param names)
372
- preg_match_all('#%(.*?)%#', $param_struct, $struct_matches);
373
-
374
- // Get the uri matches (param values)
375
- $match_str = '#'.$this->get_custom_forwarding_rule($param_struct).'#';
376
- preg_match($match_str, $uri_string, $uri_matches);
377
-
378
- $param_array = array();
379
- for($i = 0; $i < count($struct_matches[1]); $i++)
380
- $param_array[$struct_matches[1][$i]] = $uri_matches[$i+1];
381
-
382
- return $param_array;
383
- }
384
-
385
- // Detects whether an array is a true numerical array or an
386
- // associative array (or hash).
387
- function prli_array_type($item)
388
- {
389
- $array_type = 'unknown';
390
-
391
- if(is_array($item))
392
- {
393
- $array_type = 'array';
394
-
395
- foreach($item as $key => $value)
396
- {
397
- if(!is_numeric($key))
398
- {
399
- $array_type = 'hash';
400
- break;
401
- }
402
- }
403
- }
404
-
405
- return $array_type;
406
- }
407
-
408
- // This eliminates the need to use php's built in json_encoder
409
- // which only works with PHP 5.2 and above.
410
- function prli_json_encode($json_array)
411
- {
412
- $json_str = '';
413
-
414
- if(is_array($json_array))
415
- {
416
- if($this->prli_array_type($json_array) == 'array')
417
- {
418
- $first = true;
419
- $json_str .= "[";
420
- foreach($json_array as $item)
421
- {
422
- if(!$first)
423
- $json_str .= ",";
424
-
425
- if(is_numeric($item))
426
- $json_str .= (($item < 0)?"\"$item\"":$item);
427
- else if(is_array($item))
428
- $json_str .= $this->prli_json_encode($item);
429
- else if(is_string($item))
430
- $json_str .= '"'.$item.'"';
431
- else if(is_bool($item))
432
- $json_str .= (($item)?"true":"false");
433
-
434
- $first = false;
435
- }
436
- $json_str .= "]";
437
- }
438
- else if($this->prli_array_type($json_array) == 'hash')
439
- {
440
- $first = true;
441
- $json_str .= "{";
442
- foreach($json_array as $key => $item)
443
- {
444
- if(!$first)
445
- $json_str .= ",";
446
-
447
- $json_str .= "\"$key\":";
448
-
449
- if(is_numeric($item))
450
- $json_str .= (($item < 0)?"\"$item\"":$item);
451
- else if(is_array($item))
452
- $json_str .= $this->prli_json_encode($item);
453
- else if(is_string($item))
454
- $json_str .= "\"$item\"";
455
- else if(is_bool($item))
456
- $json_str .= (($item)?"true":"false");
457
-
458
- $first = false;
459
- }
460
- $json_str .= "}";
461
- }
462
- }
463
-
464
- return $json_str;
465
- }
466
-
467
- // This eliminates the need to use php's built in json_encoder
468
- // which only works with PHP 5.2 and above.
469
- function prli_json_decode(&$json_str,$type='array',$index = 0)
470
- {
471
- $json_array = array();
472
- $index_str = '';
473
- $value_str = '';
474
- $in_string = false;
475
- $in_index = ($type=='hash'); //first char in hash is an index
476
- $in_value = ($type=='array'); //first char in array is a value
477
-
478
- $json_special_chars_array = array('{','[','}',']','"',',',':');
479
-
480
- // On the first pass we need to do some special stuff
481
- if($index == 0)
482
- {
483
- if($json_str[$index] == '{')
484
- {
485
- $type = 'hash';
486
- $in_index = true;
487
- $in_value = false;
488
- }
489
- else if($json_str[$index]=='[')
490
- {
491
- $type = 'array';
492
- $in_index = false;
493
- $in_value = true;
494
- }
495
- else
496
- return false; // not valid json
497
-
498
- // skip to next index
499
- $index++;
500
- }
501
-
502
- for($i = $index; $i < strlen($json_str); $i++)
503
- {
504
- if($in_string and in_array($json_str[$i],$json_special_chars_array))
505
- {
506
- if($json_str[$i] == '"')
507
- $in_string = false;
508
- else
509
- {
510
- if($in_value)
511
- $value_str .= $json_str[$i];
512
- else if($in_index)
513
- $index_str .= $json_str[$i];
514
- }
515
- }
516
- else
517
- {
518
- switch($json_str[$i])
519
- {
520
- case '{':
521
- $array_vals = $this->prli_json_decode($json_str,'hash',$i + 1);
522
-
523
- if($type=='hash')
524
- $json_array[$index_str] = $array_vals[1]; // We'll never get an array as an index
525
- else if($type=='array')
526
- $json_array[] = $array_vals[1];
527
-
528
- $i = $array_vals[0]; // Skip ahead to the new index
529
- break;
530
-
531
- case '[':
532
- $array_vals = $this->prli_json_decode($json_str,'array',$i + 1);
533
-
534
- if($type=='hash')
535
- $json_array[$index_str] = $array_vals[1];
536
- else if($type=='array')
537
- $json_array[] = $array_vals[1];
538
-
539
- $i = $array_vals[0]; // Skip ahead to the new index
540
- break;
541
-
542
- case '}':
543
- if(!empty($index_str) and !empty($value_str))
544
- {
545
- $json_array[$index_str] = $this->prli_decode_json_unicode($value_str);
546
- $index_str = '';
547
- $value_str = '';
548
- }
549
- return array($i,$json_array);
550
-
551
- case ']':
552
- if(!empty($value_str))
553
- {
554
- $json_array[] = $this->prli_decode_json_unicode($value_str);
555
- $value_str = '';
556
- }
557
- return array($i,$json_array);
558
-
559
- // skip the null character
560
- case '\0':
561
- break;
562
-
563
- // Handle Escapes
564
- case '\\':
565
- if($in_string)
566
- {
567
- if(in_array($json_str[$i + 1],$json_special_chars_array))
568
- {
569
- if($in_value)
570
- $value_str .= '\\'.$json_str[$i + 1];
571
- else if($in_index)
572
- $index_str .= '\\'.$json_str[$i + 1];
573
-
574
- $i++; // skip the escaped char now that its been recorded
575
- }
576
- else
577
- {
578
- if($in_value)
579
- $value_str .= $json_str[$i];
580
- else if($in_index)
581
- $index_str .= $json_str[$i];
582
- }
583
- }
584
- break;
585
-
586
- case '"':
587
- $in_string = !$in_string; // just tells us if we're in a string
588
- break;
589
-
590
- case ':':
591
- if($type == 'hash')
592
- {
593
- $in_value = true;
594
- $in_index = false;
595
- }
596
- break;
597
-
598
- case ',':
599
- if($type == 'hash')
600
- {
601
- if(!empty($index_str) and !empty($value_str))
602
- {
603
- $json_array[$index_str] = $this->prli_decode_json_unicode($value_str);
604
- $index_str = '';
605
- $value_str = '';
606
- }
607
-
608
- $in_index = true;
609
- $in_value = false;
610
- }
611
- else if($type == 'array')
612
- {
613
- if(!empty($value_str))
614
- {
615
- $json_array[] = $this->prli_decode_json_unicode($value_str);
616
- $value_str = '';
617
- }
618
-
619
- $in_value = true;
620
- $in_index = false; // always false in an array
621
- }
622
- break;
623
-
624
- // record index and value
625
- default:
626
- if($in_value)
627
- $value_str .= $json_str[$i];
628
- else if($in_index)
629
- $index_str .= $json_str[$i];
630
- }
631
- }
632
- }
633
-
634
- return array(-1,$json_array);
635
- }
636
-
637
- function prli_decode_json_unicode($val)
638
- {
639
- $val = preg_replace_callback("/\\\u([0-9a-fA-F]{4})/",
640
- create_function(
641
- '$matches',
642
- 'return html_entity_decode("&#".hexdec($matches[1]).";",ENT_COMPAT,"UTF-8");'
643
- ),
644
- $val);
645
- return $val;
646
- }
647
-
648
- // Get the timestamp of the start date
649
- function get_start_date($values,$min_date = '')
650
- {
651
- // set default to 30 days ago
652
- if(empty($min_date))
653
- $min_date = 30;
654
-
655
- if(!empty($values['sdate']))
656
- {
657
- $sdate = explode("-",$values['sdate']);
658
- $start_timestamp = mktime(0,0,0,$sdate[1],$sdate[2],$sdate[0]);
659
- }
660
- else
661
- $start_timestamp = time()-60*60*24*(int)$min_date;
662
-
663
- return $start_timestamp;
664
- }
665
-
666
- // Get the timestamp of the end date
667
- function get_end_date($values)
668
- {
669
- if(!empty($values['edate']))
670
- {
671
- $edate = explode("-",$values['edate']);
672
- $end_timestamp = mktime(0,0,0,$edate[1],$edate[2],$edate[0]);
673
- }
674
- else
675
- $end_timestamp = time();
676
-
677
- return $end_timestamp;
678
- }
679
-
680
- function prepend_and_or_where( $starts_with = ' WHERE', $where = '' )
681
- {
682
- return (( $where == '' )?'':$starts_with . $where);
683
- }
684
-
685
- function uninstall_pro()
686
- {
687
- $prlipro_path = PRLI_PATH . '/pro';
688
-
689
- // unlink pro directory
690
- $this->delete_dir($prlipro_path);
691
-
692
- delete_option( 'prlipro_activated' );
693
- delete_option( 'prlipro_username' );
694
- delete_option( 'prlipro_password' );
695
- delete_option( 'prlipro-credentials' );
696
-
697
- // Yah- I just leave the pro database tables & data hanging
698
- // around in case you want to re-install it at some point
699
- }
700
-
701
- function install_pro_db()
702
- {
703
- global $wpdb, $prlipro_db_version;
704
-
705
- $old_pro_db_version = get_option('prlipro_db_version');
706
-
707
- if($prlipro_db_version != $old_pro_db_version)
708
- {
709
- $upgrade_path = ABSPATH . 'wp-admin/includes/upgrade.php';
710
- require_once($upgrade_path);
711
-
712
- // Pretty Link Pro Tables
713
- $tweets_table = "{$wpdb->prefix}prli_tweets";
714
- $keywords_table = "{$wpdb->prefix}prli_keywords";
715
- $reports_table = "{$wpdb->prefix}prli_reports";
716
- $report_links_table = "{$wpdb->prefix}prli_report_links";
717
- $link_rotations_table = "{$wpdb->prefix}prli_link_rotations";
718
- $clicks_rotations_table = "{$wpdb->prefix}prli_clicks_rotations";
719
-
720
- $charset_collate = '';
721
- if( $wpdb->has_cap( 'collation' ) )
722
- {
723
- if( !empty($wpdb->charset) )
724
- $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
725
- if( !empty($wpdb->collate) )
726
- $charset_collate .= " COLLATE $wpdb->collate";
727
- }
728
-
729
- /* Create/Upgrade Tweets Table */
730
- $sql = "CREATE TABLE {$tweets_table} (
731
- id int(11) NOT NULL auto_increment,
732
- twid varchar(255) NOT NULL,
733
- tw_text varchar(255) default NULL,
734
- tw_to_user_id varchar(255) default NULL,
735
- tw_from_user varchar(255) default NULL,
736
- tw_from_user_id varchar(255) NOT NULL,
737
- tw_iso_language_code varchar(255) default NULL,
738
- tw_source varchar(255) default NULL,
739
- tw_profile_image_url varchar(255) default NULL,
740
- tw_created_at varchar(255) NOT NULL,
741
- created_at datetime NOT NULL,
742
- link_id int(11) default NULL,
743
- PRIMARY KEY (id),
744
- KEY tw_text (tw_text),
745
- KEY tw_to_user_id (tw_to_user_id),
746
- KEY tw_from_user (tw_from_user),
747
- KEY tw_from_user_id (tw_from_user_id),
748
- KEY tw_iso_language_code (tw_iso_language_code),
749
- KEY tw_source (tw_source),
750
- KEY tw_profile_image_url (tw_profile_image_url),
751
- KEY twid (twid)
752
- ) {$charset_collate};";
753
-
754
- dbDelta($sql);
755
-
756
- /* Create/Upgrade Keywords Table */
757
- $sql = "CREATE TABLE {$keywords_table} (
758
- id int(11) NOT NULL auto_increment,
759
- text varchar(255) NOT NULL,
760
- link_id int(11) NOT NULL,
761
- created_at datetime NOT NULL,
762
- PRIMARY KEY (id),
763
- KEY link_id (link_id),
764
- KEY text (text)
765
- ) {$charset_collate};";
766
-
767
- dbDelta($sql);
768
-
769
- /* Create/Upgrade Reports Table */
770
- $sql = "CREATE TABLE {$reports_table} (
771
- id int(11) NOT NULL auto_increment,
772
- name varchar(255) NOT NULL,
773
- goal_link_id int(11) default NULL,
774
- created_at datetime NOT NULL,
775
- PRIMARY KEY (id),
776
- KEY goal_link_id (goal_link_id),
777
- KEY name (name)
778
- ) {$charset_collate};";
779
-
780
- dbDelta($sql);
781
-
782
- /* Create/Upgrade Reports Table */
783
- $sql = "CREATE TABLE {$report_links_table} (
784
- id int(11) NOT NULL auto_increment,
785
- report_id int(11) NOT NULL,
786
- link_id int(11) NOT NULL,
787
- created_at datetime NOT NULL,
788
- PRIMARY KEY (id),
789
- KEY report_id (report_id),
790
- KEY link_id (link_id)
791
- ) {$charset_collate};";
792
-
793
- dbDelta($sql);
794
-
795
- /* Create/Upgrade Link Rotations Table */
796
- $sql = "CREATE TABLE {$link_rotations_table} (
797
- id int(11) NOT NULL auto_increment,
798
- url varchar(255) default NULL,
799
- weight int(11) default 0,
800
- r_index int(11) default 0,
801
- link_id int(11) NOT NULL,
802
- created_at datetime NOT NULL,
803
- PRIMARY KEY (id),
804
- KEY link_id (link_id),
805
- KEY url (url),
806
- KEY weight (weight),
807
- KEY r_index (r_index)
808
- ) {$charset_collate};";
809
-
810
- dbDelta($sql);
811
-
812
- /* Create/Upgrade Clicks / Rotations Table */
813
- $sql = "CREATE TABLE {$clicks_rotations_table} (
814
- id int(11) NOT NULL auto_increment,
815
- click_id int(11) NOT NULL,
816
- link_id int(11) NOT NULL,
817
- url text NOT NULL,
818
- PRIMARY KEY (id),
819
- KEY click_id (click_id),
820
- KEY link_id (link_id)
821
- ) {$charset_collate};";
822
-
823
- dbDelta($sql);
824
- }
825
-
826
- if($old_pro_db_version < 3) {
827
- global $prli_keyword;
828
-
829
- // Reset the whole keyword cache for good
830
- if(isset($prli_keyword) and is_a($prli_keyword, 'PrliKeyword'))
831
- $prli_keyword->deleteContentCache();
832
- }
833
-
834
- /***** SAVE DB VERSION *****/
835
- delete_option('prlipro_db_version');
836
- add_option('prlipro_db_version',$prlipro_db_version);
837
- }
838
-
839
- // be careful with this one -- I use it to forceably reinstall pretty link pro
840
- function delete_dir($dir)
841
- {
842
- if (!file_exists($dir))
843
- return true;
844
-
845
- if (!is_dir($dir))
846
- return unlink($dir);
847
-
848
- foreach (scandir($dir) as $item)
849
- {
850
- if ($item == '.' || $item == '..')
851
- continue;
852
-
853
- if (!$this->delete_dir($dir.DIRECTORY_SEPARATOR.$item))
854
- return false;
855
- }
856
-
857
- return rmdir($dir);
858
- }
859
-
860
- // Used in the install procedure to migrate database columns
861
- function migrate_before_db_upgrade()
862
- {
863
- global $prli_options, $prli_update, $prli_link, $prli_click, $wpdb;
864
- $db_version = (int)get_option('prli_db_version');
865
-
866
- if(!$db_version)
867
- return;
868
-
869
- // Migration for version 1 of the database
870
- if($db_version and $db_version < 1)
871
- {
872
- $query = "SELECT * from {$prli_link->table_name}";
873
- $links = $wpdb->get_results($query);
874
- $query_str = "UPDATE {$prli_link->table_name} SET redirect_type=%s WHERE id=%d";
875
-
876
- foreach($links as $link)
877
- {
878
- if(isset($link->track_as_img) and $link->track_as_img)
879
- {
880
- $query = $wpdb->prepare($query_str, 'pixel', $link->id);
881
- $wpdb->query($query);
882
- }
883
- else if(isset($link->use_prettybar) and $link->use_prettybar)
884
- {
885
- $query = $wpdb->prepare($query_str, 'prettybar', $link->id);
886
- $wpdb->query($query);
887
- }
888
- else if(isset($link->use_ultra_cloak) and $link->use_ultra_cloak)
889
- {
890
- $query = $wpdb->prepare($query_str, 'cloak', $link->id);
891
- $wpdb->query($query);
892
- }
893
- }
894
-
895
- $query = "ALTER TABLE {$prli_link->table_name} DROP COLUMN track_as_img, DROP COLUMN use_prettybar, DROP COLUMN use_ultra_cloak, DROP COLUMN gorder";
896
- $wpdb->query($query);
897
- }
898
-
899
- if($db_version and $db_version < 2)
900
- {
901
- unset($prli_options->prli_exclude_ips);
902
- unset($prli_options->prettybar_image_url);
903
- unset($prli_options->prettybar_background_image_url);
904
- unset($prli_options->prettybar_color);
905
- unset($prli_options->prettybar_text_color);
906
- unset($prli_options->prettybar_link_color);
907
- unset($prli_options->prettybar_hover_color);
908
- unset($prli_options->prettybar_visited_color);
909
- unset($prli_options->prettybar_title_limit);
910
- unset($prli_options->prettybar_desc_limit);
911
- unset($prli_options->prettybar_link_limit);
912
-
913
- // Save the posted value in the database
914
- //update_option( 'prli_options', $prli_options );
915
- $prli_options->store();
916
- }
917
-
918
- // Modify the tables so they're UTF-8
919
- if($db_version and $db_version < 3)
920
- {
921
- $charset_collate = '';
922
- if( $wpdb->has_cap( 'collation' ) )
923
- {
924
- if( !empty($wpdb->charset) )
925
- $charset_collate = "CONVERT TO CHARACTER SET $wpdb->charset";
926
- if( !empty($wpdb->collate) )
927
- $charset_collate .= " COLLATE $wpdb->collate";
928
- }
929
-
930
- if(!empty($charset_collate))
931
- {
932
- $prli_table_names = array( "{$wpdb->prefix}prli_groups",
933
- "{$wpdb->prefix}prli_clicks",
934
- "{$wpdb->prefix}prli_links",
935
- "{$wpdb->prefix}prli_link_metas",
936
- "{$wpdb->prefix}prli_tweets",
937
- "{$wpdb->prefix}prli_keywords",
938
- "{$wpdb->prefix}prli_reports",
939
- "{$wpdb->prefix}prli_report_links",
940
- "{$wpdb->prefix}prli_link_rotations",
941
- "{$wpdb->prefix}prli_clicks_rotations" );
942
-
943
- foreach($prli_table_names as $prli_table_name)
944
- {
945
- $query = "ALTER TABLE {$prli_table_name} {$charset_collate}";
946
- $wpdb->query($query);
947
- }
948
- }
949
- }
950
-
951
- // Upgrade the twitter hide badges on pages / posts for pro users
952
- if($db_version and $db_version < 7)
953
- {
954
- if($prli_update->pro_is_installed())
955
- {
956
- global $prlipro_options;
957
-
958
- if(trim($prlipro_options->twitter_badge_hidden) != '')
959
- {
960
- $hidden_post_ids = explode(',',trim($prlipro_options->twitter_badge_hidden));
961
- foreach($hidden_post_ids as $post_id)
962
- {
963
- $prlipro_post_options = PrliProPostOptions::get_stored_object($post_id);
964
- $prlipro_post_options->hide_twitter_button = 1;
965
- $prlipro_post_options->store($post_id);
966
- }
967
- }
968
- }
969
- }
970
-
971
- if($db_version and $db_version < 8)
972
- {
973
- // Install / Upgrade Pretty Link Pro
974
- $prlipro_username = get_option( 'prlipro_username' );
975
- $prlipro_password = get_option( 'prlipro_password' );
976
-
977
- if( !empty($prlipro_username) and !empty($prlipro_password) )
978
- {
979
- $creds = array('username' => $prlipro_username,
980
- 'password' => $prlipro_password);
981
- update_option('prlipro-credentials', $creds);
982
- }
983
- }
984
-
985
- // Hiding pretty link custom fields
986
- if($db_version and $db_version < 10)
987
- {
988
- $query_str = "UPDATE {$wpdb->postmeta} SET meta_key=%s WHERE meta_key=%s";
989
-
990
- $query = $wpdb->prepare($query_str, '_pretty-link', 'pretty-link');
991
- $wpdb->query($query);
992
-
993
- $query = $wpdb->prepare($query_str, '_prli-keyword-cached-content', 'prli-keyword-cached-content');
994
- $wpdb->query($query);
995
-
996
- $query = $wpdb->prepare($query_str, '_prlipro-post-options', 'prlipro-post-options');
997
- $wpdb->query($query);
998
- }
999
-
1000
- if($db_version and $db_version < 11)
1001
- {
1002
- /* Too much to handle on larger tweet databases -- this code will still be accessible by going to the following url:
1003
- {$prli_blogurl}/wp-admin/admin.php?page=pretty-link/pro/prlipro-options.php&action=trim_dup_tweets
1004
- // Clearing out duplicate tweets
1005
- if($prli_update->pro_is_installed())
1006
- {
1007
- $block_size = 2000;
1008
- $upper_limit = $block_size - 1;
1009
- $tweet_table = "{$wpdb->prefix}prli_tweets";
1010
-
1011
- $query = "SELECT count(DISTINCT twid) FROM {$tweet_table}";
1012
- $twid_count = $wpdb->get_var($query);
1013
-
1014
- for($offset=0; $offset < $twid_count; $offset += $block_size)
1015
- {
1016
- $limit = $offset + $upper_limit;
1017
- $query = $wpdb->prepare("SELECT id FROM {$tweet_table} GROUP BY twid LIMIT %d,%d",$offset,$limit);
1018
- $tweet_ids = $wpdb->get_col($query);
1019
-
1020
- if(is_array($tweet_ids) and count($tweet_ids) > 0)
1021
- {
1022
- $query = "DELETE FROM {$tweet_table} WHERE id not in (" . implode(',', $tweet_ids) . ")";
1023
- $wpdb->query($query);
1024
- }
1025
- }
1026
- }
1027
- */
1028
- }
1029
- }
1030
-
1031
-
1032
- function migrate_after_db_upgrade()
1033
- {
1034
- global $prli_options, $prli_link, $prli_link_meta, $prli_click, $wpdb;
1035
- $db_version = (int)get_option('prli_db_version');
1036
-
1037
- if(!$db_version)
1038
- return;
1039
-
1040
- if($db_version and $db_version < 5)
1041
- {
1042
- // Migrate pretty-link-posted-to-twitter
1043
- $query = "SELECT * FROM {$wpdb->prefix}postmeta WHERE meta_key=%s";
1044
- $query = $wpdb->prepare($query,'pretty-link-posted-to-twitter');
1045
- $posts_posted = $wpdb->get_results($query);
1046
-
1047
- foreach($posts_posted as $postmeta)
1048
- {
1049
- if($postmeta->meta_value == '1')
1050
- {
1051
- $link_id = PrliUtils::get_prli_post_meta($postmeta->post_id,'pretty-link',true);
1052
- $prli_link_meta->update_link_meta($link_id,'pretty-link-posted-to-twitter','1');
1053
- }
1054
- }
1055
-
1056
- // Cleanup
1057
- $query = "DELETE FROM {$wpdb->prefix}postmeta WHERE meta_key=%s OR meta_key=%s OR meta_key=%s OR meta_key=%s";
1058
- $query = $wpdb->prepare($query,'pretty-link-posted-to-twitter','pretty-link-tweet-count','pretty-link-tweet-last-update','prli-keyword-replacement-count');
1059
- $results = $wpdb->query($query);
1060
-
1061
- $query = "DELETE FROM {$prli_link_meta->table_name} WHERE meta_key=%s";
1062
- $query = $wpdb->prepare($query,'prli-url-aliases');
1063
- $results = $wpdb->query($query);
1064
- }
1065
- }
1066
-
1067
- function this_is_a_robot($browser_ua,&$browsecap,$header='')
1068
- {
1069
- $click = new PrliClick();
1070
- $click->browser = $browser_ua;
1071
- $click->btype = $browsecap['browser'];
1072
- return $this->is_robot($click, $browsecap, $header);
1073
- }
1074
-
1075
- function is_robot(&$click,&$browsecap,$header='')
1076
- {
1077
- global $prli_utils, $prli_click, $prli_options;
1078
- $ua_string = trim(urldecode($click->browser));
1079
- $btype = trim($click->btype);
1080
-
1081
- // Yah, if the whole user agent string is missing -- wtf?
1082
- if(empty($ua_string))
1083
- return 1;
1084
-
1085
- // If we're doing extended tracking and the Browser type
1086
- // was unidentifiable then it's most likely a bot
1087
- if( isset($prli_options->extended_tracking) and
1088
- $prli_options->extended_tracking == 'extended' and
1089
- empty($btype) )
1090
- return 1;
1091
-
1092
- // Some bots actually say they're bots right up front let's get rid of them asap
1093
- if(preg_match("#(bot|Bot|spider|Spider|crawl|Crawl)#",$ua_string))
1094
- return 1;
1095
-
1096
- $crawler = $browsecap['crawler'];
1097
-
1098
- // If php_browsecap tells us its a bot, let's believe him
1099
- if($crawler == 1)
1100
- return 1;
1101
-
1102
- return 0;
1103
- }
1104
-
1105
- public static function get_permalink_pre_slug_uri($force=false,$trim=false)
1106
- {
1107
- global $prli_options;
1108
-
1109
- if($force or $prli_options->link_prefix)
1110
- {
1111
- preg_match('#^([^%]*?)%#', get_option('permalink_structure'), $struct);
1112
- $pre_slug_uri = $struct[1];
1113
-
1114
- if($trim)
1115
- {
1116
- $pre_slug_uri = trim($pre_slug_uri);
1117
- $pre_slug_uri = preg_replace('#^/#','',$pre_slug_uri);
1118
- $pre_slug_uri = preg_replace('#/$#','',$pre_slug_uri);
1119
- }
1120
-
1121
- return $pre_slug_uri;
1122
- }
1123
- else
1124
- return '/';
1125
- }
1126
-
1127
- public static function get_permalink_pre_slug_regex()
1128
- {
1129
- $pre_slug_uri = PrliUtils::get_permalink_pre_slug_uri(true);
1130
-
1131
- if(empty($pre_slug_uri))
1132
- return '/';
1133
- else
1134
- return "{$pre_slug_uri}|/";
1135
- }
1136
-
1137
- function rewriting_on()
1138
- {
1139
- $permalink_structure = get_option('permalink_structure');
1140
-
1141
- return ($permalink_structure and !empty($permalink_structure));
1142
- }
1143
-
1144
- public static function get_prli_post_meta($post_id, $key, $single=false)
1145
- {
1146
- if( isset($post_id) and !empty($post_id) and
1147
- $post_id and is_numeric($post_id) )
1148
- return get_post_meta($post_id, $key, $single);
1149
- else
1150
- return false;
1151
- }
1152
-
1153
- public static function update_prli_post_meta($post_id, $meta_key, $meta_value)
1154
- {
1155
- if( isset($post_id) and !empty($post_id) and
1156
- $post_id and is_numeric($post_id) )
1157
- return update_post_meta($post_id, $meta_key, $meta_value);
1158
- else
1159
- return false;
1160
- }
1161
-
1162
- function delete_prli_post_meta($post_id, $key)
1163
- {
1164
- if( isset($post_id) and !empty($post_id) and
1165
- $post_id and is_numeric($post_id) )
1166
- return delete_post_meta($post_id, $key);
1167
- else
1168
- return false;
1169
- }
1170
-
1171
- /** Gets rid of any pretty link postmetas created without a post_id **/
1172
- function clear_unknown_post_metas()
1173
- {
1174
- global $wpdb;
1175
-
1176
- $query = "SELECT count(*) FROM {$wpdb->postmeta} WHERE ( meta_key LIKE 'prli%' OR meta_key LIKE 'pretty-link%' OR meta_key LIKE '_prli%' OR meta_key LIKE '_pretty-link%' ) AND post_id=0";
1177
- $count = $wpdb->get_var($query);
1178
-
1179
- if($count)
1180
- {
1181
- $query = "DELETE FROM {$wpdb->postmeta} WHERE ( meta_key LIKE 'prli%' OR meta_key LIKE 'pretty-link%' OR meta_key LIKE '_prli%' OR meta_key LIKE '_pretty-link%' ) AND post_id=0";
1182
- $wpdb->query($query);
1183
- }
1184
- }
1185
-
1186
- public static function gen_random_string($length = 4)
1187
- {
1188
- $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
1189
- $string = '';
1190
- $max_index = strlen($characters) - 1;
1191
-
1192
- for($p = 0; $p < $length; $p++)
1193
- $string .= $characters[mt_rand(0, $max_index)];
1194
-
1195
- return $string;
1196
- }
1197
-
1198
- public static function get_page_title($url, $slug='')
1199
- {
1200
- $title = '';
1201
- $wp_http = new WP_Http;
1202
- $result = $wp_http->request( $url, array( 'sslverify' => false ) );
1203
-
1204
- if(!$result or is_a($result, 'WP_Error') or !isset($result['body']))
1205
- return $slug;
1206
-
1207
- $data = $result['body'];
1208
-
1209
- // Look for <title>(.*?)</title> in the text
1210
- if($data and preg_match('#<title>[\s\n\r]*?(.*?)[\s\n\r]*?</title>#im', $data, $matches))
1211
- $title = trim($matches[1]);
1212
-
1213
- if(empty($title) or !$title)
1214
- return $slug;
1215
-
1216
- return $title;
1217
- }
1218
-
1219
- public static function is_url($url) {
1220
- return ( preg_match('/^http.?:\/\/.*\..*$/', $url ) or
1221
- preg_match('!^(http|https)://(localhost|127\.0\.0\.1)(:\d+)?(/[\w- ./?%&=]*)?!', $url ) );
1222
- }
1223
-
1224
- public static function get_plp_permalink($link) {
1225
- global $prli_blogurl;
1226
-
1227
- $struct = PrliUtils::get_permalink_pre_slug_uri();
1228
-
1229
- if(isset($link->slug))
1230
- return "{$prli_blogurl}{$struct}{$link->slug}";
1231
- else
1232
- return false;
1233
- }
1234
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/models/models.inc.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- require_once(PRLI_MODELS_PATH.'/PrliLink.php');
6
- require_once(PRLI_MODELS_PATH.'/PrliClick.php');
7
- require_once(PRLI_MODELS_PATH.'/PrliGroup.php');
8
- require_once(PRLI_MODELS_PATH.'/PrliUtils.php');
9
- require_once(PRLI_MODELS_PATH.'/PrliLinkMeta.php');
10
- require_once(PRLI_MODELS_PATH.'/PrliUpdate.php');
11
-
12
- global $prli_link;
13
- global $prli_link_meta;
14
- global $prli_click;
15
- global $prli_group;
16
- global $prli_utils;
17
- global $prli_update;
18
-
19
- $prli_link = new PrliLink();
20
- $prli_link_meta = new PrliLinkMeta();
21
- $prli_click = new PrliClick();
22
- $prli_group = new PrliGroup();
23
- $prli_utils = new PrliUtils();
24
- $prli_update = new PrliUpdate();
25
-
26
- require_once(PRLI_HELPERS_PATH.'/PrliAppHelper.php');
27
-
28
- global $prli_db_version;
29
- global $prlipro_db_version;
30
-
31
- $prli_db_version = 12; // this is the version of the database we're moving to
32
- $prlipro_db_version = 3; // this is the version of the database we're moving to
33
-
34
- // Load Controller(s)
35
- require_once( PRLI_CONTROLLERS_PATH . '/PrliAppController.php' );
36
- require_once( PRLI_CONTROLLERS_PATH . '/PrliLinksController.php' );
37
- require_once( PRLI_CONTROLLERS_PATH . '/PrliGroupsController.php' );
38
- require_once( PRLI_CONTROLLERS_PATH . '/PrliBookmarkletController.php' );
39
-
40
- PrliGroupsController::load_hooks();
41
-
42
- global $prli_app_controller;
43
-
44
- $prli_app_controller = new PrliAppController();
45
-
46
- // Load Helpers
47
- require_once( PRLI_HELPERS_PATH . '/PrliLinksHelper.php' );
48
-
49
- function prli_get_main_message($message='',$expiration=1800) // Get new messages every 1/2 hour
50
- {
51
- global $prli_update;
52
-
53
- // Set the default message
54
- if(empty($message)) {
55
- $message = __( "Get started by <a href=\"?page=pretty-link&action=new\">" .
56
- "adding a URL</a> that you want to turn into a pretty link.<br/>" .
57
- "Come back to see how many times it was clicked." , 'pretty-link');
58
- }
59
-
60
- $messages = get_site_transient('_prli_messages');
61
-
62
- // if the messages array has expired go back to the mothership
63
- if(!$messages)
64
- {
65
- $remote_controller = $prli_update->pro_is_installed_and_authorized() ? 'prlipro' : 'prli';
66
- $message_mothership = "https://prettylinkpro.com/index.php?controller={$remote_controller}&action=json_messages";
67
-
68
- if( !class_exists( 'WP_Http' ) )
69
- include_once( ABSPATH . WPINC . '/class-http.php' );
70
-
71
- $http = new WP_Http;
72
- $response = $http->request( $message_mothership );
73
-
74
- if( isset($response) and
75
- is_array($response) and // if response is an error then WP_Error will be returned
76
- isset($response['body']) and
77
- !empty($response['body']))
78
- $messages = json_decode($response['body']);
79
- else
80
- $messages = array($message);
81
-
82
- set_site_transient("_prli_messages", $messages, $expiration);
83
- }
84
-
85
- if(empty($messages) or !$messages or !is_array($messages))
86
- return $message;
87
- else
88
- return $messages[array_rand($messages)];
89
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-clicks/csv_download.php DELETED
@@ -1,36 +0,0 @@
1
- <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
- <div class="wrap">
3
- <?php
4
- require(PRLI_VIEWS_PATH.'/shared/nav.php');
5
- ?>
6
-
7
- <h2><img src="<?php echo PRLI_IMAGES_URL.'/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: CSV Downloads</h2>
8
- <span style="font-size: 14px; font-weight: bold;">For <?php echo stripslashes($link_name); ?>: </span>
9
-
10
- <h3>Hit Reports:</h3>
11
- <span class="description">All hits on <?php echo stripslashes($link_name); ?></span>
12
- <br/>
13
- <ul>
14
- <?php
15
- for($i=$hit_page_count; $i>0; $i--)
16
- {
17
- $hit_min = 0;
18
-
19
- if($i)
20
- $hit_min = ($i - 1) * $max_rows_per_file;
21
-
22
- if($i==$hit_page_count)
23
- $hit_max = $hit_record_count;
24
- else
25
- $hit_max = ($i * $max_rows_per_file) - 1;
26
-
27
- $hit_count = $hit_max - $hit_min + 1;
28
- $report_label = "Hits {$hit_min}-{$hit_max} ({$hit_count} Records)";
29
- $hit_param_delim = (preg_match('#\?#',$hit_report_url)?'&':'?');
30
- ?>
31
- <li><a href="<?php echo $hit_report_url . $hit_param_delim; ?>prli_page=<?php echo $i; ?>"><?php echo $report_label; ?></a></li>
32
- <?php
33
- }
34
- ?>
35
- </ul>
36
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-clicks/head.php DELETED
@@ -1,60 +0,0 @@
1
- <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
-
3
- <script type="text/javascript">
4
- jQuery(document).ready(function(){
5
- jQuery("#sdate").datepicker({ dateFormat: 'yy-mm-dd', defaultDate: -30, minDate: -<?php echo esc_js($min_date); ?>, maxDate: 0 });
6
- jQuery("#edate").datepicker({ dateFormat: 'yy-mm-dd', minDate: -<?php echo esc_js($min_date); ?>, maxDate: 0 });
7
- });
8
- </script>
9
-
10
- <script type="text/javascript">
11
- jQuery(document).ready(function(){
12
- jQuery(".filter_pane").hide();
13
- jQuery(".filter_toggle").click( function () {
14
- jQuery(".filter_pane").slideToggle("slow");
15
- });
16
- });
17
- </script>
18
-
19
- <style type="text/css">
20
- .filter_toggle {
21
- line-height: 34px;
22
- font-size: 14px;
23
- font-weight: bold;
24
- padding-bottom: 10px;
25
- }
26
-
27
- .filter_pane {
28
- background-color: white;
29
- border: 2px solid #777777;
30
- height: 275px;
31
- width: 600px;
32
- padding-left: 20px;
33
- padding-top: 10px;
34
- }
35
-
36
- div#my_chart {
37
- height:300px;
38
- margin-bottom:15px;
39
- }
40
-
41
- </style>
42
-
43
- <!-- GOOGLE CHARTS STUFF -->
44
- <script type="text/javascript" src="https://www.google.com/jsapi"></script>
45
-
46
- <script type="text/javascript">
47
- google.load("visualization", "1", {packages:["corechart"]});
48
- google.setOnLoadCallback(drawChart);
49
-
50
- function drawChart() {
51
- //Hits Chart
52
- var hitsChartJsonData = <?php echo $prli_click->setupClickLineGraph($start_timestamp, $end_timestamp, $link_id, $type, $group); ?>;
53
-
54
- var hitsChartData = new google.visualization.DataTable(hitsChartJsonData);
55
-
56
- var hitsChart = new google.visualization.AreaChart(document.getElementById('my_chart'));
57
-
58
- hitsChart.draw(hitsChartData, {height: '300', title: "<?php echo $prli_click->setupClickLineGraph($start_timestamp, $end_timestamp, $link_id, $type, $group, true); ?>"});
59
- }
60
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-clicks/list.php DELETED
@@ -1,170 +0,0 @@
1
- <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
- <div class="wrap">
3
- <?php
4
- require(PRLI_VIEWS_PATH.'/shared/nav.php');
5
- ?>
6
- <?php echo PrliAppHelper::page_title(__('Hits', 'pretty-link')); ?>
7
- <span style="font-size: 14px; font-weight: bold;"><?php echo __('For', 'pretty-link').' '.stripslashes($link_name); ?>: </span>
8
- <?php
9
- // Don't show this sheesh if we're displaying the vuid or ip grouping
10
- if(empty($params['ip']) and empty($params['vuid']))
11
- {
12
- ?>
13
- <a href="#" style="display:inline;" class="filter_toggle"><?php _e('Customize Report', 'pretty-link'); ?></a>
14
- <?php
15
- }
16
- ?>
17
- <?php
18
- if(!empty($params['l']) and $params['l'] != 'all')
19
- echo '<br/><a href="'.admin_url("admin.php?page=pretty-link").'">&laquo '.__("Back to Links", 'pretty-link').'</a>';
20
- else if(!empty($params['ip']) or !empty($params['vuid']))
21
- echo '<br/><a href="?page='. PRLI_PLUGIN_NAME .'/prli-clicks.php">&laquo '.__("Back to Hits", 'pretty-link').'</a>';
22
-
23
- if(empty($params['ip']) and empty($params['vuid']))
24
- {
25
- ?>
26
-
27
-
28
- <div class="filter_pane">
29
- <form class="form-fields" name="form2" method="post" action="">
30
- <?php wp_nonce_field('prli-reports'); ?>
31
- <span><?php _e('Type:', 'pretty-link'); ?></span>&nbsp;
32
- <select id="type" name="type" style="display: inline;">
33
- <option value="all"<?php print ((empty($params['type']) or $params['type'] == "all")?" selected=\"true\"":""); ?>><?php _e('All Hits', 'pretty-link'); ?>&nbsp;</option>
34
- <option value="unique"<?php print (($params['type'] == "unique")?" selected=\"true\"":""); ?>><?php _e('Unique Hits', 'pretty-link'); ?>&nbsp;</option>
35
- </select>
36
- <br/>
37
- <br/>
38
- <span><?php _e('Date Range:', 'pretty-link'); ?></span>
39
- <div id="dateselectors" style="display: inline;">
40
- <input type="text" name="sdate" id="sdate" value="<?php echo $params['sdate']; ?>" style="display:inline;"/>&nbsp;<?php _e('to', 'pretty-link'); ?>&nbsp;<input type="text" name="edate" id="edate" value="<?php echo $params['edate']; ?>" style="display:inline;"/>
41
- </div>
42
- <br/>
43
- <br/>
44
- <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Customize"/> <?php _e('or', 'pretty-link'); ?> <a href="#" class="filter_toggle"><?php _e('Cancel', 'pretty-link'); ?></a></div>
45
- </form>
46
- </div>
47
-
48
- <div id="my_chart"></div>
49
-
50
- <?php
51
- }
52
- $navstyle = "float: right;";
53
- require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
54
- ?>
55
-
56
- <div id="search_pane" style="padding-top: 5px;">
57
- <form class="form-fields" name="click_form" method="post" action="">
58
- <?php wp_nonce_field('prli-clicks'); ?>
59
-
60
- <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />
61
- <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />
62
- <input type="text" name="search" id="search" value="<?php echo esc_attr($search_str); ?>" style="display:inline;"/>
63
- <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Search Hits"/>
64
- <?php
65
- if(!empty($search_str))
66
- {
67
- ?>
68
- <?php _e('or', 'pretty-link'); ?> <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo (!empty($params['l'])?'&l='.$params['l']:''); ?>"><?php _e('Reset', 'pretty-link'); ?></a>
69
- <?php
70
- }
71
- ?>
72
- </div>
73
- </form>
74
- </div>
75
- <table class="widefat post fixed" cellspacing="0">
76
- <thead>
77
- <tr>
78
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
79
- <th class="manage-column" width="5%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=btype<?php echo (($sort_str == 'btype' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Browser', 'pretty-link'); echo (($sort_str == 'btype')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
80
- </th>
81
- <?php } ?>
82
- <th class="manage-column" width="12%">
83
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=ip<?php echo (($sort_str == 'ip' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('IP', 'pretty-link'); echo (($sort_str == 'ip')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
84
- </th>
85
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
86
- <th class="manage-column" width="12%">
87
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=vuid<?php echo (($sort_str == 'vuid' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Visitor', 'pretty-link'); echo (($sort_str == 'vuid')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
88
- </th>
89
- <?php } ?>
90
- <th class="manage-column" width="13%">
91
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=created_at<?php echo (($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Timestamp', 'pretty-link'); echo ((empty($sort_str) or $sort_str == 'created_at')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
92
- </th>
93
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
94
- <th class="manage-column" width="16%">
95
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=host<?php echo (($sort_str == 'host' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Host', 'pretty-link'); echo (($sort_str == 'host')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
96
- </th>
97
- <?php } ?>
98
- <th class="manage-column" width="16%">
99
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=uri<?php echo (($sort_str == 'uri' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('URI', 'pretty-link'); echo (($sort_str == 'uri')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
100
- </th>
101
- <th class="manage-column" width="16%">
102
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=referer<?php echo (($sort_str == 'referer' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Referrer', 'pretty-link'); echo (($sort_str == 'referer')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
103
- </th>
104
- <th class="manage-column" width="13%">
105
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php<?php echo $sort_params; ?>&sort=link<?php echo (($sort_str == 'link' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Link', 'pretty-link'); echo (($sort_str == 'link')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a>
106
- </th>
107
- </tr>
108
- </thead>
109
- <?php
110
-
111
- if(count($clicks) <= 0)
112
- {
113
- ?>
114
- <tr>
115
- <td colspan="7"><?php _e('No Hits have been recorded yet', 'pretty-link'); ?></td>
116
- </tr>
117
- <?php
118
- }
119
- else
120
- {
121
- foreach($clicks as $click)
122
- {
123
- ?>
124
- <tr>
125
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
126
- <td><img src="<?php echo esc_html(PRLI_BROWSER_URL); ?>/<?php echo prli_browser_image($click->btype); ?>" alt="<?php echo $click->btype . " v" . $click->bversion; ?>" title="<?php echo $click->btype . " v" . $click->bversion; ?>"/>&nbsp;<img src="<?php echo esc_html(PRLI_OS_URL); ?>/<?php echo prli_os_image($click->os); ?>" alt="<?php echo $click->os; ?>" title="<?php echo $click->os; ?>"/></td>
127
- <?php } ?>
128
- <td><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php&ip=<?php echo $click->ip; ?>" title="View All Activity for IP Address: <?php echo $click->ip; ?>"><?php echo $click->ip; ?> (<?php echo $click->ip_count; ?>)</a></td>
129
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
130
- <td><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php&vuid=<?php echo $click->vuid; ?>" title="View All Activity for Visitor: <?php echo $click->vuid; ?>"><?php echo $click->vuid; ?><?php echo (($click->vuid != null)?" ($click->vuid_count)":''); ?></a></td>
131
- <?php } ?>
132
- <td><?php echo $click->created_at; ?></td>
133
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
134
- <td><?php echo $click->host; ?></td>
135
- <?php } ?>
136
- <td><?php echo $click->uri; ?></td>
137
- <td><a href="<?php echo $click->referer; ?>"><?php echo $click->referer; ?></a></td>
138
- <td><a href="?page=<?php print PRLI_PLUGIN_NAME; ?>/prli-clicks.php&l=<?php echo $click->link_id; ?>" title="View clicks for <?php echo stripslashes($click->link_name); ?>"><?php echo stripslashes($click->link_name); ?></a></td>
139
- </tr>
140
- <?php
141
- }
142
- }
143
- ?>
144
- <tfoot>
145
- <tr>
146
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
147
- <th class="manage-column"><?php _e('Browser', 'pretty-link'); ?></th>
148
- <?php } ?>
149
- <th class="manage-column"><?php _e('IP', 'pretty-link'); ?></th>
150
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
151
- <th class="manage-column"><?php _e('Visitor', 'pretty-link'); ?></th>
152
- <?php } ?>
153
- <th class="manage-column"><?php _e('Timestamp', 'pretty-link'); ?></th>
154
- <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
155
- <th class="manage-column"><?php _e('Host', 'pretty-link'); ?></th>
156
- <?php } ?>
157
- <th class="manage-column"><?php _e('URI', 'pretty-link'); ?></th>
158
- <th class="manage-column"><?php _e('Referrer', 'pretty-link'); ?></th>
159
- <th class="manage-column"><?php _e('Link', 'pretty-link'); ?></th>
160
- </tr>
161
- </tfoot>
162
- </table>
163
-
164
- <a href="?page=pretty-link/prli-clicks.php&action=csv<?php echo $page_params; ?>"><?php _e('Download CSV', 'pretty-link'); ?> (<?php echo stripslashes($link_name); ?>)</a>
165
-
166
- <?php
167
- require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
168
- ?>
169
-
170
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-dashboard-widget/widget.php DELETED
@@ -1,24 +0,0 @@
1
- <?php if(!defined('ABSPATH')) {die('You are not allowed to call this page directly.');} ?>
2
- <div class="wrap">
3
- <a href="http://blairwilliams.com/pretty-link"><img style="float: left; border: 0px;" src="<?php echo PRLI_IMAGES_URL . '/prettylink_logo_small.jpg'; ?>"/></a><div style="min-height: 48px;"><div style="min-height: 18px; margin-left: 137px; margin-top: 0px; padding-top: 0px; border: 1px solid #e5e597; background-color: #ffffa0; display: block;"><p style="font-size: 11px; margin:0px; padding: 0px; padding-left: 10px;"><?php echo prli_get_main_message(__("Add a Pretty Link from your Dashboard:", 'pretty-link')); ?></p></div></div>
4
-
5
- <form name="form1" method="post" action="<?php echo admin_url("admin.php?page=pretty-link"); ?>">
6
- <input type="hidden" name="action" value="quick-create">
7
- <?php wp_nonce_field('update-options'); ?>
8
-
9
- <table class="form-table">
10
- <tr class="form-field">
11
- <td valign="top"><?php _e("Target URL", 'pretty-link'); ?></td>
12
- <td><input type="text" name="url" value="" size="75">
13
- </tr>
14
- <tr>
15
- <td valign="top"><?php _e("Pretty Link", 'pretty-link'); ?></td>
16
- <td><strong><?php echo esc_html($prli_blogurl); ?></strong>/<input type="text" name="slug" value="<?php echo $prli_link->generateValidSlug(); ?>">
17
- </tr>
18
- </table>
19
-
20
- <p class="submit">
21
- <input type="submit" name="Submit" value="Create" />
22
- </p>
23
- </form>
24
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-groups/edit.php DELETED
@@ -1,63 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <div class="wrap">
7
- <?php echo PrliAppHelper::page_title(__('Edit Group', 'pretty-link')); ?>
8
-
9
- <?php
10
- require(PRLI_VIEWS_PATH.'/shared/errors.php');
11
- ?>
12
-
13
- <form name="form1" method="post" action="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-groups.php">
14
- <input type="hidden" name="action" value="update">
15
- <input type="hidden" name="id" value="<?php echo $id; ?>">
16
- <?php wp_nonce_field('update-options'); ?>
17
-
18
- <table class="form-table">
19
- <tr class="form-field">
20
- <td width="75px" valign="top"><?php _e('Name:', 'pretty-link'); ?> </td>
21
- <td><input type="text" name="name" value="<?php echo esc_html(stripslashes(((isset($_POST['name']) and $record == null)?$_POST['name']:$record->name))); ?>" size="75">
22
- <br/><span class="setting-description"><?php _e("This is how you'll identify your Group.", 'pretty-link'); ?></span></td>
23
- </tr>
24
- <tr class="form-field">
25
- <td valign="top"><?php _e('Description:', 'pretty-link'); ?> </td>
26
- <td><textarea style="height: 100px;" name="description"><?php echo esc_html((isset($_POST['description']) and $record == null)?$_POST['description']:$record->description); ?></textarea>
27
- <br/><span class="setting-description"><?php _e('A Description of this group.', 'pretty-link'); ?></span></td>
28
- </tr>
29
- <tr class="form-field" valign="top">
30
- <td valign="top"><?php _e('Links:', 'pretty-link'); ?> </td>
31
- <td valign="top">
32
- <div style="height: 150px; width: 95%; border: 1px solid #8cbdd5; overflow: auto;">
33
- <table width="100%" cellspacing="0">
34
- <thead style="background-color: #dedede; padding: 0px; margin: 0px; line-height: 8px; font-size: 14px;">
35
- <th style="padding-left: 5px; margin: 0px; width: 50%; min-width: 50%;"><strong><?php _e('Name', 'pretty-link'); ?></strong></th>
36
- <th style="padding-left: 5px; margin: 0px; width: 50%; min-width: 50%;"><strong><?php _e('Current Group', 'pretty-link'); ?></strong></th>
37
- </thead>
38
- <?php
39
- for($i = 0; $i < count($links); $i++)
40
- {
41
- $link = $links[$i];
42
- ?>
43
- <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="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>&nbsp;<?php echo esc_html(stripslashes($link->name)) . " <strong>(" . $link->slug . ")</strong>"; ?></span></td>
45
- <td style="min-width: 50%; width: 50%"><?php echo htmlspecialchars(stripslashes($link->group_name)); ?></td>
46
- </tr>
47
- <?php
48
-
49
- }
50
- ?>
51
- </table>
52
- </div>
53
- <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>
54
- </td>
55
- </tr>
56
- </table>
57
-
58
- <p class="submit">
59
- <input type="submit" name="Submit" value="Update" />&nbsp;<?php _e('or', 'pretty-link'); ?>&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-groups.php"><?php _e('Cancel', 'pretty-link'); ?></a>
60
- </p>
61
-
62
- </form>
63
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-groups/head.php DELETED
@@ -1,39 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <script type="text/javascript">
7
- jQuery(document).ready(function() {
8
- jQuery('.group_actions').hide();
9
- jQuery('.edit_group').hover(
10
- function() {
11
- jQuery(this).children(".group_actions").show();
12
- },
13
- function() {
14
- jQuery(this).children(".group_actions").hide();
15
- }
16
- );
17
- });
18
- </script>
19
-
20
- <style type="text/css">
21
-
22
- .advanced_toggle {
23
- line-height: 34px;
24
- font-size: 12px;
25
- font-weight: bold;
26
- padding-bottom: 10px;
27
- }
28
-
29
- .edit_group {
30
- height: 50px;
31
- }
32
- .group_name {
33
- font-size: 12px;
34
- font-weight: bold;
35
- }
36
- .group_actions {
37
- padding-top: 5px;
38
- }
39
- </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-groups/list.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
- <div class="wrap">
6
- <?php
7
- require(PRLI_VIEWS_PATH.'/shared/nav.php');
8
- ?>
9
- <?php echo PrliAppHelper::page_title(__('Groups', 'pretty-link')); ?>
10
- <div id="message" class="updated fade" style="padding:5px;"><?php echo $prli_message; ?></div>
11
- <div id="search_pane" style="float: right;">
12
- <form class="form-fields" name="group_form" method="post" action="">
13
- <?php wp_nonce_field('prli-groups'); ?>
14
- <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />
15
- <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />
16
- <input type="text" name="search" id="search" value="<?php echo esc_attr($search_str); ?>" style="display:inline;"/>
17
- <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Search"/>
18
- <?php
19
- if(!empty($search_str))
20
- {
21
- ?>
22
- <?php _e('or', 'pretty-link'); ?> <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php"><?php _e('Reset', 'pretty-link'); ?></a>
23
- <?php
24
- }
25
- ?>
26
- </div>
27
- </form>
28
- </div>
29
- <div id="button_bar">
30
- <p><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&action=new"><?php _e('Add a Pretty Link Group', 'pretty-link'); ?></a></p>
31
- </div>
32
-
33
- <?php
34
- require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
35
- ?>
36
- <table class="widefat post fixed" cellspacing="0">
37
- <thead>
38
- <tr>
39
- <th class="manage-column" width="50%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&sort=name<?php echo (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Name', 'pretty-link'); echo (($sort_str == 'name')?'&nbsp;&nbsp;&nbsp;<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="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&sort=link_count<?php echo (($sort_str == 'link_count' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Links', 'pretty-link'); echo (($sort_str == 'link_count')?'&nbsp;&nbsp;&nbsp;<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="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&sort=created_at<?php echo (($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':''); ?>"><?php _e('Created', 'pretty-link'); echo ((empty($sort_str) or $sort_str == 'created_at')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL.'/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
42
- </tr>
43
- </thead>
44
- <?php
45
-
46
- if($record_count <= 0)
47
- {
48
- ?>
49
- <tr>
50
- <td colspan="5"><?php _e('No Pretty Link Groups were found', 'pretty-link'); ?></td>
51
- </tr>
52
- <?php
53
- }
54
- else
55
- {
56
- foreach($groups as $group)
57
- {
58
- ?>
59
- <tr>
60
- <td class="edit_group">
61
- <a class="group_name" href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&action=edit&id=<?php echo $group->id; ?>" title="Edit <?php echo esc_html(stripslashes($group->name)); ?>"><?php echo esc_html(stripslashes($group->name)); ?></a>
62
- <br/>
63
- <div class="group_actions">
64
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&action=edit&id=<?php echo $group->id; ?>" title="Edit <?php echo esc_html(stripslashes($group->name)); ?>"><?php _e('Edit', 'pretty-link'); ?></a>&nbsp;|
65
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php&action=destroy&id=<?php echo $group->id; ?>" onclick="return confirm('Are you sure you want to delete your <?php echo esc_html(stripslashes($group->name)); ?> Pretty Link Group?');" title="Delete <?php echo esc_html(stripslashes($group->name)); ?>"><?php _e('Delete', 'pretty-link'); ?></a>&nbsp;|
66
- <a href="<?php echo admin_url("admin.php?page=pretty-link&group={$group->id}"); ?>" title="View links in <?php echo esc_html(stripslashes($group->name)); ?>"><?php _e('Links', 'pretty-link'); ?></a>&nbsp;|
67
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php&group=<?php echo $group->id; ?>" title="View hits in <?php echo esc_html(stripslashes($group->name)); ?>"><?php _e('Hits', 'pretty-link'); ?></a>
68
- </div>
69
- </td>
70
- <td><a href="<?php echo admin_url("admin.php?page=pretty-link&group={$group->id}"); ?>" title="View links in <?php echo esc_html(stripslashes($group->name)); ?>"><?php echo $group->link_count; ?></a></td>
71
- <td><?php echo $group->created_at; ?></td>
72
- </tr>
73
- <?php
74
- }
75
- }
76
- ?>
77
- <tfoot>
78
- <tr>
79
- <th class="manage-column"><?php _e('Name', 'pretty-link'); ?></th>
80
- <th class="manage-column"><?php _e('Links', 'pretty-link'); ?></th>
81
- <th class="manage-column"><?php _e('Created', 'pretty-link'); ?></th>
82
- </tr>
83
- </tfoot>
84
- </table>
85
- <?php
86
- require(PRLI_VIEWS_PATH.'/shared/table-nav.php');
87
- ?>
88
-
89
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-groups/new.php DELETED
@@ -1,66 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- $name = isset($_POST['name']) ? esc_html($_POST['name']) : '';
6
- ?>
7
-
8
- <div class="wrap">
9
- <?php echo PrliAppHelper::page_title(__('New Group', 'pretty-link')); ?>
10
-
11
- <?php
12
- require(PRLI_VIEWS_PATH.'/shared/errors.php');
13
- ?>
14
-
15
- <form name="form1" method="post" action="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-groups.php">
16
- <input type="hidden" name="action" value="create">
17
- <?php wp_nonce_field('update-options'); ?>
18
- <input type="hidden" name="id" value="<?php echo $id; ?>">
19
-
20
- <table class="form-table">
21
- <tr class="form-field">
22
- <td width="75px" valign="top"><?php _e('Name*:', 'pretty-link'); ?> </td>
23
- <td><input type="text" name="name" value="<?php echo $name; ?>" size="75">
24
- <br/><span class="setting-description"><?php _e("This is how you'll identify your Group.", 'pretty-link'); ?></span></td>
25
- </tr>
26
- <tr class="form-field">
27
- <td valign="top"><?php _e('Description:', 'pretty-link'); ?> </td>
28
- <td><textarea style="height: 100px;" name="description"><?php echo esc_html((isset($_POST['description']))?$_POST['description']:''); ?></textarea>
29
- <br/><span class="setting-description"><?php _e('A Description of this group.', 'pretty-link'); ?></span></td>
30
- </tr>
31
- <tr class="form-field" valign="top">
32
- <td valign="top"><?php _e('Links:', 'pretty-link'); ?> </td>
33
- <td valign="top">
34
- <div style="height: 150px; width: 95%; border: 1px solid #8cbdd5; overflow: auto;">
35
- <table width="100%" cellspacing="0">
36
- <thead style="background-color: #dedede; padding: 0px; margin: 0px; line-height: 8px; font-size: 14px;">
37
- <th width="50%" style="padding-left: 5px; margin: 0px;"><strong><?php _e('Name', 'pretty-link'); ?></strong></th>
38
- <th width="50%" style="padding-left: 5px; margin: 0px;"><strong><?php _e('Current Group', 'pretty-link'); ?></strong></th>
39
- </thead>
40
- <?php
41
- for($i = 0; $i < count($links); $i++)
42
- {
43
- $link = $links[$i];
44
- ?>
45
- <tr style="line-height: 15px; font-size: 12px;<?php echo (($i%2)?' background-color: #efefef;':''); ?>">
46
- <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"':''); ?>/>&nbsp;<?php echo esc_html(stripslashes($link->name)) . " <strong>(" . $link->slug . ")</strong>"; ?></td>
47
- <td style="min-width: 50%; width: 50%;"><?php echo htmlspecialchars(stripslashes($link->group_name)); ?></td>
48
- </tr>
49
- <?php
50
-
51
- }
52
- ?>
53
- </table>
54
- </div>
55
- <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
- </td>
57
- </tr>
58
- </table>
59
- </div>
60
-
61
- <p class="submit">
62
- <input type="submit" name="Submit" value="Create" />&nbsp;<?php _e('or', 'pretty-link'); ?>&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-groups.php"><?php _e('Cancel', 'pretty-link'); ?></a>
63
- </p>
64
-
65
- </form>
66
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-links/edit.php DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <div class="wrap">
7
- <?php echo PrliAppHelper::page_title(__('Edit Link', 'pretty-link')); ?>
8
-
9
- <?php
10
- require(PRLI_VIEWS_PATH.'/shared/errors.php');
11
- ?>
12
-
13
- <form name="form1" method="post" action="<?php echo admin_url('admin.php?page=pretty-link'); ?>">
14
- <input type="hidden" name="action" value="update">
15
- <input type="hidden" name="id" value="<?php echo $id; ?>">
16
- <?php wp_nonce_field('update-options'); ?>
17
-
18
- <?php
19
- require(PRLI_VIEWS_PATH.'/prli-links/form.php');
20
- ?>
21
-
22
- <p class="submit">
23
- <input type="submit" name="Submit" value="Update" />&nbsp;<?php _e('or', 'pretty-link'); ?>&nbsp;<a href="<?php echo admin_url('admin.php?page=pretty-link'); ?>"><?php _e('Cancel', 'pretty-link'); ?></a>
24
- </p>
25
-
26
- </form>
27
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-links/form.php DELETED
@@ -1,119 +0,0 @@
1
- <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
-
3
- <table class="form-table">
4
- <tr class="form-field">
5
- <td width="125px" valign="top"><?php _e('Redirection Type*:', 'pretty-link'); ?></td>
6
- <td>
7
- <select id="redirect_type" name="redirect_type" style="padding: 0px; margin: 0px;">
8
- <option value="307"<?php echo esc_html($values['redirect_type']['307']); ?>><?php _e("307 (Temporary)", 'pretty-link') ?>&nbsp;</option>
9
- <option value="301"<?php echo esc_html($values['redirect_type']['301']); ?>><?php _e("301 (Permanent)", 'pretty-link') ?>&nbsp;</option>
10
- <?php do_action('prli_redirection_types', $values); ?>
11
- </select>
12
- <?php
13
- global $prli_update;
14
- if(!$prli_update->pro_is_installed_and_authorized()) {
15
- ?>
16
- <p class="description"><?php printf(__("To Enable Cloaked, Meta-Refresh, Javascript, Pixel and Pretty Bar Redirection, upgrade to %sPretty Link Pro%s", 'pretty-link'),'<a href="http://prettylinkpro.com">',"</a>") ?></p>
17
- <?php } ?>
18
- </td>
19
- </tr>
20
- <tr id="prli_target_url" class="form-field ">
21
- <td valign="top"><?php _e("Target URL*:", 'pretty-link'); ?> </td>
22
- <td><textarea style="height: 50px;" name="url"><?php echo esc_html(htmlentities($values['url'],ENT_COMPAT,'UTF-8')); ?></textarea></td>
23
- </tr>
24
- <tr>
25
- <td valign="top"><?php _e("Pretty Link*:", 'pretty-link'); ?> </td>
26
- <td><strong><?php global $prli_blogurl; echo esc_html($prli_blogurl); ?></strong>/<input type="text" name="slug" value="<?php echo esc_attr($values['slug']); ?>" size="50"/></td>
27
- </tr>
28
- <tr class="form-field">
29
- <td width="75px" valign="top"><?php _e("Title:", 'pretty-link'); ?> </td>
30
- <td><input type="text" name="name" value="<?php echo esc_attr($values['name']); ?>" /></td>
31
- </tr>
32
- </table>
33
- <br/>
34
- <h2 id="link-options-tabs" class="nav-tab-wrapper">
35
- <a href="#options-table" class="nav-tab nav-tab-active"><?php _e( 'Options', 'pretty-link' ) ?></a>
36
- <a href="#pro-options-table" class="nav-tab"><?php _e( 'Advanced', 'pretty-link' ) ?></a>
37
- </h2>
38
- <table id="options-table">
39
- <tr>
40
- <td valign="top" width="50%">
41
- <h3><?php _e("Group", 'pretty-link') ?></h3>
42
- <div class="pane">
43
- <select name="group_id" id="group_dropdown" style="padding: 0px; margin: 0px;">
44
- <option><?php _e("None", 'pretty-link') ?></option>
45
- <?php
46
- foreach($values['groups'] as $group)
47
- {
48
- ?>
49
- <option value="<?php echo esc_attr($group['id']); ?>"<?php echo esc_html($group['value']); ?>><?php echo esc_html($group['name']); ?>&nbsp;</option>
50
- <?php
51
- }
52
- ?>
53
- </select>
54
- <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'); ?>" /><div id="add_group_message"></div>
55
- <p class="description"><?php _e('Select a Group for this Link', 'pretty-link') ?></p>
56
- </div>
57
- <br/>
58
- <h3><?php _e("SEO Options", 'pretty-link') ?></h3>
59
- <div class="pane">
60
- <input type="checkbox" name="nofollow" <?php echo esc_html($values['nofollow']); ?>/>&nbsp; <?php _e("'Nofollow' this Link", 'pretty-link') ?>
61
- <p class="description"><?php _e('Add a nofollow and noindex to this link\'s http redirect header', 'pretty-link')?>
62
- </div>
63
- <div id="prli_time_delay" style="display: none">
64
- <br/>
65
- <h3><?php _e('Delay Redirect (Seconds):', 'pretty-link'); ?></h3>
66
- <div class="pane">
67
- <input type="text" name="delay" value="<?php echo esc_attr($values['delay']); ?>" />
68
- <p class="description"><?php _e('Time in seconds to wait before redirecting', 'pretty-link') ?></p>
69
- </div>
70
- </div>
71
- </td>
72
- <td valign="top" width="50%">
73
- <h3><?php _e("Parameter Forwarding", 'pretty-link') ?></h3>
74
- <div class="pane">
75
- <input type="checkbox" name="param_forwarding" id="param_forwarding" <?php echo esc_html($values['param_forwarding']); ?>/>&nbsp;<?php _e("Parameter Forwarding Enabled", 'pretty-link') ?>
76
- <p class="description"><?php _e('Forward parameters passed to this link onto the Target URL', 'pretty-link') ?></p>
77
- </div><br/>
78
- <h3><?php _e("Tracking Options", 'pretty-link') ?></h3>
79
- <div class="pane">
80
- <input type="checkbox" name="track_me" <?php echo esc_html($values['track_me']); ?>/>&nbsp; <?php _e("Track Hits on this Link", 'pretty-link') ?>
81
- <p class="description"><?php _e('Enable Pretty Link\'s built-in hit (click) tracking', 'pretty-link') ?></p>
82
- <div id="prli_google_analytics" style="display: none">
83
- <input type="checkbox" name="google_tracking" <?php echo esc_attr($values['google_tracking']); ?>/>&nbsp; <?php _e('Enable Google Analytics Tracking on this Link', 'pretty-link') ?>
84
- <p class="description"><?php _e('Requires the Google Analyticator, Google Analytics for WordPress or Google Analytics Plugin installed and configured for this to work.', 'pretty-link') ?></p>
85
- <?php
86
- global $prli_update;
87
- if($prli_update->pro_is_installed_and_authorized()):
88
- if($ga_info = PrliProUtils::ga_installed()):
89
- ?>
90
- <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>
91
- <?php
92
- else:
93
- ?>
94
- <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>
95
- <?php
96
- endif;
97
- endif;
98
- ?>
99
- </div>
100
- </div><br/>
101
- </td>
102
- </tr>
103
- </table>
104
-
105
- <table id="pro-options-table">
106
- <?php
107
- global $prli_update;
108
- if($prli_update->pro_is_installed_and_authorized()) {
109
- $id = isset($id)?$id:false;
110
- // Add stuff to the form here
111
- do_action('prli_link_fields',$id);
112
- }
113
- else {
114
- ?>
115
- <tr><td colspan="2"><h3><?php printf(__('To enable Double Redirection, Keyword Replacements, URL Replacements, URL Rotations, Split Tests, and more, %sUpgrade to Pretty Link Pro%s today!', 'pretty-link'), '<a href="http://prettylinkpro.com">', '</a>') ?></h3></td></tr>
116
- <?php
117
- }
118
- ?>
119
- </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-links/list.php DELETED
@@ -1,243 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <div class="wrap">
7
- <?php
8
- require(PRLI_VIEWS_PATH.'/shared/nav.php');
9
- ?>
10
- <?php echo PrliAppHelper::page_title(__('Links', 'pretty-link')); ?>
11
- <?php
12
- if(empty($params['group']))
13
- {
14
- $permalink_structure = get_option('permalink_structure');
15
- if(!$permalink_structure or empty($permalink_structure))
16
- {
17
- ?>
18
- <div class="error" style="padding-top: 5px; padding-bottom: 5px;"><strong><?php _e("WordPress Must be Configured:</strong> 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></div>
19
- <?php
20
- }
21
- ?>
22
- <div id="message" class="updated fade" style="padding:5px;"><?php echo $prli_message; ?></div>
23
- <?php do_action('prli-link-message'); ?>
24
- <div id="search_pane" style="float: right;">
25
- <form class="form-fields" name="link_form" method="post" action="">
26
- <?php wp_nonce_field('prli-links'); ?>
27
- <input type="hidden" name="sort" id="sort" value="<?php echo $sort_str; ?>" />
28
- <input type="hidden" name="sdir" id="sort" value="<?php echo $sdir_str; ?>" />
29
- <input type="text" name="search" id="search" value="<?php echo esc_attr($search_str); ?>" style="display:inline;"/>
30
- <div class="submit" style="display: inline;"><input type="submit" name="Submit" value="Search"/>
31
- <?php
32
- if(!empty($search_str))
33
- {
34
- ?>
35
- or <a href="<?php echo admin_url('admin.php?page=pretty-link&action=reset'); ?>"><?php _e('Reset', 'pretty-link'); ?></a>
36
- <?php
37
- }
38
- ?>
39
- </div>
40
- </form>
41
- </div>
42
- <div id="button_bar">
43
- <p><a href="<?php echo admin_url('admin.php?page=add-new-pretty-link'); ?>"><img src="<?php echo PRLI_IMAGES_URL . '/pretty-link-add.png'; ?>"/> <?php _e('Add a Pretty Link', 'pretty-link'); ?></a>
44
- &nbsp;|&nbsp;<a href="http://blairwilliams.com/plintro"><?php _e('Watch Pretty Link Intro Video', 'pretty-link'); ?></a>
45
- <?php do_action('prli-link-nav'); ?>
46
- </p>
47
- </div>
48
- <?php
49
- }
50
- else
51
- {
52
- ?>
53
- <h3><?php echo $prli_message; ?></h3>
54
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-groups.php">&laquo <?php _e('Back to Groups', 'pretty-link'); ?></a>
55
- <br/><br/>
56
- <?php
57
- }
58
- ?>
59
- <?php $footer = false; require(PRLI_VIEWS_PATH.'/shared/link-table-nav.php'); ?>
60
- <table class="prli-edit-table widefat post fixed" cellspacing="0">
61
- <thead>
62
- <tr>
63
- <th class="manage-column" width="30%"><input type="checkbox" name="check-all" class="select-all-link-action-checkboxes" style="margin-left: 1px;"/>&nbsp;&nbsp;<a href="<?php echo admin_url('admin.php?page=pretty-link&sort=name' . (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Name', 'pretty-link'); echo (($sort_str == 'name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
64
- <?php do_action('prli_link_column_header'); ?>
65
- <th class="manage-column" width="10%"><a href="<?php echo admin_url('admin.php?page=pretty-link&sort=clicks' . (($sort_str == 'clicks' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Hits / Uniq', 'pretty-link'); echo (($sort_str == 'clicks')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
66
- <th class="manage-column" width="5%"><a href="<?php echo admin_url('admin.php?page=pretty-link&sort=group_name' . (($sort_str == 'group_name' and $sdir_str == 'asc')?'&sdir=desc':'')) ?>"><?php _e('Group', 'pretty-link'); echo (($sort_str == 'group_name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
67
- <th class="manage-column" width="12%"><a href="<?php echo admin_url('admin.php?page=pretty-link&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')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.((empty($sort_str) or $sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
68
- <th class="manage-column" width="20%"><a href="<?php echo admin_url('admin.php?page=pretty-link&sort=slug' . (($sort_str == 'slug' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>"><?php _e('Links', 'pretty-link'); echo (($sort_str == 'slug')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
69
- </tr>
70
- </thead>
71
- <tr id="bulk-edit" class="inline-edit-row inline-edit-row-post inline-edit-post bulk-edit-row bulk-edit-row-post bulk-edit-post" style="display: none;">
72
- <td class="colspanchange">
73
- <form id="prli-bulk-action-form" action="<?php echo admin_url('admin.php'); ?>" method="post">
74
- <input type="hidden" name="page" value="pretty-link" />
75
- <input type="hidden" name="action" value="bulk-edit" />
76
- <input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce('prli-bulk-edit'); ?>" />
77
- <fieldset class="inline-edit-col-left">
78
- <div class="inline-edit-col">
79
- <h4><?php _e('Bulk Edit', 'pretty-link'); ?></h4>
80
- <div id="bulk-title-div">
81
- <div id="bulk-titles"></div>
82
- </div>
83
- </div>
84
- </fieldset>
85
- <fieldset class="inline-edit-col-center">
86
- <h4><?php _e('Basic Link Options', 'pretty-link'); ?></h4>
87
- <div class="bacheck-title"><?php _e('Redirect Type', 'pretty-link'); ?></div>
88
- <?php PrliLinksHelper::redirect_type_dropdown( 'bu[redirect_type]', '', array(__('- No Change -', 'pretty-link') => '##nochange##'), 'bulk-edit-select' ) ?>
89
- <br/>
90
- <div class="bacheck-title"><?php _e('Group', 'pretty-link'); ?></div>
91
- <?php PrliLinksHelper::groups_dropdown('bu[group_id]', '', array(__('- No Change -', 'pretty-link') => '##nochange##'), 'bulk-edit-select'); ?>
92
- <br/>
93
- <?php PrliLinksHelper::bulk_action_checkbox_dropdown('bu[track_me]', __('Track', 'pretty-link'), 'bulk-edit-select'); ?>
94
- <br/>
95
- <?php PrliLinksHelper::bulk_action_checkbox_dropdown('bu[nofollow]', __('Nofollow', 'pretty-link'), 'bulk-edit-select'); ?>
96
- <br/>
97
- <?php PrliLinksHelper::bulk_action_checkbox_dropdown('bu[param_forwarding]', __('Forward Params', 'pretty-link'), 'bulk-edit-select'); ?>
98
- <br/>
99
- </fieldset>
100
- <fieldset class="inline-edit-col-right">
101
- <?php do_action('prli_bulk_action_right_col'); ?>
102
- </fieldset>
103
- <p class="submit inline-edit-save">
104
- <a href="javascript:" title="<?php _e('Cancel', 'pretty-link'); ?>" class="button-secondary bulk-edit-cancel alignleft"><?php _e('Cancel', 'pretty-link'); ?></a>
105
- <a href="javascript:" title="<?php _e('Update', 'pretty-link'); ?>" class="button-primary bulk-edit-update alignright"><?php _e('Bulk Update', 'pretty-link'); ?></a><br class="clear">
106
- </p>
107
- </form>
108
- </td>
109
- </tr>
110
- <?php
111
-
112
- if($record_count <= 0)
113
- {
114
- ?>
115
- <tr>
116
- <td colspan="5"><?php _e('Watch this video to see how to get started!', 'pretty-link'); ?> -- <a href="http://blairwilliams.com/xba"><strong><?php _e('Get More Video Tutorials like this one', 'pretty-link'); ?>...</strong></a><br/><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/i6C2Bljby3k&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/i6C2Bljby3k&hl=en&fs=1&rel=0&color1=0x3a3a3a&color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></td>
117
- </tr>
118
- <?php
119
- }
120
- else
121
- {
122
- global $prli_blogurl;
123
- foreach($links as $link)
124
- {
125
- $struct = PrliUtils::get_permalink_pre_slug_uri();
126
- $pretty_link_url = "{$prli_blogurl}{$struct}{$link->slug}";
127
- ?>
128
- <tr class="link_row">
129
- <td class="edit_link">
130
-
131
- <input type="checkbox" name="link-action[<?php echo $link->id; ?>]" class="link-action-checkbox" data-id="<?php echo $link->id; ?>" data-title="<?php echo esc_html(stripslashes($link->name)); ?>" />&nbsp;&nbsp;
132
- <?php do_action('prli_list_icon',$link->id); ?>
133
-
134
- <?php if( $link->redirect_type == 'prettybar' ) { ?>
135
- <img src="<?php echo PRLI_IMAGES_URL . '/pretty-link-small.png'; ?>" title="Using PrettyBar" width="13px" height="13px" />
136
- <?php }
137
- else if( $link->redirect_type == 'cloak' ) { ?>
138
- <img src="<?php echo PRLI_IMAGES_URL . '/ultra-cloak.png'; ?>" title="Using Ultra Cloak" width="13px" height="13px" />
139
- <?php }
140
- else if( $link->redirect_type == 'pixel' ) { ?>
141
- <img src="<?php echo PRLI_IMAGES_URL . '/pixel_track.png'; ?>" width="13px" height="13px" name="Pixel Tracking Enabled" alt="Pixel Tracking Enabled" title="Pixel Tracking Enabled"/>&nbsp;
142
- <?php }
143
- else if( $link->redirect_type == 'metarefresh' ) { ?>
144
- <span title="<?php _e('Meta Refresh Redirection', 'pretty-link') ?>" style="font-size: 14px; line-height: 14px; padding: 0px; margin: 0px; color: green;"><strong>M</strong></span>&nbsp;
145
- <?php }
146
- else if( $link->redirect_type == 'javascript' ) { ?>
147
- <span title="<?php _e('Javascript Redirection', 'pretty-link') ?>" style="font-size: 14px; line-height: 14px; padding: 0px; margin: 0px; color: green;"><strong>J</strong></span>&nbsp;
148
- <?php }
149
- else if( $link->redirect_type == '307' ) { ?>
150
- <span title="Temporary Redirection (307)" style="font-size: 14px; line-height: 14px; padding: 0px; margin: 0px; color: green;"><strong>T</strong></span>&nbsp;
151
- <?php }
152
- else if( $link->redirect_type == '301' ) { ?>
153
- <span title="Permanent Redirection (301)" style="font-size: 14px; line-height: 14px; padding: 0px; margin: 0px; color: green;"><strong>P</strong></span>&nbsp;
154
- <?php } ?>
155
-
156
- <?php if( $link->nofollow ) { ?>
157
- <img src="<?php echo PRLI_IMAGES_URL . '/nofollow.png'; ?>" title="nofollow" width="13px" height="13px" />
158
- <?php }
159
-
160
- if($link->param_forwarding == 'on')
161
- {
162
- ?>
163
- <img src="<?php echo PRLI_IMAGES_URL . '/forward_params.png'; ?>" width="13px" height="13px" name="Standard Parameter Forwarding Enabled" alt="Standard Parameter Forwarding Enabled" title="Standard Parameter Forwarding Enabled"/>&nbsp;
164
- <?php
165
- }
166
- else if($link->param_forwarding == 'custom')
167
- {
168
- ?>
169
- <img src="<?php echo PRLI_IMAGES_URL . '/forward_params.png'; ?>" width="13px" height="13px" name="Custom Parameter Forwarding Enabled" alt="Custom Parameter Forwarding Enabled" title="Custom Parameter Forwarding Enabled"/>&nbsp;
170
- <?php
171
- }
172
- ?>
173
- <?php do_action('prli_list_end_icon',$link); ?>
174
-
175
- <?php if( $link->redirect_type != 'pixel' )
176
- {
177
- ?>
178
- <a href="<?php echo esc_url($link->url); ?>" target="_blank" title="Visit Target URL: <?php echo esc_attr($link->url); ?> in a New Window"><img src="<?php echo PRLI_IMAGES_URL . '/url_icon.gif'; ?>" width="13px" height="13px" name="Visit" alt="Visit"/></a>&nbsp;
179
- <a href="<?php echo esc_url($pretty_link_url); ?>" target="_blank" title="Visit Pretty Link: <?php echo esc_attr($pretty_link_url); ?> in a New Window"><img src="<?php echo PRLI_IMAGES_URL . '/url_icon.gif'; ?>" width="13px" height="13px" name="Visit" alt="Visit"/></a>&nbsp;
180
- <?php
181
- }
182
- do_action('prli-special-link-action',$link->id);
183
- ?>
184
- <a class="slug_name" href="<?php echo admin_url('admin.php?page=pretty-link&action=edit&id=' . $link->id); ?>" title="Edit <?php echo esc_html(stripslashes($link->name)); ?>"><?php echo esc_html(stripslashes($link->name)); ?></a>
185
- <br/>
186
- <div class="link_actions">
187
- <a href="<?php echo admin_url('admin.php?page=pretty-link&action=edit&id=' . $link->id); ?>" title="Edit <?php echo esc_attr($link->slug); ?>"><?php _e('Edit', 'pretty-link'); ?></a>&nbsp;|
188
- <a href="<?php echo admin_url('admin.php?page=pretty-link&action=destroy&id=' . $link->id); ?>" onclick="return confirm('Are you sure you want to delete your <?php echo esc_html($link->name); ?> Pretty Link? This will delete the Pretty Link and all of the statistical data about it in your database.');" title="Delete <?php echo esc_html($link->slug); ?>"><?php _e('Delete', 'pretty-link'); ?></a>
189
- |&nbsp;<a href="<?php echo admin_url('admin.php?page=pretty-link&action=reset&id=' . $link->id); ?>" onclick="return confirm('Are you sure you want to reset your <?php echo esc_html($link->name); ?> Pretty Link? This will delete all of the statistical data about this Pretty Link in your database.');" title="Reset <?php echo esc_html($link->name); ?>"><?php _e('Reset', 'pretty-link'); ?></a>
190
- <?php if( $link->track_me and $prli_options->extended_tracking!='count' ) { ?>
191
- |&nbsp;<a href="<?php echo admin_url("admin.php?page=pretty-link/prli-clicks.php&l={$link->id}"); ?>" title="View clicks for <?php echo esc_attr($link->slug); ?>"><?php _e('Hits', 'pretty-link'); ?></a>
192
- <?php do_action('prli-link-action',$link->id); ?>
193
- <?php } ?>
194
- <?php if( $link->redirect_type != 'pixel' )
195
- {
196
- ?>
197
- |&nbsp;<a href="http://twitter.com/home?status=<?php echo esc_url($pretty_link_url); ?>" target="_blank" title="Post <?php echo esc_attr($pretty_link_url); ?> to Twitter"><?php _e('Tweet', 'pretty-link'); ?></a>&nbsp;|
198
- <a href="mailto:?subject=Pretty Link&body=<?php echo esc_url($pretty_link_url); ?>" target="_blank" title="Send <?php echo esc_attr($pretty_link_url); ?> in an Email"><?php _e('Email', 'pretty-link'); ?></a>
199
- <?php
200
- }
201
- ?>
202
- </div>
203
- </td>
204
- <?php do_action('prli_link_column_row',$link->id); ?>
205
- <td>
206
- <?php if($prli_options->extended_tracking!='count')
207
- echo (($link->track_me)?"<a href=\"". admin_url( "admin.php?page=pretty-link/prli-clicks.php&l={$link->id}" ) . "\" title=\"View clicks for " . esc_attr($link->slug) . "\">" . (empty($link->clicks)?0:$link->clicks) . "/" . (empty($link->uniques)?0:$link->uniques) . "</a>":"<img src=\"".PRLI_IMAGES_URL."/not_tracking.png\" title=\"This link isn't being tracked\"/>");
208
- else
209
- echo (($link->track_me)?(empty($link->clicks)?0:$link->clicks) . "/" . (empty($link->uniques)?0:$link->uniques):"<img src=\"".PRLI_IMAGES_URL."/not_tracking.png\" title=\"This link isn't being tracked\"/>");
210
- ?>
211
- </td>
212
- <td><a href="<?php echo admin_url( "admin.php?page=pretty-link&group={$link->group_id}"); ?>"><?php echo esc_html($link->group_name); ?></a></td>
213
- <td><?php echo $link->created_at; ?></td>
214
- </td>
215
- <td>
216
- <input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='<?php echo esc_attr($pretty_link_url); ?>' />
217
- <span class="list-clippy prli-clipboard"><?php echo esc_url($pretty_link_url); ?></span>
218
- <?php if( $link->redirect_type != 'pixel' )
219
- {
220
- ?>
221
- <span style="font-size: 8px;" title="<?php echo esc_attr($link->url); ?>"><strong><?php _e('Target URL:', 'pretty-link'); ?></strong> <?php echo htmlentities((substr($link->url,0,47) . ((strlen($link->url) >= 47)?'...':'')),ENT_COMPAT,'UTF-8'); ?></span></td>
222
- <?php
223
- }
224
- ?>
225
- </tr>
226
- <?php
227
- }
228
- }
229
- ?>
230
- <tfoot>
231
- <tr>
232
- <th class="manage-column"><?php do_action('prli-list-header-icon'); ?><?php _e('Name', 'pretty-link'); ?></th>
233
- <?php do_action('prli_link_column_footer'); ?>
234
- <th class="manage-column"><?php _e('Hits / Uniq', 'pretty-link'); ?></th>
235
- <th class="manage-column"><?php _e('Group', 'pretty-link'); ?></th>
236
- <th class="manage-column"><?php _e('Created', 'pretty-link'); ?></th>
237
- <th class="manage-column"><?php _e('Links', 'pretty-link'); ?></th>
238
- </tr>
239
- </tfoot>
240
- </table>
241
- <?php $footer = true; require(PRLI_VIEWS_PATH.'/shared/link-table-nav.php'); ?>
242
-
243
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-links/new.php DELETED
@@ -1,27 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <div class="wrap">
7
- <?php echo PrliAppHelper::page_title(__('Add Link', 'pretty-link')); ?>
8
-
9
- <?php
10
- require(PRLI_VIEWS_PATH.'/shared/errors.php');
11
- ?>
12
-
13
- <form name="form1" method="post" action="<?php echo admin_url("admin.php?page=pretty-link"); ?>">
14
- <input type="hidden" name="action" value="create">
15
- <?php wp_nonce_field('update-options'); ?>
16
- <input type="hidden" name="id" value="<?php echo $id; ?>">
17
-
18
- <?php
19
- require(PRLI_VIEWS_PATH.'/prli-links/form.php');
20
- ?>
21
-
22
- <p class="submit">
23
- <input type="submit" name="Submit" value="Create" />&nbsp;<?php _e('or', 'pretty-link'); ?>&nbsp;<a href="<?php admin_url('admin.php?page=pretty-link'); ?>"><?php _e('Cancel', 'pretty-link'); ?></a>
24
- </p>
25
-
26
- </form>
27
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-options/form.php DELETED
@@ -1,125 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <div class="wrap">
7
- <?php echo PrliAppHelper::page_title(__('Options', 'pretty-link')); ?>
8
- <br/>
9
- <?php
10
- $permalink_structure = get_option('permalink_structure');
11
- if(!$permalink_structure or empty($permalink_structure))
12
- {
13
- ?>
14
- <div class="error" style="padding-top: 5px; padding-bottom: 5px;"><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></div>
15
- <?php
16
- }
17
- ?>
18
- <?php do_action('prli-options-message'); ?>
19
- <a href="<?php echo admin_url("admin.php?page=pretty-link"); ?>">&laquo; <?php _e('Pretty Link Admin', 'pretty-link'); ?></a>
20
-
21
- <form name="form1" method="post" action="<?php echo admin_url("/admin.php?page=pretty-link/prli-options.php"); ?>">
22
- <input type="hidden" name="<?php echo $hidden_field_name; ?>" value="Y">
23
- <?php wp_nonce_field('update-options'); ?>
24
-
25
- <h3><a class="toggle link-toggle-button"><?php _e('Link Options', 'pretty-link') ?> <span class="link-expand" style="display: none;">[+]</span><span class="link-collapse">[-]</span></a></h3>
26
- <ul class="link-toggle-pane" style="list-style-type: none; padding-left: 10px;">
27
- <li>
28
- <h3><?php _e('Link Defaults:', 'pretty-link') ?></h3>
29
- <input type="checkbox" name="<?php echo $link_track_me; ?>" <?php echo (($prli_options->link_track_me != 0)?'checked="true"':''); ?>/>&nbsp; <?php _e('Track Link', 'pretty-link'); ?>
30
- <br/><span class="description"><?php _e('Default all new links to be tracked.', 'pretty-link'); ?></span>
31
- </li>
32
- <li>
33
- <input type="checkbox" name="<?php echo $link_nofollow; ?>" <?php echo (($prli_options->link_nofollow != 0)?'checked="true"':''); ?>/>&nbsp; <?php _e('Add <code>nofollow</code> to Link', 'pretty-link'); ?>
34
- <br/><span class="description"><?php _e('Add the <code>nofollow</code> attribute by default to new links.', 'pretty-link'); ?></span>
35
- </li>
36
- <li>
37
- <input type="checkbox" name="<?php echo $link_prefix; ?>" <?php echo (($prli_options->link_prefix != 0)?'checked="true"':''); ?>/>&nbsp; <?php _e('Use a prefix from your Permalink structure in your Pretty Links', 'pretty-link'); ?>
38
- <br/><span class="description"><?php _e("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'); ?></span>
39
- </li>
40
- <li>
41
- <span><strong><?php _e('Default Link Redirection Type:', 'pretty-link') ?> </strong></span>
42
- <select name="<?php echo $link_redirect_type; ?>">
43
- <option value="307" <?php echo (($prli_options->link_redirect_type == '307')?' selected="selected"':''); ?>><?php _e('Temporary (307)', 'pretty-link'); ?></option>
44
- <option value="301" <?php echo (($prli_options->link_redirect_type == '301')?' selected="selected"':''); ?>><?php _e('Permanent (301)', 'pretty-link'); ?></option>
45
- <?php do_action('prli_default_redirection_types',$prli_options->link_redirect_type); ?>
46
- </select>
47
- <br/><span class="description"><?php _e('Select the type of redirection you want your newly created links to have.', 'pretty-link'); ?></span>
48
- </li>
49
- <?php do_action('prli_custom_link_options'); ?>
50
- <li>
51
- <h3><?php _e('Advanced', 'pretty-link') ?></h3>
52
- <span><strong><?php _e('WordPress Redirection Action:', 'pretty-link') ?> </strong></span>
53
- <select name="<?php echo $link_redirect_action; ?>">
54
- <option value="init" <?php echo (($prli_options->link_redirect_action == 'init')?' selected="selected"':''); ?>><?php _e('WordPress \'init\' Action', 'pretty-link') ?></option>
55
- <option value="template_redirect" <?php echo (($prli_options->link_redirect_action == 'template_redirect')?' selected="selected"':''); ?>><?php _e('WordPress \'template_redirect\' Action', 'pretty-link') ?></option>
56
- </select>
57
- <br/><span class="description"><?php _e('Defaults to use WordPress\' \'init\' action. Init works more reliably for many users but the better option for performance and compatibility is to use the \'template_redirect\' action.', 'pretty-link') ?></span>
58
- </li>
59
- </ul>
60
- <?php do_action('prli_custom_option_pane'); ?>
61
- <h3><a class="toggle reporting-toggle-button"><?php _e('Reporting Options', 'pretty-link'); ?> <span class="reporting-expand" style="display: none;">[+]</span><span class="reporting-collapse">[-]</span></a></h3>
62
- <table class="reporting-toggle-pane form-table">
63
- <tr class="form-field">
64
- <td valign="top"><?php _e('Excluded IP Addresses:', 'pretty-link'); ?> </td>
65
- <td>
66
- <input type="text" name="<?php echo $prli_exclude_ips; ?>" value="<?php echo $prli_options->prli_exclude_ips; ?>">
67
- <br/><span class="description"><?php _e('Enter IP Addresses or IP Ranges you want to exclude from your Hit data and Stats. Each IP Address should be separated by commas. Example: <code>192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*</code>', 'pretty-link'); ?></span>
68
- <br/><span class="description" style="color: red;"><?php _e('Your Current IP Address is', 'pretty-link'); echo $_SERVER['REMOTE_ADDR']; ?></span>
69
- </td>
70
- </tr>
71
- <tr>
72
- <td colspan="2">
73
- <input type="checkbox" class="filter-robots-checkbox" name="<?php echo $filter_robots; ?>" <?php echo (($prli_options->filter_robots != 0)?'checked="true"':''); ?>/>&nbsp; <?php _e('Filter Robots', 'pretty-link'); ?>
74
- <br/><span class="description"><?php _e('Filter known Robots and unidentifiable browser clients from your hit data, stats and reports. <code>IMPORTANT: Any robot hits recorded with any version of Pretty Link before 1.4.22 won\'t be filtered by this setting.</code>', 'pretty-link'); ?></span>
75
- <table class="option-pane whitelist-ips">
76
- <tr class="form-field">
77
- <td valign="top"><?php _e('Whitelist IP Addresses:', 'pretty-link'); ?>&nbsp;</td>
78
- <td>
79
- <input type="text" name="<?php echo $whitelist_ips; ?>" value="<?php echo $prli_options->whitelist_ips; ?>">
80
- <br/><span class="description"><?php _e('Enter IP Addresses or IP Ranges you want to always include in your Hit data and Stats even if they are flagged as robots. Each IP Address should be separated by commas. Example: <code>192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*</code>', 'pretty-link'); ?></span>
81
- </td>
82
- </tr>
83
- </table>
84
- </td>
85
- </tr>
86
- <tr>
87
- <td colspan="2">
88
- <h4><?php _e('Tracking Style:', 'pretty-link'); ?></h4><span class="description"><code><?php _e('Note: Changing your tracking style can affect the accuracy of your existing statistics.', 'pretty-link'); ?></code></span>
89
- <div id="option-pane">
90
- <ul style="list-style-type: none;" class="pane">
91
- <li>
92
- <input type="radio" name="<?php echo $extended_tracking; ?>" value="normal"<?php echo (($prli_options->extended_tracking == 'normal')?' checked="checked"':''); ?>/>&nbsp;<?php _e('Normal Tracking', 'pretty-link'); ?>
93
- </li>
94
- <li>
95
- <input type="radio" name="<?php echo $extended_tracking; ?>" value="extended"<?php echo (($prli_options->extended_tracking == 'extended')?' checked="checked"':''); ?>/>&nbsp;<?php _e('Extended Tracking (more stats / slower performance)', 'pretty-link'); ?>
96
- </li>
97
- <li>
98
- <input type="radio" name="<?php echo $extended_tracking; ?>" value="count"<?php echo (($prli_options->extended_tracking == 'count')?' checked="checked"':''); ?>/>&nbsp;<?php _e('Simple Click Count Tracking (less stats / faster performance)', 'pretty-link'); ?>
99
- </li>
100
- </ul>
101
- </div>
102
- </td>
103
- </tr>
104
- </table>
105
-
106
- <p class="submit">
107
- <input type="submit" name="Submit" value="<?php _e('Update Options', 'pretty-link') ?>" />
108
- </p>
109
-
110
-
111
- <h3><?php _e('Trim Hit Database', 'pretty-link'); ?></h3>
112
-
113
- <?php if($prli_options->extended_tracking != 'count') { ?>
114
- <p><a href="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'] ); ?>&action=clear_30day_clicks" onclick="return confirm('<?php _e('***WARNING*** If you click OK you will delete ALL of the Hit 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 Hits older than 30 days', 'pretty-link'); ?></a>
115
- <br/><span class="description"><?php _e('This will clear all hits in your database that are older than 30 days.', 'pretty-link'); ?></span></p>
116
-
117
- <p><a href="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'] ); ?>&action=clear_90day_clicks" onclick="return confirm('<?php _e('***WARNING*** If you click OK you will delete ALL of the Hit 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 Hits older than 90 days', 'pretty-link'); ?></a>
118
- <br/><span class="description"><?php _e('This will clear all hits in your database that are older than 90 days.', 'pretty-link'); ?></span></p>
119
- <?php } ?>
120
-
121
- <p><a href="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI'] ); ?>&action=clear_all_clicks" onclick="return confirm('<?php _e('***WARNING*** If you click OK you will delete ALL of the Hit 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 Hits', 'pretty-link'); ?></a>
122
- <br/><span class="description"><?php _e('Seriously, only click this link if you want to delete all the Hit data in your database.', 'pretty-link'); ?></span></p>
123
-
124
- </form>
125
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-options/head.php DELETED
@@ -1,53 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <script type="text/javascript">
7
- jQuery(document).ready(function() {
8
- <?php do_action('prli_options_js'); ?>
9
-
10
- jQuery('.reporting-expand').show();
11
- jQuery('.reporting-collapse').hide();
12
- jQuery('.reporting-toggle-pane').hide();
13
- jQuery('.reporting-toggle-button').click(function() {
14
- jQuery('.reporting-toggle-pane').toggle();
15
- jQuery('.reporting-expand').toggle();
16
- jQuery('.reporting-collapse').toggle();
17
- });
18
-
19
- jQuery('.link-expand').show();
20
- jQuery('.link-collapse').hide();
21
- jQuery('.link-toggle-pane').hide();
22
- jQuery('.link-toggle-button').click(function() {
23
- jQuery('.link-toggle-pane').toggle();
24
- jQuery('.link-expand').toggle();
25
- jQuery('.link-collapse').toggle();
26
- });
27
-
28
- if (jQuery('.filter-robots-checkbox').is(':checked')) {
29
- jQuery('.whitelist-ips').show();
30
- }
31
- else {
32
- jQuery('.whitelist-ips').hide();
33
- }
34
-
35
- jQuery('.filter-robots-checkbox').change(function() {
36
- if (jQuery('.filter-robots-checkbox').is(':checked')) {
37
- jQuery('.whitelist-ips').show();
38
- }
39
- else {
40
- jQuery('.whitelist-ips').hide();
41
- }
42
- });
43
- });
44
- </script>
45
-
46
- <style type="text/css">
47
- .toggle {
48
- cursor: pointer;
49
- }
50
- </style>
51
-
52
- <?php
53
- do_action('prli-options-head');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-options/pro-settings.php DELETED
@@ -1,22 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <div class="wrap">
7
- <?php echo PrliAppHelper::page_title(__('Pro Account Information', 'pretty-link')); ?>
8
- <?php $this_uri = preg_replace('#&.*?$#', '', str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])); ?>
9
- <h3><?php _e('Pretty Link Pro Account Information', 'pretty-link'); ?></h3>
10
- <?php if($prli_update->pro_is_installed_and_authorized()) { ?>
11
- <p><a href="http://prettylinkpro.com/user-manual"><?php _e('User Manual', 'pretty-link'); ?></a></p>
12
- <?php } ?>
13
- <?php echo $prli_update->pro_cred_form(); ?>
14
- <?php if($prli_update->pro_is_installed_and_authorized()) { ?>
15
- <div><p><strong><?php _e('Pretty Link Pro is Installed', 'pretty-link'); ?></strong></p><p><a href="<?php echo $this_uri; ?>&action=pro-uninstall" onclick="return confirm('<?php _e('Are you sure you want to Un-Install Pretty Link Pro? This will delete your pro username & password from your local database, remove all the pro software but will leave all your data intact incase you want to reinstall sometime :) ...', 'pretty-link'); ?>');" title="<?php _e('Downgrade to Pretty Link Standard', 'pretty-link'); ?>" ><?php _e('Downgrade to Pretty Link Standard', 'pretty-link'); ?></a></p><br/><p><strong><?php _e('Edit/Update Your Profile:', 'pretty-link'); ?></strong><br/><span class="description"><?php _e('Use your account username and password to log in to your Account and Affiliate Control Panel', 'pretty-link'); ?></span></p><p><a href="http://prettylinkpro.com/amember/member.php"><?php _e('Account', 'pretty-link'); ?></a>&nbsp;|&nbsp;<a href="http://prettylinkpro.com/amember/aff_member.php"><?php _e('Affiliate Control Panel', 'pretty-link'); ?></a></div>
16
-
17
- <?php } else { ?>
18
- <p><strong><?php _e('Ready to take your marketing efforts to the next level?', 'pretty-link'); ?></strong><br/>
19
- <a href="http://prettylinkpro.com"><?php _e('Pretty Link Pro', 'pretty-link'); ?></a> <?php _e('will help you automate, share, test and get more clicks and conversions from your Pretty Links!', 'pretty-link'); ?><br/><br/><a href="http://prettylinkpro.com"><?php _e('Learn More', 'pretty-link'); ?> &raquo;</a></p>
20
- <?php } ?>
21
-
22
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-tools/bookmarklet.php DELETED
@@ -1,83 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH')) die('You are not allowed to call this page directly.');
3
-
4
- // Escape all variables used on this page
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
- $twitter_status = esc_html( $twitter_status );
13
- ?>
14
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
15
- "http://www.w3.org/TR/html4/loose.dtd">
16
- <html>
17
- <head>
18
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
19
- <title><?php echo __('Here\'s your Pretty Link', 'pretty-link'); ?></title>
20
- <script type='text/javascript' src='<?php echo site_url('/wp-includes/js/jquery/jquery.js'); ?>'></script>
21
- <script type='text/javascript' src='<?php echo PRLI_JS_URL . '/jquery.clippy.js'; ?>'></script>
22
- <script type="text/javascript">
23
- jQuery(document).ready(function() {
24
- /* Set up the clippies! */
25
- jQuery('.clippy').clippy({clippy_path: '<?php echo PRLI_JS_URL; ?>/clippy.swf', width: '100px'});
26
- });
27
- </script>
28
- <style type="text/css">
29
- body {
30
- font-family: Arial;
31
- text-align: center;
32
- margin-top: 25px;
33
- }
34
-
35
- h4 {
36
- font-size: 18px;
37
- color: #aaaaaa;
38
- }
39
-
40
- h2 {
41
- font-size: 24px;
42
- font-weight: bold;
43
- }
44
-
45
- h2 a {
46
- text-decoration: none;
47
- color: #1f487e;
48
- }
49
-
50
- h2 a:hover {
51
- text-decoration: none;
52
- color: blue;
53
- }
54
- .clippy {
55
- padding-left: 75px;
56
- }
57
- </style>
58
- </head>
59
- <body>
60
- <p><a href="http://prettylinkpro.com"><img src="<?php echo PRLI_IMAGES_URL; ?>/prettylink_logo.jpg" /></a></p>
61
- <h4><em><?php _e('here\'s your pretty link for:', 'pretty-link'); ?></em><br/><?php echo $target_url_title; ?><br/>(<span title="<?php echo $target_url; ?>"><?php echo substr($target_url,0,50) . ((strlen($target_url)>50)?"...":''); ?></span>)</h4>
62
- <h2><a href="<?php echo $pretty_link_raw; ?>"><?php echo $pretty_link; ?></a><br/><span class="clippy"><?php echo $pretty_link_raw; ?></span></h2>
63
- <p><?php _e('send this link to:', 'pretty-link'); ?><br/>
64
- <a href="http://www.delicious.com/save" onclick="window.open('http://www.delicious.com/save?v=5&noui&jump=close&url=<?php echo urlencode($pretty_link_raw); ?>&title=<?php echo urlencode($target_url_title); ?>', 'delicious','toolbar=no,width=550,height=550'); return false;"><img src="<?php echo PRLI_IMAGES_URL; ?>/delicious_32.png" title="delicious" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
65
- <!-- Place this tag where you want the su badge to render -->
66
- <su:badge layout="6"></su:badge>&nbsp;&nbsp;
67
-
68
- <!-- Place this snippet wherever appropriate -->
69
- <script type="text/javascript">
70
- (function() {
71
- var li = document.createElement('script'); li.type = 'text/javascript'; li.async = true;
72
- li.src = 'https://platform.stumbleupon.com/1/widgets.js';
73
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(li, s);
74
- })();
75
- </script>
76
- <a href="http://digg.com/submit?phase=2&url=<?php echo urlencode($pretty_link_raw) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_IMAGES_URL; ?>/digg_32.png" title="digg" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
77
- <a href="http://twitter.com/home?status=<?php echo urlencode($twitter_status); ?>" target="_blank"><img src="<?php echo PRLI_IMAGES_URL; ?>/twitter_32.png" title="twitter" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
78
- <a href="http://www.facebook.com/sharer.php?u=<?php echo urlencode($pretty_link_raw) ?>&t=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_IMAGES_URL; ?>/facebook_32.png" title="facebook" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
79
- <a href="http://reddit.com/submit?url=<?php echo urlencode($pretty_link_raw) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_IMAGES_URL; ?>/reddit_32.png" title="reddit" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
80
- <a href="http://www.linkedin.com/shareArticle?mini=true&url=<?php echo urlencode($pretty_link_raw) ?>&title=<?php echo urlencode($target_url_title); ?>" target="_blank"><img src="<?php echo PRLI_IMAGES_URL; ?>/linkedin_32.png" title="linkedin" width="32px" height="32px" border="0" /></a>&nbsp;&nbsp;
81
- <p><a href="<?php echo $target_url_raw; ?>">&laquo; <?php _e('back', 'pretty-link'); ?></a></p>
82
- </body>
83
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/prli-tools/form.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
- ?>
5
-
6
- <div class="wrap">
7
- <script type="text/javascript">
8
- function toggle_iphone_instructions()
9
- {
10
- jQuery('.iphone_instructions').slideToggle();
11
- }
12
-
13
- </script>
14
- <?php
15
- require(PRLI_VIEWS_PATH.'/shared/nav.php');
16
- ?>
17
- <?php echo PrliAppHelper::page_title(__('Tools', 'pretty-link')); ?>
18
- <h3><?php _e('Bookmarklet:', 'pretty-link'); ?></h3>
19
- <p><strong><a href="<?php echo PrliLink::bookmarklet_link(); ?>"><?php _e('Get PrettyLink', 'pretty-link'); ?></a></strong><br/>
20
- <span class="description"><?php _e('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'); ?></span>
21
- <br/><br/><a href="javascript:toggle_iphone_instructions()"><strong><?php _e('Show iPhone Bookmarklet Instructions', 'pretty-link'); ?></strong></a>
22
- <div class="iphone_instructions" style="display: none"><?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/>
23
- <ol>
24
- <li><?php _e('Copy this text:', 'pretty-link'); ?><br/><code><?php echo PrliLink::bookmarklet_link(); ?></code></li>
25
- <li><?php _e('Tap the + button at the bottom of the screen', 'pretty-link'); ?></li>
26
- <li><?php _e('Choose "Add Bookmark", rename your bookmark to "Get PrettyLink" (or whatever you want) and then "Save"', 'pretty-link'); ?></li>
27
- <li><?php _e('Navigate through your Bookmarks folders until you find the new bookmark and click "Edit"', 'pretty-link'); ?></li>
28
- <li><?php _e('Delete all the text from the address', 'pretty-link'); ?></li>
29
- <li><?php _e('Paste the text you copied in Step 1 into the address field', 'pretty-link'); ?></li>
30
- <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 link.', 'pretty-link'); ?></li>
31
- </ol>
32
- </div>
33
- <?php do_action('prli-add-tools'); ?>
34
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/shared/link-table-nav.php DELETED
@@ -1,123 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- // Only show the pager bar if there is more than 1 page
6
- if($page_count > 1)
7
- {
8
- ?>
9
- <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
10
- <div class='tablenav-pages'><span class="displaying-num"><?php _e('Displaying', 'pretty-link'); echo "$page_first_record&#8211;$page_last_record of $record_count"; ?></span>
11
-
12
- <?php
13
- // Only show the prev page button if the current page is not the first page
14
- if($current_page > 1)
15
- {
16
- ?>
17
- <a class='prev page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=<?php echo ($current_page-1); ?>&size=<?php echo (int)$_REQUEST['size']; ?>'>&laquo;</a>
18
- <?php
19
- }
20
-
21
- // First page is always displayed
22
- if($current_page==1)
23
- {
24
- ?>
25
- <span class='page-numbers current'>1</span>
26
- <?php
27
- }
28
- else
29
- {
30
- ?>
31
- <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=1&size=<?php echo (int)$_REQUEST['size']; ?>'>1</a>
32
- <?php
33
- }
34
-
35
- // If the current page is more than 2 spaces away from the first page then we put some dots in here
36
- if($current_page >= 5)
37
- {
38
- ?>
39
- <span class='page-numbers dots'>...</span>
40
- <?php
41
- }
42
-
43
- // display the current page icon and the 2 pages beneath and above it
44
- $low_page = (($current_page >= 5)?($current_page-2):2);
45
- $high_page = ((($current_page + 2) < ($page_count-1))?($current_page+2):($page_count-1));
46
- for($i = $low_page; $i <= $high_page; $i++)
47
- {
48
- if($current_page==$i)
49
- {
50
- ?>
51
- <span class='page-numbers current'><?php echo $i; ?></span>
52
- <?php
53
- }
54
- else
55
- {
56
- ?>
57
- <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=<?php echo $i; ?>&size=<?php echo (int)$_REQUEST['size']; ?>'><?php echo $i; ?></a>
58
- <?php
59
- }
60
- }
61
-
62
- // If the current page is more than 2 away from the last page then show ellipsis
63
- if($current_page < ($page_count - 3))
64
- {
65
- ?>
66
- <span class='page-numbers dots'>...</span>
67
- <?php
68
- }
69
-
70
- // Display the last page icon
71
- if($current_page == $page_count)
72
- {
73
- ?>
74
- <span class='page-numbers current'><?php echo $page_count; ?></span>
75
- <?php
76
- }
77
- else
78
- {
79
- ?>
80
- <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=<?php echo $page_count; ?>&size=<?php echo (int)$_REQUEST['size']; ?>'><?php echo $page_count; ?></a>
81
- <?php
82
- }
83
-
84
- // Display the next page icon if there is a next page
85
- if($current_page < $page_count)
86
- {
87
- ?>
88
- <a class='next page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=<?php echo ($current_page + 1); ?>&size=<?php echo (int)$_REQUEST['size']; ?>'>&raquo;</a>
89
- <?php
90
- }
91
- ?>
92
- <select class="prli-page-size" onchange="location='<?php echo admin_url("admin.php?page=" . esc_html($_REQUEST['page'].$page_params) . "&paged=1&size='+this.options[this.selectedIndex].value"); ?>">
93
- <option value="10" selected="selected">10</option>
94
- <option value="25" <?php if($_REQUEST['size'] == 25) echo 'selected="selected"'; ?>>25</option>
95
- <option value="50" <?php if($_REQUEST['size'] == 50) echo 'selected="selected"'; ?>>50</option>
96
- <option value="100" <?php if($_REQUEST['size'] == 100) echo 'selected="selected"'; ?>>100&nbsp;</option>
97
- </select>
98
- </div>
99
- <?php if(!$footer): ?>
100
- <?php PrliLinksHelper::bulk_action_dropdown(); ?>
101
- <?php endif; ?>
102
- </div>
103
- <?php
104
- }
105
- else
106
- {
107
- ?>
108
- <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
109
- <div class='tablenav-pages'>
110
- <span class="displaying-num"><?php _e('Displaying', 'pretty-link'); echo "$page_first_record&#8211;$page_last_record of $record_count"; ?></span>
111
- <select class="prli-page-size" onchange="location='<?php echo admin_url("admin.php?page=" . esc_html($_REQUEST['page'].$page_params) . "&paged=1&size='+this.options[this.selectedIndex].value"); ?>">
112
- <option value="10" selected="selected">10</option>
113
- <option value="25" <?php if(isset($_REQUEST['size']) and $_REQUEST['size'] == 25) echo 'selected="selected"'; ?>>25</option>
114
- <option value="50" <?php if(isset($_REQUEST['size']) and $_REQUEST['size'] == 50) echo 'selected="selected"'; ?>>50</option>
115
- <option value="100" <?php if(isset($_REQUEST['size']) and $_REQUEST['size'] == 100) echo 'selected="selected"'; ?>>100&nbsp;</option>
116
- </select>
117
- </div>
118
- <?php if(!$footer): ?>
119
- <?php PrliLinksHelper::bulk_action_dropdown(); ?>
120
- <?php endif; ?>
121
- </div>
122
- <?php
123
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/shared/nav.php DELETED
@@ -1,12 +0,0 @@
1
- <?php
2
- if(!defined('ABSPATH'))
3
- die('You are not allowed to call this page directly.');
4
-
5
- global $prli_update;
6
-
7
- if($prli_update->pro_is_installed_and_authorized())
8
- $support_link = "&nbsp;|&nbsp;<a href=\"http://prettylinkpro.com/user-manual\">" . __('Pro Manual', 'pretty-link') . '</a>';
9
- else
10
- $support_link = "&nbsp;|&nbsp;<a href=\"http://prettylinkpro.com\">" . __('Upgrade to Pro', 'pretty-link') . '</a>';
11
- ?>
12
- <p style="font-size: 14px; font-weight: bold; float: right; text-align: right; padding-top: 0px; padding-right: 10px;"><?php _e('Connect', 'pretty-link'); ?>:&nbsp;&nbsp;<a href="http://twitter.com/blairwilli"><img src="<?php echo PRLI_IMAGES_URL; ?>/twitter_32.png" style="width: 24px; height: 24px;" /></a>&nbsp;<a href="http://www.facebook.com/pages/Pretty-Link/283252860401"><img src="<?php echo PRLI_IMAGES_URL; ?>/facebook_32.png" style="width: 24px; height: 24px;" /></a><br/><?php _e('Get Help', 'pretty-link'); ?>:&nbsp;&nbsp;<a href="http://blairwilliams.com/xba" target="_blank"><?php _e('Tutorials', 'pretty-link'); ?></a><?php echo $support_link; ?>&nbsp;|&nbsp;<a href="http://blairwilliams.com/work"><?php _e('One on One', 'pretty-link'); ?></a></p>
 
 
 
 
 
 
 
 
 
 
 
 
classes/views/shared/title_text.php DELETED
@@ -1,2 +0,0 @@
1
- <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
2
- <h2 id="prli_title" style="margin: 10px 0px 0px 0px; padding: 0px 0px 0px 169px; height: 64px; background: url(<?php echo PRLI_IMAGES_URL; ?>/prettylink_logo_64.jpg) no-repeat">&nbsp;&nbsp;<?php echo esc_html($page_title); ?></h2>
 
 
css/admin-activate.css ADDED
@@ -0,0 +1,206 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ .prli-hidden {
3
+ display: none;
4
+ }
5
+
6
+ .icon32 {
7
+ float: right;
8
+ display: inline-block;
9
+ background:url('../images/pretty-link-32.png') !important;
10
+ width: 267px !important;
11
+ height: 32px !important;
12
+ }
13
+
14
+ @media all and (-webkit-min-device-pixel-ratio: 1.5) {
15
+ .icon32 {
16
+ background-image: url('../images/pretty-link-32@2x.png') !important;
17
+ background-size: 267px 32px !important;
18
+ }
19
+ }
20
+
21
+ .prli-options-hidden-pane {
22
+ display:none;
23
+ margin-top:25px;
24
+ }
25
+
26
+ div#pages {
27
+ display:block;
28
+ }
29
+
30
+ h2.nav-tab-wrapper {
31
+ padding-left:6px;
32
+ }
33
+
34
+ h2 .nav-tab {
35
+ color:#21759B;
36
+ }
37
+
38
+ h2 .nav-tab:hover {
39
+ color:#D54E21;
40
+ }
41
+
42
+ h2 .nav-tab-active {
43
+ text-shadow:1px 1px 1px white;
44
+ font-weight:bold;
45
+ color:#464646;
46
+ }
47
+
48
+ #prli_options_form h2 .nav-tab {
49
+ padding:4px 10px 6px;
50
+ margin:0 -2px -1px 0;
51
+ font-size:18px;
52
+ vertical-align:top;
53
+ }
54
+
55
+ hr {
56
+ border:none;
57
+ background-color:#CCC;
58
+ height:1px;
59
+ margin-top:12px;
60
+ margin-bottom:13px;
61
+ }
62
+
63
+ .submit {
64
+ margin:10px 0 5px 0;
65
+ padding:0;
66
+ }
67
+
68
+ #integration.prli-options-hidden-pane, #accounts.prli-options-hidden-pane {
69
+ padding-top:8px
70
+ }
71
+
72
+ .prli-options-hidden-pane {
73
+ margin-top:0;
74
+ padding-top:0;
75
+ }
76
+
77
+ .prli-edit-email-toggle {
78
+ margin-left: 5px;
79
+ }
80
+
81
+ .prli-options-pane {
82
+ margin-left: 15px;
83
+ }
84
+
85
+ .prli-edit-email input[type=text], .prli-edit-email textarea {
86
+ width: 500px
87
+ }
88
+
89
+ .prli-edit-email textarea {
90
+ min-height: 300px;
91
+ }
92
+
93
+ #emails label {
94
+ display: inline-block;
95
+ min-width: 250px;
96
+ width: 250px;
97
+ max-width: 250px;
98
+ }
99
+
100
+ #emails textarea, #emails .legend-pane {
101
+ display: inline-block;
102
+ vertical-align: top;
103
+ }
104
+
105
+ textarea#prli-custom-message {
106
+ width: 500px;
107
+ height: 100px;
108
+ }
109
+
110
+ #emails .legend-pane {
111
+ padding-left: 10px;
112
+ min-width: 200px;
113
+ max-width: 200px;
114
+ width: 200px;
115
+ }
116
+
117
+ #i18n .prli-field-label {
118
+ display: inline-block;
119
+ width: 100px;
120
+ }
121
+
122
+ .prli-integration-form {
123
+ display: inline-block;
124
+ margin-top: -25px;
125
+ }
126
+
127
+ .prli-integration-setup-form {
128
+ float: left;
129
+ width: 300px;
130
+ }
131
+
132
+ .prli-integration-gateway-form {
133
+ left: 235px;
134
+ }
135
+
136
+ .prli-integration-delete {
137
+ width: 100%;
138
+ text-align: right;
139
+ margin-top: -10px;
140
+ }
141
+
142
+ .prli-integration {
143
+ margin: 0 0 5px 0;
144
+ padding: 15px;
145
+ border: 1px solid #DFDFDF;
146
+ -webkit-border-radius: 3px;
147
+ -moz-border-radius: 3px;
148
+ border-radius: 3px;
149
+ line-height: 30px;
150
+ }
151
+
152
+ .prli-integration-setup-form label {
153
+ width: 100px;
154
+ display: inline-block;
155
+ }
156
+
157
+ ul.custom_options_list {
158
+ margin:18px;
159
+ padding:15px;
160
+ background-color: transparent;
161
+ border: 1px solid #DFDFDF;
162
+ -webkit-border-radius: 3px;
163
+ -moz-border-radius: 3px;
164
+ }
165
+
166
+ .prli-custom-field {
167
+ padding: 15px;
168
+ margin-bottom: 5px !important;
169
+ }
170
+
171
+ .prli-custom-field input[type=text],
172
+ .prli-custom-field select {
173
+ margin-right: 15px !important;
174
+ }
175
+
176
+ .prli-custom-field a.prli-custom-field-remove,
177
+ .prli-custom-field a.prli-option-remove {
178
+ float: right;
179
+ }
180
+
181
+ .clippy_input {
182
+ background: #015289 !important;
183
+ color: white !important;
184
+ }
185
+
186
+ */
187
+
188
+ .prli-license-active {
189
+ padding: 10px;
190
+ background-color: #caffcd;
191
+ border: 1px solid #27820d;
192
+ margin: 25px 0;
193
+ -webkit-border-radius: 3px;
194
+ border-radius: 3px;
195
+ width: 450px;
196
+ }
197
+
198
+ .prli-deactivate-button {
199
+ margin-top: 15px;
200
+ margin-bottom: 7px;
201
+ }
202
+
203
+ .prli-license-active h4 {
204
+ font-size: 18px;
205
+ margin: 2px 0 10px 0;
206
+ }
css/admin_groups.css ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .advanced_toggle {
2
+ line-height: 34px;
3
+ font-size: 12px;
4
+ font-weight: bold;
5
+ padding-bottom: 10px;
6
+ }
7
+ .edit_group {
8
+ height: 50px;
9
+ }
10
+ .group_name {
11
+ font-size: 12px;
12
+ font-weight: bold;
13
+ }
14
+ .group_actions {
15
+ padding-top: 5px;
16
+ }
17
+
css/admin_options.css ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ .toggle {
2
+ cursor: pointer;
3
+ }
css/admin_reports.css ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .filter_toggle {
2
+ line-height: 34px;
3
+ font-size: 16px;
4
+ padding-bottom: 10px;
5
+ }
6
+
7
+ .filter_pane {
8
+ background-color: white;
9
+ border: 2px solid #777777;
10
+ height: 275px;
11
+ width: 600px;
12
+ padding-left: 20px;
13
+ padding-top: 10px;
14
+ }
15
+
16
+ div#my_chart {
17
+ height:300px;
18
+ margin-bottom:15px;
19
+ }
20
+
css/admin_shared.css ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .prli-shared-header {
2
+ font-size: 14px !important;
3
+ font-weight: bold !important;
4
+ float: right !important;
5
+ text-align: right !important;
6
+ padding-top: 0px !important;
7
+ padding-right: 10px !important;
8
+ display: block;
9
+ }
10
+
11
+ .prli-shared-header img.prli-icon {
12
+ width: 24px !important;
13
+ height: 24px !important;
14
+ }
15
+
16
+ ul.prli-social-button-checkboxes {
17
+ padding-top: 15px;
18
+ cursor: move;
19
+ }
20
+
21
+ ul.prli-social-button-checkboxes li {
22
+ display: inline-block;
23
+ margin-right: 5px;
24
+ padding: 10px;
25
+ width: 60px !important;
26
+ }
27
+
28
+ ul.prli-social-button-checkboxes.ui-sortable li {
29
+ width: 75px !important;
30
+ }
31
+
32
+ ul.prli-social-button-checkboxes li input,
33
+ ul.prli-social-button-checkboxes li img {
34
+ vertical-align: middle;
35
+ }
36
+
37
+ ul.prli-social-button-checkboxes i {
38
+ color: #FFFFFF !important;
39
+ font-size: 18px;
40
+ }
41
+
42
+ .pl-icon {
43
+ color: #666666;
44
+ font-size: 16px;
45
+ }
46
+
47
+ .pl-icon.pl-16 {
48
+ font-size: 16px !important;
49
+ }
50
+
51
+ .pl-icon.pl-18 {
52
+ font-size: 18px !important;
53
+ }
54
+
55
+ .pl-icon.pl-20 {
56
+ font-size: 20px !important;
57
+ }
58
+
59
+ .pl-icon.pl-22 {
60
+ font-size: 22px !important;
61
+ }
62
+
63
+ .pl-icon.pl-24 {
64
+ font-size: 24px !important;
65
+ }
66
+
67
+ .pl-icon.pl-32 {
68
+ font-size: 32px !important;
69
+ }
70
+
71
+ .pl-icon.pl-48 {
72
+ font-size: 48px !important;
73
+ }
74
+
75
+ .pl-icon.pl-64 {
76
+ font-size: 64px !important;
77
+ }
78
+
79
+ a i.pl-icon {
80
+ text-decoration: none;
81
+ }
82
+
83
+ a i.pl-icon:hover {
84
+ color: #aeaeae;
85
+ }
86
+
87
+ .prli-tooltip {
88
+ vertical-align: middle;
89
+ }
90
+
91
+ .prli-tooltip:hover i {
92
+ color: #aeaeae;
93
+ }
94
+
95
+ .prli-hidden {
96
+ display: none;
97
+ }
98
+
99
+ .updated.prli-updated {
100
+ margin-left: 0 !important;
101
+ padding: 10px;
102
+ margin-top: 10px;
103
+ width: 95%;
104
+ }
105
+
106
+ .prli_invalid {
107
+ border: 1px solid red !important;
108
+ }
109
+
110
+ img.prli_loader {
111
+ vertical-align:-2px;
112
+ display:none;
113
+ }
114
+
115
+ .prli_admin_branding {
116
+ /* background: url(../images/pl-logo-horiz-RGB.png) no-repeat; */
117
+ float: right !important;
118
+ padding-right: 25px !important;
119
+ height:32px !important;
120
+ width:200px !important;
121
+ background: url(../images/pl-logo-horiz-RGB.svg) no-repeat !important;
122
+ background-size: 200px 32px !important;
123
+ }
124
+
125
+ .tablenav .tablenav-pages a.disabled ,
126
+ .tablenav .tablenav-pages a.disabled:hover {
127
+ cursor:default;
128
+ background:#ccc;
129
+ border-color:#ccc;
130
+ color:#fff;
131
+ }
132
+
133
+ .prli-red {
134
+ color: red !important;
135
+ }
136
+
137
+ .prli-green {
138
+ color: green !important;
139
+ }
140
+
css/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
css/menu-styles.css ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+
3
+ .icon-pretty-link-logo:before {
4
+ /* content: "\e843"; */
5
+ content: "\e844";
6
+ }
7
+
8
+ #toplevel_page_pretty-link div.wp-menu-image img {
9
+ display: none;
10
+ }
11
+
12
+ #toplevel_page_pretty-link div.wp-menu-image:before {
13
+ /* content: "\e843"; */
14
+ content: "\e844";
15
+ font-family: "pretty-link";
16
+ }
17
+
18
+ /* For the menu items */
19
+ .prli-menu-red {
20
+ color: red !important;
21
+ }
22
+
23
+ .prli-menu-red:hover {
24
+ color: #01B8EE !important;
25
+ }
26
+
27
+ /* For the menu items */
28
+ .current .prli-menu-red {
29
+ color: white !important;
30
+ }
31
+
32
+ .prli-red-notice {
33
+ color: white;
34
+ box-sizing: border-box;
35
+ font-weight: 600;
36
+ background-color: #800020;
37
+ width: 98%;
38
+ padding: 15px 20px;
39
+ margin-top: 35px;
40
+ margin-bottom: 35px;
41
+ -webkit-border-radius: 5px;
42
+ -moz-border-radius: 5px;
43
+ border-radius: 5px;
44
+ background-color:#800020;
45
+ -webkit-box-shadow: #B3B3B3 5px 5px 5px;
46
+ -moz-box-shadow: #B3B3B3 5px 5px 5px;
47
+ box-shadow: #B3B3B3 5px 5px 5px;
48
+ }
49
+
50
+ .prli-red-notice h2 {
51
+ color: white;
52
+ }
53
+
54
+ .prli-red-notice a {
55
+ color: #ababab;
56
+ text-decoration: underline;
57
+ }
58
+
59
+ .prli-red-notice a:hover {
60
+ color: #dedede;
61
+ }
62
+
css/prli-admin-links.css CHANGED
@@ -72,3 +72,8 @@
72
  width: 100%;
73
  clear: none !important;
74
  }
 
 
 
 
 
72
  width: 100%;
73
  clear: none !important;
74
  }
75
+
76
+ .pl-list-icon {
77
+ font-size: 18px;
78
+ }
79
+
css/public_link.css ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body {
2
+ font-family: Arial;
3
+ text-align: center;
4
+ margin-top: 25px;
5
+ }
6
+
7
+ h4 {
8
+ font-size: 18px;
9
+ color: #aaaaaa;
10
+ }
11
+
12
+ h2 {
13
+ font-size: 24px;
14
+ font-weight: bold;
15
+ }
16
+
17
+ h2 a {
18
+ text-decoration: none;
19
+ color: #1f487e;
20
+ }
21
+
22
+ h2 a:hover {
23
+ text-decoration: none;
24
+ color: blue;
25
+ }
26
+
27
+ .clippy {
28
+ width: 132px !important;
29
+ padding-left: 84px;
30
+ }
31
+
css/settings_table.css ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ table.prli-settings-table {
2
+ margin: 15px 0;
3
+ padding: 0;
4
+ width: 98%;
5
+ border-spacing: 0;
6
+ border-collapse: collapse;
7
+ }
8
+
9
+ table.prli-settings-table td.prli-settings-table-nav {
10
+ background-color: #444444;
11
+ vertical-align: top;
12
+ padding: 0;
13
+ margin: 0;
14
+ }
15
+
16
+ table.prli-settings-table td.prli-settings-table-pages {
17
+ vertical-align: top;
18
+ padding: 0;
19
+ margin: 0;
20
+ }
21
+
22
+ table.prli-settings-table td.prli-settings-table-nav ul {
23
+ background-color: #444444;
24
+ width: 150px;
25
+ height: 100%;
26
+ min-height: 100%;
27
+ min-height: 100%;
28
+ vertical-align: top;
29
+ /* padding: 0 15px 30px 0; */
30
+ margin: 0;
31
+ color: white !important;
32
+ }
33
+
34
+ table.prli-settings-table td.prli-settings-table-nav ul li {
35
+ padding: 0;
36
+ margin: 0;
37
+ color: white !important;
38
+ }
39
+
40
+ table.prli-settings-table td.prli-settings-table-nav ul li a {
41
+ color: white !important;
42
+ background-color: #444444;
43
+ text-decoration: none;
44
+ padding: 15px 0 15px 15px;
45
+ margin: 0;
46
+ width: 100%;
47
+ display: block;
48
+ box-sizing: border-box;
49
+ }
50
+
51
+ table.prli-settings-table td.prli-settings-table-nav ul li a:hover {
52
+ background-color: #1a1a1a;
53
+ }
54
+
55
+ table.prli-settings-table td.prli-settings-table-nav ul li a.prli-active {
56
+ background-color: #0074A2;
57
+ font-weight: bold;
58
+ }
59
+
60
+ table.prli-settings-table input[type=number] {
61
+ width: 50px !important;
62
+ }
63
+
64
+ table.prli-settings-table td.prli-settings-table-pages {
65
+ width: 100%;
66
+ background-color: white;
67
+ vertical-align: top;
68
+ padding: 15px;
69
+ height: auto;
70
+ min-height: 650px;
71
+ margin-left: -3px;
72
+ }
73
+
74
+ table.prli-settings-table td.prli-settings-table-pages .prli-page {
75
+ display: none;
76
+ width: 100%;
77
+ }
78
+
79
+ table.prli-settings-table td.prli-settings-table-pages .prli-page .prli-page-title {
80
+ color: white;
81
+ background-color: #444444;
82
+ font-size: 24px;
83
+ padding: 15px;
84
+ width: auto;
85
+ margin-bottom: 15px;
86
+ }
87
+
88
+ .prli-sub-box {
89
+ background-color: #f1f1f1;
90
+ padding: 15px;
91
+ }
92
+
93
+ .prli-sub-box-white {
94
+ background-color: white;
95
+ padding: 15px;
96
+ }
97
+
98
+ table.prli-settings-table td.prli-settings-table-pages .prli-page input.prli-autoselect {
99
+ width: 100%;
100
+ }
101
+
102
+ label.prli-label {
103
+ font-weight: bold;
104
+ font-size: 14px;
105
+ color: #222;
106
+ }
107
+
108
+ .prli-arrow {
109
+ display: block !important;
110
+ background-repeat: no-repeat;
111
+ margin: 0 !important;
112
+ padding: 0 !important;
113
+ background-image: url(../images/settings_table/arrow_sprite.png);
114
+ width: 32px;
115
+ height: 32px;
116
+ }
117
+
118
+ .prli-arrow.prli-up, .prli-arrow.prli-down {
119
+ width: 16px;
120
+ height: 8px;
121
+ }
122
+
123
+ .prli-arrow.prli-right, .prli-arrow.prli-left {
124
+ width: 8px;
125
+ height: 16px;
126
+ }
127
+
128
+ .prli-arrow.prli-down.prli-darkgray { background-position: 0px 0px; }
129
+ .prli-arrow.prli-down.prli-gray { background-position: 0px -8px; }
130
+ .prli-arrow.prli-down.prli-white { background-position: 0px -16px; }
131
+
132
+ .prli-arrow.prli-right.prli-darkgray { background-position: 0px -24px; }
133
+ .prli-arrow.prli-right.prli-gray { background-position: -8px -24px; }
134
+ .prli-arrow.prli-right.prli-white { background-position: -16px -24px; }
135
+
136
+ .prli-arrow.prli-up.prli-darkgray { background-position: -24px -32px; }
137
+ .prli-arrow.prli-up.prli-gray { background-position: -24px -24px; }
138
+ .prli-arrow.prli-up.prli-white { background-position: -24px -16px; }
139
+
140
+ .prli-arrow.prli-left.prli-darkgray { background-position: -32px 0px; }
141
+ .prli-arrow.prli-left.prli-gray { background-position: -24px 0px; }
142
+ .prli-arrow.prli-left.prli-white { background-position: -16px 0px; }
143
+
144
+ .prli-sub-box-arrow { position: relative; top: -23px; left: 15px; }
145
+
146
+ table.prli-settings-table tr.prli-mobile-nav {
147
+ display: none;
148
+ }
149
+
150
+ @media screen and (max-width: 782px) {
151
+ table.prli-settings-table td.prli-settings-table-nav {
152
+ display: none;
153
+ position: absolute;
154
+ float: left;
155
+ z-index: 2;
156
+ }
157
+
158
+ table.prli-settings-table td.prli-settings-table-pages {
159
+ display: block;
160
+ margin-left: 0;
161
+ width: 95%;
162
+ }
163
+
164
+ table.prli-settings-table tr.prli-mobile-nav {
165
+ display: block;
166
+ padding: 0 !important;
167
+ width: 95% !important;
168
+ }
169
+
170
+ table.prli-settings-table tr.prli-mobile-nav td {
171
+ display: block;
172
+ padding: 0 !important;
173
+ width: 100% !important;
174
+ }
175
+
176
+ table.prli-settings-table tr.prli-mobile-nav td a.prli-toggle-nav {
177
+ font-size: 32px;
178
+ text-decoration: none;
179
+ font-weight: thin;
180
+ color: #F1F1F1;
181
+ background-color: #444444;
182
+ width: 100% !important;
183
+ display: block;
184
+ line-height: 50px;
185
+ padding: 0 15px;
186
+ }
187
+ }
188
+
css/simplegrid.css ADDED
@@ -0,0 +1,289 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Simple Grid
3
+ Learn More - http://dallasbass.com/simple-grid-a-lightweight-responsive-css-grid/
4
+ Project Page - http://thisisdallas.github.com/Simple-Grid/
5
+ Author - Dallas Bass
6
+ Site - dallasbass.com
7
+ */
8
+
9
+ *, *:after, *:before {
10
+ -webkit-box-sizing: border-box;
11
+ -moz-box-sizing: border-box;
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ body {
16
+ margin: 0px;
17
+ }
18
+
19
+ [class*='col-'] {
20
+ float: left;
21
+ padding-right: 20px; /* column-space */
22
+ }
23
+
24
+ .grid {
25
+ width: 100%;
26
+ /* max-width: 1140px; */
27
+ min-width: 755px;
28
+ margin: 0 auto;
29
+ overflow: hidden;
30
+ }
31
+
32
+ .grid:after {
33
+ content: "";
34
+ display: table;
35
+ clear: both;
36
+ }
37
+
38
+ .grid-pad {
39
+ padding-top: 20px;
40
+ padding-left: 0px; /* grid-space to left */
41
+ padding-right: 0px; /* grid-space to right: (grid-space-left - column-space) e.g. 20px-20px=0 */
42
+ }
43
+
44
+ .push-right {
45
+ float: right;
46
+ }
47
+
48
+ /* Content Columns */
49
+
50
+ .col-1-1 {
51
+ width: 100%;
52
+ }
53
+ .col-2-3, .col-8-12 {
54
+ width: 66.66%;
55
+ }
56
+
57
+ .col-1-2, .col-6-12 {
58
+ width: 50%;
59
+ }
60
+
61
+ .col-1-3, .col-4-12 {
62
+ width: 33.33%;
63
+ }
64
+
65
+ .col-1-4, .col-3-12 {
66
+ width: 25%;
67
+ }
68
+
69
+ .col-1-5 {
70
+ width: 20%;
71
+ }
72
+
73
+ .col-1-6, .col-2-12 {
74
+ width: 16.667%;
75
+ }
76
+
77
+ .col-1-7 {
78
+ width: 14.28%;
79
+ }
80
+
81
+ .col-1-8 {
82
+ width: 12.5%;
83
+ }
84
+
85
+ .col-1-9 {
86
+ width: 11.1%;
87
+ }
88
+
89
+ .col-1-10 {
90
+ width: 10%;
91
+ }
92
+
93
+ .col-1-11 {
94
+ width: 9.09%;
95
+ }
96
+
97
+ .col-1-12 {
98
+ width: 8.33%
99
+ }
100
+
101
+ /* Layout Columns */
102
+
103
+ .col-11-12 {
104
+ width: 91.66%
105
+ }
106
+
107
+ .col-10-12 {
108
+ width: 83.333%;
109
+ }
110
+
111
+ .col-9-12 {
112
+ width: 75%;
113
+ }
114
+
115
+ .col-5-12 {
116
+ width: 41.66%;
117
+ }
118
+
119
+ .col-7-12 {
120
+ width: 58.33%
121
+ }
122
+
123
+
124
+
125
+ /* Pushing blocks */
126
+
127
+ .push-2-3, .push-8-12 {
128
+ margin-left: 66.66%;
129
+ }
130
+
131
+ .push-1-2, .push-6-12 {
132
+ margin-left: 50%;
133
+ }
134
+
135
+ .push-1-3, .push-4-12 {
136
+ margin-left: 33.33%;
137
+ }
138
+
139
+ .push-1-4, .push-3-12 {
140
+ margin-left: 25%;
141
+ }
142
+
143
+ .push-1-5 {
144
+ margin-left: 20%;
145
+ }
146
+
147
+ .push-1-6, .push-2-12 {
148
+ margin-left: 16.667%;
149
+ }
150
+
151
+ .push-1-7 {
152
+ margin-left: 14.28%;
153
+ }
154
+
155
+ .push-1-8 {
156
+ margin-left: 12.5%;
157
+ }
158
+
159
+ .push-1-9 {
160
+ margin-left: 11.1%;
161
+ }
162
+
163
+ .push-1-10 {
164
+ margin-left: 10%;
165
+ }
166
+
167
+ .push-1-11 {
168
+ margin-left: 9.09%;
169
+ }
170
+
171
+ .push-1-12 {
172
+ margin-left: 8.33%
173
+ }
174
+
175
+
176
+ @media handheld, only screen and (max-width: 767px) {
177
+ .grid {
178
+ width: 100%;
179
+ min-width: 0;
180
+ margin-left: 0px;
181
+ margin-right: 0px;
182
+ padding-left: 20px; /* grid-space to left */
183
+ padding-right: 10px; /* grid-space to right: (grid-space-left - column-space) e.g. 20px-10px=10px */
184
+ }
185
+
186
+ [class*='col-'] {
187
+ width: auto;
188
+ float: none;
189
+ margin-left: 0px;
190
+ margin-right: 0px;
191
+ margin-top: 10px;
192
+ margin-bottom: 10px;
193
+ padding-left: 0px;
194
+ padding-right: 10px; /* column-space */
195
+ }
196
+
197
+
198
+ /* Mobile Layout */
199
+
200
+ [class*='mobile-col-'] {
201
+ float: left;
202
+ margin-left: 0px;
203
+ margin-right: 0px;
204
+ margin-top: 0px;
205
+ margin-bottom: 10px;
206
+ padding-left: 0px;
207
+ padding-right: 10px; /* column-space */
208
+ padding-bottom: 0px;
209
+ }
210
+
211
+ .mobile-col-1-1 {
212
+ width: 100%;
213
+ }
214
+ .mobile-col-2-3, .mobile-col-8-12 {
215
+ width: 66.66%;
216
+ }
217
+
218
+ .mobile-col-1-2, .mobile-col-6-12 {
219
+ width: 50%;
220
+ }
221
+
222
+ .mobile-col-1-3, .mobile-col-4-12 {
223
+ width: 33.33%;
224
+ }
225
+
226
+ .mobile-col-1-4, .mobile-col-3-12 {
227
+ width: 25%;
228
+ }
229
+
230
+ .mobile-col-1-5 {
231
+ width: 20%;
232
+ }
233
+
234
+ .mobile-col-1-6, .mobile-col-2-12 {
235
+ width: 16.667%;
236
+ }
237
+
238
+ .mobile-col-1-7 {
239
+ width: 14.28%;
240
+ }
241
+
242
+ .mobile-col-1-8 {
243
+ width: 12.5%;
244
+ }
245
+
246
+ .mobile-col-1-9 {
247
+ width: 11.1%;
248
+ }
249
+
250
+ .mobile-col-1-10 {
251
+ width: 10%;
252
+ }
253
+
254
+ .mobile-col-1-11 {
255
+ width: 9.09%;
256
+ }
257
+
258
+ .mobile-col-1-12 {
259
+ width: 8.33%
260
+ }
261
+
262
+ /* Layout Columns */
263
+
264
+ .mobile-col-11-12 {
265
+ width: 91.66%
266
+ }
267
+
268
+ .mobile-col-10-12 {
269
+ width: 83.333%;
270
+ }
271
+
272
+ .mobile-col-9-12 {
273
+ width: 75%;
274
+ }
275
+
276
+ .mobile-col-5-12 {
277
+ width: 41.66%;
278
+ }
279
+
280
+ .mobile-col-7-12 {
281
+ width: 58.33%
282
+ }
283
+
284
+ .hide-on-mobile {
285
+ display: none !important;
286
+ width: 0;
287
+ height: 0;
288
+ }
289
+ }
css/social_buttons.css ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ul.prli-social-buttons {
2
+ margin: 0 !important;
3
+ padding: 0 !important;
4
+ padding-top: 15px !important;
5
+ padding-bottom: 15px !important;
6
+ }
7
+
8
+ ul.prli-social-buttons li {
9
+ display: inline !important;
10
+ margin-right: 0 !important;
11
+ margin-left: 0 !important;
12
+ }
13
+
14
+ ul.prli-social-buttons i {
15
+ color: #FFFFFF !important;
16
+ font-size: 18px !important;
17
+ }
18
+
19
+ ul.prli-social-buttons a {
20
+ margin: 0 !important;
21
+ padding: 0 !important;
22
+ text-decoration: none !important;
23
+ padding: 10px 15px !important;
24
+ width: 100% !important;
25
+ height: 100% !important;
26
+ text-align: center !important;
27
+ }
28
+
29
+ .pl-social-facebook-button {
30
+ background-color: #3B5998 !important;
31
+ }
32
+
33
+ .pl-social-facebook-button:hover {
34
+ background-color: #4E69A2 !important;
35
+ border-bottom:5px solid #3B5998 !important;
36
+ }
37
+
38
+ .pl-social-twitter-button {
39
+ background-color: #00ACED !important;
40
+ }
41
+
42
+ .pl-social-twitter-button:hover {
43
+ background-color: #19B4EE !important;
44
+ border-bottom:5px solid #00ACED !important;
45
+ }
46
+
47
+ .pl-social-gplus-button {
48
+ background-color: #E74C3C !important;
49
+ }
50
+
51
+ .pl-social-gplus-button:hover {
52
+ background-color: #E95D4F !important;
53
+ border-bottom:5px solid #E74C3C !important;
54
+ }
55
+
56
+ .pl-social-pinterest-button {
57
+ background-color: #CB2027 !important;
58
+ }
59
+
60
+ .pl-social-pinterest-button:hover {
61
+ background-color: #D0363C !important;
62
+ border-bottom:5px solid #CB2027 !important;
63
+ }
64
+
65
+ .pl-social-linkedin-button {
66
+ background-color: #007FB1 !important;
67
+ }
68
+
69
+ .pl-social-linkedin-button:hover {
70
+ background-color: #198BB8 !important;
71
+ border-bottom:5px solid #007FB1 !important;
72
+ }
73
+
74
+ .pl-social-reddit-button {
75
+ background-color: #FF4500 !important;
76
+ }
77
+
78
+ .pl-social-reddit-button:hover {
79
+ background-color: #FF5719 !important;
80
+ border-bottom:5px solid #FF4500 !important;
81
+ }
82
+
83
+ .pl-social-stumbleupon-button {
84
+ background-color: #EB4924 !important;
85
+ }
86
+
87
+ .pl-social-stumbleupon-button:hover {
88
+ background-color: #ED5B39 !important;
89
+ border-bottom:5px solid #EB4924 !important;
90
+ }
91
+
92
+ .pl-social-digg-button {
93
+ background-color: #14589E !important;
94
+ }
95
+
96
+ .pl-social-digg-button:hover {
97
+ background-color: #2B68A7 !important;
98
+ border-bottom:5px solid #14589E !important;
99
+ }
100
+
101
+ .pl-social-email-button {
102
+ background-color: #787878 !important;
103
+ }
104
+
105
+ .pl-social-email-button:hover {
106
+ background-color: #858585 !important;
107
+ border-bottom:5px solid #787878 !important;
108
+ }
109
+
css/tinymce_form_popup.css ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #errors {
2
+ color:red;
3
+ margin-bottom:10px;
4
+ }
5
+
6
+ input[type="text"] {
7
+ font-size:13px;
8
+ height:18px;
9
+ width:350px;
10
+ }
11
+
12
+ select {
13
+ font-size:13px;
14
+ height:23px;
15
+ width:352px;
16
+ }
17
+
18
+ .prlitinymce-options label {
19
+ display:inline-block;
20
+ width:110px;
21
+ }
22
+
23
+ input[type="checkbox"] {
24
+ margin-left:0;
25
+ vertical-align:top;
26
+ height:14px;
27
+ width:14px;
28
+ }
29
+
30
+ .prlitinymce-options-row {
31
+ margin-bottom:10px;
32
+ }
33
+
34
+ .prlitinymce-hidden {
35
+ display:none;
36
+ }
37
+
38
+ #prlitinymce-good-slug {
39
+ color:green;
40
+ }
41
+
42
+ #prlitinymce-bad-slug {
43
+ color:red;
44
+ }
45
+
46
+ #prlitinymce-thinking,
47
+ #insert_loading {
48
+ vertical-align:middle;
49
+ }
50
+
51
+ /*Search Area*/
52
+ #prli_search_box {
53
+ margin-bottom:15px;
54
+ width:510px;
55
+ height:24px;
56
+ font-size:18px;
57
+ border:2px solid lightgrey;
58
+ border-radius:3px;
59
+ }
60
+
61
+ .lefty {
62
+ display:inline-block;
63
+ vertical-align:top;
64
+ }
65
+
66
+ .righty {
67
+ display:inline-block;
68
+ width:355px;
69
+ }
70
+
71
+ /* BUTTONS */
72
+ .prli_button {
73
+ background: #3498db;
74
+ background-image: -webkit-linear-gradient(top, #3498db, #2980b9);
75
+ background-image: -moz-linear-gradient(top, #3498db, #2980b9);
76
+ background-image: -ms-linear-gradient(top, #3498db, #2980b9);
77
+ background-image: -o-linear-gradient(top, #3498db, #2980b9);
78
+ background-image: linear-gradient(to bottom, #3498db, #2980b9);
79
+ -webkit-border-radius: 3;
80
+ -moz-border-radius: 3;
81
+ border-radius: 3px;
82
+ font-family: Arial;
83
+ color: #ffffff !important;
84
+ padding: 10px 20px 10px 20px;
85
+ text-decoration: none;
86
+ width:472px;
87
+ display:inline-block;
88
+ text-align:center;
89
+ margin-top:20px;
90
+ }
91
+
92
+ .prli_button:hover {
93
+ background: #3cb0fd;
94
+ background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db);
95
+ background-image: -moz-linear-gradient(top, #3cb0fd, #3498db);
96
+ background-image: -ms-linear-gradient(top, #3cb0fd, #3498db);
97
+ background-image: -o-linear-gradient(top, #3cb0fd, #3498db);
98
+ background-image: linear-gradient(to bottom, #3cb0fd, #3498db);
99
+ text-decoration: none;
100
+ }
i18n/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php /* Silence will fall */ ?>
i18n/pretty-link.pot CHANGED
@@ -1,2576 +1,4662 @@
1
- # Copyright (C) 2013 Pretty Link Lite
2
- # This file is distributed under the same license as the Pretty Link Lite package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Pretty Link Lite 1.6.5\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/pretty-link\n"
7
- "POT-Creation-Date: 2013-12-09 22:09:36+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2013-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
- #: classes/controllers/PrliAppController.php:47
16
- msgid ""
17
- "Database Upgrade is required for Pretty Link to work properly<br/>"
18
- "%1$sAutomatically Upgrade your Database%2$s"
19
  msgstr ""
20
 
21
- #: classes/controllers/PrliAppController.php:83
22
- msgid "Your Database Has Been Successfully Upgraded."
 
 
 
 
 
23
  msgstr ""
24
 
25
- #: classes/controllers/PrliGroupsController.php:17
26
- msgid "An unknown error occurred when creating your group."
27
  msgstr ""
28
 
29
- #: classes/controllers/PrliGroupsController.php:26
30
- msgid "Group Created"
31
  msgstr ""
32
 
33
- #: classes/controllers/PrliGroupsController.php:32
34
- msgid "A name must be specified for your new group name"
35
  msgstr ""
36
 
37
- #: classes/controllers/PrliGroupsController.php:36
38
- msgid "Cannot add group because security nonce failed"
39
  msgstr ""
40
 
41
- #: classes/controllers/PrliLinksController.php:65
42
- msgid "Links in Group: "
43
  msgstr ""
44
 
45
- #: classes/controllers/PrliLinksController.php:110
46
- #: classes/controllers/PrliLinksController.php:133
47
- msgid "Your Pretty Link was Successfully Created"
 
 
 
 
 
48
  msgstr ""
49
 
50
- #: classes/controllers/PrliLinksController.php:168
51
- msgid "Your Pretty Link was Successfully Updated"
52
  msgstr ""
53
 
54
- #: classes/controllers/PrliLinksController.php:183
55
- msgid "Your links were updated successfully"
56
  msgstr ""
57
 
58
- #: classes/controllers/PrliLinksController.php:200
59
- #: classes/controllers/PrliLinksController.php:239
60
- msgid "You are unauthorized to view this page."
61
  msgstr ""
62
 
63
- #: classes/controllers/PrliLinksController.php:206
64
- msgid "Your Pretty Link was Successfully Reset"
65
  msgstr ""
66
 
67
- #: classes/controllers/PrliLinksController.php:213
68
- msgid "Your Pretty Link was Successfully Destroyed"
 
69
  msgstr ""
70
 
71
- #: classes/controllers/PrliLinksController.php:226
72
- msgid "Your links were deleted successfully"
 
73
  msgstr ""
74
 
75
- #: classes/helpers/PrliLinksHelper.php:14 classes/views/prli-links/form.php:44
76
- #: pro/classes/views/prlipro-options/form.php:104
77
- #: pro/classes/views/prlipro-options/form.php:137
78
- #: pro/classes/views/prlipro-options/form.php:216
79
- #: pro/classes/views/prlipro-options/form.php:362 pro/pretty-link-pro.php:1548
80
- #: pro/prlipro-create-public-link-widget.php:68
81
- msgid "None"
82
  msgstr ""
83
 
84
- #: classes/helpers/PrliLinksHelper.php:38 classes/views/prli-links/form.php:8
85
- msgid "307 (Temporary)"
86
  msgstr ""
87
 
88
- #: classes/helpers/PrliLinksHelper.php:39 classes/views/prli-links/form.php:9
89
- msgid "301 (Permanent)"
90
  msgstr ""
91
 
92
- #: classes/helpers/PrliLinksHelper.php:49
93
- msgid "Bulk Actions"
 
 
 
94
  msgstr ""
95
 
96
- #: classes/helpers/PrliLinksHelper.php:50
97
- #: classes/views/prli-groups/list.php:64 classes/views/prli-links/list.php:187
98
- #: pro/classes/views/prli-reports/list.php:63
99
- msgid "Edit"
100
  msgstr ""
101
 
102
- #: classes/helpers/PrliLinksHelper.php:51
103
- #: classes/views/prli-groups/list.php:65 classes/views/prli-links/list.php:188
104
- #: pro/classes/views/prli-reports/list.php:64
105
- msgid "Delete"
106
  msgstr ""
107
 
108
- #: classes/helpers/PrliLinksHelper.php:53
109
- msgid "Are you sure you want to delete the selected links?"
110
  msgstr ""
111
 
112
- #: classes/helpers/PrliLinksHelper.php:53
113
- msgid "Apply"
114
  msgstr ""
115
 
116
- #: classes/helpers/PrliLinksHelper.php:63 classes/views/prli-links/list.php:88
117
- #: classes/views/prli-links/list.php:91
118
- msgid "- No Change -"
119
  msgstr ""
120
 
121
- #: classes/helpers/PrliLinksHelper.php:64
122
- msgid "Off"
123
  msgstr ""
124
 
125
- #: classes/helpers/PrliLinksHelper.php:65
126
- msgid "On"
127
  msgstr ""
128
 
129
- #: classes/models/PrliClick.php:235 pro/pretty-link-pro.php:170
130
- msgid "Pretty Link:"
131
  msgstr ""
132
 
133
- #: classes/models/PrliClick.php:235
134
- msgid "on"
135
  msgstr ""
136
 
137
- #: classes/models/PrliClick.php:235 pro/classes/models/PrliReport.php:449
138
- msgid "between"
139
  msgstr ""
140
 
141
- #: classes/models/PrliClick.php:235 pro/classes/models/PrliReport.php:282
142
- #: pro/classes/models/PrliReport.php:449
143
- msgid "and"
144
  msgstr ""
145
 
146
- #: classes/models/PrliClick.php:239
147
- msgid "Date"
148
  msgstr ""
149
 
150
- #: classes/models/PrliClick.php:239 classes/views/prli-clicks/list.php:6
151
- #: classes/views/prli-groups/list.php:67 classes/views/prli-links/list.php:191
152
- #: pro/classes/views/prli-reports/custom-report.php:31
153
- #: pro/classes/views/prli-reports/custom-report.php:64
154
- #: pro/classes/views/prli-reports/split-test-report.php:31
155
- #: pro/classes/views/prli-reports/split-test-report.php:64
156
- #: pro/pretty-link-pro.php:169
157
- msgid "Hits"
158
  msgstr ""
159
 
160
- #: classes/models/PrliLink.php:463
161
- msgid "Target URL can't be blank"
 
162
  msgstr ""
163
 
164
- #: classes/models/PrliLink.php:466
165
- msgid "Pretty Link can't be blank"
166
  msgstr ""
167
 
168
- #: classes/models/PrliLink.php:469
169
- msgid "Target URL must be different than the Pretty Link"
170
  msgstr ""
171
 
172
- #: classes/models/PrliLink.php:474
173
- msgid "Link URL must be a correctly formatted url"
 
174
  msgstr ""
175
 
176
- #: classes/models/PrliLink.php:477
177
- msgid ""
178
- "Pretty Link slugs must not contain question marks, ampersands or number "
179
- "signs."
180
  msgstr ""
181
 
182
- #: classes/models/PrliLink.php:480
183
- msgid "Pretty Link slugs must not end with a slash (\"/\")"
184
  msgstr ""
185
 
186
- #: classes/models/PrliLink.php:484
187
- msgid ""
188
- "This Pretty Link Slug is already taken. Check to make sure it isn't being "
189
- "used by another pretty link, post, page, category or tag slug. If none of "
190
- "these are true then check to see that this slug isn't the name of a file in "
191
- "the root folder of your wordpress install."
 
 
 
 
 
192
  msgstr ""
193
 
194
- #: classes/models/PrliLink.php:487
 
 
 
 
195
  msgid ""
196
- "If Custom Parameter Forwarding has been selected then you must specify a "
197
- "forwarding format."
198
  msgstr ""
199
 
200
- #: classes/models/PrliLink.php:490
201
  msgid ""
202
- "Your parameter forwarding must have at least one parameter specified in the "
203
- "format ex: <code>/%var1%/%var_two%/%varname3% ...</code>"
204
  msgstr ""
205
 
206
- #: classes/models/PrliUpdate.php:44
207
- msgid "Pretty Link Pro Username"
208
  msgstr ""
209
 
210
- #: classes/models/PrliUpdate.php:45
211
- msgid "Pretty Link Pro Password"
212
  msgstr ""
213
 
214
- #: classes/models/PrliUpdate.php:46
215
- msgid "Your Pretty Link Pro Username or Password was Invalid"
216
  msgstr ""
217
 
218
- #: classes/models/PrliUpdate.php:153
219
- msgid ""
220
- "Your Username & Password was accepted<br/>Now you can %1$sUpgrade "
221
- "Automatically!%2$s"
222
  msgstr ""
223
 
224
- #: classes/models/PrliUpdate.php:163
225
- msgid ""
226
- "Your Username & Password was accepted<br/>Now you can %1$sGet Started!%2$s"
227
  msgstr ""
228
 
229
- #: classes/models/PrliUpdate.php:173 classes/views/shared/errors.php:12
230
- #: pro/classes/views/prlipro-public/form.php:24
231
- msgid "ERROR"
232
  msgstr ""
233
 
234
- #: classes/models/PrliUpdate.php:208
235
- #: pro/classes/views/prlipro-options/form.php:423
236
- msgid "Save"
237
  msgstr ""
238
 
239
- #: classes/views/prli-clicks/list.php:7
240
- msgid "For"
241
  msgstr ""
242
 
243
- #: classes/views/prli-clicks/list.php:13
244
- #: pro/classes/views/prli-reports/custom-report.php:12
245
- #: pro/classes/views/prli-reports/split-test-report.php:12
246
- msgid "Customize Report"
247
  msgstr ""
248
 
249
- #: classes/views/prli-clicks/list.php:19
250
- #: pro/classes/views/prli-reports/split-test-report.php:12
251
- msgid "Back to Links"
 
 
 
 
 
 
252
  msgstr ""
253
 
254
- #: classes/views/prli-clicks/list.php:21
255
- msgid "Back to Hits"
 
 
 
 
 
 
 
256
  msgstr ""
257
 
258
- #: classes/views/prli-clicks/list.php:31
259
- msgid "Type:"
 
 
 
 
 
 
 
260
  msgstr ""
261
 
262
- #: classes/views/prli-clicks/list.php:33
263
- msgid "All Hits"
264
  msgstr ""
265
 
266
- #: classes/views/prli-clicks/list.php:34
267
- msgid "Unique Hits"
 
268
  msgstr ""
269
 
270
- #: classes/views/prli-clicks/list.php:38
271
- #: pro/classes/views/prli-reports/custom-report.php:16
272
- #: pro/classes/views/prli-reports/split-test-report.php:16
273
- msgid "Date Range:"
274
  msgstr ""
275
 
276
- #: classes/views/prli-clicks/list.php:40
277
- msgid "to"
278
  msgstr ""
279
 
280
- #: classes/views/prli-clicks/list.php:44 classes/views/prli-clicks/list.php:68
281
- #: classes/views/prli-groups/edit.php:59 classes/views/prli-groups/list.php:22
282
- #: classes/views/prli-groups/new.php:62 classes/views/prli-links/edit.php:23
283
- #: classes/views/prli-links/new.php:23
284
- #: pro/classes/views/prli-reports/custom-report.php:22
285
- #: pro/classes/views/prli-reports/list.php:20
286
- #: pro/classes/views/prli-reports/new.php:118
287
- msgid "or"
288
  msgstr ""
289
 
290
- #: classes/views/prli-clicks/list.php:44 classes/views/prli-groups/edit.php:59
291
- #: classes/views/prli-groups/new.php:62 classes/views/prli-links/edit.php:23
292
- #: classes/views/prli-links/list.php:104 classes/views/prli-links/new.php:23
293
- #: pro/classes/views/prli-reports/custom-report.php:22
294
- #: pro/classes/views/prli-reports/edit.php:117
295
- #: pro/classes/views/prli-reports/new.php:118
296
- msgid "Cancel"
297
  msgstr ""
298
 
299
- #: classes/views/prli-clicks/list.php:68 classes/views/prli-groups/list.php:22
300
- #: classes/views/prli-links/list.php:35 classes/views/prli-links/list.php:189
301
- #: pro/classes/views/prli-reports/list.php:20
302
- msgid "Reset"
303
  msgstr ""
304
 
305
- #: classes/views/prli-clicks/list.php:79
306
- #: classes/views/prli-clicks/list.php:147
307
- msgid "Browser"
308
  msgstr ""
309
 
310
- #: classes/views/prli-clicks/list.php:83
311
- #: classes/views/prli-clicks/list.php:149
312
- msgid "IP"
313
  msgstr ""
314
 
315
- #: classes/views/prli-clicks/list.php:87
316
- #: classes/views/prli-clicks/list.php:151
317
- msgid "Visitor"
 
 
 
318
  msgstr ""
319
 
320
- #: classes/views/prli-clicks/list.php:91
321
- #: classes/views/prli-clicks/list.php:153
322
- msgid "Timestamp"
323
  msgstr ""
324
 
325
- #: classes/views/prli-clicks/list.php:95
326
- #: classes/views/prli-clicks/list.php:155
327
- msgid "Host"
328
  msgstr ""
329
 
330
- #: classes/views/prli-clicks/list.php:99
331
- #: classes/views/prli-clicks/list.php:157
332
- msgid "URI"
333
  msgstr ""
334
 
335
- #: classes/views/prli-clicks/list.php:102
336
- #: classes/views/prli-clicks/list.php:158
337
- msgid "Referrer"
338
  msgstr ""
339
 
340
- #: classes/views/prli-clicks/list.php:105
341
- #: classes/views/prli-clicks/list.php:159
342
- msgid "Link"
343
  msgstr ""
344
 
345
- #: classes/views/prli-clicks/list.php:115
346
- msgid "No Hits have been recorded yet"
 
347
  msgstr ""
348
 
349
- #: classes/views/prli-clicks/list.php:164
350
- msgid "Download CSV"
351
  msgstr ""
352
 
353
- #: classes/views/prli-dashboard-widget/widget.php:3
354
- msgid "Add a Pretty Link from your Dashboard:"
355
  msgstr ""
356
 
357
- #: classes/views/prli-dashboard-widget/widget.php:11
358
- msgid "Target URL"
 
359
  msgstr ""
360
 
361
- #: classes/views/prli-dashboard-widget/widget.php:15 prli-main.php:20
362
- msgid "Pretty Link"
363
  msgstr ""
364
 
365
- #: classes/views/prli-groups/edit.php:7
366
- msgid "Edit Group"
367
  msgstr ""
368
 
369
- #: classes/views/prli-groups/edit.php:20
370
- #: pro/classes/views/prli-reports/edit.php:20
371
- msgid "Name:"
372
  msgstr ""
373
 
374
- #: classes/views/prli-groups/edit.php:22 classes/views/prli-groups/new.php:24
375
- msgid "This is how you'll identify your Group."
376
  msgstr ""
377
 
378
- #: classes/views/prli-groups/edit.php:25 classes/views/prli-groups/new.php:27
379
- msgid "Description:"
380
  msgstr ""
381
 
382
- #: classes/views/prli-groups/edit.php:27 classes/views/prli-groups/new.php:29
383
- msgid "A Description of this group."
384
  msgstr ""
385
 
386
- #: classes/views/prli-groups/edit.php:30 classes/views/prli-groups/new.php:32
387
- msgid "Links:"
388
  msgstr ""
389
 
390
- #: classes/views/prli-groups/edit.php:35 classes/views/prli-groups/list.php:39
391
- #: classes/views/prli-groups/list.php:79 classes/views/prli-groups/new.php:37
392
- #: classes/views/prli-links/list.php:63 classes/views/prli-links/list.php:232
393
- #: pro/classes/views/prli-links/form.php:61
394
- #: pro/classes/views/prli-reports/edit.php:93
395
- #: pro/classes/views/prli-reports/list.php:37
396
- #: pro/classes/views/prli-reports/list.php:78
397
- #: pro/classes/views/prli-reports/new.php:93
398
- msgid "Name"
399
  msgstr ""
400
 
401
- #: classes/views/prli-groups/edit.php:36 classes/views/prli-groups/new.php:38
402
- msgid "Current Group"
403
  msgstr ""
404
 
405
- #: classes/views/prli-groups/edit.php:53 classes/views/prli-groups/new.php:55
406
- msgid ""
407
- "Select some links for this group. <strong>Note: each link can only be in one "
408
- "group at a time.</strong>"
409
  msgstr ""
410
 
411
- #: classes/views/prli-groups/list.php:9
412
- msgid "Groups"
413
  msgstr ""
414
 
415
- #: classes/views/prli-groups/list.php:30
416
- msgid "Add a Pretty Link Group"
417
  msgstr ""
418
 
419
- #: classes/views/prli-groups/list.php:40 classes/views/prli-groups/list.php:66
420
- #: classes/views/prli-groups/list.php:80 classes/views/prli-links/list.php:10
421
- #: classes/views/prli-links/list.php:68 classes/views/prli-links/list.php:237
422
- #: pro/classes/views/prli-reports/list.php:39
423
- #: pro/classes/views/prli-reports/list.php:80
424
- msgid "Links"
425
  msgstr ""
426
 
427
- #: classes/views/prli-groups/list.php:41 classes/views/prli-groups/list.php:81
428
- #: classes/views/prli-links/list.php:67 classes/views/prli-links/list.php:236
429
- #: pro/classes/views/prli-reports/list.php:40
430
- #: pro/classes/views/prli-reports/list.php:81
431
- msgid "Created"
432
  msgstr ""
433
 
434
- #: classes/views/prli-groups/list.php:50
435
- msgid "No Pretty Link Groups were found"
436
  msgstr ""
437
 
438
- #: classes/views/prli-groups/new.php:9
439
- msgid "New Group"
 
 
440
  msgstr ""
441
 
442
- #: classes/views/prli-groups/new.php:22
443
- #: pro/classes/views/prli-reports/new.php:20
444
- msgid "Name*:"
445
  msgstr ""
446
 
447
- #: classes/views/prli-links/edit.php:7
448
- msgid "Edit Link"
449
  msgstr ""
450
 
451
- #: classes/views/prli-links/form.php:5
452
- msgid "Redirection Type*:"
453
  msgstr ""
454
 
455
- #: classes/views/prli-links/form.php:16
456
- msgid ""
457
- "To Enable Cloaked, Meta-Refresh, Javascript, Pixel and Pretty Bar "
458
- "Redirection, upgrade to %sPretty Link Pro%s"
459
  msgstr ""
460
 
461
- #: classes/views/prli-links/form.php:21
462
- msgid "Target URL*:"
463
  msgstr ""
464
 
465
- #: classes/views/prli-links/form.php:25
466
- msgid "Pretty Link*:"
467
  msgstr ""
468
 
469
- #: classes/views/prli-links/form.php:29
470
- msgid "Title:"
471
  msgstr ""
472
 
473
- #: classes/views/prli-links/form.php:35 classes/views/prli-options/form.php:7
474
- #: pro/classes/views/prlipro-options/form.php:7
475
- msgid "Options"
476
  msgstr ""
477
 
478
- #: classes/views/prli-links/form.php:36 classes/views/prli-options/form.php:51
479
- msgid "Advanced"
480
  msgstr ""
481
 
482
- #: classes/views/prli-links/form.php:41 classes/views/prli-links/list.php:66
483
- #: classes/views/prli-links/list.php:90 classes/views/prli-links/list.php:235
484
- #: pro/classes/views/prli-links/form.php:62
485
- #: pro/classes/views/prli-reports/edit.php:94
486
- #: pro/classes/views/prli-reports/new.php:94
487
- msgid "Group"
488
  msgstr ""
489
 
490
- #: classes/views/prli-links/form.php:54
491
- #: pro/classes/views/prlipro-options/form.php:113
492
- #: pro/classes/views/prlipro-options/form.php:146
493
- msgid "Add a New Group"
494
  msgstr ""
495
 
496
- #: classes/views/prli-links/form.php:55
497
- msgid "Select a Group for this Link"
 
498
  msgstr ""
499
 
500
- #: classes/views/prli-links/form.php:58
501
- msgid "SEO Options"
 
502
  msgstr ""
503
 
504
- #: classes/views/prli-links/form.php:60
505
- msgid "'Nofollow' this Link"
506
  msgstr ""
507
 
508
- #: classes/views/prli-links/form.php:61
509
- msgid "Add a nofollow and noindex to this link's http redirect header"
510
  msgstr ""
511
 
512
- #: classes/views/prli-links/form.php:65
513
- msgid "Delay Redirect (Seconds):"
514
  msgstr ""
515
 
516
- #: classes/views/prli-links/form.php:68
517
- msgid "Time in seconds to wait before redirecting"
518
  msgstr ""
519
 
520
- #: classes/views/prli-links/form.php:73
521
- msgid "Parameter Forwarding"
 
 
522
  msgstr ""
523
 
524
- #: classes/views/prli-links/form.php:75
525
- msgid "Parameter Forwarding Enabled"
526
  msgstr ""
527
 
528
- #: classes/views/prli-links/form.php:76
529
- msgid "Forward parameters passed to this link onto the Target URL"
 
 
 
 
530
  msgstr ""
531
 
532
- #: classes/views/prli-links/form.php:78
533
- msgid "Tracking Options"
534
  msgstr ""
535
 
536
- #: classes/views/prli-links/form.php:80
537
- msgid "Track Hits on this Link"
538
  msgstr ""
539
 
540
- #: classes/views/prli-links/form.php:81
541
- msgid "Enable Pretty Link's built-in hit (click) tracking"
542
  msgstr ""
543
 
544
- #: classes/views/prli-links/form.php:83
545
- msgid "Enable Google Analytics Tracking on this Link"
 
546
  msgstr ""
547
 
548
- #: classes/views/prli-links/form.php:84
549
- #: pro/classes/views/prli-links/link-options.php:3
550
  msgid ""
551
- "Requires the Google Analyticator, Google Analytics for WordPress or Google "
552
- "Analytics Plugin installed and configured for this to work."
553
  msgstr ""
554
 
555
- #: classes/views/prli-links/form.php:90
556
  msgid ""
557
- "It appears that <strong>%s</strong> is currently installed. Pretty Link will "
558
- "attempt to use its settings to track this link."
559
  msgstr ""
560
 
561
- #: classes/views/prli-links/form.php:94
562
  msgid ""
563
- "No Google Analytics Plugin is currently installed. Pretty Link cannot track "
564
- "links using Google Analytics until one is."
565
  msgstr ""
566
 
567
- #: classes/views/prli-links/form.php:115
568
  msgid ""
569
- "To enable Double Redirection, Keyword Replacements, URL Replacements, URL "
570
- "Rotations, Split Tests, and more, %sUpgrade to Pretty Link Pro%s today!"
571
  msgstr ""
572
 
573
- #: classes/views/prli-links/list.php:18
574
- msgid ""
575
- "WordPress Must be Configured:</strong> Pretty Link won't work until you "
576
- "select a Permalink Structure other than 'Default'"
577
  msgstr ""
578
 
579
- #: classes/views/prli-links/list.php:18 classes/views/prli-options/form.php:14
580
- msgid "Permalink Settings"
 
 
581
  msgstr ""
582
 
583
- #: classes/views/prli-links/list.php:43
584
- msgid "Add a Pretty Link"
 
 
585
  msgstr ""
586
 
587
- #: classes/views/prli-links/list.php:44
588
- msgid "Watch Pretty Link Intro Video"
 
 
 
589
  msgstr ""
590
 
591
- #: classes/views/prli-links/list.php:54
592
- msgid "Back to Groups"
 
 
593
  msgstr ""
594
 
595
- #: classes/views/prli-links/list.php:65 classes/views/prli-links/list.php:234
596
- msgid "Hits / Uniq"
 
 
597
  msgstr ""
598
 
599
- #: classes/views/prli-links/list.php:79
600
- msgid "Bulk Edit"
601
  msgstr ""
602
 
603
- #: classes/views/prli-links/list.php:86
604
- msgid "Basic Link Options"
605
  msgstr ""
606
 
607
- #: classes/views/prli-links/list.php:87
608
- msgid "Redirect Type"
609
  msgstr ""
610
 
611
- #: classes/views/prli-links/list.php:93
612
- msgid "Track"
613
  msgstr ""
614
 
615
- #: classes/views/prli-links/list.php:95
616
- msgid "Nofollow"
617
  msgstr ""
618
 
619
- #: classes/views/prli-links/list.php:97
620
- msgid "Forward Params"
621
  msgstr ""
622
 
623
- #: classes/views/prli-links/list.php:105
624
- msgid "Update"
625
  msgstr ""
626
 
627
- #: classes/views/prli-links/list.php:105
628
- msgid "Bulk Update"
629
  msgstr ""
630
 
631
- #: classes/views/prli-links/list.php:116
632
- msgid "Watch this video to see how to get started!"
633
  msgstr ""
634
 
635
- #: classes/views/prli-links/list.php:116
636
- msgid "Get More Video Tutorials like this one"
637
  msgstr ""
638
 
639
- #: classes/views/prli-links/list.php:144
640
- msgid "Meta Refresh Redirection"
641
  msgstr ""
642
 
643
- #: classes/views/prli-links/list.php:147
644
- msgid "Javascript Redirection"
 
 
645
  msgstr ""
646
 
647
- #: classes/views/prli-links/list.php:197
648
- msgid "Tweet"
649
  msgstr ""
650
 
651
- #: classes/views/prli-links/list.php:198
652
- msgid "Email"
653
  msgstr ""
654
 
655
- #: classes/views/prli-links/list.php:221
656
- msgid "Target URL:"
 
 
 
657
  msgstr ""
658
 
659
- #: classes/views/prli-links/new.php:7
660
- msgid "Add Link"
661
  msgstr ""
662
 
663
- #: classes/views/prli-options/form.php:14
664
- msgid "WordPress Must be Configured:"
665
  msgstr ""
666
 
667
- #: classes/views/prli-options/form.php:14
668
  msgid ""
669
- "Pretty Link won't work until you select a Permalink Structure other than "
670
- "'Default'"
 
671
  msgstr ""
672
 
673
- #: classes/views/prli-options/form.php:19
674
- #: pro/classes/views/prlipro-options/form.php:9
675
- msgid "Pretty Link Admin"
676
  msgstr ""
677
 
678
- #: classes/views/prli-options/form.php:25
679
- msgid "Link Options"
680
  msgstr ""
681
 
682
- #: classes/views/prli-options/form.php:28
683
- msgid "Link Defaults:"
684
  msgstr ""
685
 
686
- #: classes/views/prli-options/form.php:29
687
- msgid "Track Link"
688
  msgstr ""
689
 
690
- #: classes/views/prli-options/form.php:30
691
- msgid "Default all new links to be tracked."
 
692
  msgstr ""
693
 
694
- #: classes/views/prli-options/form.php:33
695
- msgid "Add <code>nofollow</code> to Link"
696
  msgstr ""
697
 
698
- #: classes/views/prli-options/form.php:34
699
- msgid "Add the <code>nofollow</code> attribute by default to new links."
 
700
  msgstr ""
701
 
702
- #: classes/views/prli-options/form.php:37
703
- msgid "Use a prefix from your Permalink structure in your Pretty Links"
704
  msgstr ""
705
 
706
- #: classes/views/prli-options/form.php:38
707
- msgid ""
708
- "This option should only be checked if you have elements in your permalink "
709
- "structure that must be present in any link on your site. For example, some "
710
- "WordPress installs don't have the benefit of full rewrite capabilities and "
711
- "in this case you'd need an index.php included in each link (http://example."
712
- "com/index.php/mycoolslug instead of http://example.com/mycoolslug). If this "
713
- "is the case for you then check this option but the vast majority of users "
714
- "will want to keep this unchecked."
715
  msgstr ""
716
 
717
- #: classes/views/prli-options/form.php:41
718
- msgid "Default Link Redirection Type:"
719
  msgstr ""
720
 
721
- #: classes/views/prli-options/form.php:43
722
- msgid "Temporary (307)"
723
  msgstr ""
724
 
725
- #: classes/views/prli-options/form.php:44
726
- msgid "Permanent (301)"
727
  msgstr ""
728
 
729
- #: classes/views/prli-options/form.php:47
730
- msgid ""
731
- "Select the type of redirection you want your newly created links to have."
732
  msgstr ""
733
 
734
- #: classes/views/prli-options/form.php:52
735
- msgid "WordPress Redirection Action:"
736
  msgstr ""
737
 
738
- #: classes/views/prli-options/form.php:54
739
- msgid "WordPress 'init' Action"
740
  msgstr ""
741
 
742
- #: classes/views/prli-options/form.php:55
743
- msgid "WordPress 'template_redirect' Action"
744
  msgstr ""
745
 
746
- #: classes/views/prli-options/form.php:57
747
- msgid ""
748
- "Defaults to use WordPress' 'init' action. Init works more reliably for many "
749
- "users but the better option for performance and compatibility is to use the "
750
- "'template_redirect' action."
751
  msgstr ""
752
 
753
- #: classes/views/prli-options/form.php:61
754
- msgid "Reporting Options"
755
  msgstr ""
756
 
757
- #: classes/views/prli-options/form.php:64
758
- msgid "Excluded IP Addresses:"
 
 
759
  msgstr ""
760
 
761
- #: classes/views/prli-options/form.php:67
762
- msgid ""
763
- "Enter IP Addresses or IP Ranges you want to exclude from your Hit data and "
764
- "Stats. Each IP Address should be separated by commas. Example: "
765
- "<code>192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168.*.*</code>"
766
  msgstr ""
767
 
768
- #: classes/views/prli-options/form.php:68
769
- msgid "Your Current IP Address is"
770
  msgstr ""
771
 
772
- #: classes/views/prli-options/form.php:73
773
- msgid "Filter Robots"
774
  msgstr ""
775
 
776
- #: classes/views/prli-options/form.php:74
777
- msgid ""
778
- "Filter known Robots and unidentifiable browser clients from your hit data, "
779
- "stats and reports. <code>IMPORTANT: Any robot hits recorded with any version "
780
- "of Pretty Link before 1.4.22 won't be filtered by this setting.</code>"
781
  msgstr ""
782
 
783
- #: classes/views/prli-options/form.php:77
784
- msgid "Whitelist IP Addresses:"
785
  msgstr ""
786
 
787
- #: classes/views/prli-options/form.php:80
788
- msgid ""
789
- "Enter IP Addresses or IP Ranges you want to always include in your Hit data "
790
- "and Stats even if they are flagged as robots. Each IP Address should be "
791
- "separated by commas. Example: <code>192.168.0.1, 192.168.2.1, 192.168.3.4 or "
792
- "192.168.*.*</code>"
793
  msgstr ""
794
 
795
- #: classes/views/prli-options/form.php:88
796
- msgid "Tracking Style:"
797
  msgstr ""
798
 
799
- #: classes/views/prli-options/form.php:88
800
- msgid ""
801
- "Note: Changing your tracking style can affect the accuracy of your existing "
802
- "statistics."
803
  msgstr ""
804
 
805
- #: classes/views/prli-options/form.php:92
806
- msgid "Normal Tracking"
807
  msgstr ""
808
 
809
- #: classes/views/prli-options/form.php:95
810
- msgid "Extended Tracking (more stats / slower performance)"
811
  msgstr ""
812
 
813
- #: classes/views/prli-options/form.php:98
814
- msgid "Simple Click Count Tracking (less stats / faster performance)"
815
  msgstr ""
816
 
817
- #: classes/views/prli-options/form.php:107
818
- msgid "Update Options"
 
819
  msgstr ""
820
 
821
- #: classes/views/prli-options/form.php:111
822
- msgid "Trim Hit Database"
823
  msgstr ""
824
 
825
- #: classes/views/prli-options/form.php:114
826
- msgid ""
827
- "***WARNING*** If you click OK you will delete ALL of the Hit data that is "
828
- "older than 30 days. Your data will be gone forever -- no way to retreive it. "
829
- "Do not click OK unless you are absolutely sure you want to delete this data "
830
- "because there is no going back!"
831
  msgstr ""
832
 
833
- #: classes/views/prli-options/form.php:114
834
- msgid "Delete Hits older than 30 days"
835
  msgstr ""
836
 
837
- #: classes/views/prli-options/form.php:115
838
- msgid "This will clear all hits in your database that are older than 30 days."
 
 
839
  msgstr ""
840
 
841
- #: classes/views/prli-options/form.php:117
842
- msgid ""
843
- "***WARNING*** If you click OK you will delete ALL of the Hit data that is "
844
- "older than 90 days. Your data will be gone forever -- no way to retreive it. "
845
- "Do not click OK unless you are absolutely sure you want to delete this data "
846
- "because there is no going back!"
847
  msgstr ""
848
 
849
- #: classes/views/prli-options/form.php:117
850
- msgid "Delete Hits older than 90 days"
 
851
  msgstr ""
852
 
853
- #: classes/views/prli-options/form.php:118
854
- msgid "This will clear all hits in your database that are older than 90 days."
855
  msgstr ""
856
 
857
- #: classes/views/prli-options/form.php:121
858
- msgid ""
859
- "***WARNING*** If you click OK you will delete ALL of the Hit data in your "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
860
  "Database. Your data will be gone forever -- no way to retreive it. Do not "
861
  "click OK unless you are absolutely sure you want to delete all your data "
862
  "because there is no going back!"
863
  msgstr ""
864
 
865
- #: classes/views/prli-options/form.php:121
866
- msgid "Delete All Hits"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
867
  msgstr ""
868
 
869
- #: classes/views/prli-options/form.php:122
870
  msgid ""
871
- "Seriously, only click this link if you want to delete all the Hit data in "
872
- "your database."
 
873
  msgstr ""
874
 
875
- #: classes/views/prli-options/pro-settings.php:7
876
- msgid "Pro Account Information"
877
  msgstr ""
878
 
879
- #: classes/views/prli-options/pro-settings.php:9
880
- msgid "Pretty Link Pro Account Information"
881
  msgstr ""
882
 
883
- #: classes/views/prli-options/pro-settings.php:11
884
- #: pro/classes/views/prli-reports/list.php:28
885
- #: pro/classes/views/prlipro-import-export/form.php:8
886
- #: pro/classes/views/prlipro-options/form.php:9
887
- msgid "User Manual"
 
 
 
888
  msgstr ""
889
 
890
- #: classes/views/prli-options/pro-settings.php:15
891
- msgid "Pretty Link Pro is Installed"
892
  msgstr ""
893
 
894
- #: classes/views/prli-options/pro-settings.php:15
895
  msgid ""
896
- "Are you sure you want to Un-Install Pretty Link Pro? This will delete your "
897
- "pro username & password from your local database, remove all the pro "
898
- "software but will leave all your data intact incase you want to reinstall "
899
- "sometime :) ..."
900
  msgstr ""
901
 
902
- #: classes/views/prli-options/pro-settings.php:15
903
- msgid "Downgrade to Pretty Link Standard"
904
  msgstr ""
905
 
906
- #: classes/views/prli-options/pro-settings.php:15
907
- msgid "Edit/Update Your Profile:"
908
  msgstr ""
909
 
910
- #: classes/views/prli-options/pro-settings.php:15
911
  msgid ""
912
- "Use your account username and password to log in to your Account and "
913
- "Affiliate Control Panel"
 
 
 
 
914
  msgstr ""
915
 
916
- #: classes/views/prli-options/pro-settings.php:15
917
- msgid "Account"
918
  msgstr ""
919
 
920
- #: classes/views/prli-options/pro-settings.php:15
921
- msgid "Affiliate Control Panel"
 
 
 
 
 
 
922
  msgstr ""
923
 
924
- #: classes/views/prli-options/pro-settings.php:18
925
- msgid "Ready to take your marketing efforts to the next level?"
926
  msgstr ""
927
 
928
- #: classes/views/prli-options/pro-settings.php:19 pro/prlipro-hooks.php:25
929
- #: pro/prlipro-hooks.php:35
930
- msgid "Pretty Link Pro"
931
  msgstr ""
932
 
933
- #: classes/views/prli-options/pro-settings.php:19
934
  msgid ""
935
- "will help you automate, share, test and get more clicks and conversions from "
936
- "your Pretty Links!"
 
 
 
 
 
 
937
  msgstr ""
938
 
939
- #: classes/views/prli-options/pro-settings.php:19
940
- msgid "Learn More"
941
  msgstr ""
942
 
943
- #: classes/views/prli-tools/bookmarklet.php:19
944
- msgid "Here's your Pretty Link"
 
 
 
 
 
 
945
  msgstr ""
946
 
947
- #: classes/views/prli-tools/bookmarklet.php:61
948
- msgid "here's your pretty link for:"
949
  msgstr ""
950
 
951
- #: classes/views/prli-tools/bookmarklet.php:63
952
- #: pro/classes/views/prlipro-public/display.php:44
953
- msgid "send this link to:"
 
954
  msgstr ""
955
 
956
- #: classes/views/prli-tools/bookmarklet.php:81
957
- msgid "back"
958
  msgstr ""
959
 
960
- #: classes/views/prli-tools/form.php:17
961
- msgid "Tools"
962
  msgstr ""
963
 
964
- #: classes/views/prli-tools/form.php:18
965
- msgid "Bookmarklet:"
966
  msgstr ""
967
 
968
- #: classes/views/prli-tools/form.php:19 pro/pretty-link-pro.php:1516
969
- msgid "Get PrettyLink"
970
  msgstr ""
971
 
972
- #: classes/views/prli-tools/form.php:20
973
  msgid ""
974
- "Just drag this \"Get PrettyLink\" link to your toolbar to install the "
975
- "bookmarklet. As you browse the web, you can just click this bookmarklet to "
976
- "create a pretty link from the current url you're looking at. <a href="
977
- "\"http://blairwilliams.com/pretty-link-bookmarklet/\">(more help)</a>"
978
  msgstr ""
979
 
980
- #: classes/views/prli-tools/form.php:21
981
- msgid "Show iPhone Bookmarklet Instructions"
982
  msgstr ""
983
 
984
- #: classes/views/prli-tools/form.php:22
985
- msgid ""
986
- "<strong>Note:</strong> iPhone users can install this bookmarklet in their "
987
- "Safari to create Pretty Links with the following steps:"
988
  msgstr ""
989
 
990
- #: classes/views/prli-tools/form.php:24
991
- msgid "Copy this text:"
992
  msgstr ""
993
 
994
- #: classes/views/prli-tools/form.php:25
995
- msgid "Tap the + button at the bottom of the screen"
996
  msgstr ""
997
 
998
- #: classes/views/prli-tools/form.php:26
999
  msgid ""
1000
- "Choose \"Add Bookmark\", rename your bookmark to \"Get PrettyLink\" (or "
1001
- "whatever you want) and then \"Save\""
1002
  msgstr ""
1003
 
1004
- #: classes/views/prli-tools/form.php:27
1005
- msgid ""
1006
- "Navigate through your Bookmarks folders until you find the new bookmark and "
1007
- "click \"Edit\""
1008
  msgstr ""
1009
 
1010
- #: classes/views/prli-tools/form.php:28
1011
- msgid "Delete all the text from the address"
1012
  msgstr ""
1013
 
1014
- #: classes/views/prli-tools/form.php:29
1015
- msgid "Paste the text you copied in Step 1 into the address field"
 
 
 
1016
  msgstr ""
1017
 
1018
- #: classes/views/prli-tools/form.php:30
1019
- msgid "To save the changes hit \"Bookmarks\" and <strong>you're done!"
1020
  msgstr ""
1021
 
1022
- #: classes/views/prli-tools/form.php:30
1023
- msgid ""
1024
- "Now when you find a page you want to save off as a Pretty Link, just click "
1025
- "the \"Bookmarks\" icon at the bottom of the screen and select your link."
1026
  msgstr ""
1027
 
1028
- #: classes/views/shared/link-table-nav.php:10
1029
- #: classes/views/shared/link-table-nav.php:110
1030
- #: classes/views/shared/table-nav.php:8
1031
- msgid "Displaying"
1032
  msgstr ""
1033
 
1034
- #: classes/views/shared/nav.php:8
1035
- msgid "Pro Manual"
1036
  msgstr ""
1037
 
1038
- #: classes/views/shared/nav.php:10
1039
- msgid "Upgrade to Pro"
1040
  msgstr ""
1041
 
1042
- #: classes/views/shared/nav.php:12
1043
- msgid "Connect"
 
 
1044
  msgstr ""
1045
 
1046
- #: classes/views/shared/nav.php:12
1047
- msgid "Get Help"
1048
  msgstr ""
1049
 
1050
- #: classes/views/shared/nav.php:12
1051
- msgid "Tutorials"
1052
  msgstr ""
1053
 
1054
- #: classes/views/shared/nav.php:12
1055
- msgid "One on One"
 
 
1056
  msgstr ""
1057
 
1058
- #: prli-api.php:99 prli-api.php:159
1059
- msgid "An error prevented your Pretty Link from being created"
1060
  msgstr ""
1061
 
1062
- #: prli-api.php:124
1063
- msgid "Pretty Link ID must be set for successful update."
1064
  msgstr ""
1065
 
1066
- #: prli-clicks.php:52
1067
- msgid "IP Address: "
 
 
1068
  msgstr ""
1069
 
1070
- #: prli-clicks.php:58
1071
- msgid "Visitor: "
1072
  msgstr ""
1073
 
1074
- #: prli-clicks.php:65
1075
- msgid "Group: "
1076
  msgstr ""
1077
 
1078
- #: prli-clicks.php:71
1079
- msgid "All Links"
 
 
1080
  msgstr ""
1081
 
1082
- #: prli-groups.php:12
1083
- msgid "Create a group and use it to organize your Pretty Links."
1084
  msgstr ""
1085
 
1086
- #: prli-groups.php:32
1087
- msgid "Your Pretty Link Group was Successfully Created"
1088
  msgstr ""
1089
 
1090
- #: prli-groups.php:56
1091
- msgid "Your Pretty Link Group was Successfully Updated"
 
 
 
 
1092
  msgstr ""
1093
 
1094
- #: prli-groups.php:63
1095
- msgid "Your Pretty Link Group was Successfully Deleted"
1096
  msgstr ""
1097
 
1098
- #: prli-main.php:20
1099
- msgid "Pretty Link | Manage Pretty Links"
1100
  msgstr ""
1101
 
1102
- #: prli-main.php:21
1103
- msgid "Pretty Link | Add New Link"
 
 
 
 
1104
  msgstr ""
1105
 
1106
- #: prli-main.php:21
1107
- msgid "Add New Link"
1108
  msgstr ""
1109
 
1110
- #: prli-main.php:161
1111
- msgid "Pretty Link Quick Add"
1112
  msgstr ""
1113
 
1114
- #: prli-main.php:357 prli-main.php:376
1115
  msgid ""
1116
- "Your Pretty Link Pro installation isn't quite complete yet.<br/>"
1117
- "%1$sAutomatically Upgrade to Enable Pretty Link Pro%2$s"
 
1118
  msgstr ""
1119
 
1120
- #: prli-options.php:61 pro/prlipro-options.php:195
1121
- msgid "Options saved."
 
 
 
 
1122
  msgstr ""
1123
 
1124
- #: prli-options.php:68
1125
- msgid "Hit Database was Cleared."
 
 
1126
  msgstr ""
1127
 
1128
- #: prli-options.php:77
1129
- msgid "No hits older than 30 days were found, so nothing was deleted"
1130
  msgstr ""
1131
 
1132
- #: prli-options.php:86
1133
- msgid "No hits older than 90 days were found, so nothing was deleted"
1134
  msgstr ""
1135
 
1136
- #: prli-pro-settings.php:25
1137
  msgid ""
1138
- "You're almost done!<br/>%1$sFinish your Re-Install of Pretty Link Pro%2$s"
 
1139
  msgstr ""
1140
 
1141
- #: prli-pro-settings.php:33
1142
- msgid "Pretty Link Pro Successfully Uninstalled."
1143
  msgstr ""
1144
 
1145
- #: prli-xmlrpc.php:22 prli-xmlrpc.php:85 prli-xmlrpc.php:133
1146
- #: prli-xmlrpc.php:189 prli-xmlrpc.php:219 prli-xmlrpc.php:248
1147
- #: prli-xmlrpc.php:282 prli-xmlrpc.php:315
1148
- msgid "Sorry, XML-RPC Not enabled for this website"
1149
  msgstr ""
1150
 
1151
- #: prli-xmlrpc.php:25 prli-xmlrpc.php:88 prli-xmlrpc.php:136
1152
- #: prli-xmlrpc.php:192 prli-xmlrpc.php:222 prli-xmlrpc.php:251
1153
- #: prli-xmlrpc.php:285 prli-xmlrpc.php:318
1154
- msgid "Sorry, Login failed"
1155
  msgstr ""
1156
 
1157
- #: prli-xmlrpc.php:31 prli-xmlrpc.php:94 prli-xmlrpc.php:142
1158
- #: prli-xmlrpc.php:198 prli-xmlrpc.php:228 prli-xmlrpc.php:257
1159
- #: prli-xmlrpc.php:291 prli-xmlrpc.php:324
1160
- msgid "Sorry, you must be an administrator to access this resource"
1161
  msgstr ""
1162
 
1163
- #: prli-xmlrpc.php:98
1164
- msgid "You must provide a target URL"
1165
  msgstr ""
1166
 
1167
- #: prli-xmlrpc.php:124 prli-xmlrpc.php:173
1168
- msgid "There was an error creating your Pretty Link"
 
 
1169
  msgstr ""
1170
 
1171
- #: prli-xmlrpc.php:146
1172
- msgid "You must provide the id of the link you want to update"
1173
  msgstr ""
1174
 
1175
- #: prli-xmlrpc.php:203
1176
- msgid "There was an error fetching the Pretty Link Groups"
 
 
 
 
 
1177
  msgstr ""
1178
 
1179
- #: prli-xmlrpc.php:233
1180
- msgid "There was an error fetching the Pretty Links"
1181
  msgstr ""
1182
 
1183
- #: prli-xmlrpc.php:260
1184
- msgid "Sorry, you must provide a slug to lookup"
1185
  msgstr ""
1186
 
1187
- #: prli-xmlrpc.php:267 prli-xmlrpc.php:301
1188
- msgid "There was an error fetching your Pretty Link"
 
 
 
1189
  msgstr ""
1190
 
1191
- #: prli-xmlrpc.php:294 prli-xmlrpc.php:327
1192
- msgid "Sorry, you must provide an id to lookup"
1193
  msgstr ""
1194
 
1195
- #: prli-xmlrpc.php:334
1196
- msgid "There was an error fetching your Pretty Link URL"
1197
  msgstr ""
1198
 
1199
- #: pro/classes/models/PrliProPostOptions.php:55
1200
- msgid "This pretty link slug is already taken, please choose a different one"
1201
  msgstr ""
1202
 
1203
- #: pro/classes/models/PrliProUtils.php:272
1204
- msgid "Google Analyticator"
 
 
 
 
1205
  msgstr ""
1206
 
1207
- #: pro/classes/models/PrliProUtils.php:274
1208
- msgid "Google Analytics for WordPress"
1209
  msgstr ""
1210
 
1211
- #: pro/classes/models/PrliProUtils.php:276
1212
- #: pro/classes/views/prli-links/bulk-edit.php:12
1213
- msgid "Google Analytics"
1214
  msgstr ""
1215
 
1216
- #: pro/classes/models/PrliReport.php:166
1217
- msgid "Report must have a name."
 
 
 
 
1218
  msgstr ""
1219
 
1220
- #: pro/classes/models/PrliReport.php:169
1221
- msgid "At least one link must be selected for analysis."
 
 
 
 
 
 
 
 
1222
  msgstr ""
1223
 
1224
- #: pro/classes/models/PrliReport.php:282
1225
- msgid "Pretty Link Pro: Hits for"
1226
  msgstr ""
1227
 
1228
- #: pro/classes/models/PrliReport.php:282
1229
- msgid "report between"
1230
  msgstr ""
1231
 
1232
- #: pro/classes/models/PrliReport.php:449
1233
- msgid "Pretty Link Pro: Split Report for"
1234
  msgstr ""
1235
 
1236
- #: pro/classes/views/prli-links/bulk-edit.php:6
1237
- msgid "Advanced Link Options"
 
 
 
 
 
1238
  msgstr ""
1239
 
1240
- #: pro/classes/views/prli-links/bulk-edit.php:7
1241
- msgid "Double Redirect"
1242
  msgstr ""
1243
 
1244
- #: pro/classes/views/prli-links/cloaked-redirect.php:20
1245
- msgid "Your browser does not support frames."
1246
  msgstr ""
1247
 
1248
- #: pro/classes/views/prli-links/form.php:7
1249
- msgid "Double Redirect:"
 
 
 
 
 
1250
  msgstr ""
1251
 
1252
- #: pro/classes/views/prli-links/form.php:11
1253
- msgid "Use a double redirect to erase all referrer information"
1254
  msgstr ""
1255
 
1256
- #: pro/classes/views/prli-links/form.php:18
1257
- msgid "Keywords:"
1258
  msgstr ""
1259
 
1260
- #: pro/classes/views/prli-links/form.php:21
1261
  msgid ""
1262
- "Enter a comma separated list of keywords / keyword phrases that you'd like "
1263
- "to replace with this link in your Posts &amp; Pages."
 
 
 
 
 
 
 
1264
  msgstr ""
1265
 
1266
- #: pro/classes/views/prli-links/form.php:24
1267
- msgid "URL Replacements:"
1268
  msgstr ""
1269
 
1270
- #: pro/classes/views/prli-links/form.php:27
1271
  msgid ""
1272
- "Enter a comma separated list of the URLs that you'd like to replace with "
1273
- "this Pretty Link in your Posts &amp; Pages. These must be formatted as URLs "
1274
- "for example: <code>http://example.com</code> or <code>http://example.com?"
1275
- "product_id=53</code>"
 
 
1276
  msgstr ""
1277
 
1278
- #: pro/classes/views/prli-links/form.php:32
1279
- msgid "Target URL Rotations:"
1280
  msgstr ""
1281
 
1282
- #: pro/classes/views/prli-links/form.php:34
1283
  msgid ""
1284
- "Enter the Target URLs that you'd like to rotate through when this Pretty "
1285
- "Link is Clicked. These must be formatted as URLs example: <code>http://"
1286
- "example.com</code> or <code>http://example.com?product_id=53</code>"
1287
  msgstr ""
1288
 
1289
- #: pro/classes/views/prli-links/form.php:37
1290
- #: pro/classes/views/prli-links/form.php:42
1291
- msgid "weight:"
1292
  msgstr ""
1293
 
1294
- #: pro/classes/views/prli-links/form.php:50
1295
- msgid "Split Test This Link"
1296
  msgstr ""
1297
 
1298
- #: pro/classes/views/prli-links/form.php:51
1299
  msgid ""
1300
- "This works best when you have multiple link rotation URLs entered -- that's "
1301
- "the whole point of split testing ..."
1302
  msgstr ""
1303
 
1304
- #: pro/classes/views/prli-links/form.php:57
1305
- msgid "Split Test Goal Link:"
1306
  msgstr ""
1307
 
1308
- #: pro/classes/views/prli-links/form.php:77
1309
- msgid "This is the goal link for your split test."
1310
  msgstr ""
1311
 
1312
- #: pro/classes/views/prli-links/link-options.php:2
1313
- msgid "Enable Google Analytics"
1314
  msgstr ""
1315
 
1316
- #: pro/classes/views/prli-links/link-options.php:6
1317
- msgid "Generate Downloadable %sQR Codes%s for Pretty Links"
1318
  msgstr ""
1319
 
1320
- #: pro/classes/views/prli-links/link-options.php:7
1321
- msgid ""
1322
- "This will enable a link in your pretty link admin that will allow you to "
1323
- "automatically download a %sQR Code%s for each individual Pretty Link."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1324
  msgstr ""
1325
 
1326
- #: pro/classes/views/prli-reports/custom-report.php:7
1327
  msgid "Link Report"
1328
  msgstr ""
1329
 
1330
- #: pro/classes/views/prli-reports/custom-report.php:8
1331
  msgid "Report:"
1332
  msgstr ""
1333
 
1334
- #: pro/classes/views/prli-reports/custom-report.php:10
1335
- msgid "For Goal Link:"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1336
  msgstr ""
1337
 
1338
- #: pro/classes/views/prli-reports/custom-report.php:12
1339
- msgid "Back to Link Reports"
1340
  msgstr ""
1341
 
1342
- #: pro/classes/views/prli-reports/custom-report.php:30
1343
- #: pro/classes/views/prli-reports/custom-report.php:63
1344
- msgid "Link Name"
1345
  msgstr ""
1346
 
1347
- #: pro/classes/views/prli-reports/custom-report.php:32
1348
- #: pro/classes/views/prli-reports/custom-report.php:65
1349
- #: pro/classes/views/prli-reports/split-test-report.php:32
1350
- #: pro/classes/views/prli-reports/split-test-report.php:65
1351
- #: pro/pretty-link-pro.php:169
1352
- msgid "Uniques"
1353
  msgstr ""
1354
 
1355
- #: pro/classes/views/prli-reports/custom-report.php:34
1356
- #: pro/classes/views/prli-reports/custom-report.php:67
1357
- #: pro/classes/views/prli-reports/split-test-report.php:34
1358
- #: pro/classes/views/prli-reports/split-test-report.php:67
1359
- msgid "Conversions"
 
 
1360
  msgstr ""
1361
 
1362
- #: pro/classes/views/prli-reports/custom-report.php:35
1363
- #: pro/classes/views/prli-reports/custom-report.php:68
1364
- #: pro/classes/views/prli-reports/split-test-report.php:35
1365
- #: pro/classes/views/prli-reports/split-test-report.php:68
1366
- msgid "Conv Rate"
1367
  msgstr ""
1368
 
1369
- #: pro/classes/views/prli-reports/edit.php:7
1370
- msgid "Edit Link Report"
1371
  msgstr ""
1372
 
1373
- #: pro/classes/views/prli-reports/edit.php:22
1374
- #: pro/classes/views/prli-reports/new.php:22
1375
- msgid "This is how you'll identify your Report."
1376
  msgstr ""
1377
 
1378
- #: pro/classes/views/prli-reports/edit.php:28
1379
- #: pro/classes/views/prli-reports/new.php:28
1380
- msgid "Select Links to Analyze in this Report:"
1381
  msgstr ""
1382
 
1383
- #: pro/classes/views/prli-reports/edit.php:86
1384
- #: pro/classes/views/prli-reports/new.php:86
1385
- msgid "Select some links to be analyzed in this report."
1386
  msgstr ""
1387
 
1388
- #: pro/classes/views/prli-reports/edit.php:89
1389
- #: pro/classes/views/prli-reports/new.php:89
1390
- msgid "Select Your Goal Link (optional):"
1391
  msgstr ""
1392
 
1393
- #: pro/classes/views/prli-reports/edit.php:111
1394
- #: pro/classes/views/prli-reports/new.php:111
1395
- msgid ""
1396
- "If you want to enable conversion tracking in this report then select a goal "
1397
- "link."
1398
  msgstr ""
1399
 
1400
- #: pro/classes/views/prli-reports/list.php:7
1401
- #: pro/classes/views/prli-reports/reports.php:10
1402
- msgid "Link Reports"
1403
  msgstr ""
1404
 
1405
- #: pro/classes/views/prli-reports/list.php:28
1406
- msgid "Add a Pretty Link Report"
1407
  msgstr ""
1408
 
1409
- #: pro/classes/views/prli-reports/list.php:38
1410
- #: pro/classes/views/prli-reports/list.php:79
1411
- msgid "Goal Link"
1412
  msgstr ""
1413
 
1414
- #: pro/classes/views/prli-reports/list.php:49
1415
- msgid "No Pretty Link Reports were found"
1416
  msgstr ""
1417
 
1418
- #: pro/classes/views/prli-reports/list.php:65
1419
- msgid "View"
1420
  msgstr ""
1421
 
1422
- #: pro/classes/views/prli-reports/new.php:7
1423
- msgid "Add Link Report"
1424
  msgstr ""
1425
 
1426
- #: pro/classes/views/prli-reports/reports.php:7
1427
- msgid "Reports"
1428
  msgstr ""
1429
 
1430
- #: pro/classes/views/prli-reports/split-test-report.php:7
1431
- msgid "Link Split-Test Report"
1432
  msgstr ""
1433
 
1434
- #: pro/classes/views/prli-reports/split-test-report.php:8
1435
- msgid "For Link:"
1436
  msgstr ""
1437
 
1438
- #: pro/classes/views/prli-reports/split-test-report.php:10
1439
- msgid "Goal Link:"
1440
  msgstr ""
1441
 
1442
- #: pro/classes/views/prli-reports/split-test-report.php:30
1443
- msgid "Link Rotation URL"
1444
  msgstr ""
1445
 
1446
- #: pro/classes/views/prli-reports/split-test-report.php:63
1447
- msgid "Rotation URL"
1448
  msgstr ""
1449
 
1450
- #: pro/classes/views/prlipro-import-export/form.php:7
1451
- msgid "Import / Export Links"
1452
  msgstr ""
1453
 
1454
- #: pro/classes/views/prlipro-import-export/form.php:9
1455
- msgid "Export Pretty Links"
1456
  msgstr ""
1457
 
1458
- #: pro/classes/views/prlipro-import-export/form.php:10
1459
- msgid "Export"
1460
  msgstr ""
1461
 
1462
- #: pro/classes/views/prlipro-import-export/form.php:11
1463
- msgid "Export Links into a CSV File"
1464
  msgstr ""
1465
 
1466
- #: pro/classes/views/prlipro-import-export/form.php:13
1467
- msgid "Import Pretty Links"
1468
  msgstr ""
1469
 
1470
- #: pro/classes/views/prlipro-import-export/form.php:18
1471
- msgid "Choose a file to import:"
1472
  msgstr ""
1473
 
1474
- #: pro/classes/views/prlipro-import-export/form.php:19
1475
- msgid "Select a file that has been formatted as a Pretty Link CSV import file."
1476
  msgstr ""
1477
 
1478
- #: pro/classes/views/prlipro-import-export/form.php:20
1479
- msgid "Import File"
1480
  msgstr ""
1481
 
1482
- #: pro/classes/views/prlipro-import-export/form.php:23
1483
- msgid ""
1484
- "Note: There are two ways to import a file. 1) Importing to update existing "
1485
- "links and 2) Importing to generate new links. When Importing to generate new "
1486
- "links, you must delte the \"id\" column from the CSV before importing. If "
1487
- "the \"id\" column is present, Pretty Link Pro will attempt to update "
1488
- "existing links."
1489
  msgstr ""
1490
 
1491
- #: pro/classes/views/prlipro-import-export/import.php:7
1492
- msgid "Import Results"
1493
  msgstr ""
1494
 
1495
- #: pro/classes/views/prlipro-import-export/import.php:8
1496
- msgid "Total Rows:"
1497
  msgstr ""
1498
 
1499
- #: pro/classes/views/prlipro-import-export/import.php:10
1500
- msgid "Pretty Links were Successfully Created"
1501
  msgstr ""
1502
 
1503
- #: pro/classes/views/prlipro-import-export/import.php:11
1504
- msgid "Pretty Links were Successfully Updated"
1505
  msgstr ""
1506
 
1507
- #: pro/classes/views/prlipro-import-export/import.php:17
1508
- msgid "Pretty Links were unable to be Created:"
1509
  msgstr ""
1510
 
1511
- #: pro/classes/views/prlipro-import-export/import.php:22
1512
- msgid "Error(s) for Pretty Link with Slug:"
1513
  msgstr ""
1514
 
1515
- #: pro/classes/views/prlipro-import-export/import.php:39
1516
- msgid "Pretty Links were unable to be Updated:"
1517
  msgstr ""
1518
 
1519
- #: pro/classes/views/prlipro-import-export/import.php:44
1520
- msgid "Error(s) for Pretty Link with id:"
1521
  msgstr ""
1522
 
1523
- #: pro/classes/views/prlipro-import-export/import.php:59
1524
- msgid "Back"
1525
  msgstr ""
1526
 
1527
- #: pro/classes/views/prlipro-options/form.php:15
1528
- msgid "Keyword & URL Replacement Options"
1529
  msgstr ""
1530
 
1531
- #: pro/classes/views/prlipro-options/form.php:20
1532
- msgid "Enable Keywords and URL Pretty Link Automatic Replacement"
1533
  msgstr ""
1534
 
1535
- #: pro/classes/views/prlipro-options/form.php:21
1536
- msgid ""
1537
- "If checked, this will enable you to automatically replace keywords and/or "
1538
- "URLs on your blog with pretty links. You will specify the specific keywords "
1539
- "and urls from your Pretty Link edit page."
1540
  msgstr ""
1541
 
1542
- #: pro/classes/views/prlipro-options/form.php:26
1543
- msgid "Set Keyword Replacement Thresholds"
1544
  msgstr ""
1545
 
1546
- #: pro/classes/views/prlipro-options/form.php:27
1547
- msgid ""
1548
- "Do not want to have too many keyword replacements per page? Select to set "
1549
- "some reasonable keyword replacement thresholds."
1550
  msgstr ""
1551
 
1552
- #: pro/classes/views/prlipro-options/form.php:33
1553
- msgid "Maximum Keywords per Page*:"
1554
  msgstr ""
1555
 
1556
- #: pro/classes/views/prlipro-options/form.php:35
1557
- msgid ""
1558
- "Maximum number of unique keyword / keyphrases you can replace with Pretty "
1559
- "Links per page."
1560
  msgstr ""
1561
 
1562
- #: pro/classes/views/prlipro-options/form.php:39
1563
- msgid "Maximum Replacements per Keyword per Page*:"
1564
  msgstr ""
1565
 
1566
- #: pro/classes/views/prlipro-options/form.php:41
1567
- msgid ""
1568
- "Maximum number of Pretty Link replacements per Keyword / Keyphrase per page."
1569
  msgstr ""
1570
 
1571
- #: pro/classes/views/prlipro-options/form.php:48
1572
- msgid "Open Keyword Pretty Links in a new Window"
1573
  msgstr ""
1574
 
1575
- #: pro/classes/views/prlipro-options/form.php:49
1576
- msgid ""
1577
- "Ensure that these keyword replacement links are opened in a separate window. "
1578
- "<strong>Note:</strong> This does not apply to url replacements--only keyword "
1579
- "replacements."
1580
  msgstr ""
1581
 
1582
- #: pro/classes/views/prlipro-options/form.php:52
1583
- msgid "Add the html nofollow attribute to all Keyword Pretty Links"
1584
  msgstr ""
1585
 
1586
- #: pro/classes/views/prlipro-options/form.php:53
1587
- msgid ""
1588
- "This adds the html <code>NOFOLLOW</code> attribute to all keyword "
1589
- "replacement links. <strong>Note:</strong> This does not apply to url "
1590
- "replacements--only keyword replacements."
1591
  msgstr ""
1592
 
1593
- #: pro/classes/views/prlipro-options/form.php:58
1594
- msgid "Custom CSS Styling for your Keyword Replacements:"
1595
  msgstr ""
1596
 
1597
- #: pro/classes/views/prlipro-options/form.php:61
1598
- msgid ""
1599
- "Add some custom formatting to your keyword pretty links. <strong>Note:</"
1600
- "strong> This does not apply to url replacements--only keyword replacements."
1601
  msgstr ""
1602
 
1603
- #: pro/classes/views/prlipro-options/form.php:65
1604
- msgid "Custom Hover CSS Styling for your Keyword Replacements:"
1605
  msgstr ""
1606
 
1607
- #: pro/classes/views/prlipro-options/form.php:68
1608
- msgid ""
1609
- "Add some custom formatting to the hover attribute of your keyword pretty "
1610
- "links. <strong>Note:</strong> This does not apply to url replacements--only "
1611
- "keyword replacements."
1612
  msgstr ""
1613
 
1614
- #: pro/classes/views/prlipro-options/form.php:74
1615
- msgid "Replace All non-Pretty Link URLs With Pretty Link URLs"
1616
  msgstr ""
1617
 
1618
- #: pro/classes/views/prlipro-options/form.php:75
1619
- msgid ""
1620
- "This feature will take each url it finds and create or use an existing "
1621
- "pretty link pointing to the url and replace it with the pretty link."
1622
  msgstr ""
1623
 
1624
- #: pro/classes/views/prlipro-options/form.php:78
1625
- msgid "Replace Keywords and URLs in Comments"
1626
  msgstr ""
1627
 
1628
- #: pro/classes/views/prlipro-options/form.php:79
1629
- msgid ""
1630
- "This option will enable the keyword / URL replacement routine to run in "
1631
- "Comments."
1632
  msgstr ""
1633
 
1634
- #: pro/classes/views/prlipro-options/form.php:82
1635
- msgid "Replace Keywords and URLs in Feeds"
1636
  msgstr ""
1637
 
1638
- #: pro/classes/views/prlipro-options/form.php:83
1639
- msgid ""
1640
- "This option will enable the keyword / URL replacement routine to run in RSS "
1641
- "Feeds.<br/><strong>Note:</strong> This option can slow the load speed of "
1642
- "your RSS feed -- unless used in conjunction with a caching plugin like W3 "
1643
- "Total Cache or WP Super Cache.<br/><strong>Note #2</strong> This option will "
1644
- "only work if you have \"Full Text\" selected in your General WordPress "
1645
- "Reading settings.<br/><strong>Note #3:</strong> If this option is used along "
1646
- "with \"Replace Keywords and URLs in Comments\" then your post comment feeds "
1647
- "will have keywords replaced in them as well."
1648
  msgstr ""
1649
 
1650
- #: pro/classes/views/prlipro-options/form.php:93
1651
- msgid "Page and Post Options"
1652
  msgstr ""
1653
 
1654
- #: pro/classes/views/prlipro-options/form.php:95
1655
- msgid "Auto Create Pretty Links and Post to Twitter:"
1656
  msgstr ""
1657
 
1658
- #: pro/classes/views/prlipro-options/form.php:99
1659
- msgid "Create Pretty Links for Posts"
1660
  msgstr ""
1661
 
1662
- #: pro/classes/views/prlipro-options/form.php:100
1663
- msgid "Automatically Create a Pretty Link for each of your published Posts"
1664
  msgstr ""
1665
 
1666
- #: pro/classes/views/prlipro-options/form.php:114
1667
- msgid "Group that Post Pretty Links will be automatically added to."
1668
  msgstr ""
1669
 
1670
- #: pro/classes/views/prlipro-options/form.php:117
1671
- msgid "Show Tweet Badge on Posts"
1672
  msgstr ""
1673
 
1674
- #: pro/classes/views/prlipro-options/form.php:120
1675
- msgid "Show Twitter Comments for Posts"
1676
  msgstr ""
1677
 
1678
- #: pro/classes/views/prlipro-options/form.php:123
1679
- msgid "Show Social Network Button Bar on Posts"
1680
  msgstr ""
1681
 
1682
- #: pro/classes/views/prlipro-options/form.php:126
1683
- msgid "Automatically post to Twitter when a Post is published"
1684
  msgstr ""
1685
 
1686
- #: pro/classes/views/prlipro-options/form.php:132
1687
- msgid "Create Pretty Links for Pages"
1688
  msgstr ""
1689
 
1690
- #: pro/classes/views/prlipro-options/form.php:133
1691
- msgid "Automatically Create a Pretty Link for each of your published Pages"
1692
  msgstr ""
1693
 
1694
- #: pro/classes/views/prlipro-options/form.php:147
1695
- msgid "Group that Page Pretty Links will be automatically added to."
1696
  msgstr ""
1697
 
1698
- #: pro/classes/views/prlipro-options/form.php:150
1699
- msgid "Show Tweet Badge on Pages"
1700
  msgstr ""
1701
 
1702
- #: pro/classes/views/prlipro-options/form.php:153
1703
- msgid "Show Twitter Comments for Pages"
1704
  msgstr ""
1705
 
1706
- #: pro/classes/views/prlipro-options/form.php:156
1707
- msgid "Show Social Network Button Bar on Pages"
1708
  msgstr ""
1709
 
1710
- #: pro/classes/views/prlipro-options/form.php:159
1711
- msgid "Automatically post to Twitter when a Page is published"
1712
  msgstr ""
1713
 
1714
- #: pro/classes/views/prlipro-options/form.php:167
1715
- msgid "Twitter Options"
1716
  msgstr ""
1717
 
1718
- #: pro/classes/views/prlipro-options/form.php:170
1719
- msgid "Authenticated Twitter Accounts:"
1720
  msgstr ""
1721
 
1722
- #: pro/classes/views/prlipro-options/form.php:186
1723
- msgid "Twitter Account"
1724
  msgstr ""
1725
 
1726
- #: pro/classes/views/prlipro-options/form.php:197
1727
- msgid ""
1728
- "To add multiple twitter accounts you must make sure you are logged out of "
1729
- "the previous twitter account before adding another (<a href=\"http://twitter."
1730
- "com\" target=\"_blank\">Logout of Twitter Here</a>)."
1731
  msgstr ""
1732
 
1733
- #: pro/classes/views/prlipro-options/form.php:200
1734
- msgid "Tweet Badge Placement:"
1735
  msgstr ""
1736
 
1737
- #: pro/classes/views/prlipro-options/form.php:200
1738
- msgid ""
1739
- "This determines where your Tweet Badges should appear in relation to content "
1740
- "on Pages and/or Posts. <code>Note:</code> If you want your badges to appear "
1741
- "then you must enable them by selecting Create Pretty Links for Posts/Pages "
1742
- "and then selecting Show Tweet Badge on Posts/Pages in the options above."
1743
  msgstr ""
1744
 
1745
- #: pro/classes/views/prlipro-options/form.php:204
1746
- #: pro/classes/views/prlipro-options/form.php:353
1747
- msgid "Top"
1748
  msgstr ""
1749
 
1750
- #: pro/classes/views/prlipro-options/form.php:207
1751
- msgid "Top Left with Text Wrap"
1752
  msgstr ""
1753
 
1754
- #: pro/classes/views/prlipro-options/form.php:210
1755
- msgid "Top Right with Text Wrap"
1756
  msgstr ""
1757
 
1758
- #: pro/classes/views/prlipro-options/form.php:213
1759
- #: pro/classes/views/prlipro-options/form.php:356
1760
- msgid "Bottom"
1761
  msgstr ""
1762
 
1763
- #: pro/classes/views/prlipro-options/form.php:217
1764
- msgid ""
1765
- "If you select none, you can still show your Twitter badges by manually "
1766
- "adding the <code>[tweetbadge]</code> shortcode to your blog posts or "
1767
- "<code>&lt;?php the_tweetbadge(); ?&gt;</code> template tag to your WordPress "
1768
- "Theme."
1769
  msgstr ""
1770
 
1771
- #: pro/classes/views/prlipro-options/form.php:222
1772
- msgid "Display Twitter Badge in Feed:"
1773
  msgstr ""
1774
 
1775
- #: pro/classes/views/prlipro-options/form.php:224
1776
- msgid "Show Twitter Badge in your RSS Feed"
1777
  msgstr ""
1778
 
1779
- #: pro/classes/views/prlipro-options/form.php:227
1780
- msgid "Twitter Comments Display Options:"
1781
  msgstr ""
1782
 
1783
- #: pro/classes/views/prlipro-options/form.php:231
1784
- msgid "Twitter Comments Headline:"
1785
  msgstr ""
1786
 
1787
- #: pro/classes/views/prlipro-options/form.php:234
1788
- msgid ""
1789
- "This is what will display above the Twitter Comments Box if it is enabled in "
1790
- "Page and Post Options."
1791
  msgstr ""
1792
 
1793
- #: pro/classes/views/prlipro-options/form.php:238
1794
- msgid "Twitter Comments Height:"
1795
  msgstr ""
1796
 
1797
- #: pro/classes/views/prlipro-options/form.php:241
1798
- msgid ""
1799
- "This is the height (in pixels) of the Twitter Comments Box if it is enabled "
1800
- "in Page and Post Options. If it is left blank, there will be no limit to the "
1801
- "height."
1802
  msgstr ""
1803
 
1804
- #: pro/classes/views/prlipro-options/form.php:247
1805
- msgid "Main Tweet User"
1806
  msgstr ""
1807
 
1808
- #: pro/classes/views/prlipro-options/form.php:251
1809
- msgid "Main Tweet User:"
1810
  msgstr ""
1811
 
1812
- #: pro/classes/views/prlipro-options/form.php:254
1813
- msgid ""
1814
- "Modify this to determine what twitter user to send Tweet Button tweets from."
1815
  msgstr ""
1816
 
1817
- #: pro/classes/views/prlipro-options/form.php:260
1818
- #: pro/classes/views/prlipro-options/form.php:264
1819
- msgid "Tweet Hash Tags:"
1820
  msgstr ""
1821
 
1822
- #: pro/classes/views/prlipro-options/form.php:267
1823
- msgid ""
1824
- "Modify this to customize your hash tag for your auto-tweets and re-tweets."
1825
  msgstr ""
1826
 
1827
- #: pro/classes/views/prlipro-options/form.php:274
1828
- msgid "Social Network Options"
1829
  msgstr ""
1830
 
1831
- #: pro/classes/views/prlipro-options/form.php:276
1832
- msgid ""
1833
- "Select which buttons you want to be visible on the Social Network Button "
1834
- "Bar. <code>Note:</code> In order for the Social Network Button Bar to be "
1835
- "visible on Pages and or Posts, you must first enable it in the \"Page &amp; "
1836
- "Post Options\" section above."
1837
  msgstr ""
1838
 
1839
- #: pro/classes/views/prlipro-options/form.php:349
1840
- msgid "Social Network Button Bar Placement:"
1841
  msgstr ""
1842
 
1843
- #: pro/classes/views/prlipro-options/form.php:349
1844
- msgid ""
1845
- "This determines where your Social Network Button Bar should appear in "
1846
- "relation to content on Pages and/or Posts. <code>Note:</code> If you want "
1847
- "this bar to appear then you must enable it in the \"Page and Post Options\" "
1848
- "above."
1849
  msgstr ""
1850
 
1851
- #: pro/classes/views/prlipro-options/form.php:359
1852
- msgid "Top and Bottom"
1853
  msgstr ""
1854
 
1855
- #: pro/classes/views/prlipro-options/form.php:364
1856
- msgid ""
1857
- "If you select none, you can still show your Social Network Buttons by "
1858
- "manually adding the <code>[social_buttons_bar]</code> shortcode to your blog "
1859
- "posts or <code>&lt;?php the_social_buttons_bar(); ?&gt;</code> template tag "
1860
- "to your WordPress Theme."
1861
  msgstr ""
1862
 
1863
- #: pro/classes/views/prlipro-options/form.php:368
1864
- msgid "Social Buttons Display Spacing:"
1865
  msgstr ""
1866
 
1867
- #: pro/classes/views/prlipro-options/form.php:370
1868
- msgid ""
1869
- "Determines the spacing (in pixels) between the buttons on the social buttons "
1870
- "bar."
1871
  msgstr ""
1872
 
1873
- #: pro/classes/views/prlipro-options/form.php:376
1874
- msgid "Display Social Buttons in Feed:"
1875
  msgstr ""
1876
 
1877
- #: pro/classes/views/prlipro-options/form.php:378
1878
- msgid "Show Social Buttons in your RSS Feed"
1879
  msgstr ""
1880
 
1881
- #: pro/classes/views/prlipro-options/form.php:382
1882
- msgid "Public Link Creation Options"
1883
  msgstr ""
1884
 
1885
- #: pro/classes/views/prlipro-options/form.php:384
1886
- msgid "Customize Public Link Creation"
1887
  msgstr ""
1888
 
1889
- #: pro/classes/views/prlipro-options/form.php:384
1890
- #: pro/classes/views/prlipro-options/form.php:402 pro/pretty-link-pro.php:194
1891
- msgid "(help)"
1892
  msgstr ""
1893
 
1894
- #: pro/classes/views/prlipro-options/form.php:386
1895
- msgid ""
1896
- "Allow Public Link Creation on this website\n"
1897
- " <br/><span class=\"description\">This option will give you the ability "
1898
- "to turn your website into a link shortening service for your users. Once "
1899
- "selected, you can enable the Pretty Link Pro Sidebar Widget or just display "
1900
- "the link creation form with the <code>[prli_create_form]</code> shortcode in "
1901
- "any post or page on your website."
1902
  msgstr ""
1903
 
1904
- #: pro/classes/views/prlipro-options/form.php:389
1905
- msgid ""
1906
- "Use Public Link Display Page\n"
1907
- " <br/><span class=\"description\">When a link is created using the "
1908
- "public form, the user is typically redirected to a simple page displaying "
1909
- "their new pretty link. But, you can specify a page that you want them to be "
1910
- "redirected to on your website, using your branding instead by selecting this "
1911
- "box and entering the url of the page you want them to go to."
1912
  msgstr ""
1913
 
1914
- #: pro/classes/views/prlipro-options/form.php:392
1915
- msgid "Public Pretty Link Creation Display URL:"
1916
  msgstr ""
1917
 
1918
- #: pro/classes/views/prlipro-options/form.php:393
1919
- msgid ""
1920
- "To set this up, create a new page on your WordPress site and make sure the "
1921
- "<code>[prli_create_display]</code> appears somewhere on this page -- "
1922
- "otherwise the link will never get created. Once this page is created, just "
1923
- "enter the full URL to it here. Make sure this URL does npt end with a slash "
1924
- "(/)."
1925
  msgstr ""
1926
 
1927
- #: pro/classes/views/prlipro-options/form.php:400
1928
- msgid "Global Options"
1929
  msgstr ""
1930
 
1931
- #: pro/classes/views/prlipro-options/form.php:402
1932
- msgid "Customize your Pretty Links Base URL"
1933
  msgstr ""
1934
 
1935
- #: pro/classes/views/prlipro-options/form.php:404
1936
- msgid ""
1937
- "Use an alternate Base Url for your Pretty Links\n"
1938
- " <br/><span class=\"description\">You must have another valid domain name "
1939
- "pointing to this WordPress install before you enable this option. If you are "
1940
- "using this option to just get rid of the www in the beginning of your url "
1941
- "that is fine -- just make sure your domain works without the www before "
1942
- "enabling this option."
1943
  msgstr ""
1944
 
1945
- #: pro/classes/views/prlipro-options/form.php:407
1946
- msgid "Pretty Link Base URL:"
1947
  msgstr ""
1948
 
1949
- #: pro/classes/views/prlipro-options/form.php:408
1950
- msgid ""
1951
- "Enter a valid base url that points at this WordPress install. Make sure this "
1952
- "URL does not end with a slash (/)."
1953
  msgstr ""
1954
 
1955
- #: pro/classes/views/prlipro-options/form.php:411
1956
- msgid "Set Minimum Role Required To Access Pretty Link"
1957
  msgstr ""
1958
 
1959
- #: pro/classes/views/prlipro-options/form.php:414
1960
- msgid "Administrator"
1961
  msgstr ""
1962
 
1963
- #: pro/classes/views/prlipro-options/form.php:415
1964
- msgid "Editor"
1965
  msgstr ""
1966
 
1967
- #: pro/classes/views/prlipro-options/form.php:416
1968
- msgid "Author"
1969
  msgstr ""
1970
 
1971
- #: pro/classes/views/prlipro-options/form.php:417
1972
- msgid "Contributor"
1973
  msgstr ""
1974
 
1975
- #: pro/classes/views/prlipro-options/form.php:418
1976
- msgid "Subscriber"
1977
  msgstr ""
1978
 
1979
- #: pro/classes/views/prlipro-options/head.php:237
1980
- msgid "Twitter Username"
1981
  msgstr ""
1982
 
1983
- #: pro/classes/views/prlipro-options/head.php:237
1984
- msgid "Password:"
1985
  msgstr ""
1986
 
1987
- #: pro/classes/views/prlipro-public/display.php:11
1988
- msgid "Here is your Pretty Link"
1989
  msgstr ""
1990
 
1991
- #: pro/classes/views/prlipro-public/display.php:42
1992
- msgid "here is your pretty link for:"
1993
  msgstr ""
1994
 
1995
- #: pro/classes/views/prlipro-public/display.php:46
1996
- msgid "home"
1997
  msgstr ""
1998
 
1999
- #: pro/pretty-link-pro.php:107
2000
- msgid "Hide the Twitter Badge on this post."
2001
  msgstr ""
2002
 
2003
- #: pro/pretty-link-pro.php:116
2004
- msgid "Hide Social Buttons on this post."
2005
  msgstr ""
2006
 
2007
- #: pro/pretty-link-pro.php:125
2008
- msgid "Hide Twitter Comments on this post."
2009
  msgstr ""
2010
 
2011
- #: pro/pretty-link-pro.php:133
2012
- msgid "Disable Keyword Replacements on this post."
2013
  msgstr ""
2014
 
2015
- #: pro/pretty-link-pro.php:153
2016
- msgid "A Pretty Link will be created on Publish"
2017
  msgstr ""
2018
 
2019
- #: pro/pretty-link-pro.php:171
2020
- msgid "edit"
2021
  msgstr ""
2022
 
2023
- #: pro/pretty-link-pro.php:171
2024
- msgid "Visit Pretty Link:"
2025
  msgstr ""
2026
 
2027
- #: pro/pretty-link-pro.php:171
2028
- msgid "in a New Window"
2029
  msgstr ""
2030
 
2031
- #: pro/pretty-link-pro.php:171
2032
- msgid "visit"
2033
  msgstr ""
2034
 
2035
- #: pro/pretty-link-pro.php:185
2036
- msgid "Has already been tweeted"
2037
  msgstr ""
2038
 
2039
- #: pro/pretty-link-pro.php:187
2040
- msgid "Hasn't been Tweeted yet"
2041
  msgstr ""
2042
 
2043
- #: pro/pretty-link-pro.php:192
2044
- msgid "Tweet It"
2045
  msgstr ""
2046
 
2047
- #: pro/pretty-link-pro.php:194
2048
- msgid "Twitter Message Format:"
2049
  msgstr ""
2050
 
2051
- #: pro/pretty-link-pro.php:196
2052
- msgid "Post to Twitter"
2053
  msgstr ""
2054
 
2055
- #: pro/pretty-link-pro.php:211
2056
- msgid ""
2057
- "A Pretty Link hasn't been generated for this entry yet. Click \"Update Post"
2058
- "\" to generate."
2059
  msgstr ""
2060
 
2061
- #: pro/pretty-link-pro.php:228
2062
- msgid "Auto Tweet on Publish"
2063
  msgstr ""
2064
 
2065
- #: pro/pretty-link-pro.php:228
2066
- msgid "Customize Tweet"
2067
  msgstr ""
2068
 
2069
- #: pro/pretty-link-pro.php:270
2070
- msgid "ERROR: Your Pretty Link was unable to be created"
2071
  msgstr ""
2072
 
2073
- #: pro/pretty-link-pro.php:273
2074
- msgid "Unauthorized"
2075
  msgstr ""
2076
 
2077
- #: pro/pretty-link-pro.php:916
2078
- msgid ""
2079
- "Your URL Replacements must be formatted as a comma separated list of "
2080
- "properly formatted URLs (http[s]://example.com/whatever)"
2081
  msgstr ""
2082
 
2083
- #: pro/pretty-link-pro.php:936
2084
- msgid "Your Link Rotation Weights must add up to 100%"
2085
  msgstr ""
2086
 
2087
- #: pro/pretty-link-pro.php:941
2088
- msgid "Delay Redirect must be a number"
2089
  msgstr ""
2090
 
2091
- #: pro/pretty-link-pro.php:1004
2092
- msgid "This Link Has additional Target URL rotations"
2093
  msgstr ""
2094
 
2095
- #: pro/pretty-link-pro.php:1244
2096
- msgid "Keywords <code>(PRO)</code>"
2097
  msgstr ""
2098
 
2099
- #: pro/pretty-link-pro.php:1269
2100
- msgid "Split-Test Report"
2101
  msgstr ""
2102
 
2103
- #: pro/pretty-link-pro.php:1295
2104
- msgid ""
2105
- "Twitter has changed the way it authenticates users:</strong> Auto-Posting to "
2106
- "Twitter with Pretty Link Pro will not work until you update your <a href="
2107
- "\"admin.php?page=pretty-link/pro/prlipro-options.php\">Twitter Credentials "
2108
- "Here</a>"
2109
  msgstr ""
2110
 
2111
- #: pro/pretty-link-pro.php:1382
2112
- msgid "Pretty Bar Attribution URL must be a correctly formatted URL"
2113
  msgstr ""
2114
 
2115
- #: pro/pretty-link-pro.php:1403
2116
- msgid "Hide Pretty Bar Attribution Link"
2117
  msgstr ""
2118
 
2119
- #: pro/pretty-link-pro.php:1404
2120
- msgid "Check this to hide the pretty link attribution link on the pretty bar."
2121
  msgstr ""
2122
 
2123
- #: pro/pretty-link-pro.php:1404
2124
- msgid ""
2125
- "Wait, before you do this, you might want to leave this un-checked and set "
2126
- "the alternate URL of this link to your <em>Pretty Link Pro</em> <a href="
2127
- "\"http://prettylinkpro.com/amember/aff_member.php\">Affiliate URL</a> to "
2128
- "earn a few bucks while you are at it."
2129
  msgstr ""
2130
 
2131
- #: pro/pretty-link-pro.php:1407
2132
- msgid "Alternate Pretty Bar Attribution URL:"
2133
  msgstr ""
2134
 
2135
- #: pro/pretty-link-pro.php:1410
2136
- msgid ""
2137
- "If set, this will replace the PrettyBars attribution URL. This is a very "
2138
- "good place to put your <em>Pretty Link Pro</em> <a href=\"http://"
2139
- "prettylinkpro.com/amember/aff_member.php\">Affiliate Link</a>."
2140
  msgstr ""
2141
 
2142
- #: pro/pretty-link-pro.php:1499
2143
- msgid "End-Point URL:"
2144
  msgstr ""
2145
 
2146
- #: pro/pretty-link-pro.php:1500
2147
- msgid "This can be used to integrate with your twitter client."
2148
  msgstr ""
2149
 
2150
- #: pro/pretty-link-pro.php:1503
2151
- msgid "Show TweetDeck Integration Instructions"
2152
  msgstr ""
2153
 
2154
- #: pro/pretty-link-pro.php:1505 pro/pretty-link-pro.php:1511
2155
- msgid "Follow the"
2156
  msgstr ""
2157
 
2158
- #: pro/pretty-link-pro.php:1505
2159
- msgid "TweetDeck Custom URL Instructions"
2160
  msgstr ""
2161
 
2162
- #: pro/pretty-link-pro.php:1505
2163
- msgid " and add the following URL to TweetDeck"
2164
  msgstr ""
2165
 
2166
- #: pro/pretty-link-pro.php:1509
2167
- msgid "Show Twitter for iPhone Integration Instructions"
2168
  msgstr ""
2169
 
2170
- #: pro/pretty-link-pro.php:1511
2171
- msgid "Twitter for iPhone Custom URL Instructions"
2172
  msgstr ""
2173
 
2174
- #: pro/pretty-link-pro.php:1511
2175
- msgid " and add the following URL to Twitter for iPhone"
2176
  msgstr ""
2177
 
2178
- #: pro/pretty-link-pro.php:1515
2179
- msgid "Custom Bookmarklet (Pro):"
2180
  msgstr ""
2181
 
2182
- #: pro/pretty-link-pro.php:1517
2183
- msgid ""
2184
- "Alter the options below to customize this Bookmarklet. As you modify the "
2185
- "label, redirect type, tracking and group, you will see this bookmarklet "
2186
- "update -- when the settings are how you want them, drag the bookmarklet into "
2187
- "your toolbar. You can create as many bookmarklets as you want each with "
2188
- "different settings."
2189
  msgstr ""
2190
 
2191
- #: pro/pretty-link-pro.php:1518 pro/prlipro-create-public-link-widget.php:44
2192
- msgid "Pretty Link Options"
2193
  msgstr ""
2194
 
2195
- #: pro/pretty-link-pro.php:1521
2196
- msgid "Label:"
2197
  msgstr ""
2198
 
2199
- #: pro/pretty-link-pro.php:1526 pro/prlipro-create-public-link-widget.php:46
2200
- msgid "Redirection:"
2201
  msgstr ""
2202
 
2203
- #: pro/pretty-link-pro.php:1528 pro/pretty-link-pro.php:1539
2204
- #: pro/prlipro-create-public-link-widget.php:48
2205
- #: pro/prlipro-create-public-link-widget.php:59
2206
- msgid "Default"
2207
  msgstr ""
2208
 
2209
- #: pro/pretty-link-pro.php:1529 pro/prlipro-create-public-link-widget.php:49
2210
- msgid "Permanent/301"
2211
  msgstr ""
2212
 
2213
- #: pro/pretty-link-pro.php:1530 pro/prlipro-create-public-link-widget.php:50
2214
- msgid "Temporary/307"
2215
  msgstr ""
2216
 
2217
- #: pro/pretty-link-pro.php:1531 pro/prlipro-create-public-link-widget.php:51
2218
- msgid "PrettyBar"
2219
  msgstr ""
2220
 
2221
- #: pro/pretty-link-pro.php:1532 pro/pretty-link-pro.php:1785
2222
- #: pro/prlipro-create-public-link-widget.php:52
2223
- msgid "Cloak"
2224
  msgstr ""
2225
 
2226
- #: pro/pretty-link-pro.php:1537 pro/prlipro-create-public-link-widget.php:57
2227
- msgid "Tracking Enabled:"
2228
  msgstr ""
2229
 
2230
- #: pro/pretty-link-pro.php:1540 pro/prlipro-create-public-link-widget.php:60
2231
- msgid "Yes"
2232
  msgstr ""
2233
 
2234
- #: pro/pretty-link-pro.php:1541 pro/prlipro-create-public-link-widget.php:61
2235
- msgid "No"
2236
  msgstr ""
2237
 
2238
- #: pro/pretty-link-pro.php:1546 pro/prlipro-create-public-link-widget.php:66
2239
- msgid "Group:"
2240
  msgstr ""
2241
 
2242
- #: pro/pretty-link-pro.php:1634
2243
- msgid "Could not connect to Twitter. Refresh the page or try again later."
2244
  msgstr ""
2245
 
2246
- #: pro/pretty-link-pro.php:1652 pro/pretty-link-pro.php:1692
2247
- msgid "There was an error saving your Twitter account."
2248
  msgstr ""
2249
 
2250
- #: pro/pretty-link-pro.php:1688
2251
- msgid "Your Twitter Account was successfully saved."
2252
  msgstr ""
2253
 
2254
- #: pro/pretty-link-pro.php:1706 pro/pretty-link-pro.php:1784
2255
- msgid "Pretty Bar"
2256
  msgstr ""
2257
 
2258
- #: pro/pretty-link-pro.php:1707
2259
- msgid "Cloaked"
2260
  msgstr ""
2261
 
2262
- #: pro/pretty-link-pro.php:1708 pro/pretty-link-pro.php:1786
2263
- msgid "Pixel"
2264
  msgstr ""
2265
 
2266
- #: pro/pretty-link-pro.php:1709 pro/pretty-link-pro.php:1787
2267
- msgid "Meta Refresh"
2268
  msgstr ""
2269
 
2270
- #: pro/pretty-link-pro.php:1710 pro/pretty-link-pro.php:1788
2271
- msgid "Javascript"
2272
  msgstr ""
2273
 
2274
- #: pro/pretty-link-pro.php:1813
2275
- msgid "PrettyBar Options"
2276
  msgstr ""
2277
 
2278
- #: pro/pretty-link-pro.php:1816
2279
- msgid "Image URL:"
2280
  msgstr ""
2281
 
2282
- #: pro/pretty-link-pro.php:1819
2283
- msgid ""
2284
- "If set, this will replace the logo image on the PrettyBar. The image that "
2285
- "this URL references should be 48x48 Pixels to fit."
2286
  msgstr ""
2287
 
2288
- #: pro/pretty-link-pro.php:1823
2289
- msgid "Background Image URL:"
2290
  msgstr ""
2291
 
2292
- #: pro/pretty-link-pro.php:1826
2293
- msgid ""
2294
- "If set, this will replace the background image on PrettyBar. The image that "
2295
- "this URL references should be 65px tall - this image will be repeated "
2296
- "horizontally across the bar."
2297
  msgstr ""
2298
 
2299
- #: pro/pretty-link-pro.php:1830
2300
- msgid "Background Color:"
2301
  msgstr ""
2302
 
2303
- #: pro/pretty-link-pro.php:1833
2304
- msgid ""
2305
- "This will alter the background color of the PrettyBar if you haven't "
2306
- "specified a PrettyBar background image."
2307
  msgstr ""
2308
 
2309
- #: pro/pretty-link-pro.php:1837
2310
- msgid "Text Color:"
2311
  msgstr ""
2312
 
2313
- #: pro/pretty-link-pro.php:1840
2314
- msgid ""
2315
- "If not set, this defaults to black (RGB value <code>#000000</code>) but you "
2316
- "can change it to whatever color you like."
2317
  msgstr ""
2318
 
2319
- #: pro/pretty-link-pro.php:1844
2320
- msgid "Link Color:"
2321
  msgstr ""
2322
 
2323
- #: pro/pretty-link-pro.php:1847
2324
- msgid ""
2325
- "If not set, this defaults to blue (RGB value <code>#0000ee</code>) but you "
2326
- "can change it to whatever color you like."
2327
  msgstr ""
2328
 
2329
- #: pro/pretty-link-pro.php:1851
2330
- msgid "Link Hover Color:"
2331
  msgstr ""
2332
 
2333
- #: pro/pretty-link-pro.php:1854
2334
- msgid ""
2335
- "If not set, this defaults to RGB value <code>#ababab</code> but you can "
2336
- "change it to whatever color you like."
2337
  msgstr ""
2338
 
2339
- #: pro/pretty-link-pro.php:1858
2340
- msgid "Visited Link Color:"
2341
  msgstr ""
2342
 
2343
- #: pro/pretty-link-pro.php:1861
2344
- msgid ""
2345
- "If not set, this defaults to RGB value <code>#551a8b</code> but you can "
2346
- "change it to whatever color you like."
2347
  msgstr ""
2348
 
2349
- #: pro/pretty-link-pro.php:1865
2350
- msgid "Title Char Limit*:"
2351
  msgstr ""
2352
 
2353
- #: pro/pretty-link-pro.php:1868
2354
- msgid ""
2355
- "If your Website has a long title then you may need to adjust this value so "
2356
- "that it will all fit on the PrettyBar. It is recommended that you keep this "
2357
- "value to <code>30</code> characters or less so the PrettyBar's format looks "
2358
- "good across different browsers and screen resolutions."
2359
  msgstr ""
2360
 
2361
- #: pro/pretty-link-pro.php:1872
2362
- msgid "Description Char Limit*:"
2363
  msgstr ""
2364
 
2365
- #: pro/pretty-link-pro.php:1875
2366
- msgid ""
2367
- "If your Website has a long Description (tagline) then you may need to adjust "
2368
- "this value so that it will all fit on the PrettyBar. It is recommended that "
2369
- "you keep this value to <code>40</code> characters or less so the PrettyBar's "
2370
- "format looks good across different browsers and screen resolutions."
2371
  msgstr ""
2372
 
2373
- #: pro/pretty-link-pro.php:1879
2374
- msgid "Target URL Char Limit*:"
2375
  msgstr ""
2376
 
2377
- #: pro/pretty-link-pro.php:1882
2378
- msgid ""
2379
- "If you link to a lot of large Target URLs you may want to adjust this value. "
2380
- "It is recommended that you keep this value to <code>40</code> or below so "
2381
- "the PrettyBar's format looks good across different browsers and URL sizes"
2382
  msgstr ""
2383
 
2384
- #: pro/pretty-link-pro.php:1887
2385
- msgid "Show Pretty Bar Title"
2386
  msgstr ""
2387
 
2388
- #: pro/pretty-link-pro.php:1888
2389
- msgid ""
2390
- "Make sure this is checked if you want the title of your blog (and link) to "
2391
- "show up on the PrettyBar."
2392
  msgstr ""
2393
 
2394
- #: pro/pretty-link-pro.php:1893
2395
- msgid "Show Pretty Bar Description"
2396
  msgstr ""
2397
 
2398
- #: pro/pretty-link-pro.php:1894
2399
- msgid ""
2400
- "Make sure this is checked if you want your site description to show up on "
2401
- "the PrettyBar."
2402
  msgstr ""
2403
 
2404
- #: pro/pretty-link-pro.php:1899
2405
- msgid "Show Pretty Bar Share Links"
2406
  msgstr ""
2407
 
2408
- #: pro/pretty-link-pro.php:1900
2409
- msgid ""
2410
- "Make sure this is checked if you want \"share links\" to show up on the "
2411
- "PrettyBar."
2412
  msgstr ""
2413
 
2414
- #: pro/pretty-link-pro.php:1905
2415
- msgid "Show Pretty Bar Target URL"
2416
  msgstr ""
2417
 
2418
- #: pro/pretty-link-pro.php:1906
2419
- msgid ""
2420
- "Make sure this is checked if you want a link displaying the Target URL to "
2421
- "show up on the PrettyBar."
2422
  msgstr ""
2423
 
2424
- #: pro/pretty-link-pro.php:1936
2425
- msgid "Logo Image URL must be a correctly formatted URL"
2426
  msgstr ""
2427
 
2428
- #: pro/pretty-link-pro.php:1939
2429
- msgid "Background Image URL must be a correctly formatted URL"
2430
  msgstr ""
2431
 
2432
- #: pro/pretty-link-pro.php:1942
2433
- msgid "PrettyBar Background Color must be an actual RGB Value"
2434
  msgstr ""
2435
 
2436
- #: pro/pretty-link-pro.php:1945
2437
- msgid "PrettyBar Text Color must be an actual RGB Value"
2438
  msgstr ""
2439
 
2440
- #: pro/pretty-link-pro.php:1948
2441
- msgid "PrettyBar Link Color must be an actual RGB Value"
2442
  msgstr ""
2443
 
2444
- #: pro/pretty-link-pro.php:1951 pro/pretty-link-pro.php:1954
2445
- msgid "PrettyBar Hover Color must be an actual RGB Value"
2446
  msgstr ""
2447
 
2448
- #: pro/pretty-link-pro.php:1957
2449
- msgid "PrettyBar Title Character Limit must not be blank"
2450
  msgstr ""
2451
 
2452
- #: pro/pretty-link-pro.php:1960
2453
- msgid "PrettyBar Description Character Limit must not be blank"
2454
  msgstr ""
2455
 
2456
- #: pro/pretty-link-pro.php:1963
2457
- msgid "PrettyBar Link Character Limit must not be blank"
2458
  msgstr ""
2459
 
2460
- #: pro/pretty-link-pro.php:1966
2461
- msgid "PrettyBar Title Character Limit must be a number"
2462
  msgstr ""
2463
 
2464
- #: pro/pretty-link-pro.php:1969
2465
- msgid "PrettyBar Description Character Limit must be a number"
2466
  msgstr ""
2467
 
2468
- #: pro/pretty-link-pro.php:1972
2469
- msgid "PrettyBar Link Character Limit must be a number"
2470
  msgstr ""
2471
 
2472
- #: pro/pretty-link-pro.php:2095
2473
- msgid "You are unauthorized to view this resource"
2474
  msgstr ""
2475
 
2476
- #: pro/pretty-link-pro.php:2125
2477
- msgid "View QR Code for this link: %s"
2478
  msgstr ""
2479
 
2480
- #: pro/pretty-link-pro.php:2133
2481
- msgid "Download QR Code for this link: %s"
2482
  msgstr ""
2483
 
2484
- #: pro/pretty-link-pro.php:2226
2485
- msgid "Double Redirection Enabled"
2486
  msgstr ""
2487
 
2488
- #: pro/prlipro-create-public-link-widget.php:42
2489
- msgid "Label Text:"
2490
  msgstr ""
2491
 
2492
- #: pro/prlipro-create-public-link-widget.php:43
2493
- msgid "Button Text:"
2494
  msgstr ""
2495
 
2496
- #: pro/prlipro-create-public-link-widget.php:43
2497
- msgid "if left blank, no button will display"
2498
  msgstr ""
2499
 
2500
- #: pro/prlipro-hooks.php:19
2501
- msgid "Pretty Link Pro | Reports"
2502
  msgstr ""
2503
 
2504
- #: pro/prlipro-hooks.php:19
2505
- msgid "<code>Pro</code> Reports"
2506
  msgstr ""
2507
 
2508
- #: pro/prlipro-hooks.php:20
2509
- msgid "Pretty Link Pro | Import/Export"
2510
  msgstr ""
2511
 
2512
- #: pro/prlipro-hooks.php:20
2513
- msgid "<code>Pro</code> Import/Export"
2514
  msgstr ""
2515
 
2516
- #: pro/prlipro-hooks.php:21
2517
- msgid "Pretty Link Pro | Pro Options"
2518
  msgstr ""
2519
 
2520
- #: pro/prlipro-hooks.php:21
2521
- msgid "<code>Pro</code> Options"
2522
  msgstr ""
2523
 
2524
- #: pro/prlipro-hooks.php:31 pro/prlipro-hooks.php:41
2525
- msgid "Pretty Link Pro Options"
2526
  msgstr ""
2527
 
2528
- #: pro/prlipro-options.php:9
2529
- msgid "Your Keyword Replacement Cache was successfully deleted"
2530
  msgstr ""
2531
 
2532
- #: pro/prlipro-options.php:36
2533
- msgid "Your Duplicate Tweets were Successfully Trimmed"
2534
  msgstr ""
2535
 
2536
- #: pro/prlipro-options.php:104
2537
- msgid "Keywords Per Page is required"
2538
  msgstr ""
2539
 
2540
- #: pro/prlipro-options.php:107
2541
- msgid "Keyword Links Per Page is required"
2542
  msgstr ""
2543
 
2544
- #: pro/prlipro-options.php:110
2545
- msgid ""
2546
- "You need to enter a valid Pretty Link Base URL now that you have selected "
2547
- "\"Use an alternate base url for your Pretty Links\""
2548
  msgstr ""
2549
 
2550
- #: pro/prlipro-options.php:113
2551
- msgid ""
2552
- "You need to enter a valid Public Link Display URL now that you have selected "
2553
- "\"Use a custom public link display page\""
2554
  msgstr ""
2555
 
2556
- #: pro/prlipro-options.php:116
2557
- msgid "Twitter Comment Height must either be blank or a number."
2558
  msgstr ""
2559
 
2560
- #: pro/prlipro-reports.php:14
2561
- msgid "Create a custom link report and analyze your data."
2562
  msgstr ""
2563
 
2564
- #: pro/prlipro-reports.php:36
2565
- msgid "Your Pretty Link Report was Successfully Created"
2566
  msgstr ""
2567
 
2568
- #: pro/prlipro-reports.php:62
2569
- msgid "Your Pretty Link Report was Successfully Updated"
2570
  msgstr ""
2571
 
2572
- #: pro/prlipro-reports.php:69
2573
- msgid "Your Pretty Link Report was Successfully Deleted"
2574
  msgstr ""
2575
 
2576
  #: script/i18n/pomo/sample/app.php:56
@@ -2585,12 +4671,8 @@ msgstr ""
2585
  msgid "Bye\n"
2586
  msgstr ""
2587
 
2588
- #. Plugin Name of the plugin/theme
2589
- msgid "Pretty Link Lite"
2590
- msgstr ""
2591
-
2592
  #. Plugin URI of the plugin/theme
2593
- msgid "http://blairwilliams.com/pretty-link"
2594
  msgstr ""
2595
 
2596
  #. Description of the plugin/theme
@@ -2599,9 +4681,9 @@ msgid ""
2599
  msgstr ""
2600
 
2601
  #. Author of the plugin/theme
2602
- msgid "Caseproof"
2603
  msgstr ""
2604
 
2605
  #. Author URI of the plugin/theme
2606
- msgid "http://caseproof.com"
2607
  msgstr ""
1
+ # Copyright (C) 2017 Pretty Link
2
+ # This file is distributed under the same license as the Pretty Link package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Pretty Link 2.0.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pretty-link\n"
7
+ "POT-Creation-Date: 2017-01-11 01:05:26+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
15
+ #: app/controllers/PrliAppController.php:34
16
+ #: app/controllers/PrliAppController.php:43
17
+ msgid "Pretty Link | Manage Pretty Links"
 
18
  msgstr ""
19
 
20
+ #. #-#-#-#-# pretty-link.pot (Pretty Link 2.0.0) #-#-#-#-#
21
+ #. Plugin Name of the plugin/theme
22
+ #: app/controllers/PrliAppController.php:35
23
+ #: app/controllers/PrliAppController.php:44 app/views/links/form.php:47
24
+ #: app/views/shared/tinymce_form_popup.php:109 app/views/widgets/widget.php:17
25
+ #: pro/app/views/links/prettybar.php:191
26
+ msgid "Pretty Link"
27
  msgstr ""
28
 
29
+ #: app/controllers/PrliAppController.php:51
30
+ msgid "Pretty Link | Add New Link"
31
  msgstr ""
32
 
33
+ #: app/controllers/PrliAppController.php:52
34
+ msgid "Add New Link"
35
  msgstr ""
36
 
37
+ #: app/controllers/PrliAppController.php:60
38
+ msgid "Pretty Link | Groups"
39
  msgstr ""
40
 
41
+ #: app/controllers/PrliAppController.php:61 app/views/groups/list.php:6
42
+ msgid "Groups"
43
  msgstr ""
44
 
45
+ #: app/controllers/PrliAppController.php:70
46
+ msgid "Pretty Link | Clicks"
47
  msgstr ""
48
 
49
+ #: app/controllers/PrliAppController.php:71 app/models/PrliClick.php:230
50
+ #: app/views/clicks/list.php:4 app/views/groups/list.php:69
51
+ #: pro/app/helpers/PlpPostsHelper.php:61 pro/app/views/links/form.php:36
52
+ #: pro/app/views/links/form.php:48 pro/app/views/reports/custom-report.php:31
53
+ #: pro/app/views/reports/custom-report.php:64
54
+ #: pro/app/views/reports/split-test-report.php:28
55
+ #: pro/app/views/reports/split-test-report.php:60
56
+ msgid "Clicks"
57
  msgstr ""
58
 
59
+ #: app/controllers/PrliAppController.php:80
60
+ msgid "Pretty Link | Tools"
61
  msgstr ""
62
 
63
+ #: app/controllers/PrliAppController.php:81 app/views/tools/form.php:3
64
+ msgid "Tools"
65
  msgstr ""
66
 
67
+ #: app/controllers/PrliAppController.php:89
68
+ msgid "Pretty Link | Options"
 
69
  msgstr ""
70
 
71
+ #: app/controllers/PrliAppController.php:90 app/views/options/form.php:3
72
+ msgid "Options"
73
  msgstr ""
74
 
75
+ #: app/controllers/PrliAppController.php:97
76
+ #: app/controllers/PrliAppController.php:100
77
+ msgid "Activate Pro"
78
  msgstr ""
79
 
80
+ #: app/controllers/PrliAppController.php:103
81
+ #: app/views/admin/update/license.php:27 app/views/shared/nav.php:9
82
+ msgid "Upgrade to Pro"
83
  msgstr ""
84
 
85
+ #: app/controllers/PrliAppController.php:228
86
+ msgid ""
87
+ "You're almost done!<br/>%1$sFinish your Re-Install of Pretty Link Pro%2$s"
 
 
 
 
88
  msgstr ""
89
 
90
+ #: app/controllers/PrliAppController.php:235
91
+ msgid "Pretty Link Pro Successfully Uninstalled."
92
  msgstr ""
93
 
94
+ #: app/controllers/PrliAppController.php:290
95
+ msgid "Pretty Link Quick Add"
96
  msgstr ""
97
 
98
+ #: app/controllers/PrliAppController.php:328
99
+ #: app/controllers/PrliAppController.php:347
100
+ msgid ""
101
+ "Your Pretty Link Pro installation isn't quite complete yet.<br/>"
102
+ "%1$sAutomatically Upgrade to Enable Pretty Link Pro%2$s"
103
  msgstr ""
104
 
105
+ #: app/controllers/PrliClicksController.php:89
106
+ msgid "IP Address: "
 
 
107
  msgstr ""
108
 
109
+ #: app/controllers/PrliClicksController.php:94
110
+ msgid "Visitor: "
 
 
111
  msgstr ""
112
 
113
+ #: app/controllers/PrliClicksController.php:100
114
+ msgid "Group: "
115
  msgstr ""
116
 
117
+ #: app/controllers/PrliClicksController.php:105
118
+ msgid "All Links"
119
  msgstr ""
120
 
121
+ #: app/controllers/PrliGroupsController.php:40
122
+ msgid "An unknown error occurred when creating your group."
 
123
  msgstr ""
124
 
125
+ #: app/controllers/PrliGroupsController.php:49
126
+ msgid "Group Created"
127
  msgstr ""
128
 
129
+ #: app/controllers/PrliGroupsController.php:56
130
+ msgid "A name must be specified for your new group name"
131
  msgstr ""
132
 
133
+ #: app/controllers/PrliGroupsController.php:61
134
+ msgid "Cannot add group because security nonce failed"
135
  msgstr ""
136
 
137
+ #: app/controllers/PrliGroupsController.php:71
138
+ msgid "Create a group and use it to organize your Pretty Links."
139
  msgstr ""
140
 
141
+ #: app/controllers/PrliGroupsController.php:95
142
+ msgid "Your Pretty Link Group was Successfully Created"
143
  msgstr ""
144
 
145
+ #: app/controllers/PrliGroupsController.php:125
146
+ msgid "Your Pretty Link Group was Successfully Updated"
 
147
  msgstr ""
148
 
149
+ #: app/controllers/PrliGroupsController.php:134
150
+ msgid "Your Pretty Link Group was Successfully Deleted"
151
  msgstr ""
152
 
153
+ #: app/controllers/PrliLinksController.php:45
154
+ msgid "Links in Group: "
 
 
 
 
 
 
155
  msgstr ""
156
 
157
+ #: app/controllers/PrliLinksController.php:91
158
+ #: app/controllers/PrliLinksController.php:112
159
+ msgid "Your Pretty Link was Successfully Created"
160
  msgstr ""
161
 
162
+ #: app/controllers/PrliLinksController.php:145
163
+ msgid "Your Pretty Link was Successfully Updated"
164
  msgstr ""
165
 
166
+ #: app/controllers/PrliLinksController.php:160
167
+ msgid "Your links were updated successfully"
168
  msgstr ""
169
 
170
+ #: app/controllers/PrliLinksController.php:177
171
+ #: app/controllers/PrliLinksController.php:217
172
+ msgid "You are unauthorized to view this page."
173
  msgstr ""
174
 
175
+ #: app/controllers/PrliLinksController.php:184
176
+ msgid "Your Pretty Link was Successfully Reset"
 
 
177
  msgstr ""
178
 
179
+ #: app/controllers/PrliLinksController.php:191
180
+ msgid "Your Pretty Link was Successfully Destroyed"
181
  msgstr ""
182
 
183
+ #: app/controllers/PrliLinksController.php:204
184
+ msgid "Your links were deleted successfully"
185
+ msgstr ""
186
+
187
+ #: app/controllers/PrliLocalApiController.php:101
188
+ #: app/controllers/PrliLocalApiController.php:160
189
+ msgid "An error prevented your Pretty Link from being created"
190
+ msgstr ""
191
+
192
+ #: app/controllers/PrliLocalApiController.php:125
193
+ msgid "Pretty Link ID must be set for successful update."
194
  msgstr ""
195
 
196
+ #: app/controllers/PrliOptionsController.php:61
197
+ msgid "Options saved."
198
+ msgstr ""
199
+
200
+ #: app/controllers/PrliOptionsController.php:75
201
  msgid ""
202
+ "Excluded IP Addresses must be a comma separated list of IPv4 or IPv6 "
203
+ "addresses or ranges."
204
  msgstr ""
205
 
206
+ #: app/controllers/PrliOptionsController.php:79
207
  msgid ""
208
+ "Whitlist IP Addresses must be a comma separated list of IPv4 or IPv6 "
209
+ "addresses or ranges."
210
  msgstr ""
211
 
212
+ #: app/controllers/PrliToolsController.php:89
213
+ msgid "Click Database was Cleared."
214
  msgstr ""
215
 
216
+ #: app/controllers/PrliToolsController.php:95
217
+ msgid "Clicks older than %1$d days (%2$d Clicks) were deleted"
218
  msgstr ""
219
 
220
+ #: app/controllers/PrliToolsController.php:98
221
+ msgid "No clicks older than %1$d days were found, so nothing was deleted"
222
  msgstr ""
223
 
224
+ #: app/controllers/PrliUpdateController.php:72
225
+ msgid "Why you creepin'?"
 
 
226
  msgstr ""
227
 
228
+ #: app/controllers/PrliUpdateController.php:306
229
+ msgid "Check for Update"
 
230
  msgstr ""
231
 
232
+ #: app/controllers/PrliUpdateController.php:375
233
+ msgid "You had an HTTP error connecting to Caseproof's Mothership API"
 
234
  msgstr ""
235
 
236
+ #: app/controllers/PrliUpdateController.php:387
237
+ msgid "Your License Key was invalid"
 
238
  msgstr ""
239
 
240
+ #: app/controllers/PrliUpdateController.php:413
241
+ msgid "You do not have access."
242
  msgstr ""
243
 
244
+ #: app/controllers/PrliUpdateController.php:417
245
+ msgid "Edge updates couldn't be updated."
 
 
246
  msgstr ""
247
 
248
+ #: app/controllers/PrliXmlRpcController.php:36
249
+ #: app/controllers/PrliXmlRpcController.php:98
250
+ #: app/controllers/PrliXmlRpcController.php:145
251
+ #: app/controllers/PrliXmlRpcController.php:200
252
+ #: app/controllers/PrliXmlRpcController.php:229
253
+ #: app/controllers/PrliXmlRpcController.php:257
254
+ #: app/controllers/PrliXmlRpcController.php:290
255
+ #: app/controllers/PrliXmlRpcController.php:322
256
+ msgid "Sorry, XML-RPC Not enabled for this website"
257
  msgstr ""
258
 
259
+ #: app/controllers/PrliXmlRpcController.php:39
260
+ #: app/controllers/PrliXmlRpcController.php:101
261
+ #: app/controllers/PrliXmlRpcController.php:148
262
+ #: app/controllers/PrliXmlRpcController.php:203
263
+ #: app/controllers/PrliXmlRpcController.php:232
264
+ #: app/controllers/PrliXmlRpcController.php:260
265
+ #: app/controllers/PrliXmlRpcController.php:293
266
+ #: app/controllers/PrliXmlRpcController.php:325
267
+ msgid "Sorry, Login failed"
268
  msgstr ""
269
 
270
+ #: app/controllers/PrliXmlRpcController.php:45
271
+ #: app/controllers/PrliXmlRpcController.php:107
272
+ #: app/controllers/PrliXmlRpcController.php:154
273
+ #: app/controllers/PrliXmlRpcController.php:209
274
+ #: app/controllers/PrliXmlRpcController.php:238
275
+ #: app/controllers/PrliXmlRpcController.php:266
276
+ #: app/controllers/PrliXmlRpcController.php:299
277
+ #: app/controllers/PrliXmlRpcController.php:331
278
+ msgid "Sorry, you must be an administrator to access this resource"
279
  msgstr ""
280
 
281
+ #: app/controllers/PrliXmlRpcController.php:111
282
+ msgid "You must provide a target URL"
283
  msgstr ""
284
 
285
+ #: app/controllers/PrliXmlRpcController.php:137
286
+ #: app/controllers/PrliXmlRpcController.php:185
287
+ msgid "There was an error creating your Pretty Link"
288
  msgstr ""
289
 
290
+ #: app/controllers/PrliXmlRpcController.php:158
291
+ msgid "You must provide the id of the link you want to update"
 
 
292
  msgstr ""
293
 
294
+ #: app/controllers/PrliXmlRpcController.php:214
295
+ msgid "There was an error fetching the Pretty Link Groups"
296
  msgstr ""
297
 
298
+ #: app/controllers/PrliXmlRpcController.php:243
299
+ msgid "There was an error fetching the Pretty Links"
 
 
 
 
 
 
300
  msgstr ""
301
 
302
+ #: app/controllers/PrliXmlRpcController.php:269
303
+ msgid "Sorry, you must provide a slug to lookup"
 
 
 
 
 
304
  msgstr ""
305
 
306
+ #: app/controllers/PrliXmlRpcController.php:276
307
+ #: app/controllers/PrliXmlRpcController.php:309
308
+ msgid "There was an error fetching your Pretty Link"
 
309
  msgstr ""
310
 
311
+ #: app/controllers/PrliXmlRpcController.php:302
312
+ #: app/controllers/PrliXmlRpcController.php:334
313
+ msgid "Sorry, you must provide an id to lookup"
314
  msgstr ""
315
 
316
+ #: app/controllers/PrliXmlRpcController.php:341
317
+ msgid "There was an error fetching your Pretty Link URL"
 
318
  msgstr ""
319
 
320
+ #: app/helpers/PrliAppHelper.php:23 app/helpers/PrliLinksHelper.php:14
321
+ #: app/views/links/form.php:100 app/views/shared/tinymce_form_popup.php:106
322
+ #: app/views/shared/tinymce_form_popup.php:110 pro/app/views/links/form.php:185
323
+ #: pro/app/views/options/form.php:703 pro/app/views/tools/generator.php:59
324
+ #: pro/app/widgets/PlpPublicLinksWidget.php:80
325
+ msgid "None"
326
  msgstr ""
327
 
328
+ #: app/helpers/PrliLinksHelper.php:37 app/views/links/form.php:15
329
+ #: app/views/shared/tinymce_form_popup.php:63
330
+ msgid "307 (Temporary)"
331
  msgstr ""
332
 
333
+ #: app/helpers/PrliLinksHelper.php:38 app/views/links/form.php:16
334
+ #: app/views/shared/tinymce_form_popup.php:64
335
+ msgid "302 (Temporary)"
336
  msgstr ""
337
 
338
+ #: app/helpers/PrliLinksHelper.php:39 app/views/links/form.php:17
339
+ #: app/views/shared/tinymce_form_popup.php:65
340
+ msgid "301 (Permanent)"
341
  msgstr ""
342
 
343
+ #: app/helpers/PrliLinksHelper.php:49
344
+ msgid "Bulk Actions"
 
345
  msgstr ""
346
 
347
+ #: app/helpers/PrliLinksHelper.php:50 app/views/groups/list.php:66
348
+ #: pro/app/views/reports/list.php:55
349
+ msgid "Edit"
350
  msgstr ""
351
 
352
+ #: app/helpers/PrliLinksHelper.php:51 app/views/groups/list.php:67
353
+ #: pro/app/views/reports/list.php:56
354
+ msgid "Delete"
355
  msgstr ""
356
 
357
+ #: app/helpers/PrliLinksHelper.php:53
358
+ msgid "Are you sure you want to delete the selected links?"
359
  msgstr ""
360
 
361
+ #: app/helpers/PrliLinksHelper.php:53
362
+ msgid "Apply"
363
  msgstr ""
364
 
365
+ #: app/helpers/PrliLinksHelper.php:63 app/views/links/list.php:71
366
+ #: app/views/links/list.php:74
367
+ msgid "- No Change -"
368
  msgstr ""
369
 
370
+ #: app/helpers/PrliLinksHelper.php:64
371
+ msgid "Off"
372
  msgstr ""
373
 
374
+ #: app/helpers/PrliLinksHelper.php:65
375
+ msgid "On"
376
  msgstr ""
377
 
378
+ #: app/helpers/PrliLinksHelper.php:75
379
+ msgid "PrettyBar Redirection"
 
380
  msgstr ""
381
 
382
+ #: app/helpers/PrliLinksHelper.php:78
383
+ msgid "Cloaked Redirection"
384
  msgstr ""
385
 
386
+ #: app/helpers/PrliLinksHelper.php:81
387
+ msgid "Pixel Tracking Redirection"
388
  msgstr ""
389
 
390
+ #: app/helpers/PrliLinksHelper.php:84
391
+ msgid "Meta Refresh Redirection"
392
  msgstr ""
393
 
394
+ #: app/helpers/PrliLinksHelper.php:87
395
+ msgid "Javascript Redirection"
396
  msgstr ""
397
 
398
+ #: app/helpers/PrliLinksHelper.php:90
399
+ msgid "Temporary (307) Redirection"
 
 
 
 
 
 
 
400
  msgstr ""
401
 
402
+ #: app/helpers/PrliLinksHelper.php:93
403
+ msgid "Temporary (302) Redirection"
404
  msgstr ""
405
 
406
+ #: app/helpers/PrliLinksHelper.php:96
407
+ msgid "Permanent (301) Redirection"
 
 
408
  msgstr ""
409
 
410
+ #: app/helpers/PrliLinksHelper.php:100
411
+ msgid "Nofollow Enabled"
412
  msgstr ""
413
 
414
+ #: app/helpers/PrliLinksHelper.php:104
415
+ msgid "Parameter Forwarding Enabled"
416
  msgstr ""
417
 
418
+ #: app/helpers/PrliLinksHelper.php:114 app/views/groups/list.php:63
419
+ #: app/views/groups/list.php:66
420
+ msgid "Edit %s"
 
 
 
421
  msgstr ""
422
 
423
+ #: app/helpers/PrliLinksHelper.php:115
424
+ msgid ""
425
+ "Are you sure you want to delete your %s Pretty Link? This will delete the "
426
+ "Pretty Link and all of the statistical data about it in your database."
 
427
  msgstr ""
428
 
429
+ #: app/helpers/PrliLinksHelper.php:115
430
+ msgid "Delete %s"
431
  msgstr ""
432
 
433
+ #: app/helpers/PrliLinksHelper.php:116
434
+ msgid ""
435
+ "Are you sure you want to reset your %s Pretty Link? This will delete all of "
436
+ "the statistical data about this Pretty Link in your database."
437
  msgstr ""
438
 
439
+ #: app/helpers/PrliLinksHelper.php:116
440
+ msgid "Reset %s"
 
441
  msgstr ""
442
 
443
+ #: app/helpers/PrliLinksHelper.php:119 app/views/clicks/list.php:161
444
+ msgid "View clicks for %s"
445
  msgstr ""
446
 
447
+ #: app/helpers/PrliLinksHelper.php:124
448
+ msgid "Post %s to Twitter"
449
  msgstr ""
450
 
451
+ #: app/helpers/PrliLinksHelper.php:125
452
+ msgid "Send %s in an Email"
 
 
453
  msgstr ""
454
 
455
+ #: app/models/PrliClick.php:208
456
+ msgid "group: '%s'"
457
  msgstr ""
458
 
459
+ #: app/models/PrliClick.php:211
460
+ msgid "all links"
461
  msgstr ""
462
 
463
+ #: app/models/PrliClick.php:218
464
+ msgid "All clicks"
465
  msgstr ""
466
 
467
+ #: app/models/PrliClick.php:221
468
+ msgid "Unique hits"
 
469
  msgstr ""
470
 
471
+ #: app/models/PrliClick.php:225 pro/app/helpers/PlpPostsHelper.php:66
472
+ msgid "Pretty Link:"
473
  msgstr ""
474
 
475
+ #: app/models/PrliClick.php:225
476
+ msgid "on"
 
 
 
 
477
  msgstr ""
478
 
479
+ #: app/models/PrliClick.php:225 pro/app/models/PlpReport.php:385
480
+ msgid "between"
 
 
481
  msgstr ""
482
 
483
+ #: app/models/PrliClick.php:225 pro/app/models/PlpReport.php:244
484
+ #: pro/app/models/PlpReport.php:385
485
+ msgid "and"
486
  msgstr ""
487
 
488
+ #: app/models/PrliClick.php:230 pro/app/views/links/form.php:35
489
+ #: pro/app/views/links/form.php:68
490
+ msgid "Date"
491
  msgstr ""
492
 
493
+ #: app/models/PrliLink.php:538
494
+ msgid "Target URL can't be blank"
495
  msgstr ""
496
 
497
+ #: app/models/PrliLink.php:542
498
+ msgid "Pretty Link can't be blank"
499
  msgstr ""
500
 
501
+ #: app/models/PrliLink.php:546
502
+ msgid "Target URL must be different than the Pretty Link"
503
  msgstr ""
504
 
505
+ #: app/models/PrliLink.php:550
506
+ msgid "Link URL must be a correctly formatted url"
507
  msgstr ""
508
 
509
+ #: app/models/PrliLink.php:554
510
+ msgid ""
511
+ "Pretty Link slugs must not contain question marks, ampersands or number "
512
+ "signs."
513
  msgstr ""
514
 
515
+ #: app/models/PrliLink.php:558
516
+ msgid "Pretty Link slugs must not end with a slash (\"/\")"
517
  msgstr ""
518
 
519
+ #: app/models/PrliLink.php:563
520
+ msgid ""
521
+ "This Pretty Link Slug is already taken. Check to make sure it isn't being "
522
+ "used by another pretty link, post, page, category or tag slug. If none of "
523
+ "these are true then check to see that this slug isn't the name of a file in "
524
+ "the root folder of your wordpress install."
525
  msgstr ""
526
 
527
+ #: app/models/PrliUtils.php:93
528
+ msgid "*** Pretty Links Debug: %s"
529
  msgstr ""
530
 
531
+ #: app/views/admin/errors.php:7 app/views/shared/errors.php:12
532
+ msgid "ERROR"
533
  msgstr ""
534
 
535
+ #: app/views/admin/update/activation_warning.php:4
536
+ msgid "Error with PRETTYLINK_LICENSE_KEY: %s"
537
  msgstr ""
538
 
539
+ #: app/views/admin/update/activation_warning.php:7
540
+ #: app/views/admin/update/activation_warning.php:14
541
+ msgid "Pretty Link Pro isn't able to get critical automatic updates"
542
  msgstr ""
543
 
544
+ #: app/views/admin/update/activation_warning.php:8
 
545
  msgid ""
546
+ "It looks like you used to have Pretty Link Pro activated with a username and "
547
+ "password but now you need a license key to activate it."
548
  msgstr ""
549
 
550
+ #: app/views/admin/update/activation_warning.php:9
551
  msgid ""
552
+ "You can get your license key by logging in at %1$sPrettyLinkPro.com.%2$s"
 
553
  msgstr ""
554
 
555
+ #: app/views/admin/update/activation_warning.php:10
556
  msgid ""
557
+ "After you paste your license key on the %1$s\"Pretty Link\" -> \"Activate Pro"
558
+ "\" admin page,%2$s you'll start getting updates again."
559
  msgstr ""
560
 
561
+ #: app/views/admin/update/activation_warning.php:15
562
  msgid ""
563
+ "You can purchase a license key at %1$sPrettyLinkPro.com%2$s to enable "
564
+ "automatic updates today."
565
  msgstr ""
566
 
567
+ #: app/views/admin/update/addon_popup.php:4
568
+ msgid "ACTION REQUIRED"
 
 
569
  msgstr ""
570
 
571
+ #: app/views/admin/update/addon_popup.php:5
572
+ msgid ""
573
+ "The %s features in your Pretty Link options have been moved from Pretty Link "
574
+ "into a separate plugin."
575
  msgstr ""
576
 
577
+ #: app/views/admin/update/addon_popup.php:6
578
+ msgid ""
579
+ "Why you ask? Well, it's to streamline and increase the performance of Pretty "
580
+ "Link for you."
581
  msgstr ""
582
 
583
+ #: app/views/admin/update/addon_popup.php:9
584
+ msgid ""
585
+ "And good for you, it looks like you've already got the %1$s Add-on "
586
+ "installed. Just click the \"Activate %2$s Add-on\" button below and you'll "
587
+ "get all these features back now."
588
  msgstr ""
589
 
590
+ #: app/views/admin/update/addon_popup.php:11
591
+ msgid ""
592
+ "Luckily it's easy to get these features back now. Just click the \"Install "
593
+ "%s Add-on\" button below."
594
  msgstr ""
595
 
596
+ #: app/views/admin/update/addon_popup.php:12
597
+ msgid ""
598
+ "If you have problems with the auto-install please refer to %1$sthe user "
599
+ "manual%2$s for manual install instructions."
600
  msgstr ""
601
 
602
+ #: app/views/admin/update/addon_popup.php:18
603
+ msgid "Activate %s Add-on"
604
  msgstr ""
605
 
606
+ #: app/views/admin/update/addon_popup.php:20
607
+ msgid "Install %s Add-on"
608
  msgstr ""
609
 
610
+ #: app/views/admin/update/addon_popup.php:22
611
+ msgid "Don't Show This Message Again"
612
  msgstr ""
613
 
614
+ #: app/views/admin/update/addons.php:3
615
+ msgid "Pretty Link Add-ons"
616
  msgstr ""
617
 
618
+ #: app/views/admin/update/addons.php:8
619
+ msgid "There were no Add-ons found for your license or lack thereof..."
620
  msgstr ""
621
 
622
+ #: app/views/admin/update/addons.php:14
623
+ msgid "Add-on"
624
  msgstr ""
625
 
626
+ #: app/views/admin/update/addons.php:15
627
+ msgid "Description"
628
  msgstr ""
629
 
630
+ #: app/views/admin/update/addons.php:16 app/views/admin/update/addons.php:54
631
+ msgid "Install"
632
  msgstr ""
633
 
634
+ #: app/views/admin/update/addons.php:42
635
+ msgid "(Update Available)"
636
  msgstr ""
637
 
638
+ #: app/views/admin/update/addons.php:50
639
+ msgid "Installed & Active"
640
  msgstr ""
641
 
642
+ #: app/views/admin/update/addons.php:52
643
+ msgid "Installed & Inactive"
644
  msgstr ""
645
 
646
+ #: app/views/admin/update/edge_updates.php:4
647
+ msgid ""
648
+ "Include Pretty Link Pro edge (development) releases in automatic updates "
649
+ "(not recommended for production websites)"
650
  msgstr ""
651
 
652
+ #: app/views/admin/update/edge_updates.php:4
653
+ msgid "Loading..."
654
  msgstr ""
655
 
656
+ #: app/views/admin/update/license.php:4
657
+ msgid "Pretty Link Pro License"
658
  msgstr ""
659
 
660
+ #: app/views/admin/update/license.php:7
661
+ msgid ""
662
+ "You must have a License Key to enable automatic updates for Pretty Link Pro. "
663
+ "If you don't have a License please go to %1$s to get one. If you do have a "
664
+ "license you can login at %2$s to manage your licenses and site activations."
665
  msgstr ""
666
 
667
+ #: app/views/admin/update/license.php:13
668
+ msgid "Enter Your Pretty Link Pro License Key:"
669
  msgstr ""
670
 
671
+ #: app/views/admin/update/license.php:20
672
+ msgid "Activate License Key on %s"
673
  msgstr ""
674
 
675
+ #: app/views/admin/update/license.php:30 app/views/links/form.php:221
676
  msgid ""
677
+ "It looks like you're missing out on quite a few awesome features because you "
678
+ "haven't %1$sUpgraded to Pretty Link Pro%2$s yet. Here are just a few of the "
679
+ "features you're missing out on:"
680
  msgstr ""
681
 
682
+ #: app/views/admin/update/license.php:36 app/views/links/form.php:225
683
+ msgid "Cloaked Redirects"
 
684
  msgstr ""
685
 
686
+ #: app/views/admin/update/license.php:37 app/views/links/form.php:226
687
+ msgid "Keyword Link Replacements"
688
  msgstr ""
689
 
690
+ #: app/views/admin/update/license.php:38 app/views/links/form.php:227
691
+ msgid "Weighted Link Rotations"
692
  msgstr ""
693
 
694
+ #: app/views/admin/update/license.php:39 app/views/links/form.php:228
695
+ msgid "Link Expirations"
696
  msgstr ""
697
 
698
+ #: app/views/admin/update/license.php:40 app/views/links/form.php:229
699
+ #: pro/app/views/links/form.php:281 pro/app/views/links/form.php:284
700
+ msgid "Geographic Redirects"
701
  msgstr ""
702
 
703
+ #: app/views/admin/update/license.php:41 app/views/links/form.php:230
704
+ msgid "Technology Based Redirects"
705
  msgstr ""
706
 
707
+ #: app/views/admin/update/license.php:42 app/views/links/form.php:231
708
+ #: pro/app/views/links/form.php:309 pro/app/views/links/form.php:312
709
+ msgid "Time Period Redirects"
710
  msgstr ""
711
 
712
+ #: app/views/admin/update/license.php:43 app/views/links/form.php:232
713
+ msgid "Double Redirects"
714
  msgstr ""
715
 
716
+ #: app/views/admin/update/license.php:44 app/views/links/form.php:233
717
+ msgid "Split Tests"
 
 
 
 
 
 
 
718
  msgstr ""
719
 
720
+ #: app/views/admin/update/license.php:45 app/views/links/form.php:234
721
+ msgid "Automated Link Disclosures"
722
  msgstr ""
723
 
724
+ #: app/views/admin/update/license.php:46 app/views/links/form.php:235
725
+ msgid "... and much more"
726
  msgstr ""
727
 
728
+ #: app/views/admin/update/license.php:51 app/views/links/form.php:238
729
+ msgid "Upgrade to Pro today!"
730
  msgstr ""
731
 
732
+ #: app/views/admin/update/license.php:55
733
+ msgid "Active License Key Information:"
 
734
  msgstr ""
735
 
736
+ #: app/views/admin/update/license.php:58
737
+ msgid "License Key:"
738
  msgstr ""
739
 
740
+ #: app/views/admin/update/license.php:62
741
+ msgid "Status:"
742
  msgstr ""
743
 
744
+ #: app/views/admin/update/license.php:63
745
+ msgid "<b>Active on %s</b>"
746
  msgstr ""
747
 
748
+ #: app/views/admin/update/license.php:66
749
+ msgid "Product:"
 
 
 
750
  msgstr ""
751
 
752
+ #: app/views/admin/update/license.php:70
753
+ msgid "Activations:"
754
  msgstr ""
755
 
756
+ #: app/views/admin/update/license.php:74
757
+ msgid ""
758
+ "Are you sure? Pretty Link Pro will not be functional on %s if this License "
759
+ "Key is deactivated."
760
  msgstr ""
761
 
762
+ #: app/views/admin/update/license.php:74
763
+ msgid "Deactivate License Key on %s"
 
 
 
764
  msgstr ""
765
 
766
+ #: app/views/admin/update/license.php:77
767
+ msgid "Upgrade plugin to Pro"
768
  msgstr ""
769
 
770
+ #: app/views/admin/update/license.php:82
771
+ msgid "You're currently running version %s of Pretty Link Pro"
772
  msgstr ""
773
 
774
+ #: app/views/admin/update/ui.php:3
775
+ msgid "Activate Pretty Link Pro"
 
 
 
776
  msgstr ""
777
 
778
+ #: app/views/admin/update/ui.php:16
779
+ msgid "License"
780
  msgstr ""
781
 
782
+ #: app/views/admin/update/ui.php:17
783
+ msgid "Add-Ons"
 
 
 
 
784
  msgstr ""
785
 
786
+ #: app/views/clicks/csv_download.php:3
787
+ msgid "Download Clicks"
788
  msgstr ""
789
 
790
+ #: app/views/clicks/csv_download.php:6
791
+ msgid "Click Reports:"
 
 
792
  msgstr ""
793
 
794
+ #: app/views/clicks/csv_download.php:7
795
+ msgid "All clicks on %s"
796
  msgstr ""
797
 
798
+ #: app/views/clicks/csv_download.php:24
799
+ msgid "Clicks %d-%d (%d Records)"
800
  msgstr ""
801
 
802
+ #: app/views/clicks/list.php:6
803
+ msgid "For"
804
  msgstr ""
805
 
806
+ #: app/views/clicks/list.php:11 pro/app/views/reports/custom-report.php:12
807
+ #: pro/app/views/reports/split-test-report.php:9
808
+ msgid "Customize Report"
809
  msgstr ""
810
 
811
+ #: app/views/clicks/list.php:18 pro/app/views/reports/split-test-report.php:9
812
+ msgid "Back to Links"
813
  msgstr ""
814
 
815
+ #: app/views/clicks/list.php:21
816
+ msgid "Back to Clicks"
 
 
 
 
817
  msgstr ""
818
 
819
+ #: app/views/clicks/list.php:30
820
+ msgid "Type:"
821
  msgstr ""
822
 
823
+ #: app/views/clicks/list.php:32 pro/app/models/PlpReport.php:251
824
+ #: pro/app/models/PlpReport.php:260 pro/app/models/PlpReport.php:397
825
+ #: pro/app/models/PlpReport.php:404
826
+ msgid "All Clicks"
827
  msgstr ""
828
 
829
+ #: app/views/clicks/list.php:33 pro/app/models/PlpReport.php:251
830
+ #: pro/app/models/PlpReport.php:260 pro/app/models/PlpReport.php:397
831
+ #: pro/app/models/PlpReport.php:404
832
+ msgid "Unique Clicks"
 
 
833
  msgstr ""
834
 
835
+ #: app/views/clicks/list.php:37 pro/app/views/reports/custom-report.php:16
836
+ #: pro/app/views/reports/split-test-report.php:13
837
+ msgid "Date Range:"
838
  msgstr ""
839
 
840
+ #: app/views/clicks/list.php:39
841
+ msgid "to"
842
  msgstr ""
843
 
844
+ #: app/views/clicks/list.php:43 app/views/groups/edit.php:54
845
+ #: app/views/groups/new.php:58 app/views/links/edit.php:16
846
+ #: app/views/links/list.php:87 app/views/links/new.php:15
847
+ #: pro/app/views/reports/custom-report.php:22
848
+ #: pro/app/views/reports/edit.php:109 pro/app/views/reports/new.php:109
849
+ msgid "Cancel"
850
+ msgstr ""
851
+
852
+ #: app/views/clicks/list.php:64 app/views/groups/list.php:24
853
+ #: app/views/links/list.php:30 pro/app/views/reports/list.php:20
854
+ msgid "Reset"
855
+ msgstr ""
856
+
857
+ #: app/views/clicks/list.php:73 app/views/clicks/list.php:171
858
+ msgid "Browser"
859
+ msgstr ""
860
+
861
+ #: app/views/clicks/list.php:75 app/views/clicks/list.php:172
862
+ msgid "OS"
863
+ msgstr ""
864
+
865
+ #: app/views/clicks/list.php:79 app/views/clicks/list.php:174
866
+ msgid "IP"
867
+ msgstr ""
868
+
869
+ #: app/views/clicks/list.php:83 app/views/clicks/list.php:176
870
+ msgid "Visitor"
871
+ msgstr ""
872
+
873
+ #: app/views/clicks/list.php:87 app/views/clicks/list.php:178
874
+ msgid "Timestamp"
875
+ msgstr ""
876
+
877
+ #: app/views/clicks/list.php:91 app/views/clicks/list.php:180
878
+ msgid "Host"
879
+ msgstr ""
880
+
881
+ #: app/views/clicks/list.php:95 app/views/clicks/list.php:182
882
+ msgid "URI"
883
+ msgstr ""
884
+
885
+ #: app/views/clicks/list.php:98 app/views/clicks/list.php:183
886
+ msgid "Referrer"
887
+ msgstr ""
888
+
889
+ #: app/views/clicks/list.php:101 app/views/clicks/list.php:184
890
+ #: pro/app/models/PlpReport.php:251 pro/app/models/PlpReport.php:260
891
+ msgid "Link"
892
+ msgstr ""
893
+
894
+ #: app/views/clicks/list.php:111
895
+ msgid "No Clicks have been recorded yet"
896
+ msgstr ""
897
+
898
+ #: app/views/clicks/list.php:147
899
+ msgid "View All Activity for IP Address: %s"
900
+ msgstr ""
901
+
902
+ #: app/views/clicks/list.php:150
903
+ msgid "View All Activity for Visitor: %s"
904
+ msgstr ""
905
+
906
+ #: app/views/clicks/list.php:190
907
+ msgid "Download CSV"
908
+ msgstr ""
909
+
910
+ #: app/views/groups/edit.php:4
911
+ msgid "Edit Group"
912
+ msgstr ""
913
+
914
+ #: app/views/groups/edit.php:15 pro/app/views/reports/edit.php:15
915
+ msgid "Name:"
916
+ msgstr ""
917
+
918
+ #: app/views/groups/edit.php:17 app/views/groups/new.php:23
919
+ msgid "This is how you'll identify your Group."
920
+ msgstr ""
921
+
922
+ #: app/views/groups/edit.php:20 app/views/groups/new.php:26
923
+ msgid "Description:"
924
+ msgstr ""
925
+
926
+ #: app/views/groups/edit.php:22 app/views/groups/new.php:28
927
+ msgid "A Description of this group."
928
+ msgstr ""
929
+
930
+ #: app/views/groups/edit.php:25 app/views/groups/new.php:31
931
+ msgid "Links:"
932
+ msgstr ""
933
+
934
+ #: app/views/groups/edit.php:30 app/views/groups/list.php:39
935
+ #: app/views/groups/list.php:81 app/views/groups/new.php:36
936
+ #: app/views/links/list.php:46 app/views/links/list.php:150
937
+ #: pro/app/views/reports/edit.php:85 pro/app/views/reports/list.php:30
938
+ #: pro/app/views/reports/list.php:70 pro/app/views/reports/new.php:85
939
+ msgid "Name"
940
+ msgstr ""
941
+
942
+ #: app/views/groups/edit.php:31 app/views/groups/new.php:37
943
+ msgid "Current Group"
944
+ msgstr ""
945
+
946
+ #: app/views/groups/edit.php:48 app/views/groups/new.php:52
947
+ msgid ""
948
+ "Select some links for this group. <strong>Note: each link can only be in one "
949
+ "group at a time.</strong>"
950
+ msgstr ""
951
+
952
+ #: app/views/groups/edit.php:54 app/views/links/edit.php:16
953
+ #: app/views/links/list.php:88 app/views/options/form.php:194
954
+ #: pro/app/views/reports/edit.php:109
955
+ msgid "Update"
956
+ msgstr ""
957
+
958
+ #: app/views/groups/list.php:7
959
+ msgid "Add Group"
960
+ msgstr ""
961
+
962
+ #: app/views/groups/list.php:40 app/views/groups/list.php:68
963
+ #: app/views/groups/list.php:82 app/views/links/list.php:7
964
+ #: app/views/links/list.php:51 app/views/links/list.php:155
965
+ #: app/views/options/form.php:39 pro/app/views/reports/list.php:32
966
+ #: pro/app/views/reports/list.php:72
967
+ msgid "Links"
968
+ msgstr ""
969
+
970
+ #: app/views/groups/list.php:41 app/views/groups/list.php:83
971
+ #: app/views/links/list.php:50 app/views/links/list.php:154
972
+ #: pro/app/views/reports/list.php:33 pro/app/views/reports/list.php:73
973
+ msgid "Created"
974
+ msgstr ""
975
+
976
+ #: app/views/groups/list.php:50
977
+ msgid "No Pretty Link Groups were found"
978
+ msgstr ""
979
+
980
+ #: app/views/groups/list.php:67
981
+ msgid "Are you sure you want to delete your %s Pretty Link Group?"
982
+ msgstr ""
983
+
984
+ #: app/views/groups/list.php:69
985
+ msgid "View hits in %s"
986
+ msgstr ""
987
+
988
+ #: app/views/groups/new.php:9
989
+ msgid "New Group"
990
+ msgstr ""
991
+
992
+ #: app/views/groups/new.php:21 pro/app/views/reports/new.php:14
993
+ msgid "Name*:"
994
+ msgstr ""
995
+
996
+ #: app/views/groups/new.php:58 app/views/links/new.php:15
997
+ msgid "Create"
998
+ msgstr ""
999
+
1000
+ #: app/views/links/edit.php:4
1001
+ msgid "Edit Link"
1002
+ msgstr ""
1003
+
1004
+ #: app/views/links/form.php:6
1005
+ msgid "Redirection*"
1006
+ msgstr ""
1007
+
1008
+ #: app/views/links/form.php:9 app/views/options/form.php:58
1009
+ #: app/views/options/form.php:60
1010
+ msgid "Redirection Type"
1011
+ msgstr ""
1012
+
1013
+ #: app/views/links/form.php:10
1014
+ msgid "This is the method of redirection for your link."
1015
+ msgstr ""
1016
+
1017
+ #: app/views/links/form.php:24
1018
+ msgid ""
1019
+ "To Enable Cloaked, Meta-Refresh, Javascript, Pixel and Pretty Bar "
1020
+ "Redirection, upgrade to %sPretty Link Pro%s"
1021
+ msgstr ""
1022
+
1023
+ #: app/views/links/form.php:31
1024
+ msgid "Target URL*"
1025
+ msgstr ""
1026
+
1027
+ #: app/views/links/form.php:34 app/views/shared/tinymce_form_popup.php:44
1028
+ #: app/views/shared/tinymce_form_popup.php:105 app/views/widgets/widget.php:13
1029
+ msgid "Target URL"
1030
+ msgstr ""
1031
+
1032
+ #: app/views/links/form.php:35
1033
+ msgid "This is the URL that your Pretty Link will redirect to."
1034
+ msgstr ""
1035
+
1036
+ #: app/views/links/form.php:44
1037
+ msgid "Pretty Link*"
1038
+ msgstr ""
1039
+
1040
+ #: app/views/links/form.php:48
1041
+ msgid ""
1042
+ "This is how your pretty link will appear. You can edit the Pretty Link slug "
1043
+ "here."
1044
+ msgstr ""
1045
+
1046
+ #: app/views/links/form.php:57 app/views/links/form.php:60
1047
+ msgid "Title"
1048
+ msgstr ""
1049
+
1050
+ #: app/views/links/form.php:61
1051
+ msgid ""
1052
+ "Leave this blank and Pretty Link will attempt to detect the title from the "
1053
+ "target url. Alternatively you can enter a custom title here."
1054
+ msgstr ""
1055
+
1056
+ #: app/views/links/form.php:70 app/views/links/form.php:73
1057
+ msgid "Notes"
1058
+ msgstr ""
1059
+
1060
+ #: app/views/links/form.php:74
1061
+ msgid ""
1062
+ "This is a field where you can enter notes about a particular link. This "
1063
+ "notes field is mainly for your own link management needs. It isn't currently "
1064
+ "used anywhere on the front end."
1065
+ msgstr ""
1066
+
1067
+ #: app/views/links/form.php:84
1068
+ msgid "Advanced Options"
1069
+ msgstr ""
1070
+
1071
+ #: app/views/links/form.php:91 app/views/links/list.php:49
1072
+ #: app/views/links/list.php:73 app/views/links/list.php:153
1073
+ #: pro/app/views/options/autocreate.php:30 pro/app/views/reports/edit.php:86
1074
+ #: pro/app/views/reports/new.php:86
1075
+ msgid "Group"
1076
+ msgstr ""
1077
+
1078
+ #: app/views/links/form.php:94
1079
+ msgid "Link Group"
1080
+ msgstr ""
1081
+
1082
+ #: app/views/links/form.php:95
1083
+ msgid "Select a Group for this Link"
1084
+ msgstr ""
1085
+
1086
+ #: app/views/links/form.php:109 pro/app/views/options/autocreate.php:41
1087
+ msgid "Add a New Group"
1088
+ msgstr ""
1089
+
1090
+ #: app/views/links/form.php:114
1091
+ msgid "No Follow"
1092
+ msgstr ""
1093
+
1094
+ #: app/views/links/form.php:117
1095
+ msgid "Nofollow Link"
1096
+ msgstr ""
1097
+
1098
+ #: app/views/links/form.php:118
1099
+ msgid "Add a nofollow and noindex to this link's http redirect header"
1100
+ msgstr ""
1101
+
1102
+ #: app/views/links/form.php:127 app/views/links/form.php:130
1103
+ msgid "Delay Redirect"
1104
+ msgstr ""
1105
+
1106
+ #: app/views/links/form.php:131
1107
+ msgid "Time in seconds to wait before redirecting"
1108
+ msgstr ""
1109
+
1110
+ #: app/views/links/form.php:140 app/views/links/form.php:143
1111
+ msgid "Parameter Forwarding"
1112
+ msgstr ""
1113
+
1114
+ #: app/views/links/form.php:144
1115
+ msgid "Forward parameters passed to this link onto the Target URL"
1116
+ msgstr ""
1117
+
1118
+ #: app/views/links/form.php:153 app/views/links/form.php:156
1119
+ #: app/views/shared/tinymce_form_popup.php:85
1120
+ msgid "Tracking"
1121
+ msgstr ""
1122
+
1123
+ #: app/views/links/form.php:157
1124
+ msgid "Enable Pretty Link's built-in hit (click) tracking"
1125
+ msgstr ""
1126
+
1127
+ #: app/views/links/form.php:166 pro/app/models/PlpUtils.php:42
1128
+ #: pro/app/views/links/bulk-edit.php:10
1129
+ msgid "Google Analytics"
1130
+ msgstr ""
1131
+
1132
+ #: app/views/links/form.php:169
1133
+ msgid "Google Analytics Tracking"
1134
+ msgstr ""
1135
+
1136
+ #: app/views/links/form.php:170
1137
+ msgid ""
1138
+ "Requires the Google Analyticator, Google Analytics by MonsterInsights "
1139
+ "(formerly Yoast) or Google Analytics Plugin installed and configured for "
1140
+ "this to work."
1141
+ msgstr ""
1142
+
1143
+ #: app/views/links/form.php:180
1144
+ msgid ""
1145
+ "It appears that <strong>%s</strong> is currently installed. Pretty Link will "
1146
+ "attempt to use its settings to track this link."
1147
+ msgstr ""
1148
+
1149
+ #: app/views/links/form.php:185
1150
+ msgid ""
1151
+ "No Google Analytics Plugin is currently installed. Pretty Link cannot track "
1152
+ "links using Google Analytics until one is."
1153
+ msgstr ""
1154
+
1155
+ #: app/views/links/form.php:198
1156
+ msgid "Pro Options"
1157
+ msgstr ""
1158
+
1159
+ #: app/views/links/form.php:218
1160
+ msgid "Oops!"
1161
+ msgstr ""
1162
+
1163
+ #: app/views/links/list.php:8
1164
+ msgid "Add Pretty Link"
1165
+ msgstr ""
1166
+
1167
+ #: app/views/links/list.php:14
1168
+ msgid ""
1169
+ "WordPress Must be Configured:</strong> Pretty Link won't work until you "
1170
+ "select a Permalink Structure other than 'Default'"
1171
+ msgstr ""
1172
+
1173
+ #: app/views/links/list.php:14 app/views/options/form.php:12
1174
+ msgid "Permalink Settings"
1175
+ msgstr ""
1176
+
1177
+ #: app/views/links/list.php:39
1178
+ msgid "Back to Groups"
1179
+ msgstr ""
1180
+
1181
+ #: app/views/links/list.php:48 app/views/links/list.php:152
1182
+ msgid "Clicks / Uniq"
1183
+ msgstr ""
1184
+
1185
+ #: app/views/links/list.php:62
1186
+ msgid "Bulk Edit"
1187
+ msgstr ""
1188
+
1189
+ #: app/views/links/list.php:69
1190
+ msgid "Basic Link Options"
1191
+ msgstr ""
1192
+
1193
+ #: app/views/links/list.php:70 app/views/shared/tinymce_form_popup.php:60
1194
+ msgid "Redirect Type"
1195
+ msgstr ""
1196
+
1197
+ #: app/views/links/list.php:76
1198
+ msgid "Track"
1199
+ msgstr ""
1200
+
1201
+ #: app/views/links/list.php:78 app/views/shared/tinymce_form_popup.php:77
1202
+ msgid "Nofollow"
1203
+ msgstr ""
1204
+
1205
+ #: app/views/links/list.php:80
1206
+ msgid "Forward Params"
1207
+ msgstr ""
1208
+
1209
+ #: app/views/links/list.php:88
1210
+ msgid "Bulk Update"
1211
+ msgstr ""
1212
+
1213
+ #: app/views/links/list.php:98
1214
+ msgid "No Pretty Links were found, %sCreate One%s"
1215
+ msgstr ""
1216
+
1217
+ #: app/views/links/list.php:139
1218
+ msgid "Target URL:"
1219
+ msgstr ""
1220
+
1221
+ #: app/views/links/new.php:4
1222
+ msgid "Add Link"
1223
+ msgstr ""
1224
+
1225
+ #: app/views/options/form.php:4
1226
+ msgid "User Manual"
1227
+ msgstr ""
1228
+
1229
+ #: app/views/options/form.php:12
1230
+ msgid "WordPress Must be Configured:"
1231
+ msgstr ""
1232
+
1233
+ #: app/views/options/form.php:12
1234
+ msgid ""
1235
+ "Pretty Link won't work until you select a Permalink Structure other than "
1236
+ "'Default'"
1237
+ msgstr ""
1238
+
1239
+ #: app/views/options/form.php:37
1240
+ msgid "General"
1241
+ msgstr ""
1242
+
1243
+ #: app/views/options/form.php:40
1244
+ msgid "Reporting"
1245
+ msgstr ""
1246
+
1247
+ #: app/views/options/form.php:47
1248
+ msgid "General Options"
1249
+ msgstr ""
1250
+
1251
+ #: app/views/options/form.php:53
1252
+ msgid "Default Link Options"
1253
+ msgstr ""
1254
+
1255
+ #: app/views/options/form.php:61
1256
+ msgid ""
1257
+ "Select the type of redirection you want your newly created links to have."
1258
+ msgstr ""
1259
+
1260
+ #: app/views/options/form.php:70 app/views/options/form.php:72
1261
+ msgid "Enable Tracking"
1262
+ msgstr ""
1263
+
1264
+ #: app/views/options/form.php:73
1265
+ msgid "Default all new links to be tracked."
1266
+ msgstr ""
1267
+
1268
+ #: app/views/options/form.php:82
1269
+ msgid "Enable No Follow"
1270
+ msgstr ""
1271
+
1272
+ #: app/views/options/form.php:84
1273
+ msgid "Add No Follow"
1274
+ msgstr ""
1275
+
1276
+ #: app/views/options/form.php:85
1277
+ msgid "Add the 'nofollow' attribute by default to new links."
1278
+ msgstr ""
1279
+
1280
+ #: app/views/options/form.php:94
1281
+ msgid "Enable Permalink Fix"
1282
+ msgstr ""
1283
+
1284
+ #: app/views/options/form.php:96
1285
+ msgid "Use fix for index.php Permalink Structure"
1286
+ msgstr ""
1287
+
1288
+ #: app/views/options/form.php:97
1289
+ msgid ""
1290
+ "This option should ONLY be checked if you have elements in your permalink "
1291
+ "structure that must be present in any link on your site. For example, some "
1292
+ "WordPress installs don't have the benefit of full rewrite capabilities and "
1293
+ "in this case you'd need an index.php included in each link (http://example."
1294
+ "com/index.php/mycoolslug instead of http://example.com/mycoolslug). If this "
1295
+ "is the case for you then check this option but the vast majority of users "
1296
+ "will want to keep this unchecked."
1297
+ msgstr ""
1298
+
1299
+ #: app/views/options/form.php:110
1300
+ msgid "Reporting Options"
1301
+ msgstr ""
1302
+
1303
+ #: app/views/options/form.php:115 app/views/options/form.php:117
1304
+ msgid "Tracking Style"
1305
+ msgstr ""
1306
+
1307
+ #: app/views/options/form.php:118
1308
+ msgid ""
1309
+ "Changing your tracking style can affect the accuracy of your existing "
1310
+ "statistics. Extended mode must be used for Conversion reporting."
1311
+ msgstr ""
1312
+
1313
+ #: app/views/options/form.php:122
1314
+ msgid "Normal Tracking"
1315
+ msgstr ""
1316
+
1317
+ #: app/views/options/form.php:123
1318
+ msgid "Extended Tracking (more stats / slower performance)"
1319
+ msgstr ""
1320
+
1321
+ #: app/views/options/form.php:124
1322
+ msgid "Simple Click Count Tracking (less stats / faster performance)"
1323
+ msgstr ""
1324
+
1325
+ #: app/views/options/form.php:130
1326
+ msgid "Excluded IP Addresses:"
1327
+ msgstr ""
1328
+
1329
+ #: app/views/options/form.php:132
1330
+ msgid "Excluded IP Addresses"
1331
+ msgstr ""
1332
+
1333
+ #: app/views/options/form.php:133
1334
+ msgid ""
1335
+ "Enter IP Addresses or IP Ranges you want to exclude from your Click data and "
1336
+ "Stats. Each IP Address should be separated by commas. Example: 192.168.0.1, "
1337
+ "192.168.2.1, 192.168.3.4 or 192.168.*.*<br/><br/><strong>FYI, your current "
1338
+ "IP address is %s."
1339
+ msgstr ""
1340
+
1341
+ #: app/views/options/form.php:143
1342
+ msgid "Auto-Trim Clicks"
1343
+ msgstr ""
1344
+
1345
+ #: app/views/options/form.php:145
1346
+ msgid "Automatically Trim Clicks"
1347
+ msgstr ""
1348
+
1349
+ #: app/views/options/form.php:146
1350
+ msgid ""
1351
+ "Will automatically delete all hits older than 90 days. We strongly recommend "
1352
+ "doing this to keep your database performance up. This will permanently "
1353
+ "delete this click data, and is not undo-able. "
1354
+ msgstr ""
1355
+
1356
+ #: app/views/options/form.php:155 app/views/options/form.php:157
1357
+ msgid "Filter Robots"
1358
+ msgstr ""
1359
+
1360
+ #: app/views/options/form.php:158
1361
+ msgid ""
1362
+ "Filter known Robots and unidentifiable browser clients from your click data, "
1363
+ "stats and reports. Works best if Tracking Style above is set to 'Extended "
1364
+ "Tracking'."
1365
+ msgstr ""
1366
+
1367
+ #: app/views/options/form.php:174
1368
+ msgid "Whitelist IP Addresses"
1369
+ msgstr ""
1370
+
1371
+ #: app/views/options/form.php:176
1372
+ msgid "Whiltelist IP Addresses"
1373
+ msgstr ""
1374
+
1375
+ #: app/views/options/form.php:177
1376
+ msgid ""
1377
+ "Enter IP Addresses or IP Ranges you want to always include in your Click "
1378
+ "data and Stats even if they are flagged as robots. Each IP Address should be "
1379
+ "separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or "
1380
+ "192.168.*.*"
1381
+ msgstr ""
1382
+
1383
+ #: app/views/shared/link-table-nav.php:13
1384
+ #: app/views/shared/link-table-nav.php:104 app/views/shared/table-nav.php:12
1385
+ msgid "Displaying"
1386
+ msgstr ""
1387
+
1388
+ #: app/views/shared/nav.php:6
1389
+ msgid "Pro Manual"
1390
+ msgstr ""
1391
+
1392
+ #: app/views/shared/nav.php:14
1393
+ msgid "Connect:"
1394
+ msgstr ""
1395
+
1396
+ #: app/views/shared/nav.php:18
1397
+ msgid "Get Help:"
1398
+ msgstr ""
1399
+
1400
+ #: app/views/shared/nav.php:19
1401
+ msgid "Tutorials"
1402
+ msgstr ""
1403
+
1404
+ #: app/views/shared/public_link.php:19
1405
+ msgid "Here is your Pretty Link"
1406
+ msgstr ""
1407
+
1408
+ #: app/views/shared/public_link.php:35
1409
+ msgid "Here's your pretty link for:"
1410
+ msgstr ""
1411
+
1412
+ #: app/views/shared/public_link.php:39
1413
+ msgid "send this link to:"
1414
+ msgstr ""
1415
+
1416
+ #: app/views/shared/public_link.php:42
1417
+ msgid "back"
1418
+ msgstr ""
1419
+
1420
+ #: app/views/shared/tinymce_form_popup.php:4
1421
+ msgid "Insert Pretty Link"
1422
+ msgstr ""
1423
+
1424
+ #: app/views/shared/tinymce_form_popup.php:41
1425
+ msgid "Create New Pretty Link"
1426
+ msgstr ""
1427
+
1428
+ #: app/views/shared/tinymce_form_popup.php:48
1429
+ msgid "Slug"
1430
+ msgstr ""
1431
+
1432
+ #: app/views/shared/tinymce_form_popup.php:51
1433
+ msgid "valid"
1434
+ msgstr ""
1435
+
1436
+ #: app/views/shared/tinymce_form_popup.php:52
1437
+ msgid "invalid"
1438
+ msgstr ""
1439
+
1440
+ #: app/views/shared/tinymce_form_popup.php:56
1441
+ #: app/views/shared/tinymce_form_popup.php:113
1442
+ msgid "Link Text"
1443
+ msgstr ""
1444
+
1445
+ #: app/views/shared/tinymce_form_popup.php:62
1446
+ #: app/views/shared/tinymce_form_popup.php:79
1447
+ #: app/views/shared/tinymce_form_popup.php:87
1448
+ #: pro/app/views/tools/generator.php:46 pro/app/views/tools/generator.php:51
1449
+ #: pro/app/widgets/PlpPublicLinksWidget.php:59
1450
+ #: pro/app/widgets/PlpPublicLinksWidget.php:71
1451
+ msgid "Default"
1452
+ msgstr ""
1453
+
1454
+ #: app/views/shared/tinymce_form_popup.php:68
1455
+ #: pro/app/controllers/PlpLinksController.php:628
1456
+ #: pro/app/controllers/PlpLinksController.php:684
1457
+ #: pro/app/views/options/nav.php:5
1458
+ msgid "Pretty Bar"
1459
+ msgstr ""
1460
+
1461
+ #: app/views/shared/tinymce_form_popup.php:69
1462
+ #: pro/app/controllers/PlpLinksController.php:629
1463
+ msgid "Cloaked"
1464
+ msgstr ""
1465
+
1466
+ #: app/views/shared/tinymce_form_popup.php:70
1467
+ #: pro/app/controllers/PlpLinksController.php:630
1468
+ #: pro/app/controllers/PlpLinksController.php:686
1469
+ msgid "Pixel"
1470
+ msgstr ""
1471
+
1472
+ #: app/views/shared/tinymce_form_popup.php:71
1473
+ #: pro/app/controllers/PlpLinksController.php:631
1474
+ #: pro/app/controllers/PlpLinksController.php:687
1475
+ msgid "Meta Refresh"
1476
+ msgstr ""
1477
+
1478
+ #: app/views/shared/tinymce_form_popup.php:72
1479
+ #: pro/app/controllers/PlpLinksController.php:632
1480
+ #: pro/app/controllers/PlpLinksController.php:688
1481
+ msgid "Javascript"
1482
+ msgstr ""
1483
+
1484
+ #: app/views/shared/tinymce_form_popup.php:80
1485
+ #: app/views/shared/tinymce_form_popup.php:88
1486
+ msgid "Enabled"
1487
+ msgstr ""
1488
+
1489
+ #: app/views/shared/tinymce_form_popup.php:81
1490
+ #: app/views/shared/tinymce_form_popup.php:89
1491
+ msgid "Disabled"
1492
+ msgstr ""
1493
+
1494
+ #: app/views/shared/tinymce_form_popup.php:94
1495
+ #: app/views/shared/tinymce_form_popup.php:118
1496
+ msgid "Open this Pretty Link in a new window/tab"
1497
+ msgstr ""
1498
+
1499
+ #: app/views/shared/tinymce_form_popup.php:97
1500
+ msgid "Insert New Pretty Link"
1501
+ msgstr ""
1502
+
1503
+ #: app/views/shared/tinymce_form_popup.php:101
1504
+ msgid "Use Existing Pretty Link"
1505
+ msgstr ""
1506
+
1507
+ #: app/views/shared/tinymce_form_popup.php:103
1508
+ msgid "Search by Slug, Title, or Target URL..."
1509
+ msgstr ""
1510
+
1511
+ #: app/views/shared/tinymce_form_popup.php:122
1512
+ msgid "Insert Existing Pretty Link"
1513
+ msgstr ""
1514
+
1515
+ #: app/views/tools/form.php:18 app/views/tools/form.php:25
1516
+ msgid "Bookmarklet"
1517
+ msgstr ""
1518
+
1519
+ #: app/views/tools/form.php:19 app/views/tools/form.php:48
1520
+ msgid "Trim Clicks"
1521
+ msgstr ""
1522
+
1523
+ #: app/views/tools/form.php:26 pro/app/views/tools/generator.php:31
1524
+ #: pro/app/views/tools/generator.php:41
1525
+ msgid "Get Pretty Link"
1526
+ msgstr ""
1527
+
1528
+ #: app/views/tools/form.php:28
1529
+ msgid "Install Pretty Link Bookmarklet"
1530
+ msgstr ""
1531
+
1532
+ #: app/views/tools/form.php:29
1533
+ msgid ""
1534
+ "Just drag this \"Get PrettyLink\" link to your toolbar to install the "
1535
+ "bookmarklet. As you browse the web, you can just click this bookmarklet to "
1536
+ "create a pretty link from the current url you're looking at. <a href="
1537
+ "\"http://blairwilliams.com/pretty-link-bookmarklet/\">(more help)</a>"
1538
+ msgstr ""
1539
+
1540
+ #: app/views/tools/form.php:31
1541
+ msgid "Show iPhone Bookmarklet Instructions"
1542
+ msgstr ""
1543
+
1544
+ #: app/views/tools/form.php:35
1545
+ msgid ""
1546
+ "<strong>Note:</strong> iPhone users can install this bookmarklet in their "
1547
+ "Safari to create Pretty Links with the following steps:"
1548
+ msgstr ""
1549
+
1550
+ #: app/views/tools/form.php:37
1551
+ msgid "Copy this text:"
1552
+ msgstr ""
1553
+
1554
+ #: app/views/tools/form.php:38
1555
+ msgid "Tap the + button at the bottom of the screen"
1556
+ msgstr ""
1557
+
1558
+ #: app/views/tools/form.php:39
1559
+ msgid ""
1560
+ "Choose to share the page, then click on \"Bookmark\". We recommend saving it "
1561
+ "in your Favorites folder. Rename your bookmark to \"Get PrettyLink\" (or "
1562
+ "whatever you want) and then \"Save\""
1563
+ msgstr ""
1564
+
1565
+ #: app/views/tools/form.php:40
1566
+ msgid ""
1567
+ "Navigate through your Bookmarks until you find the new bookmark and click "
1568
+ "\"Edit\""
1569
+ msgstr ""
1570
+
1571
+ #: app/views/tools/form.php:41
1572
+ msgid "Delete all the text from the address"
1573
+ msgstr ""
1574
+
1575
+ #: app/views/tools/form.php:42
1576
+ msgid "Paste the text you copied in Step 1 into the address field"
1577
+ msgstr ""
1578
+
1579
+ #: app/views/tools/form.php:43
1580
+ msgid "To save the changes hit \"Bookmarks\" and <strong>you're done!"
1581
+ msgstr ""
1582
+
1583
+ #: app/views/tools/form.php:43
1584
+ msgid ""
1585
+ "Now when you find a page you want to save off as a Pretty Link, just click "
1586
+ "the \"Bookmarks\" icon at the bottom of the screen and select your \"Get "
1587
+ "PrettyLink\" bookmarklet."
1588
+ msgstr ""
1589
+
1590
+ #: app/views/tools/form.php:50
1591
+ msgid ""
1592
+ "Pretty Link is already automatically trimming Clicks older than 90 days. "
1593
+ "Although not necessary, you can still use the buttons below to force click "
1594
+ "trimming."
1595
+ msgstr ""
1596
+
1597
+ #: app/views/tools/form.php:53
1598
+ msgid ""
1599
+ "***WARNING*** If you click OK you will delete ALL of the Click data that is "
1600
+ "older than 30 days. Your data will be gone forever -- no way to retreive it. "
1601
+ "Do not click OK unless you are absolutely sure you want to delete this data "
1602
+ "because there is no going back!"
1603
+ msgstr ""
1604
+
1605
+ #: app/views/tools/form.php:53
1606
+ msgid "Delete Clicks older than 30 days"
1607
+ msgstr ""
1608
+
1609
+ #: app/views/tools/form.php:55
1610
+ msgid "Clear clicks 30 days or older"
1611
+ msgstr ""
1612
+
1613
+ #: app/views/tools/form.php:56
1614
+ msgid ""
1615
+ "This will clear all clicks in your database that are older than 30 days."
1616
+ msgstr ""
1617
+
1618
+ #: app/views/tools/form.php:58
1619
+ msgid ""
1620
+ "***WARNING*** If you click OK you will delete ALL of the Click data that is "
1621
+ "older than 90 days. Your data will be gone forever -- no way to retreive it. "
1622
+ "Do not click OK unless you are absolutely sure you want to delete this data "
1623
+ "because there is no going back!"
1624
+ msgstr ""
1625
+
1626
+ #: app/views/tools/form.php:58
1627
+ msgid "Delete Clicks older than 90 days"
1628
+ msgstr ""
1629
+
1630
+ #: app/views/tools/form.php:60
1631
+ msgid "Clear clicks 90 days or older"
1632
+ msgstr ""
1633
+
1634
+ #: app/views/tools/form.php:61
1635
+ msgid ""
1636
+ "This will clear all clicks in your database that are older than 90 days."
1637
+ msgstr ""
1638
+
1639
+ #: app/views/tools/form.php:65
1640
+ msgid ""
1641
+ "***WARNING*** If you click OK you will delete ALL of the Click data in your "
1642
  "Database. Your data will be gone forever -- no way to retreive it. Do not "
1643
  "click OK unless you are absolutely sure you want to delete all your data "
1644
  "because there is no going back!"
1645
  msgstr ""
1646
 
1647
+ #: app/views/tools/form.php:65
1648
+ msgid "Delete All Clicks"
1649
+ msgstr ""
1650
+
1651
+ #: app/views/tools/form.php:67
1652
+ msgid "Clear all clicks"
1653
+ msgstr ""
1654
+
1655
+ #: app/views/tools/form.php:68
1656
+ msgid ""
1657
+ "Seriously, only click this link if you want to delete all the Click data in "
1658
+ "your database."
1659
+ msgstr ""
1660
+
1661
+ #: pro/app/controllers/PlpAppController.php:165
1662
+ msgid "ERROR: Your Pretty Link was unable to be created"
1663
+ msgstr ""
1664
+
1665
+ #: pro/app/controllers/PlpAppController.php:169
1666
+ msgid "Unauthorized"
1667
+ msgstr ""
1668
+
1669
+ #: pro/app/controllers/PlpImportExportController.php:12
1670
+ msgid "Pretty Link Pro | Import/Export"
1671
+ msgstr ""
1672
+
1673
+ #: pro/app/controllers/PlpImportExportController.php:13
1674
+ msgid "Pro Import/Export"
1675
+ msgstr ""
1676
+
1677
+ #: pro/app/controllers/PlpKeywordsController.php:63
1678
+ msgid "Pretty Link Post Build Index"
1679
+ msgstr ""
1680
+
1681
+ #: pro/app/controllers/PlpKeywordsController.php:456
1682
+ #: pro/app/views/links/form.php:128
1683
+ msgid "Keywords"
1684
+ msgstr ""
1685
+
1686
+ #: pro/app/controllers/PlpLinksController.php:213
1687
+ msgid ""
1688
+ "Your URL Replacements must be formatted as a comma separated list of "
1689
+ "properly formatted URLs (http[s]://example.com/whatever)"
1690
+ msgstr ""
1691
+
1692
+ #: pro/app/controllers/PlpLinksController.php:224
1693
+ msgid "Date must be valid and formatted YYYY-MM-DD."
1694
+ msgstr ""
1695
+
1696
+ #: pro/app/controllers/PlpLinksController.php:236
1697
+ msgid "Expire Clicks must be a number greater than zero."
1698
+ msgstr ""
1699
+
1700
+ #: pro/app/controllers/PlpLinksController.php:243
1701
+ msgid "Expired URL must be a valid URL."
1702
+ msgstr ""
1703
+
1704
+ #: pro/app/controllers/PlpLinksController.php:255
1705
+ msgid "Your URL Rotations must all be properly formatted URLs."
1706
+ msgstr ""
1707
+
1708
+ #: pro/app/controllers/PlpLinksController.php:264
1709
+ msgid "Your Link Rotation Weights must add up to 100%."
1710
+ msgstr ""
1711
+
1712
+ #: pro/app/controllers/PlpLinksController.php:274
1713
+ msgid "Your Geographic Redirect URLs must all be properly formatted."
1714
+ msgstr ""
1715
+
1716
+ #: pro/app/controllers/PlpLinksController.php:278
1717
+ msgid "Your Geographic Redirects URLs must not be empty."
1718
+ msgstr ""
1719
+
1720
+ #: pro/app/controllers/PlpLinksController.php:282
1721
+ msgid "Your Geographic Redirect Countries must not be empty."
1722
+ msgstr ""
1723
+
1724
+ #: pro/app/controllers/PlpLinksController.php:293
1725
+ msgid "Your Technology Redirect URLs must all be properly formatted."
1726
+ msgstr ""
1727
+
1728
+ #: pro/app/controllers/PlpLinksController.php:297
1729
+ msgid "Your Technology Redirects URLs must not be empty."
1730
+ msgstr ""
1731
+
1732
+ #: pro/app/controllers/PlpLinksController.php:308
1733
+ msgid "Your Time Period Redirect URLs must all be properly formatted."
1734
+ msgstr ""
1735
+
1736
+ #: pro/app/controllers/PlpLinksController.php:312
1737
+ msgid "Your Time Period Redirects URLs must not be empty."
1738
+ msgstr ""
1739
+
1740
+ #: pro/app/controllers/PlpLinksController.php:317
1741
+ msgid "Your Time Period Redirect start time must not be empty."
1742
+ msgstr ""
1743
+
1744
+ #: pro/app/controllers/PlpLinksController.php:320
1745
+ msgid "Your Time Period Redirect start time must be a properly formatted date."
1746
+ msgstr ""
1747
+
1748
+ #: pro/app/controllers/PlpLinksController.php:326
1749
+ msgid "Your Time Period Redirect end time must not be empty."
1750
+ msgstr ""
1751
+
1752
+ #: pro/app/controllers/PlpLinksController.php:329
1753
+ msgid "Your Time Period Redirect end time must be a properly formatted date."
1754
+ msgstr ""
1755
+
1756
+ #: pro/app/controllers/PlpLinksController.php:337
1757
+ msgid "Your Time Period Redirect start time must come before the end time."
1758
+ msgstr ""
1759
+
1760
+ #: pro/app/controllers/PlpLinksController.php:345
1761
+ msgid "Delay Redirect must be a number"
1762
+ msgstr ""
1763
+
1764
+ #: pro/app/controllers/PlpLinksController.php:685
1765
+ #: pro/app/widgets/PlpPublicLinksWidget.php:64
1766
+ msgid "Cloak"
1767
+ msgstr ""
1768
+
1769
+ #: pro/app/controllers/PlpLinksController.php:753
1770
+ msgid "View QR Code for this link: %s"
1771
+ msgstr ""
1772
+
1773
+ #: pro/app/controllers/PlpLinksController.php:757
1774
+ msgid "Download QR Code for this link: %s"
1775
+ msgstr ""
1776
+
1777
+ #: pro/app/controllers/PlpLinksController.php:828
1778
+ msgid "This link expired on %1$s and will now cause a 404 error when visited"
1779
+ msgstr ""
1780
+
1781
+ #: pro/app/controllers/PlpLinksController.php:831
1782
+ msgid "This link expired on %1$s and now redirects to %2$s"
1783
+ msgstr ""
1784
+
1785
+ #: pro/app/controllers/PlpLinksController.php:835
1786
+ msgid "This link is set to expire after the date %s"
1787
+ msgstr ""
1788
+
1789
+ #: pro/app/controllers/PlpLinksController.php:846
1790
+ msgid ""
1791
+ "This link expired after %d clicks and will now cause a 404 error when visited"
1792
+ msgstr ""
1793
+
1794
+ #: pro/app/controllers/PlpLinksController.php:849
1795
+ msgid "This link expired after %1$d clicks and now redirects to %2$s"
1796
+ msgstr ""
1797
+
1798
+ #: pro/app/controllers/PlpLinksController.php:853
1799
+ msgid "This link is set to expire after %d clicks"
1800
+ msgstr ""
1801
+
1802
+ #: pro/app/controllers/PlpLinksController.php:861
1803
+ msgid "This link has additional Target URL rotations"
1804
+ msgstr ""
1805
+
1806
+ #: pro/app/controllers/PlpLinksController.php:864
1807
+ msgid "This link has additional Geographic Target URLs"
1808
+ msgstr ""
1809
+
1810
+ #: pro/app/controllers/PlpLinksController.php:867
1811
+ msgid "This link has additional Technology Dependent Conditional Target URLs"
1812
+ msgstr ""
1813
+
1814
+ #: pro/app/controllers/PlpLinksController.php:872
1815
+ msgid ""
1816
+ "A Time Period Redirect is currently active for this link. When visited it "
1817
+ "will currently redirect to %s rather than the Target URL unless the link is "
1818
+ "expired."
1819
+ msgstr ""
1820
+
1821
+ #: pro/app/controllers/PlpLinksController.php:876
1822
+ msgid ""
1823
+ "Time Period Redirects have been setup for this link but the current time is "
1824
+ "not within any of them currently."
1825
+ msgstr ""
1826
+
1827
+ #: pro/app/controllers/PlpOptionsController.php:102
1828
+ msgid "Keywords Per Page is required"
1829
+ msgstr ""
1830
+
1831
+ #: pro/app/controllers/PlpOptionsController.php:106
1832
+ msgid "Keyword Links Per Page is required"
1833
+ msgstr ""
1834
+
1835
+ #: pro/app/controllers/PlpOptionsController.php:111
1836
+ msgid ""
1837
+ "You need to enter a valid Pretty Link Base URL now that you have selected "
1838
+ "\"Use an alternate base url for your Pretty Links\""
1839
+ msgstr ""
1840
+
1841
+ #: pro/app/controllers/PlpOptionsController.php:116
1842
+ msgid ""
1843
+ "You need to enter a valid Public Link Display URL now that you have selected "
1844
+ "\"Use a custom public link display page\""
1845
+ msgstr ""
1846
+
1847
+ #: pro/app/controllers/PlpOptionsController.php:122
1848
+ msgid "Pretty Bar Attribution URL must be a correctly formatted URL"
1849
+ msgstr ""
1850
+
1851
+ #: pro/app/controllers/PlpPostsController.php:50
1852
+ msgid "Pretty Link Pro"
1853
+ msgstr ""
1854
+
1855
+ #: pro/app/controllers/PlpPostsController.php:54
1856
+ msgid "Pretty Link Pro Options"
1857
+ msgstr ""
1858
+
1859
+ #: pro/app/controllers/PlpPrettyBarController.php:50
1860
+ msgid "Logo Image URL must be a correctly formatted URL"
1861
+ msgstr ""
1862
+
1863
+ #: pro/app/controllers/PlpPrettyBarController.php:54
1864
+ msgid "Background Image URL must be a correctly formatted URL"
1865
+ msgstr ""
1866
+
1867
+ #: pro/app/controllers/PlpPrettyBarController.php:60
1868
+ msgid "PrettyBar Background Color must be an actual RGB Value"
1869
+ msgstr ""
1870
+
1871
+ #: pro/app/controllers/PlpPrettyBarController.php:64
1872
+ msgid "PrettyBar Text Color must be an actual RGB Value"
1873
+ msgstr ""
1874
+
1875
+ #: pro/app/controllers/PlpPrettyBarController.php:68
1876
+ msgid "PrettyBar Link Color must be an actual RGB Value"
1877
+ msgstr ""
1878
+
1879
+ #: pro/app/controllers/PlpPrettyBarController.php:72
1880
+ #: pro/app/controllers/PlpPrettyBarController.php:76
1881
+ msgid "PrettyBar Hover Color must be an actual RGB Value"
1882
+ msgstr ""
1883
+
1884
+ #: pro/app/controllers/PlpPrettyBarController.php:80
1885
+ msgid "PrettyBar Title Character Limit must not be blank"
1886
+ msgstr ""
1887
+
1888
+ #: pro/app/controllers/PlpPrettyBarController.php:84
1889
+ msgid "PrettyBar Description Character Limit must not be blank"
1890
+ msgstr ""
1891
+
1892
+ #: pro/app/controllers/PlpPrettyBarController.php:88
1893
+ msgid "PrettyBar Link Character Limit must not be blank"
1894
+ msgstr ""
1895
+
1896
+ #: pro/app/controllers/PlpPrettyBarController.php:92
1897
+ msgid "PrettyBar Title Character Limit must be a number"
1898
+ msgstr ""
1899
+
1900
+ #: pro/app/controllers/PlpPrettyBarController.php:96
1901
+ msgid "PrettyBar Description Character Limit must be a number"
1902
+ msgstr ""
1903
+
1904
+ #: pro/app/controllers/PlpPrettyBarController.php:100
1905
+ msgid "PrettyBar Link Character Limit must be a number"
1906
+ msgstr ""
1907
+
1908
+ #: pro/app/controllers/PlpPublicLinksController.php:98
1909
+ #: pro/app/helpers/PlpPublicLinksHelper.php:6
1910
+ msgid "Enter a URL:"
1911
+ msgstr ""
1912
+
1913
+ #: pro/app/controllers/PlpPublicLinksController.php:99
1914
+ #: pro/app/helpers/PlpPublicLinksHelper.php:7
1915
+ msgid "Shrink"
1916
+ msgstr ""
1917
+
1918
+ #: pro/app/controllers/PlpReportsController.php:12
1919
+ msgid "Pretty Link Pro | Reports"
1920
+ msgstr ""
1921
+
1922
+ #: pro/app/controllers/PlpReportsController.php:13
1923
+ msgid "Pro Reports"
1924
+ msgstr ""
1925
+
1926
+ #: pro/app/controllers/PlpReportsController.php:49
1927
+ msgid "Create a custom link report and analyze your data."
1928
+ msgstr ""
1929
+
1930
+ #: pro/app/controllers/PlpReportsController.php:60
1931
+ msgid "View the Split Test Report for %s"
1932
+ msgstr ""
1933
+
1934
+ #: pro/app/controllers/PlpReportsController.php:86
1935
+ msgid "Your Pretty Link Report was Successfully Created"
1936
+ msgstr ""
1937
+
1938
+ #: pro/app/controllers/PlpReportsController.php:116
1939
+ msgid "Your Pretty Link Report was Successfully Updated"
1940
+ msgstr ""
1941
+
1942
+ #: pro/app/controllers/PlpReportsController.php:125
1943
+ msgid "Your Pretty Link Report was Successfully Deleted"
1944
+ msgstr ""
1945
+
1946
+ #: pro/app/helpers/PlpLinksHelper.php:18 pro/app/views/links/form.php:209
1947
+ msgid "weight:"
1948
+ msgstr ""
1949
+
1950
+ #: pro/app/helpers/PlpPostsHelper.php:19
1951
+ msgid "Hide Social Buttons on this post."
1952
+ msgstr ""
1953
+
1954
+ #: pro/app/helpers/PlpPostsHelper.php:26
1955
+ msgid "Disable Keyword Replacements on this post."
1956
+ msgstr ""
1957
+
1958
+ #: pro/app/helpers/PlpPostsHelper.php:44
1959
+ msgid "A Pretty Link will be created on Publish"
1960
+ msgstr ""
1961
+
1962
+ #: pro/app/helpers/PlpPostsHelper.php:63
1963
+ #: pro/app/views/reports/custom-report.php:32
1964
+ #: pro/app/views/reports/custom-report.php:65
1965
+ #: pro/app/views/reports/split-test-report.php:29
1966
+ #: pro/app/views/reports/split-test-report.php:61
1967
+ msgid "Uniques"
1968
+ msgstr ""
1969
+
1970
+ #: pro/app/helpers/PlpPostsHelper.php:68
1971
+ msgid "edit"
1972
+ msgstr ""
1973
+
1974
+ #: pro/app/helpers/PlpPostsHelper.php:70
1975
+ msgid "Visit Pretty Link:"
1976
+ msgstr ""
1977
+
1978
+ #: pro/app/helpers/PlpPostsHelper.php:70
1979
+ msgid "in a New Window"
1980
+ msgstr ""
1981
+
1982
+ #: pro/app/helpers/PlpPostsHelper.php:70
1983
+ msgid "visit"
1984
+ msgstr ""
1985
+
1986
+ #: pro/app/helpers/PlpPostsHelper.php:76
1987
+ msgid ""
1988
+ "A Pretty Link hasn't been generated for this entry yet. Click \"Update Post"
1989
+ "\" to generate."
1990
+ msgstr ""
1991
+
1992
+ #: pro/app/models/PlpOptions.php:99
1993
+ msgid "Facebook"
1994
+ msgstr ""
1995
+
1996
+ #: pro/app/models/PlpOptions.php:106
1997
+ msgid "Twitter"
1998
+ msgstr ""
1999
+
2000
+ #: pro/app/models/PlpOptions.php:113
2001
+ msgid "Google+"
2002
+ msgstr ""
2003
+
2004
+ #: pro/app/models/PlpOptions.php:120
2005
+ msgid "Pinterest"
2006
+ msgstr ""
2007
+
2008
+ #: pro/app/models/PlpOptions.php:127
2009
+ msgid "LinkedIn"
2010
+ msgstr ""
2011
+
2012
+ #: pro/app/models/PlpOptions.php:134
2013
+ msgid "Reddit"
2014
+ msgstr ""
2015
+
2016
+ #: pro/app/models/PlpOptions.php:141
2017
+ msgid "StumbleUpon"
2018
+ msgstr ""
2019
+
2020
+ #: pro/app/models/PlpOptions.php:148
2021
+ msgid "Digg"
2022
+ msgstr ""
2023
+
2024
+ #: pro/app/models/PlpOptions.php:155
2025
+ msgid "Email"
2026
+ msgstr ""
2027
+
2028
+ #: pro/app/models/PlpOptions.php:238
2029
+ msgid "Affiliate Link Disclosures"
2030
+ msgstr ""
2031
+
2032
+ #: pro/app/models/PlpOptions.php:247
2033
+ msgid "(aff)"
2034
+ msgstr ""
2035
+
2036
+ #: pro/app/models/PlpPostOptions.php:33
2037
+ msgid "This pretty link slug is already taken, please choose a different one"
2038
+ msgstr ""
2039
+
2040
+ #: pro/app/models/PlpReport.php:149
2041
+ msgid "Report must have a name."
2042
+ msgstr ""
2043
+
2044
+ #: pro/app/models/PlpReport.php:153
2045
+ msgid "At least one link must be selected for analysis."
2046
+ msgstr ""
2047
+
2048
+ #: pro/app/models/PlpReport.php:244
2049
+ msgid "Pretty Link Pro: Clicks for"
2050
+ msgstr ""
2051
+
2052
+ #: pro/app/models/PlpReport.php:244
2053
+ msgid "report between"
2054
+ msgstr ""
2055
+
2056
+ #: pro/app/models/PlpReport.php:251 pro/app/models/PlpReport.php:397
2057
+ #: pro/app/views/reports/custom-report.php:34
2058
+ #: pro/app/views/reports/custom-report.php:67
2059
+ #: pro/app/views/reports/split-test-report.php:31
2060
+ #: pro/app/views/reports/split-test-report.php:63
2061
+ msgid "Conversions"
2062
+ msgstr ""
2063
+
2064
+ #: pro/app/models/PlpReport.php:385
2065
+ msgid "Pretty Link Pro: Split Report for"
2066
+ msgstr ""
2067
+
2068
+ #: pro/app/models/PlpReport.php:397 pro/app/models/PlpReport.php:404
2069
+ #: pro/app/views/links/form.php:186
2070
+ msgid "Rotation"
2071
+ msgstr ""
2072
+
2073
+ #: pro/app/models/PlpUtils.php:36
2074
+ msgid "Google Analyticator"
2075
+ msgstr ""
2076
+
2077
+ #: pro/app/models/PlpUtils.php:39
2078
+ msgid "Google Analytics by MonsterInsights"
2079
+ msgstr ""
2080
+
2081
+ #: pro/app/views/import-export/form.php:4
2082
+ msgid "Import / Export Links"
2083
+ msgstr ""
2084
+
2085
+ #: pro/app/views/import-export/form.php:9
2086
+ #: pro/app/views/import-export/form.php:12
2087
+ msgid "Export Pretty Links"
2088
+ msgstr ""
2089
+
2090
+ #: pro/app/views/import-export/form.php:13
2091
+ msgid "Export Links to a CSV File"
2092
+ msgstr ""
2093
+
2094
+ #: pro/app/views/import-export/form.php:17
2095
+ msgid "Export"
2096
+ msgstr ""
2097
+
2098
+ #: pro/app/views/import-export/form.php:22
2099
+ #: pro/app/views/import-export/form.php:25
2100
+ msgid "Import Pretty Links"
2101
+ msgstr ""
2102
+
2103
+ #: pro/app/views/import-export/form.php:26
2104
+ msgid ""
2105
+ "There are two ways to import a file.<br/><br/>1) Importing to update "
2106
+ "existing links and<br/><br/>2) Importing to generate new links. When "
2107
+ "Importing to generate new links, you must delete the \"id\" column from the "
2108
+ "CSV before importing. If the \"id\" column is present, Pretty Link Pro will "
2109
+ "attempt to update existing links."
2110
+ msgstr ""
2111
+
2112
+ #: pro/app/views/import-export/form.php:36
2113
+ msgid "Import"
2114
+ msgstr ""
2115
+
2116
+ #: pro/app/views/import-export/form.php:39
2117
+ msgid "Links Import File"
2118
+ msgstr ""
2119
+
2120
+ #: pro/app/views/import-export/form.php:40
2121
+ msgid ""
2122
+ "Select a file that has been formatted as a Pretty Link CSV import file and "
2123
+ "click \"Import\""
2124
+ msgstr ""
2125
+
2126
+ #: pro/app/views/import-export/form.php:48
2127
+ msgid "Import/Export Help"
2128
+ msgstr ""
2129
+
2130
+ #: pro/app/views/import-export/import.php:4
2131
+ msgid "Import Results"
2132
+ msgstr ""
2133
+
2134
+ #: pro/app/views/import-export/import.php:5
2135
+ msgid "Total Rows:"
2136
+ msgstr ""
2137
+
2138
+ #: pro/app/views/import-export/import.php:7
2139
+ msgid "Pretty Links were Successfully Created"
2140
+ msgstr ""
2141
+
2142
+ #: pro/app/views/import-export/import.php:8
2143
+ msgid "Pretty Links were Successfully Updated"
2144
+ msgstr ""
2145
+
2146
+ #: pro/app/views/import-export/import.php:13
2147
+ msgid "Pretty Links were unable to be Created:"
2148
+ msgstr ""
2149
+
2150
+ #: pro/app/views/import-export/import.php:17
2151
+ msgid "Error(s) for Pretty Link with Slug:"
2152
+ msgstr ""
2153
+
2154
+ #: pro/app/views/import-export/import.php:32
2155
+ msgid "Pretty Links were unable to be Updated:"
2156
+ msgstr ""
2157
+
2158
+ #: pro/app/views/import-export/import.php:36
2159
+ msgid "Error(s) for Pretty Link with id:"
2160
+ msgstr ""
2161
+
2162
+ #: pro/app/views/links/bulk-edit.php:6
2163
+ msgid "Advanced Link Options"
2164
+ msgstr ""
2165
+
2166
+ #: pro/app/views/links/cloaked-redirect.php:36
2167
+ msgid "Your browser does not support frames."
2168
+ msgstr ""
2169
+
2170
+ #: pro/app/views/links/form.php:7
2171
+ msgid "Expire"
2172
+ msgstr ""
2173
+
2174
+ #: pro/app/views/links/form.php:10
2175
+ msgid "Expire Link"
2176
+ msgstr ""
2177
+
2178
+ #: pro/app/views/links/form.php:11
2179
+ msgid "Set this link to expire after a specific date or number of clicks."
2180
+ msgstr ""
2181
+
2182
+ #: pro/app/views/links/form.php:26
2183
+ msgid "Expire After"
2184
+ msgstr ""
2185
+
2186
+ #: pro/app/views/links/form.php:29
2187
+ msgid "Expiration Type"
2188
+ msgstr ""
2189
+
2190
+ #: pro/app/views/links/form.php:30
2191
+ msgid ""
2192
+ "Select the type of expiration you want for this link.<br/><br/><b>Date</b> "
2193
+ "Select this option if you'd like to expire your link after a certain date."
2194
+ "<br/><br/><b>Clicks</b>: Select this option to expire this link after it has "
2195
+ "been clicked a specific number of times."
2196
+ msgstr ""
2197
+
2198
+ #: pro/app/views/links/form.php:51
2199
+ msgid "Number of Clicks"
2200
+ msgstr ""
2201
+
2202
+ #: pro/app/views/links/form.php:52
2203
+ msgid ""
2204
+ "Enter the number of times this link can be clicked before it expires.<br/"
2205
+ "><br/><b>Note: Expirations based on clicks wouldn't work properly if you had "
2206
+ "tracking turned off for this link so as long as this is set to Clicks, "
2207
+ "Pretty Link will ensure tracking is turned on for this link as well.</b>"
2208
+ msgstr ""
2209
+
2210
+ #: pro/app/views/links/form.php:71
2211
+ msgid "Expiration Date"
2212
+ msgstr ""
2213
+
2214
+ #: pro/app/views/links/form.php:72
2215
+ msgid ""
2216
+ "Enter a date here in the format YYYY-MM-DD to set when this link should "
2217
+ "expire."
2218
+ msgstr ""
2219
+
2220
+ #: pro/app/views/links/form.php:88
2221
+ msgid "Expired Redirect"
2222
+ msgstr ""
2223
+
2224
+ #: pro/app/views/links/form.php:91
2225
+ msgid "Redirect to URL when Expired"
2226
+ msgstr ""
2227
+
2228
+ #: pro/app/views/links/form.php:92
2229
+ msgid ""
2230
+ "When this link expires, do you want to redirect to a specific URL. You can "
2231
+ "use this to redirect to a page you've setup to indicate that the link is "
2232
+ "expired.<br/><br/><b>Note: If this is not set the link will throw a 404 "
2233
+ "error when expired</b>."
2234
+ msgstr ""
2235
+
2236
+ #: pro/app/views/links/form.php:107 pro/app/views/options/form.php:165
2237
+ msgid "URL"
2238
+ msgstr ""
2239
+
2240
+ #: pro/app/views/links/form.php:110
2241
+ msgid "Expired URL"
2242
+ msgstr ""
2243
+
2244
+ #: pro/app/views/links/form.php:111
2245
+ msgid ""
2246
+ "This is the URL that this link will redirect to after the expiration date "
2247
+ "above."
2248
+ msgstr ""
2249
+
2250
+ #: pro/app/views/links/form.php:131
2251
+ msgid "Auto-Replace Keywords"
2252
+ msgstr ""
2253
+
2254
+ #: pro/app/views/links/form.php:132
2255
+ msgid ""
2256
+ "Enter a comma separated list of keywords / keyword phrases that you'd like "
2257
+ "to replace with this link in your Posts &amp; Pages."
2258
+ msgstr ""
2259
+
2260
+ #: pro/app/views/links/form.php:140
2261
+ msgid "URL Replacements"
2262
+ msgstr ""
2263
+
2264
+ #: pro/app/views/links/form.php:143
2265
+ msgid "Auto-Replace URLs"
2266
+ msgstr ""
2267
+
2268
+ #: pro/app/views/links/form.php:144
2269
+ msgid ""
2270
+ "Enter a comma separated list of the URLs that you'd like to replace with "
2271
+ "this Pretty Link in your Posts &amp; Pages. These must be formatted as URLs "
2272
+ "for example: <code>http://example.com</code> or <code>http://example.com?"
2273
+ "product_id=53</code>"
2274
+ msgstr ""
2275
+
2276
+ #: pro/app/views/links/form.php:159 pro/app/views/links/form.php:162
2277
+ msgid "Head Scripts"
2278
+ msgstr ""
2279
+
2280
+ #: pro/app/views/links/form.php:163
2281
+ msgid ""
2282
+ "Useful for adding Google Analytics tracking, Facebook retargeting pixels, or "
2283
+ "any other kind of tracking script to the HTML head for this pretty link.<br/"
2284
+ "><br/>These scripts will be in addition to any global one's you've defined "
2285
+ "in the options.<br/><br/><b>NOTE:</b> This does NOT work with 301, 302 and "
2286
+ "307 type redirects."
2287
+ msgstr ""
2288
+
2289
+ #: pro/app/views/links/form.php:176
2290
+ msgid "Dynamic Redirection"
2291
+ msgstr ""
2292
+
2293
+ #: pro/app/views/links/form.php:179
2294
+ msgid "Dynamic Redirection Options"
2295
+ msgstr ""
2296
+
2297
+ #: pro/app/views/links/form.php:180
2298
+ msgid ""
2299
+ "These powerful options are available to give you dynamic control over "
2300
+ "redirection for this pretty link."
2301
+ msgstr ""
2302
+
2303
+ #: pro/app/views/links/form.php:187
2304
+ msgid "Geographic"
2305
+ msgstr ""
2306
+
2307
+ #: pro/app/views/links/form.php:188
2308
+ msgid "Technology"
2309
+ msgstr ""
2310
+
2311
+ #: pro/app/views/links/form.php:189
2312
+ msgid "Time"
2313
+ msgstr ""
2314
+
2315
+ #: pro/app/views/links/form.php:199 pro/app/views/links/form.php:202
2316
+ msgid "Target URL Rotations"
2317
+ msgstr ""
2318
+
2319
+ #: pro/app/views/links/form.php:203
2320
+ msgid ""
2321
+ "Enter the Target URLs that you'd like to rotate through when this Pretty "
2322
+ "Link is Clicked. These must be formatted as URLs example: <code>http://"
2323
+ "example.com</code> or <code>http://example.com?product_id=53</code>"
2324
+ msgstr ""
2325
+
2326
+ #: pro/app/views/links/form.php:208
2327
+ msgid "Target URL (above)"
2328
+ msgstr ""
2329
+
2330
+ #: pro/app/views/links/form.php:220
2331
+ msgid "Add Link Rotation"
2332
+ msgstr ""
2333
+
2334
+ #: pro/app/views/links/form.php:226
2335
+ msgid "Split Test"
2336
+ msgstr ""
2337
+
2338
+ #: pro/app/views/links/form.php:229
2339
+ msgid "Split Test This Link"
2340
+ msgstr ""
2341
+
2342
+ #: pro/app/views/links/form.php:230
2343
+ msgid ""
2344
+ "Split testing will enable you to track the effectiveness of several links "
2345
+ "against each other. This works best when you have multiple link rotation "
2346
+ "URLs entered."
2347
+ msgstr ""
2348
+
2349
+ #: pro/app/views/links/form.php:246 pro/app/views/reports/list.php:31
2350
+ #: pro/app/views/reports/list.php:71
2351
+ msgid "Goal Link"
2352
+ msgstr ""
2353
+
2354
+ #: pro/app/views/links/form.php:249
2355
+ msgid "Goal Link for Split Test"
2356
+ msgstr ""
2357
+
2358
+ #: pro/app/views/links/form.php:250
2359
+ msgid "This is the goal link for your split test."
2360
+ msgstr ""
2361
+
2362
+ #: pro/app/views/links/form.php:261
2363
+ msgid "id: %1$s | slug: %3$s | name: %2$s%4$s"
2364
+ msgstr ""
2365
+
2366
+ #: pro/app/views/links/form.php:285
2367
+ msgid ""
2368
+ "This will enable you to setup specific target urls that this pretty link "
2369
+ "will redirect to based on the country of the person visiting the url."
2370
+ msgstr ""
2371
+
2372
+ #: pro/app/views/links/form.php:290 pro/app/views/links/form.php:304
2373
+ #: pro/app/views/links/form.php:318
2374
+ msgid "Add"
2375
+ msgstr ""
2376
+
2377
+ #: pro/app/views/links/form.php:295 pro/app/views/links/form.php:298
2378
+ msgid "Technology Redirects"
2379
+ msgstr ""
2380
+
2381
+ #: pro/app/views/links/form.php:299
2382
+ msgid ""
2383
+ "This will allow you to redirect based on your visitor's device, operating "
2384
+ "system and/or browser"
2385
+ msgstr ""
2386
+
2387
+ #: pro/app/views/links/form.php:313
2388
+ msgid ""
2389
+ "This will allow you to redirect based on the time period in which your "
2390
+ "visitor visits this link.<br/><br/><b>Note: If your visitor doesn't visit "
2391
+ "the link during any of the specified time periods set here, they'll simply "
2392
+ "be redirected to the main target url.</b>"
2393
+ msgstr ""
2394
+
2395
+ #: pro/app/views/links/geo_row.php:12
2396
+ msgid "Countries:"
2397
+ msgstr ""
2398
+
2399
+ #: pro/app/views/links/geo_row.php:15
2400
+ msgid "Technology Redirection Countries"
2401
+ msgstr ""
2402
+
2403
+ #: pro/app/views/links/geo_row.php:16
2404
+ msgid ""
2405
+ "This is a comma-separated list of countries that this redirect will match "
2406
+ "on. Just start typing a country's name and an autocomplete dropdown will "
2407
+ "appear to select from. Once a country is selected, feel free to start typing "
2408
+ "the name of another country. You can add as many as you'd like this redirect "
2409
+ "to match on"
2410
+ msgstr ""
2411
+
2412
+ #: pro/app/views/links/geo_row.php:25 pro/app/views/links/tech_row.php:79
2413
+ #: pro/app/views/links/time_row.php:39
2414
+ msgid "URL:"
2415
+ msgstr ""
2416
+
2417
+ #: pro/app/views/links/geo_row.php:28
2418
+ msgid "Geographic Redirection URL"
2419
+ msgstr ""
2420
+
2421
+ #: pro/app/views/links/geo_row.php:29
2422
+ msgid ""
2423
+ "This is the URL that this Pretty Link will redirect to if the visitor's "
2424
+ "country match the settings here."
2425
+ msgstr ""
2426
+
2427
+ #: pro/app/views/links/geo_row.php:38 pro/app/views/links/tech_row.php:92
2428
+ #: pro/app/views/links/time_row.php:52
2429
+ msgid "Remove"
2430
+ msgstr ""
2431
+
2432
+ #: pro/app/views/links/link-has-expired.php:9
2433
+ msgid "Link Not Found"
2434
+ msgstr ""
2435
+
2436
+ #: pro/app/views/links/link-has-expired.php:33
2437
+ msgid "Sorry, this link has expired"
2438
+ msgstr ""
2439
+
2440
+ #: pro/app/views/links/link-options.php:3
2441
+ #: pro/app/views/links/link-options.php:5
2442
+ msgid "Base Slug Prefix"
2443
+ msgstr ""
2444
+
2445
+ #: pro/app/views/links/link-options.php:6
2446
+ msgid ""
2447
+ "Use this to prefix all newly generated pretty links with a directory of your "
2448
+ "choice. For example set to <b>out</b> to make your pretty links look like "
2449
+ "http://site.com/<b>out</b>/xyz. Changing this option will NOT affect "
2450
+ "existing pretty links. If you do not wish to use a directory prefix, leave "
2451
+ "this text field blank. Whatever you type here will be sanitized and modified "
2452
+ "to ensure it is URL-safe. So <b>Hello World</b> might get changed to "
2453
+ "something like <b>hello-world</b> instead. Lowercase letters, numbers, "
2454
+ "dashes, and underscores are allowed."
2455
+ msgstr ""
2456
+
2457
+ #: pro/app/views/links/link-options.php:16
2458
+ #: pro/app/views/links/link-options.php:18
2459
+ msgid "Slug Character Count"
2460
+ msgstr ""
2461
+
2462
+ #: pro/app/views/links/link-options.php:19
2463
+ msgid ""
2464
+ "The number of characters to use when auto-generating a random slug for "
2465
+ "pretty links. The default is 4. You cannot use less than 2."
2466
+ msgstr ""
2467
+
2468
+ #: pro/app/views/links/link-options.php:29
2469
+ #: pro/app/views/links/link-options.php:30
2470
+ msgid "Enable Google Analytics"
2471
+ msgstr ""
2472
+
2473
+ #: pro/app/views/links/link-options.php:31
2474
+ msgid ""
2475
+ "Requires Google Analyticator, Google Analytics by MonsterInsights (formerly "
2476
+ "Yoast), or the Google Analytics Plugin to be installed and configured on "
2477
+ "your site."
2478
+ msgstr ""
2479
+
2480
+ #: pro/app/views/links/link-options.php:41
2481
+ msgid "Enable %sQR Codes%s"
2482
+ msgstr ""
2483
+
2484
+ #: pro/app/views/links/link-options.php:43
2485
+ msgid "Generate QR Codes"
2486
+ msgstr ""
2487
+
2488
+ #: pro/app/views/links/link-options.php:44
2489
+ msgid ""
2490
+ "This will enable a link in your pretty link admin that will allow you to "
2491
+ "automatically download a QR Code for each individual Pretty Link."
2492
+ msgstr ""
2493
+
2494
+ #: pro/app/views/links/link-options.php:54
2495
+ #: pro/app/views/links/link-options.php:56
2496
+ msgid "Global Head Scripts"
2497
+ msgstr ""
2498
+
2499
+ #: pro/app/views/links/link-options.php:57
2500
+ msgid ""
2501
+ "Useful for adding Google Analytics tracking, Facebook retargeting pixels, or "
2502
+ "any other kind of tracking script to the HTML head.<br/><br/>What you enter "
2503
+ "in this box will be applied to all supported pretty links.<br/><br/><b>NOTE:"
2504
+ "</b> This does NOT work with 301, 302 and 307 type redirects."
2505
+ msgstr ""
2506
+
2507
+ #: pro/app/views/links/prettybar.php:174
2508
+ msgid "Share on Twitter"
2509
+ msgstr ""
2510
+
2511
+ #: pro/app/views/links/prettybar.php:191
2512
+ msgid "Powered by"
2513
+ msgstr ""
2514
+
2515
+ #: pro/app/views/links/tech_row.php:14
2516
+ msgid "Device:"
2517
+ msgstr ""
2518
+
2519
+ #: pro/app/views/links/tech_row.php:17
2520
+ msgid "Technology Redirection Device"
2521
+ msgstr ""
2522
+
2523
+ #: pro/app/views/links/tech_row.php:18
2524
+ msgid ""
2525
+ "<b>Desktop</b> will match on any conventional laptop or desktop computer.<br/"
2526
+ "><br/><b>Mobile</b> will match on any phone, tablet or other portable device."
2527
+ "<br/><br/><b>Phone</b> will match on any phone or similarly small device.<br/"
2528
+ "><br/><b>Tablet</b> will match on any tablet sized device."
2529
+ msgstr ""
2530
+
2531
+ #: pro/app/views/links/tech_row.php:23 pro/app/views/links/tech_row.php:42
2532
+ #: pro/app/views/links/tech_row.php:62
2533
+ msgid "Any"
2534
+ msgstr ""
2535
+
2536
+ #: pro/app/views/links/tech_row.php:24
2537
+ msgid "Desktop"
2538
+ msgstr ""
2539
+
2540
+ #: pro/app/views/links/tech_row.php:25
2541
+ msgid "Mobile"
2542
+ msgstr ""
2543
+
2544
+ #: pro/app/views/links/tech_row.php:26
2545
+ msgid "Phone"
2546
+ msgstr ""
2547
+
2548
+ #: pro/app/views/links/tech_row.php:27
2549
+ msgid "Tablet"
2550
+ msgstr ""
2551
+
2552
+ #: pro/app/views/links/tech_row.php:33
2553
+ msgid "Operating System:"
2554
+ msgstr ""
2555
+
2556
+ #: pro/app/views/links/tech_row.php:36
2557
+ msgid "Technology Redirection OS"
2558
+ msgstr ""
2559
+
2560
+ #: pro/app/views/links/tech_row.php:37
2561
+ msgid ""
2562
+ "Use this dropdown to select which Operating System this redirect will match "
2563
+ "on."
2564
+ msgstr ""
2565
+
2566
+ #: pro/app/views/links/tech_row.php:43 pro/app/views/links/tech_row.php:64
2567
+ msgid "Android"
2568
+ msgstr ""
2569
+
2570
+ #: pro/app/views/links/tech_row.php:44
2571
+ msgid "iOS"
2572
+ msgstr ""
2573
+
2574
+ #: pro/app/views/links/tech_row.php:45
2575
+ msgid "Linux"
2576
+ msgstr ""
2577
+
2578
+ #: pro/app/views/links/tech_row.php:46
2579
+ msgid "Mac"
2580
+ msgstr ""
2581
+
2582
+ #: pro/app/views/links/tech_row.php:47
2583
+ msgid "Windows"
2584
+ msgstr ""
2585
+
2586
+ #: pro/app/views/links/tech_row.php:53
2587
+ msgid "Browser:"
2588
+ msgstr ""
2589
+
2590
+ #: pro/app/views/links/tech_row.php:56
2591
+ msgid "Technology Redirection Browser"
2592
+ msgstr ""
2593
+
2594
+ #: pro/app/views/links/tech_row.php:57
2595
+ msgid "Use this dropdown to select which Browser this redirect will match on."
2596
+ msgstr ""
2597
+
2598
+ #: pro/app/views/links/tech_row.php:63
2599
+ msgid "Amazon Silk"
2600
+ msgstr ""
2601
+
2602
+ #: pro/app/views/links/tech_row.php:65
2603
+ msgid "Chrome"
2604
+ msgstr ""
2605
+
2606
+ #: pro/app/views/links/tech_row.php:66
2607
+ msgid "Chromium"
2608
+ msgstr ""
2609
+
2610
+ #: pro/app/views/links/tech_row.php:67
2611
+ msgid "Edge"
2612
+ msgstr ""
2613
+
2614
+ #: pro/app/views/links/tech_row.php:68
2615
+ msgid "Firefox"
2616
+ msgstr ""
2617
+
2618
+ #: pro/app/views/links/tech_row.php:69
2619
+ msgid "Internet Explorer"
2620
+ msgstr ""
2621
+
2622
+ #: pro/app/views/links/tech_row.php:70
2623
+ msgid "Kindle"
2624
+ msgstr ""
2625
+
2626
+ #: pro/app/views/links/tech_row.php:71
2627
+ msgid "Opera"
2628
+ msgstr ""
2629
+
2630
+ #: pro/app/views/links/tech_row.php:72
2631
+ msgid "Opera Coast"
2632
+ msgstr ""
2633
+
2634
+ #: pro/app/views/links/tech_row.php:73
2635
+ msgid "Safari"
2636
+ msgstr ""
2637
+
2638
+ #: pro/app/views/links/tech_row.php:82
2639
+ msgid "Technology Redirection URL"
2640
+ msgstr ""
2641
+
2642
+ #: pro/app/views/links/tech_row.php:83
2643
+ msgid ""
2644
+ "This is the URL that this Pretty Link will redirect to if the visitor's "
2645
+ "device, os and browser match the settings here."
2646
+ msgstr ""
2647
+
2648
+ #: pro/app/views/links/time_row.php:13
2649
+ msgid "Start Time:"
2650
+ msgstr ""
2651
+
2652
+ #: pro/app/views/links/time_row.php:16
2653
+ msgid "Start of Time Period"
2654
+ msgstr ""
2655
+
2656
+ #: pro/app/views/links/time_row.php:17
2657
+ msgid ""
2658
+ "This is where you'll enter the beginning of the time period for this redirect"
2659
+ msgstr ""
2660
+
2661
+ #: pro/app/views/links/time_row.php:26
2662
+ msgid "End Time:"
2663
+ msgstr ""
2664
+
2665
+ #: pro/app/views/links/time_row.php:29
2666
+ msgid "End of Time Period"
2667
+ msgstr ""
2668
+
2669
+ #: pro/app/views/links/time_row.php:30
2670
+ msgid "This is where you'll enter the end of the time period for this redirect"
2671
+ msgstr ""
2672
+
2673
+ #: pro/app/views/links/time_row.php:42
2674
+ msgid "Time Period Redirect URL"
2675
+ msgstr ""
2676
+
2677
+ #: pro/app/views/links/time_row.php:43
2678
+ msgid ""
2679
+ "This is the URL that this Pretty Link will redirect to when the visitor "
2680
+ "visits the link in the associated time period."
2681
+ msgstr ""
2682
+
2683
+ #: pro/app/views/options/autocreate.php:7
2684
+ msgid "%s Shortlinks"
2685
+ msgstr ""
2686
+
2687
+ #: pro/app/views/options/autocreate.php:10
2688
+ msgid "Create Pretty Links for %s"
2689
+ msgstr ""
2690
+
2691
+ #: pro/app/views/options/autocreate.php:11
2692
+ msgid "Automatically Create a Pretty Link for each of your published %s"
2693
+ msgstr ""
2694
+
2695
+ #: pro/app/views/options/autocreate.php:33
2696
+ msgid "%s Auto Link Group"
2697
+ msgstr ""
2698
+
2699
+ #: pro/app/views/options/autocreate.php:34
2700
+ msgid "Group that Pretty Links for %s will be automatically added to."
2701
+ msgstr ""
2702
+
2703
+ #: pro/app/views/options/autocreate.php:47
2704
+ msgid "Show Social Buttons"
2705
+ msgstr ""
2706
+
2707
+ #: pro/app/views/options/autocreate.php:50
2708
+ msgid "Show Social Buttons on %s"
2709
+ msgstr ""
2710
+
2711
+ #: pro/app/views/options/autocreate.php:51
2712
+ msgid ""
2713
+ "If this button is checked then you'll have the ability to include a social "
2714
+ "buttons bar on your %s."
2715
+ msgstr ""
2716
+
2717
+ #: pro/app/views/options/form.php:4
2718
+ msgid "Keyword &amp; URL Auto Replacements Options"
2719
+ msgstr ""
2720
+
2721
+ #: pro/app/views/options/form.php:13
2722
+ msgid "Enable Replacements"
2723
+ msgstr ""
2724
+
2725
+ #: pro/app/views/options/form.php:15
2726
+ msgid "Enable Keyword and URL Auto Replacement"
2727
+ msgstr ""
2728
+
2729
+ #: pro/app/views/options/form.php:16
2730
+ msgid ""
2731
+ "If checked, this will enable you to automatically replace keywords and/or "
2732
+ "URLs on your blog with pretty links. You will specify the specific keywords "
2733
+ "and urls from your Pretty Link edit page."
2734
+ msgstr ""
2735
+
2736
+ #: pro/app/views/options/form.php:34
2737
+ msgid "Thresholds"
2738
+ msgstr ""
2739
+
2740
+ #: pro/app/views/options/form.php:36
2741
+ msgid "Set Keyword Replacement Thresholds"
2742
+ msgstr ""
2743
+
2744
+ #: pro/app/views/options/form.php:37
2745
+ msgid ""
2746
+ "Don't want to have too many keyword replacements per page? Select to set "
2747
+ "some reasonable keyword replacement thresholds."
2748
+ msgstr ""
2749
+
2750
+ #: pro/app/views/options/form.php:54
2751
+ msgid "Max Keywords"
2752
+ msgstr ""
2753
+
2754
+ #: pro/app/views/options/form.php:56
2755
+ msgid "Set Maximum Keywords per Page"
2756
+ msgstr ""
2757
+
2758
+ #: pro/app/views/options/form.php:57
2759
+ msgid ""
2760
+ "Maximum number of unique keyword / keyphrases you can replace with Pretty "
2761
+ "Links per page."
2762
+ msgstr ""
2763
+
2764
+ #: pro/app/views/options/form.php:68
2765
+ msgid "Max Replacements"
2766
+ msgstr ""
2767
+
2768
+ #: pro/app/views/options/form.php:70
2769
+ msgid "Set Maximum Replacements per Keyword"
2770
+ msgstr ""
2771
+
2772
+ #: pro/app/views/options/form.php:71
2773
+ msgid "Maximum number of Pretty Link replacements per Keyword / Keyphrase."
2774
+ msgstr ""
2775
+
2776
+ #: pro/app/views/options/form.php:87
2777
+ msgid "Open in New Window"
2778
+ msgstr ""
2779
+
2780
+ #: pro/app/views/options/form.php:89
2781
+ msgid "Open Keyword Replacement Links in New Window"
2782
+ msgstr ""
2783
+
2784
+ #: pro/app/views/options/form.php:90
2785
+ msgid ""
2786
+ "Ensure that these keyword replacement links are opened in a separate window. "
2787
+ "<strong>Note:</strong> This does not apply to url replacements--only keyword "
2788
+ "replacements."
2789
+ msgstr ""
2790
+
2791
+ #: pro/app/views/options/form.php:101
2792
+ msgid "Add No Follows"
2793
+ msgstr ""
2794
+
2795
+ #: pro/app/views/options/form.php:103
2796
+ msgid "Add 'nofollow' attribute to all Keyword Pretty Links"
2797
+ msgstr ""
2798
+
2799
+ #: pro/app/views/options/form.php:104
2800
+ msgid ""
2801
+ "This adds the html <code>NOFOLLOW</code> attribute to all keyword "
2802
+ "replacement links. <strong>Note:</strong> This does not apply to url "
2803
+ "replacements--only keyword replacements."
2804
+ msgstr ""
2805
+
2806
+ #: pro/app/views/options/form.php:115
2807
+ msgid "Custom CSS"
2808
+ msgstr ""
2809
+
2810
+ #: pro/app/views/options/form.php:117
2811
+ msgid "Add custom CSS to your keyword replacement links"
2812
+ msgstr ""
2813
+
2814
+ #: pro/app/views/options/form.php:118
2815
+ msgid ""
2816
+ "Add some custom formatting to your keyword pretty link replacements. "
2817
+ "<strong>Note:</strong> This does not apply to url replacements--only keyword "
2818
+ "replacements."
2819
+ msgstr ""
2820
+
2821
+ #: pro/app/views/options/form.php:129
2822
+ msgid "Custom Hover CSS"
2823
+ msgstr ""
2824
+
2825
+ #: pro/app/views/options/form.php:131
2826
+ msgid "Add custom hover CSS to your keyword replacement links"
2827
+ msgstr ""
2828
+
2829
+ #: pro/app/views/options/form.php:132
2830
+ msgid ""
2831
+ "Add some custom formatting to the hover attribute of your keyword pretty "
2832
+ "links. <strong>Note:</strong> This does not apply to url replacements--only "
2833
+ "keyword replacements."
2834
+ msgstr ""
2835
+
2836
+ #: pro/app/views/options/form.php:143
2837
+ msgid "Link to Disclosures"
2838
+ msgstr ""
2839
+
2840
+ #: pro/app/views/options/form.php:146
2841
+ msgid "Automatically Add a Link to Disclosures"
2842
+ msgstr ""
2843
+
2844
+ #: pro/app/views/options/form.php:147
2845
+ msgid ""
2846
+ "When enabled, this will add a link to your official affiliate link "
2847
+ "disclosure page to any page, post or custom post type that have any keyword "
2848
+ "or URL replacements. You'll also be able to customize the URL and position "
2849
+ "of the disclosure link."
2850
+ msgstr ""
2851
+
2852
+ #: pro/app/views/options/form.php:168
2853
+ msgid "Disclosures Link URL"
2854
+ msgstr ""
2855
+
2856
+ #: pro/app/views/options/form.php:169
2857
+ msgid ""
2858
+ "This is the URL of the page that contains your official affiliate link "
2859
+ "disclosures. This URL will be used in the link that will be generated."
2860
+ msgstr ""
2861
+
2862
+ #: pro/app/views/options/form.php:180
2863
+ msgid "Text"
2864
+ msgstr ""
2865
+
2866
+ #: pro/app/views/options/form.php:183
2867
+ msgid "Disclosures Link Text"
2868
+ msgstr ""
2869
+
2870
+ #: pro/app/views/options/form.php:184
2871
+ msgid ""
2872
+ "This is the text of the link to your disclosures. This text will be visible "
2873
+ "to your visitors when the link is displayed."
2874
+ msgstr ""
2875
+
2876
+ #: pro/app/views/options/form.php:195
2877
+ msgid "Position"
2878
+ msgstr ""
2879
+
2880
+ #: pro/app/views/options/form.php:198
2881
+ msgid "Disclosures Link Position"
2882
+ msgstr ""
2883
+
2884
+ #: pro/app/views/options/form.php:199
2885
+ msgid ""
2886
+ "This is the position of the link to your disclosures in relation to your "
2887
+ "post content."
2888
+ msgstr ""
2889
+
2890
+ #: pro/app/views/options/form.php:205 pro/app/views/options/form.php:701
2891
+ msgid "Bottom"
2892
+ msgstr ""
2893
+
2894
+ #: pro/app/views/options/form.php:206 pro/app/views/options/form.php:700
2895
+ msgid "Top"
2896
+ msgstr ""
2897
+
2898
+ #: pro/app/views/options/form.php:207 pro/app/views/options/form.php:702
2899
+ msgid "Top and Bottom"
2900
+ msgstr ""
2901
+
2902
+ #: pro/app/views/options/form.php:219
2903
+ msgid "Keyword Disclosures"
2904
+ msgstr ""
2905
+
2906
+ #: pro/app/views/options/form.php:222
2907
+ msgid "Automatically Add Affiliate Link Disclosures to Keyword Replacements"
2908
  msgstr ""
2909
 
2910
+ #: pro/app/views/options/form.php:223
2911
  msgid ""
2912
+ "When enabled, this will add an affiliate link disclosure next to each one of "
2913
+ "your keyword replacements. <b>Note:</b> This does not apply to url "
2914
+ "replacements--only keyword replacements."
2915
  msgstr ""
2916
 
2917
+ #: pro/app/views/options/form.php:241
2918
+ msgid "Disclosure Text"
2919
  msgstr ""
2920
 
2921
+ #: pro/app/views/options/form.php:244
2922
+ msgid "Keyword Link Disclosure Text"
2923
  msgstr ""
2924
 
2925
+ #: pro/app/views/options/form.php:245
2926
+ msgid ""
2927
+ "This is the text that will be added after each keyword replacement to "
2928
+ "indicate that the link is an affiliate link."
2929
+ msgstr ""
2930
+
2931
+ #: pro/app/views/options/form.php:261
2932
+ msgid "Replace All URLs"
2933
  msgstr ""
2934
 
2935
+ #: pro/app/views/options/form.php:263
2936
+ msgid "Replace All non-Pretty Link URLs With Pretty Link URLs"
2937
  msgstr ""
2938
 
2939
+ #: pro/app/views/options/form.php:264
2940
  msgid ""
2941
+ "This feature will take each url it finds and create or use an existing "
2942
+ "pretty link pointing to the url and replace it with the pretty link."
 
 
2943
  msgstr ""
2944
 
2945
+ #: pro/app/views/options/form.php:281
2946
+ msgid "Domain Blacklist"
2947
  msgstr ""
2948
 
2949
+ #: pro/app/views/options/form.php:283
2950
+ msgid "Do not replace links from these domains"
2951
  msgstr ""
2952
 
2953
+ #: pro/app/views/options/form.php:284
2954
  msgid ""
2955
+ "Any links on your site which point to domains you define here will not be "
2956
+ "replaced automatically with Pretty Links. Place one domain per line.<br/><br/"
2957
+ ">You MUST enter http:// or https:// in front of the domain names and do NOT "
2958
+ "include any /'s or other text after the domain name.<br/><br/>Proper entry "
2959
+ "example:<br/><b>https://www.google.com</b><br/><b>http://mysite.org</b><br/"
2960
+ "><br/>Improperly entered domains will be removed upon saving the Options."
2961
  msgstr ""
2962
 
2963
+ #: pro/app/views/options/form.php:300
2964
+ msgid "Replace in Comments"
2965
  msgstr ""
2966
 
2967
+ #: pro/app/views/options/form.php:302
2968
+ msgid "Replace Keywords and URLs in Comments"
2969
+ msgstr ""
2970
+
2971
+ #: pro/app/views/options/form.php:303
2972
+ msgid ""
2973
+ "This option will enable the keyword / URL replacement routine to run in "
2974
+ "Comments."
2975
  msgstr ""
2976
 
2977
+ #: pro/app/views/options/form.php:314
2978
+ msgid "Replace in Feeds"
2979
  msgstr ""
2980
 
2981
+ #: pro/app/views/options/form.php:316
2982
+ msgid "Replace Keywords and URLs in Feeds"
 
2983
  msgstr ""
2984
 
2985
+ #: pro/app/views/options/form.php:317
2986
  msgid ""
2987
+ "This option will enable the keyword / URL replacement routine to run in RSS "
2988
+ "Feeds.<br/><strong>Note:</strong> This option can slow the load speed of "
2989
+ "your RSS feed -- unless used in conjunction with a caching plugin like W3 "
2990
+ "Total Cache or WP Super Cache.<br/><strong>Note #2</strong> This option will "
2991
+ "only work if you have \"Full Text\" selected in your General WordPress "
2992
+ "Reading settings.<br/><strong>Note #3:</strong> If this option is used along "
2993
+ "with \"Replace Keywords and URLs in Comments\" then your post comment feeds "
2994
+ "will have keywords replaced in them as well."
2995
  msgstr ""
2996
 
2997
+ #: pro/app/views/options/form.php:328 pro/app/views/options/form.php:330
2998
+ msgid "Index Replacements"
2999
  msgstr ""
3000
 
3001
+ #: pro/app/views/options/form.php:331
3002
+ msgid ""
3003
+ "This feature will index all of your keyword & URL replacements to "
3004
+ "dramatically improve performance.<br/><br/>If your site has a large number "
3005
+ "of replacements and/or posts then this feature may increase the load on your "
3006
+ "server temporarily and your replacements may not show up on your posts for a "
3007
+ "day or two initially (until all posts are indexed).<br/><br/><strong>Note:</"
3008
+ "strong> this feature requires the use of wp-cron."
3009
  msgstr ""
3010
 
3011
+ #: pro/app/views/options/form.php:348 pro/app/views/options/form.php:350
3012
+ msgid "Keyword Index Status"
3013
  msgstr ""
3014
 
3015
+ #: pro/app/views/options/form.php:351
3016
+ msgid ""
3017
+ "This shows how many posts have keywords indexed for and are ready for "
3018
+ "replacement."
3019
  msgstr ""
3020
 
3021
+ #: pro/app/views/options/form.php:359 pro/app/views/options/form.php:382
3022
+ msgid "%1$s out of %2$s Posts Indexed"
3023
  msgstr ""
3024
 
3025
+ #: pro/app/views/options/form.php:363 pro/app/views/options/form.php:386
3026
+ msgid "%1$s out of %2$s Comments Indexed"
3027
  msgstr ""
3028
 
3029
+ #: pro/app/views/options/form.php:371
3030
+ msgid "URL Index Status"
3031
  msgstr ""
3032
 
3033
+ #: pro/app/views/options/form.php:373
3034
+ msgid "URL Replacements Index Status"
3035
  msgstr ""
3036
 
3037
+ #: pro/app/views/options/form.php:374
3038
  msgid ""
3039
+ "This shows how many posts have url replacements indexed for and are ready "
3040
+ "for replacement."
 
 
3041
  msgstr ""
3042
 
3043
+ #: pro/app/views/options/form.php:402
3044
+ msgid "Auto-Create Shortlink Options"
3045
  msgstr ""
3046
 
3047
+ #: pro/app/views/options/form.php:423
3048
+ msgid "Pretty Bar Options"
 
 
3049
  msgstr ""
3050
 
3051
+ #: pro/app/views/options/form.php:429
3052
+ msgid "Image URL"
3053
  msgstr ""
3054
 
3055
+ #: pro/app/views/options/form.php:431
3056
+ msgid "Pretty Bar Image URL"
3057
  msgstr ""
3058
 
3059
+ #: pro/app/views/options/form.php:432
3060
  msgid ""
3061
+ "If set, this will replace the logo image on the Pretty Bar. The image that "
3062
+ "this URL references should be 48x48 Pixels to fit."
3063
  msgstr ""
3064
 
3065
+ #: pro/app/views/options/form.php:443
3066
+ msgid "Background Image URL"
 
 
3067
  msgstr ""
3068
 
3069
+ #: pro/app/views/options/form.php:445
3070
+ msgid "Pretty Bar Background Image URL"
3071
  msgstr ""
3072
 
3073
+ #: pro/app/views/options/form.php:446
3074
+ msgid ""
3075
+ "If set, this will replace the background image on Pretty Bar. The image that "
3076
+ "this URL references should be 65px tall - this image will be repeated "
3077
+ "horizontally across the bar."
3078
  msgstr ""
3079
 
3080
+ #: pro/app/views/options/form.php:457
3081
+ msgid "Background Color"
3082
  msgstr ""
3083
 
3084
+ #: pro/app/views/options/form.php:459
3085
+ msgid "Pretty Bar Background Color"
 
 
3086
  msgstr ""
3087
 
3088
+ #: pro/app/views/options/form.php:460
3089
+ msgid ""
3090
+ "This will alter the background color of the Pretty Bar if you haven't "
3091
+ "specified a Pretty Bar background image."
3092
  msgstr ""
3093
 
3094
+ #: pro/app/views/options/form.php:471
3095
+ msgid "Text Color"
3096
  msgstr ""
3097
 
3098
+ #: pro/app/views/options/form.php:473
3099
+ msgid "Pretty Bar Text Color"
3100
  msgstr ""
3101
 
3102
+ #: pro/app/views/options/form.php:474
3103
+ msgid ""
3104
+ "If not set, this defaults to black (RGB value <code>#000000</code>) but you "
3105
+ "can change it to whatever color you like."
3106
  msgstr ""
3107
 
3108
+ #: pro/app/views/options/form.php:485
3109
+ msgid "Link Color"
3110
  msgstr ""
3111
 
3112
+ #: pro/app/views/options/form.php:487
3113
+ msgid "Pretty Bar Link Color"
3114
  msgstr ""
3115
 
3116
+ #: pro/app/views/options/form.php:488
3117
+ msgid ""
3118
+ "If not set, this defaults to blue (RGB value <code>#0000ee</code>) but you "
3119
+ "can change it to whatever color you like."
3120
  msgstr ""
3121
 
3122
+ #: pro/app/views/options/form.php:499
3123
+ msgid "Link Hover Color"
3124
  msgstr ""
3125
 
3126
+ #: pro/app/views/options/form.php:501
3127
+ msgid "Pretty Bar Link Hover Color"
3128
  msgstr ""
3129
 
3130
+ #: pro/app/views/options/form.php:502
3131
+ msgid ""
3132
+ "If not set, this defaults to RGB value <code>#ababab</code> but you can "
3133
+ "change it to whatever color you like."
3134
  msgstr ""
3135
 
3136
+ #: pro/app/views/options/form.php:513
3137
+ msgid "Visited Link Color"
3138
  msgstr ""
3139
 
3140
+ #: pro/app/views/options/form.php:515
3141
+ msgid "Pretty Bar Visited Link Color"
3142
  msgstr ""
3143
 
3144
+ #: pro/app/views/options/form.php:516
3145
+ msgid ""
3146
+ "If not set, this defaults to RGB value <code>#551a8b</code> but you can "
3147
+ "change it to whatever color you like."
3148
  msgstr ""
3149
 
3150
+ #: pro/app/views/options/form.php:527
3151
+ msgid "Title Char Limit"
3152
  msgstr ""
3153
 
3154
+ #: pro/app/views/options/form.php:529
3155
+ msgid "Pretty Bar Title Char Limit"
3156
  msgstr ""
3157
 
3158
+ #: pro/app/views/options/form.php:530
3159
+ msgid ""
3160
+ "If your Website has a long title then you may need to adjust this value so "
3161
+ "that it will all fit on the Pretty Bar. It is recommended that you keep this "
3162
+ "value to <code>30</code> characters or less so the Pretty Bar's format looks "
3163
+ "good across different browsers and screen resolutions."
3164
  msgstr ""
3165
 
3166
+ #: pro/app/views/options/form.php:541
3167
+ msgid "Description Char Limit"
3168
  msgstr ""
3169
 
3170
+ #: pro/app/views/options/form.php:543
3171
+ msgid "Pretty Bar Description Char Limit"
3172
  msgstr ""
3173
 
3174
+ #: pro/app/views/options/form.php:544
3175
+ msgid ""
3176
+ "If your Website has a long Description (tagline) then you may need to adjust "
3177
+ "this value so that it will all fit on the Pretty Bar. It is recommended that "
3178
+ "you keep this value to <code>40</code> characters or less so the Pretty "
3179
+ "Bar's format looks good across different browsers and screen resolutions."
3180
  msgstr ""
3181
 
3182
+ #: pro/app/views/options/form.php:555
3183
+ msgid "Target URL Char Limit"
3184
  msgstr ""
3185
 
3186
+ #: pro/app/views/options/form.php:557
3187
+ msgid "Pretty Bar Target URL Char Limit"
3188
  msgstr ""
3189
 
3190
+ #: pro/app/views/options/form.php:558
3191
  msgid ""
3192
+ "If you link to a lot of large Target URLs you may want to adjust this value. "
3193
+ "It is recommended that you keep this value to <code>40</code> or below so "
3194
+ "the Pretty Bar's format looks good across different browsers and URL sizes"
3195
  msgstr ""
3196
 
3197
+ #: pro/app/views/options/form.php:569
3198
+ msgid "Show Title"
3199
+ msgstr ""
3200
+
3201
+ #: pro/app/views/options/form.php:571
3202
+ msgid "Pretty Bar Show Title"
3203
  msgstr ""
3204
 
3205
+ #: pro/app/views/options/form.php:572
3206
+ msgid ""
3207
+ "Make sure this is checked if you want the title of your blog (and link) to "
3208
+ "show up on the Pretty Bar."
3209
  msgstr ""
3210
 
3211
+ #: pro/app/views/options/form.php:583
3212
+ msgid "Show Description"
3213
  msgstr ""
3214
 
3215
+ #: pro/app/views/options/form.php:585
3216
+ msgid "Pretty Bar Show Description"
3217
  msgstr ""
3218
 
3219
+ #: pro/app/views/options/form.php:586
3220
  msgid ""
3221
+ "Make sure this is checked if you want your site description to show up on "
3222
+ "the Pretty Bar."
3223
  msgstr ""
3224
 
3225
+ #: pro/app/views/options/form.php:597
3226
+ msgid "Show Share Links"
3227
  msgstr ""
3228
 
3229
+ #: pro/app/views/options/form.php:599
3230
+ msgid "Pretty Bar Show Share Links"
 
 
3231
  msgstr ""
3232
 
3233
+ #: pro/app/views/options/form.php:600
3234
+ msgid ""
3235
+ "Make sure this is checked if you want \"share links\" to show up on the "
3236
+ "Pretty Bar."
3237
  msgstr ""
3238
 
3239
+ #: pro/app/views/options/form.php:611
3240
+ msgid "Show Target URL"
 
 
3241
  msgstr ""
3242
 
3243
+ #: pro/app/views/options/form.php:613
3244
+ msgid "Pretty Bar Show Target URL Links"
3245
  msgstr ""
3246
 
3247
+ #: pro/app/views/options/form.php:614
3248
+ msgid ""
3249
+ "Make sure this is checked if you want a link displaying the Target URL to "
3250
+ "show up on the Pretty Bar."
3251
  msgstr ""
3252
 
3253
+ #: pro/app/views/options/form.php:625 pro/app/views/options/form.php:627
3254
+ msgid "Hide Attribution Link"
3255
  msgstr ""
3256
 
3257
+ #: pro/app/views/options/form.php:628
3258
+ msgid ""
3259
+ "Check this to hide the pretty link attribution link on the pretty bar.<br/"
3260
+ "><br/><strong>Wait, before you do this, you might want to leave this un-"
3261
+ "checked and set the alternate URL of this link to your <em>Pretty Link Pro</"
3262
+ "em> <a href=\"http://prettylinkpro.com/affiliate-dashboard/\">Affiliate URL</"
3263
+ "a> to earn a few bucks while you are at it."
3264
  msgstr ""
3265
 
3266
+ #: pro/app/views/options/form.php:646
3267
+ msgid "Attribution URL"
3268
  msgstr ""
3269
 
3270
+ #: pro/app/views/options/form.php:648
3271
+ msgid "Alternate Pretty Bar Attribution URL"
3272
  msgstr ""
3273
 
3274
+ #: pro/app/views/options/form.php:649
3275
+ msgid ""
3276
+ "If set, this will replace the Pretty Bars attribution URL. This is a very "
3277
+ "good place to put your <em>Pretty Link Pro</em> <a href=\"http://"
3278
+ "prettylinkpro.com/affiliate-dashboard/\">Affiliate Link</a>."
3279
  msgstr ""
3280
 
3281
+ #: pro/app/views/options/form.php:663
3282
+ msgid "Social Buttons Options"
3283
  msgstr ""
3284
 
3285
+ #: pro/app/views/options/form.php:666
3286
+ msgid "Buttons"
3287
  msgstr ""
3288
 
3289
+ #: pro/app/views/options/form.php:668
3290
+ msgid "Social Buttons"
3291
  msgstr ""
3292
 
3293
+ #: pro/app/views/options/form.php:669
3294
+ msgid ""
3295
+ "Select which buttons you want to be visible on the Social Buttons Bar.<br/"
3296
+ "><br/><code>Note:</code> In order for the Social Buttons Bar to be visible "
3297
+ "on Pages and or Posts, you must first enable it in the \"Page &amp; Post "
3298
+ "Options\" section above."
3299
  msgstr ""
3300
 
3301
+ #: pro/app/views/options/form.php:692
3302
+ msgid "Buttons Placement"
3303
  msgstr ""
3304
 
3305
+ #: pro/app/views/options/form.php:694
3306
+ msgid "Social Buttons Placement"
 
3307
  msgstr ""
3308
 
3309
+ #: pro/app/views/options/form.php:695
3310
+ msgid ""
3311
+ "This determines where your Social Buttons Placement should appear in "
3312
+ "relation to content on Pages and/or Posts.<br/><br/><code>Note:</code> If "
3313
+ "you want this bar to appear then you must enable it in the \"Page and Post "
3314
+ "Options\" above."
3315
  msgstr ""
3316
 
3317
+ #: pro/app/views/options/form.php:705
3318
+ msgid "Social Buttons Manual Placement"
3319
+ msgstr ""
3320
+
3321
+ #: pro/app/views/options/form.php:706
3322
+ msgid ""
3323
+ "If you select none, you can still show your Social Buttons by manually "
3324
+ "adding the <code>[social_buttons_bar]</code> shortcode to your blog posts or "
3325
+ "<code>&lt;?php the_social_buttons_bar(); ?&gt;</code> template tag to your "
3326
+ "WordPress Theme."
3327
  msgstr ""
3328
 
3329
+ #: pro/app/views/options/form.php:731
3330
+ msgid "Public Links Creation Options"
3331
  msgstr ""
3332
 
3333
+ #: pro/app/views/options/form.php:737
3334
+ msgid "Enable Public Links"
3335
  msgstr ""
3336
 
3337
+ #: pro/app/views/options/form.php:739
3338
+ msgid "Enable Public Link Creation on this Site"
3339
  msgstr ""
3340
 
3341
+ #: pro/app/views/options/form.php:740
3342
+ msgid ""
3343
+ "This option will give you the ability to turn your website into a link "
3344
+ "shortening service for your users. Once selected, you can enable the Pretty "
3345
+ "Link Pro Sidebar Widget or just display the link creation form with the "
3346
+ "<code>[prli_create_form]</code> shortcode in any post or page on your "
3347
+ "website."
3348
  msgstr ""
3349
 
3350
+ #: pro/app/views/options/form.php:757
3351
+ msgid "Use Display Page"
3352
  msgstr ""
3353
 
3354
+ #: pro/app/views/options/form.php:759
3355
+ msgid "Use Public Link Display Page"
3356
  msgstr ""
3357
 
3358
+ #: pro/app/views/options/form.php:760
3359
+ msgid ""
3360
+ "When a link is created using the public form, the user is typically "
3361
+ "redirected to a simple page displaying their new pretty link. But, you can "
3362
+ "specify a page that you want them to be redirected to on your website, using "
3363
+ "your branding instead by selecting this box and entering the url of the page "
3364
+ "you want them to go to."
3365
  msgstr ""
3366
 
3367
+ #: pro/app/views/options/form.php:777
3368
+ msgid "Display Page"
3369
  msgstr ""
3370
 
3371
+ #: pro/app/views/options/form.php:779
3372
+ msgid "Public Pretty Link Creation Display URL"
3373
  msgstr ""
3374
 
3375
+ #: pro/app/views/options/form.php:780
3376
  msgid ""
3377
+ "To set this up, create a new page on your WordPress site and make sure the "
3378
+ "<code>[prli_create_display]</code> appears somewhere on this page -- "
3379
+ "otherwise the link will never get created. Once this page is created, just "
3380
+ "enter the full URL to it here. Make sure this URL does npt end with a slash "
3381
+ "(/)."
3382
+ msgstr ""
3383
+
3384
+ #: pro/app/views/options/general.php:8
3385
+ msgid "Use Shortlink URL"
3386
  msgstr ""
3387
 
3388
+ #: pro/app/views/options/general.php:10
3389
+ msgid "Use an Alternate Shortlink URL"
3390
  msgstr ""
3391
 
3392
+ #: pro/app/views/options/general.php:11
3393
  msgid ""
3394
+ "Use this option if you want to substitute your actual blog's url with "
3395
+ "another URL. You must have another valid domain name pointing to this "
3396
+ "WordPress install before you enable this option. If you are using this "
3397
+ "option to just get rid of the www in the beginning of your url that is fine "
3398
+ "-- just make sure your domain works without the www before enabling this "
3399
+ "option."
3400
  msgstr ""
3401
 
3402
+ #: pro/app/views/options/general.php:28 pro/app/views/options/general.php:30
3403
+ msgid "Shortlink URL"
3404
  msgstr ""
3405
 
3406
+ #: pro/app/views/options/general.php:31
3407
  msgid ""
3408
+ "Enter a valid base url that points at this WordPress install. Make sure this "
3409
+ "URL does not end with a slash (/)."
 
3410
  msgstr ""
3411
 
3412
+ #: pro/app/views/options/general.php:47
3413
+ msgid "Minimum Admin Role"
 
3414
  msgstr ""
3415
 
3416
+ #: pro/app/views/options/general.php:49
3417
+ msgid "Set Minimum Role Required To Access Pretty Link"
3418
  msgstr ""
3419
 
3420
+ #: pro/app/views/options/general.php:50
3421
  msgid ""
3422
+ "Use this option to set the minimum role of users who can access the Admin "
3423
+ "interface for Pretty Link."
3424
  msgstr ""
3425
 
3426
+ #: pro/app/views/options/general.php:56
3427
+ msgid "Administrator"
3428
  msgstr ""
3429
 
3430
+ #: pro/app/views/options/general.php:57
3431
+ msgid "Editor"
3432
  msgstr ""
3433
 
3434
+ #: pro/app/views/options/general.php:58
3435
+ msgid "Author"
3436
  msgstr ""
3437
 
3438
+ #: pro/app/views/options/general.php:59
3439
+ msgid "Contributor"
3440
  msgstr ""
3441
 
3442
+ #: pro/app/views/options/general.php:60
3443
+ msgid "Subscriber"
3444
+ msgstr ""
3445
+
3446
+ #: pro/app/views/options/nav.php:3
3447
+ msgid "Replacements"
3448
+ msgstr ""
3449
+
3450
+ #: pro/app/views/options/nav.php:4
3451
+ msgid "Auto-Create Links"
3452
+ msgstr ""
3453
+
3454
+ #: pro/app/views/options/nav.php:6
3455
+ msgid "Social"
3456
+ msgstr ""
3457
+
3458
+ #: pro/app/views/options/nav.php:7
3459
+ msgid "Public"
3460
+ msgstr ""
3461
+
3462
+ #: pro/app/views/public/form.php:29
3463
+ msgid "ERROR:"
3464
  msgstr ""
3465
 
3466
+ #: pro/app/views/reports/custom-report.php:7
3467
  msgid "Link Report"
3468
  msgstr ""
3469
 
3470
+ #: pro/app/views/reports/custom-report.php:8
3471
  msgid "Report:"
3472
  msgstr ""
3473
 
3474
+ #: pro/app/views/reports/custom-report.php:10
3475
+ msgid "For Goal Link:"
3476
+ msgstr ""
3477
+
3478
+ #: pro/app/views/reports/custom-report.php:30
3479
+ #: pro/app/views/reports/custom-report.php:63
3480
+ msgid "Link Name"
3481
+ msgstr ""
3482
+
3483
+ #: pro/app/views/reports/custom-report.php:35
3484
+ #: pro/app/views/reports/custom-report.php:68
3485
+ #: pro/app/views/reports/split-test-report.php:32
3486
+ #: pro/app/views/reports/split-test-report.php:64
3487
+ msgid "Conv Rate"
3488
+ msgstr ""
3489
+
3490
+ #: pro/app/views/reports/edit.php:4
3491
+ msgid "Edit Link Report"
3492
+ msgstr ""
3493
+
3494
+ #: pro/app/views/reports/edit.php:17 pro/app/views/reports/new.php:16
3495
+ msgid "This is how you'll identify your Report."
3496
+ msgstr ""
3497
+
3498
+ #: pro/app/views/reports/edit.php:23 pro/app/views/reports/new.php:23
3499
+ msgid "Select Links to Analyze in this Report:"
3500
+ msgstr ""
3501
+
3502
+ #: pro/app/views/reports/edit.php:77 pro/app/views/reports/new.php:77
3503
+ msgid "Select some links to be analyzed in this report."
3504
+ msgstr ""
3505
+
3506
+ #: pro/app/views/reports/edit.php:80 pro/app/views/reports/new.php:80
3507
+ msgid "Select Your Goal Link (optional):"
3508
+ msgstr ""
3509
+
3510
+ #: pro/app/views/reports/edit.php:103 pro/app/views/reports/new.php:103
3511
+ msgid ""
3512
+ "If you want to enable conversion tracking in this report then select a goal "
3513
+ "link."
3514
+ msgstr ""
3515
+
3516
+ #: pro/app/views/reports/list.php:4 pro/app/views/reports/reports.php:7
3517
+ msgid "Link Reports"
3518
+ msgstr ""
3519
+
3520
+ #: pro/app/views/reports/list.php:5
3521
+ msgid "Add Report"
3522
+ msgstr ""
3523
+
3524
+ #: pro/app/views/reports/list.php:41
3525
+ msgid "No Pretty Link Reports were found"
3526
+ msgstr ""
3527
+
3528
+ #: pro/app/views/reports/list.php:57
3529
+ msgid "View"
3530
+ msgstr ""
3531
+
3532
+ #: pro/app/views/reports/new.php:4
3533
+ msgid "Add Link Report"
3534
+ msgstr ""
3535
+
3536
+ #: pro/app/views/reports/reports.php:4
3537
+ msgid "Reports"
3538
+ msgstr ""
3539
+
3540
+ #: pro/app/views/reports/split-test-report.php:4
3541
+ msgid "Link Split-Test Report"
3542
+ msgstr ""
3543
+
3544
+ #: pro/app/views/reports/split-test-report.php:5
3545
+ msgid "For Link:"
3546
+ msgstr ""
3547
+
3548
+ #: pro/app/views/reports/split-test-report.php:7
3549
+ msgid "Goal Link:"
3550
+ msgstr ""
3551
+
3552
+ #: pro/app/views/reports/split-test-report.php:27
3553
+ msgid "Link Rotation URL"
3554
+ msgstr ""
3555
+
3556
+ #: pro/app/views/reports/split-test-report.php:59
3557
+ msgid "Rotation URL"
3558
+ msgstr ""
3559
+
3560
+ #: pro/app/views/tools/generator.php:6 pro/app/views/tools/nav.php:3
3561
+ msgid "End-Point URL"
3562
+ msgstr ""
3563
+
3564
+ #: pro/app/views/tools/generator.php:7
3565
+ msgid "This can be used to integrate with your twitter client."
3566
+ msgstr ""
3567
+
3568
+ #: pro/app/views/tools/generator.php:11
3569
+ msgid "Show TweetDeck Integration Instructions"
3570
+ msgstr ""
3571
+
3572
+ #: pro/app/views/tools/generator.php:15 pro/app/views/tools/generator.php:24
3573
+ msgid "Follow the"
3574
+ msgstr ""
3575
+
3576
+ #: pro/app/views/tools/generator.php:15
3577
+ msgid "TweetDeck Custom URL Instructions"
3578
+ msgstr ""
3579
+
3580
+ #: pro/app/views/tools/generator.php:15
3581
+ msgid " and add the following URL to TweetDeck"
3582
+ msgstr ""
3583
+
3584
+ #: pro/app/views/tools/generator.php:20
3585
+ msgid "Show Twitter for iPhone Integration Instructions"
3586
+ msgstr ""
3587
+
3588
+ #: pro/app/views/tools/generator.php:24
3589
+ msgid "Twitter for iPhone Custom URL Instructions"
3590
  msgstr ""
3591
 
3592
+ #: pro/app/views/tools/generator.php:24
3593
+ msgid " and add the following URL to Twitter for iPhone"
3594
  msgstr ""
3595
 
3596
+ #: pro/app/views/tools/generator.php:30
3597
+ msgid "Custom Bookmarklet:"
 
3598
  msgstr ""
3599
 
3600
+ #: pro/app/views/tools/generator.php:33
3601
+ msgid "Customize Pretty Link Bookmarklet"
 
 
 
 
3602
  msgstr ""
3603
 
3604
+ #: pro/app/views/tools/generator.php:34
3605
+ msgid ""
3606
+ "Alter the options below to customize this Bookmarklet. As you modify the "
3607
+ "label, redirect type, tracking and group, you will see this bookmarklet "
3608
+ "update -- when the settings are how you want them, drag the bookmarklet into "
3609
+ "your toolbar. You can create as many bookmarklets as you want each with "
3610
+ "different settings."
3611
  msgstr ""
3612
 
3613
+ #: pro/app/views/tools/generator.php:37
3614
+ #: pro/app/widgets/PlpPublicLinksWidget.php:55
3615
+ msgid "Pretty Link Options"
 
 
3616
  msgstr ""
3617
 
3618
+ #: pro/app/views/tools/generator.php:40
3619
+ msgid "Label:"
3620
  msgstr ""
3621
 
3622
+ #: pro/app/views/tools/generator.php:45
3623
+ #: pro/app/widgets/PlpPublicLinksWidget.php:57
3624
+ msgid "Redirection:"
3625
  msgstr ""
3626
 
3627
+ #: pro/app/views/tools/generator.php:49
3628
+ msgid "Tracking:"
 
3629
  msgstr ""
3630
 
3631
+ #: pro/app/views/tools/generator.php:52
3632
+ #: pro/app/widgets/PlpPublicLinksWidget.php:72
3633
+ msgid "Yes"
3634
  msgstr ""
3635
 
3636
+ #: pro/app/views/tools/generator.php:53
3637
+ #: pro/app/widgets/PlpPublicLinksWidget.php:73
3638
+ msgid "No"
3639
  msgstr ""
3640
 
3641
+ #: pro/app/views/tools/generator.php:57
3642
+ #: pro/app/widgets/PlpPublicLinksWidget.php:78
3643
+ msgid "Group:"
 
 
3644
  msgstr ""
3645
 
3646
+ #: pro/app/views/tools/nav.php:4
3647
+ msgid "Custom Bookmarklet"
 
3648
  msgstr ""
3649
 
3650
+ #: pro/app/widgets/PlpPublicLinksWidget.php:7
3651
+ msgid "Create a Short URL"
3652
  msgstr ""
3653
 
3654
+ #: pro/app/widgets/PlpPublicLinksWidget.php:53
3655
+ msgid "Label Text:"
 
3656
  msgstr ""
3657
 
3658
+ #: pro/app/widgets/PlpPublicLinksWidget.php:54
3659
+ msgid "Button Text:"
3660
  msgstr ""
3661
 
3662
+ #: pro/app/widgets/PlpPublicLinksWidget.php:54
3663
+ msgid "if left blank, no button will display"
3664
  msgstr ""
3665
 
3666
+ #: pro/app/widgets/PlpPublicLinksWidget.php:60
3667
+ msgid "Permanent/301"
3668
  msgstr ""
3669
 
3670
+ #: pro/app/widgets/PlpPublicLinksWidget.php:61
3671
+ msgid "Temporary/302"
3672
  msgstr ""
3673
 
3674
+ #: pro/app/widgets/PlpPublicLinksWidget.php:62
3675
+ msgid "Temporary/307"
3676
  msgstr ""
3677
 
3678
+ #: pro/app/widgets/PlpPublicLinksWidget.php:63
3679
+ msgid "PrettyBar"
3680
  msgstr ""
3681
 
3682
+ #: pro/app/widgets/PlpPublicLinksWidget.php:69
3683
+ msgid "Tracking Enabled:"
3684
  msgstr ""
3685
 
3686
+ #: pro/i18n/countries.php:5
3687
+ msgid "Afghanistan"
3688
  msgstr ""
3689
 
3690
+ #: pro/i18n/countries.php:6
3691
+ msgid "&#197;land Islands"
3692
  msgstr ""
3693
 
3694
+ #: pro/i18n/countries.php:7
3695
+ msgid "Albania"
3696
  msgstr ""
3697
 
3698
+ #: pro/i18n/countries.php:8
3699
+ msgid "Algeria"
3700
  msgstr ""
3701
 
3702
+ #: pro/i18n/countries.php:9
3703
+ msgid "Andorra"
3704
  msgstr ""
3705
 
3706
+ #: pro/i18n/countries.php:10
3707
+ msgid "Angola"
3708
  msgstr ""
3709
 
3710
+ #: pro/i18n/countries.php:11
3711
+ msgid "Anguilla"
3712
  msgstr ""
3713
 
3714
+ #: pro/i18n/countries.php:12
3715
+ msgid "Antarctica"
3716
  msgstr ""
3717
 
3718
+ #: pro/i18n/countries.php:13
3719
+ msgid "Antigua and Barbuda"
3720
  msgstr ""
3721
 
3722
+ #: pro/i18n/countries.php:14
3723
+ msgid "Argentina"
3724
  msgstr ""
3725
 
3726
+ #: pro/i18n/countries.php:15
3727
+ msgid "Armenia"
 
 
 
 
 
3728
  msgstr ""
3729
 
3730
+ #: pro/i18n/countries.php:16
3731
+ msgid "Aruba"
3732
  msgstr ""
3733
 
3734
+ #: pro/i18n/countries.php:17
3735
+ msgid "Australia"
3736
  msgstr ""
3737
 
3738
+ #: pro/i18n/countries.php:18
3739
+ msgid "Austria"
3740
  msgstr ""
3741
 
3742
+ #: pro/i18n/countries.php:19
3743
+ msgid "Azerbaijan"
3744
  msgstr ""
3745
 
3746
+ #: pro/i18n/countries.php:20
3747
+ msgid "Bahamas"
3748
  msgstr ""
3749
 
3750
+ #: pro/i18n/countries.php:21
3751
+ msgid "Bahrain"
3752
  msgstr ""
3753
 
3754
+ #: pro/i18n/countries.php:22
3755
+ msgid "Bangladesh"
3756
  msgstr ""
3757
 
3758
+ #: pro/i18n/countries.php:23
3759
+ msgid "Barbados"
3760
  msgstr ""
3761
 
3762
+ #: pro/i18n/countries.php:24
3763
+ msgid "Belarus"
3764
  msgstr ""
3765
 
3766
+ #: pro/i18n/countries.php:25
3767
+ msgid "Belgium"
3768
  msgstr ""
3769
 
3770
+ #: pro/i18n/countries.php:26
3771
+ msgid "Belau"
3772
  msgstr ""
3773
 
3774
+ #: pro/i18n/countries.php:27
3775
+ msgid "Belize"
 
 
 
3776
  msgstr ""
3777
 
3778
+ #: pro/i18n/countries.php:28
3779
+ msgid "Benin"
3780
  msgstr ""
3781
 
3782
+ #: pro/i18n/countries.php:29
3783
+ msgid "Bermuda"
 
 
3784
  msgstr ""
3785
 
3786
+ #: pro/i18n/countries.php:30
3787
+ msgid "Bhutan"
3788
  msgstr ""
3789
 
3790
+ #: pro/i18n/countries.php:31
3791
+ msgid "Bolivia"
 
 
3792
  msgstr ""
3793
 
3794
+ #: pro/i18n/countries.php:32
3795
+ msgid "Bonaire, Saint Eustatius and Saba"
3796
  msgstr ""
3797
 
3798
+ #: pro/i18n/countries.php:33
3799
+ msgid "Bosnia and Herzegovina"
 
3800
  msgstr ""
3801
 
3802
+ #: pro/i18n/countries.php:34
3803
+ msgid "Botswana"
3804
  msgstr ""
3805
 
3806
+ #: pro/i18n/countries.php:35
3807
+ msgid "Bouvet Island"
 
 
 
3808
  msgstr ""
3809
 
3810
+ #: pro/i18n/countries.php:36
3811
+ msgid "Brazil"
3812
  msgstr ""
3813
 
3814
+ #: pro/i18n/countries.php:37
3815
+ msgid "British Indian Ocean Territory"
 
 
 
3816
  msgstr ""
3817
 
3818
+ #: pro/i18n/countries.php:38
3819
+ msgid "British Virgin Islands"
3820
  msgstr ""
3821
 
3822
+ #: pro/i18n/countries.php:39
3823
+ msgid "Brunei"
 
 
3824
  msgstr ""
3825
 
3826
+ #: pro/i18n/countries.php:40
3827
+ msgid "Bulgaria"
3828
  msgstr ""
3829
 
3830
+ #: pro/i18n/countries.php:41
3831
+ msgid "Burkina Faso"
 
 
 
3832
  msgstr ""
3833
 
3834
+ #: pro/i18n/countries.php:42
3835
+ msgid "Burundi"
3836
  msgstr ""
3837
 
3838
+ #: pro/i18n/countries.php:43
3839
+ msgid "Cambodia"
 
 
3840
  msgstr ""
3841
 
3842
+ #: pro/i18n/countries.php:44
3843
+ msgid "Cameroon"
3844
  msgstr ""
3845
 
3846
+ #: pro/i18n/countries.php:45
3847
+ msgid "Canada"
 
 
3848
  msgstr ""
3849
 
3850
+ #: pro/i18n/countries.php:46
3851
+ msgid "Cape Verde"
3852
  msgstr ""
3853
 
3854
+ #: pro/i18n/countries.php:47
3855
+ msgid "Cayman Islands"
 
 
 
 
 
 
 
 
3856
  msgstr ""
3857
 
3858
+ #: pro/i18n/countries.php:48
3859
+ msgid "Central African Republic"
3860
  msgstr ""
3861
 
3862
+ #: pro/i18n/countries.php:49
3863
+ msgid "Chad"
3864
  msgstr ""
3865
 
3866
+ #: pro/i18n/countries.php:50
3867
+ msgid "Chile"
3868
  msgstr ""
3869
 
3870
+ #: pro/i18n/countries.php:51
3871
+ msgid "China"
3872
  msgstr ""
3873
 
3874
+ #: pro/i18n/countries.php:52
3875
+ msgid "Christmas Island"
3876
  msgstr ""
3877
 
3878
+ #: pro/i18n/countries.php:53
3879
+ msgid "Cocos/Keeling Islands"
3880
  msgstr ""
3881
 
3882
+ #: pro/i18n/countries.php:54
3883
+ msgid "Colombia"
3884
  msgstr ""
3885
 
3886
+ #: pro/i18n/countries.php:55
3887
+ msgid "Comoros"
3888
  msgstr ""
3889
 
3890
+ #: pro/i18n/countries.php:56
3891
+ msgid "Congo (Brazzaville)"
3892
  msgstr ""
3893
 
3894
+ #: pro/i18n/countries.php:57
3895
+ msgid "Congo (Kinshasa)"
3896
  msgstr ""
3897
 
3898
+ #: pro/i18n/countries.php:58
3899
+ msgid "Cook Islands"
3900
  msgstr ""
3901
 
3902
+ #: pro/i18n/countries.php:59
3903
+ msgid "Costa Rica"
3904
  msgstr ""
3905
 
3906
+ #: pro/i18n/countries.php:60
3907
+ msgid "Croatia"
3908
  msgstr ""
3909
 
3910
+ #: pro/i18n/countries.php:61
3911
+ msgid "Cuba"
3912
  msgstr ""
3913
 
3914
+ #: pro/i18n/countries.php:62
3915
+ msgid "Cura&Ccedil;ao"
3916
  msgstr ""
3917
 
3918
+ #: pro/i18n/countries.php:63
3919
+ msgid "Cyprus"
3920
  msgstr ""
3921
 
3922
+ #: pro/i18n/countries.php:64
3923
+ msgid "Czech Republic"
3924
  msgstr ""
3925
 
3926
+ #: pro/i18n/countries.php:65
3927
+ msgid "Denmark"
3928
  msgstr ""
3929
 
3930
+ #: pro/i18n/countries.php:66
3931
+ msgid "Djibouti"
3932
  msgstr ""
3933
 
3934
+ #: pro/i18n/countries.php:67
3935
+ msgid "Dominica"
 
 
 
3936
  msgstr ""
3937
 
3938
+ #: pro/i18n/countries.php:68
3939
+ msgid "Dominican Republic"
3940
  msgstr ""
3941
 
3942
+ #: pro/i18n/countries.php:69
3943
+ msgid "Ecuador"
 
 
 
 
3944
  msgstr ""
3945
 
3946
+ #: pro/i18n/countries.php:70
3947
+ msgid "Egypt"
 
3948
  msgstr ""
3949
 
3950
+ #: pro/i18n/countries.php:71
3951
+ msgid "El Salvador"
3952
  msgstr ""
3953
 
3954
+ #: pro/i18n/countries.php:72
3955
+ msgid "Equatorial Guinea"
3956
  msgstr ""
3957
 
3958
+ #: pro/i18n/countries.php:73
3959
+ msgid "Eritrea"
 
3960
  msgstr ""
3961
 
3962
+ #: pro/i18n/countries.php:74
3963
+ msgid "Estonia"
 
 
 
 
3964
  msgstr ""
3965
 
3966
+ #: pro/i18n/countries.php:75
3967
+ msgid "Ethiopia"
3968
  msgstr ""
3969
 
3970
+ #: pro/i18n/countries.php:76
3971
+ msgid "Falkland Islands"
3972
  msgstr ""
3973
 
3974
+ #: pro/i18n/countries.php:77
3975
+ msgid "Faroe Islands"
3976
  msgstr ""
3977
 
3978
+ #: pro/i18n/countries.php:78
3979
+ msgid "Fiji"
3980
  msgstr ""
3981
 
3982
+ #: pro/i18n/countries.php:79
3983
+ msgid "Finland"
 
 
3984
  msgstr ""
3985
 
3986
+ #: pro/i18n/countries.php:80
3987
+ msgid "France"
3988
  msgstr ""
3989
 
3990
+ #: pro/i18n/countries.php:81
3991
+ msgid "French Guiana"
 
 
 
3992
  msgstr ""
3993
 
3994
+ #: pro/i18n/countries.php:82
3995
+ msgid "French Polynesia"
3996
  msgstr ""
3997
 
3998
+ #: pro/i18n/countries.php:83
3999
+ msgid "French Southern Territories"
4000
  msgstr ""
4001
 
4002
+ #: pro/i18n/countries.php:84
4003
+ msgid "Gabon"
 
4004
  msgstr ""
4005
 
4006
+ #: pro/i18n/countries.php:85
4007
+ msgid "Gambia"
 
4008
  msgstr ""
4009
 
4010
+ #: pro/i18n/countries.php:86
4011
+ msgid "Georgia"
 
4012
  msgstr ""
4013
 
4014
+ #: pro/i18n/countries.php:87
4015
+ msgid "Germany"
4016
  msgstr ""
4017
 
4018
+ #: pro/i18n/countries.php:88
4019
+ msgid "Ghana"
 
 
 
 
4020
  msgstr ""
4021
 
4022
+ #: pro/i18n/countries.php:89
4023
+ msgid "Gibraltar"
4024
  msgstr ""
4025
 
4026
+ #: pro/i18n/countries.php:90
4027
+ msgid "Greece"
 
 
 
 
4028
  msgstr ""
4029
 
4030
+ #: pro/i18n/countries.php:91
4031
+ msgid "Greenland"
4032
  msgstr ""
4033
 
4034
+ #: pro/i18n/countries.php:92
4035
+ msgid "Grenada"
 
 
 
 
4036
  msgstr ""
4037
 
4038
+ #: pro/i18n/countries.php:93
4039
+ msgid "Guadeloupe"
4040
  msgstr ""
4041
 
4042
+ #: pro/i18n/countries.php:94
4043
+ msgid "Guatemala"
 
 
4044
  msgstr ""
4045
 
4046
+ #: pro/i18n/countries.php:95
4047
+ msgid "Guernsey"
4048
  msgstr ""
4049
 
4050
+ #: pro/i18n/countries.php:96
4051
+ msgid "Guinea"
4052
  msgstr ""
4053
 
4054
+ #: pro/i18n/countries.php:97
4055
+ msgid "Guinea-Bissau"
4056
  msgstr ""
4057
 
4058
+ #: pro/i18n/countries.php:98
4059
+ msgid "Guyana"
4060
  msgstr ""
4061
 
4062
+ #: pro/i18n/countries.php:99
4063
+ msgid "Haiti"
 
4064
  msgstr ""
4065
 
4066
+ #: pro/i18n/countries.php:100
4067
+ msgid "Heard Island and McDonald Islands"
 
 
 
 
 
 
4068
  msgstr ""
4069
 
4070
+ #: pro/i18n/countries.php:101
4071
+ msgid "Honduras"
 
 
 
 
 
 
4072
  msgstr ""
4073
 
4074
+ #: pro/i18n/countries.php:102
4075
+ msgid "Hong Kong"
4076
  msgstr ""
4077
 
4078
+ #: pro/i18n/countries.php:103
4079
+ msgid "Hungary"
 
 
 
 
 
4080
  msgstr ""
4081
 
4082
+ #: pro/i18n/countries.php:104
4083
+ msgid "Iceland"
4084
  msgstr ""
4085
 
4086
+ #: pro/i18n/countries.php:105
4087
+ msgid "India"
4088
  msgstr ""
4089
 
4090
+ #: pro/i18n/countries.php:106
4091
+ msgid "Indonesia"
 
 
 
 
 
 
4092
  msgstr ""
4093
 
4094
+ #: pro/i18n/countries.php:107
4095
+ msgid "Iran"
4096
  msgstr ""
4097
 
4098
+ #: pro/i18n/countries.php:108
4099
+ msgid "Iraq"
 
 
4100
  msgstr ""
4101
 
4102
+ #: pro/i18n/countries.php:109
4103
+ msgid "Republic of Ireland"
4104
  msgstr ""
4105
 
4106
+ #: pro/i18n/countries.php:110
4107
+ msgid "Isle of Man"
4108
  msgstr ""
4109
 
4110
+ #: pro/i18n/countries.php:111
4111
+ msgid "Israel"
4112
  msgstr ""
4113
 
4114
+ #: pro/i18n/countries.php:112
4115
+ msgid "Italy"
4116
  msgstr ""
4117
 
4118
+ #: pro/i18n/countries.php:113
4119
+ msgid "Ivory Coast"
4120
  msgstr ""
4121
 
4122
+ #: pro/i18n/countries.php:114
4123
+ msgid "Jamaica"
4124
  msgstr ""
4125
 
4126
+ #: pro/i18n/countries.php:115
4127
+ msgid "Japan"
4128
  msgstr ""
4129
 
4130
+ #: pro/i18n/countries.php:116
4131
+ msgid "Jersey"
4132
  msgstr ""
4133
 
4134
+ #: pro/i18n/countries.php:117
4135
+ msgid "Jordan"
4136
  msgstr ""
4137
 
4138
+ #: pro/i18n/countries.php:118
4139
+ msgid "Kazakhstan"
4140
  msgstr ""
4141
 
4142
+ #: pro/i18n/countries.php:119
4143
+ msgid "Kenya"
4144
  msgstr ""
4145
 
4146
+ #: pro/i18n/countries.php:120
4147
+ msgid "Kiribati"
4148
  msgstr ""
4149
 
4150
+ #: pro/i18n/countries.php:121
4151
+ msgid "Kuwait"
4152
  msgstr ""
4153
 
4154
+ #: pro/i18n/countries.php:122
4155
+ msgid "Kyrgyzstan"
4156
  msgstr ""
4157
 
4158
+ #: pro/i18n/countries.php:123
4159
+ msgid "Laos"
4160
  msgstr ""
4161
 
4162
+ #: pro/i18n/countries.php:124
4163
+ msgid "Latvia"
4164
  msgstr ""
4165
 
4166
+ #: pro/i18n/countries.php:125
4167
+ msgid "Lebanon"
4168
  msgstr ""
4169
 
4170
+ #: pro/i18n/countries.php:126
4171
+ msgid "Lesotho"
4172
  msgstr ""
4173
 
4174
+ #: pro/i18n/countries.php:127
4175
+ msgid "Liberia"
4176
  msgstr ""
4177
 
4178
+ #: pro/i18n/countries.php:128
4179
+ msgid "Libya"
4180
  msgstr ""
4181
 
4182
+ #: pro/i18n/countries.php:129
4183
+ msgid "Liechtenstein"
4184
  msgstr ""
4185
 
4186
+ #: pro/i18n/countries.php:130
4187
+ msgid "Lithuania"
4188
  msgstr ""
4189
 
4190
+ #: pro/i18n/countries.php:131
4191
+ msgid "Luxembourg"
4192
  msgstr ""
4193
 
4194
+ #: pro/i18n/countries.php:132
4195
+ msgid "Macao S.A.R., China"
4196
  msgstr ""
4197
 
4198
+ #: pro/i18n/countries.php:133
4199
+ msgid "Macedonia"
4200
  msgstr ""
4201
 
4202
+ #: pro/i18n/countries.php:134
4203
+ msgid "Madagascar"
 
 
4204
  msgstr ""
4205
 
4206
+ #: pro/i18n/countries.php:135
4207
+ msgid "Malawi"
4208
  msgstr ""
4209
 
4210
+ #: pro/i18n/countries.php:136
4211
+ msgid "Malaysia"
4212
  msgstr ""
4213
 
4214
+ #: pro/i18n/countries.php:137
4215
+ msgid "Maldives"
4216
  msgstr ""
4217
 
4218
+ #: pro/i18n/countries.php:138
4219
+ msgid "Mali"
4220
  msgstr ""
4221
 
4222
+ #: pro/i18n/countries.php:139
4223
+ msgid "Malta"
 
 
4224
  msgstr ""
4225
 
4226
+ #: pro/i18n/countries.php:140
4227
+ msgid "Marshall Islands"
4228
  msgstr ""
4229
 
4230
+ #: pro/i18n/countries.php:141
4231
+ msgid "Martinique"
4232
  msgstr ""
4233
 
4234
+ #: pro/i18n/countries.php:142
4235
+ msgid "Mauritania"
4236
  msgstr ""
4237
 
4238
+ #: pro/i18n/countries.php:143
4239
+ msgid "Mauritius"
4240
  msgstr ""
4241
 
4242
+ #: pro/i18n/countries.php:144
4243
+ msgid "Mayotte"
4244
  msgstr ""
4245
 
4246
+ #: pro/i18n/countries.php:145
4247
+ msgid "Mexico"
 
 
 
 
4248
  msgstr ""
4249
 
4250
+ #: pro/i18n/countries.php:146
4251
+ msgid "Micronesia"
4252
  msgstr ""
4253
 
4254
+ #: pro/i18n/countries.php:147
4255
+ msgid "Moldova"
4256
  msgstr ""
4257
 
4258
+ #: pro/i18n/countries.php:148
4259
+ msgid "Monaco"
4260
  msgstr ""
4261
 
4262
+ #: pro/i18n/countries.php:149
4263
+ msgid "Mongolia"
 
 
 
 
4264
  msgstr ""
4265
 
4266
+ #: pro/i18n/countries.php:150
4267
+ msgid "Montenegro"
4268
  msgstr ""
4269
 
4270
+ #: pro/i18n/countries.php:151
4271
+ msgid "Montserrat"
 
 
 
4272
  msgstr ""
4273
 
4274
+ #: pro/i18n/countries.php:152
4275
+ msgid "Morocco"
4276
  msgstr ""
4277
 
4278
+ #: pro/i18n/countries.php:153
4279
+ msgid "Mozambique"
4280
  msgstr ""
4281
 
4282
+ #: pro/i18n/countries.php:154
4283
+ msgid "Myanmar"
4284
  msgstr ""
4285
 
4286
+ #: pro/i18n/countries.php:155
4287
+ msgid "Namibia"
4288
  msgstr ""
4289
 
4290
+ #: pro/i18n/countries.php:156
4291
+ msgid "Nauru"
4292
  msgstr ""
4293
 
4294
+ #: pro/i18n/countries.php:157
4295
+ msgid "Nepal"
4296
  msgstr ""
4297
 
4298
+ #: pro/i18n/countries.php:158
4299
+ msgid "Netherlands"
4300
  msgstr ""
4301
 
4302
+ #: pro/i18n/countries.php:159
4303
+ msgid "Netherlands Antilles"
4304
  msgstr ""
4305
 
4306
+ #: pro/i18n/countries.php:160
4307
+ msgid "New Caledonia"
4308
  msgstr ""
4309
 
4310
+ #: pro/i18n/countries.php:161
4311
+ msgid "New Zealand"
4312
  msgstr ""
4313
 
4314
+ #: pro/i18n/countries.php:162
4315
+ msgid "Nicaragua"
 
 
 
 
 
4316
  msgstr ""
4317
 
4318
+ #: pro/i18n/countries.php:163
4319
+ msgid "Niger"
4320
  msgstr ""
4321
 
4322
+ #: pro/i18n/countries.php:164
4323
+ msgid "Nigeria"
4324
  msgstr ""
4325
 
4326
+ #: pro/i18n/countries.php:165
4327
+ msgid "Niue"
4328
  msgstr ""
4329
 
4330
+ #: pro/i18n/countries.php:166
4331
+ msgid "Norfolk Island"
 
 
4332
  msgstr ""
4333
 
4334
+ #: pro/i18n/countries.php:167
4335
+ msgid "North Korea"
4336
  msgstr ""
4337
 
4338
+ #: pro/i18n/countries.php:168
4339
+ msgid "Norway"
4340
  msgstr ""
4341
 
4342
+ #: pro/i18n/countries.php:169
4343
+ msgid "Oman"
4344
  msgstr ""
4345
 
4346
+ #: pro/i18n/countries.php:170
4347
+ msgid "Pakistan"
 
4348
  msgstr ""
4349
 
4350
+ #: pro/i18n/countries.php:171
4351
+ msgid "Palestinian Territory"
4352
  msgstr ""
4353
 
4354
+ #: pro/i18n/countries.php:172
4355
+ msgid "Panama"
4356
  msgstr ""
4357
 
4358
+ #: pro/i18n/countries.php:173
4359
+ msgid "Papua New Guinea"
4360
  msgstr ""
4361
 
4362
+ #: pro/i18n/countries.php:174
4363
+ msgid "Paraguay"
4364
  msgstr ""
4365
 
4366
+ #: pro/i18n/countries.php:175
4367
+ msgid "Peru"
4368
  msgstr ""
4369
 
4370
+ #: pro/i18n/countries.php:176
4371
+ msgid "Philippines"
4372
  msgstr ""
4373
 
4374
+ #: pro/i18n/countries.php:177
4375
+ msgid "Pitcairn"
4376
  msgstr ""
4377
 
4378
+ #: pro/i18n/countries.php:178
4379
+ msgid "Poland"
4380
  msgstr ""
4381
 
4382
+ #: pro/i18n/countries.php:179
4383
+ msgid "Portugal"
4384
  msgstr ""
4385
 
4386
+ #: pro/i18n/countries.php:180
4387
+ msgid "Qatar"
4388
  msgstr ""
4389
 
4390
+ #: pro/i18n/countries.php:181
4391
+ msgid "Reunion"
4392
  msgstr ""
4393
 
4394
+ #: pro/i18n/countries.php:182
4395
+ msgid "Romania"
4396
  msgstr ""
4397
 
4398
+ #: pro/i18n/countries.php:183
4399
+ msgid "Russia"
4400
  msgstr ""
4401
 
4402
+ #: pro/i18n/countries.php:184
4403
+ msgid "Rwanda"
4404
  msgstr ""
4405
 
4406
+ #: pro/i18n/countries.php:185
4407
+ msgid "Saint Barth&eacute;lemy"
 
 
4408
  msgstr ""
4409
 
4410
+ #: pro/i18n/countries.php:186
4411
+ msgid "Saint Helena"
4412
  msgstr ""
4413
 
4414
+ #: pro/i18n/countries.php:187
4415
+ msgid "Saint Kitts and Nevis"
 
 
 
4416
  msgstr ""
4417
 
4418
+ #: pro/i18n/countries.php:188
4419
+ msgid "Saint Lucia"
4420
  msgstr ""
4421
 
4422
+ #: pro/i18n/countries.php:189
4423
+ msgid "Saint Martin (French part)"
 
 
4424
  msgstr ""
4425
 
4426
+ #: pro/i18n/countries.php:190
4427
+ msgid "Saint Martin (Dutch part)"
4428
  msgstr ""
4429
 
4430
+ #: pro/i18n/countries.php:191
4431
+ msgid "Saint Pierre and Miquelon"
 
 
4432
  msgstr ""
4433
 
4434
+ #: pro/i18n/countries.php:192
4435
+ msgid "Saint Vincent and the Grenadines"
4436
  msgstr ""
4437
 
4438
+ #: pro/i18n/countries.php:193
4439
+ msgid "San Marino"
 
 
4440
  msgstr ""
4441
 
4442
+ #: pro/i18n/countries.php:194
4443
+ msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe"
4444
  msgstr ""
4445
 
4446
+ #: pro/i18n/countries.php:195
4447
+ msgid "Saudi Arabia"
 
 
4448
  msgstr ""
4449
 
4450
+ #: pro/i18n/countries.php:196
4451
+ msgid "Senegal"
4452
  msgstr ""
4453
 
4454
+ #: pro/i18n/countries.php:197
4455
+ msgid "Serbia"
 
 
4456
  msgstr ""
4457
 
4458
+ #: pro/i18n/countries.php:198
4459
+ msgid "Seychelles"
4460
  msgstr ""
4461
 
4462
+ #: pro/i18n/countries.php:199
4463
+ msgid "Sierra Leone"
 
 
 
 
4464
  msgstr ""
4465
 
4466
+ #: pro/i18n/countries.php:200
4467
+ msgid "Singapore"
4468
  msgstr ""
4469
 
4470
+ #: pro/i18n/countries.php:201
4471
+ msgid "Slovakia"
 
 
 
 
4472
  msgstr ""
4473
 
4474
+ #: pro/i18n/countries.php:202
4475
+ msgid "Slovenia"
4476
  msgstr ""
4477
 
4478
+ #: pro/i18n/countries.php:203
4479
+ msgid "Solomon Islands"
 
 
 
4480
  msgstr ""
4481
 
4482
+ #: pro/i18n/countries.php:204
4483
+ msgid "Somalia"
4484
  msgstr ""
4485
 
4486
+ #: pro/i18n/countries.php:205
4487
+ msgid "South Africa"
 
 
4488
  msgstr ""
4489
 
4490
+ #: pro/i18n/countries.php:206
4491
+ msgid "South Georgia/Sandwich Islands"
4492
  msgstr ""
4493
 
4494
+ #: pro/i18n/countries.php:207
4495
+ msgid "South Korea"
 
 
4496
  msgstr ""
4497
 
4498
+ #: pro/i18n/countries.php:208
4499
+ msgid "South Sudan"
4500
  msgstr ""
4501
 
4502
+ #: pro/i18n/countries.php:209
4503
+ msgid "Spain"
 
 
4504
  msgstr ""
4505
 
4506
+ #: pro/i18n/countries.php:210
4507
+ msgid "Sri Lanka"
4508
  msgstr ""
4509
 
4510
+ #: pro/i18n/countries.php:211
4511
+ msgid "Sudan"
 
 
4512
  msgstr ""
4513
 
4514
+ #: pro/i18n/countries.php:212
4515
+ msgid "Suriname"
4516
  msgstr ""
4517
 
4518
+ #: pro/i18n/countries.php:213
4519
+ msgid "Svalbard and Jan Mayen"
4520
  msgstr ""
4521
 
4522
+ #: pro/i18n/countries.php:214
4523
+ msgid "Swaziland"
4524
  msgstr ""
4525
 
4526
+ #: pro/i18n/countries.php:215
4527
+ msgid "Sweden"
4528
  msgstr ""
4529
 
4530
+ #: pro/i18n/countries.php:216
4531
+ msgid "Switzerland"
4532
  msgstr ""
4533
 
4534
+ #: pro/i18n/countries.php:217
4535
+ msgid "Syria"
4536
  msgstr ""
4537
 
4538
+ #: pro/i18n/countries.php:218
4539
+ msgid "Taiwan"
4540
  msgstr ""
4541
 
4542
+ #: pro/i18n/countries.php:219
4543
+ msgid "Tajikistan"
4544
  msgstr ""
4545
 
4546
+ #: pro/i18n/countries.php:220
4547
+ msgid "Tanzania"
4548
  msgstr ""
4549
 
4550
+ #: pro/i18n/countries.php:221
4551
+ msgid "Thailand"
4552
  msgstr ""
4553
 
4554
+ #: pro/i18n/countries.php:222
4555
+ msgid "Timor-Leste"
4556
  msgstr ""
4557
 
4558
+ #: pro/i18n/countries.php:223
4559
+ msgid "Togo"
4560
  msgstr ""
4561
 
4562
+ #: pro/i18n/countries.php:224
4563
+ msgid "Tokelau"
4564
  msgstr ""
4565
 
4566
+ #: pro/i18n/countries.php:225
4567
+ msgid "Tonga"
4568
  msgstr ""
4569
 
4570
+ #: pro/i18n/countries.php:226
4571
+ msgid "Trinidad and Tobago"
4572
  msgstr ""
4573
 
4574
+ #: pro/i18n/countries.php:227
4575
+ msgid "Tunisia"
4576
  msgstr ""
4577
 
4578
+ #: pro/i18n/countries.php:228
4579
+ msgid "Turkey"
4580
  msgstr ""
4581
 
4582
+ #: pro/i18n/countries.php:229
4583
+ msgid "Turkmenistan"
4584
  msgstr ""
4585
 
4586
+ #: pro/i18n/countries.php:230
4587
+ msgid "Turks and Caicos Islands"
4588
  msgstr ""
4589
 
4590
+ #: pro/i18n/countries.php:231
4591
+ msgid "Tuvalu"
4592
  msgstr ""
4593
 
4594
+ #: pro/i18n/countries.php:232
4595
+ msgid "Uganda"
4596
  msgstr ""
4597
 
4598
+ #: pro/i18n/countries.php:233
4599
+ msgid "Ukraine"
4600
  msgstr ""
4601
 
4602
+ #: pro/i18n/countries.php:234
4603
+ msgid "United Arab Emirates"
4604
  msgstr ""
4605
 
4606
+ #: pro/i18n/countries.php:235
4607
+ msgid "United Kingdom (UK)"
4608
  msgstr ""
4609
 
4610
+ #: pro/i18n/countries.php:236
4611
+ msgid "United States"
4612
  msgstr ""
4613
 
4614
+ #: pro/i18n/countries.php:237
4615
+ msgid "Uruguay"
4616
  msgstr ""
4617
 
4618
+ #: pro/i18n/countries.php:238
4619
+ msgid "Uzbekistan"
4620
  msgstr ""
4621
 
4622
+ #: pro/i18n/countries.php:239
4623
+ msgid "Vanuatu"
4624
  msgstr ""
4625
 
4626
+ #: pro/i18n/countries.php:240
4627
+ msgid "Vatican"
4628
  msgstr ""
4629
 
4630
+ #: pro/i18n/countries.php:241
4631
+ msgid "Venezuela"
4632
  msgstr ""
4633
 
4634
+ #: pro/i18n/countries.php:242
4635
+ msgid "Vietnam"
 
 
4636
  msgstr ""
4637
 
4638
+ #: pro/i18n/countries.php:243
4639
+ msgid "Wallis and Futuna"
 
 
4640
  msgstr ""
4641
 
4642
+ #: pro/i18n/countries.php:244
4643
+ msgid "Western Sahara"
4644
  msgstr ""
4645
 
4646
+ #: pro/i18n/countries.php:245
4647
+ msgid "Western Samoa"
4648
  msgstr ""
4649
 
4650
+ #: pro/i18n/countries.php:246
4651
+ msgid "Yemen"
4652
  msgstr ""
4653
 
4654
+ #: pro/i18n/countries.php:247
4655
+ msgid "Zambia"
4656
  msgstr ""
4657
 
4658
+ #: pro/i18n/countries.php:248
4659
+ msgid "Zimbabwe"
4660
  msgstr ""
4661
 
4662
  #: script/i18n/pomo/sample/app.php:56
4671
  msgid "Bye\n"
4672
  msgstr ""
4673
 
 
 
 
 
4674
  #. Plugin URI of the plugin/theme
4675
+ msgid "http://prettylinkpro.com"
4676
  msgstr ""
4677
 
4678
  #. Description of the plugin/theme
4681
  msgstr ""
4682
 
4683
  #. Author of the plugin/theme
4684
+ msgid "Blair Williams"
4685
  msgstr ""
4686
 
4687
  #. Author URI of the plugin/theme
4688
+ msgid "http://blairwilliams.com"
4689
  msgstr ""
i18n/prettylinkpro-es_ES.mo ADDED
Binary file
i18n/prettylinkpro-es_ES.po ADDED
@@ -0,0 +1,4451 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Pretty Link Lite
2
+ # This file is distributed under the same license as the Pretty Link Lite package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Pretty Link Lite 2.0.0b6\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/pretty-link\n"
7
+ "POT-Creation-Date: 2015-09-25 12:06-0600\n"
8
+ "PO-Revision-Date: 2015-09-25 12:06-0600\n"
9
+ "Last-Translator: \n"
10
+ "Language-Team: \n"
11
+ "Language: es_ES\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 1.8.4\n"
16
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
+
18
+ #: app/controllers/PrliAppController.php:36
19
+ #: app/controllers/PrliAppController.php:45
20
+ msgid "Pretty Link | Manage Pretty Links"
21
+ msgstr "Pretty Link | Administrar Pretty Links"
22
+
23
+ #: app/controllers/PrliAppController.php:37
24
+ #: app/controllers/PrliAppController.php:46 app/views/links/form.php:46
25
+ #: app/views/shared/tinymce_form_popup.php:107 app/views/widgets/widget.php:15
26
+ msgid "Pretty Link"
27
+ msgstr "Pretty Link"
28
+
29
+ #: app/controllers/PrliAppController.php:53
30
+ msgid "Pretty Link | Add New Link"
31
+ msgstr "Pretty Link | Añadir nueva enlace"
32
+
33
+ #: app/controllers/PrliAppController.php:54
34
+ msgid "Add New Link"
35
+ msgstr "Añadir un nuevo enlace"
36
+
37
+ #: app/controllers/PrliAppController.php:62
38
+ msgid "Pretty Link | Groups"
39
+ msgstr "Pretty Link | Grupos"
40
+
41
+ #: app/controllers/PrliAppController.php:63 app/views/groups/list.php:6
42
+ msgid "Groups"
43
+ msgstr "Grupos"
44
+
45
+ #: app/controllers/PrliAppController.php:72
46
+ msgid "Pretty Link | Clicks"
47
+ msgstr "Pretty Link | Clics"
48
+
49
+ #: app/controllers/PrliAppController.php:73 app/models/PrliClick.php:245
50
+ #: app/views/clicks/list.php:4 app/views/groups/list.php:66
51
+ #: pro/app/helpers/PlpPostsHelper.php:82
52
+ #: pro/app/views/reports/custom-report.php:31
53
+ #: pro/app/views/reports/custom-report.php:64
54
+ #: pro/app/views/reports/split-test-report.php:31
55
+ #: pro/app/views/reports/split-test-report.php:64
56
+ msgid "Clicks"
57
+ msgstr "Clics"
58
+
59
+ #: app/controllers/PrliAppController.php:82
60
+ msgid "Pretty Link | Tools"
61
+ msgstr "Pretty Link | Herramientas"
62
+
63
+ #: app/controllers/PrliAppController.php:83 app/views/tools/form.php:3
64
+ msgid "Tools"
65
+ msgstr "Herramientas"
66
+
67
+ #: app/controllers/PrliAppController.php:91
68
+ msgid "Pretty Link | Options"
69
+ msgstr "Pretty Link | Opciones"
70
+
71
+ #: app/controllers/PrliAppController.php:92 app/views/options/form.php:4
72
+ msgid "Options"
73
+ msgstr "Opciones"
74
+
75
+ #: app/controllers/PrliAppController.php:99
76
+ msgid "Pretty Link | Pretty Link Pro"
77
+ msgstr "Pretty Link | Pretty Link Pro"
78
+
79
+ #: app/controllers/PrliAppController.php:100
80
+ #: pro/app/controllers/PlpAppController.php:44
81
+ msgid "Pretty Link Pro"
82
+ msgstr "Pretty Link Pro"
83
+
84
+ #: app/controllers/PrliAppController.php:218
85
+ msgid "You're almost done!<br/>%1$sFinish your Re-Install of Pretty Link Pro%2$s"
86
+ msgstr ""
87
+ "¡Casi listo!<br>%1$sCompletar su volver a instalar del Pretty Link Pro %2$s"
88
+
89
+ #: app/controllers/PrliAppController.php:225
90
+ msgid "Pretty Link Pro Successfully Uninstalled."
91
+ msgstr "Pretty Link Pro fue correctamente desinstalado."
92
+
93
+ #: app/controllers/PrliAppController.php:289
94
+ msgid "Pretty Link Quick Add"
95
+ msgstr "Añadir Pretty Link Rápidamente"
96
+
97
+ #: app/controllers/PrliAppController.php:329
98
+ #: app/controllers/PrliAppController.php:347
99
+ msgid ""
100
+ "Your Pretty Link Pro installation isn't quite complete yet.<br/>"
101
+ "%1$sAutomatically Upgrade to Enable Pretty Link Pro%2$s"
102
+ msgstr ""
103
+ "La instalación Pretty Link Pro no está completa aún.<br/>%1$sActualizar "
104
+ "automaticamente para habilitar Pretty Link Pro%2$s"
105
+
106
+ #: app/controllers/PrliClicksController.php:73
107
+ msgid "IP Address: "
108
+ msgstr "Dirección IP:"
109
+
110
+ #: app/controllers/PrliClicksController.php:78
111
+ msgid "Visitor: "
112
+ msgstr "Visitante:"
113
+
114
+ #: app/controllers/PrliClicksController.php:84
115
+ msgid "Group: "
116
+ msgstr "Grupo:"
117
+
118
+ #: app/controllers/PrliClicksController.php:89
119
+ msgid "All Links"
120
+ msgstr "Todos los enlaces"
121
+
122
+ #: app/controllers/PrliGroupsController.php:40
123
+ msgid "An unknown error occurred when creating your group."
124
+ msgstr "Se ha producido un error desconocido al crear tu grupo."
125
+
126
+ #: app/controllers/PrliGroupsController.php:49
127
+ msgid "Group Created"
128
+ msgstr "Grupo creado"
129
+
130
+ #: app/controllers/PrliGroupsController.php:56
131
+ msgid "A name must be specified for your new group name"
132
+ msgstr "Debe especificar un nombre para su nuevo nombre de grupo"
133
+
134
+ #: app/controllers/PrliGroupsController.php:61
135
+ msgid "Cannot add group because security nonce failed"
136
+ msgstr "No se puede agregar grupo porque el nonce de seguridad falló"
137
+
138
+ #: app/controllers/PrliGroupsController.php:71
139
+ msgid "Create a group and use it to organize your Pretty Links."
140
+ msgstr "Crear un grupo y usarlo para organizar sus Pretty Links."
141
+
142
+ #: app/controllers/PrliGroupsController.php:95
143
+ msgid "Your Pretty Link Group was Successfully Created"
144
+ msgstr "Su Pretty Link Grupo fue creado correctamente"
145
+
146
+ #: app/controllers/PrliGroupsController.php:121
147
+ msgid "Your Pretty Link Group was Successfully Updated"
148
+ msgstr "Su Pretty Link Grupo fue actualizado correctamente"
149
+
150
+ #: app/controllers/PrliGroupsController.php:130
151
+ msgid "Your Pretty Link Group was Successfully Deleted"
152
+ msgstr "Su Pretty Link Grupo fue eliminado correctamente"
153
+
154
+ #: app/controllers/PrliLinksController.php:45
155
+ msgid "Links in Group: "
156
+ msgstr "Enlaces en Grupo:"
157
+
158
+ #: app/controllers/PrliLinksController.php:91
159
+ #: app/controllers/PrliLinksController.php:112
160
+ msgid "Your Pretty Link was Successfully Created"
161
+ msgstr "Su bonito enlace fue creado correctamente"
162
+
163
+ #: app/controllers/PrliLinksController.php:145
164
+ msgid "Your Pretty Link was Successfully Updated"
165
+ msgstr "Su Pretty Link fue actualizado correctamente"
166
+
167
+ #: app/controllers/PrliLinksController.php:160
168
+ msgid "Your links were updated successfully"
169
+ msgstr "Tus enlaces fueron actualizados con éxito"
170
+
171
+ #: app/controllers/PrliLinksController.php:177
172
+ #: app/controllers/PrliLinksController.php:217
173
+ msgid "You are unauthorized to view this page."
174
+ msgstr "Usted no esta autorizado para ver esta página."
175
+
176
+ #: app/controllers/PrliLinksController.php:184
177
+ msgid "Your Pretty Link was Successfully Reset"
178
+ msgstr "Su Pretty Link fue restablecido con éxito"
179
+
180
+ #: app/controllers/PrliLinksController.php:191
181
+ msgid "Your Pretty Link was Successfully Destroyed"
182
+ msgstr "Su Pretty Link fue destruido con éxito"
183
+
184
+ #: app/controllers/PrliLinksController.php:204
185
+ msgid "Your links were deleted successfully"
186
+ msgstr "Sus enlaces fueron eliminados correctamente"
187
+
188
+ #: app/controllers/PrliLocalApiController.php:99
189
+ #: app/controllers/PrliLocalApiController.php:158
190
+ msgid "An error prevented your Pretty Link from being created"
191
+ msgstr "Un error impidió que se crea su Pretty Link"
192
+
193
+ #: app/controllers/PrliLocalApiController.php:123
194
+ msgid "Pretty Link ID must be set for successful update."
195
+ msgstr "Pretty Link ID debe ser establecido para la actualización."
196
+
197
+ #: app/controllers/PrliOptionsController.php:61
198
+ msgid "Options saved."
199
+ msgstr "Opciones guardadas."
200
+
201
+ #: app/controllers/PrliOptionsController.php:75
202
+ msgid ""
203
+ "Excluded IP Addresses must be a comma separated list of IPv4 or IPv6 addresses "
204
+ "or ranges."
205
+ msgstr ""
206
+ "Direcciones IP excluidas deben ser una lista separada por comas de IPv4 o IPv6 "
207
+ "direcciones o intervalos."
208
+
209
+ #: app/controllers/PrliOptionsController.php:79
210
+ msgid ""
211
+ "Whitlist IP Addresses must be a comma separated list of IPv4 or IPv6 addresses "
212
+ "or ranges."
213
+ msgstr ""
214
+ "Whitlist direcciones de IP deben ser una lista separada por comas de IPv4 o "
215
+ "IPv6 direcciones o intervalos."
216
+
217
+ #: app/controllers/PrliToolsController.php:89
218
+ msgid "Click Database was Cleared."
219
+ msgstr "Base de datos para los Clics fue despejado"
220
+
221
+ #: app/controllers/PrliToolsController.php:95
222
+ msgid "Clicks older than %1$d days (%2$d Clicks) were deleted"
223
+ msgstr "Clics más antiguas que %1$d días (%2$d clics) fueron borrados"
224
+
225
+ #: app/controllers/PrliToolsController.php:98
226
+ msgid "No clicks older than %1$d days were found, so nothing was deleted"
227
+ msgstr ""
228
+ "No hay clics más antiguas que %1$d días fueron encontrados, así que nada fue "
229
+ "borrado"
230
+
231
+ #: app/controllers/PrliXmlRpcController.php:36
232
+ #: app/controllers/PrliXmlRpcController.php:98
233
+ #: app/controllers/PrliXmlRpcController.php:145
234
+ #: app/controllers/PrliXmlRpcController.php:200
235
+ #: app/controllers/PrliXmlRpcController.php:229
236
+ #: app/controllers/PrliXmlRpcController.php:257
237
+ #: app/controllers/PrliXmlRpcController.php:290
238
+ #: app/controllers/PrliXmlRpcController.php:322
239
+ msgid "Sorry, XML-RPC Not enabled for this website"
240
+ msgstr "Lo sentimos, XML-RPC no habilitado para este sitio web"
241
+
242
+ #: app/controllers/PrliXmlRpcController.php:39
243
+ #: app/controllers/PrliXmlRpcController.php:101
244
+ #: app/controllers/PrliXmlRpcController.php:148
245
+ #: app/controllers/PrliXmlRpcController.php:203
246
+ #: app/controllers/PrliXmlRpcController.php:232
247
+ #: app/controllers/PrliXmlRpcController.php:260
248
+ #: app/controllers/PrliXmlRpcController.php:293
249
+ #: app/controllers/PrliXmlRpcController.php:325
250
+ msgid "Sorry, Login failed"
251
+ msgstr "Lo sentimos, falló en el inicio de sesión"
252
+
253
+ #: app/controllers/PrliXmlRpcController.php:45
254
+ #: app/controllers/PrliXmlRpcController.php:107
255
+ #: app/controllers/PrliXmlRpcController.php:154
256
+ #: app/controllers/PrliXmlRpcController.php:209
257
+ #: app/controllers/PrliXmlRpcController.php:238
258
+ #: app/controllers/PrliXmlRpcController.php:266
259
+ #: app/controllers/PrliXmlRpcController.php:299
260
+ #: app/controllers/PrliXmlRpcController.php:331
261
+ msgid "Sorry, you must be an administrator to access this resource"
262
+ msgstr "Lo sentimos, usted debe ser un administrador para acceder a este recurso"
263
+
264
+ #: app/controllers/PrliXmlRpcController.php:111
265
+ msgid "You must provide a target URL"
266
+ msgstr "Usted debe proporcionar una dirección URL de destino"
267
+
268
+ #: app/controllers/PrliXmlRpcController.php:137
269
+ #: app/controllers/PrliXmlRpcController.php:185
270
+ msgid "There was an error creating your Pretty Link"
271
+ msgstr "Hubo un error al crear su Pretty Link"
272
+
273
+ #: app/controllers/PrliXmlRpcController.php:158
274
+ msgid "You must provide the id of the link you want to update"
275
+ msgstr "Usted debe proporcionar el id del enlace que desea actualizar"
276
+
277
+ #: app/controllers/PrliXmlRpcController.php:214
278
+ msgid "There was an error fetching the Pretty Link Groups"
279
+ msgstr "Hubo un error al buscar su Pretty Link Grupos"
280
+
281
+ #: app/controllers/PrliXmlRpcController.php:243
282
+ msgid "There was an error fetching the Pretty Links"
283
+ msgstr "Hubo un error al buscar los Pretty Links "
284
+
285
+ #: app/controllers/PrliXmlRpcController.php:269
286
+ msgid "Sorry, you must provide a slug to lookup"
287
+ msgstr "Lo sentimos, usted debe proporcionar una slug para buscar"
288
+
289
+ #: app/controllers/PrliXmlRpcController.php:276
290
+ #: app/controllers/PrliXmlRpcController.php:309
291
+ msgid "There was an error fetching your Pretty Link"
292
+ msgstr "Hubo un error al buscar su Pretty Link"
293
+
294
+ #: app/controllers/PrliXmlRpcController.php:302
295
+ #: app/controllers/PrliXmlRpcController.php:334
296
+ msgid "Sorry, you must provide an id to lookup"
297
+ msgstr "Lo sentimos, usted debe proporcionar un id para buscar"
298
+
299
+ #: app/controllers/PrliXmlRpcController.php:341
300
+ msgid "There was an error fetching your Pretty Link URL"
301
+ msgstr "Hubo un error al buscar su Pretty Link URL"
302
+
303
+ #: app/helpers/PrliAppHelper.php:23 app/helpers/PrliLinksHelper.php:14
304
+ #: app/views/links/form.php:99 app/views/shared/tinymce_form_popup.php:104
305
+ #: app/views/shared/tinymce_form_popup.php:108 pro/app/views/links/form.php:73
306
+ #: pro/app/views/options/form.php:296 pro/app/views/options/form.php:630
307
+ #: pro/app/views/tools/generator.php:59
308
+ #: pro/app/widgets/PlpPublicLinksWidget.php:79
309
+ msgid "None"
310
+ msgstr "Ninguno"
311
+
312
+ #: app/helpers/PrliLinksHelper.php:37 app/views/links/form.php:15
313
+ #: app/views/shared/tinymce_form_popup.php:63
314
+ msgid "307 (Temporary)"
315
+ msgstr "307 (Temporal)"
316
+
317
+ #: app/helpers/PrliLinksHelper.php:38 app/views/links/form.php:16
318
+ #: app/views/shared/tinymce_form_popup.php:64
319
+ msgid "301 (Permanent)"
320
+ msgstr "301 (Permamente)"
321
+
322
+ #: app/helpers/PrliLinksHelper.php:48
323
+ msgid "Bulk Actions"
324
+ msgstr "Acciones en masa"
325
+
326
+ #: app/helpers/PrliLinksHelper.php:49 app/views/groups/list.php:63
327
+ #: pro/app/views/reports/list.php:60
328
+ msgid "Edit"
329
+ msgstr "Editar"
330
+
331
+ #: app/helpers/PrliLinksHelper.php:50 app/views/groups/list.php:64
332
+ #: pro/app/views/reports/list.php:61
333
+ msgid "Delete"
334
+ msgstr "Borrar"
335
+
336
+ #: app/helpers/PrliLinksHelper.php:52
337
+ msgid "Are you sure you want to delete the selected links?"
338
+ msgstr "¿Está seguro de que desea eliminar los enlaces seleccionados?"
339
+
340
+ #: app/helpers/PrliLinksHelper.php:52
341
+ msgid "Apply"
342
+ msgstr "Aplicar"
343
+
344
+ #: app/helpers/PrliLinksHelper.php:62 app/views/links/list.php:82
345
+ #: app/views/links/list.php:85
346
+ msgid "- No Change -"
347
+ msgstr "-No hay cambio-"
348
+
349
+ #: app/helpers/PrliLinksHelper.php:63
350
+ msgid "Off"
351
+ msgstr "Apagado"
352
+
353
+ #: app/helpers/PrliLinksHelper.php:64
354
+ msgid "On"
355
+ msgstr "Activado"
356
+
357
+ #: app/helpers/PrliLinksHelper.php:74
358
+ msgid "PrettyBar Redirection"
359
+ msgstr "Redirección PrettyBar"
360
+
361
+ #: app/helpers/PrliLinksHelper.php:77
362
+ msgid "Cloaked Redirection"
363
+ msgstr "Redirección Cloaked"
364
+
365
+ #: app/helpers/PrliLinksHelper.php:80
366
+ msgid "Pixel Tracking Redirection"
367
+ msgstr "Redirección Seguimiento Pixel"
368
+
369
+ #: app/helpers/PrliLinksHelper.php:83
370
+ msgid "Meta Refresh Redirection"
371
+ msgstr "Redirección Meta Refresh"
372
+
373
+ #: app/helpers/PrliLinksHelper.php:86
374
+ msgid "Javascript Redirection"
375
+ msgstr "Redirección Javascript"
376
+
377
+ #: app/helpers/PrliLinksHelper.php:89
378
+ msgid "Temporary (307) Redirection"
379
+ msgstr "Redirección Temporal (307)"
380
+
381
+ #: app/helpers/PrliLinksHelper.php:92
382
+ msgid "Permanent (301) Redirection"
383
+ msgstr "Redirección Permanente (301)"
384
+
385
+ #: app/helpers/PrliLinksHelper.php:96
386
+ msgid "Nofollow Enabled"
387
+ msgstr "Nofollow Activado"
388
+
389
+ #: app/helpers/PrliLinksHelper.php:100
390
+ msgid "Parameter Forwarding Enabled"
391
+ msgstr "Reenvío Parámetro Activado"
392
+
393
+ #: app/helpers/PrliLinksHelper.php:110 app/views/groups/list.php:60
394
+ #: app/views/groups/list.php:63
395
+ msgid "Edit %s"
396
+ msgstr "Editar %s"
397
+
398
+ #: app/helpers/PrliLinksHelper.php:111
399
+ msgid ""
400
+ "Are you sure you want to delete your %s Pretty Link? This will delete the "
401
+ "Pretty Link and all of the statistical data about it in your database."
402
+ msgstr ""
403
+ "¿Está seguro que desea eliminar el %s Pretty Link? Se eliminará el enlace y "
404
+ "todos los datos estadísticos sobre él en su base de datos."
405
+
406
+ #: app/helpers/PrliLinksHelper.php:111
407
+ msgid "Delete %s"
408
+ msgstr "Borrar %s"
409
+
410
+ #: app/helpers/PrliLinksHelper.php:112
411
+ msgid ""
412
+ "Are you sure you want to reset your %s Pretty Link? This will delete all of the "
413
+ "statistical data about this Pretty Link in your database."
414
+ msgstr ""
415
+ "¿Está seguro que desea restablecer su %s Pretty Link? Esto borrará todos los "
416
+ "datos estadísticos acerca de este enlace en su base de datos."
417
+
418
+ #: app/helpers/PrliLinksHelper.php:112
419
+ msgid "Reset %s"
420
+ msgstr "Reestablecer %s"
421
+
422
+ #: app/helpers/PrliLinksHelper.php:115 app/views/clicks/list.php:144
423
+ msgid "View clicks for %s"
424
+ msgstr "Ver los clics de %s"
425
+
426
+ #: app/helpers/PrliLinksHelper.php:120
427
+ msgid "Post %s to Twitter"
428
+ msgstr "Publicar %s a Twitter"
429
+
430
+ #: app/helpers/PrliLinksHelper.php:121
431
+ msgid "Send %s in an Email"
432
+ msgstr "Enviar %s en un correo electrónico"
433
+
434
+ #: app/models/PrliClick.php:223
435
+ msgid "group: '%s'"
436
+ msgstr "grupo: '%s'"
437
+
438
+ #: app/models/PrliClick.php:226
439
+ msgid "all links"
440
+ msgstr "Todos los enlaces"
441
+
442
+ #: app/models/PrliClick.php:233
443
+ msgid "All clicks"
444
+ msgstr "Todos los clics"
445
+
446
+ #: app/models/PrliClick.php:236
447
+ msgid "Unique hits"
448
+ msgstr "Resultados únicos"
449
+
450
+ #: app/models/PrliClick.php:240 pro/app/helpers/PlpPostsHelper.php:87
451
+ msgid "Pretty Link:"
452
+ msgstr "Pretty Link:"
453
+
454
+ #: app/models/PrliClick.php:240
455
+ msgid "on"
456
+ msgstr "el"
457
+
458
+ #: app/models/PrliClick.php:240 pro/app/models/PlpReport.php:385
459
+ msgid "between"
460
+ msgstr "entre"
461
+
462
+ #: app/models/PrliClick.php:240 pro/app/models/PlpReport.php:244
463
+ #: pro/app/models/PlpReport.php:385
464
+ msgid "and"
465
+ msgstr "y"
466
+
467
+ #: app/models/PrliClick.php:245
468
+ msgid "Date"
469
+ msgstr "Fecha"
470
+
471
+ #: app/models/PrliLink.php:469
472
+ msgid "Target URL can't be blank"
473
+ msgstr "URL de destino no puede estar en blanco"
474
+
475
+ #: app/models/PrliLink.php:472
476
+ msgid "Pretty Link can't be blank"
477
+ msgstr "Pretty Link no puede estar en blanco"
478
+
479
+ #: app/models/PrliLink.php:475
480
+ msgid "Target URL must be different than the Pretty Link"
481
+ msgstr "Dirección URL de destino debe ser diferente que el Pretty Link"
482
+
483
+ #: app/models/PrliLink.php:480
484
+ msgid "Link URL must be a correctly formatted url"
485
+ msgstr "URL de enlace debe ser una dirección url con formato correcto"
486
+
487
+ #: app/models/PrliLink.php:483
488
+ msgid ""
489
+ "Pretty Link slugs must not contain question marks, ampersands or number signs."
490
+ msgstr ""
491
+ "Slugs de Pretty Link no deben contener signos de interrogación, signos o "
492
+ "señales de número."
493
+
494
+ #: app/models/PrliLink.php:486
495
+ msgid "Pretty Link slugs must not end with a slash (\"/\")"
496
+ msgstr "Slugs de Pretty Link no deben terminar con una barra diagonal (\"/\")"
497
+
498
+ #: app/models/PrliLink.php:490
499
+ msgid ""
500
+ "This Pretty Link Slug is already taken. Check to make sure it isn't being used "
501
+ "by another pretty link, post, page, category or tag slug. If none of these are "
502
+ "true then check to see that this slug isn't the name of a file in the root "
503
+ "folder of your wordpress install."
504
+ msgstr ""
505
+ "Esta slug de Pretty Link esta en uso ya. Verifique que no está siendo utilizado "
506
+ "por otra pretty link, post, página, categoría o slug. Si no es así, compruebe "
507
+ "para ver que esta slug no es el nombre de un archivo en la carpeta raíz de su "
508
+ "instalación de wordpress."
509
+
510
+ #: app/models/PrliUpdate.php:26
511
+ msgid "Pretty Link Pro Username"
512
+ msgstr "Pretty Link Pro Usuario"
513
+
514
+ #: app/models/PrliUpdate.php:27
515
+ msgid "Pretty Link Pro Password"
516
+ msgstr "Pretty Link Pro Contraseña"
517
+
518
+ #: app/models/PrliUpdate.php:28
519
+ msgid "Your Pretty Link Pro Username or Password was Invalid"
520
+ msgstr "Su Pretty Link Pro usuario o contraseña es inválido"
521
+
522
+ #: app/models/PrliUpdate.php:128
523
+ msgid ""
524
+ "Your Username & Password was accepted<br/>Now you can %1$sUpgrade Automatically!"
525
+ "%2$s"
526
+ msgstr ""
527
+ "Su nombre de usuario y contraseña fueron aceptados<br/>¡Ahora puede "
528
+ "$1%sactualizar automáticamente!%2$s"
529
+
530
+ #: app/models/PrliUpdate.php:137
531
+ msgid "Your Username & Password was accepted<br/>Now you can %1$sGet Started!%2$s"
532
+ msgstr ""
533
+ "Su nombre de usuario y contraseña fueron aceptados<br/>¡Ahora puede $1%sempezar!"
534
+ "%2$s"
535
+
536
+ #: app/models/PrliUpdate.php:146 app/views/shared/errors.php:12
537
+ msgid "ERROR"
538
+ msgstr "ERROR"
539
+
540
+ #: app/models/PrliUpdate.php:180
541
+ msgid "Save"
542
+ msgstr "Guardar"
543
+
544
+ #: app/views/clicks/csv_download.php:3
545
+ msgid "Pretty Link: CSV Downloads"
546
+ msgstr "Pretty Link: CSV Descargas"
547
+
548
+ #: app/views/clicks/csv_download.php:6
549
+ msgid "Click Reports:"
550
+ msgstr "Informes de Clics­:"
551
+
552
+ #: app/views/clicks/csv_download.php:7
553
+ msgid "All clicks on %s"
554
+ msgstr "Todo clics en %s"
555
+
556
+ #: app/views/clicks/csv_download.php:24
557
+ msgid "Clicks %d-%d (%d Records)"
558
+ msgstr "Clics %d-%d (%d Registros)"
559
+
560
+ #: app/views/clicks/list.php:5
561
+ msgid "For"
562
+ msgstr "Para"
563
+
564
+ #: app/views/clicks/list.php:10 pro/app/views/reports/custom-report.php:12
565
+ #: pro/app/views/reports/split-test-report.php:12
566
+ msgid "Customize Report"
567
+ msgstr "Personalizar el Informe"
568
+
569
+ #: app/views/clicks/list.php:17 pro/app/views/reports/split-test-report.php:12
570
+ msgid "Back to Links"
571
+ msgstr "Volver a enlaces"
572
+
573
+ #: app/views/clicks/list.php:20
574
+ msgid "Back to Clicks"
575
+ msgstr "Volver a clics"
576
+
577
+ #: app/views/clicks/list.php:29
578
+ msgid "Type:"
579
+ msgstr "Tipo:"
580
+
581
+ #: app/views/clicks/list.php:31 pro/app/models/PlpReport.php:251
582
+ #: pro/app/models/PlpReport.php:260 pro/app/models/PlpReport.php:397
583
+ #: pro/app/models/PlpReport.php:404
584
+ msgid "All Clicks"
585
+ msgstr "Todos los clics"
586
+
587
+ #: app/views/clicks/list.php:32 pro/app/models/PlpReport.php:251
588
+ #: pro/app/models/PlpReport.php:260 pro/app/models/PlpReport.php:397
589
+ #: pro/app/models/PlpReport.php:404
590
+ msgid "Unique Clicks"
591
+ msgstr "Clics uniucos"
592
+
593
+ #: app/views/clicks/list.php:36 pro/app/views/reports/custom-report.php:16
594
+ #: pro/app/views/reports/split-test-report.php:16
595
+ msgid "Date Range:"
596
+ msgstr "Fecha Intervalo"
597
+
598
+ #: app/views/clicks/list.php:38
599
+ msgid "to"
600
+ msgstr "a"
601
+
602
+ #: app/views/clicks/list.php:42 app/views/clicks/list.php:66
603
+ #: app/views/groups/edit.php:59 app/views/groups/list.php:18
604
+ #: app/views/groups/new.php:61 app/views/links/edit.php:21
605
+ #: app/views/links/list.php:29 app/views/links/new.php:20
606
+ #: pro/app/views/reports/custom-report.php:22 pro/app/views/reports/edit.php:119
607
+ #: pro/app/views/reports/list.php:17 pro/app/views/reports/new.php:118
608
+ msgid "or"
609
+ msgstr "o"
610
+
611
+ #: app/views/clicks/list.php:42 app/views/groups/edit.php:59
612
+ #: app/views/groups/new.php:61 app/views/links/edit.php:21
613
+ #: app/views/links/list.php:98 app/views/links/new.php:20
614
+ #: pro/app/views/reports/custom-report.php:22 pro/app/views/reports/edit.php:119
615
+ #: pro/app/views/reports/new.php:118
616
+ msgid "Cancel"
617
+ msgstr "Cancelar"
618
+
619
+ #: app/views/clicks/list.php:66 app/views/groups/list.php:18
620
+ #: app/views/links/list.php:30 pro/app/views/reports/list.php:17
621
+ msgid "Reset"
622
+ msgstr "Reajustar"
623
+
624
+ #: app/views/clicks/list.php:77 app/views/clicks/list.php:154
625
+ msgid "Browser"
626
+ msgstr "Navegador"
627
+
628
+ #: app/views/clicks/list.php:81 app/views/clicks/list.php:156
629
+ msgid "IP"
630
+ msgstr "IP"
631
+
632
+ #: app/views/clicks/list.php:85 app/views/clicks/list.php:158
633
+ msgid "Visitor"
634
+ msgstr "Visitante"
635
+
636
+ #: app/views/clicks/list.php:89 app/views/clicks/list.php:160
637
+ msgid "Timestamp"
638
+ msgstr "Fecha y Hora"
639
+
640
+ #: app/views/clicks/list.php:93 app/views/clicks/list.php:162
641
+ msgid "Host"
642
+ msgstr "Servidor"
643
+
644
+ #: app/views/clicks/list.php:97 app/views/clicks/list.php:164
645
+ msgid "URI"
646
+ msgstr "URI"
647
+
648
+ #: app/views/clicks/list.php:100 app/views/clicks/list.php:165
649
+ msgid "Referrer"
650
+ msgstr "Referente"
651
+
652
+ #: app/views/clicks/list.php:103 app/views/clicks/list.php:166
653
+ #: pro/app/models/PlpReport.php:251 pro/app/models/PlpReport.php:260
654
+ msgid "Link"
655
+ msgstr "Enlace"
656
+
657
+ #: app/views/clicks/list.php:113
658
+ msgid "No Clicks have been recorded yet"
659
+ msgstr "Se han registrado todavía ningún clics"
660
+
661
+ #: app/views/clicks/list.php:130
662
+ msgid "View All Activity for IP Address: %s"
663
+ msgstr "Ver todas las actividades de dirección IP: %s"
664
+
665
+ #: app/views/clicks/list.php:133
666
+ msgid "View All Activity for Visitor: %s"
667
+ msgstr "Ver todas las actividades para el visitante: %s"
668
+
669
+ #: app/views/clicks/list.php:171
670
+ msgid "Download CSV"
671
+ msgstr "Exportar como CSV"
672
+
673
+ #: app/views/groups/edit.php:7
674
+ msgid "Edit Group"
675
+ msgstr "Editar Grupo"
676
+
677
+ #: app/views/groups/edit.php:20 pro/app/views/reports/edit.php:20
678
+ msgid "Name:"
679
+ msgstr "Nombre:"
680
+
681
+ #: app/views/groups/edit.php:22 app/views/groups/new.php:23
682
+ msgid "This is how you'll identify your Group."
683
+ msgstr "Esto es cómo identificará su Grupo."
684
+
685
+ #: app/views/groups/edit.php:25 app/views/groups/new.php:26
686
+ msgid "Description:"
687
+ msgstr "Descripción:"
688
+
689
+ #: app/views/groups/edit.php:27 app/views/groups/new.php:28
690
+ msgid "A Description of this group."
691
+ msgstr "Una descripción de este grupo."
692
+
693
+ #: app/views/groups/edit.php:30 app/views/groups/new.php:31
694
+ msgid "Links:"
695
+ msgstr "Enlaces:"
696
+
697
+ #: app/views/groups/edit.php:35 app/views/groups/list.php:36
698
+ #: app/views/groups/list.php:78 app/views/groups/new.php:36
699
+ #: app/views/links/list.php:57 app/views/links/list.php:161
700
+ #: pro/app/views/reports/edit.php:94 pro/app/views/reports/list.php:32
701
+ #: pro/app/views/reports/list.php:75 pro/app/views/reports/new.php:93
702
+ msgid "Name"
703
+ msgstr "Nombre"
704
+
705
+ #: app/views/groups/edit.php:36 app/views/groups/new.php:37
706
+ msgid "Current Group"
707
+ msgstr "Grupo Actual "
708
+
709
+ #: app/views/groups/edit.php:53 app/views/groups/new.php:54
710
+ msgid ""
711
+ "Select some links for this group. <strong>Note: each link can only be in one "
712
+ "group at a time.</strong>"
713
+ msgstr ""
714
+ "Seleccione algunos enlaces para este grupo. <strong>Nota: cada enlace puede ser "
715
+ "sólo en un grupo en un momento.</strong>"
716
+
717
+ #: app/views/groups/edit.php:59 app/views/links/edit.php:21
718
+ #: app/views/links/list.php:99 app/views/options/form.php:196
719
+ #: pro/app/views/reports/edit.php:119
720
+ msgid "Update"
721
+ msgstr "Actualizar"
722
+
723
+ #: app/views/groups/list.php:26
724
+ msgid "Add a Pretty Link Group"
725
+ msgstr "Agregar un Pretty Link Grupo "
726
+
727
+ #: app/views/groups/list.php:37 app/views/groups/list.php:65
728
+ #: app/views/groups/list.php:79 app/views/links/list.php:7
729
+ #: app/views/links/list.php:62 app/views/links/list.php:166
730
+ #: app/views/options/form.php:34 pro/app/views/reports/list.php:34
731
+ #: pro/app/views/reports/list.php:77
732
+ msgid "Links"
733
+ msgstr "Enlaces"
734
+
735
+ #: app/views/groups/list.php:38 app/views/groups/list.php:80
736
+ #: app/views/links/list.php:61 app/views/links/list.php:165
737
+ #: pro/app/views/reports/list.php:35 pro/app/views/reports/list.php:78
738
+ msgid "Created"
739
+ msgstr "Creado"
740
+
741
+ #: app/views/groups/list.php:47
742
+ msgid "No Pretty Link Groups were found"
743
+ msgstr "Ningún Pretty Link Grupo fue encontrada"
744
+
745
+ #: app/views/groups/list.php:64
746
+ msgid "Are you sure you want to delete your %s Pretty Link Group?"
747
+ msgstr "¿Está seguro que desea eliminar el %s Pretty Link Grupo?"
748
+
749
+ #: app/views/groups/list.php:66
750
+ msgid "View hits in %s"
751
+ msgstr "Ver resultados en %s"
752
+
753
+ #: app/views/groups/new.php:9
754
+ msgid "New Group"
755
+ msgstr "Añadir Grupo"
756
+
757
+ #: app/views/groups/new.php:21 pro/app/views/reports/new.php:19
758
+ msgid "Name*:"
759
+ msgstr "Nombre*:"
760
+
761
+ #: app/views/groups/new.php:61 app/views/links/new.php:20
762
+ msgid "Create"
763
+ msgstr "Crear"
764
+
765
+ #: app/views/links/edit.php:7
766
+ msgid "Edit Link"
767
+ msgstr "Editar el enlace"
768
+
769
+ #: app/views/links/form.php:6
770
+ msgid "Redirection*"
771
+ msgstr "Redirección*"
772
+
773
+ #: app/views/links/form.php:9 app/views/options/form.php:72
774
+ #: app/views/options/form.php:74
775
+ msgid "Redirection Type"
776
+ msgstr "Tipo de Redirección"
777
+
778
+ #: app/views/links/form.php:10
779
+ msgid "This is the method of redirection for your link."
780
+ msgstr "Este es el método de redirección para su enlace."
781
+
782
+ #: app/views/links/form.php:23
783
+ msgid ""
784
+ "To Enable Cloaked, Meta-Refresh, Javascript, Pixel and Pretty Bar Redirection, "
785
+ "upgrade to %sPretty Link Pro%s"
786
+ msgstr ""
787
+ "Para activar Cloaked, Meta-Refresh, Javascript, Pixel y Pretty Bar redirección, "
788
+ "actualizar a %sPretty Link Pro%s "
789
+
790
+ #: app/views/links/form.php:30
791
+ msgid "Target URL*"
792
+ msgstr "Target URL*"
793
+
794
+ #: app/views/links/form.php:33 app/views/shared/tinymce_form_popup.php:44
795
+ #: app/views/shared/tinymce_form_popup.php:103 app/views/widgets/widget.php:11
796
+ msgid "Target URL"
797
+ msgstr "Target URL"
798
+
799
+ #: app/views/links/form.php:34
800
+ msgid "This is the URL that your Pretty Link will redirect to."
801
+ msgstr "Esta es la URL que su Pretty Link será redireccionado."
802
+
803
+ #: app/views/links/form.php:43
804
+ msgid "Pretty Link*"
805
+ msgstr "Pretty Link*"
806
+
807
+ #: app/views/links/form.php:47
808
+ msgid ""
809
+ "This is how your pretty link will appear. You can edit the Pretty Link slug "
810
+ "here."
811
+ msgstr "Su pretty link aparecerá así. Puede editar la slug de Pretty Link aquí."
812
+
813
+ #: app/views/links/form.php:56 app/views/links/form.php:59
814
+ msgid "Title"
815
+ msgstr "Título"
816
+
817
+ #: app/views/links/form.php:60
818
+ msgid ""
819
+ "Leave this blank and Pretty Link will attempt to detect the title from the "
820
+ "target url. Alternatively you can enter a custom title here."
821
+ msgstr ""
822
+ "Deje esto en blanco y Pretty Link intentará detectar el título de la url de "
823
+ "destino. Alternativamente puede ingresar un título personalizado aquí."
824
+
825
+ #: app/views/links/form.php:69 app/views/links/form.php:72
826
+ msgid "Notes"
827
+ msgstr "Notas"
828
+
829
+ #: app/views/links/form.php:73
830
+ msgid ""
831
+ "This is a field where you can enter notes about a particular link. This notes "
832
+ "field is mainly for your own link management needs. It isn't currently used "
833
+ "anywhere on the front end."
834
+ msgstr ""
835
+ "Este es un campo donde puede escribir notas sobre un enlace concreto. Este "
836
+ "campo de notas es principalmente para sus propias necesidades administradores "
837
+ "de enlace. Actualmente no es utilizado en cualquier lugar en la parte delantera."
838
+
839
+ #: app/views/links/form.php:83
840
+ msgid "Advanced Options"
841
+ msgstr "Opciones Avanzados"
842
+
843
+ #: app/views/links/form.php:90 app/views/links/list.php:60
844
+ #: app/views/links/list.php:84 app/views/links/list.php:164
845
+ #: pro/app/views/options/autocreate.php:30 pro/app/views/reports/edit.php:95
846
+ #: pro/app/views/reports/new.php:94
847
+ msgid "Group"
848
+ msgstr "Grupo"
849
+
850
+ #: app/views/links/form.php:93
851
+ msgid "Link Group"
852
+ msgstr "Grupo de Enlace"
853
+
854
+ #: app/views/links/form.php:94
855
+ msgid "Select a Group for this Link"
856
+ msgstr "Seleccione un Grupo para este enlace"
857
+
858
+ #: app/views/links/form.php:108 pro/app/views/options/autocreate.php:41
859
+ msgid "Add a New Group"
860
+ msgstr "Añadir un nuevo grupo"
861
+
862
+ #: app/views/links/form.php:113
863
+ msgid "No Follow"
864
+ msgstr "Nofollow"
865
+
866
+ #: app/views/links/form.php:116
867
+ msgid "Nofollow Link"
868
+ msgstr "Enlace nofollow"
869
+
870
+ #: app/views/links/form.php:117
871
+ msgid "Add a nofollow and noindex to this link's http redirect header"
872
+ msgstr "Añadir un nofollow y noindex a la cabecera de este link http redirect"
873
+
874
+ #: app/views/links/form.php:126 app/views/links/form.php:129
875
+ msgid "Delay Redirect"
876
+ msgstr "Retrasar la Redirección"
877
+
878
+ #: app/views/links/form.php:130
879
+ msgid "Time in seconds to wait before redirecting"
880
+ msgstr "Tiempo en segundos para esperar antes de redireccionar"
881
+
882
+ #: app/views/links/form.php:139 app/views/links/form.php:142
883
+ msgid "Parameter Forwarding"
884
+ msgstr "Reenvío Parámetro "
885
+
886
+ #: app/views/links/form.php:143
887
+ msgid "Forward parameters passed to this link onto the Target URL"
888
+ msgstr "Reenviar parámetros que llegan a este link a la URL de destino"
889
+
890
+ #: app/views/links/form.php:152 app/views/links/form.php:155
891
+ #: app/views/shared/tinymce_form_popup.php:83
892
+ msgid "Tracking"
893
+ msgstr "Seguimiento"
894
+
895
+ #: app/views/links/form.php:156
896
+ msgid "Enable Pretty Link's built-in hit (click) tracking"
897
+ msgstr "Activar Pretty Link's (clic) seguimiento incorporado "
898
+
899
+ #: app/views/links/form.php:165 pro/app/models/PlpUtils.php:42
900
+ #: pro/app/views/links/bulk-edit.php:12
901
+ msgid "Google Analytics"
902
+ msgstr "Google Analytics"
903
+
904
+ #: app/views/links/form.php:168
905
+ msgid "Google Analytics Tracking"
906
+ msgstr "Google Analitics Seguimiento"
907
+
908
+ #: app/views/links/form.php:169
909
+ msgid ""
910
+ "Requires the Google Analyticator, Google Analytics for WordPress or Google "
911
+ "Analytics Plugin installed and configured for this to work."
912
+ msgstr ""
913
+ "Requiere el Google Analyticator, Google Analytics para WordPress o Google "
914
+ "Analytics Plugin instalado y configurado para que funcione."
915
+
916
+ #: app/views/links/form.php:179
917
+ msgid ""
918
+ "It appears that <strong>%s</strong> is currently installed. Pretty Link will "
919
+ "attempt to use its settings to track this link."
920
+ msgstr ""
921
+ "Parece que <strong>%s</strong> ya está instalado. Pretty Link intentará "
922
+ "utilizar sus ajustes de seguir este enlace."
923
+
924
+ #: app/views/links/form.php:184
925
+ msgid ""
926
+ "No Google Analytics Plugin is currently installed. Pretty Link cannot track "
927
+ "links using Google Analytics until one is."
928
+ msgstr ""
929
+ "Actualmente no está instalado ningún Plugin de Google Analytics. Pretty Link no "
930
+ "puede seguir enlaces usando Google Analytics hasta que uno es."
931
+
932
+ #: app/views/links/form.php:197
933
+ msgid "Pro Options"
934
+ msgstr "Opciones de Pro"
935
+
936
+ #: app/views/links/form.php:212
937
+ msgid ""
938
+ "To enable Double Redirection, Keyword Replacements, URL Replacements, URL "
939
+ "Rotations, Split Tests, and more, %sUpgrade to Pretty Link Pro%s today!"
940
+ msgstr ""
941
+ "Para habilitar la Redirección Doble, Reemplazos de Palabras Clave, URL "
942
+ "Reemplazos, Rotaciones de Enlace, Rruebas de Split y más, ¡%sActualizar Pretty "
943
+ "Link Pro%s hoy!"
944
+
945
+ #: app/views/links/list.php:13
946
+ msgid ""
947
+ "WordPress Must be Configured:</strong> Pretty Link won't work until you select "
948
+ "a Permalink Structure other than 'Default'"
949
+ msgstr ""
950
+ "<strong>WordPress tiene que ser configurado:</strong> Pretty Link no funcionará "
951
+ "hasta que seleccione una otra estructura de Permalink distinto de lo que esta "
952
+ "por defecto."
953
+
954
+ #: app/views/links/list.php:13 app/views/options/form.php:9
955
+ msgid "Permalink Settings"
956
+ msgstr "Ajustes de Permalink"
957
+
958
+ #: app/views/links/list.php:38
959
+ msgid "Add a Pretty Link"
960
+ msgstr "Agregar un Pretty Link"
961
+
962
+ #: app/views/links/list.php:39
963
+ msgid "Watch Pretty Link Intro Video"
964
+ msgstr "Ver el intro vídeo para Pretty Link"
965
+
966
+ #: app/views/links/list.php:48
967
+ msgid "Back to Groups"
968
+ msgstr "Volver a Grupos"
969
+
970
+ #: app/views/links/list.php:59 app/views/links/list.php:163
971
+ msgid "Clicks / Uniq"
972
+ msgstr "Clics / Uniq"
973
+
974
+ #: app/views/links/list.php:73
975
+ msgid "Bulk Edit"
976
+ msgstr "Editar a Granel"
977
+
978
+ #: app/views/links/list.php:80
979
+ msgid "Basic Link Options"
980
+ msgstr "Opciones Básicas de Enlace"
981
+
982
+ #: app/views/links/list.php:81 app/views/shared/tinymce_form_popup.php:60
983
+ msgid "Redirect Type"
984
+ msgstr "Tipo de Redirección"
985
+
986
+ #: app/views/links/list.php:87
987
+ msgid "Track"
988
+ msgstr "Seguimiento"
989
+
990
+ #: app/views/links/list.php:89 app/views/shared/tinymce_form_popup.php:75
991
+ msgid "Nofollow"
992
+ msgstr "Nofollow"
993
+
994
+ #: app/views/links/list.php:91
995
+ msgid "Forward Params"
996
+ msgstr "Reenviar Parámetros"
997
+
998
+ #: app/views/links/list.php:99
999
+ msgid "Bulk Update"
1000
+ msgstr "Actualización a Granel"
1001
+
1002
+ #: app/views/links/list.php:109
1003
+ msgid "No Pretty Links were found, %sCreate One%s"
1004
+ msgstr "Ningún Pretty Link fue encontrada, %sCrear Uno%s"
1005
+
1006
+ #: app/views/links/list.php:150
1007
+ msgid "Target URL:"
1008
+ msgstr "URL de Destino:"
1009
+
1010
+ #: app/views/links/new.php:7
1011
+ msgid "Add Link"
1012
+ msgstr "Agregar Enlace"
1013
+
1014
+ #: app/views/options/form.php:9
1015
+ msgid "WordPress Must be Configured:"
1016
+ msgstr "WordPress tiene que estar configurado:"
1017
+
1018
+ #: app/views/options/form.php:9
1019
+ msgid ""
1020
+ "Pretty Link won't work until you select a Permalink Structure other than "
1021
+ "'Default'"
1022
+ msgstr ""
1023
+ "Pretty Link no funcionará hasta que seleccione una otra estructura de Permalink "
1024
+ "distinto de lo que esta por defecto"
1025
+
1026
+ #: app/views/options/form.php:33
1027
+ msgid "General"
1028
+ msgstr "General"
1029
+
1030
+ #: app/views/options/form.php:35
1031
+ msgid "Reporting"
1032
+ msgstr "Informes"
1033
+
1034
+ #: app/views/options/form.php:41
1035
+ msgid "General Options"
1036
+ msgstr "Opciones Generales"
1037
+
1038
+ #: app/views/options/form.php:46
1039
+ msgid "WordPress Redirection Hook"
1040
+ msgstr "Gancho de Redireccionamiento de WordPress"
1041
+
1042
+ #: app/views/options/form.php:49
1043
+ msgid "WordPress 'init' Action"
1044
+ msgstr "WordPress 'init' acción"
1045
+
1046
+ #: app/views/options/form.php:50
1047
+ msgid "WordPress 'template_redirect' Action"
1048
+ msgstr "WordPress 'template_redirect' acción"
1049
+
1050
+ #: app/views/options/form.php:62
1051
+ msgid "Default Link Options"
1052
+ msgstr "Opciones de enlace por defecto"
1053
+
1054
+ #: app/views/options/form.php:75
1055
+ msgid "Select the type of redirection you want your newly created links to have."
1056
+ msgstr ""
1057
+ "Seleccione el tipo de redireccionamiento que desea que su recién creado enlaces "
1058
+ "tenga."
1059
+
1060
+ #: app/views/options/form.php:84 app/views/options/form.php:86
1061
+ msgid "Enable Tracking"
1062
+ msgstr "Activar Seguimiento"
1063
+
1064
+ #: app/views/options/form.php:87
1065
+ msgid "Default all new links to be tracked."
1066
+ msgstr "Por defecto todos los enlaces nuevos para ser seguidos."
1067
+
1068
+ #: app/views/options/form.php:96
1069
+ msgid "Enable No Follow"
1070
+ msgstr "Activar No follow"
1071
+
1072
+ #: app/views/options/form.php:98
1073
+ msgid "Add No Follow"
1074
+ msgstr "Añadir No Follow"
1075
+
1076
+ #: app/views/options/form.php:99
1077
+ msgid "Add the 'nofollow' attribute by default to new links."
1078
+ msgstr "Añadir el atributo 'nofollow' por defecto para nuevos enlaces."
1079
+
1080
+ #: app/views/options/form.php:108
1081
+ msgid "Enable Permalink Fix"
1082
+ msgstr "Permiten Permalink Arreglo"
1083
+
1084
+ #: app/views/options/form.php:110
1085
+ msgid "Use fix for index.php Permalink Structure"
1086
+ msgstr "Use Arreglo para index.php estructura de Permalink"
1087
+
1088
+ #: app/views/options/form.php:111
1089
+ msgid ""
1090
+ "This option should ONLY be checked if you have elements in your permalink "
1091
+ "structure that must be present in any link on your site. For example, some "
1092
+ "WordPress installs don't have the benefit of full rewrite capabilities and in "
1093
+ "this case you'd need an index.php included in each link (http://example.com/"
1094
+ "index.php/mycoolslug instead of http://example.com/mycoolslug). If this is the "
1095
+ "case for you then check this option but the vast majority of users will want to "
1096
+ "keep this unchecked."
1097
+ msgstr ""
1098
+ "Esta opción sólo debe estar activado si tiene elementos en su estructura de "
1099
+ "permalink que deben estar presentes en cualquier enlace en su sitio. Por "
1100
+ "ejemplo, algunas instalaciones de WordPress no tienen la ventaja de las "
1101
+ "capacidades de reescritura completa y en este caso sería necesario un index.php "
1102
+ "incluidos en cada enlace (http://ejemplo.com/index.php/migenialslug en vez de "
1103
+ "http://ejemplo.com/migenialslug ). Si es el caso con usted active esta opción "
1104
+ "pero la gran mayoría de los usuarios querrán mantener este desactivada."
1105
+
1106
+ #: app/views/options/form.php:124
1107
+ msgid "Reporting Options"
1108
+ msgstr "Opciones de Informes"
1109
+
1110
+ #: app/views/options/form.php:129 app/views/options/form.php:131
1111
+ msgid "Tracking Style"
1112
+ msgstr "Estilo de Seguimiento"
1113
+
1114
+ #: app/views/options/form.php:132
1115
+ msgid ""
1116
+ "Changing your tracking style can affect the accuracy of your existing "
1117
+ "statistics. Extended mode must be used for Conversion reporting."
1118
+ msgstr ""
1119
+ "Cambiar su estilo de seguimiento puede afectar la precisión de las estadísticas "
1120
+ "existentes. Debe utilizarse el modo extendido para informar de la conversión."
1121
+
1122
+ #: app/views/options/form.php:136
1123
+ msgid "Normal Tracking"
1124
+ msgstr "Seguimiento Normal"
1125
+
1126
+ #: app/views/options/form.php:137
1127
+ msgid "Extended Tracking (more stats / slower performance)"
1128
+ msgstr "Seguimiento Extendido (más estadísticas / menor rendimiento)"
1129
+
1130
+ #: app/views/options/form.php:138
1131
+ msgid "Simple Click Count Tracking (less stats / faster performance)"
1132
+ msgstr ""
1133
+ "Simple Seguimiento de Clics (menos las estadísticas / más rápido rendimiento)"
1134
+
1135
+ #: app/views/options/form.php:144
1136
+ msgid "Excluded IP Addresses:"
1137
+ msgstr "Direcciones IP Excluidos:"
1138
+
1139
+ #: app/views/options/form.php:146
1140
+ msgid "Excluded IP Addresses"
1141
+ msgstr "Direcciones IP Excluidos"
1142
+
1143
+ #: app/views/options/form.php:147
1144
+ msgid ""
1145
+ "Enter IP Addresses or IP Ranges you want to exclude from your Click data and "
1146
+ "Stats. Each IP Address should be separated by commas. Example: 192.168.0.1, "
1147
+ "192.168.2.1, 192.168.3.4 or 192.168.*.*<br/><br/><strong>FYI, your current IP "
1148
+ "address is %s."
1149
+ msgstr ""
1150
+ "Introduzca las direcciones IP o rangos de IP que desea excluir de sus datos de "
1151
+ "clic y las estadísticas. Cada dirección IP debe ser separado por comas. "
1152
+ "Ejemplo: 192.168.0.1, 192.168.2.1, 192.168.3.4 o 192.168. *.*<br/><br/"
1153
+ "><strong>Para su información, su dirección IP actual es %s.</strong>"
1154
+
1155
+ #: app/views/options/form.php:157 app/views/options/form.php:159
1156
+ msgid "Filter Robots"
1157
+ msgstr "Filtrar Robots"
1158
+
1159
+ #: app/views/options/form.php:160
1160
+ msgid ""
1161
+ "Filter known Robots and unidentifiable browser clients from your click data, "
1162
+ "stats and reports."
1163
+ msgstr ""
1164
+ "Filtrar Robots conocidos y clientes de explorador no identificables de sus "
1165
+ "datos de clic, estadísticas y reportes."
1166
+
1167
+ #: app/views/options/form.php:176
1168
+ msgid "Whitelist IP Addresses"
1169
+ msgstr "Direcciones IP de Lista Blanca"
1170
+
1171
+ #: app/views/options/form.php:178
1172
+ msgid "Whiltelist IP Addresses"
1173
+ msgstr "Direcciones IP de Lista Blanca"
1174
+
1175
+ #: app/views/options/form.php:179
1176
+ msgid ""
1177
+ "Enter IP Addresses or IP Ranges you want to always include in your Click data "
1178
+ "and Stats even if they are flagged as robots. Each IP Address should be "
1179
+ "separated by commas. Example: 192.168.0.1, 192.168.2.1, 192.168.3.4 or 192.168."
1180
+ "*.*"
1181
+ msgstr ""
1182
+ "Introduzca las direcciones IP o rangos de IP que desee incluir siempre en sus "
1183
+ "datos de clic y estadísticas, incluso si están marcados como robots. Cada "
1184
+ "dirección IP debe ser separado por comas. Ejemplo: 192.168.0.1, 192.168.2.1, "
1185
+ "192.168.3.4 o 192.168. *.*"
1186
+
1187
+ #: app/views/options/pro-settings.php:6
1188
+ msgid "Pro Account Information"
1189
+ msgstr "Información de Cuenta Pro"
1190
+
1191
+ #: app/views/options/pro-settings.php:8
1192
+ msgid "Pretty Link Pro Account Information"
1193
+ msgstr "Información de Cuenta Pretty Link Pro"
1194
+
1195
+ #: app/views/options/pro-settings.php:11 pro/app/views/import-export/form.php:5
1196
+ #: pro/app/views/reports/list.php:23
1197
+ msgid "User Manual"
1198
+ msgstr "Manual del Usuario"
1199
+
1200
+ #: app/views/options/pro-settings.php:18
1201
+ msgid "Pretty Link Pro is Installed"
1202
+ msgstr "Pretty Link Pro está instalado"
1203
+
1204
+ #: app/views/options/pro-settings.php:20
1205
+ msgid ""
1206
+ "Are you sure you want to Un-Install Pretty Link Pro? This will delete your pro "
1207
+ "username & password from your local database, remove all the pro software but "
1208
+ "will leave all your data intact incase you want to reinstall sometime :) ..."
1209
+ msgstr ""
1210
+ "¿Está seguro que desea desinstalar Pretty Link Pro? Esto borrará su pro usuario "
1211
+ "y la contraseña de su base de datos local, quitará todo el software pro pero le "
1212
+ "salen todos sus datos intactos en caso que desee volver a instalar en algún "
1213
+ "momento :) ..."
1214
+
1215
+ #: app/views/options/pro-settings.php:20
1216
+ msgid "Downgrade to Pretty Link Standard"
1217
+ msgstr "Degradara a Pretty Link Standard"
1218
+
1219
+ #: app/views/options/pro-settings.php:24
1220
+ msgid "Edit/Update Your Profile:"
1221
+ msgstr "Editar o actualizar su perfil:"
1222
+
1223
+ #: app/views/options/pro-settings.php:25
1224
+ msgid ""
1225
+ "Use your account username and password to log in to your Account and Affiliate "
1226
+ "Dashboard"
1227
+ msgstr ""
1228
+ "Utilice su cuenta de usuario y contraseña para iniciar sesión en su Cuenta y "
1229
+ "Escritorio de Afiliados"
1230
+
1231
+ #: app/views/options/pro-settings.php:28
1232
+ msgid "Account"
1233
+ msgstr "Cuenta"
1234
+
1235
+ #: app/views/options/pro-settings.php:28
1236
+ msgid "Affiliate Dashboard"
1237
+ msgstr "Escritorio de Afiliados"
1238
+
1239
+ #: app/views/options/pro-settings.php:33
1240
+ msgid "Ready to take your marketing efforts to the next level?"
1241
+ msgstr "¿Listos para llevar sus esfuerzos de marketing al siguiente nivel?"
1242
+
1243
+ #: app/views/options/pro-settings.php:35
1244
+ msgid ""
1245
+ "%1$sPretty Link Pro%2$s will help you automate, share, test and get more clicks "
1246
+ "and conversions from your Pretty Links!"
1247
+ msgstr ""
1248
+ "%1$sPretty Link Pro%2$s le ayudará a automatizar, compartir, probar y obtener "
1249
+ "más clics y conversiones de sus Pretty Links!"
1250
+
1251
+ #: app/views/options/pro-settings.php:38
1252
+ msgid "Learn More"
1253
+ msgstr "Más Información"
1254
+
1255
+ #: app/views/shared/link-table-nav.php:16 app/views/shared/link-table-nav.php:119
1256
+ #: app/views/shared/table-nav.php:12
1257
+ msgid "Displaying"
1258
+ msgstr "Mostrando"
1259
+
1260
+ #: app/views/shared/nav.php:6
1261
+ msgid "Pro Manual"
1262
+ msgstr "Manual de Pro"
1263
+
1264
+ #: app/views/shared/nav.php:9
1265
+ msgid "Upgrade to Pro"
1266
+ msgstr "Actualizar a la versión Pro"
1267
+
1268
+ #: app/views/shared/nav.php:14
1269
+ msgid "Connect:"
1270
+ msgstr "Conectar:"
1271
+
1272
+ #: app/views/shared/nav.php:18
1273
+ msgid "Get Help:"
1274
+ msgstr "Obtener ayuda:"
1275
+
1276
+ #: app/views/shared/nav.php:19
1277
+ msgid "Tutorials"
1278
+ msgstr "Tutoriales"
1279
+
1280
+ #: app/views/shared/public_link.php:20
1281
+ msgid "Here is your Pretty Link"
1282
+ msgstr "Aquí está su Pretty Link"
1283
+
1284
+ #: app/views/shared/public_link.php:36
1285
+ msgid "Here's your pretty link for:"
1286
+ msgstr "Aquí está su Pretty Link para:"
1287
+
1288
+ #: app/views/shared/public_link.php:39
1289
+ msgid "send this link to:"
1290
+ msgstr "enviar este enlace a:"
1291
+
1292
+ #: app/views/shared/public_link.php:42
1293
+ msgid "back"
1294
+ msgstr "volver"
1295
+
1296
+ #: app/views/shared/tinymce_form_popup.php:4
1297
+ msgid "Insert Pretty Link"
1298
+ msgstr "Insertar Pretty Link"
1299
+
1300
+ #: app/views/shared/tinymce_form_popup.php:41
1301
+ msgid "Create New Pretty Link"
1302
+ msgstr "Crear nuevo Pretty Link"
1303
+
1304
+ #: app/views/shared/tinymce_form_popup.php:48
1305
+ msgid "Slug"
1306
+ msgstr "Slug"
1307
+
1308
+ #: app/views/shared/tinymce_form_popup.php:51
1309
+ msgid "valid"
1310
+ msgstr "válido"
1311
+
1312
+ #: app/views/shared/tinymce_form_popup.php:52
1313
+ msgid "invalid"
1314
+ msgstr "inválido"
1315
+
1316
+ #: app/views/shared/tinymce_form_popup.php:56
1317
+ #: app/views/shared/tinymce_form_popup.php:111
1318
+ msgid "Link Text"
1319
+ msgstr "Texto de Enlace"
1320
+
1321
+ #: app/views/shared/tinymce_form_popup.php:62
1322
+ #: app/views/shared/tinymce_form_popup.php:77
1323
+ #: app/views/shared/tinymce_form_popup.php:85 pro/app/views/tools/generator.php:46
1324
+ #: pro/app/views/tools/generator.php:51
1325
+ #: pro/app/widgets/PlpPublicLinksWidget.php:59
1326
+ #: pro/app/widgets/PlpPublicLinksWidget.php:70
1327
+ msgid "Default"
1328
+ msgstr "Por Defecto"
1329
+
1330
+ #: app/views/shared/tinymce_form_popup.php:66
1331
+ #: pro/app/controllers/PlpLinksController.php:363
1332
+ #: pro/app/controllers/PlpLinksController.php:442 pro/app/views/options/nav.php:6
1333
+ msgid "Pretty Bar"
1334
+ msgstr "Pretty Bar"
1335
+
1336
+ #: app/views/shared/tinymce_form_popup.php:67
1337
+ #: pro/app/controllers/PlpLinksController.php:364
1338
+ msgid "Cloaked"
1339
+ msgstr "Cloaked"
1340
+
1341
+ #: app/views/shared/tinymce_form_popup.php:68
1342
+ #: pro/app/controllers/PlpLinksController.php:365
1343
+ #: pro/app/controllers/PlpLinksController.php:444
1344
+ msgid "Pixel"
1345
+ msgstr "Píxel"
1346
+
1347
+ #: app/views/shared/tinymce_form_popup.php:69
1348
+ #: pro/app/controllers/PlpLinksController.php:366
1349
+ #: pro/app/controllers/PlpLinksController.php:445
1350
+ msgid "Meta Refresh"
1351
+ msgstr "Meta Refresh"
1352
+
1353
+ #: app/views/shared/tinymce_form_popup.php:70
1354
+ #: pro/app/controllers/PlpLinksController.php:367
1355
+ #: pro/app/controllers/PlpLinksController.php:446
1356
+ msgid "Javascript"
1357
+ msgstr "JavaScript"
1358
+
1359
+ #: app/views/shared/tinymce_form_popup.php:78
1360
+ #: app/views/shared/tinymce_form_popup.php:86
1361
+ msgid "Enabled"
1362
+ msgstr "Activado"
1363
+
1364
+ #: app/views/shared/tinymce_form_popup.php:79
1365
+ #: app/views/shared/tinymce_form_popup.php:87
1366
+ msgid "Disabled"
1367
+ msgstr "Deshabilitado"
1368
+
1369
+ #: app/views/shared/tinymce_form_popup.php:92
1370
+ #: app/views/shared/tinymce_form_popup.php:116
1371
+ msgid "Open this Pretty Link in a new window/tab"
1372
+ msgstr "Abrir este Pretty Link en una nueva ventana/pestaña"
1373
+
1374
+ #: app/views/shared/tinymce_form_popup.php:95
1375
+ msgid "Insert New Pretty Link"
1376
+ msgstr "Insertar Nuevo Pretty Link"
1377
+
1378
+ #: app/views/shared/tinymce_form_popup.php:99
1379
+ msgid "Use Existing Pretty Link"
1380
+ msgstr "Utilizar existente Pretty Link"
1381
+
1382
+ #: app/views/shared/tinymce_form_popup.php:101
1383
+ msgid "Search by Slug, Title, or Target URL..."
1384
+ msgstr "Buscar por Slug, Título y Dirección URL de destino..."
1385
+
1386
+ #: app/views/shared/tinymce_form_popup.php:120
1387
+ msgid "Insert Existing Pretty Link"
1388
+ msgstr "Insertar Existente Pretty Link"
1389
+
1390
+ #: app/views/tools/form.php:19 app/views/tools/form.php:26
1391
+ msgid "Bookmarklet"
1392
+ msgstr "Bookmarklet"
1393
+
1394
+ #: app/views/tools/form.php:20 app/views/tools/form.php:49
1395
+ msgid "Trim Clicks"
1396
+ msgstr "Recortar Clics"
1397
+
1398
+ #: app/views/tools/form.php:27 pro/app/views/tools/generator.php:31
1399
+ #: pro/app/views/tools/generator.php:41
1400
+ msgid "Get PrettyLink"
1401
+ msgstr "Conseguir PrettyLink"
1402
+
1403
+ #: app/views/tools/form.php:29
1404
+ msgid "Install Pretty Link Bookmarklet"
1405
+ msgstr "Instalar Pretty Link Bookmarklet"
1406
+
1407
+ #: app/views/tools/form.php:30
1408
+ msgid ""
1409
+ "Just drag this \"Get PrettyLink\" link to your toolbar to install the "
1410
+ "bookmarklet. As you browse the web, you can just click this bookmarklet to "
1411
+ "create a pretty link from the current url you're looking at. <a href=\"http://"
1412
+ "blairwilliams.com/pretty-link-bookmarklet/\">(more help)</a>"
1413
+ msgstr ""
1414
+ "Sólo tiene que arrastrar este enlace \"Conseguir PrettyLink\" a su barra de "
1415
+ "herramientas para instalar el bookmarklet. Mientras se navega por la web, sólo "
1416
+ "puede hacer clic en este bookmarklet para crear un pretty link desde la url "
1417
+ "actual que está viendo. <a href=\"http://blairwilliams.com/pretty-link-"
1418
+ "bookmarklet/\">(más ayuda)</a>"
1419
+
1420
+ #: app/views/tools/form.php:32
1421
+ msgid "Show iPhone Bookmarklet Instructions"
1422
+ msgstr "Mostrar instrucciones de Bookmarklet para iPhone"
1423
+
1424
+ #: app/views/tools/form.php:36
1425
+ msgid ""
1426
+ "<strong>Note:</strong> iPhone users can install this bookmarklet in their "
1427
+ "Safari to create Pretty Links with the following steps:"
1428
+ msgstr ""
1429
+ "<strong>Nota:</strong> los usuarios de iPhone pueden instalar este bookmarklet "
1430
+ "en su Safari para crear Pretty Links con los siguientes pasos:"
1431
+
1432
+ #: app/views/tools/form.php:38
1433
+ msgid "Copy this text:"
1434
+ msgstr "Copia este texto:"
1435
+
1436
+ #: app/views/tools/form.php:39
1437
+ msgid "Tap the + button at the bottom of the screen"
1438
+ msgstr "Pulse el botón \"+\" en la parte inferior de la pantalla "
1439
+
1440
+ #: app/views/tools/form.php:40
1441
+ msgid ""
1442
+ "Choose \"Add Bookmark\", rename your bookmark to \"Get PrettyLink\" (or "
1443
+ "whatever you want) and then \"Save\""
1444
+ msgstr ""
1445
+ "Elija \"Añadir Marcador\", cambie el nombre de su bookmark a \"Conseguir "
1446
+ "PrettyLink\" (o lo que quieras) y luego \"Guardar\""
1447
+
1448
+ #: app/views/tools/form.php:41
1449
+ msgid ""
1450
+ "Navigate through your Bookmarks folders until you find the new bookmark and "
1451
+ "click \"Edit\""
1452
+ msgstr ""
1453
+ "Navegar por sus carpetas de Marcadores, hasta encontrar el nuevo bookmark y "
1454
+ "haga clic en \"Editar\""
1455
+
1456
+ #: app/views/tools/form.php:42
1457
+ msgid "Delete all the text from the address"
1458
+ msgstr "Borrar todo el texto de la dirección"
1459
+
1460
+ #: app/views/tools/form.php:43
1461
+ msgid "Paste the text you copied in Step 1 into the address field"
1462
+ msgstr "Pegar el texto que copío en el paso 1 en el campo de dirección"
1463
+
1464
+ #: app/views/tools/form.php:44
1465
+ msgid "To save the changes hit \"Bookmarks\" and <strong>you're done!"
1466
+ msgstr ""
1467
+ "Para guardar los cambios haga clic en \"Marcadores\" y <strong>listo!</strong>"
1468
+
1469
+ #: app/views/tools/form.php:44
1470
+ msgid ""
1471
+ "Now when you find a page you want to save off as a Pretty Link, just click the "
1472
+ "\"Bookmarks\" icon at the bottom of the screen and select your link."
1473
+ msgstr ""
1474
+ "Ahora cuando encuentres una página que desea guardar como un Pretty Link, sólo "
1475
+ "haga clic en el icono de \"Marcadores\" en la parte inferior de la pantalla y "
1476
+ "seleccione su enlace."
1477
+
1478
+ #: app/views/tools/form.php:51
1479
+ msgid ""
1480
+ "***WARNING*** If you click OK you will delete ALL of the Click data that is "
1481
+ "older than 30 days. Your data will be gone forever -- no way to retreive it. Do "
1482
+ "not click OK unless you are absolutely sure you want to delete this data "
1483
+ "because there is no going back!"
1484
+ msgstr ""
1485
+ "***ADVERTENCIA*** Si usted haga clic en OK borrará TODOS los datos que es más "
1486
+ "antiguo de 30 días. Sus datos se irán para siempre, no para recuperarlo. No "
1487
+ "haga clic en OK a menos que estés absolutamente seguro de que desea eliminar "
1488
+ "esta información porque no hay vuelta atrás!"
1489
+
1490
+ #: app/views/tools/form.php:51
1491
+ msgid "Delete Clicks older than 30 days"
1492
+ msgstr "Borrar clics más antiguos de 30 días"
1493
+
1494
+ #: app/views/tools/form.php:53
1495
+ msgid "Clear clicks 30 days or older"
1496
+ msgstr "Borrar clics pasando 30 días o más"
1497
+
1498
+ #: app/views/tools/form.php:54
1499
+ msgid "This will clear all clicks in your database that are older than 30 days."
1500
+ msgstr ""
1501
+ "Esto borrará todos los clics en su base de datos que son mayores de 30 días."
1502
+
1503
+ #: app/views/tools/form.php:56
1504
+ msgid ""
1505
+ "***WARNING*** If you click OK you will delete ALL of the Click data that is "
1506
+ "older than 90 days. Your data will be gone forever -- no way to retreive it. Do "
1507
+ "not click OK unless you are absolutely sure you want to delete this data "
1508
+ "because there is no going back!"
1509
+ msgstr ""
1510
+ "***ADVERTENCIA*** Si usted haga clic en OK borrará TODOS los datos que es más "
1511
+ "antiguo de 90 días. Sus datos se irán para siempre, no para recuperarlo. No "
1512
+ "haga clic en OK a menos que estés absolutamente seguro de que desea eliminar "
1513
+ "esta información porque no hay vuelta atrás!"
1514
+
1515
+ #: app/views/tools/form.php:56
1516
+ msgid "Delete Clicks older than 90 days"
1517
+ msgstr "Borrar clics más antigos de 90 días"
1518
+
1519
+ #: app/views/tools/form.php:58
1520
+ msgid "Clear clicks 90 days or older"
1521
+ msgstr "Borrar clics pasando 90 días o más"
1522
+
1523
+ #: app/views/tools/form.php:59
1524
+ msgid "This will clear all clicks in your database that are older than 90 days."
1525
+ msgstr ""
1526
+ "Esto borrará todos los clics en su base de datos que son mayores de 90 días."
1527
+
1528
+ #: app/views/tools/form.php:63
1529
+ msgid ""
1530
+ "***WARNING*** If you click OK you will delete ALL of the Click data in your "
1531
+ "Database. Your data will be gone forever -- no way to retreive it. Do not click "
1532
+ "OK unless you are absolutely sure you want to delete all your data because "
1533
+ "there is no going back!"
1534
+ msgstr ""
1535
+ "***ADVERTENCIA*** Si usted haga clic en OK borrará TODOS los datos que están en "
1536
+ "su base de datos. Sus datos se irán para siempre, no para recuperarlo. No haga "
1537
+ "clic en OK a menos que estés absolutamente seguro de que desea eliminar esta "
1538
+ "información porque no hay vuelta atrás!"
1539
+
1540
+ #: app/views/tools/form.php:63
1541
+ msgid "Delete All Clicks"
1542
+ msgstr "Borrar Todos los Clics"
1543
+
1544
+ #: app/views/tools/form.php:65
1545
+ msgid "Clear all clicks"
1546
+ msgstr "Borrar todos los clics"
1547
+
1548
+ #: app/views/tools/form.php:66
1549
+ msgid ""
1550
+ "Seriously, only click this link if you want to delete all the Click data in "
1551
+ "your database."
1552
+ msgstr ""
1553
+ "En serio, sólo haga clic en este enlace si desea eliminar todos los datos de "
1554
+ "clics de su base de datos."
1555
+
1556
+ #: app/views/widgets/widget.php:3
1557
+ msgid "Add a Pretty Link from your Dashboard:"
1558
+ msgstr "Agregar un Pretty Link desde su panel de control:"
1559
+
1560
+ #: pro/app/controllers/PlpAppController.php:22
1561
+ msgid "Pretty Link Pro | Reports"
1562
+ msgstr "Pretty Link Pro | Informes"
1563
+
1564
+ #: pro/app/controllers/PlpAppController.php:23 pro/app/views/reports/reports.php:7
1565
+ msgid "Reports"
1566
+ msgstr "Informes"
1567
+
1568
+ #: pro/app/controllers/PlpAppController.php:31
1569
+ msgid "Pretty Link Pro | Import/Export"
1570
+ msgstr "Pretty Link Pro | Importar/Exportar"
1571
+
1572
+ #: pro/app/controllers/PlpAppController.php:32
1573
+ msgid "Import/Export"
1574
+ msgstr "Importar/Exportar"
1575
+
1576
+ #: pro/app/controllers/PlpAppController.php:48
1577
+ msgid "Pretty Link Pro Options"
1578
+ msgstr "Opciones de Pretty Link Pro"
1579
+
1580
+ #: pro/app/controllers/PlpAppController.php:151
1581
+ msgid "ERROR: Your Pretty Link was unable to be created"
1582
+ msgstr "ERROR: su Pretty Link no pudo ser creado"
1583
+
1584
+ #: pro/app/controllers/PlpAppController.php:155
1585
+ msgid "Unauthorized"
1586
+ msgstr "No autorizado"
1587
+
1588
+ #: pro/app/controllers/PlpKeywordsController.php:307
1589
+ #: pro/app/views/links/form.php:22
1590
+ msgid "Keywords"
1591
+ msgstr "Palabras Claves"
1592
+
1593
+ #: pro/app/controllers/PlpLinksController.php:185
1594
+ msgid ""
1595
+ "Your URL Replacements must be formatted as a comma separated list of properly "
1596
+ "formatted URLs (http[s]://example.com/whatever)"
1597
+ msgstr ""
1598
+ "Su URL de reemplazo debe ser formateado como una lista separada por comas de "
1599
+ "las direcciones URL con el formato correcto (http[s]://ejemplo.com/"
1600
+ "cualquiercosa)"
1601
+
1602
+ #: pro/app/controllers/PlpLinksController.php:202
1603
+ msgid "Your Link Rotation Weights must add up to 100%"
1604
+ msgstr "Sus Pesos de Rotación de Enlace deben sumar a un 100%"
1605
+
1606
+ #: pro/app/controllers/PlpLinksController.php:208
1607
+ msgid "Delay Redirect must be a number"
1608
+ msgstr "Redirección Retraso debe ser un número"
1609
+
1610
+ #: pro/app/controllers/PlpLinksController.php:443
1611
+ #: pro/app/widgets/PlpPublicLinksWidget.php:63
1612
+ msgid "Cloak"
1613
+ msgstr "Cloak"
1614
+
1615
+ #: pro/app/controllers/PlpLinksController.php:513
1616
+ msgid "You are unauthorized to view this resource"
1617
+ msgstr "Está sin autorización para ver este recurso"
1618
+
1619
+ #: pro/app/controllers/PlpLinksController.php:543
1620
+ msgid "View QR Code for this link: %s"
1621
+ msgstr "Ver Código QR para este enlace: %s"
1622
+
1623
+ #: pro/app/controllers/PlpLinksController.php:547
1624
+ msgid "Download QR Code for this link: %s"
1625
+ msgstr "Descargar Código QR para este enlace: %s"
1626
+
1627
+ #: pro/app/controllers/PlpLinksController.php:603
1628
+ msgid "This link has additional Target URL rotations"
1629
+ msgstr "Este enlace tiene rotaciones de dirección URL"
1630
+
1631
+ #: pro/app/controllers/PlpLinksController.php:606
1632
+ msgid "This link has additional Geographic Target URLs"
1633
+ msgstr "Este enlace tiene URLs de destino geográfico adicional"
1634
+
1635
+ #: pro/app/controllers/PlpLinksController.php:610
1636
+ msgid "Double Redirection Enabled"
1637
+ msgstr "Doble Redirección Activado"
1638
+
1639
+ #: pro/app/controllers/PlpOptionsController.php:106
1640
+ msgid "Keywords Per Page is required"
1641
+ msgstr "Palabras clave por página es requerido"
1642
+
1643
+ #: pro/app/controllers/PlpOptionsController.php:110
1644
+ msgid "Keyword Links Per Page is required"
1645
+ msgstr "Enlaces de palabras clave por página es requerido"
1646
+
1647
+ #: pro/app/controllers/PlpOptionsController.php:115
1648
+ msgid ""
1649
+ "You need to enter a valid Pretty Link Base URL now that you have selected \"Use "
1650
+ "an alternate base url for your Pretty Links\""
1651
+ msgstr ""
1652
+ "Es necesario introducir un Pretty Link Base URL válida ahora que usted ha "
1653
+ "seleccionado \"Usar una url base alterna para sus Pretty Links\""
1654
+
1655
+ #: pro/app/controllers/PlpOptionsController.php:120
1656
+ msgid ""
1657
+ "You need to enter a valid Public Link Display URL now that you have selected "
1658
+ "\"Use a custom public link display page\""
1659
+ msgstr ""
1660
+ "Es necesario ponder un Público Enlace Mostración URL válida ahora que usted ha "
1661
+ "seleccionado \"Utilizar una página personalizada para un enlace público\""
1662
+
1663
+ #: pro/app/controllers/PlpOptionsController.php:126
1664
+ msgid "Pretty Bar Attribution URL must be a correctly formatted URL"
1665
+ msgstr ""
1666
+ "Pretty Bar de atribución URL debe ser una dirección URL con formato "
1667
+ "correctamente"
1668
+
1669
+ #: pro/app/controllers/PlpPrettyBarController.php:50
1670
+ msgid "Logo Image URL must be a correctly formatted URL"
1671
+ msgstr "Logo imagen URL debe ser una dirección URL con formato correctamente"
1672
+
1673
+ #: pro/app/controllers/PlpPrettyBarController.php:54
1674
+ msgid "Background Image URL must be a correctly formatted URL"
1675
+ msgstr ""
1676
+ "URL de la imagen de fondo debe ser una dirección URL con formato correctamente"
1677
+
1678
+ #: pro/app/controllers/PlpPrettyBarController.php:58
1679
+ msgid "PrettyBar Background Color must be an actual RGB Value"
1680
+ msgstr "Color de fondo del PrettyBar debe ser un valor RGB actual"
1681
+
1682
+ #: pro/app/controllers/PlpPrettyBarController.php:62
1683
+ msgid "PrettyBar Text Color must be an actual RGB Value"
1684
+ msgstr "PrettyBar color del texto debe ser un valor RGB actual"
1685
+
1686
+ #: pro/app/controllers/PlpPrettyBarController.php:66
1687
+ msgid "PrettyBar Link Color must be an actual RGB Value"
1688
+ msgstr "PrettyBar enlace color debe ser un valor RGB actual"
1689
+
1690
+ #: pro/app/controllers/PlpPrettyBarController.php:70
1691
+ #: pro/app/controllers/PlpPrettyBarController.php:74
1692
+ msgid "PrettyBar Hover Color must be an actual RGB Value"
1693
+ msgstr "PrettyBar Color Hover debe ser un valor RGB actual"
1694
+
1695
+ #: pro/app/controllers/PlpPrettyBarController.php:78
1696
+ msgid "PrettyBar Title Character Limit must not be blank"
1697
+ msgstr "Límite de caracteres del título de PrettyBar no puede estar en blanco"
1698
+
1699
+ #: pro/app/controllers/PlpPrettyBarController.php:82
1700
+ msgid "PrettyBar Description Character Limit must not be blank"
1701
+ msgstr "PrettyBar Descripción carácter límite no debe estar en blanco"
1702
+
1703
+ #: pro/app/controllers/PlpPrettyBarController.php:86
1704
+ msgid "PrettyBar Link Character Limit must not be blank"
1705
+ msgstr "PrettyBar límite de caracteres de enlace no puede estar en blanco"
1706
+
1707
+ #: pro/app/controllers/PlpPrettyBarController.php:90
1708
+ msgid "PrettyBar Title Character Limit must be a number"
1709
+ msgstr "Límite de caracteres del título de PrettyBar debe ser un número"
1710
+
1711
+ #: pro/app/controllers/PlpPrettyBarController.php:94
1712
+ msgid "PrettyBar Description Character Limit must be a number"
1713
+ msgstr "Límite de caracteres de la descripción de PrettyBar debe ser un número"
1714
+
1715
+ #: pro/app/controllers/PlpPrettyBarController.php:98
1716
+ msgid "PrettyBar Link Character Limit must be a number"
1717
+ msgstr "PrettyBar límite de caracteres de enlace debe ser un número"
1718
+
1719
+ #: pro/app/controllers/PlpPublicLinksController.php:99
1720
+ #: pro/app/helpers/PlpPublicLinksHelper.php:6
1721
+ msgid "Enter a URL:"
1722
+ msgstr "Introducir una URL:"
1723
+
1724
+ #: pro/app/controllers/PlpPublicLinksController.php:100
1725
+ #: pro/app/helpers/PlpPublicLinksHelper.php:7
1726
+ msgid "Shrink"
1727
+ msgstr "Reducir"
1728
+
1729
+ #: pro/app/controllers/PlpReportsController.php:38
1730
+ msgid "Create a custom link report and analyze your data."
1731
+ msgstr "Crear un informe de enlace personalizado y analizar los datos."
1732
+
1733
+ #: pro/app/controllers/PlpReportsController.php:49
1734
+ msgid "View the Split Test Report for %s"
1735
+ msgstr "Ver el informe de la prueba de Split para %s"
1736
+
1737
+ #: pro/app/controllers/PlpReportsController.php:75
1738
+ msgid "Your Pretty Link Report was Successfully Created"
1739
+ msgstr "Su Pretty Link informe fue creado correctamente"
1740
+
1741
+ #: pro/app/controllers/PlpReportsController.php:105
1742
+ msgid "Your Pretty Link Report was Successfully Updated"
1743
+ msgstr "Su Pretty Link informe fue actualizado correctamente"
1744
+
1745
+ #: pro/app/controllers/PlpReportsController.php:114
1746
+ msgid "Your Pretty Link Report was Successfully Deleted"
1747
+ msgstr "Su Pretty Link informe fue borrado correctamente"
1748
+
1749
+ #: pro/app/controllers/PlpTwitterController.php:74
1750
+ msgid ""
1751
+ "Twitter has changed the way it authenticates users:</strong> Auto-Posting to "
1752
+ "Twitter with Pretty Link Pro will not work until you update your <a href="
1753
+ "\"admin.php?page=pretty-link-options\">Twitter Credentials Here</a>"
1754
+ msgstr ""
1755
+ "Twitter ha cambiado la forma en autentica a los usuarios: Auto-publicar en "
1756
+ "Twitter con Pretty Link Pro no funcionará hasta que actualice sus <a href="
1757
+ "\"admin.php?page=pretty-link-options\">Credenciales de Twitter aquí</a>"
1758
+
1759
+ #: pro/app/controllers/PlpTwitterController.php:114
1760
+ msgid "Could not connect to Twitter. Refresh the page or try again later."
1761
+ msgstr ""
1762
+ "No se pudo conectar a Twitter. Actualizar la página o intentarlo más tarde."
1763
+
1764
+ #: pro/app/controllers/PlpTwitterController.php:131
1765
+ #: pro/app/controllers/PlpTwitterController.php:168
1766
+ msgid "There was an error saving your Twitter account."
1767
+ msgstr "Hubo un error al guardar su cuenta de Twitter."
1768
+
1769
+ #: pro/app/controllers/PlpTwitterController.php:165
1770
+ msgid "Your Twitter Account was successfully saved."
1771
+ msgstr "Su cuenta de Twitter fue guardado correctamente."
1772
+
1773
+ #: pro/app/helpers/PlpLinksHelper.php:18 pro/app/views/links/form.php:95
1774
+ msgid "weight:"
1775
+ msgstr "peso:"
1776
+
1777
+ #: pro/app/helpers/PlpPostsHelper.php:19
1778
+ msgid "Hide the Twitter Badge on this post."
1779
+ msgstr "Ocultar la insignia de Twitter en este post."
1780
+
1781
+ #: pro/app/helpers/PlpPostsHelper.php:26
1782
+ msgid "Hide Social Buttons on this post."
1783
+ msgstr "Ocultar botones sociales en este post."
1784
+
1785
+ #: pro/app/helpers/PlpPostsHelper.php:33
1786
+ msgid "Disable Keyword Replacements on this post."
1787
+ msgstr "Desactivar reemplazos de palabras clave en este post."
1788
+
1789
+ #: pro/app/helpers/PlpPostsHelper.php:51
1790
+ msgid "A Pretty Link will be created on Publish"
1791
+ msgstr "Se creará un Pretty Link al publicar"
1792
+
1793
+ #: pro/app/helpers/PlpPostsHelper.php:61 pro/app/views/options/autocreate.php:79
1794
+ msgid "Auto Tweet on Publish"
1795
+ msgstr "Auto Tweet al publicar "
1796
+
1797
+ #: pro/app/helpers/PlpPostsHelper.php:61
1798
+ msgid "Customize Tweet"
1799
+ msgstr "Personalizar Tweet"
1800
+
1801
+ #: pro/app/helpers/PlpPostsHelper.php:84
1802
+ #: pro/app/views/reports/custom-report.php:32
1803
+ #: pro/app/views/reports/custom-report.php:65
1804
+ #: pro/app/views/reports/split-test-report.php:32
1805
+ #: pro/app/views/reports/split-test-report.php:65
1806
+ msgid "Uniques"
1807
+ msgstr "Unicos"
1808
+
1809
+ #: pro/app/helpers/PlpPostsHelper.php:89
1810
+ msgid "edit"
1811
+ msgstr "editar"
1812
+
1813
+ #: pro/app/helpers/PlpPostsHelper.php:91
1814
+ msgid "Visit Pretty Link:"
1815
+ msgstr "Visitar Pretty Link:"
1816
+
1817
+ #: pro/app/helpers/PlpPostsHelper.php:91
1818
+ msgid "in a New Window"
1819
+ msgstr "En una ventana nueva"
1820
+
1821
+ #: pro/app/helpers/PlpPostsHelper.php:91
1822
+ msgid "visit"
1823
+ msgstr "visitar"
1824
+
1825
+ #: pro/app/helpers/PlpPostsHelper.php:103
1826
+ msgid "Has already been tweeted"
1827
+ msgstr "Ya ha hecho este Tweet"
1828
+
1829
+ #: pro/app/helpers/PlpPostsHelper.php:106
1830
+ msgid "Hasn't been Tweeted yet"
1831
+ msgstr "Aún no ha hecho este Tweet"
1832
+
1833
+ #: pro/app/helpers/PlpPostsHelper.php:111
1834
+ msgid "Tweet It"
1835
+ msgstr "Compartir en Twitter"
1836
+
1837
+ #: pro/app/helpers/PlpPostsHelper.php:114
1838
+ msgid "Twitter Message Format:"
1839
+ msgstr "Formato de mensaje de Twitter:"
1840
+
1841
+ #: pro/app/helpers/PlpPostsHelper.php:114
1842
+ msgid "(help)"
1843
+ msgstr "(ayuda)"
1844
+
1845
+ #: pro/app/helpers/PlpPostsHelper.php:116
1846
+ msgid "Post to Twitter"
1847
+ msgstr "Publicar a Twitter"
1848
+
1849
+ #: pro/app/helpers/PlpPostsHelper.php:131
1850
+ msgid ""
1851
+ "A Pretty Link hasn't been generated for this entry yet. Click \"Update Post\" "
1852
+ "to generate."
1853
+ msgstr ""
1854
+ "Un Pretty Link no ha sido generado aún para esta entrada. Haga clic en "
1855
+ "\"Actualizar Post\" para generar."
1856
+
1857
+ #: pro/app/helpers/PlpTwitterHelper.php:33
1858
+ msgid "Tweet"
1859
+ msgstr "Tweet"
1860
+
1861
+ #: pro/app/models/PlpOptions.php:164
1862
+ msgid "Facebook"
1863
+ msgstr "Facebook"
1864
+
1865
+ #: pro/app/models/PlpOptions.php:171 pro/app/views/options/nav.php:5
1866
+ msgid "Twitter"
1867
+ msgstr "Twitter"
1868
+
1869
+ #: pro/app/models/PlpOptions.php:178
1870
+ msgid "Google+"
1871
+ msgstr "Google+"
1872
+
1873
+ #: pro/app/models/PlpOptions.php:185
1874
+ msgid "Pinterest"
1875
+ msgstr "Pinterest"
1876
+
1877
+ #: pro/app/models/PlpOptions.php:192
1878
+ msgid "LinkedIn"
1879
+ msgstr "LinkedIn"
1880
+
1881
+ #: pro/app/models/PlpOptions.php:199
1882
+ msgid "Reddit"
1883
+ msgstr "Reddit"
1884
+
1885
+ #: pro/app/models/PlpOptions.php:206
1886
+ msgid "StumbleUpon"
1887
+ msgstr "StumbleUpon"
1888
+
1889
+ #: pro/app/models/PlpOptions.php:213
1890
+ msgid "Digg"
1891
+ msgstr "Digg"
1892
+
1893
+ #: pro/app/models/PlpOptions.php:220
1894
+ msgid "Email"
1895
+ msgstr "Email"
1896
+
1897
+ #: pro/app/models/PlpPostOptions.php:45
1898
+ msgid "This pretty link slug is already taken, please choose a different one"
1899
+ msgstr "Esta Pretty Link slug ya está tomada, por favor, elija uno diferente"
1900
+
1901
+ #: pro/app/models/PlpReport.php:149
1902
+ msgid "Report must have a name."
1903
+ msgstr "Informe debe tener un nombre."
1904
+
1905
+ #: pro/app/models/PlpReport.php:153
1906
+ msgid "At least one link must be selected for analysis."
1907
+ msgstr "Debe seleccionar al menos un enlace para el análisis."
1908
+
1909
+ #: pro/app/models/PlpReport.php:244
1910
+ msgid "Pretty Link Pro: Clicks for"
1911
+ msgstr "Pretty Link Pro: Clics para"
1912
+
1913
+ #: pro/app/models/PlpReport.php:244
1914
+ msgid "report between"
1915
+ msgstr "Informe entre"
1916
+
1917
+ #: pro/app/models/PlpReport.php:251 pro/app/models/PlpReport.php:397
1918
+ #: pro/app/views/reports/custom-report.php:34
1919
+ #: pro/app/views/reports/custom-report.php:67
1920
+ #: pro/app/views/reports/split-test-report.php:34
1921
+ #: pro/app/views/reports/split-test-report.php:67
1922
+ msgid "Conversions"
1923
+ msgstr "Conversiones"
1924
+
1925
+ #: pro/app/models/PlpReport.php:385
1926
+ msgid "Pretty Link Pro: Split Report for"
1927
+ msgstr "Pretty Link Pro: Split informe para"
1928
+
1929
+ #: pro/app/models/PlpReport.php:397 pro/app/models/PlpReport.php:404
1930
+ #: pro/app/views/links/form.php:74
1931
+ msgid "Rotation"
1932
+ msgstr "Rotación"
1933
+
1934
+ #: pro/app/models/PlpUtils.php:36
1935
+ msgid "Google Analyticator"
1936
+ msgstr "Google Analyticator"
1937
+
1938
+ #: pro/app/models/PlpUtils.php:39
1939
+ msgid "Google Analytics for WordPress"
1940
+ msgstr "Google Analytics para WordPress"
1941
+
1942
+ #: pro/app/views/import-export/form.php:4
1943
+ msgid "Import / Export Links"
1944
+ msgstr "Importar / Exportar Enlaces"
1945
+
1946
+ #: pro/app/views/import-export/form.php:6
1947
+ msgid "Export Pretty Links"
1948
+ msgstr "Exportar Pretty Links"
1949
+
1950
+ #: pro/app/views/import-export/form.php:7
1951
+ msgid "Export"
1952
+ msgstr "Exportar"
1953
+
1954
+ #: pro/app/views/import-export/form.php:8
1955
+ msgid "Export Links into a CSV File"
1956
+ msgstr "Exportar Enlaces a un archivo CSV"
1957
+
1958
+ #: pro/app/views/import-export/form.php:10
1959
+ msgid "Import Pretty Links"
1960
+ msgstr "Importar Pretty Links"
1961
+
1962
+ #: pro/app/views/import-export/form.php:15
1963
+ msgid "Choose a file to import:"
1964
+ msgstr "Seleccione un archivo para importar:"
1965
+
1966
+ #: pro/app/views/import-export/form.php:16
1967
+ msgid "Select a file that has been formatted as a Pretty Link CSV import file."
1968
+ msgstr ""
1969
+ "Seleccione un archivo que ha sido formateado como un archivo de importación de "
1970
+ "CSV de Pretty Link."
1971
+
1972
+ #: pro/app/views/import-export/form.php:17
1973
+ msgid "Import File"
1974
+ msgstr "Importar Archivo"
1975
+
1976
+ #: pro/app/views/import-export/form.php:20
1977
+ msgid ""
1978
+ "Note: There are two ways to import a file. 1) Importing to update existing "
1979
+ "links and 2) Importing to generate new links. When Importing to generate new "
1980
+ "links, you must delte the \"id\" column from the CSV before importing. If the "
1981
+ "\"id\" column is present, Pretty Link Pro will attempt to update existing links."
1982
+ msgstr ""
1983
+ "Nota: Hay dos formas para importar un archivo. 1) Importar para actualizar y 2) "
1984
+ "Importar para generar nuevos enlaces. Al importar para generar nuevos enlaces, "
1985
+ "debe borrar la columna \"id\" de la CSV antes de importar. Si la columna \"id\" "
1986
+ "está presente, Pretty Link Pro intentará actualizar enlaces existentes."
1987
+
1988
+ #: pro/app/views/import-export/import.php:4
1989
+ msgid "Import Results"
1990
+ msgstr "Importar Resultados"
1991
+
1992
+ #: pro/app/views/import-export/import.php:5
1993
+ msgid "Total Rows:"
1994
+ msgstr "Filas Totales:"
1995
+
1996
+ #: pro/app/views/import-export/import.php:7
1997
+ msgid "Pretty Links were Successfully Created"
1998
+ msgstr "Pretty Lins fueron creados con éxito"
1999
+
2000
+ #: pro/app/views/import-export/import.php:8
2001
+ msgid "Pretty Links were Successfully Updated"
2002
+ msgstr "Pretty Links fueron actualizados correctamente"
2003
+
2004
+ #: pro/app/views/import-export/import.php:13
2005
+ msgid "Pretty Links were unable to be Created:"
2006
+ msgstr "Pretty Links fueron incapaces para ser creados:"
2007
+
2008
+ #: pro/app/views/import-export/import.php:17
2009
+ msgid "Error(s) for Pretty Link with Slug:"
2010
+ msgstr "Error(es) por Pretty Libk con slug:"
2011
+
2012
+ #: pro/app/views/import-export/import.php:32
2013
+ msgid "Pretty Links were unable to be Updated:"
2014
+ msgstr "Pretty Links no pudieron actualizarse:"
2015
+
2016
+ #: pro/app/views/import-export/import.php:36
2017
+ msgid "Error(s) for Pretty Link with id:"
2018
+ msgstr "Error(es) por el Pretty Link con id:"
2019
+
2020
+ #: pro/app/views/links/bulk-edit.php:6
2021
+ msgid "Advanced Link Options"
2022
+ msgstr "Opciones Avanzados de Enlace"
2023
+
2024
+ #: pro/app/views/links/bulk-edit.php:7 pro/app/views/links/form.php:7
2025
+ #: pro/app/views/links/form.php:10
2026
+ msgid "Double Redirect"
2027
+ msgstr "Doble Redirección"
2028
+
2029
+ #: pro/app/views/links/cloaked-redirect.php:20
2030
+ msgid "Your browser does not support frames."
2031
+ msgstr "Su navegador no soporta frames."
2032
+
2033
+ #: pro/app/views/links/form.php:11
2034
+ msgid ""
2035
+ "When this option is checked the Pretty Link will redirect twice. Use a double "
2036
+ "redirect to replace original referrer information."
2037
+ msgstr ""
2038
+ "Cuando esta opción está marcada el Pretty Link redireccionará dos veces. "
2039
+ "Utilize una doble redirección para reemplazar información referente original."
2040
+
2041
+ #: pro/app/views/links/form.php:25
2042
+ msgid "Auto-Replace Keywords"
2043
+ msgstr "Reemplazar automáticamente palabras clave"
2044
+
2045
+ #: pro/app/views/links/form.php:26
2046
+ msgid ""
2047
+ "Enter a comma separated list of keywords / keyword phrases that you'd like to "
2048
+ "replace with this link in your Posts &amp; Pages."
2049
+ msgstr ""
2050
+ "Ponga una lista separada por comas de palabras clave / frases de palabras clave "
2051
+ "que desea reemplazar con este enlace en sus publicaciones &amp; páginas."
2052
+
2053
+ #: pro/app/views/links/form.php:34
2054
+ msgid "URL Replacements"
2055
+ msgstr "Reemplazos de URL"
2056
+
2057
+ #: pro/app/views/links/form.php:37
2058
+ msgid "Auto-Replace URLs"
2059
+ msgstr "Auto-reemplazar URLs"
2060
+
2061
+ #: pro/app/views/links/form.php:38
2062
+ msgid ""
2063
+ "Enter a comma separated list of the URLs that you'd like to replace with this "
2064
+ "Pretty Link in your Posts &amp; Pages. These must be formatted as URLs for "
2065
+ "example: <code>http://example.com</code> or <code>http://example.com?"
2066
+ "product_id=53</code>"
2067
+ msgstr ""
2068
+ "Ponga una lista separada por comas de las direcciones URL que desea reemplazar "
2069
+ "con este Pretty Link en sus publicaciones &amp; páginas. Estos deben ser "
2070
+ "formateados como URL por ejemplo: <code>http://example.com</code> o "
2071
+ "<code>http://example.com?product_id=53</code>"
2072
+
2073
+ #: pro/app/views/links/form.php:48 pro/app/views/links/form.php:51
2074
+ msgid "Head Scripts"
2075
+ msgstr "Head Scripts"
2076
+
2077
+ #: pro/app/views/links/form.php:52
2078
+ msgid ""
2079
+ "Useful for adding Google Analytics tracking, Facebook retargeting pixels, or "
2080
+ "any other kind of tracking script to the HTML head for this pretty link.<br/"
2081
+ "><br/>These scripts will be in addition to any global one's you've defined in "
2082
+ "the options.<br/><br/><b>NOTE:</b> This does NOT work with 301 and 307 type "
2083
+ "redirects."
2084
+ msgstr ""
2085
+ "Útil para agregar Google Analytics seguimiento, píxeles retargeting de Facebook "
2086
+ "o cualquier otro tipo de script de seguimiento a la cabeza HTML para este "
2087
+ "bonito enlace.<br/><br/>Estos scripts serán además de cualquier globales que "
2088
+ "usted ha definido en las opciones.<br/><br/><b>Nota:</b> Esto NO funciona con "
2089
+ "redirecciones tipo 301 y 307."
2090
+
2091
+ #: pro/app/views/links/form.php:64
2092
+ msgid "Dynamic Redirection"
2093
+ msgstr "Redirección Dinámica"
2094
+
2095
+ #: pro/app/views/links/form.php:67
2096
+ msgid "Dynamic Redirection Options"
2097
+ msgstr "Opciones de Redirección Dinámico"
2098
+
2099
+ #: pro/app/views/links/form.php:68
2100
+ msgid ""
2101
+ "These powerful options are available to give you dynamic control over "
2102
+ "redirection for this pretty link."
2103
+ msgstr ""
2104
+ "Estas potentes opciones están disponibles para darle control dinámico con "
2105
+ "redirección para este pretty link."
2106
+
2107
+ #: pro/app/views/links/form.php:75
2108
+ msgid "Geolocation"
2109
+ msgstr "Geolocalización"
2110
+
2111
+ #: pro/app/views/links/form.php:85 pro/app/views/links/form.php:88
2112
+ msgid "Target URL Rotations"
2113
+ msgstr "Rotaciones de URL de Destino"
2114
+
2115
+ #: pro/app/views/links/form.php:89
2116
+ msgid ""
2117
+ "Enter the Target URLs that you'd like to rotate through when this Pretty Link "
2118
+ "is Clicked. These must be formatted as URLs example: <code>http://example.com</"
2119
+ "code> or <code>http://example.com?product_id=53</code>"
2120
+ msgstr ""
2121
+ "Introduzca las URLs de destino que desea rotar mientras se hace clic en este "
2122
+ "Pretty Link. Estos deben ser formateados como URLs. Por ejemplo: <code>http://"
2123
+ "example.com</code> o <code>http://example.com?product_id=53</code>"
2124
+
2125
+ #: pro/app/views/links/form.php:94
2126
+ msgid "Target URL (above)"
2127
+ msgstr "Dirección URL de Destino (arriba)"
2128
+
2129
+ #: pro/app/views/links/form.php:106
2130
+ msgid "Add Link Rotation"
2131
+ msgstr "Añadir Enlace de Rotación"
2132
+
2133
+ #: pro/app/views/links/form.php:111
2134
+ msgid "Split Test"
2135
+ msgstr "Split Prueba "
2136
+
2137
+ #: pro/app/views/links/form.php:114
2138
+ msgid "Split Test This Link"
2139
+ msgstr "Prueba Split de este enlace"
2140
+
2141
+ #: pro/app/views/links/form.php:115
2142
+ msgid ""
2143
+ "Split testing will enable you to track the effectiveness of several links "
2144
+ "against each other. This works best when you have multiple link rotation URLs "
2145
+ "entered."
2146
+ msgstr ""
2147
+ "Split pruebas permitirá hacer un seguimiento de la efectividad de varios "
2148
+ "enlaces entre ellos. Esto funciona mejor cuando tiene varias URLs de rotación "
2149
+ "de enlace entrados."
2150
+
2151
+ #: pro/app/views/links/form.php:129 pro/app/views/reports/list.php:33
2152
+ #: pro/app/views/reports/list.php:76
2153
+ msgid "Goal Link"
2154
+ msgstr "Enlace Meta"
2155
+
2156
+ #: pro/app/views/links/form.php:132
2157
+ msgid "Goal Link for Split Test"
2158
+ msgstr "Enlace Meta para la Split Prueba "
2159
+
2160
+ #: pro/app/views/links/form.php:133
2161
+ msgid "This is the goal link for your split test."
2162
+ msgstr "Este es el enlace meta para la prueba de split."
2163
+
2164
+ #: pro/app/views/links/form.php:144
2165
+ msgid "id: %1$s | slug: %3$s | name: %2$s%4$s"
2166
+ msgstr "ID: %1$s | Slug: %3$s | Nombre: %2$s%4$s"
2167
+
2168
+ #: pro/app/views/links/form.php:163 pro/app/views/links/form.php:166
2169
+ msgid "Geographic Redirects"
2170
+ msgstr "Redirecciones Geográficas "
2171
+
2172
+ #: pro/app/views/links/form.php:167
2173
+ msgid ""
2174
+ "This will enable you to setup specific target urls that this pretty link will "
2175
+ "redirect to based on the country of the person visiting the url."
2176
+ msgstr ""
2177
+ "Esto le permitirá configurar las urls específicos que este prett link "
2178
+ "redirigirá a según el país de la persona visitando la url."
2179
+
2180
+ #: pro/app/views/links/form.php:172
2181
+ msgid "Add"
2182
+ msgstr "Añadir"
2183
+
2184
+ #: pro/app/views/links/geo_row.php:12
2185
+ msgid "Countries:"
2186
+ msgstr "Países:"
2187
+
2188
+ #: pro/app/views/links/geo_row.php:20
2189
+ msgid "URL:"
2190
+ msgstr "URL:"
2191
+
2192
+ #: pro/app/views/links/geo_row.php:28
2193
+ msgid "Remove"
2194
+ msgstr "Eliminar"
2195
+
2196
+ #: pro/app/views/links/link-options.php:3 pro/app/views/links/link-options.php:5
2197
+ msgid "Base Slug Prefix"
2198
+ msgstr "Prefijo de Slug Base"
2199
+
2200
+ #: pro/app/views/links/link-options.php:6
2201
+ msgid ""
2202
+ "Use this to prefix all newly generated pretty links with a directory of your "
2203
+ "choice. For example set to <b>out</b> to make your pretty links look like "
2204
+ "http://site.com/<b>out</b>/xyz. Changing this option will NOT affect existing "
2205
+ "pretty links. If you do not wish to use a directory prefix, leave this text "
2206
+ "field blank. Whatever you type here will be sanitized and modified to ensure it "
2207
+ "is URL-safe. So <b>Hello World</b> might get changed to something like <b>hello-"
2208
+ "world</b> instead. Lowercase letters, numbers, dashes, and underscores are "
2209
+ "allowed."
2210
+ msgstr ""
2211
+ "Use este prefijo por todos los nuevamente generados pretty links con un "
2212
+ "directorio que usted desea. Por ejemplo fijelo a <b>saliendo</b> para que sus "
2213
+ "pretty links sean como http://sitiocom/<b>saliendo</b>/xyz. Cambiando este "
2214
+ "opción NO afectará sus pretty links que ya tiene. Si no quiere usar un "
2215
+ "directorio prefijo, deje este campo en blanco. Cualquier cosa que ponga aquí "
2216
+ "será modificado para asegurar que es URL-seguro. Entonces <b>Hola Mundo</b> "
2217
+ "podría ser cambiado a algo como <b>hola-mundo</b>. Letras minúsculas, guiones, "
2218
+ "y guiones bajos no estan permetidos."
2219
+
2220
+ #: pro/app/views/links/link-options.php:16 pro/app/views/links/link-options.php:18
2221
+ msgid "Slug Character Count"
2222
+ msgstr "Cuenta de Caracteres de Slug"
2223
+
2224
+ #: pro/app/views/links/link-options.php:19
2225
+ msgid ""
2226
+ "The number of characters to use when auto-generating a random slug for pretty "
2227
+ "links. The default is 4. You cannot use less than 2."
2228
+ msgstr ""
2229
+ "El número de caracteres para utilizar al auto-generar una slug por pretty "
2230
+ "links. El valor predeterminado es 4. no se puede usar menos de 2."
2231
+
2232
+ #: pro/app/views/links/link-options.php:29 pro/app/views/links/link-options.php:30
2233
+ msgid "Enable Google Analytics"
2234
+ msgstr "Activar Google Analytics:"
2235
+
2236
+ #: pro/app/views/links/link-options.php:31
2237
+ msgid ""
2238
+ "Requires Google Analyticator, Google Analytics for WordPress (by Yoast), or the "
2239
+ "Google Analytics Plugin to be installed and configured on your site."
2240
+ msgstr ""
2241
+ "Se requiere Google Analyticator, Google Analytics por WordPress (hecho por "
2242
+ "Yoast) o el Google Analytics Plugin que esta instalado y configurado en su "
2243
+ "sitio."
2244
+
2245
+ #: pro/app/views/links/link-options.php:41
2246
+ msgid "Enable %sQR Codes%s"
2247
+ msgstr "Activar %sCódigos QR%s"
2248
+
2249
+ #: pro/app/views/links/link-options.php:43
2250
+ msgid "Generate QR Codes"
2251
+ msgstr "Generar Códigos QR"
2252
+
2253
+ #: pro/app/views/links/link-options.php:44
2254
+ msgid ""
2255
+ "This will enable a link in your pretty link admin that will allow you to "
2256
+ "automatically download a QR Code for each individual Pretty Link."
2257
+ msgstr ""
2258
+ "Esto permitirá un enlace en su admin de Pretty Link que le permitirá descargar "
2259
+ "de forma automática un código QR para cada Pretty Link."
2260
+
2261
+ #: pro/app/views/links/link-options.php:54 pro/app/views/links/link-options.php:56
2262
+ msgid "Global Head Scripts"
2263
+ msgstr "Global Head Scripts"
2264
+
2265
+ #: pro/app/views/links/link-options.php:57
2266
+ msgid ""
2267
+ "Useful for adding Google Analytics tracking, Facebook retargeting pixels, or "
2268
+ "any other kind of tracking script to the HTML head.<br/><br/>What you enter in "
2269
+ "this box will be applied to all supported pretty links.<br/><br/><b>NOTE:</b> "
2270
+ "This does NOT work with 301 and 307 type redirects."
2271
+ msgstr ""
2272
+ "Útil para agregar Google Analytics seguimiento, píxeles retargeting de Facebook "
2273
+ "o cualquier otro tipo de script de seguimiento a la cabeza HTML.<br/><br/>Lo "
2274
+ "que introduzca en esta casilla se aplicará a todos los enlaces compatibles.<br/"
2275
+ "><br/><b>NOTA:</b> Esto NO funciona con redirecciones tipo 301 y 307."
2276
+
2277
+ #: pro/app/views/links/prettybar.php:172
2278
+ msgid "Share on Twitter"
2279
+ msgstr "Compartir en Twitter"
2280
+
2281
+ #: pro/app/views/options/autocreate.php:7
2282
+ msgid "%s Shortlinks"
2283
+ msgstr "%s Shortlinks"
2284
+
2285
+ #: pro/app/views/options/autocreate.php:10
2286
+ msgid "Create Pretty Links for %s"
2287
+ msgstr "Crear Pretty Links para %s"
2288
+
2289
+ #: pro/app/views/options/autocreate.php:11
2290
+ msgid "Automatically Create a Pretty Link for each of your published %s"
2291
+ msgstr ""
2292
+ "Crear automáticamente un Pretty Link para cada uno de su publicaciones de %s."
2293
+
2294
+ #: pro/app/views/options/autocreate.php:33
2295
+ msgid "%s Auto Link Group"
2296
+ msgstr "%s Auto Enlace Grupo"
2297
+
2298
+ #: pro/app/views/options/autocreate.php:34
2299
+ msgid "Group that Pretty Links for %s will be automatically added to."
2300
+ msgstr "Grupo que Pretty Links por %s serán agregados automáticamente."
2301
+
2302
+ #: pro/app/views/options/autocreate.php:47
2303
+ msgid "Show Tweet Badge"
2304
+ msgstr "Mostrar Tweet Insignia"
2305
+
2306
+ #: pro/app/views/options/autocreate.php:50
2307
+ msgid "Show Tweet Badge on %s"
2308
+ msgstr "Mostrar Tweet insignia en %s"
2309
+
2310
+ #: pro/app/views/options/autocreate.php:51
2311
+ msgid ""
2312
+ "If this button is checked then you'll have the ability to include a twitter "
2313
+ "badge on your %s."
2314
+ msgstr ""
2315
+ "Si este botón está activado entonces tendrás la habilidad de incluir una "
2316
+ "insignia de twitter en su %s."
2317
+
2318
+ #: pro/app/views/options/autocreate.php:63
2319
+ msgid "Show Social Buttons"
2320
+ msgstr "Mostrar Botones Sociales"
2321
+
2322
+ #: pro/app/views/options/autocreate.php:66
2323
+ msgid "Show Social Buttons on %s"
2324
+ msgstr "Mostrar Botones Sociales en %s"
2325
+
2326
+ #: pro/app/views/options/autocreate.php:67
2327
+ msgid ""
2328
+ "If this button is checked then you'll have the ability to include a social "
2329
+ "buttons bar on your %s."
2330
+ msgstr ""
2331
+ "Si este botón está activado entonces tendrá la habilidad de incluir una barra "
2332
+ "de botones sociales en su %s."
2333
+
2334
+ #: pro/app/views/options/autocreate.php:82
2335
+ msgid "Automatically post to Twitter when a %s is published"
2336
+ msgstr "Publicar automáticamente en Twitter cuando se publica un %s"
2337
+
2338
+ #: pro/app/views/options/autocreate.php:83
2339
+ msgid ""
2340
+ "If this button is checked then you'll have the ability to automatically post to "
2341
+ "Twitter when you publish a %s."
2342
+ msgstr ""
2343
+ "Si este botón está activado entonces tendrá la posibilidad de publicar "
2344
+ "automáticamente en Twitter cuando se publica un %s."
2345
+
2346
+ #: pro/app/views/options/form.php:4
2347
+ msgid "Keyword &amp; URL Auto Replacements Options"
2348
+ msgstr "Palabras Clave y Opciones de Reemplazos de URL Automáticas"
2349
+
2350
+ #: pro/app/views/options/form.php:13
2351
+ msgid "Enable Replacements"
2352
+ msgstr "Activar Reemplazos"
2353
+
2354
+ #: pro/app/views/options/form.php:15
2355
+ msgid "Enable Keyword and URL Auto Replacement"
2356
+ msgstr "Activar Palabras Clave y URL Auto Reemplazos"
2357
+
2358
+ #: pro/app/views/options/form.php:16
2359
+ msgid ""
2360
+ "If checked, this will enable you to automatically replace keywords and/or URLs "
2361
+ "on your blog with pretty links. You will specify the specific keywords and urls "
2362
+ "from your Pretty Link edit page."
2363
+ msgstr ""
2364
+ "Si está marcada, esto le permitirá a reemplazar automáticamente palabras clave "
2365
+ "y/o URLs en su blog con pretty links. Se especificará las palabras clave "
2366
+ "específicas y los URLs de su Pretty Link página para editar."
2367
+
2368
+ #: pro/app/views/options/form.php:34
2369
+ msgid "Thresholds"
2370
+ msgstr "Límites"
2371
+
2372
+ #: pro/app/views/options/form.php:36
2373
+ msgid "Set Keyword Replacement Thresholds"
2374
+ msgstr "Establecer límites de reemplazo de palabras clave"
2375
+
2376
+ #: pro/app/views/options/form.php:37
2377
+ msgid ""
2378
+ "Don't want to have too many keyword replacements per page? Select to set some "
2379
+ "reasonable keyword replacement thresholds."
2380
+ msgstr ""
2381
+ "¿No quiere tener muchos reemplazos de palabras clave por página? Seleccione "
2382
+ "establecer algunos límites razonables por palabras clave de reemplazo."
2383
+
2384
+ #: pro/app/views/options/form.php:54
2385
+ msgid "Max Keywords"
2386
+ msgstr "Máximo de Palabras Clave "
2387
+
2388
+ #: pro/app/views/options/form.php:56
2389
+ msgid "Set Maximum Keywords per Page"
2390
+ msgstr "Establecer palabras clave máximo por página"
2391
+
2392
+ #: pro/app/views/options/form.php:57
2393
+ msgid ""
2394
+ "Maximum number of unique keyword / keyphrases you can replace with Pretty Links "
2395
+ "per page."
2396
+ msgstr ""
2397
+ "Número máximo de palabras clave única / palabras clave que usted puede "
2398
+ "reemplazar con Pretty Links por página."
2399
+
2400
+ #: pro/app/views/options/form.php:68
2401
+ msgid "Max Replacements"
2402
+ msgstr "Máximo Reemplazos"
2403
+
2404
+ #: pro/app/views/options/form.php:70
2405
+ msgid "Set Maximum Replacements per Keyword"
2406
+ msgstr "Establecer reemplazos máximos por palabras clave"
2407
+
2408
+ #: pro/app/views/options/form.php:71
2409
+ msgid "Maximum number of Pretty Link replacements per Keyword / Keyphrase."
2410
+ msgstr ""
2411
+ "Número máximo de sustitutos de Pretty Link por palabras clave / frases clave."
2412
+
2413
+ #: pro/app/views/options/form.php:87
2414
+ msgid "Open in New Window"
2415
+ msgstr "Abrir en nueva ventana"
2416
+
2417
+ #: pro/app/views/options/form.php:89
2418
+ msgid "Open Keyword Replacement Links in New Window"
2419
+ msgstr "Abrir Palabras Clave Reemplazo Enlaces en una nueva ventana"
2420
+
2421
+ #: pro/app/views/options/form.php:90
2422
+ msgid ""
2423
+ "Ensure that these keyword replacement links are opened in a separate window. "
2424
+ "<strong>Note:</strong> This does not apply to url replacements--only keyword "
2425
+ "replacements."
2426
+ msgstr ""
2427
+ "Garantizar que estos enlaces de sustitución de palabras clave se abren en una "
2428
+ "ventana independiente. <strong>Nota:</strong> Esto no se aplica a los "
2429
+ "reemplazos de url--solo reemplazos de palabras clave."
2430
+
2431
+ #: pro/app/views/options/form.php:101
2432
+ msgid "Add No Follows"
2433
+ msgstr "Añadir No Follows"
2434
+
2435
+ #: pro/app/views/options/form.php:103
2436
+ msgid "Add 'nofollow' attribute to all Keyword Pretty Links"
2437
+ msgstr "Añadir el atributo 'nofollow' a todos Pretty Links de palabras clave "
2438
+
2439
+ #: pro/app/views/options/form.php:104
2440
+ msgid ""
2441
+ "This adds the html <code>NOFOLLOW</code> attribute to all keyword replacement "
2442
+ "links. <strong>Note:</strong> This does not apply to url replacements--only "
2443
+ "keyword replacements."
2444
+ msgstr ""
2445
+ "Esto añade el html <code>NOFOLLOW</code> atributo a todos los enlaces de "
2446
+ "palabra clave reemplazo. <strong>Nota:</strong> Esto no se aplica a los "
2447
+ "reemplazos de url--solo reemplazos de palabras clave."
2448
+
2449
+ #: pro/app/views/options/form.php:115
2450
+ msgid "Custom CSS"
2451
+ msgstr "CSS Personalizado"
2452
+
2453
+ #: pro/app/views/options/form.php:117
2454
+ msgid "Add custom CSS to your keyword replacement links"
2455
+ msgstr "Añadir CSS personalizado a sus enlaces de reemplazo de palabras clave"
2456
+
2457
+ #: pro/app/views/options/form.php:118
2458
+ msgid ""
2459
+ "Add some custom formatting to your keyword pretty link replacements. "
2460
+ "<strong>Note:</strong> This does not apply to url replacements--only keyword "
2461
+ "replacements."
2462
+ msgstr ""
2463
+ "Agregar un formato personalizado a sus pretty link reemplazos de palabras "
2464
+ "clave. <strong>Nota:</strong> Esto no se aplica a los reemplazos de url--solo "
2465
+ "reemplazos de palabras clave."
2466
+
2467
+ #: pro/app/views/options/form.php:129
2468
+ msgid "Custom Hover CSS"
2469
+ msgstr "Hover CSS Personalizado"
2470
+
2471
+ #: pro/app/views/options/form.php:131
2472
+ msgid "Add custom hover CSS to your keyword replacement links"
2473
+ msgstr ""
2474
+ "Añadir hover CSS personalizado a sus enlaces de reemplazo de palabras clave"
2475
+
2476
+ #: pro/app/views/options/form.php:132
2477
+ msgid ""
2478
+ "Add some custom formatting to the hover attribute of your keyword pretty links. "
2479
+ "<strong>Note:</strong> This does not apply to url replacements--only keyword "
2480
+ "replacements."
2481
+ msgstr ""
2482
+ "Agregar un formato personalizado al atributo hover de sus palabras clave pretty "
2483
+ "links. <strong>Nota:</strong> Esto no se aplica a los reemplazos de url--solo "
2484
+ "reemplazos de palabras clave."
2485
+
2486
+ #: pro/app/views/options/form.php:143
2487
+ msgid "Replace All URLs"
2488
+ msgstr "Reemplazar todas las URLs"
2489
+
2490
+ #: pro/app/views/options/form.php:145
2491
+ msgid "Replace All non-Pretty Link URLs With Pretty Link URLs"
2492
+ msgstr "Reemplazar todos enlaces que no son Pretty Links URL con Pretty Link URLs"
2493
+
2494
+ #: pro/app/views/options/form.php:146
2495
+ msgid ""
2496
+ "This feature will take each url it finds and create or use an existing pretty "
2497
+ "link pointing to the url and replace it with the pretty link."
2498
+ msgstr ""
2499
+ "Esta característica tomará cada url que encuentre y crear o utilizar un pretty "
2500
+ "link existente apuntando a la url y reemplazarlo con el pretty link."
2501
+
2502
+ #: pro/app/views/options/form.php:163
2503
+ msgid "Domain Blacklist"
2504
+ msgstr "Lista Negra de Dominio"
2505
+
2506
+ #: pro/app/views/options/form.php:165
2507
+ msgid "Do not replace links from these domains"
2508
+ msgstr "No reemplace los enlaces de estos dominios"
2509
+
2510
+ #: pro/app/views/options/form.php:166
2511
+ msgid ""
2512
+ "Any links on your site which point to domains you define here will not be "
2513
+ "replaced automatically with Pretty Links. Place one domain per line.<br/><br/"
2514
+ ">You MUST enter http:// or https:// in front of the domain names and do NOT "
2515
+ "include any /'s or other text after the domain name.<br/><br/>Proper entry "
2516
+ "example:<br/><b>https://www.google.com</b><br/><b>http://mysite.org</b><br/><br/"
2517
+ ">Improperly entered domains will be removed upon saving the Options."
2518
+ msgstr ""
2519
+ "Los enlaces en su sitio que digiren a los dominios usted ha definido aquí no se "
2520
+ "reemplazarán automáticamente con Pretty Links. Coloque un dominio por línea.<br/"
2521
+ "><br/>Tiene que entrar en http:// o https:// delante de los nombres de dominio "
2522
+ "y NO incluyen ningún /'s u otro texto después del nombre de dominio.<br/><br/"
2523
+ ">Ejemplo de entrada correcta:<br/><b>https://www.google.com</b><br/><b>http://"
2524
+ "mysite.org</b><br/><br/>Dominios mal ingresados se eliminarán en las opciones "
2525
+ "al guardarlas."
2526
+
2527
+ #: pro/app/views/options/form.php:182
2528
+ msgid "Replace in Comments"
2529
+ msgstr "Reemplazar en los Comentarios"
2530
+
2531
+ #: pro/app/views/options/form.php:184
2532
+ msgid "Replace Keywords and URLs in Comments"
2533
+ msgstr "Reemplazar palabras clave y URLs en los comentarios"
2534
+
2535
+ #: pro/app/views/options/form.php:185
2536
+ msgid ""
2537
+ "This option will enable the keyword / URL replacement routine to run in "
2538
+ "Comments."
2539
+ msgstr ""
2540
+ "Esta opción le permitirá la palabra clave / rutina reemplazo de URL estar en "
2541
+ "los comentarios."
2542
+
2543
+ #: pro/app/views/options/form.php:196
2544
+ msgid "Replace in Feeds"
2545
+ msgstr "Reemplazar en los Feeds"
2546
+
2547
+ #: pro/app/views/options/form.php:198
2548
+ msgid "Replace Keywords and URLs in Feeds"
2549
+ msgstr "Reemplazar palabras clave y URL de los Feeds"
2550
+
2551
+ #: pro/app/views/options/form.php:199
2552
+ msgid ""
2553
+ "This option will enable the keyword / URL replacement routine to run in RSS "
2554
+ "Feeds.<br/><strong>Note:</strong> This option can slow the load speed of your "
2555
+ "RSS feed -- unless used in conjunction with a caching plugin like W3 Total "
2556
+ "Cache or WP Super Cache.<br/><strong>Note #2</strong> This option will only "
2557
+ "work if you have \"Full Text\" selected in your General WordPress Reading "
2558
+ "settings.<br/><strong>Note #3:</strong> If this option is used along with "
2559
+ "\"Replace Keywords and URLs in Comments\" then your post comment feeds will "
2560
+ "have keywords replaced in them as well."
2561
+ msgstr ""
2562
+ "Este opción activará las palabras clave / rutina reemplazo de URL estar en los "
2563
+ "RSS Feeds. <br/><strong>Nota:</strong> Este opción puede largar el tiempo que "
2564
+ "se necesita para cargar su RSS fee -- a menos que esta usado junto con un "
2565
+ "plugin de caching como W3 Total Cache o WP Super Cache. <br/><strong>Nota 2:</"
2566
+ "strong> Este opción solamente funcionará si tiene \"Texto Completo\" "
2567
+ "selecionado en sus Ajustes Generals de Lectura de WordPress. <br/><strong>Nota "
2568
+ "#3:</strong> Si esee opción es usado junto con \"Reemplazar Palabras Clave y "
2569
+ "URLs en los Comentarios\" los comentarios en sus feeds de publicaciones tendrán "
2570
+ "palabras claves reemplazados también."
2571
+
2572
+ #: pro/app/views/options/form.php:213
2573
+ msgid "Auto-Create Shortlink Options"
2574
+ msgstr "Opciones de Automáticamente Crear Shortlink"
2575
+
2576
+ #: pro/app/views/options/form.php:238
2577
+ msgid "Twitter Options"
2578
+ msgstr "Opciones de Twitter"
2579
+
2580
+ #: pro/app/views/options/form.php:244
2581
+ msgid "Accounts"
2582
+ msgstr "Cuentas"
2583
+
2584
+ #: pro/app/views/options/form.php:246
2585
+ msgid "Authenticated Twitter Accounts"
2586
+ msgstr "Cuentas de Twitter Autenticado"
2587
+
2588
+ #: pro/app/views/options/form.php:247
2589
+ msgid ""
2590
+ "You can authenticate one or more Twitter accounts here.<br/><br/><strong>Note:</"
2591
+ "strong> To add multiple twitter accounts you must make sure you are logged out "
2592
+ "of the previous twitter account before adding another."
2593
+ msgstr ""
2594
+ "Puede autenticar una o más cuentas de Twitter aquí.<br/><br/><strong>Nota:</"
2595
+ "strong> Para agregar varias cuentas de twitter usted debe asegúrese de que "
2596
+ "usted no esta ingresado en la anterior cuenta de twitter antes de agregar otro."
2597
+
2598
+ #: pro/app/views/options/form.php:284
2599
+ msgid "Badge Placement"
2600
+ msgstr "Colocación de la Insignia"
2601
+
2602
+ #: pro/app/views/options/form.php:286
2603
+ msgid "Twitter Badge Placement"
2604
+ msgstr "Colocación de la Insignia de Twitter"
2605
+
2606
+ #: pro/app/views/options/form.php:287
2607
+ msgid ""
2608
+ "This determines where your Tweet Badges should appear in relation to content on "
2609
+ "Pages and/or Posts.<br/><br/><strong>Note:</strong> If you want your badges to "
2610
+ "appear then you must enable them by selecting Create Pretty Links for Posts/"
2611
+ "Pages and then selecting Show Tweet Badge on Posts/Pages in the options above."
2612
+ msgstr ""
2613
+ "Esto determina donde debe aparecer sus Tweet Insignias en relación con el "
2614
+ "contenido de páginas y/o publicaciones.<br/><br/><strong>Nota:</strong> Si "
2615
+ "desea que sus insignias aparecan tiene que permitirles por medio de seleccionar "
2616
+ "\"Crear Pretty Links para Páginas/Publicaciones\" y luego seleccionar \"Mostrar "
2617
+ "Tweet Insignias en Páginas/Publicaciones en las opciones anteriores."
2618
+
2619
+ #: pro/app/views/options/form.php:292 pro/app/views/options/form.php:627
2620
+ msgid "Top"
2621
+ msgstr "Superior"
2622
+
2623
+ #: pro/app/views/options/form.php:293
2624
+ msgid "Top Left with Text Wrap"
2625
+ msgstr "Superior izquierda con ceñir texto"
2626
+
2627
+ #: pro/app/views/options/form.php:294
2628
+ msgid "Top Right with Text Wrap"
2629
+ msgstr "Arriba a la derecha con ceñir texto"
2630
+
2631
+ #: pro/app/views/options/form.php:295 pro/app/views/options/form.php:628
2632
+ msgid "Bottom"
2633
+ msgstr "Inferior"
2634
+
2635
+ #: pro/app/views/options/form.php:298
2636
+ msgid "Twitter Badge Manual Placement"
2637
+ msgstr "Colocación Manual de la Insignia de Twitter"
2638
+
2639
+ #: pro/app/views/options/form.php:299
2640
+ msgid ""
2641
+ "If you select none, you can still show your Twitter badges by manually adding "
2642
+ "the <code>[tweetbadge]</code> shortcode to your blog posts or <code>&lt;?php "
2643
+ "the_tweetbadge(); ?&gt;</code> template tag to your WordPress Theme."
2644
+ msgstr ""
2645
+ "Si selecciona ninguno, todavía puede mostrar sus insignias de Twitter añadiendo "
2646
+ "manualmente el <code>[tweetbadge]</code> shortcode a sus publicaciones de blog "
2647
+ "o <code>&lt;?php the_tweetbadge(); ?&gt;</code> model de etiqueta a su tema de "
2648
+ "WordPress."
2649
+
2650
+ #: pro/app/views/options/form.php:306
2651
+ msgid "Badge in Feed"
2652
+ msgstr "Insignia en el Feed"
2653
+
2654
+ #: pro/app/views/options/form.php:308
2655
+ msgid "Show Twitter Badge in RSS Feed"
2656
+ msgstr "Mostrar Insignia de Twitter en RSS Feed"
2657
+
2658
+ #: pro/app/views/options/form.php:309
2659
+ msgid "When this option is checked, your RSS feed will contain a Twitter badge."
2660
+ msgstr ""
2661
+ "Cuando esta opción está marcada, RSS feed contiene una insignia de Twitter."
2662
+
2663
+ #: pro/app/views/options/form.php:320
2664
+ msgid "Signature"
2665
+ msgstr "Firma"
2666
+
2667
+ #: pro/app/views/options/form.php:322
2668
+ msgid "Twitter User Used to Sign Tweets"
2669
+ msgstr "Usuario de Twitter utilizado para firmar Tweets"
2670
+
2671
+ #: pro/app/views/options/form.php:323
2672
+ msgid ""
2673
+ "Modify this to determine what twitter user to send Tweet Button tweets from."
2674
+ msgstr ""
2675
+ "Cambie esto para determinar cual usuario de twitter enviará tweets de Tweet "
2676
+ "botón."
2677
+
2678
+ #: pro/app/views/options/form.php:334
2679
+ msgid "Hash Tags"
2680
+ msgstr "Hash Tags"
2681
+
2682
+ #: pro/app/views/options/form.php:336
2683
+ msgid "Tweet Hash Tags"
2684
+ msgstr "Tweet Hash Tags"
2685
+
2686
+ #: pro/app/views/options/form.php:337
2687
+ msgid "Modify this to customize your hash tag for your auto-tweets and re-tweets."
2688
+ msgstr ""
2689
+ "Modificar esto para personalizar su hash tag para sus auto-tweets y re-tweets."
2690
+
2691
+ #: pro/app/views/options/form.php:350
2692
+ msgid "Pretty Bar Options"
2693
+ msgstr "Opciones de Pretty Bar"
2694
+
2695
+ #: pro/app/views/options/form.php:356
2696
+ msgid "Image URL"
2697
+ msgstr "URL de la Imagen"
2698
+
2699
+ #: pro/app/views/options/form.php:358
2700
+ msgid "Pretty Bar Image URL"
2701
+ msgstr "Pretty Bar imagen URL"
2702
+
2703
+ #: pro/app/views/options/form.php:359
2704
+ msgid ""
2705
+ "If set, this will replace the logo image on the Pretty Bar. The image that this "
2706
+ "URL references should be 48x48 Pixels to fit."
2707
+ msgstr ""
2708
+ "Si establece, esto va a reemplazar la imagen logo en la Pretty Bar. La imagen "
2709
+ "que hace referencia a esta dirección URL debe ser 48x48 píxeles para funcionar."
2710
+
2711
+ #: pro/app/views/options/form.php:370
2712
+ msgid "Background Image URL"
2713
+ msgstr "URL de la Imagen de Fondo"
2714
+
2715
+ #: pro/app/views/options/form.php:372
2716
+ msgid "Pretty Bar Background Image URL"
2717
+ msgstr "URL de imagen de fondo de Pretty Bar"
2718
+
2719
+ #: pro/app/views/options/form.php:373
2720
+ msgid ""
2721
+ "If set, this will replace the background image on Pretty Bar. The image that "
2722
+ "this URL references should be 65px tall - this image will be repeated "
2723
+ "horizontally across the bar."
2724
+ msgstr ""
2725
+ "Si se establece, esto reemplazará la imagen de fondo en Pretty Bar. La imagen "
2726
+ "que hace referencia a esta dirección URL debe ser 65px alto - esta imagen se "
2727
+ "repetirá horizontalmente a través de la barra."
2728
+
2729
+ #: pro/app/views/options/form.php:384
2730
+ msgid "Background Color"
2731
+ msgstr "Color de Fondo"
2732
+
2733
+ #: pro/app/views/options/form.php:386
2734
+ msgid "Pretty Bar Background Color"
2735
+ msgstr "Color de Fondo de Pretty Bar"
2736
+
2737
+ #: pro/app/views/options/form.php:387
2738
+ msgid ""
2739
+ "This will alter the background color of the Pretty Bar if you haven't specified "
2740
+ "a Pretty Bar background image."
2741
+ msgstr ""
2742
+ "Esto alterará el color de fondo de la Pretty Bar si no has especificado a una "
2743
+ "imagen de fondo para la Pretty Bar."
2744
+
2745
+ #: pro/app/views/options/form.php:398
2746
+ msgid "Text Color"
2747
+ msgstr "Color del Texto"
2748
+
2749
+ #: pro/app/views/options/form.php:400
2750
+ msgid "Pretty Bar Text Color"
2751
+ msgstr "Color de Texto de Pretty Bar"
2752
+
2753
+ #: pro/app/views/options/form.php:401
2754
+ msgid ""
2755
+ "If not set, this defaults to black (RGB value <code>#000000</code>) but you can "
2756
+ "change it to whatever color you like."
2757
+ msgstr ""
2758
+ "Si no se establece, esto por defecto negro (valor RGB <code>#000000</code> ) "
2759
+ "pero se puede cambiar a cualquier color que le gusta."
2760
+
2761
+ #: pro/app/views/options/form.php:412
2762
+ msgid "Link Color"
2763
+ msgstr "Color de Enlace"
2764
+
2765
+ #: pro/app/views/options/form.php:414
2766
+ msgid "Pretty Bar Link Color"
2767
+ msgstr "Color de Enlace de Pretty Bar"
2768
+
2769
+ #: pro/app/views/options/form.php:415
2770
+ msgid ""
2771
+ "If not set, this defaults to blue (RGB value <code>#0000ee</code>) but you can "
2772
+ "change it to whatever color you like."
2773
+ msgstr ""
2774
+ "Si no se establece, este valor predeterminado azul (valor RGB <code>#0000ee</"
2775
+ "code> ) pero se puede cambiar a cualquier color que le gusta."
2776
+
2777
+ #: pro/app/views/options/form.php:426
2778
+ msgid "Link Hover Color"
2779
+ msgstr "Color de Hover del Enlace "
2780
+
2781
+ #: pro/app/views/options/form.php:428
2782
+ msgid "Pretty Bar Link Hover Color"
2783
+ msgstr "Color de Hover de Pretty Bar"
2784
+
2785
+ #: pro/app/views/options/form.php:429
2786
+ msgid ""
2787
+ "If not set, this defaults to RGB value <code>#ababab</code> but you can change "
2788
+ "it to whatever color you like."
2789
+ msgstr ""
2790
+ "Si no se establece, esto por defecto valor RGB <code>#ababab</code> pero se "
2791
+ "puede cambiar a cualquier color que le gusta."
2792
+
2793
+ #: pro/app/views/options/form.php:440
2794
+ msgid "Visited Link Color"
2795
+ msgstr "Color del Enlace Visitado"
2796
+
2797
+ #: pro/app/views/options/form.php:442
2798
+ msgid "Pretty Bar Visited Link Color"
2799
+ msgstr "Color del Pretty Bar Visitado"
2800
+
2801
+ #: pro/app/views/options/form.php:443
2802
+ msgid ""
2803
+ "If not set, this defaults to RGB value <code>#551a8b</code> but you can change "
2804
+ "it to whatever color you like."
2805
+ msgstr ""
2806
+ "Si no se establece, esto por defecto valor RGB <code>#ababab</code> pero se "
2807
+ "puede cambiar a cualquier color que le gusta."
2808
+
2809
+ #: pro/app/views/options/form.php:454
2810
+ msgid "Title Char Limit"
2811
+ msgstr "Límite de Caracteres del Título"
2812
+
2813
+ #: pro/app/views/options/form.php:456
2814
+ msgid "Pretty Bar Title Char Limit"
2815
+ msgstr "Límite de Caracteres en el Título de Pretty Bar"
2816
+
2817
+ #: pro/app/views/options/form.php:457
2818
+ msgid ""
2819
+ "If your Website has a long title then you may need to adjust this value so that "
2820
+ "it will all fit on the Pretty Bar. It is recommended that you keep this value "
2821
+ "to <code>30</code> characters or less so the Pretty Bar's format looks good "
2822
+ "across different browsers and screen resolutions."
2823
+ msgstr ""
2824
+ "Si su sitio tiene un título largo deberá ajustar este valor para que todas las "
2825
+ "palabras caben en la Pretty Bar. Se recomienda que usted mantenga este valor a "
2826
+ "<code>30</code> caracteres o menos para que el formato de la Pretty Bar se ve "
2827
+ "bien a través de diferentes navegadores y resoluciones de pantalla."
2828
+
2829
+ #: pro/app/views/options/form.php:468
2830
+ msgid "Description Char Limit"
2831
+ msgstr "Límite de Caracteres de Descripción"
2832
+
2833
+ #: pro/app/views/options/form.php:470
2834
+ msgid "Pretty Bar Description Char Limit"
2835
+ msgstr "Límite de Caracteres en la Descripción de Pretty Bar"
2836
+
2837
+ #: pro/app/views/options/form.php:471
2838
+ msgid ""
2839
+ "If your Website has a long Description (tagline) then you may need to adjust "
2840
+ "this value so that it will all fit on the Pretty Bar. It is recommended that "
2841
+ "you keep this value to <code>40</code> characters or less so the Pretty Bar's "
2842
+ "format looks good across different browsers and screen resolutions."
2843
+ msgstr ""
2844
+ "Si su sitio tiene una descripción larga (tagline) entonces puede ser que "
2845
+ "necesite ajustar este valor para que todos caben en la Pretty Bar. Se "
2846
+ "recomienda que usted mantenga este valor a <code>40</code> caracteres o menos "
2847
+ "para que el formato de la Pretty Bar se ve bien a través de diferentes "
2848
+ "navegadores y resoluciones de pantalla."
2849
+
2850
+ #: pro/app/views/options/form.php:482
2851
+ msgid "Target URL Char Limit"
2852
+ msgstr "Límite de Caracteres en el URL de Destino"
2853
+
2854
+ #: pro/app/views/options/form.php:484
2855
+ msgid "Pretty Bar Target URL Char Limit"
2856
+ msgstr "Límite de Caracteres para el Pretty Bar URL de Destino"
2857
+
2858
+ #: pro/app/views/options/form.php:485
2859
+ msgid ""
2860
+ "If you link to a lot of large Target URLs you may want to adjust this value. It "
2861
+ "is recommended that you keep this value to <code>40</code> or below so the "
2862
+ "Pretty Bar's format looks good across different browsers and URL sizes"
2863
+ msgstr ""
2864
+ "Si enlaza a un montón de grandes URLs de destino puede ajustar este valor. Se "
2865
+ "recomienda que usted mantenga este valor a <code>40</code> o por debajo para "
2866
+ "que el formato de la Pretty Bar se ve bien a través de diferentes navegadores y "
2867
+ "tamaños de URL"
2868
+
2869
+ #: pro/app/views/options/form.php:496
2870
+ msgid "Show Title"
2871
+ msgstr "Mostrar Título"
2872
+
2873
+ #: pro/app/views/options/form.php:498
2874
+ msgid "Pretty Bar Show Title"
2875
+ msgstr "Pretty Bar Título de Muestro"
2876
+
2877
+ #: pro/app/views/options/form.php:499
2878
+ msgid ""
2879
+ "Make sure this is checked if you want the title of your blog (and link) to show "
2880
+ "up on the Pretty Bar."
2881
+ msgstr ""
2882
+ "Asegúrese de que esto está activado si desea que el título de su blog (y "
2883
+ "enlace) se aparecan en la Pretty Bar."
2884
+
2885
+ #: pro/app/views/options/form.php:510
2886
+ msgid "Show Description"
2887
+ msgstr "Mostrar Descripción"
2888
+
2889
+ #: pro/app/views/options/form.php:512
2890
+ msgid "Pretty Bar Show Description"
2891
+ msgstr "Pretty Bar Descripción de Muestro"
2892
+
2893
+ #: pro/app/views/options/form.php:513
2894
+ msgid ""
2895
+ "Make sure this is checked if you want your site description to show up on the "
2896
+ "Pretty Bar."
2897
+ msgstr ""
2898
+ "Asegúrese de que esto está activado si desea que su descripción del sitio "
2899
+ "aparezca en la Pretty Bar."
2900
+
2901
+ #: pro/app/views/options/form.php:524
2902
+ msgid "Show Share Links"
2903
+ msgstr "Mostrar Compartir Enlaces"
2904
+
2905
+ #: pro/app/views/options/form.php:526
2906
+ msgid "Pretty Bar Show Share Links"
2907
+ msgstr "Pretty Bar Mostrar Compartir Enlaces"
2908
+
2909
+ #: pro/app/views/options/form.php:527
2910
+ msgid ""
2911
+ "Make sure this is checked if you want \"share links\" to show up on the Pretty "
2912
+ "Bar."
2913
+ msgstr ""
2914
+ "Asegúrese que ese está marcado si desea \"compartir enlaces\" a aparecer en la "
2915
+ "Pretty Bar."
2916
+
2917
+ #: pro/app/views/options/form.php:538
2918
+ msgid "Show Target URL"
2919
+ msgstr "Mostrar la URL de Destino"
2920
+
2921
+ #: pro/app/views/options/form.php:540
2922
+ msgid "Pretty Bar Show Target URL Links"
2923
+ msgstr "Pretty Bar Mostrar Enlaces de URL de Destino"
2924
+
2925
+ #: pro/app/views/options/form.php:541
2926
+ msgid ""
2927
+ "Make sure this is checked if you want a link displaying the Target URL to show "
2928
+ "up on the Pretty Bar."
2929
+ msgstr ""
2930
+ "Asegúrese de que esto está marcado si quiere un enlace mostrando la URL de "
2931
+ "destino a aparecer en la Pretty Bar."
2932
+
2933
+ #: pro/app/views/options/form.php:552 pro/app/views/options/form.php:554
2934
+ msgid "Hide Attribution Link"
2935
+ msgstr "Ocultar Enlace de Atribución"
2936
+
2937
+ #: pro/app/views/options/form.php:555
2938
+ msgid ""
2939
+ "Check this to hide the pretty link attribution link on the pretty bar.<br/><br/"
2940
+ "><strong>Wait, before you do this, you might want to leave this un-checked and "
2941
+ "set the alternate URL of this link to your <em>Pretty Link Pro</em> <a href="
2942
+ "\"http://prettylinkpro.com/affiliate-dashboard/\">Affiliate URL</a> to earn a "
2943
+ "few bucks while you are at it."
2944
+ msgstr ""
2945
+ "Marque eso para ocultar el pretty link de atribución en la pretty bar.<br/><br/"
2946
+ "><strong>Espere</strong>, antes de hacer esto, usted puede dejarlo sin equipaje "
2947
+ "y configurar la URL alternativa de este enlace a su <em>Pretty Link Pro</em> <a "
2948
+ "href=\"http://prettylinkpro.com/affiliate-dashboard/\">URL de Afiliado</a> para "
2949
+ "ganar unos cuantos dólares mientras está en el proceso."
2950
+
2951
+ #: pro/app/views/options/form.php:573
2952
+ msgid "Attribution URL"
2953
+ msgstr "URL de Atribución"
2954
+
2955
+ #: pro/app/views/options/form.php:575
2956
+ msgid "Alternate Pretty Bar Attribution URL"
2957
+ msgstr "Alternativo URL de Atribución por la Pretty Bar"
2958
+
2959
+ #: pro/app/views/options/form.php:576
2960
+ msgid ""
2961
+ "If set, this will replace the Pretty Bars attribution URL. This is a very good "
2962
+ "place to put your <em>Pretty Link Pro</em> <a href=\"http://prettylinkpro.com/"
2963
+ "affiliate-dashboard/\">Affiliate Link</a>."
2964
+ msgstr ""
2965
+ "Si establece, esto va a reemplazar la URL de la atribución de Pretty Bars. Este "
2966
+ "es un muy buen lugar para poner su <em>Pretty Link Pro</em> <a href=\"http://"
2967
+ "prettylinkpro.com/affiliate-dashboard/\">Enlace Afiliado</a>."
2968
+
2969
+ #: pro/app/views/options/form.php:590
2970
+ msgid "Social Buttons Options"
2971
+ msgstr "Opciones de Botones Sociales"
2972
+
2973
+ #: pro/app/views/options/form.php:593
2974
+ msgid "Buttons"
2975
+ msgstr "Botones"
2976
+
2977
+ #: pro/app/views/options/form.php:595
2978
+ msgid "Social Buttons"
2979
+ msgstr "Botones Sociales"
2980
+
2981
+ #: pro/app/views/options/form.php:596
2982
+ msgid ""
2983
+ "Select which buttons you want to be visible on the Social Buttons Bar.<br/><br/"
2984
+ "><code>Note:</code> In order for the Social Buttons Bar to be visible on Pages "
2985
+ "and or Posts, you must first enable it in the \"Page &amp; Post Options\" "
2986
+ "section above."
2987
+ msgstr ""
2988
+ "Seleccione los botones que desea ser visible en la Barra de Botones Sociales."
2989
+ "<br/><br/><code>Nota:</code>En orden para la Barra de Botones Sociales ser "
2990
+ "visibles en páginas y/o públicaciones, primero debe activarla en la sección "
2991
+ "arriba que se llama\"Opciones de Pagina &amp; Publicaciones\"."
2992
+
2993
+ #: pro/app/views/options/form.php:619
2994
+ msgid "Buttons Placement"
2995
+ msgstr "Colocación de Botones"
2996
+
2997
+ #: pro/app/views/options/form.php:621
2998
+ msgid "Social Buttons Placement"
2999
+ msgstr "Colocación de Botones Sociales"
3000
+
3001
+ #: pro/app/views/options/form.php:622
3002
+ msgid ""
3003
+ "This determines where your Social Buttons Placement should appear in relation "
3004
+ "to content on Pages and/or Posts.<br/><br/><code>Note:</code> If you want this "
3005
+ "bar to appear then you must enable it in the \"Page and Post Options\" above."
3006
+ msgstr ""
3007
+ "Esto determina donde debe aparecer su Colocación de Botones Sociales en "
3008
+ "relación con el contenido de las páginas y/o públicaciones.<br/><br/><code>Nota:"
3009
+ "</code> Si desea que esta barra aparezca entonces debe habilitarla en las "
3010
+ "\"opciones de página y públicaciones\" arriba."
3011
+
3012
+ #: pro/app/views/options/form.php:629
3013
+ msgid "Top and Bottom"
3014
+ msgstr "Superior e Inferior"
3015
+
3016
+ #: pro/app/views/options/form.php:632
3017
+ msgid "Social Buttons Manual Placement"
3018
+ msgstr "Colocación Manual de Botones Sociales"
3019
+
3020
+ #: pro/app/views/options/form.php:633
3021
+ msgid ""
3022
+ "If you select none, you can still show your Social Buttons by manually adding "
3023
+ "the <code>[social_buttons_bar]</code> shortcode to your blog posts or "
3024
+ "<code>&lt;?php the_social_buttons_bar(); ?&gt;</code> template tag to your "
3025
+ "WordPress Theme."
3026
+ msgstr ""
3027
+ "Si selecciona ninguno, todavía puede mostrar sus botones sociales añadiendo "
3028
+ "manualmente el <code>[social_buttons_bar]</code> shortcode para sus blogs o "
3029
+ "<code>&lt;?php the_social_buttons_bar(); ?&gt;</code> etiqueta de plantilla "
3030
+ "para su Tema de WordPress."
3031
+
3032
+ #: pro/app/views/options/form.php:658
3033
+ msgid "Public Links Creation Options"
3034
+ msgstr "Opciones de Creación de los Enlaces Publicos"
3035
+
3036
+ #: pro/app/views/options/form.php:664
3037
+ msgid "Enable Public Links"
3038
+ msgstr "Activar a los Enlaces Publicos"
3039
+
3040
+ #: pro/app/views/options/form.php:666
3041
+ msgid "Enable Public Link Creation on this Site"
3042
+ msgstr "Activar la creación de Enlace Público en este sitio"
3043
+
3044
+ #: pro/app/views/options/form.php:667
3045
+ msgid ""
3046
+ "This option will give you the ability to turn your website into a link "
3047
+ "shortening service for your users. Once selected, you can enable the Pretty "
3048
+ "Link Pro Sidebar Widget or just display the link creation form with the "
3049
+ "<code>[prli_create_form]</code> shortcode in any post or page on your website."
3050
+ msgstr ""
3051
+ "Esta opción le dará la capacidad de convertir su sitio en un link acortando "
3052
+ "servicio para sus usuarios. Una vez seleccionada, puede activar el Pretty Link "
3053
+ "Pro SideBar Widget o simplemente mostrar el formulario de creación de enlace "
3054
+ "con el <code>[prli_create_form]</code> código en cualquier post o página en su "
3055
+ "sitio Web."
3056
+
3057
+ #: pro/app/views/options/form.php:684
3058
+ msgid "Use Display Page"
3059
+ msgstr "Utilizar la Página de Presentación "
3060
+
3061
+ #: pro/app/views/options/form.php:686
3062
+ msgid "Use Public Link Display Page"
3063
+ msgstr "Utilizar la Página de Presentación de Enlace Público"
3064
+
3065
+ #: pro/app/views/options/form.php:687
3066
+ msgid ""
3067
+ "When a link is created using the public form, the user is typically redirected "
3068
+ "to a simple page displaying their new pretty link. But, you can specify a page "
3069
+ "that you want them to be redirected to on your website, using your branding "
3070
+ "instead by selecting this box and entering the url of the page you want them to "
3071
+ "go to."
3072
+ msgstr ""
3073
+ "Cuando se crea un enlace en la forma pública, normalmente se redirige al "
3074
+ "usuario a una página simple mostrando su nuevo pretty link. Sin embargo, puede "
3075
+ "especificar una página que desea que sea redirigido en su sitio web, usando su "
3076
+ "marca en lugar de ello al seleccionar esta casilla y escriba la url de la "
3077
+ "página que quiera que ellos se vayan."
3078
+
3079
+ #: pro/app/views/options/form.php:704
3080
+ msgid "Display Page"
3081
+ msgstr "Página de Presentación"
3082
+
3083
+ #: pro/app/views/options/form.php:706
3084
+ msgid "Public Pretty Link Creation Display URL"
3085
+ msgstr "URL de Muestro para la creación del Pretty Link público"
3086
+
3087
+ #: pro/app/views/options/form.php:707
3088
+ msgid ""
3089
+ "To set this up, create a new page on your WordPress site and make sure the "
3090
+ "<code>[prli_create_display]</code> appears somewhere on this page -- otherwise "
3091
+ "the link will never get created. Once this page is created, just enter the full "
3092
+ "URL to it here. Make sure this URL does npt end with a slash (/)."
3093
+ msgstr ""
3094
+ "Para configurar esto, cree una nueva página en su sitio de WordPress y "
3095
+ "asegúrese de que el <code>[prli_create_display]</code> aparece en algún lugar "
3096
+ "en esta página-- si no el enlace nunca será creado. Una vez esta página esta "
3097
+ "creada, introduzca la dirección URL completa a él aquí. Asegúrese de que esta "
3098
+ "dirección URL no termina con con una barra diagonal (/)."
3099
+
3100
+ #: pro/app/views/options/general.php:8
3101
+ msgid "Use Shortlink URL"
3102
+ msgstr "Utilizar URL Shortlink"
3103
+
3104
+ #: pro/app/views/options/general.php:10
3105
+ msgid "Use an Alternate Shortlink URL"
3106
+ msgstr "Utilizar una dirección URL Shortlink Alternativa "
3107
+
3108
+ #: pro/app/views/options/general.php:11
3109
+ msgid ""
3110
+ "Use this option if you want to substitute your actual blog's url with another "
3111
+ "URL. You must have another valid domain name pointing to this WordPress install "
3112
+ "before you enable this option. If you are using this option to just get rid of "
3113
+ "the www in the beginning of your url that is fine -- just make sure your domain "
3114
+ "works without the www before enabling this option."
3115
+ msgstr ""
3116
+ "Utilice esta opción si desea sustituir la url de su blog actual con otra URL. "
3117
+ "Debe tener otro nombre de dominio válido señalar a esta instalación de "
3118
+ "WordPress antes de activar esta opción. Si utiliza esta opción simplemente para "
3119
+ "deshacerse de la www al principio de la url está bien, sólo asegúrese de que su "
3120
+ "dominio funciona sin el www antes de habilitar esta opción."
3121
+
3122
+ #: pro/app/views/options/general.php:28 pro/app/views/options/general.php:30
3123
+ msgid "Shortlink URL"
3124
+ msgstr "Shortlink URL"
3125
+
3126
+ #: pro/app/views/options/general.php:31
3127
+ msgid ""
3128
+ "Enter a valid base url that points at this WordPress install. Make sure this "
3129
+ "URL does not end with a slash (/)."
3130
+ msgstr ""
3131
+ "Introduzca una url válida de base que apunta en esta instalación de WordPress. "
3132
+ "Asegúrese de que esta URL no termina con una barra diagonal (/)."
3133
+
3134
+ #: pro/app/views/options/general.php:47
3135
+ msgid "Minimum Admin Role"
3136
+ msgstr "Papel Mínimo de Admin"
3137
+
3138
+ #: pro/app/views/options/general.php:49
3139
+ msgid "Set Minimum Role Required To Access Pretty Link"
3140
+ msgstr "Fijar papel mínima necesaria para acceso Pretty Link"
3141
+
3142
+ #: pro/app/views/options/general.php:50
3143
+ msgid ""
3144
+ "Use this option to set the minimum role of users who can access the Admin "
3145
+ "interface for Pretty Link."
3146
+ msgstr ""
3147
+ "Utilice esta opción para establecer el papel mínimo de usuarios que pueden "
3148
+ "acceder a la interfaz de administración para Pretty Link."
3149
+
3150
+ #: pro/app/views/options/general.php:56
3151
+ msgid "Administrator"
3152
+ msgstr "Administrador"
3153
+
3154
+ #: pro/app/views/options/general.php:57
3155
+ msgid "Editor"
3156
+ msgstr "Editor(a)"
3157
+
3158
+ #: pro/app/views/options/general.php:58
3159
+ msgid "Author"
3160
+ msgstr "Autor"
3161
+
3162
+ #: pro/app/views/options/general.php:59
3163
+ msgid "Contributor"
3164
+ msgstr "Colaborador"
3165
+
3166
+ #: pro/app/views/options/general.php:60
3167
+ msgid "Subscriber"
3168
+ msgstr "Suscriptor"
3169
+
3170
+ #: pro/app/views/options/nav.php:3
3171
+ msgid "Replacements"
3172
+ msgstr "Reemplazos "
3173
+
3174
+ #: pro/app/views/options/nav.php:4
3175
+ msgid "Auto-Create Links"
3176
+ msgstr "Auto-Crear Enlaces"
3177
+
3178
+ #: pro/app/views/options/nav.php:7
3179
+ msgid "Social"
3180
+ msgstr "Social"
3181
+
3182
+ #: pro/app/views/options/nav.php:8
3183
+ msgid "Public"
3184
+ msgstr "Público"
3185
+
3186
+ #: pro/app/views/public/form.php:29
3187
+ msgid "ERROR:"
3188
+ msgstr "ERROR:"
3189
+
3190
+ #: pro/app/views/reports/custom-report.php:7
3191
+ msgid "Link Report"
3192
+ msgstr "Link Informe"
3193
+
3194
+ #: pro/app/views/reports/custom-report.php:8
3195
+ msgid "Report:"
3196
+ msgstr "Informe:"
3197
+
3198
+ #: pro/app/views/reports/custom-report.php:10
3199
+ msgid "For Goal Link:"
3200
+ msgstr "Por la Enlace Meta:"
3201
+
3202
+ #: pro/app/views/reports/custom-report.php:30
3203
+ #: pro/app/views/reports/custom-report.php:63
3204
+ msgid "Link Name"
3205
+ msgstr "Nombre del Enlace"
3206
+
3207
+ #: pro/app/views/reports/custom-report.php:35
3208
+ #: pro/app/views/reports/custom-report.php:68
3209
+ #: pro/app/views/reports/split-test-report.php:35
3210
+ #: pro/app/views/reports/split-test-report.php:68
3211
+ msgid "Conv Rate"
3212
+ msgstr "Tasa de Conversión"
3213
+
3214
+ #: pro/app/views/reports/edit.php:7
3215
+ msgid "Edit Link Report"
3216
+ msgstr "Editar Enlace Informe"
3217
+
3218
+ #: pro/app/views/reports/edit.php:22 pro/app/views/reports/new.php:21
3219
+ msgid "This is how you'll identify your Report."
3220
+ msgstr "Esto es cómo identificará su Informe."
3221
+
3222
+ #: pro/app/views/reports/edit.php:28 pro/app/views/reports/new.php:27
3223
+ msgid "Select Links to Analyze in this Report:"
3224
+ msgstr "Seleccionar enlaces para analizar en este informe:"
3225
+
3226
+ #: pro/app/views/reports/edit.php:86 pro/app/views/reports/new.php:85
3227
+ msgid "Select some links to be analyzed in this report."
3228
+ msgstr "Seleccione algunos enlaces para ser analizados en este informe."
3229
+
3230
+ #: pro/app/views/reports/edit.php:89 pro/app/views/reports/new.php:88
3231
+ msgid "Select Your Goal Link (optional):"
3232
+ msgstr "Seleccione la enlace meta (opcional):"
3233
+
3234
+ #: pro/app/views/reports/edit.php:113 pro/app/views/reports/new.php:112
3235
+ msgid ""
3236
+ "If you want to enable conversion tracking in this report then select a goal "
3237
+ "link."
3238
+ msgstr ""
3239
+ "Si desea habilitar la conversión en este informe a continuación, seleccione un "
3240
+ "enlace de meta."
3241
+
3242
+ #: pro/app/views/reports/list.php:7 pro/app/views/reports/reports.php:10
3243
+ msgid "Link Reports"
3244
+ msgstr "Informes de Enlace"
3245
+
3246
+ #: pro/app/views/reports/list.php:23
3247
+ msgid "Add a Pretty Link Report"
3248
+ msgstr "Añadir un Pretty Link Informe"
3249
+
3250
+ #: pro/app/views/reports/list.php:44
3251
+ msgid "No Pretty Link Reports were found"
3252
+ msgstr "Ningún Pretty Link Informe fue encontrado"
3253
+
3254
+ #: pro/app/views/reports/list.php:62
3255
+ msgid "View"
3256
+ msgstr "Ver"
3257
+
3258
+ #: pro/app/views/reports/new.php:7
3259
+ msgid "Add Link Report"
3260
+ msgstr "Añadir Enlace Informe"
3261
+
3262
+ #: pro/app/views/reports/split-test-report.php:7
3263
+ msgid "Link Split-Test Report"
3264
+ msgstr "Informe de enlace partida-prueba"
3265
+
3266
+ #: pro/app/views/reports/split-test-report.php:8
3267
+ msgid "For Link:"
3268
+ msgstr "Por Enlace:"
3269
+
3270
+ #: pro/app/views/reports/split-test-report.php:10
3271
+ msgid "Goal Link:"
3272
+ msgstr "Enlace Meta:"
3273
+
3274
+ #: pro/app/views/reports/split-test-report.php:30
3275
+ msgid "Link Rotation URL"
3276
+ msgstr "Enlace URL de Rotación"
3277
+
3278
+ #: pro/app/views/reports/split-test-report.php:63
3279
+ msgid "Rotation URL"
3280
+ msgstr "URL de Rotación"
3281
+
3282
+ #: pro/app/views/tools/generator.php:6 pro/app/views/tools/nav.php:3
3283
+ msgid "End-Point URL"
3284
+ msgstr "URL de Punto Final"
3285
+
3286
+ #: pro/app/views/tools/generator.php:7
3287
+ msgid "This can be used to integrate with your twitter client."
3288
+ msgstr "Esto puede ser usado para integrar con su cliente de twitter."
3289
+
3290
+ #: pro/app/views/tools/generator.php:11
3291
+ msgid "Show TweetDeck Integration Instructions"
3292
+ msgstr "Mostrar instrucciones de integración de TweetDeck"
3293
+
3294
+ #: pro/app/views/tools/generator.php:15 pro/app/views/tools/generator.php:24
3295
+ msgid "Follow the"
3296
+ msgstr "Siga la(s)"
3297
+
3298
+ #: pro/app/views/tools/generator.php:15
3299
+ msgid "TweetDeck Custom URL Instructions"
3300
+ msgstr "Instrucciones de URL Personalizado de TweetDeck"
3301
+
3302
+ #: pro/app/views/tools/generator.php:15
3303
+ msgid " and add the following URL to TweetDeck"
3304
+ msgstr "y añade la siguiente URL a TweetDeck"
3305
+
3306
+ #: pro/app/views/tools/generator.php:20
3307
+ msgid "Show Twitter for iPhone Integration Instructions"
3308
+ msgstr "Mostrar Twitter para iPhone Instrucciones de Integración"
3309
+
3310
+ #: pro/app/views/tools/generator.php:24
3311
+ msgid "Twitter for iPhone Custom URL Instructions"
3312
+ msgstr "Twitter para iPhone Custom URL Instrucciones"
3313
+
3314
+ #: pro/app/views/tools/generator.php:24
3315
+ msgid " and add the following URL to Twitter for iPhone"
3316
+ msgstr "y añadir la siguiente dirección URL a Twitter para el iPhone"
3317
+
3318
+ #: pro/app/views/tools/generator.php:30
3319
+ msgid "Custom Bookmarklet:"
3320
+ msgstr "Bookmarklet Personalizado:"
3321
+
3322
+ #: pro/app/views/tools/generator.php:33
3323
+ msgid "Customize Pretty Link Bookmarklet"
3324
+ msgstr "Personalizar Pretty Link Bookmarklet"
3325
+
3326
+ #: pro/app/views/tools/generator.php:34
3327
+ msgid ""
3328
+ "Alter the options below to customize this Bookmarklet. As you modify the label, "
3329
+ "redirect type, tracking and group, you will see this bookmarklet update -- when "
3330
+ "the settings are how you want them, drag the bookmarklet into your toolbar. You "
3331
+ "can create as many bookmarklets as you want each with different settings."
3332
+ msgstr ""
3333
+ "Modificar las siguientes opciones para personalizar este Bookmarklet. Al "
3334
+ "modificar la etiqueta, el tipo de redirección, seguimiento y grupo, verá este "
3335
+ "bookmarklet actualizar -- cuando los valores son lo que desea, arrastre el "
3336
+ "bookmarklet hacia su barra de herramientas. Puede crear bookmarklets tantos "
3337
+ "como quiera cada uno con diferentes ajustes."
3338
+
3339
+ #: pro/app/views/tools/generator.php:37
3340
+ #: pro/app/widgets/PlpPublicLinksWidget.php:55
3341
+ msgid "Pretty Link Options"
3342
+ msgstr "Pretty Link Opciones"
3343
+
3344
+ #: pro/app/views/tools/generator.php:40
3345
+ msgid "Label:"
3346
+ msgstr "Etiqueta:"
3347
+
3348
+ #: pro/app/views/tools/generator.php:45
3349
+ #: pro/app/widgets/PlpPublicLinksWidget.php:57
3350
+ msgid "Redirection:"
3351
+ msgstr "Redirección:"
3352
+
3353
+ #: pro/app/views/tools/generator.php:49
3354
+ msgid "Tracking:"
3355
+ msgstr "Seguimiento:"
3356
+
3357
+ #: pro/app/views/tools/generator.php:52
3358
+ #: pro/app/widgets/PlpPublicLinksWidget.php:71
3359
+ msgid "Yes"
3360
+ msgstr "Sí"
3361
+
3362
+ #: pro/app/views/tools/generator.php:53
3363
+ #: pro/app/widgets/PlpPublicLinksWidget.php:72
3364
+ msgid "No"
3365
+ msgstr "No"
3366
+
3367
+ #: pro/app/views/tools/generator.php:57
3368
+ #: pro/app/widgets/PlpPublicLinksWidget.php:77
3369
+ msgid "Group:"
3370
+ msgstr "Grupo:"
3371
+
3372
+ #: pro/app/views/tools/nav.php:4
3373
+ msgid "Custom Bookmarklet"
3374
+ msgstr "Bookmarklet Personalizado"
3375
+
3376
+ #: pro/app/widgets/PlpPublicLinksWidget.php:7
3377
+ msgid "Create a Short URL"
3378
+ msgstr "Crear un URL Corto"
3379
+
3380
+ #: pro/app/widgets/PlpPublicLinksWidget.php:53
3381
+ msgid "Label Text:"
3382
+ msgstr "Mostrar la Etiqueta de Pago"
3383
+
3384
+ #: pro/app/widgets/PlpPublicLinksWidget.php:54
3385
+ msgid "Button Text:"
3386
+ msgstr "Texto del Botón"
3387
+
3388
+ #: pro/app/widgets/PlpPublicLinksWidget.php:54
3389
+ msgid "if left blank, no button will display"
3390
+ msgstr "Si deja en blanco, ningún botón se mostrará"
3391
+
3392
+ #: pro/app/widgets/PlpPublicLinksWidget.php:60
3393
+ msgid "Permanent/301"
3394
+ msgstr "Permanente/301"
3395
+
3396
+ #: pro/app/widgets/PlpPublicLinksWidget.php:61
3397
+ msgid "Temporary/307"
3398
+ msgstr "Temporal/307"
3399
+
3400
+ #: pro/app/widgets/PlpPublicLinksWidget.php:62
3401
+ msgid "PrettyBar"
3402
+ msgstr "PrettyBar"
3403
+
3404
+ #: pro/app/widgets/PlpPublicLinksWidget.php:68
3405
+ msgid "Tracking Enabled:"
3406
+ msgstr "Seguimiento Activado:"
3407
+
3408
+ #: pro/i18n/countries.php:5
3409
+ msgid "Afghanistan"
3410
+ msgstr "Afghanistán"
3411
+
3412
+ #: pro/i18n/countries.php:6
3413
+ msgid "&#197;land Islands"
3414
+ msgstr "&#197;Islas de Tierra"
3415
+
3416
+ #: pro/i18n/countries.php:7
3417
+ msgid "Albania"
3418
+ msgstr "Albania"
3419
+
3420
+ #: pro/i18n/countries.php:8
3421
+ msgid "Algeria"
3422
+ msgstr "Algeria"
3423
+
3424
+ #: pro/i18n/countries.php:9
3425
+ msgid "Andorra"
3426
+ msgstr "Andorra"
3427
+
3428
+ #: pro/i18n/countries.php:10
3429
+ msgid "Angola"
3430
+ msgstr "Angola"
3431
+
3432
+ #: pro/i18n/countries.php:11
3433
+ msgid "Anguilla"
3434
+ msgstr "Anguilla"
3435
+
3436
+ #: pro/i18n/countries.php:12
3437
+ msgid "Antarctica"
3438
+ msgstr "Antártida"
3439
+
3440
+ #: pro/i18n/countries.php:13
3441
+ msgid "Antigua and Barbuda"
3442
+ msgstr "Antigua y Barbuda"
3443
+
3444
+ #: pro/i18n/countries.php:14
3445
+ msgid "Argentina"
3446
+ msgstr "Argentina"
3447
+
3448
+ #: pro/i18n/countries.php:15
3449
+ msgid "Armenia"
3450
+ msgstr "Armenia"
3451
+
3452
+ #: pro/i18n/countries.php:16
3453
+ msgid "Aruba"
3454
+ msgstr "Aruba"
3455
+
3456
+ #: pro/i18n/countries.php:17
3457
+ msgid "Australia"
3458
+ msgstr "Australia"
3459
+
3460
+ #: pro/i18n/countries.php:18
3461
+ msgid "Austria"
3462
+ msgstr "Austria"
3463
+
3464
+ #: pro/i18n/countries.php:19
3465
+ msgid "Azerbaijan"
3466
+ msgstr "Azerbaiyán"
3467
+
3468
+ #: pro/i18n/countries.php:20
3469
+ msgid "Bahamas"
3470
+ msgstr "Bahamas"
3471
+
3472
+ #: pro/i18n/countries.php:21
3473
+ msgid "Bahrain"
3474
+ msgstr "Bahréin"
3475
+
3476
+ #: pro/i18n/countries.php:22
3477
+ msgid "Bangladesh"
3478
+ msgstr "Bangladesh"
3479
+
3480
+ #: pro/i18n/countries.php:23
3481
+ msgid "Barbados"
3482
+ msgstr "Barbados"
3483
+
3484
+ #: pro/i18n/countries.php:24
3485
+ msgid "Belarus"
3486
+ msgstr "Bielorusia"
3487
+
3488
+ #: pro/i18n/countries.php:25
3489
+ msgid "Belgium"
3490
+ msgstr "Bélgica"
3491
+
3492
+ #: pro/i18n/countries.php:26
3493
+ msgid "Belau"
3494
+ msgstr "Palaos"
3495
+
3496
+ #: pro/i18n/countries.php:27
3497
+ msgid "Belize"
3498
+ msgstr "Belice"
3499
+
3500
+ #: pro/i18n/countries.php:28
3501
+ msgid "Benin"
3502
+ msgstr "Benin"
3503
+
3504
+ #: pro/i18n/countries.php:29
3505
+ msgid "Bermuda"
3506
+ msgstr "Bermuda"
3507
+
3508
+ #: pro/i18n/countries.php:30
3509
+ msgid "Bhutan"
3510
+ msgstr "Bután"
3511
+
3512
+ #: pro/i18n/countries.php:31
3513
+ msgid "Bolivia"
3514
+ msgstr "Bolivia"
3515
+
3516
+ #: pro/i18n/countries.php:32
3517
+ msgid "Bonaire, Saint Eustatius and Saba"
3518
+ msgstr "Bonaire, San Eustaquio y Saba"
3519
+
3520
+ #: pro/i18n/countries.php:33
3521
+ msgid "Bosnia and Herzegovina"
3522
+ msgstr "Bosnia y Herzegovina"
3523
+
3524
+ #: pro/i18n/countries.php:34
3525
+ msgid "Botswana"
3526
+ msgstr "Botswana"
3527
+
3528
+ #: pro/i18n/countries.php:35
3529
+ msgid "Bouvet Island"
3530
+ msgstr "Isla Bouvet"
3531
+
3532
+ #: pro/i18n/countries.php:36
3533
+ msgid "Brazil"
3534
+ msgstr "Brasil"
3535
+
3536
+ #: pro/i18n/countries.php:37
3537
+ msgid "British Indian Ocean Territory"
3538
+ msgstr "Territorio Británico del Océano Índico"
3539
+
3540
+ #: pro/i18n/countries.php:38
3541
+ msgid "British Virgin Islands"
3542
+ msgstr "Islas Vírgenes Británicas"
3543
+
3544
+ #: pro/i18n/countries.php:39
3545
+ msgid "Brunei"
3546
+ msgstr "Brunei"
3547
+
3548
+ #: pro/i18n/countries.php:40
3549
+ msgid "Bulgaria"
3550
+ msgstr "Búlgara"
3551
+
3552
+ #: pro/i18n/countries.php:41
3553
+ msgid "Burkina Faso"
3554
+ msgstr "Burkina Faso"
3555
+
3556
+ #: pro/i18n/countries.php:42
3557
+ msgid "Burundi"
3558
+ msgstr "Burundi"
3559
+
3560
+ #: pro/i18n/countries.php:43
3561
+ msgid "Cambodia"
3562
+ msgstr "Camboya"
3563
+
3564
+ #: pro/i18n/countries.php:44
3565
+ msgid "Cameroon"
3566
+ msgstr "Camerún"
3567
+
3568
+ #: pro/i18n/countries.php:45
3569
+ msgid "Canada"
3570
+ msgstr "Canadá"
3571
+
3572
+ #: pro/i18n/countries.php:46
3573
+ msgid "Cape Verde"
3574
+ msgstr "Cabo Verde"
3575
+
3576
+ #: pro/i18n/countries.php:47
3577
+ msgid "Cayman Islands"
3578
+ msgstr "Islas Caimán"
3579
+
3580
+ #: pro/i18n/countries.php:48
3581
+ msgid "Central African Republic"
3582
+ msgstr "República de Africa Central"
3583
+
3584
+ #: pro/i18n/countries.php:49
3585
+ msgid "Chad"
3586
+ msgstr "Chad"
3587
+
3588
+ #: pro/i18n/countries.php:50
3589
+ msgid "Chile"
3590
+ msgstr "Chile"
3591
+
3592
+ #: pro/i18n/countries.php:51
3593
+ msgid "China"
3594
+ msgstr "China"
3595
+
3596
+ #: pro/i18n/countries.php:52
3597
+ msgid "Christmas Island"
3598
+ msgstr "Isla de Pascua"
3599
+
3600
+ #: pro/i18n/countries.php:53
3601
+ msgid "Cocos/Keeling Islands"
3602
+ msgstr "Islas Cocos (Keeling)"
3603
+
3604
+ #: pro/i18n/countries.php:54
3605
+ msgid "Colombia"
3606
+ msgstr "Colombia"
3607
+
3608
+ #: pro/i18n/countries.php:55
3609
+ msgid "Comoros"
3610
+ msgstr "Comoras"
3611
+
3612
+ #: pro/i18n/countries.php:56
3613
+ msgid "Congo (Brazzaville)"
3614
+ msgstr "República del Congo (Brazzaville)"
3615
+
3616
+ #: pro/i18n/countries.php:57
3617
+ msgid "Congo (Kinshasa)"
3618
+ msgstr "República Democrática del Congo (Kinshasa)"
3619
+
3620
+ #: pro/i18n/countries.php:58
3621
+ msgid "Cook Islands"
3622
+ msgstr "Islas Cook"
3623
+
3624
+ #: pro/i18n/countries.php:59
3625
+ msgid "Costa Rica"
3626
+ msgstr "Costa Rica"
3627
+
3628
+ #: pro/i18n/countries.php:60
3629
+ msgid "Croatia"
3630
+ msgstr "Croacia"
3631
+
3632
+ #: pro/i18n/countries.php:61
3633
+ msgid "Cuba"
3634
+ msgstr "Cuba"
3635
+
3636
+ #: pro/i18n/countries.php:62
3637
+ msgid "Cura&Ccedil;ao"
3638
+ msgstr "Curazao"
3639
+
3640
+ #: pro/i18n/countries.php:63
3641
+ msgid "Cyprus"
3642
+ msgstr "Chipre"
3643
+
3644
+ #: pro/i18n/countries.php:64
3645
+ msgid "Czech Republic"
3646
+ msgstr "República Checa"
3647
+
3648
+ #: pro/i18n/countries.php:65
3649
+ msgid "Denmark"
3650
+ msgstr "Dinamarca"
3651
+
3652
+ #: pro/i18n/countries.php:66
3653
+ msgid "Djibouti"
3654
+ msgstr "Yibuti"
3655
+
3656
+ #: pro/i18n/countries.php:67
3657
+ msgid "Dominica"
3658
+ msgstr "Dominica"
3659
+
3660
+ #: pro/i18n/countries.php:68
3661
+ msgid "Dominican Republic"
3662
+ msgstr "Repúlica Dominicana"
3663
+
3664
+ #: pro/i18n/countries.php:69
3665
+ msgid "Ecuador"
3666
+ msgstr "Ecuador"
3667
+
3668
+ #: pro/i18n/countries.php:70
3669
+ msgid "Egypt"
3670
+ msgstr "Egipto"
3671
+
3672
+ #: pro/i18n/countries.php:71
3673
+ msgid "El Salvador"
3674
+ msgstr "El Salvador"
3675
+
3676
+ #: pro/i18n/countries.php:72
3677
+ msgid "Equatorial Guinea"
3678
+ msgstr "Guinea Equatorial"
3679
+
3680
+ #: pro/i18n/countries.php:73
3681
+ msgid "Eritrea"
3682
+ msgstr "Eritrea"
3683
+
3684
+ #: pro/i18n/countries.php:74
3685
+ msgid "Estonia"
3686
+ msgstr "Estonia"
3687
+
3688
+ #: pro/i18n/countries.php:75
3689
+ msgid "Ethiopia"
3690
+ msgstr "Etiopía"
3691
+
3692
+ #: pro/i18n/countries.php:76
3693
+ msgid "Falkland Islands"
3694
+ msgstr "Islas Malvinas"
3695
+
3696
+ #: pro/i18n/countries.php:77
3697
+ msgid "Faroe Islands"
3698
+ msgstr "Islas Faroe"
3699
+
3700
+ #: pro/i18n/countries.php:78
3701
+ msgid "Fiji"
3702
+ msgstr "Fiyi"
3703
+
3704
+ #: pro/i18n/countries.php:79
3705
+ msgid "Finland"
3706
+ msgstr "Finlandia"
3707
+
3708
+ #: pro/i18n/countries.php:80
3709
+ msgid "France"
3710
+ msgstr "Francia"
3711
+
3712
+ #: pro/i18n/countries.php:81
3713
+ msgid "French Guiana"
3714
+ msgstr "Guayana Francesa"
3715
+
3716
+ #: pro/i18n/countries.php:82
3717
+ msgid "French Polynesia"
3718
+ msgstr "Polinesia Francesa"
3719
+
3720
+ #: pro/i18n/countries.php:83
3721
+ msgid "French Southern Territories"
3722
+ msgstr "Territorios del sur Franceses"
3723
+
3724
+ #: pro/i18n/countries.php:84
3725
+ msgid "Gabon"
3726
+ msgstr "Gabón"
3727
+
3728
+ #: pro/i18n/countries.php:85
3729
+ msgid "Gambia"
3730
+ msgstr "Gambia"
3731
+
3732
+ #: pro/i18n/countries.php:86
3733
+ msgid "Georgia"
3734
+ msgstr "Georgia"
3735
+
3736
+ #: pro/i18n/countries.php:87
3737
+ msgid "Germany"
3738
+ msgstr "Alemania"
3739
+
3740
+ #: pro/i18n/countries.php:88
3741
+ msgid "Ghana"
3742
+ msgstr "Gana"
3743
+
3744
+ #: pro/i18n/countries.php:89
3745
+ msgid "Gibraltar"
3746
+ msgstr "Gibraltar"
3747
+
3748
+ #: pro/i18n/countries.php:90
3749
+ msgid "Greece"
3750
+ msgstr "Grecia"
3751
+
3752
+ #: pro/i18n/countries.php:91
3753
+ msgid "Greenland"
3754
+ msgstr "Groenlandia"
3755
+
3756
+ #: pro/i18n/countries.php:92
3757
+ msgid "Grenada"
3758
+ msgstr "Granada"
3759
+
3760
+ #: pro/i18n/countries.php:93
3761
+ msgid "Guadeloupe"
3762
+ msgstr "Guadalupe"
3763
+
3764
+ #: pro/i18n/countries.php:94
3765
+ msgid "Guatemala"
3766
+ msgstr "Guatemala"
3767
+
3768
+ #: pro/i18n/countries.php:95
3769
+ msgid "Guernsey"
3770
+ msgstr "Guernsey"
3771
+
3772
+ #: pro/i18n/countries.php:96
3773
+ msgid "Guinea"
3774
+ msgstr "Guinea"
3775
+
3776
+ #: pro/i18n/countries.php:97
3777
+ msgid "Guinea-Bissau"
3778
+ msgstr "Guinea-Bissau"
3779
+
3780
+ #: pro/i18n/countries.php:98
3781
+ msgid "Guyana"
3782
+ msgstr "Guyana"
3783
+
3784
+ #: pro/i18n/countries.php:99
3785
+ msgid "Haiti"
3786
+ msgstr "Haiti"
3787
+
3788
+ #: pro/i18n/countries.php:100
3789
+ msgid "Heard Island and McDonald Islands"
3790
+ msgstr "Islas Heard y McDonald"
3791
+
3792
+ #: pro/i18n/countries.php:101
3793
+ msgid "Honduras"
3794
+ msgstr "Honduras"
3795
+
3796
+ #: pro/i18n/countries.php:102
3797
+ msgid "Hong Kong"
3798
+ msgstr "Hong Kong"
3799
+
3800
+ #: pro/i18n/countries.php:103
3801
+ msgid "Hungary"
3802
+ msgstr "Hungría"
3803
+
3804
+ #: pro/i18n/countries.php:104
3805
+ msgid "Iceland"
3806
+ msgstr "Islandia"
3807
+
3808
+ #: pro/i18n/countries.php:105
3809
+ msgid "India"
3810
+ msgstr "India"
3811
+
3812
+ #: pro/i18n/countries.php:106
3813
+ msgid "Indonesia"
3814
+ msgstr "Indonesia"
3815
+
3816
+ #: pro/i18n/countries.php:107
3817
+ msgid "Iran"
3818
+ msgstr "Irán"
3819
+
3820
+ #: pro/i18n/countries.php:108
3821
+ msgid "Iraq"
3822
+ msgstr "Irak"
3823
+
3824
+ #: pro/i18n/countries.php:109
3825
+ msgid "Republic of Ireland"
3826
+ msgstr "República de Irlanda"
3827
+
3828
+ #: pro/i18n/countries.php:110
3829
+ msgid "Isle of Man"
3830
+ msgstr "Isla de Man"
3831
+
3832
+ #: pro/i18n/countries.php:111
3833
+ msgid "Israel"
3834
+ msgstr "Israel"
3835
+
3836
+ #: pro/i18n/countries.php:112
3837
+ msgid "Italy"
3838
+ msgstr "Italia"
3839
+
3840
+ #: pro/i18n/countries.php:113
3841
+ msgid "Ivory Coast"
3842
+ msgstr "Costa de Marfil"
3843
+
3844
+ #: pro/i18n/countries.php:114
3845
+ msgid "Jamaica"
3846
+ msgstr "Jamaica"
3847
+
3848
+ #: pro/i18n/countries.php:115
3849
+ msgid "Japan"
3850
+ msgstr "Japón"
3851
+
3852
+ #: pro/i18n/countries.php:116
3853
+ msgid "Jersey"
3854
+ msgstr "Jersey"
3855
+
3856
+ #: pro/i18n/countries.php:117
3857
+ msgid "Jordan"
3858
+ msgstr "Jordania"
3859
+
3860
+ #: pro/i18n/countries.php:118
3861
+ msgid "Kazakhstan"
3862
+ msgstr "Kazajistán"
3863
+
3864
+ #: pro/i18n/countries.php:119
3865
+ msgid "Kenya"
3866
+ msgstr "Kenia"
3867
+
3868
+ #: pro/i18n/countries.php:120
3869
+ msgid "Kiribati"
3870
+ msgstr "Kiribati"
3871
+
3872
+ #: pro/i18n/countries.php:121
3873
+ msgid "Kuwait"
3874
+ msgstr "Kuwait"
3875
+
3876
+ #: pro/i18n/countries.php:122
3877
+ msgid "Kyrgyzstan"
3878
+ msgstr "Kirguistán"
3879
+
3880
+ #: pro/i18n/countries.php:123
3881
+ msgid "Laos"
3882
+ msgstr "República Democrática Popular de Laos"
3883
+
3884
+ #: pro/i18n/countries.php:124
3885
+ msgid "Latvia"
3886
+ msgstr "Latvia"
3887
+
3888
+ #: pro/i18n/countries.php:125
3889
+ msgid "Lebanon"
3890
+ msgstr "Líbano"
3891
+
3892
+ #: pro/i18n/countries.php:126
3893
+ msgid "Lesotho"
3894
+ msgstr "Lesoto"
3895
+
3896
+ #: pro/i18n/countries.php:127
3897
+ msgid "Liberia"
3898
+ msgstr "Liberia"
3899
+
3900
+ #: pro/i18n/countries.php:128
3901
+ msgid "Libya"
3902
+ msgstr "Libia"
3903
+
3904
+ #: pro/i18n/countries.php:129
3905
+ msgid "Liechtenstein"
3906
+ msgstr "Liechtenstein"
3907
+
3908
+ #: pro/i18n/countries.php:130
3909
+ msgid "Lithuania"
3910
+ msgstr "Lituania"
3911
+
3912
+ #: pro/i18n/countries.php:131
3913
+ msgid "Luxembourg"
3914
+ msgstr "Luxemburgo"
3915
+
3916
+ #: pro/i18n/countries.php:132
3917
+ msgid "Macao S.A.R., China"
3918
+ msgstr "RAE de Macao, China"
3919
+
3920
+ #: pro/i18n/countries.php:133
3921
+ msgid "Macedonia"
3922
+ msgstr "Macedonia"
3923
+
3924
+ #: pro/i18n/countries.php:134
3925
+ msgid "Madagascar"
3926
+ msgstr "Madagascar"
3927
+
3928
+ #: pro/i18n/countries.php:135
3929
+ msgid "Malawi"
3930
+ msgstr "Malawi"
3931
+
3932
+ #: pro/i18n/countries.php:136
3933
+ msgid "Malaysia"
3934
+ msgstr "Malasia"
3935
+
3936
+ #: pro/i18n/countries.php:137
3937
+ msgid "Maldives"
3938
+ msgstr "Maldivas"
3939
+
3940
+ #: pro/i18n/countries.php:138
3941
+ msgid "Mali"
3942
+ msgstr "Malí"
3943
+
3944
+ #: pro/i18n/countries.php:139
3945
+ msgid "Malta"
3946
+ msgstr "Malta"
3947
+
3948
+ #: pro/i18n/countries.php:140
3949
+ msgid "Marshall Islands"
3950
+ msgstr "Islas Marshall"
3951
+
3952
+ #: pro/i18n/countries.php:141
3953
+ msgid "Martinique"
3954
+ msgstr "Martinica"
3955
+
3956
+ #: pro/i18n/countries.php:142
3957
+ msgid "Mauritania"
3958
+ msgstr "Mauritania"
3959
+
3960
+ #: pro/i18n/countries.php:143
3961
+ msgid "Mauritius"
3962
+ msgstr "Mauricio"
3963
+
3964
+ #: pro/i18n/countries.php:144
3965
+ msgid "Mayotte"
3966
+ msgstr "Mayote"
3967
+
3968
+ #: pro/i18n/countries.php:145
3969
+ msgid "Mexico"
3970
+ msgstr "México"
3971
+
3972
+ #: pro/i18n/countries.php:146
3973
+ msgid "Micronesia"
3974
+ msgstr "Micronesia"
3975
+
3976
+ #: pro/i18n/countries.php:147
3977
+ msgid "Moldova"
3978
+ msgstr "Moldavia"
3979
+
3980
+ #: pro/i18n/countries.php:148
3981
+ msgid "Monaco"
3982
+ msgstr "Mónaco"
3983
+
3984
+ #: pro/i18n/countries.php:149
3985
+ msgid "Mongolia"
3986
+ msgstr "Mongolia"
3987
+
3988
+ #: pro/i18n/countries.php:150
3989
+ msgid "Montenegro"
3990
+ msgstr "Montenegro"
3991
+
3992
+ #: pro/i18n/countries.php:151
3993
+ msgid "Montserrat"
3994
+ msgstr "Montserrat"
3995
+
3996
+ #: pro/i18n/countries.php:152
3997
+ msgid "Morocco"
3998
+ msgstr "Marruecos"
3999
+
4000
+ #: pro/i18n/countries.php:153
4001
+ msgid "Mozambique"
4002
+ msgstr "Mozambique"
4003
+
4004
+ #: pro/i18n/countries.php:154
4005
+ msgid "Myanmar"
4006
+ msgstr "Myanmar"
4007
+
4008
+ #: pro/i18n/countries.php:155
4009
+ msgid "Namibia"
4010
+ msgstr "Namibia"
4011
+
4012
+ #: pro/i18n/countries.php:156
4013
+ msgid "Nauru"
4014
+ msgstr "Nauru"
4015
+
4016
+ #: pro/i18n/countries.php:157
4017
+ msgid "Nepal"
4018
+ msgstr "Nepal"
4019
+
4020
+ #: pro/i18n/countries.php:158
4021
+ msgid "Netherlands"
4022
+ msgstr "Países Bajos"
4023
+
4024
+ #: pro/i18n/countries.php:159
4025
+ msgid "Netherlands Antilles"
4026
+ msgstr "Antillas Holandesas"
4027
+
4028
+ #: pro/i18n/countries.php:160
4029
+ msgid "New Caledonia"
4030
+ msgstr "Nueva Caledonia"
4031
+
4032
+ #: pro/i18n/countries.php:161
4033
+ msgid "New Zealand"
4034
+ msgstr "Nueva Recordatorio"
4035
+
4036
+ #: pro/i18n/countries.php:162
4037
+ msgid "Nicaragua"
4038
+ msgstr "Nicaragua"
4039
+
4040
+ #: pro/i18n/countries.php:163
4041
+ msgid "Niger"
4042
+ msgstr "Níger"
4043
+
4044
+ #: pro/i18n/countries.php:164
4045
+ msgid "Nigeria"
4046
+ msgstr "Nigeria"
4047
+
4048
+ #: pro/i18n/countries.php:165
4049
+ msgid "Niue"
4050
+ msgstr "Niue"
4051
+
4052
+ #: pro/i18n/countries.php:166
4053
+ msgid "Norfolk Island"
4054
+ msgstr "Isla Norfolk"
4055
+
4056
+ #: pro/i18n/countries.php:167
4057
+ msgid "North Korea"
4058
+ msgstr "Corea del Norte"
4059
+
4060
+ #: pro/i18n/countries.php:168
4061
+ msgid "Norway"
4062
+ msgstr "Noruega"
4063
+
4064
+ #: pro/i18n/countries.php:169
4065
+ msgid "Oman"
4066
+ msgstr "Omán"
4067
+
4068
+ #: pro/i18n/countries.php:170
4069
+ msgid "Pakistan"
4070
+ msgstr "Pakistán"
4071
+
4072
+ #: pro/i18n/countries.php:171
4073
+ msgid "Palestinian Territory"
4074
+ msgstr "Territorios Palestinos"
4075
+
4076
+ #: pro/i18n/countries.php:172
4077
+ msgid "Panama"
4078
+ msgstr "Panamá"
4079
+
4080
+ #: pro/i18n/countries.php:173
4081
+ msgid "Papua New Guinea"
4082
+ msgstr "Papúa Nueva Guinea"
4083
+
4084
+ #: pro/i18n/countries.php:174
4085
+ msgid "Paraguay"
4086
+ msgstr "Paraguay"
4087
+
4088
+ #: pro/i18n/countries.php:175
4089
+ msgid "Peru"
4090
+ msgstr "Perú"
4091
+
4092
+ #: pro/i18n/countries.php:176
4093
+ msgid "Philippines"
4094
+ msgstr "Filipinas"
4095
+
4096
+ #: pro/i18n/countries.php:177
4097
+ msgid "Pitcairn"
4098
+ msgstr "Islas Pitcairn"
4099
+
4100
+ #: pro/i18n/countries.php:178
4101
+ msgid "Poland"
4102
+ msgstr "Polonia"
4103
+
4104
+ #: pro/i18n/countries.php:179
4105
+ msgid "Portugal"
4106
+ msgstr "Portugal"
4107
+
4108
+ #: pro/i18n/countries.php:180
4109
+ msgid "Qatar"
4110
+ msgstr "Catar"
4111
+
4112
+ #: pro/i18n/countries.php:181
4113
+ msgid "Reunion"
4114
+ msgstr "Reunión"
4115
+
4116
+ #: pro/i18n/countries.php:182
4117
+ msgid "Romania"
4118
+ msgstr "Rumanía"
4119
+
4120
+ #: pro/i18n/countries.php:183
4121
+ msgid "Russia"
4122
+ msgstr "Rusia"
4123
+
4124
+ #: pro/i18n/countries.php:184
4125
+ msgid "Rwanda"
4126
+ msgstr "Ruanda"
4127
+
4128
+ #: pro/i18n/countries.php:185
4129
+ msgid "Saint Barth&eacute;lemy"
4130
+ msgstr "San Bartolomé"
4131
+
4132
+ #: pro/i18n/countries.php:186
4133
+ msgid "Saint Helena"
4134
+ msgstr "Santa Elena"
4135
+
4136
+ #: pro/i18n/countries.php:187
4137
+ msgid "Saint Kitts and Nevis"
4138
+ msgstr "San Cristobal y Nieves"
4139
+
4140
+ #: pro/i18n/countries.php:188
4141
+ msgid "Saint Lucia"
4142
+ msgstr "Santa Lucía"
4143
+
4144
+ #: pro/i18n/countries.php:189
4145
+ msgid "Saint Martin (French part)"
4146
+ msgstr "Saint Martin (Parte Francesa)"
4147
+
4148
+ #: pro/i18n/countries.php:190
4149
+ msgid "Saint Martin (Dutch part)"
4150
+ msgstr "Saint Martin (Parte alemana)"
4151
+
4152
+ #: pro/i18n/countries.php:191
4153
+ msgid "Saint Pierre and Miquelon"
4154
+ msgstr "San Pedro y Miguelón"
4155
+
4156
+ #: pro/i18n/countries.php:192
4157
+ msgid "Saint Vincent and the Grenadines"
4158
+ msgstr "San Vicente y las Granadinas"
4159
+
4160
+ #: pro/i18n/countries.php:193
4161
+ msgid "San Marino"
4162
+ msgstr "San Marino"
4163
+
4164
+ #: pro/i18n/countries.php:194
4165
+ msgid "S&atilde;o Tom&eacute; and Pr&iacute;ncipe"
4166
+ msgstr "Santo Tomé y Príncipe"
4167
+
4168
+ #: pro/i18n/countries.php:195
4169
+ msgid "Saudi Arabia"
4170
+ msgstr "Arabia Saudita"
4171
+
4172
+ #: pro/i18n/countries.php:196
4173
+ msgid "Senegal"
4174
+ msgstr "Senegal"
4175
+
4176
+ #: pro/i18n/countries.php:197
4177
+ msgid "Serbia"
4178
+ msgstr "Serbia"
4179
+
4180
+ #: pro/i18n/countries.php:198
4181
+ msgid "Seychelles"
4182
+ msgstr "Seychelles"
4183
+
4184
+ #: pro/i18n/countries.php:199
4185
+ msgid "Sierra Leone"
4186
+ msgstr "Sierra Leona"
4187
+
4188
+ #: pro/i18n/countries.php:200
4189
+ msgid "Singapore"
4190
+ msgstr "Singapur"
4191
+
4192
+ #: pro/i18n/countries.php:201
4193
+ msgid "Slovakia"
4194
+ msgstr "Eslovaquia"
4195
+
4196
+ #: pro/i18n/countries.php:202
4197
+ msgid "Slovenia"
4198
+ msgstr "Eslovenia"
4199
+
4200
+ #: pro/i18n/countries.php:203
4201
+ msgid "Solomon Islands"
4202
+ msgstr "Islas Salomón"
4203
+
4204
+ #: pro/i18n/countries.php:204
4205
+ msgid "Somalia"
4206
+ msgstr "Somalia"
4207
+
4208
+ #: pro/i18n/countries.php:205
4209
+ msgid "South Africa"
4210
+ msgstr "Sudáfrica"
4211
+
4212
+ #: pro/i18n/countries.php:206
4213
+ msgid "South Georgia/Sandwich Islands"
4214
+ msgstr "Georgia del Sur / Islas Sandwich"
4215
+
4216
+ #: pro/i18n/countries.php:207
4217
+ msgid "South Korea"
4218
+ msgstr "Corea del Sur"
4219
+
4220
+ #: pro/i18n/countries.php:208
4221
+ msgid "South Sudan"
4222
+ msgstr "Sudán del Sur"
4223
+
4224
+ #: pro/i18n/countries.php:209
4225
+ msgid "Spain"
4226
+ msgstr "España"
4227
+
4228
+ #: pro/i18n/countries.php:210
4229
+ msgid "Sri Lanka"
4230
+ msgstr "Sri Lanka"
4231
+
4232
+ #: pro/i18n/countries.php:211
4233
+ msgid "Sudan"
4234
+ msgstr "Sudán"
4235
+
4236
+ #: pro/i18n/countries.php:212
4237
+ msgid "Suriname"
4238
+ msgstr "Surinam"
4239
+
4240
+ #: pro/i18n/countries.php:213
4241
+ msgid "Svalbard and Jan Mayen"
4242
+ msgstr "Svalbard y Jan Mayen"
4243
+
4244
+ #: pro/i18n/countries.php:214
4245
+ msgid "Swaziland"
4246
+ msgstr "Suazilandia"
4247
+
4248
+ #: pro/i18n/countries.php:215
4249
+ msgid "Sweden"
4250
+ msgstr "Suecia"
4251
+
4252
+ #: pro/i18n/countries.php:216
4253
+ msgid "Switzerland"
4254
+ msgstr "Suiza"
4255
+
4256
+ #: pro/i18n/countries.php:217
4257
+ msgid "Syria"
4258
+ msgstr "Siria"
4259
+
4260
+ #: pro/i18n/countries.php:218
4261
+ msgid "Taiwan"
4262
+ msgstr "Taiwán"
4263
+
4264
+ #: pro/i18n/countries.php:219
4265
+ msgid "Tajikistan"
4266
+ msgstr "Tayikistán"
4267
+
4268
+ #: pro/i18n/countries.php:220
4269
+ msgid "Tanzania"
4270
+ msgstr "Tanzania"
4271
+
4272
+ #: pro/i18n/countries.php:221
4273
+ msgid "Thailand"
4274
+ msgstr "Tailandia"
4275
+
4276
+ #: pro/i18n/countries.php:222
4277
+ msgid "Timor-Leste"
4278
+ msgstr "Timor Oriental"
4279
+
4280
+ #: pro/i18n/countries.php:223
4281
+ msgid "Togo"
4282
+ msgstr "Togo"
4283
+
4284
+ #: pro/i18n/countries.php:224
4285
+ msgid "Tokelau"
4286
+ msgstr "Tokelau"
4287
+
4288
+ #: pro/i18n/countries.php:225
4289
+ msgid "Tonga"
4290
+ msgstr "Tonga"
4291
+
4292
+ #: pro/i18n/countries.php:226
4293
+ msgid "Trinidad and Tobago"
4294
+ msgstr "Trinidad y Tobago"
4295
+
4296
+ #: pro/i18n/countries.php:227
4297
+ msgid "Tunisia"
4298
+ msgstr "Túnez"
4299
+
4300
+ #: pro/i18n/countries.php:228
4301
+ msgid "Turkey"
4302
+ msgstr "Turquía"
4303
+
4304
+ #: pro/i18n/countries.php:229
4305
+ msgid "Turkmenistan"
4306
+ msgstr "Turkmenistán"
4307
+
4308
+ #: pro/i18n/countries.php:230
4309
+ msgid "Turks and Caicos Islands"
4310
+ msgstr "Islas Turcas y Caicos"
4311
+
4312
+ #: pro/i18n/countries.php:231
4313
+ msgid "Tuvalu"
4314
+ msgstr "Tuvalu"
4315
+
4316
+ #: pro/i18n/countries.php:232
4317
+ msgid "Uganda"
4318
+ msgstr "Uganda"
4319
+
4320
+ #: pro/i18n/countries.php:233
4321
+ msgid "Ukraine"
4322
+ msgstr "Ucrania"
4323
+
4324
+ #: pro/i18n/countries.php:234
4325
+ msgid "United Arab Emirates"
4326
+ msgstr "Emiratos Árabes Unidos"
4327
+
4328
+ #: pro/i18n/countries.php:235
4329
+ msgid "United Kingdom (UK)"
4330
+ msgstr "Reino Unido (UK)"
4331
+
4332
+ #: pro/i18n/countries.php:236
4333
+ msgid "United States"
4334
+ msgstr "Los Estados Unidos"
4335
+
4336
+ #: pro/i18n/countries.php:237
4337
+ msgid "Uruguay"
4338
+ msgstr "Urugüay"
4339
+
4340
+ #: pro/i18n/countries.php:238
4341
+ msgid "Uzbekistan"
4342
+ msgstr "Uzbekistán"
4343
+
4344
+ #: pro/i18n/countries.php:239
4345
+ msgid "Vanuatu"
4346
+ msgstr "Vanuatu"
4347
+
4348
+ #: pro/i18n/countries.php:240
4349
+ msgid "Vatican"
4350
+ msgstr "Vaticano"
4351
+
4352
+ #: pro/i18n/countries.php:241
4353
+ msgid "Venezuela"
4354
+ msgstr "Venezuela"
4355
+
4356
+ #: pro/i18n/countries.php:242
4357
+ msgid "Vietnam"
4358
+ msgstr "Vietnam"
4359
+
4360
+ #: pro/i18n/countries.php:243
4361
+ msgid "Wallis and Futuna"
4362
+ msgstr "Wallis y Futuna"
4363
+
4364
+ #: pro/i18n/countries.php:244
4365
+ msgid "Western Sahara"
4366
+ msgstr "Sahara"
4367
+
4368
+ #: pro/i18n/countries.php:245
4369
+ msgid "Western Samoa"
4370
+ msgstr "Samoa Oriental"
4371
+
4372
+ #: pro/i18n/countries.php:246
4373
+ msgid "Yemen"
4374
+ msgstr "Yemen"
4375
+
4376
+ #: pro/i18n/countries.php:247
4377
+ msgid "Zambia"
4378
+ msgstr "Zambia"
4379
+
4380
+ #: pro/i18n/countries.php:248
4381
+ msgid "Zimbabwe"
4382
+ msgstr "Zimbawe"
4383
+
4384
+ #: script/i18n/pomo/sample/app.php:56
4385
+ msgid "Welcome %s!"
4386
+ msgstr "Bienvenido, %s!"
4387
+
4388
+ #: script/i18n/pomo/sample/app.php:60
4389
+ msgid "A string with low priority!"
4390
+ msgstr "¡Cadena con prioridad baja!"
4391
+
4392
+ #: script/i18n/pomo/sample/app.php:62
4393
+ msgid "Bye\n"
4394
+ msgstr "Adiós\n"
4395
+
4396
+ #. Plugin Name of the plugin/theme
4397
+ msgid "Pretty Link Lite"
4398
+ msgstr "Pretty Link Lite"
4399
+
4400
+ #. Plugin URI of the plugin/theme
4401
+ msgid "http://blairwilliams.com/pretty-link"
4402
+ msgstr "http://blairwilliams.com/pretty-link"
4403
+
4404
+ #. Description of the plugin/theme
4405
+ msgid ""
4406
+ "Shrink, track and share any URL on the Internet from your WordPress website!"
4407
+ msgstr ""
4408
+ "¡Reducir, hacer siguimiento y compartir cualquier URL en el Internet desde su "
4409
+ "sitio de WordPress!"
4410
+
4411
+ #. Author of the plugin/theme
4412
+ msgid "Caseproof"
4413
+ msgstr "Caseproof"
4414
+
4415
+ #. Author URI of the plugin/theme
4416
+ msgid "http://caseproof.com"
4417
+ msgstr "http://caseproof.com"
4418
+
4419
+ #~ msgid ""
4420
+ #~ "Database Upgrade is required for Pretty Link to work properly<br/>"
4421
+ #~ "%1$sAutomatically Upgrade your Database%2$s"
4422
+ #~ msgstr ""
4423
+ #~ "Se requiere la actualización de base de datos para que Pretty Link funcione "
4424
+ #~ "correctamente <br/>%1$sActualice automaticamente su base de datos%2$s"
4425
+
4426
+ #~ msgid "Your Database Has Been Successfully Upgraded."
4427
+ #~ msgstr "¡Su base de datos se ha actualizado correctamente!"
4428
+
4429
+ #~ msgid "Enable Permalink Prefix"
4430
+ #~ msgstr "Activar el prefijo de Permalink"
4431
+
4432
+ #~ msgid "Use Prefix from Permalink Structure"
4433
+ #~ msgstr "Usar Prefijo de la estructura de Permalink"
4434
+
4435
+ #~ msgid ""
4436
+ #~ "This option should only be checked if you have elements in your permalink "
4437
+ #~ "structure that must be present in any link on your site. For example, some "
4438
+ #~ "WordPress installs don't have the benefit of full rewrite capabilities and "
4439
+ #~ "in this case you'd need an index.php included in each link (http://example."
4440
+ #~ "com/index.php/mycoolslug instead of http://example.com/mycoolslug). If this "
4441
+ #~ "is the case for you then check this option but the vast majority of users "
4442
+ #~ "will want to keep this unchecked."
4443
+ #~ msgstr ""
4444
+ #~ "Esta opción sólo debe estar activado si tiene elementos en su estructura de "
4445
+ #~ "permalink que deben estar presentes en cualquier enlace en su sitio. Por "
4446
+ #~ "ejemplo, algunas instalaciones de WordPress no tienen la ventaja de las "
4447
+ #~ "capacidades de reescritura completa y en este caso sería necesario un index."
4448
+ #~ "php incluidos en cada enlace (http://ejemplo.com/index.php/migenialslug en "
4449
+ #~ "vez de http://ejemplo.com/migenialslug ). Si es el caso con usted active "
4450
+ #~ "esta opción pero la gran mayoría de los usuarios querrán mantener este "
4451
+ #~ "desactivada."
images/bookmark.png DELETED
Binary file
images/co.mments.gif DELETED
Binary file
images/delicious_32.png DELETED
Binary file
images/digg_32.png DELETED
Binary file
images/email_32.png DELETED
Binary file
images/facebook.png DELETED
Binary file
images/facebook_32.png DELETED
Binary file
images/forward_params.png DELETED
Binary file
images/hyves_32.png DELETED
Binary file
images/index.php ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <?php /* Silence will fall */ ?>
2
+
images/linkedin_32.png DELETED
Binary file
images/mixx_32.png DELETED
Binary file
images/newsvine_32.png DELETED
Binary file
images/nofollow.png DELETED
Binary file
images/pbar_grad.png ADDED
Binary file
images/pixel_track.png DELETED
Binary file
images/pl-logo-horiz-RGB.png ADDED
Binary file
images/pl-logo-horiz-RGB.svg ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="-716 955.5 529.7 90.4" style="enable-background:new -716 955.5 529.7 90.4;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#4FD6F6;}
7
+ .st1{fill:#9AE8FA;}
8
+ .st2{fill:#03C5F2;}
9
+ .st3{fill:url(#SVGID_1_);}
10
+ .st4{fill:#06429E;}
11
+ </style>
12
+ <g id="Pantone_2728">
13
+ </g>
14
+ <g id="Pantone_2995_-_overprint">
15
+ </g>
16
+ <g id="Pantone_311_-_overprint">
17
+ </g>
18
+ <g>
19
+ <path class="st0" d="M-630,988.6c-1.9-1.9-2.8-4.4-2.9-7c-15-0.9-30-0.4-46,1.5c-1.3,0.2-2.2,1-2.3,1.7c-0.2,0.8,0.7,1.3,1,1.4
20
+ c6.8,3,10.3,4.8,16.6,8.4c0.5,0.3,1.1,0.4,1.8,0.4c3.2-0.2,6.4-0.4,9.5-0.5c10-0.3,19.7,0.1,29.1,1.1L-630,988.6z"/>
21
+ <path class="st1" d="M-614.2,1005l-2.9-3c-10.7-1.6-21.5-2.4-32.3-2.2l0,0c-1,0-1.9,0.6-2.1,1.3c-0.3,0.7,0.2,1.4,0.7,1.7
22
+ c5.8,4,8.6,6.2,13.8,10.7c0.4,0.3,0.8,0.5,1.3,0.5c6.4,0.4,11.5,0.8,16.3,1.5L-614.2,1005z"/>
23
+ <path class="st2" d="M-623.1,971.3c0.6,0,1.1,0,1.7,0.1l23,2.8l3.5-7c-40.3-8.2-78.2-6.8-118.5,4.1c-1.5,0.5-2.5,1.5-2.6,2.3
24
+ c-0.1,0.7,1,1,1.3,1.1c7.8,1.8,11.7,3,19.2,5.5c0.7,0.2,1.5,0.3,2.3,0.1c13.8-2.6,27-4,40-4.4c7.3-0.2,14.6-0.1,21.9,0.4
25
+ C-629.7,973.3-626.5,971.4-623.1,971.3z"/>
26
+
27
+ <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-668.6937" y1="980.4662" x2="-582.4924" y2="980.4662" gradientTransform="matrix(0.9992 -3.980000e-02 -3.980000e-02 -0.9992 80.9852 1955.9426)">
28
+ <stop offset="0" style="stop-color:#FF8C00"/>
29
+ <stop offset="0.7" style="stop-color:#FFD200"/>
30
+ </linearGradient>
31
+ <path class="st3" d="M-540.5,990.2c-0.4-1.9-1.9-3.3-3.8-3.5l-26.9-3.3l-4.3-24.2c-0.3-1.9-1.8-3.3-3.7-3.6
32
+ c-1.9-0.3-3.7,0.7-4.6,2.4l-11.3,22.5l-27-3.3c-1.9-0.2-3.7,0.7-4.5,2.4c-0.8,1.7-0.5,3.7,0.8,5.1l18.7,19.4l-13.8,27.5l0,0l0,0
33
+ c-0.1,0.1-0.1,0.2-0.1,0.3s-0.1,0.2-0.1,0.3c0,0.1-0.1,0.2-0.1,0.3s-0.1,0.2-0.1,0.4c0,0.1,0,0.2,0,0.4c0,0.1,0,0.2,0,0.4
34
+ c0,0.1,0,0.2,0,0.3s0,0.2,0,0.3s0.1,0.2,0.1,0.3c0,0.1,0.1,0.2,0.1,0.4c0,0.1,0.1,0.2,0.1,0.3c0.1,0.1,0.1,0.2,0.2,0.4
35
+ c0,0.1,0.1,0.2,0.2,0.3c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0.1,0.1,0.1,0.2,0.2s0.2,0.2,0.3,0.3l0,0l0,0c0.2,0.2,0.4,0.3,0.5,0.4
36
+ c0.1,0,0.1,0.1,0.2,0.1c0.1,0.1,0.3,0.2,0.4,0.2c0.1,0,0.2,0.1,0.3,0.1c0.1,0,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3,0.1
37
+ c0.1,0,0.2,0.1,0.4,0.1l0,0c0.1,0,0.3,0,0.4,0s0.2,0,0.3,0c0.2,0,0.3,0,0.5-0.1c0.1,0,0.2,0,0.2,0c0.2,0,0.4-0.1,0.5-0.2
38
+ c0.1,0,0.1,0,0.2,0c0.2-0.1,0.4-0.2,0.7-0.3l25.4-15l20.5,22.2c0.7,0.8,1.7,1.3,2.7,1.4c0.8,0.1,1.7,0,2.5-0.4
39
+ c1.8-0.9,2.7-2.8,2.4-4.7l-5.6-31.6l24.1-14.2C-540.9,993.9-540.1,992-540.5,990.2z"/>
40
+ </g>
41
+ <path class="st4" d="M-410.9,1008.6c1.5,0,2.8-1.3,2.8-2.8c0-13-8.1-19-18.7-19c-11.2,0-19.2,8-19.2,19.2c0,11.8,8,19.4,19.5,19.4
42
+ c5.4,0,11.5-2,15.2-5.8c0.6-0.6,0.8-1.2,0.8-2c0-1.5-1.2-2.8-2.8-2.8c-0.8,0-1.5,0.3-2,0.8c-2.6,2.6-7.3,4-11.1,4
43
+ c-7.1,0-12.8-4.3-13.4-11.1L-410.9,1008.6z M-439.8,1003.4c1.1-7.1,6.7-11,13.1-11c7.3,0,12.2,3.9,12.5,11H-439.8z"/>
44
+ <path class="st4" d="M-500,986.9c-5.5,0-11,2.2-13.7,7.1v-4.1c0-1.7-1.3-3.1-3-3.1s-3,1.4-3,3.1c0,0,0,47.7,0,49.3
45
+ c0,1.7,1.3,3.1,3,3.1s3-1.4,3-3.1c0-1.7,0-21.3,0-21.3c2.6,5,8.6,7.4,13.8,7.4c10.6,0,18.9-6.7,18.9-19.2
46
+ C-481.1,993.8-489.3,986.9-500,986.9z M-500.4,1019.6c-7.3,0-13.1-5.5-13.1-13.4c0-8,5.7-13.4,13.1-13.4c7.2,0,13.1,4.9,13.1,13.4
47
+ C-487.3,1014.9-493.2,1019.6-500.4,1019.6z"/>
48
+ <path class="st4" d="M-450.2,988.3c-2.1-1-4.1-1.5-6.6-1.5c-4.6,0-9.2,1.7-11.6,5.7v-2.7c0-1.6-1.3-3-3-3c-1.7,0-3,1.3-3,3
49
+ c0,0,0,30.8,0,32.5s1.4,3.1,3.1,3.1c1.7,0,3.1-1.4,3.1-3.1c0-1.7,0-18.3,0-18.3c0-7.1,3.9-11,11-11.1c1.7,0,3.1,0.3,4.5,1
50
+ c0.4,0.2,0.8,0.3,1.2,0.3c1.7,0,3-1.3,3-3C-448.5,989.8-449.2,988.7-450.2,988.3z"/>
51
+ <path class="st4" d="M-379.9,1022c0-1.5-1.2-2.7-2.7-2.7c-0.2,0-0.5,0-0.7,0.1l0,0c-0.8,0.2-1.6,0.3-2.4,0.3c-4.4,0-5.9-2.8-5.9-7.1
52
+ V993h7c1.5,0,2.6-1.2,2.6-2.6c0-1.4-1.2-2.6-2.6-2.6h-6.9V980c0-1.7-1.4-3.1-3.1-3.1s-3.1,1.4-3.1,3.1v7.8h-4.8
53
+ c-1.5,0-2.6,1.2-2.6,2.6c0,1.5,1.2,2.6,2.6,2.6h4.8v19.6c0,8.2,3.8,12.8,11.7,12.7c1.3,0,2.6-0.2,3.9-0.6l0,0c0.1,0,0.2-0.1,0.2-0.1
54
+ C-380.7,1024.3-379.9,1023.3-379.9,1022z"/>
55
+ <path class="st4" d="M-352.6,1022c0-1.5-1.2-2.7-2.7-2.7c-0.2,0-0.5,0-0.7,0.1l0,0c-0.8,0.2-1.6,0.3-2.4,0.3c-4.4,0-5.9-2.8-5.9-7.1
56
+ V993h8.2c1.5,0,2.6-1.2,2.6-2.6c0-1.4-1.2-2.6-2.6-2.6h-8.1V980c0-1.7-1.4-3.1-3.1-3.1s-3.1,1.4-3.1,3.1v7.8h-4.8
57
+ c-1.5,0-2.6,1.2-2.6,2.6c0,1.4,1.2,2.6,2.6,2.6h4.8v19.6c0,8.2,3.8,12.8,11.7,12.7c1.3,0,2.6-0.2,3.9-0.6l0,0c0.1,0,0.2-0.1,0.2-0.1
58
+ C-353.4,1024.3-352.6,1023.3-352.6,1022z"/>
59
+ <path class="st4" d="M-312.8,989.9c0-1.7-1.4-3.2-3.2-3.2c-1.4,0-2.5,0.9-3,2.1l-11.1,28.8l-12-29l0,0c-0.5-1.1-1.6-1.8-2.8-1.8
60
+ c-1.7,0-3.2,1.4-3.2,3.2c0,0.4,0.1,0.8,0.2,1.2l0,0l14.1,33.1l-3.5,8.9c-1.8,3.9-5,3.8-8.2,2.4l0,0c-0.4-0.2-0.7-0.3-1.2-0.3
61
+ c-1.6,0-2.8,1.3-2.8,2.8c0,1.1,0.7,2.1,1.6,2.5l0,0c6.8,3.3,13.3,2.1,16.4-5.7l18.2-44C-312.8,990.7-312.8,990.3-312.8,989.9z"/>
62
+ <path class="st4" d="M-240.1,987c-5,0-8.9,1.7-12.4,6.5v-2.8c0-1.6-1.3-3-3-3c-1.6,0-3,1.3-3,3v31.8c0,1.7,1.4,3,3,3
63
+ c1.7,0,3-1.4,3-3v-17.6c0-7.3,5-12,11.7-12c7.6,0,10.6,3.6,10.6,11.6v18c0,1.7,1.4,3.1,3.1,3.1s3.1-1.4,3.1-3.1v-18.3
64
+ C-223.9,993.3-229.3,987-240.1,987z"/>
65
+ <path class="st4" d="M-200.2,1003.1l13-10.9c0.6-0.5,0.9-1.2,0.9-2c0-1.4-1.2-2.6-2.6-2.6c-0.7,0-1.3,0.3-1.8,0.7L-209,1004v-28.8
66
+ c0-1.7-1.4-3-3-3c-1.7,0-3,1.4-3,3v47.2c0,1.7,1.4,3,3,3c1.7,0,3-1.4,3-3v-12.1l4.1-3.4l12.6,17.4c0.6,0.7,1.4,1.2,2.4,1.2
67
+ c1.7,0,3.1-1.4,3.1-3.1c0-0.7-0.2-1.3-0.6-1.8L-200.2,1003.1z"/>
68
+ <path class="st4" d="M-289.9,972.2c-1.7,0-3,1.4-3,3v47.2c0,1.7,1.4,3,3,3s3-1.4,3-3v-47.2C-286.8,973.5-288.2,972.2-289.9,972.2z"
69
+ />
70
+ <g>
71
+ <path class="st4" d="M-268.2,979.6c0-4.9-7.4-4.9-7.4-0.1C-275.6,984.5-268.2,984.5-268.2,979.6z"/>
72
+ <path class="st4" d="M-272,988.9c-1.7,0-3.1,1.4-3.1,3.1v30.3c0,1.7,1.4,3.1,3.1,3.1s3.1-1.4,3.1-3.1V992
73
+ C-268.9,990.3-270.3,988.9-272,988.9z"/>
74
+ </g>
75
+ </svg>
images/pretty-link-48x48.png CHANGED
Binary file
images/pretty-link-add.png DELETED
Binary file
images/pretty-link-med.png DELETED
Binary file
images/pretty-link-small.png CHANGED
Binary file
images/prettylink_logo.jpg DELETED
Binary file
images/prettylink_logo_64.jpg DELETED
Binary file
images/prettylink_logo_med.jpg DELETED
Binary file
images/prettylink_logo_small.jpg DELETED
Binary file
images/reddit_32.png DELETED
Binary file
images/retweet.gif DELETED
Binary file
images/retweet.png DELETED
Binary file
images/settings_table/arrow_sprite.png ADDED
Binary file
images/sphinn_32.png DELETED
Binary file
images/square-loader.gif ADDED
Binary file
images/stumbleupon_32.png DELETED
Binary file
images/technorati_32.png DELETED
Binary file
images/tinymce_form_popup.png ADDED
Binary file
images/tracking.png DELETED
Binary file
images/tweet.gif DELETED
Binary file
images/tweet.png DELETED
Binary file
images/twitter_32.png DELETED
Binary file
images/ultra-cloak.png DELETED
Binary file
images/url_icon.gif DELETED
Binary file
images/yahoobuzz_32.png DELETED
Binary file
includes/php/php_browsecap.ini DELETED
@@ -1,24942 +0,0 @@
1
- ;;; Provided courtesy of https://browsers.garykeith.com
2
- ;;; Created on Wednesday, August 15, 2012 at 12:20 AM UTC
3
-
4
- ;;; Keep up with the latest goings-on with the project:
5
- ;;; Follow us on Twitter <https://twitter.com/browscap>, or...
6
- ;;; Like us on Facebook <https://facebook.com/browscap>, or...
7
- ;;; Collaborate on GitHub <https://github.com/GaryKeith/browscap>, or...
8
- ;;; Discuss on Google Groups <https://groups.google.com/d/forum/browscap>.
9
-
10
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Version
11
-
12
- [GJK_Browscap_Version]
13
- Version=5011
14
- Released=Wed, 15 Aug 2012 00:20:23 -0000
15
-
16
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties
17
-
18
- [DefaultProperties]
19
- Comment="DefaultProperties"
20
- Browser="DefaultProperties"
21
- Version=0.0
22
- MajorVer=0
23
- MinorVer=0
24
- Platform="unknown"
25
- Platform_Version="unknown"
26
- Alpha=false
27
- Beta=false
28
- Win16=false
29
- Win32=false
30
- Win64=false
31
- Frames=false
32
- IFrames=false
33
- Tables=false
34
- Cookies=false
35
- BackgroundSounds=false
36
- JavaScript=false
37
- VBScript=false
38
- JavaApplets=false
39
- ActiveXControls=false
40
- isMobileDevice=false
41
- isSyndicationReader=false
42
- Crawler=false
43
- CssVersion=0
44
- AolVersion=0
45
-
46
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ask
47
-
48
- [Ask]
49
- Parent=DefaultProperties
50
- Comment="Ask"
51
- Browser="Ask"
52
- Frames=true
53
- IFrames=true
54
- Tables=true
55
- Crawler=true
56
-
57
- [Mozilla/?.0 (compatible; Ask Jeeves/Teoma*)]
58
- Parent=Ask
59
- Browser="Teoma"
60
-
61
- [Mozilla/2.0 (compatible; Ask Jeeves)]
62
- Parent=Ask
63
- Browser="AskJeeves"
64
-
65
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Baidu
66
-
67
- [Baidu]
68
- Parent=DefaultProperties
69
- Comment="Baidu"
70
- Browser="Baidu"
71
- Frames=true
72
- IFrames=true
73
- Tables=true
74
- Crawler=true
75
-
76
- [*Baiduspider*]
77
- Parent=Baidu
78
- Browser="BaiDu"
79
-
80
- [*Baiduspider-ads*]
81
- Parent=Baidu
82
- Browser="Baidu Business search"
83
-
84
- [*Baiduspider-cpro*]
85
- Parent=Baidu
86
- Browser="Baidu Union"
87
-
88
- [*Baiduspider-favo*]
89
- Parent=Baidu
90
- Browser="Baidu bookmark"
91
-
92
- [*Baiduspider-image*]
93
- Parent=Baidu
94
- Browser="Baidu Image search"
95
-
96
- [*Baiduspider-mobile*]
97
- Parent=Baidu
98
- Browser="Baidu Mobile search"
99
-
100
- [*Baiduspider-news*]
101
- Parent=Baidu
102
- Browser="Baidu News search"
103
-
104
- [*Baiduspider-video*]
105
- Parent=Baidu
106
- Browser="Baidu Video search"
107
-
108
- [AC-BaiduBot/*]
109
- Parent=Baidu
110
- Browser="AC-BaiduBot"
111
-
112
- [BaiduImageSpider*]
113
- Parent=Baidu
114
- Browser="BaiduImageSpider"
115
-
116
- [Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)]
117
- Parent=Baidu
118
- Browser="Baiduspider"
119
- Version=2.0
120
- MajorVer=2
121
- MinorVer=0
122
-
123
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Google
124
-
125
- [Google]
126
- Parent=DefaultProperties
127
- Comment="Google"
128
- Browser="Google"
129
- Frames=true
130
- IFrames=true
131
- Tables=true
132
- Crawler=true
133
-
134
- [*Google Web Preview*]
135
- Parent=Google
136
- Browser="Google Web Preview"
137
-
138
- [*Googlebot-Mobile/2.*]
139
- Parent=Google
140
- Browser="Googlebot-Mobile"
141
- Frames=false
142
- IFrames=false
143
- Tables=false
144
-
145
- [*Googlebot/2.1*]
146
- Parent=Google
147
- Browser="Googlebot"
148
- Version=2.1
149
- MajorVer=2
150
- MinorVer=1
151
-
152
- [AdsBot-Google*]
153
- Parent=Google
154
- Browser="AdsBot-Google"
155
-
156
- [AdsBot-Google-Mobile*]
157
- Parent=Google
158
- Browser="AdsBot-Google-Mobile"
159
-
160
- [AppEngine-Google*]
161
- Parent=Google
162
- Browser="AppEngine-Google"
163
-
164
- [Feedfetcher-Google*]
165
- Parent=Google
166
- Browser="Feedfetcher-Google"
167
- isSyndicationReader=true
168
-
169
- [Feedfetcher-Google-iGoogleGadgets*]
170
- Parent=Google
171
- Browser="iGoogleGadgets"
172
- isSyndicationReader=true
173
-
174
- [google (*Enterprise*)]
175
- Parent=Google
176
- Browser="Google Enterprise"
177
-
178
- [Google OpenSocial agent*]
179
- Parent=Google
180
- Browser="Google OpenSocial"
181
-
182
- [Google-Site-Verification*]
183
- Parent=Google
184
- Browser="Google-Site-Verification/1.0"
185
- Version=1.0
186
- MajorVer=1
187
- MinorVer=0
188
-
189
- [Google-Sitemaps*]
190
- Parent=Google
191
- Browser="Google-Sitemaps"
192
-
193
- [Googlebot-Image*]
194
- Parent=Google
195
- Browser="Googlebot-Image"
196
-
197
- [Googlebot-News*]
198
- Parent=Google
199
- Browser="Googlebot-News"
200
-
201
- [googlebot-urlconsole]
202
- Parent=Google
203
- Browser="googlebot-urlconsole"
204
-
205
- [Googlebot-Video*]
206
- Parent=Google
207
- Browser="Google-Video"
208
-
209
- [Googlebot/Test*]
210
- Parent=Google
211
- Browser="Googlebot/Test"
212
-
213
- [GoogleFriendConnect*]
214
- Parent=Google
215
- Browser="Google Friend Connect"
216
-
217
- [gsa-crawler*]
218
- Parent=Google
219
- Browser="Google Search Appliance"
220
-
221
- [Mediapartners-Google*]
222
- Parent=Google
223
- Browser="Mediapartners-Google"
224
-
225
- [Mozilla/5.0 (*Feedfetcher-Google*)]
226
- Parent=Google
227
- Browser="Google Feedfetcher"
228
-
229
- [Mozilla/5.0 (*Google Desktop*)]
230
- Parent=Google
231
- Browser="Google Desktop"
232
-
233
- [Mozilla/5.0 (*Google Keyword Tool*)]
234
- Parent=Google
235
- Browser="Google Keyword Tool"
236
-
237
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MSN
238
-
239
- [MSN]
240
- Parent=DefaultProperties
241
- Comment="MSN"
242
- Browser="MSN"
243
- Frames=true
244
- IFrames=true
245
- Tables=true
246
- Crawler=true
247
-
248
- [adidxbot/1.1 (?http://search.msn.com/msnbot.htm)]
249
- Parent=MSN
250
- Browser="adidxbot"
251
-
252
- [librabot/1.0 (*)]
253
- Parent=MSN
254
- Browser="librabot"
255
-
256
- [llssbot/1.0]
257
- Parent=MSN
258
- Browser="llssbot"
259
- Version=1.0
260
- MajorVer=1
261
- MinorVer=0
262
-
263
- [Microsoft Bing Mobile SocialStreams Bot]
264
- Parent=MSN
265
- Browser="Microsoft Bing Mobile SocialStreams Bot"
266
-
267
- [Mozilla/5.0 (compatible; bingbot/2.*http://www.bing.com/bingbot.htm)]
268
- Parent=MSN
269
- Browser="BingBot"
270
-
271
- [Mozilla/5.0 (Danger hiptop 3.*; U; rv:1.7.*) Gecko/*]
272
- Parent=MSN
273
- Browser="Danger"
274
-
275
- [MSMOBOT/1.1*]
276
- Parent=MSN
277
- Browser="msnbot-mobile"
278
- Version=1.1
279
- MajorVer=1
280
- MinorVer=1
281
-
282
- [MSNBot-Academic/1.0*]
283
- Parent=MSN
284
- Browser="MSNBot-Academic"
285
- Version=1.0
286
- MajorVer=1
287
- MinorVer=0
288
-
289
- [msnbot-media/1.0*]
290
- Parent=MSN
291
- Browser="msnbot-media"
292
- Version=1.0
293
- MajorVer=1
294
- MinorVer=0
295
-
296
- [msnbot-media/1.1*]
297
- Parent=MSN
298
- Browser="msnbot-media"
299
- Version=1.1
300
- MajorVer=1
301
- MinorVer=1
302
-
303
- [MSNBot-News/1.0*]
304
- Parent=MSN
305
- Browser="MSNBot-News"
306
- Version=1.0
307
- MajorVer=1
308
- MinorVer=0
309
-
310
- [MSNBot-NewsBlogs/1.0*]
311
- Parent=MSN
312
- Browser="MSNBot-NewsBlogs"
313
- Version=1
314
- MajorVer=1
315
-
316
- [msnbot-NewsBlogs/2.* (+http://search.msn.com/msnbot.htm)]
317
- Parent=MSN
318
- Browser="msnbot-NewsBlogs"
319
- Version=2.0
320
- MajorVer=2
321
- MinorVer=0
322
-
323
- [msnbot-products]
324
- Parent=MSN
325
- Browser="msnbot-products"
326
-
327
- [msnbot-webmaster/1.0 (*http://search.msn.com/msnbot.htm)]
328
- Parent=MSN
329
- Browser="msnbot-webmaster tools"
330
-
331
- [msnbot/1.0*]
332
- Parent=MSN
333
- Browser="msnbot"
334
- Version=1.0
335
- MajorVer=1
336
- MinorVer=0
337
-
338
- [msnbot/1.1*]
339
- Parent=MSN
340
- Browser="msnbot"
341
- Version=1.1
342
- MajorVer=1
343
- MinorVer=1
344
-
345
- [msnbot/2.0b*]
346
- Parent=MSN
347
- Browser="msnbot"
348
- Version=2.0
349
- MajorVer=2
350
- MinorVer=0
351
- Beta=true
352
-
353
- [MSR-ISRCCrawler]
354
- Parent=MSN
355
- Browser="MSR-ISRCCrawler"
356
-
357
- [MSRBOT*]
358
- Parent=MSN
359
- Browser="MSRBOT"
360
-
361
- [renlifangbot/1.0 (?http://search.msn.com/msnbot.htm)]
362
- Parent=MSN
363
- Browser="renlifangbot"
364
-
365
- [T-Mobile Dash Mozilla/4.0 (*) MSNBOT-MOBILE/1.1 (*)]
366
- Parent=MSN
367
- Browser="msnbot-mobile"
368
-
369
- [Windows-Live-Social-Object-Extractor-Engine/1.0]
370
- Parent=MSN
371
- Browser="Windows-Live-Social-Object-Extractor-Eng"
372
-
373
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yahoo
374
-
375
- [Yahoo]
376
- Parent=DefaultProperties
377
- Comment="Yahoo"
378
- Browser="Yahoo"
379
- Frames=true
380
- IFrames=true
381
- Tables=true
382
- Crawler=true
383
-
384
- [Mozilla/4.0 (compatible; Y!J; for robot study*)]
385
- Parent=Yahoo
386
- Browser="Y!J"
387
-
388
- [Mozilla/5.0 (compatible; BMC/* (Y!J-AGENT))]
389
- Parent=Yahoo
390
- Browser="Y!J-AGENT/BMC"
391
-
392
- [Mozilla/5.0 (compatible; BMF/* (Y!J-AGENT))]
393
- Parent=Yahoo
394
- Browser="Y!J-AGENT/BMF"
395
-
396
- [Mozilla/5.0 (compatible; BMI/* (Y!J-AGENT; 1.0))]
397
- Parent=Yahoo
398
- Browser="Y!J-AGENT/BMI"
399
-
400
- [Mozilla/5.0 (compatible; Yahoo! DE Slurp; http://help.yahoo.com/help/us/ysearch/slurp)]
401
- Parent=Yahoo
402
- Browser="Yahoo! Directory Engine"
403
-
404
- [Mozilla/5.0 (compatible; Yahoo! SearchMonkey*)]
405
- Parent=Yahoo
406
- Browser="Yahoo! Search Monkey"
407
-
408
- [Mozilla/5.0 (compatible; Yahoo! Slurp China*;*http://misc.yahoo.com.cn/help.html)]
409
- Parent=Yahoo
410
- Browser="Yahoo! Slurp China"
411
-
412
- [Mozilla/5.0 (compatible; Yahoo! Slurp*;*http://help.yahoo.com/help/us/ysearch/slurp)]
413
- Parent=Yahoo
414
- Browser="Yahoo! Slurp"
415
- Version=3.0
416
- MajorVer=3
417
- MinorVer=0
418
-
419
- [Mozilla/5.0 (compatible; Yahoo! Verifier/*)]
420
- Parent=Yahoo
421
- Browser="Yahoo! Verifier"
422
- Version=1.1
423
- MajorVer=1
424
- MinorVer=1
425
-
426
- [Mozilla/5.0 (compatible; Yahoo!-AdCrawler;*http://help.yahoo.com/yahoo_adcrawler)]
427
- Parent=Yahoo
428
- Browser="Yahoo!-AdCrawler"
429
-
430
- [Mozilla/5.0 (compatible; YahooSeeker/M1A1-R2D2*)]
431
- Parent=Yahoo
432
- Browser="YahooSeeker-Mobile"
433
-
434
- [Mozilla/5.0 (Yahoo-MMCrawler/*; mailto:vertical-crawl-support@yahoo-inc.com)]
435
- Parent=Yahoo
436
- Browser="Yahoo-MMCrawler"
437
- Version=4.0
438
- MajorVer=4
439
- MinorVer=0
440
-
441
- [Mozilla/5.0 (Yahoo-Test/*)]
442
- Parent=Yahoo
443
- Browser="Yahoo-Test"
444
-
445
- [Mozilla/5.0 (YahooYSMcm*)]
446
- Parent=Yahoo
447
- Browser="YahooYSMcm"
448
-
449
- [mp3Spider cn-search-devel at yahoo-inc dot com]
450
- Parent=Yahoo
451
- Browser="Yahoo! Media"
452
-
453
- [My Browser]
454
- Parent=Yahoo
455
- Browser="Yahoo! My Browser"
456
-
457
- [Scooter*]
458
- Parent=Yahoo
459
- Browser="Scooter"
460
-
461
- [Scooter/*Y!CrawlX]
462
- Parent=Yahoo
463
- Browser="Scooter/3.3Y!CrawlX"
464
- Version=3.3
465
- MajorVer=3
466
- MinorVer=3
467
-
468
- [slurp]
469
- Parent=Yahoo
470
- Browser="slurp"
471
-
472
- [Y!J SearchMonkey*]
473
- Parent=Yahoo
474
- Browser="YahooFeedSeeker"
475
- isSyndicationReader=true
476
-
477
- [Y!J-BRE*]
478
- Parent=Yahoo
479
- Browser="YahooFeedSeeker"
480
- isSyndicationReader=true
481
-
482
- [Y!J-BRG/GSC*]
483
- Parent=Yahoo
484
- Browser="YahooFeedSeeker"
485
- isSyndicationReader=true
486
-
487
- [Y!J-BRI*]
488
- Parent=Yahoo
489
- Browser="YahooFeedSeeker"
490
- isSyndicationReader=true
491
-
492
- [Y!J-BRO/YFSJ*]
493
- Parent=Yahoo
494
- Browser="YahooFeedSeeker"
495
- isSyndicationReader=true
496
-
497
- [Y!J-BRP/YFSBJ*]
498
- Parent=Yahoo
499
- Browser="YahooFeedSeeker"
500
- isSyndicationReader=true
501
-
502
- [Y!J-BRQ/DLCK*]
503
- Parent=Yahoo
504
- Browser="YahooFeedSeeker"
505
- isSyndicationReader=true
506
-
507
- [Y!J-BSC*]
508
- Parent=Yahoo
509
- Browser="YahooFeedSeeker"
510
- Version=1.0
511
- MajorVer=1
512
- MinorVer=0
513
- isSyndicationReader=true
514
-
515
- [Y!J-DSC*]
516
- Parent=Yahoo
517
- Browser="YahooFeedSeeker"
518
- isSyndicationReader=true
519
-
520
- [Y!J-NSC*]
521
- Parent=Yahoo
522
- Browser="YahooFeedSeeker"
523
- isSyndicationReader=true
524
-
525
- [Y!J-PSC*]
526
- Parent=Yahoo
527
- Browser="YahooFeedSeeker"
528
- isSyndicationReader=true
529
-
530
- [Y!J-SRD*]
531
- Parent=Yahoo
532
- Browser="YahooFeedSeeker"
533
- Version=1.0
534
- MajorVer=1
535
- MinorVer=0
536
-
537
- [Y!J-VSC/ViSe*]
538
- Parent=Yahoo
539
- Browser="YahooFeedSeeker"
540
- isSyndicationReader=true
541
-
542
- [Y!OASIS*]
543
- Parent=Yahoo
544
- Browser="Y!OASIS"
545
-
546
- [Yahoo Mindset]
547
- Parent=Yahoo
548
- Browser="Yahoo Mindset"
549
-
550
- [Yahoo Pipes*]
551
- Parent=Yahoo
552
- Browser="Yahoo Pipes"
553
-
554
- [Yahoo! Mindset]
555
- Parent=Yahoo
556
- Browser="Yahoo! Mindset"
557
-
558
- [Yahoo! Slurp/Site Explorer]
559
- Parent=Yahoo
560
- Browser="Yahoo! Site Explorer"
561
-
562
- [Yahoo-Blogs*]
563
- Parent=Yahoo
564
- Browser="Yahoo-Blogs"
565
-
566
- [Yahoo-MMAudVid*]
567
- Parent=Yahoo
568
- Browser="Yahoo-MMAudVid"
569
-
570
- [Yahoo-MMCrawler*]
571
- Parent=Yahoo
572
- Browser="Yahoo-MMCrawler"
573
-
574
- [YahooExternalCache]
575
- Parent=Yahoo
576
- Browser="YahooExternalCache"
577
-
578
- [YahooFeedSeeker*]
579
- Parent=Yahoo
580
- Browser="YahooFeedSeeker"
581
- isSyndicationReader=true
582
-
583
- [YahooSeeker*]
584
- Parent=Yahoo
585
- Browser="YahooSeeker"
586
- isMobileDevice=true
587
-
588
- [YahooSeeker/CafeKelsa*]
589
- Parent=Yahoo
590
- Browser="YahooSeeker/CafeKelsa"
591
-
592
- [YahooVideoSearch*]
593
- Parent=Yahoo
594
- Browser="YahooVideoSearch"
595
-
596
- [YahooYSMcm*]
597
- Parent=Yahoo
598
- Browser="YahooYSMcm"
599
-
600
- [YRL_ODP_CRAWLER]
601
- Parent=Yahoo
602
- Browser="YRL_ODP_CRAWLER"
603
-
604
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Yandex
605
-
606
- [Yandex]
607
- Parent=DefaultProperties
608
- Comment="Yandex"
609
- Browser="Yandex"
610
- Frames=true
611
- IFrames=true
612
- Tables=true
613
- Crawler=true
614
-
615
- [Mozilla/5.0 (compatible; YandexAddurl/*)]
616
- Parent=Yandex
617
- Browser="YandexAddURL"
618
-
619
- [Mozilla/5.0 (compatible; YandexBlogs/*)]
620
- Parent=Yandex
621
- Browser="YandexBlogs"
622
-
623
- [Mozilla/5.0 (compatible; YandexBot/*)]
624
- Parent=Yandex
625
- Browser="YandexBot"
626
-
627
- [Mozilla/5.0 (compatible; YandexBot/*; MirrorDetector*)]
628
- Parent=Yandex
629
- Browser="Yandex MirrorDetector"
630
-
631
- [Mozilla/5.0 (compatible; YandexCatalog/*)]
632
- Parent=Yandex
633
- Browser="YandexCatalog"
634
-
635
- [Mozilla/5.0 (compatible; YandexDirect/*)]
636
- Parent=Yandex
637
- Browser="YandexDirect-Dyatel"
638
-
639
- [Mozilla/5.0 (compatible; YandexFavicons/*)]
640
- Parent=Yandex
641
- Browser="YandexFavicons"
642
-
643
- [Mozilla/5.0 (compatible; YandexImageResizer/*)]
644
- Parent=Yandex
645
- Browser="YandexImageResizer"
646
-
647
- [Mozilla/5.0 (compatible; YandexImages/*)]
648
- Parent=Yandex
649
- Browser="YandexImages"
650
-
651
- [Mozilla/5.0 (compatible; YandexMedia/*)]
652
- Parent=Yandex
653
- Browser="YandexMedia"
654
-
655
- [Mozilla/5.0 (compatible; YandexMetrika/*)]
656
- Parent=Yandex
657
- Browser="YandexMetrika"
658
-
659
- [Mozilla/5.0 (compatible; YandexNews/*)]
660
- Parent=Yandex
661
- Browser="YandexNews"
662
-
663
- [Mozilla/5.0 (compatible; YandexVideo/*)]
664
- Parent=Yandex
665
- Browser="YandexVideo"
666
-
667
- [Mozilla/5.0 (compatible; YandexWebmaster/*)]
668
- Parent=Yandex
669
- Browser="YandexWebmaster"
670
-
671
- [Mozilla/5.0 (compatible; YandexZakladki/*)]
672
- Parent=Yandex
673
- Browser="YandexZakladki"
674
-
675
- [Yandex/1.01.001 (compatible; Win16; *)]
676
- Parent=Yandex
677
- Browser="Yandex"
678
-
679
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Best of the Web
680
-
681
- [Best of the Web]
682
- Parent=DefaultProperties
683
- Comment="Best of the Web"
684
- Browser="Best of the Web"
685
- Frames=true
686
- Tables=true
687
- Crawler=true
688
-
689
- [Mozilla/4.0 (compatible; BOTW Feed Grabber; *http://botw.org)]
690
- Parent=Best of the Web
691
- Browser="BOTW Feed Grabber"
692
- isSyndicationReader=true
693
-
694
- [Mozilla/4.0 (compatible; BOTW Spider; *http://botw.org)]
695
- Parent=Best of the Web
696
- Browser="BOTW Spider"
697
-
698
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Boitho
699
-
700
- [Boitho]
701
- Parent=DefaultProperties
702
- Comment="Boitho"
703
- Browser="Boitho"
704
- Frames=true
705
- Tables=true
706
- Crawler=true
707
-
708
- [boitho.com-dc/*]
709
- Parent=Boitho
710
- Browser="boitho.com-dc"
711
-
712
- [boitho.com-robot/*]
713
- Parent=Boitho
714
- Browser="boitho.com-robot"
715
-
716
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Convera
717
-
718
- [Convera]
719
- Parent=DefaultProperties
720
- Comment="Convera"
721
- Browser="Convera"
722
- Frames=true
723
- Tables=true
724
- Crawler=true
725
-
726
- [ConveraCrawler/*]
727
- Parent=Convera
728
- Browser="ConveraCrawler"
729
-
730
- [ConveraMultiMediaCrawler/0.1*]
731
- Parent=Convera
732
- Browser="ConveraMultiMediaCrawler"
733
- Version=0.1
734
- MajorVer=0
735
- MinorVer=1
736
-
737
- [CrawlConvera*]
738
- Parent=Convera
739
- Browser="CrawlConvera"
740
-
741
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DotBot
742
-
743
- [DotBot]
744
- Parent=DefaultProperties
745
- Comment="DotBot"
746
- Browser="DotBot"
747
- Frames=true
748
- Tables=true
749
- Crawler=true
750
-
751
- [DotBot/* (http://www.dotnetdotcom.org/*)]
752
- Parent=DotBot
753
-
754
- [Mozilla/5.0 (compatible; DotBot/*; http://www.dotnetdotcom.org/*)]
755
- Parent=DotBot
756
-
757
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Entireweb
758
-
759
- [Entireweb]
760
- Parent=DefaultProperties
761
- Comment="Entireweb"
762
- Browser="Entireweb"
763
- Frames=true
764
- Tables=true
765
- Crawler=true
766
-
767
- [Mozilla/5.0 (compatible; Speedy Spider; http://www.entireweb.com/about/search_tech/speedy_spider/)]
768
- Parent=Entireweb
769
-
770
- [Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)]
771
- Parent=Entireweb
772
- Platform_Version=5.1
773
-
774
- [Speedy Spider (http://www.entireweb.com/about/search_tech/speedy_spider/)]
775
- Parent=Entireweb
776
-
777
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Envolk
778
-
779
- [Envolk]
780
- Parent=DefaultProperties
781
- Comment="Envolk"
782
- Browser="Envolk"
783
- Frames=true
784
- Tables=true
785
- Crawler=true
786
-
787
- [envolk/* (?http://www.envolk.com/envolk*)]
788
- Parent=Envolk
789
-
790
- [envolk?ITS?spider/* (?http://www.envolk.com/envolk*)]
791
- Parent=Envolk
792
-
793
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Exalead
794
-
795
- [Exalead]
796
- Parent=DefaultProperties
797
- Comment="Exalead"
798
- Browser="Exalead"
799
- Frames=true
800
- Tables=true
801
- Crawler=true
802
-
803
- [Exabot-Images/1.0]
804
- Parent=Exalead
805
- Browser="Exabot-Images"
806
- Version=1.0
807
- MajorVer=1
808
- MinorVer=0
809
-
810
- [Exabot-Test/*]
811
- Parent=Exalead
812
- Browser="Exabot-Test"
813
-
814
- [Exabot/2.0]
815
- Parent=Exalead
816
- Browser="Exabot"
817
- Version=2.0
818
- MajorVer=2
819
- MinorVer=0
820
-
821
- [Exabot/3.0]
822
- Parent=Exalead
823
- Browser="Exabot"
824
- Version=3.0
825
- MajorVer=3
826
- MinorVer=0
827
- Platform="Liberate"
828
-
829
- [Exalead NG/*]
830
- Parent=Exalead
831
- Browser="Exalead NG"
832
-
833
- [Mozilla/5.0 (compatible; Exabot-Images/3.0*)]
834
- Parent=Exalead
835
- Browser="Exabot-Images"
836
- Version=3.0
837
- MajorVer=3
838
- MinorVer=0
839
-
840
- [Mozilla/5.0 (compatible; Exabot/3.0*)]
841
- Parent=Exalead
842
- Browser="Exabot/BiggerBetter"
843
- Version=3.0
844
- MajorVer=3
845
- MinorVer=0
846
-
847
- [Mozilla/5.0 (compatible; NGBot/*)]
848
- Parent=Exalead
849
- Browser="NGBot"
850
-
851
- [NG-Search/*]
852
- Parent=Exalead
853
- Browser="NG-Search"
854
-
855
- [ng/*]
856
- Parent=Exalead
857
- Browser="Exalead Previewer"
858
-
859
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Facebook
860
-
861
- [Facebook]
862
- Parent=DefaultProperties
863
- Comment="Facebook"
864
- Browser="Facebook"
865
- Frames=true
866
- Tables=true
867
- Crawler=true
868
-
869
- [facebookexternalhit/1.0 (+http*://www.facebook.com/externalhit_uatext.php)*]
870
- Parent=Facebook
871
- Version=1.0
872
- MajorVer=1
873
- MinorVer=0
874
-
875
- [facebookexternalhit/1.1 (+http*://www.facebook.com/externalhit_uatext.php)*]
876
- Parent=Facebook
877
- Browser="FacebookExternalHit"
878
- Version=1.1
879
- MajorVer=1
880
- MinorVer=1
881
-
882
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fast/AllTheWeb
883
-
884
- [Fast/AllTheWeb]
885
- Parent=DefaultProperties
886
- Comment="Fast/AllTheWeb"
887
- Browser="Fast/AllTheWeb"
888
- Frames=true
889
- Tables=true
890
- Crawler=true
891
-
892
- [*FAST Enterprise Crawler*]
893
- Parent=Fast/AllTheWeb
894
- Browser="FAST Enterprise Crawler"
895
-
896
- [FAST Data Search Document Retriever/4.0*]
897
- Parent=Fast/AllTheWeb
898
- Browser="FAST Data Search Document Retriever"
899
-
900
- [FAST MetaWeb Crawler (helpdesk at fastsearch dot com)]
901
- Parent=Fast/AllTheWeb
902
- Browser="FAST MetaWeb Crawler"
903
-
904
- [Fast PartnerSite Crawler*]
905
- Parent=Fast/AllTheWeb
906
- Browser="FAST PartnerSite"
907
-
908
- [FAST-WebCrawler/*]
909
- Parent=Fast/AllTheWeb
910
- Browser="FAST-WebCrawler"
911
-
912
- [FAST-WebCrawler/*/FirstPage*]
913
- Parent=Fast/AllTheWeb
914
- Browser="FAST-WebCrawler/FirstPage"
915
-
916
- [FAST-WebCrawler/*/Fresh*]
917
- Parent=Fast/AllTheWeb
918
- Browser="FAST-WebCrawler/Fresh"
919
-
920
- [FAST-WebCrawler/*/PartnerSite*]
921
- Parent=Fast/AllTheWeb
922
- Browser="FAST PartnerSite"
923
-
924
- [FAST-WebCrawler/*?Multimedia*]
925
- Parent=Fast/AllTheWeb
926
- Browser="FAST-WebCrawler/Multimedia"
927
-
928
- [FastSearch Web Crawler for*]
929
- Parent=Fast/AllTheWeb
930
- Browser="FastSearch Web Crawler"
931
-
932
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Gigabot
933
-
934
- [Gigabot]
935
- Parent=DefaultProperties
936
- Comment="Gigabot"
937
- Browser="Gigabot"
938
- Frames=true
939
- Tables=true
940
- Crawler=true
941
-
942
- [Gigabot*]
943
- Parent=Gigabot
944
-
945
- [GigabotSiteSearch/*]
946
- Parent=Gigabot
947
- Browser="GigabotSiteSearch"
948
-
949
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ilse
950
-
951
- [Ilse]
952
- Parent=DefaultProperties
953
- Comment="Ilse"
954
- Browser="Ilse"
955
- Frames=true
956
- Tables=true
957
- Crawler=true
958
-
959
- [IlseBot/*]
960
- Parent=Ilse
961
-
962
- [INGRID/?.0*]
963
- Parent=Ilse
964
-
965
- [Mozilla/3.0 (INGRID/*]
966
- Parent=Ilse
967
-
968
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; iVia Project
969
-
970
- [iVia Project]
971
- Parent=DefaultProperties
972
- Comment="iVia Project"
973
- Browser="iVia Project"
974
- Frames=true
975
- Tables=true
976
- Crawler=true
977
-
978
- [DataFountains/DMOZ Downloader*]
979
- Parent=iVia Project
980
- Browser="DataFountains/DMOZ Downloader"
981
-
982
- [DataFountains/DMOZ Feature Vector Corpus Creator*]
983
- Parent=iVia Project
984
- Browser="DataFountains/DMOZ Feature Vector Corpus"
985
-
986
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Jayde Online
987
-
988
- [Jayde Online]
989
- Parent=DefaultProperties
990
- Comment="Jayde Online"
991
- Browser="Jayde Online"
992
- Frames=true
993
- Tables=true
994
- Crawler=true
995
-
996
- [ExactSeek Crawler/*]
997
- Parent=Jayde Online
998
- Browser="ExactSeek Crawler"
999
-
1000
- [exactseek-pagereaper-* (crawler@exactseek.com)]
1001
- Parent=Jayde Online
1002
- Browser="exactseek-pagereaper"
1003
-
1004
- [exactseek.com]
1005
- Parent=Jayde Online
1006
- Browser="exactseek.com"
1007
-
1008
- [Jayde Crawler*]
1009
- Parent=Jayde Online
1010
- Browser="Jayde Crawler"
1011
-
1012
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Lycos
1013
-
1014
- [Lycos]
1015
- Parent=DefaultProperties
1016
- Comment="Lycos"
1017
- Browser="Lycos"
1018
- Frames=true
1019
- Tables=true
1020
- Crawler=true
1021
-
1022
- [Lycos*]
1023
- Parent=Lycos
1024
- Browser="Lycos"
1025
-
1026
- [Lycos-Proxy]
1027
- Parent=Lycos
1028
- Browser="Lycos-Proxy"
1029
-
1030
- [Lycos-Spider_(modspider)]
1031
- Parent=Lycos
1032
- Browser="Lycos-Spider_(modspider)"
1033
-
1034
- [Lycos-Spider_(T-Rex)]
1035
- Parent=Lycos
1036
- Browser="Lycos-Spider_(T-Rex)"
1037
-
1038
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Snap
1039
-
1040
- [Snap]
1041
- Parent=DefaultProperties
1042
- Comment="Snap"
1043
- Browser="Snap"
1044
- Frames=true
1045
- Tables=true
1046
- Crawler=true
1047
-
1048
- [Mozilla/5.0 (SnapPreviewBot) Gecko/* Firefox/*]
1049
- Parent=Snap
1050
- Browser="SnapPreviewBot"
1051
-
1052
- [Snapbot/*]
1053
- Parent=Snap
1054
- Browser="Snapbot"
1055
-
1056
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Sogou
1057
-
1058
- [Sogou]
1059
- Parent=DefaultProperties
1060
- Comment="Sogou"
1061
- Browser="Sogou"
1062
- Frames=true
1063
- Tables=true
1064
- Crawler=true
1065
-
1066
- [shaboyi spider]
1067
- Parent=Sogou
1068
- Browser="Sogou/Shaboyi Spider"
1069
-
1070
- [Sogou develop spider/*]
1071
- Parent=Sogou
1072
- Browser="Sogou Develop Spider"
1073
-
1074
- [Sogou head spider*]
1075
- Parent=Sogou
1076
- Browser="Sogou Head Spider"
1077
-
1078
- [sogou js robot(*)]
1079
- Parent=Sogou
1080
-
1081
- [Sogou Orion spider/*]
1082
- Parent=Sogou
1083
- Browser="Sogou Orion spider"
1084
-
1085
- [Sogou Pic Agent]
1086
- Parent=Sogou
1087
- Browser="Sogou/Image Crawler"
1088
-
1089
- [Sogou Pic Spider/*]
1090
- Parent=Sogou
1091
- Browser="Sogou Pic Spider"
1092
-
1093
- [Sogou Push Spider/*]
1094
- Parent=Sogou
1095
- Browser="Sogou Push Spider"
1096
-
1097
- [sogou spider]
1098
- Parent=Sogou
1099
- Browser="Sogou/Spider"
1100
-
1101
- [sogou web spider*]
1102
- Parent=Sogou
1103
- Browser="sogou web spider"
1104
-
1105
- [Sogou-Test-Spider/*]
1106
- Parent=Sogou
1107
- Browser="Sogou-Test-Spider"
1108
-
1109
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; YodaoBot
1110
-
1111
- [YodaoBot]
1112
- Parent=DefaultProperties
1113
- Comment="YodaoBot"
1114
- Browser="YodaoBot"
1115
- Frames=true
1116
- Tables=true
1117
- Crawler=true
1118
-
1119
- [Mozilla/5.0 (compatible; YodaoBot/1.*)]
1120
- Parent=YodaoBot
1121
-
1122
- [Mozilla/5.0 (compatible;YodaoBot-Image/1.*)]
1123
- Parent=YodaoBot
1124
- Browser="YodaoBot-Image"
1125
-
1126
- [WAP_Browser/5.0 (compatible; YodaoBot/1.*)]
1127
- Parent=YodaoBot
1128
-
1129
- [YodaoBot/1.* (*)]
1130
- Parent=YodaoBot
1131
-
1132
- [Best Whois (http://www.bestwhois.net/)]
1133
- Parent=DNS Tools
1134
- Browser="Best Whois"
1135
-
1136
- [DNSGroup/*]
1137
- Parent=DNS Tools
1138
- Browser="DNS Group Crawler"
1139
-
1140
- [TouchStone]
1141
- Parent=Feeds Syndicators
1142
- Browser="TouchStone"
1143
- isSyndicationReader=true
1144
-
1145
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General Crawlers
1146
-
1147
- [General Crawlers]
1148
- Parent=DefaultProperties
1149
- Comment="General Crawlers"
1150
- Browser="General Crawlers"
1151
- Crawler=true
1152
-
1153
- [*altervista.org*]
1154
- Parent=General Crawlers
1155
- Browser="altervista.org"
1156
-
1157
- [*naver*]
1158
- Parent=General Crawlers
1159
- Browser="NaverBot"
1160
-
1161
- [*Spinn3r*http://spinn3r.com/robot*]
1162
- Parent=General Crawlers
1163
- Browser="Spinn3r"
1164
-
1165
- [*SqwidgeBot*]
1166
- Parent=General Crawlers
1167
- Browser="SqwidgeBot"
1168
-
1169
- [A .NET Web Crawler]
1170
- Parent=General Crawlers
1171
- Browser="A .NET Web Crawler"
1172
-
1173
- [BabalooSpider/1.*]
1174
- Parent=General Crawlers
1175
- Browser="BabalooSpider"
1176
-
1177
- [BilgiBot/*]
1178
- Parent=General Crawlers
1179
- Browser="BilgiBot"
1180
-
1181
- [bitlybot/2.*]
1182
- Parent=General Crawlers
1183
- Browser="BitlyBot"
1184
-
1185
- [bot/* (bot; *bot@bot.bot)]
1186
- Parent=General Crawlers
1187
- Browser="bot"
1188
-
1189
- [cisco-IOS]
1190
- Parent=General Crawlers
1191
- Browser="cisco-IOS"
1192
-
1193
- [Covario-IDS/*]
1194
- Parent=General Crawlers
1195
- Browser="Covario-IDS/*"
1196
-
1197
- [CyberPatrol*]
1198
- Parent=General Crawlers
1199
- Browser="CyberPatrol"
1200
-
1201
- [Cynthia 1.0]
1202
- Parent=General Crawlers
1203
- Browser="Cynthia"
1204
- Version=1.0
1205
- MajorVer=1
1206
- MinorVer=0
1207
-
1208
- [cz32ts]
1209
- Parent=General Crawlers
1210
- Browser="cz32ts"
1211
-
1212
- [ddetailsbot (http://www.displaydetails.com)]
1213
- Parent=General Crawlers
1214
- Browser="ddetailsbot"
1215
-
1216
- [DomainCrawler/1.0 (info@domaincrawler.com; http://www.domaincrawler.com/domains/view/*)]
1217
- Parent=General Crawlers
1218
- Browser="DomainCrawler"
1219
-
1220
- [DomainsBotBot/1.*]
1221
- Parent=General Crawlers
1222
- Browser="DomainsBotBot"
1223
-
1224
- [DomainsDB.net MetaCrawler*]
1225
- Parent=General Crawlers
1226
- Browser="DomainsDB"
1227
-
1228
- [DomainWatcher Bot*]
1229
- Parent=General Crawlers
1230
- Browser="DomainWatcher Bot"
1231
-
1232
- [Drupal (*)]
1233
- Parent=General Crawlers
1234
- Browser="Drupal"
1235
-
1236
- [Dumbot (version *)*]
1237
- Parent=General Crawlers
1238
- Browser="Dumbfind"
1239
-
1240
- [EuripBot/*]
1241
- Parent=General Crawlers
1242
- Browser="Europe Internet Portal"
1243
-
1244
- [eventax/*]
1245
- Parent=General Crawlers
1246
- Browser="eventax"
1247
-
1248
- [FANGCrawl/*]
1249
- Parent=General Crawlers
1250
- Browser="Safe-t.net Web Filtering Service"
1251
-
1252
- [favorstarbot/*]
1253
- Parent=General Crawlers
1254
- Browser="favorstarbot"
1255
-
1256
- [FollowSite.com (*)]
1257
- Parent=General Crawlers
1258
- Browser="FollowSite"
1259
-
1260
- [Gaisbot*]
1261
- Parent=General Crawlers
1262
- Browser="Gaisbot"
1263
-
1264
- [gosospider Mozilla/5.0 (compatible; GosoSpider*)]
1265
- Parent=General Crawlers
1266
- Browser="GosoSpider"
1267
-
1268
- [Healthbot/Health_and_Longevity_Project_(HealthHaven.com) ]
1269
- Parent=General Crawlers
1270
- Browser="Healthbot"
1271
-
1272
- [hitcrawler_0.*]
1273
- Parent=General Crawlers
1274
- Browser="hitcrawler"
1275
-
1276
- [htdig/*]
1277
- Parent=General Crawlers
1278
- Browser="ht://Dig"
1279
-
1280
- [http://hilfe.acont.de/bot.html ACONTBOT]
1281
- Parent=General Crawlers
1282
- Browser="ACONTBOT"
1283
-
1284
- [http://www.yellowpages.com*]
1285
- Parent=General Crawlers
1286
- Browser="Yellow Pages"
1287
-
1288
- [HuaweiSymantecSpider/*]
1289
- Parent=General Crawlers
1290
- Browser="HuaweiSymantecSpider"
1291
-
1292
- [JetBrains*]
1293
- Parent=General Crawlers
1294
- Browser="Omea Pro"
1295
-
1296
- [JS-Kit URL Resolver, http://js-kit.com/]
1297
- Parent=General Crawlers
1298
- Browser="JS-Kit/Echo"
1299
-
1300
- [KakleBot - www.kakle.com/0.1]
1301
- Parent=General Crawlers
1302
- Browser="KakleBot"
1303
-
1304
- [KBeeBot/0.*]
1305
- Parent=General Crawlers
1306
- Browser="KBeeBot"
1307
-
1308
- [Keyword Density/*]
1309
- Parent=General Crawlers
1310
- Browser="Keyword Density"
1311
-
1312
- [LetsCrawl.com/1.0*]
1313
- Parent=General Crawlers
1314
- Browser="LetsCrawl.com"
1315
-
1316
- [Lincoln State Web Browser]
1317
- Parent=General Crawlers
1318
- Browser="Lincoln State Web Browser"
1319
-
1320
- [LinkedInBot/1.*]
1321
- Parent=General Crawlers
1322
- Browser="LinkedInBot"
1323
-
1324
- [Links4US-Crawler,*]
1325
- Parent=General Crawlers
1326
- Browser="Links4US-Crawler"
1327
-
1328
- [Lorkyll *.* -- lorkyll@444.net]
1329
- Parent=General Crawlers
1330
- Browser="Lorkyll"
1331
-
1332
- [Lsearch/sondeur]
1333
- Parent=General Crawlers
1334
- Browser="Lsearch/sondeur"
1335
-
1336
- [LucidMedia ClickSense/4.?]
1337
- Parent=General Crawlers
1338
- Browser="LucidMedia-ClickSense"
1339
-
1340
- [Made by ZmEu @ WhiteHat v0.* (www.WhiteHat.ro)]
1341
- Parent=General Crawlers
1342
- Browser="ZmEu"
1343
-
1344
- [magpie-crawler/1.*]
1345
- Parent=General Crawlers
1346
- Browser="magpie-crawler"
1347
-
1348
- [Mahalobot/1.0 (?http://www.mahalo.com/)]
1349
- Parent=General Crawlers
1350
- Browser="Mahalobot"
1351
-
1352
- [MapoftheInternet.com?(?http://MapoftheInternet.com)]
1353
- Parent=General Crawlers
1354
- Browser="MapoftheInternet"
1355
-
1356
- [Marvin v0.3]
1357
- Parent=General Crawlers
1358
- Browser="MedHunt"
1359
- Version=0.3
1360
- MajorVer=0
1361
- MinorVer=3
1362
-
1363
- [masidani_bot_v0.6*]
1364
- Parent=General Crawlers
1365
- Browser="masidani_bot"
1366
-
1367
- [Metaspinner/0.01 (Metaspinner; http://www.meta-spinner.de/; support@meta-spinner.de/)]
1368
- Parent=General Crawlers
1369
- Browser="Metaspinner/0.01"
1370
- Version=0.01
1371
- MajorVer=0
1372
- MinorVer=01
1373
-
1374
- [metatagsdir/*]
1375
- Parent=General Crawlers
1376
- Browser="metatagsdir"
1377
-
1378
- [Microsoft Windows Network Diagnostics]
1379
- Parent=General Crawlers
1380
- Browser="Microsoft Windows Network Diagnostics"
1381
-
1382
- [Miva (AlgoFeedback@miva.com)]
1383
- Parent=General Crawlers
1384
- Browser="Miva"
1385
-
1386
- [moget/*]
1387
- Parent=General Crawlers
1388
- Browser="Goo"
1389
-
1390
- [Mozdex/0.7*]
1391
- Parent=General Crawlers
1392
- Browser="Mozdex"
1393
-
1394
- [Mozilla/* (compatible; WebCapture*)]
1395
- Parent=General Crawlers
1396
- Browser="WebCapture"
1397
-
1398
- [Mozilla/*(*redditbot/*http://www.reddit.com/feedback*)]
1399
- Parent=General Crawlers
1400
- Browser="Reddit"
1401
-
1402
- [Mozilla/4.0 (compatible; DepSpid/*)]
1403
- Parent=General Crawlers
1404
- Browser="DepSpid"
1405
-
1406
- [Mozilla/4.0 (compatible; MSIE 4.01; Vonna.com b o t)]
1407
- Parent=General Crawlers
1408
- Browser="Vonna.com"
1409
-
1410
- [Mozilla/4.0 (compatible; MSIE 4.01; Windows95)]
1411
- Parent=General Crawlers
1412
- Browser="Generic Crawler"
1413
- Win32=true
1414
-
1415
- [Mozilla/4.0 (compatible; MyFamilyBot/*)]
1416
- Parent=General Crawlers
1417
- Browser="MyFamilyBot"
1418
-
1419
- [Mozilla/4.0 (compatible; N-Stealth)]
1420
- Parent=General Crawlers
1421
- Browser="N-Stealth"
1422
-
1423
- [Mozilla/4.0 (compatible; Scumbot/*; Linux/*)]
1424
- Parent=General Crawlers
1425
- Browser="Generic Crawler"
1426
-
1427
- [Mozilla/4.0 (compatible; Spider; Linux)]
1428
- Parent=General Crawlers
1429
- Browser="Generic Crawler"
1430
-
1431
- [Mozilla/4.0 (compatible; Win32)]
1432
- Parent=General Crawlers
1433
- Browser="Unknown Crawler"
1434
-
1435
- [Mozilla/5.0 (*http://gnomit.com/) Gecko/* Gnomit/1.0]
1436
- Parent=General Crawlers
1437
- Browser="Gnomit"
1438
-
1439
- [Mozilla/5.0 (*Mac OS X*) AppleWebKit/* (KHTML, like Gecko, Safari/*) ADM/*]
1440
- Parent=General Crawlers
1441
- Browser="Adobe Dialog Manager"
1442
- Platform="MacOSX"
1443
-
1444
- [Mozilla/5.0 (compatible; *; http://www.80legs.com/spider.html;) Gecko/*]
1445
- Parent=General Crawlers
1446
- Browser="80Legs"
1447
-
1448
- [Mozilla/5.0 (compatible; AboutUsBot/*)]
1449
- Parent=General Crawlers
1450
- Browser="AboutUsBot"
1451
-
1452
- [Mozilla/5.0 (compatible; AdHitz; http://adhitz.com/)]
1453
- Parent=General Crawlers
1454
- Browser="AdHitz"
1455
-
1456
- [Mozilla/5.0 (compatible; aiHitBot*/*; +http://www.aihit.com/)]
1457
- Parent=General Crawlers
1458
- Browser="aiHitBot"
1459
-
1460
- [Mozilla/5.0 (compatible; BuzzRankingBot/*)]
1461
- Parent=General Crawlers
1462
- Browser="BuzzRankingBot"
1463
-
1464
- [Mozilla/5.0 (compatible; ClixSense; http://www.clixsense.com/)]
1465
- Parent=General Crawlers
1466
- Browser="ClixSense"
1467
-
1468
- [Mozilla/5.0 (compatible; Crawly/1.*; +http://*/crawler.html)]
1469
- Parent=General Crawlers
1470
- Browser="Crawly"
1471
-
1472
- [Mozilla/5.0 (compatible; Diffbot/0.1; +http://www.diffbot.com)]
1473
- Parent=General Crawlers
1474
- Browser="Diffbot"
1475
-
1476
- [Mozilla/5.0 (compatible; Ezooms/1.0; ezooms.bot@gmail.com)]
1477
- Parent=General Crawlers
1478
- Browser="Ezooms"
1479
- Version=1.0
1480
- MajorVer=1
1481
- MinorVer=0
1482
-
1483
- [Mozilla/5.0 (compatible; FirstSearchBot/1.0; *)]
1484
- Parent=General Crawlers
1485
- Browser="FirstSearchBot"
1486
-
1487
- [mozilla/5.0 (compatible; genevabot +http://www.healthdash.com)]
1488
- Parent=General Crawlers
1489
- Browser="Healthdash"
1490
-
1491
- [Mozilla/5.0 (compatible; JadynAveBot; *http://www.jadynave.com/robot*]
1492
- Parent=General Crawlers
1493
- Browser="JadynAveBot"
1494
-
1495
- [Mozilla/5.0 (compatible; Kyluka crawl; http://www.kyluka.com/crawl.html; crawl@kyluka.com)]
1496
- Parent=General Crawlers
1497
- Browser="Kyluka"
1498
-
1499
- [Mozilla/5.0 (compatible; LegalAnalysisAgent/1.*; http://www.legalx.net)]
1500
- Parent=General Crawlers
1501
- Browser="LegalAnalysisAgent"
1502
-
1503
- [Mozilla/5.0 (compatible; MJ12bot/v1.*)]
1504
- Parent=General Crawlers
1505
- Browser="MJ12bot"
1506
-
1507
- [Mozilla/5.0 (compatible; MSIE 7.0 ?http://www.europarchive.org)]
1508
- Parent=General Crawlers
1509
- Browser="Europe Web Archive"
1510
-
1511
- [Mozilla/5.0 (compatible; MSIE 7.0; MSIE 6.0; ScanAlert; +http://www.scanalert.com/bot.jsp) Firefox/*]
1512
- Parent=General Crawlers
1513
- Browser="McAffee Scan Alert"
1514
-
1515
- [Mozilla/5.0 (compatible; Nigma.ru/*; crawler@nigma.ru)]
1516
- Parent=General Crawlers
1517
- Browser="Nigma.ru"
1518
-
1519
- [Mozilla/5.0 (compatible; Plukkie/1.?; http://www.botje.com/plukkie.htm)]
1520
- Parent=General Crawlers
1521
- Browser="Plukkie"
1522
-
1523
- [Mozilla/5.0 (compatible; SEODat/0.* http://crawler.seodat.com)]
1524
- Parent=General Crawlers
1525
- Browser="SEODat"
1526
-
1527
- [Mozilla/5.0 (compatible; Seznam screenshot-generator 2.0;*)]
1528
- Parent=General Crawlers
1529
- Browser="Seznam screenshot-generator"
1530
-
1531
- [Mozilla/5.0 (compatible; spbot/*; +http://www.seoprofiler.com/bot/ )]
1532
- Parent=General Crawlers
1533
- Browser="SEOprofiler"
1534
-
1535
- [Mozilla/5.0 (compatible; SuchbaerBot/0.*; +http://bot.suchbaer.de/info.html)]
1536
- Parent=General Crawlers
1537
- Browser="SuchbaerBot"
1538
-
1539
- [Mozilla/5.0 (compatible; TweetedTimes Bot/1.0; +http://tweetedtimes.com)]
1540
- Parent=General Crawlers
1541
- Browser="TweetedTimes Bot"
1542
- Version=1.0
1543
- MajorVer=1
1544
- MinorVer=0
1545
-
1546
- [Mozilla/5.0 (compatible; Twingly Recon; http://www.twingly.com/)]
1547
- Parent=General Crawlers
1548
- Browser="Twingly Recon"
1549
-
1550
- [Mozilla/5.0 (compatible; unwrapbot/2.*; +http://www.unwrap.jp*)]
1551
- Parent=General Crawlers
1552
- Browser="UnWrap"
1553
-
1554
- [Mozilla/5.0 (compatible; Vermut*)]
1555
- Parent=General Crawlers
1556
- Browser="Vermut"
1557
-
1558
- [Mozilla/5.0 (compatible; Viralheat Bot/*) ]
1559
- Parent=General Crawlers
1560
- Browser="Viralheat"
1561
-
1562
- [Mozilla/5.0 (compatible; Webbot/*)]
1563
- Parent=General Crawlers
1564
- Browser="Webbot.ru"
1565
-
1566
- [n4p_bot*]
1567
- Parent=General Crawlers
1568
- Browser="n4p_bot"
1569
-
1570
- [nabot*]
1571
- Parent=General Crawlers
1572
- Browser="Nabot"
1573
-
1574
- [NetCarta_WebMapper/*]
1575
- Parent=General Crawlers
1576
- Browser="NetCarta_WebMapper"
1577
-
1578
- [Netchart Adv Crawler*]
1579
- Parent=General Crawlers
1580
- Browser="Netchart Adv Crawler"
1581
-
1582
- [NetID.com Bot*]
1583
- Parent=General Crawlers
1584
- Browser="NetID.com Bot"
1585
-
1586
- [neTVision AG andreas.heidoetting@thomson-webcast.net]
1587
- Parent=General Crawlers
1588
- Browser="neTVision"
1589
-
1590
- [NextopiaBOT*]
1591
- Parent=General Crawlers
1592
- Browser="NextopiaBOT"
1593
-
1594
- [nicebot]
1595
- Parent=General Crawlers
1596
- Browser="nicebot"
1597
-
1598
- [niXXieBot?Foster*]
1599
- Parent=General Crawlers
1600
- Browser="niXXiebot-Foster"
1601
-
1602
- [Nozilla/P.N (Just for IDS woring)]
1603
- Parent=General Crawlers
1604
- Browser="Nozilla/P.N"
1605
-
1606
- [NSO_Debugger_User/2.0]
1607
- Parent=General Crawlers
1608
- Browser="NSO_Debugger_User"
1609
-
1610
- [Nudelsalat/*]
1611
- Parent=General Crawlers
1612
- Browser="Nudelsalat"
1613
-
1614
- [NV32ts]
1615
- Parent=General Crawlers
1616
- Browser="NV32ts"
1617
-
1618
- [Ocelli/*]
1619
- Parent=General Crawlers
1620
- Browser="Ocelli"
1621
-
1622
- [OpenTaggerBot (http://www.opentagger.com/opentaggerbot.htm)]
1623
- Parent=General Crawlers
1624
- Browser="OpenTaggerBot"
1625
-
1626
- [Oracle Enterprise Search]
1627
- Parent=General Crawlers
1628
- Browser="Oracle Enterprise Search"
1629
-
1630
- [Oracle Ultra Search]
1631
- Parent=General Crawlers
1632
- Browser="Oracle Ultra Search"
1633
-
1634
- [Pajaczek/*]
1635
- Parent=General Crawlers
1636
- Browser="Pajaczek"
1637
-
1638
- [panscient.com]
1639
- Parent=General Crawlers
1640
- Browser="panscient.com"
1641
-
1642
- [Patwebbot (http://www.herz-power.de/technik.html)]
1643
- Parent=General Crawlers
1644
- Browser="Patwebbot"
1645
-
1646
- [PDFBot (crawler@pdfind.com)]
1647
- Parent=General Crawlers
1648
- Browser="PDFBot"
1649
-
1650
- [Pete-Spider/1.*]
1651
- Parent=General Crawlers
1652
- Browser="Pete-Spider"
1653
-
1654
- [PhpDig/*]
1655
- Parent=General Crawlers
1656
- Browser="PhpDig"
1657
-
1658
- [PlantyNet_WebRobot*]
1659
- Parent=General Crawlers
1660
- Browser="PlantyNet"
1661
-
1662
- [PluckItCrawler/*]
1663
- Parent=General Crawlers
1664
- Browser="PluckItCrawler"
1665
- isMobileDevice=true
1666
-
1667
- [PMAFind]
1668
- Parent=General Crawlers
1669
- Browser="PMAFind"
1670
-
1671
- [Poodle_predictor_1.0]
1672
- Parent=General Crawlers
1673
- Browser="Poodle Predictor"
1674
-
1675
- [QuickFinder Crawler]
1676
- Parent=General Crawlers
1677
- Browser="QuickFinder"
1678
-
1679
- [Radiation Retriever*]
1680
- Parent=General Crawlers
1681
- Browser="Radiation Retriever"
1682
-
1683
- [RedCarpet/*]
1684
- Parent=General Crawlers
1685
- Browser="RedCarpet"
1686
-
1687
- [RixBot (http://babelserver.org/rix)]
1688
- Parent=General Crawlers
1689
- Browser="RixBot"
1690
-
1691
- [roboobot/1.* (roboo; http://wap.roboo.com; winter.pi@roboo.com)]
1692
- Parent=General Crawlers
1693
- Browser="roboo"
1694
-
1695
- [rogerbot/* (http://www.seomoz.org, rogerbot-crawler@seomoz.org)]
1696
- Parent=General Crawlers
1697
- Browser="rogerbot"
1698
-
1699
- [Rome Client (http://tinyurl.com/64t5n) Ver: 0.*]
1700
- Parent=General Crawlers
1701
- Browser="TinyURL"
1702
-
1703
- [SBIder/*]
1704
- Parent=General Crawlers
1705
- Browser="SiteSell"
1706
-
1707
- [ScollSpider/2.*]
1708
- Parent=General Crawlers
1709
- Browser="ScollSpider"
1710
-
1711
- [Search Fst]
1712
- Parent=General Crawlers
1713
- Browser="Search Fst"
1714
-
1715
- [searchbot admin@google.com]
1716
- Parent=General Crawlers
1717
- Browser="searchbot"
1718
-
1719
- [Seeker.lookseek.com]
1720
- Parent=General Crawlers
1721
- Browser="LookSeek"
1722
-
1723
- [semanticdiscovery/*]
1724
- Parent=General Crawlers
1725
- Browser="Semantic Discovery"
1726
-
1727
- [SeznamBot/*]
1728
- Parent=General Crawlers
1729
- Browser="SeznamBot"
1730
-
1731
- [Shelob (shelob@gmx.net)]
1732
- Parent=General Crawlers
1733
- Browser="Shelob"
1734
-
1735
- [shelob v1.*]
1736
- Parent=General Crawlers
1737
- Browser="shelob"
1738
-
1739
- [ShopWiki/1.0*]
1740
- Parent=General Crawlers
1741
- Browser="ShopWiki"
1742
- Version=1.0
1743
- MajorVer=1
1744
- MinorVer=0
1745
-
1746
- [ShowXML/1.0 libwww/5.4.0]
1747
- Parent=General Crawlers
1748
- Browser="ShowXML"
1749
-
1750
- [sitecheck.internetseer.com*]
1751
- Parent=General Crawlers
1752
- Browser="Internetseer"
1753
-
1754
- [SMBot/*]
1755
- Parent=General Crawlers
1756
- Browser="SMBot"
1757
-
1758
- [sohu*]
1759
- Parent=General Crawlers
1760
- Browser="sohu-search"
1761
-
1762
- [SpankBot*]
1763
- Parent=General Crawlers
1764
- Browser="SpankBot"
1765
-
1766
- [spider (tspyyp@tom.com)]
1767
- Parent=General Crawlers
1768
- Browser="spider (tspyyp@tom.com)"
1769
-
1770
- [Sunrise/0.*]
1771
- Parent=General Crawlers
1772
- Browser="Sunrise"
1773
-
1774
- [Superpages URL Verification Engine]
1775
- Parent=General Crawlers
1776
- Browser="Superpages"
1777
-
1778
- [Surf Knight]
1779
- Parent=General Crawlers
1780
- Browser="Surf Knight"
1781
-
1782
- [SurveyBot/*]
1783
- Parent=General Crawlers
1784
- Browser="SurveyBot"
1785
-
1786
- [SynapticSearch/AI Crawler 1.?]
1787
- Parent=General Crawlers
1788
- Browser="SynapticSearch"
1789
-
1790
- [SyncMgr]
1791
- Parent=General Crawlers
1792
- Browser="SyncMgr"
1793
-
1794
- [Tagyu Agent/1.0]
1795
- Parent=General Crawlers
1796
- Browser="Tagyu"
1797
-
1798
- [Talkro Web-Shot/*]
1799
- Parent=General Crawlers
1800
- Browser="Talkro Web-Shot"
1801
-
1802
- [Tasap-image-robot/0.* (http://www.tasap.com)]
1803
- Parent=General Crawlers
1804
- Browser="Tasap-image-robot"
1805
-
1806
- [Tecomi Bot (http://www.tecomi.com/bot.htm)]
1807
- Parent=General Crawlers
1808
- Browser="Tecomi"
1809
-
1810
- [TencentTraveler*]
1811
- Parent=General Crawlers
1812
- Browser="TencentTraveler"
1813
-
1814
- [TheInformant*]
1815
- Parent=General Crawlers
1816
- Browser="TheInformant"
1817
-
1818
- [Toata dragostea*]
1819
- Parent=General Crawlers
1820
- Browser="Toata dragostea"
1821
-
1822
- [Tutorial Crawler*]
1823
- Parent=General Crawlers
1824
- Browser="Tutorial Crawler"
1825
-
1826
- [Twitterbot/*]
1827
- Parent=General Crawlers
1828
- Browser="Twitterbot"
1829
-
1830
- [UbiCrawler/*]
1831
- Parent=General Crawlers
1832
- Browser="UbiCrawler"
1833
-
1834
- [UCmore]
1835
- Parent=General Crawlers
1836
- Browser="UCmore"
1837
-
1838
- [User*Agent:*]
1839
- Parent=General Crawlers
1840
- Browser="Generic Crawler"
1841
-
1842
- [USER_AGENT]
1843
- Parent=General Crawlers
1844
- Browser="Generic Crawler"
1845
-
1846
- [VadixBot]
1847
- Parent=General Crawlers
1848
- Browser="VadixBot"
1849
-
1850
- [VengaBot/*]
1851
- Parent=General Crawlers
1852
- Browser="VengaBot"
1853
-
1854
- [Visicom Toolbar]
1855
- Parent=General Crawlers
1856
- Browser="Visicom Toolbar"
1857
-
1858
- [Visited by http://tools.geek-tools.org]
1859
- Parent=General Crawlers
1860
- Browser="geek-tools.org"
1861
-
1862
- [Webclipping.com]
1863
- Parent=General Crawlers
1864
- Browser="Webclipping.com"
1865
-
1866
- [webcollage*]
1867
- Parent=General Crawlers
1868
- Browser="WebCollage"
1869
-
1870
- [WebCrawler_1.*]
1871
- Parent=General Crawlers
1872
- Browser="WebCrawler"
1873
-
1874
- [WebFilter Robot*]
1875
- Parent=General Crawlers
1876
- Browser="WebFilter Robot"
1877
-
1878
- [WeBoX/*]
1879
- Parent=General Crawlers
1880
- Browser="WeBoX"
1881
-
1882
- [WebTrends/*]
1883
- Parent=General Crawlers
1884
- Browser="WebTrends"
1885
-
1886
- [West Wind Internet Protocols*]
1887
- Parent=General Crawlers
1888
- Browser="Versatel"
1889
-
1890
- [WhizBang]
1891
- Parent=General Crawlers
1892
- Browser="WhizBang"
1893
-
1894
- [Willow Internet Crawler by Twotrees V*]
1895
- Parent=General Crawlers
1896
- Browser="Willow Internet Crawler"
1897
-
1898
- [WIRE/* (Linux*Bot,Robot,Spider,Crawler)]
1899
- Parent=General Crawlers
1900
- Browser="WIRE"
1901
-
1902
- [www.fi crawler, contact crawler@www.fi]
1903
- Parent=General Crawlers
1904
- Browser="www.fi crawler"
1905
-
1906
- [Xerka WebBot v1.*]
1907
- Parent=General Crawlers
1908
- Browser="Xerka"
1909
-
1910
- [XML Sitemaps Generator*]
1911
- Parent=General Crawlers
1912
- Browser="XML Sitemaps Generator"
1913
-
1914
- [XSpider*]
1915
- Parent=General Crawlers
1916
- Browser="XSpider"
1917
-
1918
- [YooW!/* (?http://www.yoow.eu)]
1919
- Parent=General Crawlers
1920
- Browser="YooW!"
1921
-
1922
- [yp-crawl@attinteractive.com]
1923
- Parent=General Crawlers
1924
- Browser="YellowPages"
1925
-
1926
- [HiddenMarket-*]
1927
- Parent=General RSS
1928
- Browser="HiddenMarket"
1929
-
1930
- [FOTOCHECKER]
1931
- Parent=Image Crawlers
1932
- Browser="FOTOCHECKER"
1933
-
1934
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Search Engines
1935
-
1936
- [Search Engines]
1937
- Parent=DefaultProperties
1938
- Comment="Search Engines"
1939
- Browser="Search Engines"
1940
- Crawler=true
1941
-
1942
- [*FDSE robot*]
1943
- Parent=Search Engines
1944
- Browser="FDSE Robot"
1945
-
1946
- [*Fluffy the spider*]
1947
- Parent=Search Engines
1948
- Browser="SearchHippo"
1949
-
1950
- [Abacho*]
1951
- Parent=Search Engines
1952
- Browser="Abacho"
1953
-
1954
- [ah-ha.com crawler (crawler@ah-ha.com)]
1955
- Parent=Search Engines
1956
- Browser="Ah-Ha"
1957
-
1958
- [AIBOT/*]
1959
- Parent=Search Engines
1960
- Browser="21Seek.Com"
1961
-
1962
- [ALeadSoftbot/*]
1963
- Parent=Search Engines
1964
- Browser="ALeadSoftbot"
1965
-
1966
- [Amfibibot/*]
1967
- Parent=Search Engines
1968
- Browser="Amfibi"
1969
-
1970
- [AnswerBus (http://www.answerbus.com/)]
1971
- Parent=Search Engines
1972
- Browser="AnswerBus"
1973
-
1974
- [antibot-V*]
1975
- Parent=Search Engines
1976
- Browser="antibot"
1977
-
1978
- [appie*(www.walhello.com)]
1979
- Parent=Search Engines
1980
- Browser="Walhello"
1981
-
1982
- [ASPSeek/*]
1983
- Parent=Search Engines
1984
- Browser="ASPSeek"
1985
-
1986
- [Atrax Solutions atraxbot/0.*; http://www.atraxsolutions.com/atraxbot]
1987
- Parent=Search Engines
1988
- Browser="Atrax Solutions"
1989
-
1990
- [BigCliqueBOT/*]
1991
- Parent=Search Engines
1992
- Browser="BigClique.com/BigClic.com"
1993
-
1994
- [Blaiz-Bee/*]
1995
- Parent=Search Engines
1996
- Browser="RawGrunt"
1997
-
1998
- [btbot/*]
1999
- Parent=Search Engines
2000
- Browser="Bit Torrent Search Engine"
2001
-
2002
- [Busiversebot/v1.0 (http://www.busiverse.com/bot.php)]
2003
- Parent=Search Engines
2004
- Browser="Busiversebot"
2005
-
2006
- [CatchBot/*; +http://www.catchbot.com]
2007
- Parent=Search Engines
2008
- Browser="CatchBot"
2009
- Version=1.0
2010
- MajorVer=1
2011
- MinorVer=0
2012
-
2013
- [CipinetBot (http://www.cipinet.com/bot.html)]
2014
- Parent=Search Engines
2015
- Browser="CipinetBot"
2016
-
2017
- [Cogentbot/1.?*]
2018
- Parent=Search Engines
2019
- Browser="Cogentbot"
2020
-
2021
- [compatible; Mozilla 4.0; MSIE 5.5; (SqwidgeBot v1.01 - http://www.sqwidge.com/bot/)]
2022
- Parent=Search Engines
2023
- Browser="SqwidgeBot"
2024
-
2025
- [cosmos*]
2026
- Parent=Search Engines
2027
- Browser="Xyleme"
2028
-
2029
- [Deepindex]
2030
- Parent=Search Engines
2031
- Browser="Deepindex"
2032
-
2033
- [DiamondBot]
2034
- Parent=Search Engines
2035
- Browser="DiamondBot"
2036
-
2037
- [DuckDuckBot/*; (?http://duckduckgo.com/duckduckbot.html)]
2038
- Parent=Search Engines
2039
- Browser="DuckDuckBot"
2040
-
2041
- [Dumbot*]
2042
- Parent=Search Engines
2043
- Browser="Dumbot"
2044
- Version=0.2
2045
- MajorVer=0
2046
- MinorVer=2
2047
- Beta=true
2048
-
2049
- [Eule?Robot*]
2050
- Parent=Search Engines
2051
- Browser="Eule-Robot"
2052
-
2053
- [Faxobot/*]
2054
- Parent=Search Engines
2055
- Browser="Faxo"
2056
-
2057
- [Filangy/*]
2058
- Parent=Search Engines
2059
- Browser="Filangy"
2060
-
2061
- [flatlandbot/*]
2062
- Parent=Search Engines
2063
- Browser="Flatland"
2064
-
2065
- [Fooky.com/ScorpionBot/ScoutOut;*]
2066
- Parent=Search Engines
2067
- Browser="ScorpionBot"
2068
-
2069
- [FyberSpider*]
2070
- Parent=Search Engines
2071
- Browser="FyberSpider"
2072
-
2073
- [Gaisbot/*]
2074
- Parent=Search Engines
2075
- Browser="Gaisbot"
2076
-
2077
- [gazz/*(gazz@nttr.co.jp)]
2078
- Parent=Search Engines
2079
- Browser="gazz"
2080
-
2081
- [geniebot*]
2082
- Parent=Search Engines
2083
- Browser="GenieKnows"
2084
-
2085
- [GOFORITBOT (?http://www.goforit.com/about/?)]
2086
- Parent=Search Engines
2087
- Browser="GoForIt"
2088
-
2089
- [GoGuidesBot/*]
2090
- Parent=Search Engines
2091
- Browser="GoGuidesBot"
2092
-
2093
- [GroschoBot/*]
2094
- Parent=Search Engines
2095
- Browser="GroschoBot"
2096
-
2097
- [GurujiBot/1.*]
2098
- Parent=Search Engines
2099
- Browser="GurujiBot"
2100
-
2101
- [HenryTheMiragoRobot*]
2102
- Parent=Search Engines
2103
- Browser="Mirago"
2104
-
2105
- [HolmesBot (http://holmes.ge)]
2106
- Parent=Search Engines
2107
- Browser="HolmesBot"
2108
-
2109
- [Hotzonu/*]
2110
- Parent=Search Engines
2111
- Browser="Hotzonu"
2112
-
2113
- [HyperEstraier/*]
2114
- Parent=Search Engines
2115
- Browser="HyperEstraier"
2116
-
2117
- [i1searchbot/*]
2118
- Parent=Search Engines
2119
- Browser="i1searchbot"
2120
-
2121
- [IIITBOT/1.*]
2122
- Parent=Search Engines
2123
- Browser="Indian Language Web Search Engine"
2124
-
2125
- [Iltrovatore-?etaccio/*]
2126
- Parent=Search Engines
2127
- Browser="Iltrovatore-Setaccio"
2128
-
2129
- [InfociousBot (?http://corp.infocious.com/tech_crawler.php)]
2130
- Parent=Search Engines
2131
- Browser="InfociousBot"
2132
-
2133
- [Infoseek SideWinder/*]
2134
- Parent=Search Engines
2135
- Browser="Infoseek"
2136
-
2137
- [iSEEKbot/*]
2138
- Parent=Search Engines
2139
- Browser="iSEEKbot"
2140
-
2141
- [Knight/0.? (Zook Knight; http://knight.zook.in/; knight@zook.in)]
2142
- Parent=Search Engines
2143
- Browser="Knight"
2144
-
2145
- [Kolinka Forum Search (www.kolinka.com)]
2146
- Parent=Search Engines
2147
- Browser="Kolinka Forum Search"
2148
-
2149
- [KRetrieve/]
2150
- Parent=Search Engines
2151
- Browser="KRetrieve"
2152
-
2153
- [LapozzBot/*]
2154
- Parent=Search Engines
2155
- Browser="LapozzBot"
2156
-
2157
- [Linguee Bot (http://www.linguee.com/bot; bot@linguee.com)]
2158
- Parent=Search Engines
2159
- Browser="Linguee Bot"
2160
-
2161
- [Linknzbot*]
2162
- Parent=Search Engines
2163
- Browser="Linknzbot"
2164
-
2165
- [LocalcomBot/*]
2166
- Parent=Search Engines
2167
- Browser="LocalcomBot"
2168
-
2169
- [Mail.Ru/1.0]
2170
- Parent=Search Engines
2171
- Browser="Mail.Ru"
2172
-
2173
- [MaSagool/*]
2174
- Parent=Search Engines
2175
- Browser="Sagoo"
2176
- Version=1.0
2177
- MajorVer=1
2178
- MinorVer=0
2179
-
2180
- [miniRank/*]
2181
- Parent=Search Engines
2182
- Browser="miniRank"
2183
-
2184
- [Mnogosearch*]
2185
- Parent=Search Engines
2186
- Browser="Mnogosearch"
2187
-
2188
- [Mozilla/0.9* no dos :) (Linux*)]
2189
- Parent=Search Engines
2190
- Browser="goliat"
2191
-
2192
- [Mozilla/4.0 (compatible; *Vagabondo/*; webcrawler at wise-guys dot nl; *)]
2193
- Parent=Search Engines
2194
- Browser="Vagabondo"
2195
-
2196
- [Mozilla/4.0 (compatible; Arachmo)]
2197
- Parent=Search Engines
2198
- Browser="Arachmo"
2199
-
2200
- [Mozilla/4.0 (compatible; http://search.thunderstone.com/texis/websearch/about.html)]
2201
- Parent=Search Engines
2202
- Browser="ThunderStone"
2203
-
2204
- [Mozilla/4.0 (compatible; MSIE *; Windows NT; Girafabot; girafabot at girafa dot com; http://www.girafa.com)]
2205
- Parent=Search Engines
2206
- Browser="Girafabot"
2207
- Win32=true
2208
-
2209
- [Mozilla/4.0(?compatible; MSIE 6.0; Qihoo *)]
2210
- Parent=Search Engines
2211
- Browser="Qihoo"
2212
-
2213
- [Mozilla/4.7 (compatible; WhizBang; http://www.whizbang.com/crawler)]
2214
- Parent=Search Engines
2215
- Browser="Inxight Software"
2216
-
2217
- [Mozilla/5.0 (*) VoilaBot*]
2218
- Parent=Search Engines
2219
- Browser="VoilaBot"
2220
-
2221
- [Mozilla/5.0 (compatible; ActiveTouristBot*; http://www.activetourist.com)]
2222
- Parent=Search Engines
2223
- Browser="ActiveTouristBot"
2224
-
2225
- [Mozilla/5.0 (compatible; AhrefsBot/*; +http://ahrefs.com/robot/)]
2226
- Parent=Search Engines
2227
- Browser="AhrefsBot"
2228
-
2229
- [Mozilla/5.0 (compatible; ayna-crawler*)]
2230
- Parent=Search Engines
2231
- Browser="ayna-crawler"
2232
-
2233
- [Mozilla/5.0 (compatible; Butterfly/1.0; *)*]
2234
- Parent=Search Engines
2235
- Browser="Butterfly"
2236
-
2237
- [Mozilla/5.0 (compatible; Charlotte/*; *)]
2238
- Parent=Search Engines
2239
- Browser="Charlotte"
2240
- Beta=true
2241
-
2242
- [Mozilla/5.0 (compatible; CXL-FatAssANT*)]
2243
- Parent=Search Engines
2244
- Browser="FatAssANT"
2245
-
2246
- [Mozilla/5.0 (compatible; DBLBot/1.0; ?http://www.dontbuylists.com/)]
2247
- Parent=Search Engines
2248
- Browser="DBLBot"
2249
- Version=1.0
2250
- MajorVer=1
2251
- MinorVer=0
2252
-
2253
- [Mozilla/5.0 (compatible; EARTHCOM.info/*)]
2254
- Parent=Search Engines
2255
- Browser="EARTHCOM"
2256
-
2257
- [Mozilla/5.0 (compatible; Lipperhey Spider; http://www.lipperhey.com/)]
2258
- Parent=Search Engines
2259
- Browser="Lipperhey Spider"
2260
-
2261
- [Mozilla/5.0 (compatible; Mail.RU/*)]
2262
- Parent=Search Engines
2263
- Browser="Mail.RU"
2264
-
2265
- [Mozilla/5.0 (compatible; MojeekBot/*; http://www.mojeek.com/bot.html)]
2266
- Parent=Search Engines
2267
- Browser="MojeekBot"
2268
-
2269
- [Mozilla/5.0 (compatible; NLCrawler/*]
2270
- Parent=Search Engines
2271
- Browser="Northern Light Web Search"
2272
-
2273
- [Mozilla/5.0 (compatible; OsO;*]
2274
- Parent=Search Engines
2275
- Browser="Octopodus"
2276
-
2277
- [Mozilla/5.0 (compatible; ParchBot/1.0;*)]
2278
- Parent=Search Engines
2279
- Browser="ParchBot"
2280
-
2281
- [Mozilla/5.0 (compatible; Pogodak.*)]
2282
- Parent=Search Engines
2283
- Browser="Pogodak"
2284
-
2285
- [Mozilla/5.0 (compatible; Quantcastbot/1.*)]
2286
- Parent=Search Engines
2287
- Browser="Quantcastbot"
2288
-
2289
- [Mozilla/5.0 (compatible; ScoutJet; +http://www.scoutjet.com/)]
2290
- Parent=Search Engines
2291
- Browser="ScoutJet"
2292
-
2293
- [Mozilla/5.0 (compatible; Scrubby/*; +http://www.scrubtheweb.com/abs/meta-check.html)]
2294
- Parent=Search Engines
2295
- Browser="Scrubby"
2296
-
2297
- [Mozilla/5.0 (compatible; YoudaoBot/1.*; http://www.youdao.com/help/webmaster/spider/*)]
2298
- Parent=Search Engines
2299
- Browser="YoudaoBot"
2300
- Version=1.0
2301
- MajorVer=1
2302
- MinorVer=0
2303
-
2304
- [Mozilla/5.0 (Twiceler*)]
2305
- Parent=Search Engines
2306
- Browser="Twiceler"
2307
-
2308
- [Mozilla/5.0 CostaCider Search*]
2309
- Parent=Search Engines
2310
- Browser="CostaCider Search"
2311
-
2312
- [Mozilla/5.0 GurujiBot/1.0 (*)]
2313
- Parent=Search Engines
2314
- Browser="GurujiBot"
2315
-
2316
- [NavissoBot]
2317
- Parent=Search Engines
2318
- Browser="NavissoBot"
2319
-
2320
- [NextGenSearchBot*(for information visit *)]
2321
- Parent=Search Engines
2322
- Browser="ZoomInfo"
2323
-
2324
- [Norbert the Spider(Burf.com)]
2325
- Parent=Search Engines
2326
- Browser="Norbert the Spider"
2327
-
2328
- [NuSearch Spider*]
2329
- Parent=Search Engines
2330
- Browser="nuSearch"
2331
-
2332
- [ObjectsSearch/*]
2333
- Parent=Search Engines
2334
- Browser="ObjectsSearch"
2335
-
2336
- [OOZBOT/0.20 ( http://www.setooz.com/oozbot.html ; agentname at setooz dot_com )]
2337
- Parent=Search Engines
2338
- Browser="Setooz"
2339
-
2340
- [OpenISearch/1.*]
2341
- Parent=Search Engines
2342
- Browser="OpenISearch (Amazon)"
2343
-
2344
- [Pagebull http://www.pagebull.com/]
2345
- Parent=Search Engines
2346
- Browser="Pagebull"
2347
-
2348
- [PEERbot*]
2349
- Parent=Search Engines
2350
- Browser="PEERbot"
2351
-
2352
- [Pompos/*]
2353
- Parent=Search Engines
2354
- Browser="Pompos"
2355
-
2356
- [Popdexter/*]
2357
- Parent=Search Engines
2358
- Browser="Popdex"
2359
-
2360
- [Qweery*]
2361
- Parent=Search Engines
2362
- Browser="QweeryBot"
2363
-
2364
- [RedCell/* (*)]
2365
- Parent=Search Engines
2366
- Browser="RedCell"
2367
-
2368
- [SaladSpoon/ShopSalad 1.* (Search Engine crawler for ShopSalad.com; *; crawler@shopsalad.com)]
2369
- Parent=Search Engines
2370
- Browser="ShopSalad"
2371
-
2372
- [Scrubby/*]
2373
- Parent=Search Engines
2374
- Browser="Scrub The Web"
2375
-
2376
- [Search-10/*]
2377
- Parent=Search Engines
2378
- Browser="Search-10"
2379
-
2380
- [search.ch*]
2381
- Parent=Search Engines
2382
- Browser="Swiss Search Engine"
2383
-
2384
- [Searchmee! Spider*]
2385
- Parent=Search Engines
2386
- Browser="Searchmee!"
2387
-
2388
- [Seekbot/*]
2389
- Parent=Search Engines
2390
- Browser="Seekbot"
2391
-
2392
- [SiteSpider]
2393
- Parent=Search Engines
2394
- Browser="SiteSpider"
2395
-
2396
- [Sosospider?(+http://help.soso.com/webspider.htm)]
2397
- Parent=Search Engines
2398
- Browser="Sosospider"
2399
-
2400
- [Spinne/*]
2401
- Parent=Search Engines
2402
- Browser="Spinne"
2403
-
2404
- [sproose/*]
2405
- Parent=Search Engines
2406
- Browser="Sproose"
2407
-
2408
- [Sqeobot/0.*]
2409
- Parent=Search Engines
2410
- Browser="Branzel"
2411
-
2412
- [SquigglebotBot/*]
2413
- Parent=Search Engines
2414
- Browser="SquigglebotBot"
2415
-
2416
- [StackRambler/*]
2417
- Parent=Search Engines
2418
- Browser="StackRambler"
2419
-
2420
- [SygolBot*]
2421
- Parent=Search Engines
2422
- Browser="SygolBot"
2423
-
2424
- [SynoBot]
2425
- Parent=Search Engines
2426
- Browser="SynoBot"
2427
-
2428
- [Szukacz/*]
2429
- Parent=Search Engines
2430
- Browser="Szukacz"
2431
-
2432
- [Tarantula/*]
2433
- Parent=Search Engines
2434
- Browser="Tarantula"
2435
-
2436
- [TerrawizBot/*]
2437
- Parent=Search Engines
2438
- Browser="TerrawizBot"
2439
-
2440
- [Tkensaku/*]
2441
- Parent=Search Engines
2442
- Browser="Tkensaku"
2443
-
2444
- [TMCrawler]
2445
- Parent=Search Engines
2446
- Browser="TMCrawler"
2447
-
2448
- [TwengaBot-Discover (http://www.twenga.fr/bot-discover.html)]
2449
- Parent=Search Engines
2450
- Browser="TwengaBot-Discover"
2451
-
2452
- [Twingly Recon]
2453
- Parent=Search Engines
2454
- Browser="Twingly Recon"
2455
-
2456
- [updated/*]
2457
- Parent=Search Engines
2458
- Browser="Updated!"
2459
-
2460
- [URL Spider Pro/*]
2461
- Parent=Search Engines
2462
- Browser="URL Spider Pro"
2463
-
2464
- [URL Spider SQL*]
2465
- Parent=Search Engines
2466
- Browser="Innerprise Enterprise Search"
2467
-
2468
- [VMBot/*]
2469
- Parent=Search Engines
2470
- Browser="VMBot"
2471
-
2472
- [voyager/2.0 (http://www.kosmix.com/html/crawler.html)]
2473
- Parent=Search Engines
2474
- Browser="Voyager"
2475
-
2476
- [wadaino.jp-crawler*]
2477
- Parent=Search Engines
2478
- Browser="wadaino.jp"
2479
-
2480
- [WebAlta Crawler/*]
2481
- Parent=Search Engines
2482
- Browser="WebAlta Crawler"
2483
-
2484
- [WebCorp/*]
2485
- Parent=Search Engines
2486
- Browser="WebCorp"
2487
-
2488
- [webcrawl.net]
2489
- Parent=Search Engines
2490
- Browser="webcrawl.net"
2491
-
2492
- [WISEbot/*]
2493
- Parent=Search Engines
2494
- Browser="WISEbot"
2495
-
2496
- [Wotbox/*]
2497
- Parent=Search Engines
2498
- Browser="Wotbox"
2499
-
2500
- [www.zatka.com]
2501
- Parent=Search Engines
2502
- Browser="Zatka"
2503
-
2504
- [WWWeasel Robot v*]
2505
- Parent=Search Engines
2506
- Browser="World Wide Weasel"
2507
-
2508
- [YadowsCrawler*]
2509
- Parent=Search Engines
2510
- Browser="YadowsCrawler"
2511
-
2512
- [YodaoBot/*]
2513
- Parent=Search Engines
2514
- Browser="YodaoBot"
2515
-
2516
- [ZeBot_www.ze.bz*]
2517
- Parent=Search Engines
2518
- Browser="ZE.bz"
2519
-
2520
- [zibber-v*]
2521
- Parent=Search Engines
2522
- Browser="Zibb"
2523
-
2524
- [ZipppBot/*]
2525
- Parent=Search Engines
2526
- Browser="ZipppBot"
2527
-
2528
- [ATA-Translation-Service]
2529
- Parent=Translators
2530
- Browser="ATA-Translation-Service"
2531
-
2532
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BitTorrent Clients
2533
-
2534
- [BitTorrent Clients]
2535
- Parent=DefaultProperties
2536
- Comment="BitTorrent Clients"
2537
- Browser=""
2538
- Crawler=true
2539
-
2540
- [Azureus*]
2541
- Parent=BitTorrent Clients
2542
- Browser="Azureus"
2543
-
2544
- [BitComet/*]
2545
- Parent=BitTorrent Clients
2546
- Browser="BitComet"
2547
-
2548
- [BitTornado/*]
2549
- Parent=BitTorrent Clients
2550
- Browser="BitTornado"
2551
-
2552
- [BitTorrent/*]
2553
- Parent=BitTorrent Clients
2554
- Browser="BitTorrent"
2555
-
2556
- [BitTorrentMac/*]
2557
- Parent=BitTorrent Clients
2558
- Browser="BitTorrentMac"
2559
-
2560
- [BTSP/*]
2561
- Parent=BitTorrent Clients
2562
- Browser="BTSP"
2563
-
2564
- [Deluge*]
2565
- Parent=BitTorrent Clients
2566
- Browser="Deluge"
2567
-
2568
- [FDM*]
2569
- Parent=BitTorrent Clients
2570
- Browser="FDM"
2571
-
2572
- [KTorrent/*]
2573
- Parent=BitTorrent Clients
2574
- Browser="KTorrent"
2575
-
2576
- [libtorrent/*]
2577
- Parent=BitTorrent Clients
2578
- Browser="libtorrent"
2579
-
2580
- [MediaGet*]
2581
- Parent=BitTorrent Clients
2582
- Browser="MediaGet"
2583
-
2584
- [rtorrent/*]
2585
- Parent=BitTorrent Clients
2586
- Browser="rtorrent"
2587
-
2588
- [Transmission/*]
2589
- Parent=BitTorrent Clients
2590
- Browser="Transmission"
2591
-
2592
- [uTorrent/*]
2593
- Parent=BitTorrent Clients
2594
- Browser="uTorrent"
2595
-
2596
- [uTorrentMac/*]
2597
- Parent=BitTorrent Clients
2598
- Browser="uTorrentMac"
2599
-
2600
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Hatena
2601
-
2602
- [Hatena]
2603
- Parent=DefaultProperties
2604
- Comment="Hatena"
2605
- Browser="Hatena"
2606
- Crawler=true
2607
-
2608
- [Feed::Find/*]
2609
- Parent=Hatena
2610
- Browser="Feed Find"
2611
- isSyndicationReader=true
2612
-
2613
- [Hatena Antenna/*]
2614
- Parent=Hatena
2615
- Browser="Hatena Antenna"
2616
-
2617
- [Hatena Bookmark/*]
2618
- Parent=Hatena
2619
- Browser="Hatena Bookmark"
2620
-
2621
- [Hatena RSS/*]
2622
- Parent=Hatena
2623
- Browser="Hatena RSS"
2624
- isSyndicationReader=true
2625
-
2626
- [Hatena::Crawler/*]
2627
- Parent=Hatena
2628
- Browser="Hatena Crawler"
2629
-
2630
- [HatenaScreenshot*]
2631
- Parent=Hatena
2632
- Browser="HatenaScreenshot"
2633
-
2634
- [URI::Fetch/*]
2635
- Parent=Hatena
2636
- Browser="URI::Fetch"
2637
-
2638
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Internet Archive
2639
-
2640
- [Internet Archive]
2641
- Parent=DefaultProperties
2642
- Comment="Internet Archive"
2643
- Browser="Internet Archive"
2644
- Frames=true
2645
- IFrames=true
2646
- Tables=true
2647
- Crawler=true
2648
-
2649
- [*heritrix*]
2650
- Parent=Internet Archive
2651
- Browser="Heritrix"
2652
-
2653
- [ia_archiver*]
2654
- Parent=Internet Archive
2655
- Browser="Internet Archive"
2656
-
2657
- [InternetArchive/*]
2658
- Parent=Internet Archive
2659
- Browser="InternetArchive"
2660
-
2661
- [Mozilla/5.0 (compatible; archive.org_bot*)]
2662
- Parent=Internet Archive
2663
-
2664
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nutch
2665
-
2666
- [Nutch]
2667
- Parent=DefaultProperties
2668
- Comment="Nutch"
2669
- Browser="Nutch"
2670
- Frames=true
2671
- Tables=true
2672
- Crawler=true
2673
-
2674
- [*Nutch*]
2675
- Parent=Nutch
2676
-
2677
- [CazoodleBot/*]
2678
- Parent=Nutch
2679
- Browser="CazoodleBot"
2680
-
2681
- [LOOQ/0.1*]
2682
- Parent=Nutch
2683
- Browser="LOOQ"
2684
-
2685
- [Nutch/0.? (OpenX Spider)]
2686
- Parent=Nutch
2687
-
2688
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Webaroo
2689
-
2690
- [Webaroo]
2691
- Parent=DefaultProperties
2692
- Comment="Webaroo"
2693
- Browser="Webaroo"
2694
- Frames=true
2695
- Tables=true
2696
- Crawler=true
2697
-
2698
- [Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Webaroo/*)]
2699
- Parent=Webaroo
2700
- Browser="Webaroo"
2701
- Platform_Version=6.0
2702
-
2703
- [Mozilla/5.0 (Windows; U; Windows *; *; rv:*) Gecko/* Firefox/* webaroo/*]
2704
- Parent=Webaroo
2705
- Browser="Webaroo"
2706
-
2707
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Word Press
2708
-
2709
- [Word Press]
2710
- Parent=DefaultProperties
2711
- Comment="Word Press"
2712
- Browser="Word Press"
2713
- Frames=true
2714
- Tables=true
2715
- Crawler=true
2716
-
2717
- [WordPress-B-/2.*]
2718
- Parent=Word Press
2719
- Browser="WordPress-B"
2720
-
2721
- [WordPress-Do-P-/2.*]
2722
- Parent=Word Press
2723
- Browser="WordPress-Do-P"
2724
-
2725
- [BlueCoat ProxySG]
2726
- Parent=Blue Coat Systems
2727
- Browser="BlueCoat ProxySG"
2728
-
2729
- [CerberianDrtrs/*]
2730
- Parent=Blue Coat Systems
2731
- Browser="Cerberian"
2732
-
2733
- [Inne: Mozilla/4.0 (compatible; Cerberian Drtrs*)]
2734
- Parent=Blue Coat Systems
2735
- Browser="Cerberian"
2736
-
2737
- [Mozilla/4.0 (compatible; Cerberian Drtrs*)]
2738
- Parent=Blue Coat Systems
2739
- Browser="Cerberian"
2740
-
2741
- [Mozilla/4.0 (compatible; MSIE 6.0; Bluecoat DRTR)]
2742
- Parent=Blue Coat Systems
2743
- Browser="Bluecoat"
2744
-
2745
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Copyright/Plagiarism
2746
-
2747
- [Copyright/Plagiarism]
2748
- Parent=DefaultProperties
2749
- Comment="Copyright/Plagiarism"
2750
- Browser="Copyright/Plagiarism"
2751
- Crawler=true
2752
-
2753
- [BDFetch]
2754
- Parent=Copyright/Plagiarism
2755
- Browser="BDFetch"
2756
-
2757
- [copyright sheriff (*)]
2758
- Parent=Copyright/Plagiarism
2759
- Browser="copyright sheriff"
2760
-
2761
- [CopyRightCheck*]
2762
- Parent=Copyright/Plagiarism
2763
- Browser="CopyRightCheck"
2764
-
2765
- [FairAd Client*]
2766
- Parent=Copyright/Plagiarism
2767
- Browser="FairAd Client"
2768
-
2769
- [iCopyright Conductor*]
2770
- Parent=Copyright/Plagiarism
2771
- Browser="iCopyright Conductor"
2772
-
2773
- [IPiumBot laurion(dot)com]
2774
- Parent=Copyright/Plagiarism
2775
- Browser="IPiumBot"
2776
-
2777
- [IWAgent/*]
2778
- Parent=Copyright/Plagiarism
2779
- Browser="Brand Protect"
2780
-
2781
- [Mozilla/5.0 (compatible; DKIMRepBot/*)]
2782
- Parent=Copyright/Plagiarism
2783
- Browser="DKIMRepBot"
2784
-
2785
- [oBot]
2786
- Parent=Copyright/Plagiarism
2787
- Browser="oBot"
2788
-
2789
- [SlySearch/*]
2790
- Parent=Copyright/Plagiarism
2791
- Browser="SlySearch"
2792
-
2793
- [TurnitinBot/*]
2794
- Parent=Copyright/Plagiarism
2795
- Browser="TurnitinBot"
2796
-
2797
- [TutorGigBot/*]
2798
- Parent=Copyright/Plagiarism
2799
- Browser="TutorGig"
2800
-
2801
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DNS Tools
2802
-
2803
- [DNS Tools]
2804
- Parent=DefaultProperties
2805
- Comment="DNS Tools"
2806
- Browser="DNS Tools"
2807
- Crawler=true
2808
-
2809
- [Domain Dossier utility*]
2810
- Parent=DNS Tools
2811
- Browser="Domain Dossier"
2812
-
2813
- [Mozilla/5.0 (compatible; DNS-Digger/*)]
2814
- Parent=DNS Tools
2815
- Browser="DNS-Digger"
2816
-
2817
- [OpenDNS Domain Crawler noc@opendns.com]
2818
- Parent=DNS Tools
2819
- Browser="OpenDNS Domain Crawler"
2820
-
2821
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Download Managers
2822
-
2823
- [Download Managers]
2824
- Parent=DefaultProperties
2825
- Comment="Download Managers"
2826
- Browser="Download Managers"
2827
- Crawler=true
2828
-
2829
- [A1 Website Download/1.* (*) miggibot]
2830
- Parent=Download Managers
2831
- Browser="A1 Website Download"
2832
-
2833
- [AndroidDownloadManager]
2834
- Parent=Download Managers
2835
- Browser="Android Download Manager"
2836
-
2837
- [AutoMate5]
2838
- Parent=Download Managers
2839
- Browser="AutoMate5"
2840
-
2841
- [Beamer*]
2842
- Parent=Download Managers
2843
- Browser="Beamer"
2844
-
2845
- [BitBeamer/*]
2846
- Parent=Download Managers
2847
- Browser="BitBeamer"
2848
-
2849
- [DA *]
2850
- Parent=Download Managers
2851
- Browser="Download Accelerator"
2852
-
2853
- [Download Demon*]
2854
- Parent=Download Managers
2855
- Browser="Download Demon"
2856
-
2857
- [Download Express*]
2858
- Parent=Download Managers
2859
- Browser="Download Express"
2860
-
2861
- [Download Master*]
2862
- Parent=Download Managers
2863
- Browser="Download Master"
2864
-
2865
- [Download Ninja*]
2866
- Parent=Download Managers
2867
- Browser="Download Ninja"
2868
-
2869
- [Download Wonder*]
2870
- Parent=Download Managers
2871
- Browser="Download Wonder"
2872
-
2873
- [DownloadSession*]
2874
- Parent=Download Managers
2875
- Browser="DownloadSession"
2876
-
2877
- [EasyDL/*]
2878
- Parent=Download Managers
2879
- Browser="EasyDL"
2880
-
2881
- [FDM 1.x]
2882
- Parent=Download Managers
2883
- Browser="Free Download Manager"
2884
-
2885
- [FlashGet]
2886
- Parent=Download Managers
2887
- Browser="FlashGet"
2888
-
2889
- [FreshDownload/*]
2890
- Parent=Download Managers
2891
- Browser="FreshDownload"
2892
-
2893
- [GetRight/*]
2894
- Parent=Download Managers
2895
- Browser="GetRight"
2896
-
2897
- [GetRightPro/*]
2898
- Parent=Download Managers
2899
- Browser="GetRightPro"
2900
-
2901
- [GetSmart/*]
2902
- Parent=Download Managers
2903
- Browser="GetSmart"
2904
-
2905
- [Go!Zilla*]
2906
- Parent=Download Managers
2907
- Browser="GoZilla"
2908
-
2909
- [Gozilla/*]
2910
- Parent=Download Managers
2911
- Browser="Gozilla"
2912
-
2913
- [Internet Ninja*]
2914
- Parent=Download Managers
2915
- Browser="Internet Ninja"
2916
-
2917
- [Kontiki Client*]
2918
- Parent=Download Managers
2919
- Browser="Kontiki Client"
2920
-
2921
- [lftp/3.2.1]
2922
- Parent=Download Managers
2923
- Browser="lftp"
2924
-
2925
- [LightningDownload/*]
2926
- Parent=Download Managers
2927
- Browser="LightningDownload"
2928
-
2929
- [LMQueueBot/*]
2930
- Parent=Download Managers
2931
- Browser="LMQueueBot"
2932
-
2933
- [MetaProducts Download Express/*]
2934
- Parent=Download Managers
2935
- Browser="Download Express"
2936
-
2937
- [Mozilla/4.0 (compatible; Getleft*)]
2938
- Parent=Download Managers
2939
- Browser="Getleft"
2940
-
2941
- [Myzilla]
2942
- Parent=Download Managers
2943
- Browser="Myzilla"
2944
-
2945
- [Net Vampire/*]
2946
- Parent=Download Managers
2947
- Browser="Net Vampire"
2948
-
2949
- [Net_Vampire*]
2950
- Parent=Download Managers
2951
- Browser="Net_Vampire"
2952
-
2953
- [NetAnts*]
2954
- Parent=Download Managers
2955
- Browser="NetAnts"
2956
-
2957
- [NetPumper*]
2958
- Parent=Download Managers
2959
- Browser="NetPumper"
2960
-
2961
- [NetSucker*]
2962
- Parent=Download Managers
2963
- Browser="NetSucker"
2964
-
2965
- [NetZip Downloader*]
2966
- Parent=Download Managers
2967
- Browser="NetZip Downloader"
2968
-
2969
- [NexTools WebAgent*]
2970
- Parent=Download Managers
2971
- Browser="NexTools WebAgent"
2972
-
2973
- [Offline Downloader*]
2974
- Parent=Download Managers
2975
- Browser="Offline Downloader"
2976
-
2977
- [P3P Client]
2978
- Parent=Download Managers
2979
- Browser="P3P Client"
2980
-
2981
- [PageDown*]
2982
- Parent=Download Managers
2983
- Browser="PageDown"
2984
-
2985
- [PicaLoader*]
2986
- Parent=Download Managers
2987
- Browser="PicaLoader"
2988
-
2989
- [Prozilla*]
2990
- Parent=Download Managers
2991
- Browser="Prozilla"
2992
-
2993
- [RealDownload/*]
2994
- Parent=Download Managers
2995
- Browser="RealDownload"
2996
-
2997
- [sEasyDL/*]
2998
- Parent=Download Managers
2999
- Browser="EasyDL"
3000
-
3001
- [shareaza*]
3002
- Parent=Download Managers
3003
- Browser="shareaza"
3004
-
3005
- [SmartDownload/*]
3006
- Parent=Download Managers
3007
- Browser="SmartDownload"
3008
-
3009
- [SpeedDownload/*]
3010
- Parent=Download Managers
3011
- Browser="Speed Download"
3012
-
3013
- [Star*Downloader/*]
3014
- Parent=Download Managers
3015
- Browser="StarDownloader"
3016
-
3017
- [STEROID Download]
3018
- Parent=Download Managers
3019
- Browser="STEROID Download"
3020
-
3021
- [SuperBot/*]
3022
- Parent=Download Managers
3023
- Browser="SuperBot"
3024
-
3025
- [Vegas95/*]
3026
- Parent=Download Managers
3027
- Browser="Vegas95"
3028
-
3029
- [WebZIP*]
3030
- Parent=Download Managers
3031
- Browser="WebZIP"
3032
-
3033
- [Wget*]
3034
- Parent=Download Managers
3035
- Browser="Wget"
3036
-
3037
- [WinTools]
3038
- Parent=Download Managers
3039
- Browser="WinTools"
3040
-
3041
- [Xaldon WebSpider*]
3042
- Parent=Download Managers
3043
- Browser="Xaldon WebSpider"
3044
-
3045
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; E-Mail Harvesters
3046
-
3047
- [E-Mail Harvesters]
3048
- Parent=DefaultProperties
3049
- Comment="E-Mail Harvesters"
3050
- Browser="E-Mail Harvesters"
3051
- Crawler=true
3052
-
3053
- [*E-Mail Address Extractor*]
3054
- Parent=E-Mail Harvesters
3055
- Browser="E-Mail Address Extractor"
3056
-
3057
- [*Larbin*]
3058
- Parent=E-Mail Harvesters
3059
- Browser="Larbin"
3060
-
3061
- [*www4mail/*]
3062
- Parent=E-Mail Harvesters
3063
- Browser="www4mail"
3064
-
3065
- [8484 Boston Project*]
3066
- Parent=E-Mail Harvesters
3067
- Browser="8484 Boston Project"
3068
-
3069
- [Atomic_Email]
3070
- Parent=E-Mail Harvesters
3071
- Browser="Atomic_Email"
3072
-
3073
- [Atomic_Email_Hunter/*]
3074
- Parent=E-Mail Harvesters
3075
- Browser="Atomic Email Hunter"
3076
-
3077
- [CherryPicker*/*]
3078
- Parent=E-Mail Harvesters
3079
- Browser="CherryPickerElite"
3080
-
3081
- [Chilkat/*]
3082
- Parent=E-Mail Harvesters
3083
- Browser="Chilkat"
3084
-
3085
- [ContactBot/*]
3086
- Parent=E-Mail Harvesters
3087
- Browser="ContactBot"
3088
-
3089
- [eCatch*]
3090
- Parent=E-Mail Harvesters
3091
- Browser="eCatch"
3092
-
3093
- [EmailCollector*]
3094
- Parent=E-Mail Harvesters
3095
- Browser="E-Mail Collector"
3096
-
3097
- [EMAILsearcher]
3098
- Parent=E-Mail Harvesters
3099
- Browser="EMAILsearcher"
3100
-
3101
- [EmailSiphon*]
3102
- Parent=E-Mail Harvesters
3103
- Browser="E-Mail Siphon"
3104
-
3105
- [EmailWolf*]
3106
- Parent=E-Mail Harvesters
3107
- Browser="EMailWolf"
3108
-
3109
- [Epsilon SoftWorks' MailMunky]
3110
- Parent=E-Mail Harvesters
3111
- Browser="MailMunky"
3112
-
3113
- [ExtractorPro*]
3114
- Parent=E-Mail Harvesters
3115
- Browser="ExtractorPro"
3116
-
3117
- [Franklin Locator*]
3118
- Parent=E-Mail Harvesters
3119
- Browser="Franklin Locator"
3120
-
3121
- [Missigua Locator*]
3122
- Parent=E-Mail Harvesters
3123
- Browser="Missigua Locator"
3124
-
3125
- [Mozilla/4.0 (compatible; Advanced Email Extractor*)]
3126
- Parent=E-Mail Harvesters
3127
- Browser="Advanced Email Extractor"
3128
-
3129
- [Netprospector*]
3130
- Parent=E-Mail Harvesters
3131
- Browser="Netprospector"
3132
-
3133
- [ProWebWalker*]
3134
- Parent=E-Mail Harvesters
3135
- Browser="ProWebWalker"
3136
-
3137
- [sna-0.0.*]
3138
- Parent=E-Mail Harvesters
3139
- Browser="Mike Elliott's E-Mail Harvester"
3140
-
3141
- [WebEnhancer*]
3142
- Parent=E-Mail Harvesters
3143
- Browser="WebEnhancer"
3144
-
3145
- [WebMiner*]
3146
- Parent=E-Mail Harvesters
3147
- Browser="WebMiner"
3148
-
3149
- [ZIBB Crawler (email address / WWW address)]
3150
- Parent=E-Mail Harvesters
3151
- Browser="ZIBB Crawler"
3152
-
3153
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Blogs
3154
-
3155
- [Feeds Blogs]
3156
- Parent=DefaultProperties
3157
- Comment="Feeds Blogs"
3158
- Browser="Feeds Blogs"
3159
- isSyndicationReader=true
3160
- Crawler=true
3161
-
3162
- [Bloglines Title Fetch/*]
3163
- Parent=Feeds Blogs
3164
- Browser="Bloglines Title Fetch"
3165
-
3166
- [Bloglines/* (http://www.bloglines.com*)]
3167
- Parent=Feeds Blogs
3168
- Browser="BlogLines Web"
3169
-
3170
- [BlogPulse (ISSpider-3.*)]
3171
- Parent=Feeds Blogs
3172
- Browser="BlogPulse"
3173
-
3174
- [BlogPulseLive (support@blogpulse.com)]
3175
- Parent=Feeds Blogs
3176
- Browser="BlogPulseLive"
3177
-
3178
- [blogsearchbot-pumpkin-2]
3179
- Parent=Feeds Blogs
3180
- Browser="blogsearchbot-pumpkin"
3181
- isSyndicationReader=false
3182
-
3183
- [Irish Blogs Aggregator/*1.0*]
3184
- Parent=Feeds Blogs
3185
- Browser="Irish Blogs Aggregator"
3186
- Version=1.0
3187
- MajorVer=1
3188
- MinorVer=0
3189
-
3190
- [kinjabot (http://www.kinja.com; *)]
3191
- Parent=Feeds Blogs
3192
- Browser="kinjabot"
3193
-
3194
- [Net::Trackback/*]
3195
- Parent=Feeds Blogs
3196
- Browser="Net::Trackback"
3197
-
3198
- [Reblog*]
3199
- Parent=Feeds Blogs
3200
- Browser="Reblog"
3201
-
3202
- [WordPress/*]
3203
- Parent=Feeds Blogs
3204
- Browser="WordPress"
3205
-
3206
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Feeds Syndicators
3207
-
3208
- [Feeds Syndicators]
3209
- Parent=DefaultProperties
3210
- Comment="Feeds Syndicators"
3211
- Browser="Feeds Syndicators"
3212
- isSyndicationReader=true
3213
- Crawler=true
3214
-
3215
- [*LinkLint*]
3216
- Parent=Feeds Syndicators
3217
- Browser="LinkLint"
3218
-
3219
- [*NetNewsWire/*]
3220
- Parent=Feeds Syndicators
3221
- Browser="NetNewsWire"
3222
-
3223
- [*NetVisualize*]
3224
- Parent=Feeds Syndicators
3225
- Browser="NetVisualize"
3226
-
3227
- [AideRSS 2.* (postrank.com)]
3228
- Parent=Feeds Syndicators
3229
- Browser="AideRSS"
3230
-
3231
- [AideRSS/2.0 (aiderss.com)]
3232
- Parent=Feeds Syndicators
3233
- Browser="AideRSS"
3234
-
3235
- [Akregator/*]
3236
- Parent=Feeds Syndicators
3237
- Browser="Akregator"
3238
-
3239
- [Apple-PubSub/*]
3240
- Parent=Feeds Syndicators
3241
- Browser="Apple-PubSub"
3242
-
3243
- [AppleSyndication/*]
3244
- Parent=Feeds Syndicators
3245
- Browser="Safari RSS"
3246
- Platform="MacOSX"
3247
-
3248
- [Cocoal.icio.us/* (*)*]
3249
- Parent=Feeds Syndicators
3250
- Browser="Cocoal.icio.us"
3251
-
3252
- [Feed43 Proxy/* (*)]
3253
- Parent=Feeds Syndicators
3254
- Browser="Feed For Free"
3255
-
3256
- [FeedBurner/*]
3257
- Parent=Feeds Syndicators
3258
- Browser="FeedBurner"
3259
-
3260
- [FeedDemon/* (*)]
3261
- Parent=Feeds Syndicators
3262
- Browser="FeedDemon"
3263
- Platform="Win32"
3264
-
3265
- [FeedDigest/* (*)]
3266
- Parent=Feeds Syndicators
3267
- Browser="FeedDigest"
3268
-
3269
- [FeedGhost/1.*]
3270
- Parent=Feeds Syndicators
3271
- Browser="FeedGhost"
3272
- Version=1.0
3273
- MajorVer=1
3274
- MinorVer=0
3275
-
3276
- [FeedOnFeeds/0.1.* ( http://minutillo.com/steve/feedonfeeds/)]
3277
- Parent=Feeds Syndicators
3278
- Browser="FeedOnFeeds"
3279
- Version=0.1
3280
- MajorVer=0
3281
- MinorVer=1
3282
-
3283
- [Feedreader * (Powered by Newsbrain)]
3284
- Parent=Feeds Syndicators
3285
- Browser="Newsbrain"
3286
-
3287
- [Feedshow/* (*)]
3288
- Parent=Feeds Syndicators
3289
- Browser="Feedshow"
3290
-
3291
- [Feedster Crawler/?.0; Feedster, Inc.]
3292
- Parent=Feeds Syndicators
3293
- Browser="Feedster"
3294
-
3295
- [GreatNews/1.0]
3296
- Parent=Feeds Syndicators
3297
- Browser="GreatNews"
3298
- Version=1.0
3299
- MajorVer=1
3300
- MinorVer=0
3301
-
3302
- [Gregarius/*]
3303
- Parent=Feeds Syndicators
3304
- Browser="Gregarius"
3305
-
3306
- [intraVnews/*]
3307
- Parent=Feeds Syndicators
3308
- Browser="intraVnews"
3309
-
3310
- [JetBrains Omea Reader*]
3311
- Parent=Feeds Syndicators
3312
- Browser="Omea Reader"
3313
-
3314
- [Liferea/1.* (Linux; *; http://liferea.sf.net/)]
3315
- Parent=Feeds Syndicators
3316
- Browser="Liferea"
3317
-
3318
- [livedoor FeedFetcher/0.0* (http://reader.livedoor.com/;*)]
3319
- Parent=Feeds Syndicators
3320
- Browser="FeedFetcher"
3321
- Version=0.0
3322
- MajorVer=0
3323
- MinorVer=0
3324
-
3325
- [MagpieRSS/* (*)]
3326
- Parent=Feeds Syndicators
3327
- Browser="MagpieRSS"
3328
-
3329
- [Mobitype * (compatible; Mozilla/*; MSIE *.*; Windows *)]
3330
- Parent=Feeds Syndicators
3331
- Browser="Mobitype"
3332
- Platform="Win32"
3333
-
3334
- [Mozilla/5.0 (*; Rojo *; http://www.rojo.com/corporate/help/agg; *)*]
3335
- Parent=Feeds Syndicators
3336
- Browser="Rojo"
3337
-
3338
- [Mozilla/5.0 (*aggregator:TailRank; http://tailrank.com/robot)*]
3339
- Parent=Feeds Syndicators
3340
- Browser="TailRank"
3341
-
3342
- [Mozilla/5.0 (compatible; MSIE 6.0; Podtech Network; crawler_admin@podtech.net)]
3343
- Parent=Feeds Syndicators
3344
- Browser="Podtech Network"
3345
-
3346
- [Mozilla/5.0 (compatible; Newz Crawler *; http://www.newzcrawler.com/?)]
3347
- Parent=Feeds Syndicators
3348
- Browser="Newz Crawler"
3349
-
3350
- [Mozilla/5.0 (compatible; RSSMicro.com RSS/Atom Feed Robot)]
3351
- Parent=Feeds Syndicators
3352
- Browser="RSSMicro"
3353
-
3354
- [Mozilla/5.0 (compatible;*newstin.com;*)]
3355
- Parent=Feeds Syndicators
3356
- Browser="NewsTin"
3357
-
3358
- [Mozilla/5.0 (RSS Reader Panel)]
3359
- Parent=Feeds Syndicators
3360
- Browser="RSS Reader Panel"
3361
-
3362
- [Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:FeedParser; *) Gecko/*]
3363
- Parent=Feeds Syndicators
3364
- Browser="FeedParser"
3365
-
3366
- [Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:NewsMonster; *) Gecko/*]
3367
- Parent=Feeds Syndicators
3368
- Browser="NewsMonster"
3369
-
3370
- [Mozilla/5.0 (X11; U; Linux*; *; rv:1.*; aggregator:Rojo; *) Gecko/*]
3371
- Parent=Feeds Syndicators
3372
- Browser="Rojo"
3373
-
3374
- [Mozilla/5.0 NewsFox/*]
3375
- Parent=Feeds Syndicators
3376
- Browser="NewsFox"
3377
-
3378
- [Netvibes (*)]
3379
- Parent=Feeds Syndicators
3380
- Browser="Netvibes"
3381
-
3382
- [NewsAlloy/* (*)]
3383
- Parent=Feeds Syndicators
3384
- Browser="NewsAlloy"
3385
-
3386
- [Omnipelagos*]
3387
- Parent=Feeds Syndicators
3388
- Browser="Omnipelagos"
3389
-
3390
- [Particls]
3391
- Parent=Feeds Syndicators
3392
- Browser="Particls"
3393
-
3394
- [Protopage/* (*)]
3395
- Parent=Feeds Syndicators
3396
- Browser="Protopage"
3397
-
3398
- [PubSub-RSS-Reader/* (*)]
3399
- Parent=Feeds Syndicators
3400
- Browser="PubSub-RSS-Reader"
3401
-
3402
- [RSS Menu/*]
3403
- Parent=Feeds Syndicators
3404
- Browser="RSS Menu"
3405
-
3406
- [RssBandit/*]
3407
- Parent=Feeds Syndicators
3408
- Browser="RssBandit"
3409
-
3410
- [RssBar/1.2*]
3411
- Parent=Feeds Syndicators
3412
- Browser="RssBar"
3413
- Version=1.2
3414
- MajorVer=1
3415
- MinorVer=2
3416
-
3417
- [SharpReader/*]
3418
- Parent=Feeds Syndicators
3419
- Browser="SharpReader"
3420
-
3421
- [SimplePie/*]
3422
- Parent=Feeds Syndicators
3423
- Browser="SimplePie"
3424
-
3425
- [Strategic Board Bot (?http://www.strategicboard.com)]
3426
- Parent=Feeds Syndicators
3427
- Browser="Strategic Board Bot"
3428
-
3429
- [TargetYourNews.com bot]
3430
- Parent=Feeds Syndicators
3431
- Browser="TargetYourNews"
3432
-
3433
- [Technoratibot/*]
3434
- Parent=Feeds Syndicators
3435
- Browser="Technoratibot"
3436
-
3437
- [Tumblr/* RSS syndication ( http://www.tumblr.com/) (support@tumblr.com)]
3438
- Parent=Feeds Syndicators
3439
- Browser="Tumblr RSS syndication"
3440
-
3441
- [Windows-RSS-Platform/1.0*]
3442
- Parent=Feeds Syndicators
3443
- Browser="Windows-RSS-Platform"
3444
- Version=1.0
3445
- MajorVer=1
3446
- MinorVer=0
3447
- Win32=true
3448
-
3449
- [Wizz RSS News Reader]
3450
- Parent=Feeds Syndicators
3451
- Browser="Wizz"
3452
-
3453
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; General RSS
3454
-
3455
- [General RSS]
3456
- Parent=DefaultProperties
3457
- Comment="General RSS"
3458
- Browser="General RSS"
3459
- isSyndicationReader=true
3460
- Crawler=true
3461
-
3462
- [AideRSS/1.0 (aiderss.com); * subscribers]
3463
- Parent=General RSS
3464
- Browser="AideRSS"
3465
- Version=1.0
3466
- MajorVer=1
3467
- MinorVer=0
3468
-
3469
- [BlijbolReallySimpleAggregator/2.0*]
3470
- Parent=General RSS
3471
- Browser="BlijbolReallySimpleAggregator"
3472
-
3473
- [CC Metadata Scaper http://wiki.creativecommons.org/Metadata_Scraper]
3474
- Parent=General RSS
3475
- Browser="CC Metadata Scaper"
3476
-
3477
- [Mozilla/5.0 (compatible) GM RSS Panel]
3478
- Parent=General RSS
3479
- Browser="RSS Panel"
3480
-
3481
- [Mozilla/5.0 http://www.inclue.com; graeme@inclue.com]
3482
- Parent=General RSS
3483
- Browser="Inclue"
3484
-
3485
- [Runnk online rss reader : http://www.runnk.com/ : RSS favorites : RSS ranking : RSS aggregator*]
3486
- Parent=General RSS
3487
- Browser="Ruunk"
3488
-
3489
- [UniversalFeedParser/4.* +http://feedparser.org/]
3490
- Parent=General RSS
3491
- Browser="UniversalFeedParser"
3492
-
3493
- [Windows-RSS-Platform/2.0 (MSIE ?.0; Windows NT *.*)]
3494
- Parent=General RSS
3495
- Browser="Windows-RSS-Platform"
3496
- Version=2.0
3497
- MajorVer=2
3498
- MinorVer=0
3499
- Platform="Win32"
3500
-
3501
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Validation Checkers
3502
-
3503
- [HTML Validators]
3504
- Parent=DefaultProperties
3505
- Comment="Validation Checkers"
3506
- Browser="HTML Validators"
3507
- Crawler=true
3508
-
3509
- [(HTML Validator http://www.searchengineworld.com/validator/)]
3510
- Parent=HTML Validators
3511
- Browser="Search Engine World HTML Validator"
3512
-
3513
- [FeedValidator/*]
3514
- Parent=HTML Validators
3515
- Browser="FeedValidator"
3516
-
3517
- [Search Engine World Robots.txt Validator*]
3518
- Parent=HTML Validators
3519
- Browser="Search Engine World Robots.txt Validator"
3520
-
3521
- [Weblide/*]
3522
- Parent=HTML Validators
3523
- Browser="Weblide"
3524
- Beta=true
3525
-
3526
- [WebmasterWorld StickyMail Server Header Checker*]
3527
- Parent=HTML Validators
3528
- Browser="WebmasterWorld Server Header Checker"
3529
-
3530
- [WWWC/*]
3531
- Parent=HTML Validators
3532
- Browser="WWWC"
3533
-
3534
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Image Crawlers
3535
-
3536
- [Image Crawlers]
3537
- Parent=DefaultProperties
3538
- Comment="Image Crawlers"
3539
- Browser="Image Crawlers"
3540
- Crawler=true
3541
-
3542
- [*CFNetwork*]
3543
- Parent=Image Crawlers
3544
- Browser="CFNetwork"
3545
-
3546
- [*PhotoStickies/*]
3547
- Parent=Image Crawlers
3548
- Browser="PhotoStickies"
3549
-
3550
- [Camcrawler*]
3551
- Parent=Image Crawlers
3552
- Browser="Camcrawler"
3553
-
3554
- [CydralSpider/*]
3555
- Parent=Image Crawlers
3556
- Browser="Cydral Web Image Search"
3557
-
3558
- [Der gro\xdfe BilderSauger*]
3559
- Parent=Image Crawlers
3560
- Browser="Gallery Grabber"
3561
-
3562
- [Extreme Picture Finder]
3563
- Parent=Image Crawlers
3564
- Browser="Extreme Picture Finder"
3565
-
3566
- [FLATARTS_FAVICO]
3567
- Parent=Image Crawlers
3568
- Browser="FlatArts Favorites Icon Tool"
3569
-
3570
- [HTML2JPG Blackbox, http://www.html2jpg.com]
3571
- Parent=Image Crawlers
3572
- Browser="HTML2JPG"
3573
-
3574
- [IconSurf/2.*]
3575
- Parent=Image Crawlers
3576
- Browser="IconSurf"
3577
-
3578
- [Mister PIX*]
3579
- Parent=Image Crawlers
3580
- Browser="Mister PIX"
3581
-
3582
- [Mozilla/5.0 (compatible; KaloogaBot; http://www.kalooga.com/info.html?page=crawler)]
3583
- Parent=Image Crawlers
3584
- Browser="KaloogaBot"
3585
-
3586
- [Mozilla/5.0 (Macintosh; U; *Mac OS X; *) AppleWebKit/* (*) Pandora/2.*]
3587
- Parent=Image Crawlers
3588
- Browser="Pandora"
3589
-
3590
- [naoFavicon4IE*]
3591
- Parent=Image Crawlers
3592
- Browser="naoFavicon4IE"
3593
-
3594
- [pixfinder/*]
3595
- Parent=Image Crawlers
3596
- Browser="pixfinder"
3597
-
3598
- [psbot/* (?http://www.picsearch.com/bot.html)]
3599
- Parent=Image Crawlers
3600
- Browser="PicSearchBot"
3601
-
3602
- [rssImagesBot/0.1 (*http://herbert.groot.jebbink.nl/?app=rssImages)]
3603
- Parent=Image Crawlers
3604
- Browser="rssImagesBot"
3605
-
3606
- [Web Image Collector*]
3607
- Parent=Image Crawlers
3608
- Browser="Web Image Collector"
3609
-
3610
- [WebImages * (?http://herbert.groot.jebbink.nl/?app=WebImages?)]
3611
- Parent=Image Crawlers
3612
- Browser="WebImages"
3613
-
3614
- [WebPix*]
3615
- Parent=Image Crawlers
3616
- Browser="Custo"
3617
-
3618
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Link Checkers
3619
-
3620
- [Link Checkers]
3621
- Parent=DefaultProperties
3622
- Comment="Link Checkers"
3623
- Browser="Link Checkers"
3624
- Crawler=true
3625
-
3626
- [!Susie (http://www.sync2it.com/susie)]
3627
- Parent=Link Checkers
3628
- Browser="!Susie"
3629
-
3630
- [*AgentName/*]
3631
- Parent=Link Checkers
3632
- Browser="AgentName"
3633
-
3634
- [*Linkman*]
3635
- Parent=Link Checkers
3636
- Browser="Linkman"
3637
-
3638
- [*LinksManager.com*]
3639
- Parent=Link Checkers
3640
- Browser="LinksManager"
3641
-
3642
- [*Powermarks/*]
3643
- Parent=Link Checkers
3644
- Browser="Powermarks"
3645
-
3646
- [*Web Link Validator*]
3647
- Parent=Link Checkers
3648
- Browser="Web Link Validator"
3649
-
3650
- [*Zeus*]
3651
- Parent=Link Checkers
3652
- Browser="Zeus"
3653
-
3654
- [ActiveBookmark *]
3655
- Parent=Link Checkers
3656
- Browser="ActiveBookmark"
3657
-
3658
- [Bookdog/*]
3659
- Parent=Link Checkers
3660
- Browser="Bookdog"
3661
-
3662
- [Bookmark Buddy*]
3663
- Parent=Link Checkers
3664
- Browser="Bookmark Buddy"
3665
-
3666
- [Bookmark Renewal Check Agent*]
3667
- Parent=Link Checkers
3668
- Browser="Bookmark Renewal Check Agent"
3669
-
3670
- [Bookmark search tool*]
3671
- Parent=Link Checkers
3672
- Browser="Bookmark search tool"
3673
-
3674
- [Bookmark-Manager]
3675
- Parent=Link Checkers
3676
- Browser="Bookmark-Manager"
3677
-
3678
- [Checkbot*]
3679
- Parent=Link Checkers
3680
- Browser="Checkbot"
3681
-
3682
- [CheckLinks/*]
3683
- Parent=Link Checkers
3684
- Browser="CheckLinks"
3685
-
3686
- [CyberSpyder Link Test/*]
3687
- Parent=Link Checkers
3688
- Browser="CyberSpyder Link Test"
3689
-
3690
- [DLC/*]
3691
- Parent=Link Checkers
3692
- Browser="DLC"
3693
-
3694
- [DocWeb Link Crawler (http://doc.php.net)]
3695
- Parent=Link Checkers
3696
- Browser="DocWeb Link Crawler"
3697
-
3698
- [FavOrg]
3699
- Parent=Link Checkers
3700
- Browser="FavOrg"
3701
-
3702
- [Favorites Sweeper v.3.*]
3703
- Parent=Link Checkers
3704
- Browser="Favorites Sweeper"
3705
-
3706
- [FindLinks/*]
3707
- Parent=Link Checkers
3708
- Browser="FindLinks"
3709
-
3710
- [Funnel Web Profiler*]
3711
- Parent=Link Checkers
3712
- Browser="Funnel Web Profiler"
3713
-
3714
- [Html Link Validator (www.lithopssoft.com)]
3715
- Parent=Link Checkers
3716
- Browser="HTML Link Validator"
3717
-
3718
- [IECheck]
3719
- Parent=Link Checkers
3720
- Browser="IECheck"
3721
-
3722
- [JCheckLinks/*]
3723
- Parent=Link Checkers
3724
- Browser="JCheckLinks"
3725
-
3726
- [JRTwine Software Check Favorites Utility]
3727
- Parent=Link Checkers
3728
- Browser="JRTwine"
3729
-
3730
- [Link Valet Online*]
3731
- Parent=Link Checkers
3732
- Browser="Link Valet"
3733
-
3734
- [LinkAlarm/*]
3735
- Parent=Link Checkers
3736
- Browser="LinkAlarm"
3737
-
3738
- [Linkbot*]
3739
- Parent=Link Checkers
3740
- Browser="Linkbot"
3741
-
3742
- [LinkChecker/*]
3743
- Parent=Link Checkers
3744
- Browser="LinkChecker"
3745
-
3746
- [LinkextractorPro*]
3747
- Parent=Link Checkers
3748
- Browser="LinkextractorPro"
3749
-
3750
- [LinkLint-checkonly/*]
3751
- Parent=Link Checkers
3752
- Browser="LinkLint"
3753
-
3754
- [LinkScan/*]
3755
- Parent=Link Checkers
3756
- Browser="LinkScan"
3757
-
3758
- [LinkSweeper/*]
3759
- Parent=Link Checkers
3760
- Browser="LinkSweeper"
3761
-
3762
- [LinkWalker*]
3763
- Parent=Link Checkers
3764
- Browser="LinkWalker"
3765
-
3766
- [MetaGer-LinkChecker]
3767
- Parent=Link Checkers
3768
- Browser="MetaGer-LinkChecker"
3769
-
3770
- [Mozilla/* (compatible; linktiger/*; *http://www.linktiger.com*)]
3771
- Parent=Link Checkers
3772
- Browser="LinkTiger"
3773
-
3774
- [Mozilla/4.0 (Compatible); URLBase*]
3775
- Parent=Link Checkers
3776
- Browser="URLBase"
3777
-
3778
- [Mozilla/4.0 (compatible; Link Utility; http://net-promoter.com)]
3779
- Parent=Link Checkers
3780
- Browser="NetPromoter Link Utility"
3781
-
3782
- [Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Web Link Validator*]
3783
- Parent=Link Checkers
3784
- Browser="Web Link Validator"
3785
- Platform_Version=98
3786
- Win32=true
3787
-
3788
- [Mozilla/4.0 (compatible; MSIE 7.0; Win32) Link Commander 3.0]
3789
- Parent=Link Checkers
3790
- Browser="Link Commander"
3791
- Version=3.0
3792
- MajorVer=3
3793
- MinorVer=0
3794
- Platform="Win32"
3795
-
3796
- [Mozilla/4.0 (compatible; smartBot/1.*; checking links; *)]
3797
- Parent=Link Checkers
3798
- Browser="smartBot"
3799
-
3800
- [Mozilla/4.0 (compatible; SuperCleaner*;*)]
3801
- Parent=Link Checkers
3802
- Browser="SuperCleaner"
3803
-
3804
- [Mozilla/5.0 gURLChecker/*]
3805
- Parent=Link Checkers
3806
- Browser="gURLChecker"
3807
-
3808
- [Newsgroupreporter LinkCheck]
3809
- Parent=Link Checkers
3810
- Browser="Newsgroupreporter LinkCheck"
3811
-
3812
- [onCHECK Linkchecker von www.scientec.de fuer www.onsinn.de]
3813
- Parent=Link Checkers
3814
- Browser="onCHECK Linkchecker"
3815
-
3816
- [online link validator (http://www.dead-links.com/)]
3817
- Parent=Link Checkers
3818
- Browser="Dead-Links.com"
3819
-
3820
- [REL Link Checker*]
3821
- Parent=Link Checkers
3822
- Browser="REL Link Checker"
3823
-
3824
- [RLinkCheker*]
3825
- Parent=Link Checkers
3826
- Browser="RLinkCheker"
3827
-
3828
- [Robozilla/*]
3829
- Parent=Link Checkers
3830
- Browser="Robozilla"
3831
-
3832
- [RPT-HTTPClient/*]
3833
- Parent=Link Checkers
3834
- Browser="RPT-HTTPClient"
3835
-
3836
- [SafariBookmarkChecker*(?http://www.coriolis.ch/)]
3837
- Parent=Link Checkers
3838
- Browser="SafariBookmarkChecker"
3839
- Platform="MacOSX"
3840
- CssVersion=2
3841
-
3842
- [Simpy/* (Simpy; http://www.simpy.com/?ref=bot; feedback at simpy dot com)]
3843
- Parent=Link Checkers
3844
- Browser="Simpy"
3845
-
3846
- [SiteBar/*]
3847
- Parent=Link Checkers
3848
- Browser="SiteBar"
3849
-
3850
- [Susie (http://www.sync2it.com/bms/susie.php]
3851
- Parent=Link Checkers
3852
- Browser="Susie"
3853
-
3854
- [URLBase/*]
3855
- Parent=Link Checkers
3856
- Browser="URLBase"
3857
-
3858
- [VSE/*]
3859
- Parent=Link Checkers
3860
- Browser="VSE Link Tester"
3861
-
3862
- [WebTrends Link Analyzer]
3863
- Parent=Link Checkers
3864
- Browser="WebTrends Link Analyzer"
3865
-
3866
- [WorQmada/*]
3867
- Parent=Link Checkers
3868
- Browser="WorQmada"
3869
-
3870
- [Xenu* Link Sleuth*]
3871
- Parent=Link Checkers
3872
- Browser="Xenu's Link Sleuth"
3873
-
3874
- [Z-Add Link Checker*]
3875
- Parent=Link Checkers
3876
- Browser="Z-Add Link Checker"
3877
-
3878
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Microsoft
3879
-
3880
- [Microsoft]
3881
- Parent=DefaultProperties
3882
- Comment="Microsoft"
3883
- Browser="Microsoft"
3884
- Crawler=true
3885
-
3886
- [Live (http://www.live.com/)]
3887
- Parent=Microsoft
3888
- Browser="Microsoft Live"
3889
- isSyndicationReader=true
3890
-
3891
- [MFC Foundation Class Library*]
3892
- Parent=Microsoft
3893
- Browser="MFC Foundation Class Library"
3894
-
3895
- [MFHttpScan]
3896
- Parent=Microsoft
3897
- Browser="MFHttpScan"
3898
-
3899
- [Microsoft BITS/*]
3900
- Parent=Microsoft
3901
- Browser="BITS"
3902
-
3903
- [Microsoft Data Access Internet Publishing Provider Cache Manager]
3904
- Parent=Microsoft
3905
- Browser="MS IPP"
3906
-
3907
- [Microsoft Data Access Internet Publishing Provider DAV*]
3908
- Parent=Microsoft
3909
- Browser="MS IPP DAV"
3910
-
3911
- [Microsoft Data Access Internet Publishing Provider Protocol Discovery]
3912
- Parent=Microsoft
3913
- Browser="MS IPPPD"
3914
-
3915
- [Microsoft Internet Explorer]
3916
- Parent=Microsoft
3917
- Browser="Fake IE"
3918
-
3919
- [Microsoft Office Existence Discovery]
3920
- Parent=Microsoft
3921
- Browser="Microsoft Office Existence Discovery"
3922
-
3923
- [Microsoft Office Protocol Discovery]
3924
- Parent=Microsoft
3925
- Browser="MS OPD"
3926
-
3927
- [Microsoft Office/* (*Picture Manager*)]
3928
- Parent=Microsoft
3929
- Browser="Microsoft Office Picture Manager"
3930
-
3931
- [Microsoft URL Control*]
3932
- Parent=Microsoft
3933
- Browser="Microsoft URL Control"
3934
-
3935
- [Microsoft Visio MSIE]
3936
- Parent=Microsoft
3937
- Browser="Microsoft Visio"
3938
-
3939
- [Microsoft-WebDAV-MiniRedir/*]
3940
- Parent=Microsoft
3941
- Browser="Microsoft-WebDAV"
3942
-
3943
- [Mozilla/5.0 (Macintosh; Intel Mac OS X) Excel/12.*]
3944
- Parent=Microsoft
3945
- Browser="Microsoft Excel"
3946
- Version=12.0
3947
- MajorVer=12
3948
- MinorVer=0
3949
- Platform="MacOSX"
3950
-
3951
- [MSN Feed Manager]
3952
- Parent=Microsoft
3953
- Browser="MSN Feed Manager"
3954
- isSyndicationReader=true
3955
-
3956
- [MSProxy/*]
3957
- Parent=Microsoft
3958
- Browser="MS Proxy"
3959
-
3960
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Miscellaneous Browsers
3961
-
3962
- [Miscellaneous Browsers]
3963
- Parent=DefaultProperties
3964
- Comment="Miscellaneous Browsers"
3965
- Browser="Miscellaneous Browsers"
3966
- Crawler=true
3967
-
3968
- [*Amiga*]
3969
- Parent=Miscellaneous Browsers
3970
- Browser="Amiga"
3971
- Platform="Amiga"
3972
-
3973
- [*avantbrowser*]
3974
- Parent=Miscellaneous Browsers
3975
- Browser="Avant Browser"
3976
-
3977
- [12345]
3978
- Parent=Miscellaneous Browsers
3979
- Browser="12345"
3980
-
3981
- [1st ZipCommander (Net) - http://www.zipcommander.com/]
3982
- Parent=Miscellaneous Browsers
3983
- Browser="1st ZipCommander"
3984
-
3985
- [Ace Explorer]
3986
- Parent=Miscellaneous Browsers
3987
- Browser="Ace Explorer"
3988
-
3989
- [Enigma Browser*]
3990
- Parent=Miscellaneous Browsers
3991
- Browser="Enigma Browser"
3992
-
3993
- [EVE-minibrowser/*]
3994
- Parent=Miscellaneous Browsers
3995
- Browser="EVE-minibrowser"
3996
- IFrames=false
3997
- Tables=false
3998
- BackgroundSounds=false
3999
- JavaScript=false
4000
- VBScript=false
4001
- JavaApplets=false
4002
- ActiveXControls=false
4003
- Crawler=false
4004
-
4005
- [Godzilla/* (Basic*; *; Commodore C=64; *; rv:1.*)*]
4006
- Parent=Miscellaneous Browsers
4007
- Browser="Godzilla"
4008
-
4009
- [GreenBrowser]
4010
- Parent=Miscellaneous Browsers
4011
- Browser="GreenBrowser"
4012
- Frames=true
4013
- IFrames=true
4014
- Tables=true
4015
- Cookies=true
4016
- BackgroundSounds=true
4017
- JavaScript=true
4018
- VBScript=true
4019
- JavaApplets=true
4020
- ActiveXControls=true
4021
- CssVersion=2
4022
-
4023
- [Kopiczek/* (WyderOS*; *)]
4024
- Parent=Miscellaneous Browsers
4025
- Browser="Kopiczek"
4026
- Platform="WyderOS"
4027
- IFrames=true
4028
- VBScript=true
4029
- JavaApplets=true
4030
- CssVersion=2
4031
-
4032
- [Mozilla/* (*) - BrowseX (*)]
4033
- Parent=Miscellaneous Browsers
4034
- Browser="BrowseX"
4035
-
4036
- [Mozilla/* (Win32;*Escape?*; ?)]
4037
- Parent=Miscellaneous Browsers
4038
- Browser="Escape"
4039
- Platform="Win32"
4040
-
4041
- [Mozilla/4.0 (compatible; ibisBrowser)]
4042
- Parent=Miscellaneous Browsers
4043
- Browser="ibisBrowser"
4044
-
4045
- [Mozilla/5.0 (Macintosh; ?; PPC Mac OS X;*) AppleWebKit/* (*) HistoryHound/*]
4046
- Parent=Miscellaneous Browsers
4047
- Browser="HistoryHound"
4048
-
4049
- [Mozilla/5.0 (X11; U; Linux*; *) AppleWebKit/*(KHTML, like Gecko) Safari/* Epiphany/2.30.*]
4050
- Parent=Miscellaneous Browsers
4051
- Browser="Epiphany"
4052
- Version=2.30
4053
- MajorVer=2
4054
- MinorVer=30
4055
- Platform="Linux"
4056
- Win16=false
4057
- Win32=false
4058
- Win64=false
4059
- IFrames=true
4060
- VBScript=true
4061
- JavaApplets=true
4062
- CssVersion=3
4063
-
4064
- [NetRecorder*]
4065
- Parent=Miscellaneous Browsers
4066
- Browser="NetRecorder"
4067
-
4068
- [NetSurf*]
4069
- Parent=Miscellaneous Browsers
4070
- Browser="NetSurf"
4071
-
4072
- [ogeb browser , Version 1.1.0]
4073
- Parent=Miscellaneous Browsers
4074
- Browser="ogeb browser"
4075
- Version=1.1
4076
- MajorVer=1
4077
- MinorVer=1
4078
-
4079
- [SCEJ PSP BROWSER 0102pspNavigator]
4080
- Parent=Miscellaneous Browsers
4081
- Browser="Wipeout Pure"
4082
-
4083
- [SlimBrowser]
4084
- Parent=Miscellaneous Browsers
4085
- Browser="SlimBrowser"
4086
-
4087
- [WWW_Browser/*]
4088
- Parent=Miscellaneous Browsers
4089
- Browser="WWW Browser"
4090
- Version=1.69
4091
- MajorVer=1
4092
- MinorVer=69
4093
- Platform="Win16"
4094
- CssVersion=3
4095
-
4096
- [*Netcraft Webserver Survey*]
4097
- Parent=Netcraft
4098
- Browser="Netcraft Webserver Survey"
4099
-
4100
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Offline Browsers
4101
-
4102
- [Offline Browsers]
4103
- Parent=DefaultProperties
4104
- Comment="Offline Browsers"
4105
- Browser="Offline Browsers"
4106
- Crawler=true
4107
-
4108
- [*Check&Get*]
4109
- Parent=Offline Browsers
4110
- Browser="Check&Get"
4111
-
4112
- [*HTTrack*]
4113
- Parent=Offline Browsers
4114
- Browser="HTTrack"
4115
-
4116
- [*MSIECrawler*]
4117
- Parent=Offline Browsers
4118
- Browser="IE Offline Browser"
4119
-
4120
- [*TweakMASTER*]
4121
- Parent=Offline Browsers
4122
- Browser="TweakMASTER"
4123
-
4124
- [BackStreet Browser *]
4125
- Parent=Offline Browsers
4126
- Browser="BackStreet Browser"
4127
-
4128
- [Go-Ahead-Got-It*]
4129
- Parent=Offline Browsers
4130
- Browser="Go Ahead Got-It"
4131
-
4132
- [iGetter/*]
4133
- Parent=Offline Browsers
4134
- Browser="iGetter"
4135
-
4136
- [Teleport*]
4137
- Parent=Offline Browsers
4138
- Browser="Teleport"
4139
-
4140
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Online Scanners
4141
-
4142
- [Online Scanners]
4143
- Parent=DefaultProperties
4144
- Comment="Online Scanners"
4145
- Browser="Online Scanners"
4146
-
4147
- [JoeDog/* (X11; I; Siege *)]
4148
- Parent=Online Scanners
4149
- Browser="JoeDog"
4150
-
4151
- [Morfeus Fucking Scanner]
4152
- Parent=Online Scanners
4153
- Browser="Morfeus Fucking Scanner"
4154
-
4155
- [Mozilla/4.0 (compatible; Trend Micro tmdr 1.*]
4156
- Parent=Online Scanners
4157
- Browser="Trend Micro"
4158
-
4159
- [Titanium 2005 (4.02.01)]
4160
- Parent=Online Scanners
4161
- Browser="Panda Antivirus Titanium"
4162
-
4163
- [virus_detector*]
4164
- Parent=Online Scanners
4165
- Browser="Secure Computing Corporation"
4166
-
4167
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Proxy Servers
4168
-
4169
- [Proxy Servers]
4170
- Parent=DefaultProperties
4171
- Comment="Proxy Servers"
4172
- Browser="Proxy Servers"
4173
-
4174
- [*squid*]
4175
- Parent=Proxy Servers
4176
- Browser="Squid"
4177
-
4178
- [Anonymisiert*]
4179
- Parent=Proxy Servers
4180
- Browser="Anonymizied"
4181
-
4182
- [Anonymizer/*]
4183
- Parent=Proxy Servers
4184
- Browser="Anonymizer"
4185
-
4186
- [Anonymizied*]
4187
- Parent=Proxy Servers
4188
- Browser="Anonymizied"
4189
-
4190
- [Anonymous*]
4191
- Parent=Proxy Servers
4192
- Browser="Anonymous"
4193
-
4194
- [Anonymous/*]
4195
- Parent=Proxy Servers
4196
- Browser="Anonymous"
4197
-
4198
- [CE-Preload]
4199
- Parent=Proxy Servers
4200
- Browser="CE-Preload"
4201
-
4202
- [http://Anonymouse.org/*]
4203
- Parent=Proxy Servers
4204
- Browser="Anonymouse"
4205
-
4206
- [IE/6.01 (CP/M; 8-bit*)]
4207
- Parent=Proxy Servers
4208
- Browser="Squid"
4209
-
4210
- [Mozilla/* (TuringOS; Turing Machine; 0.0)]
4211
- Parent=Proxy Servers
4212
- Browser="Anonymizer"
4213
-
4214
- [Mozilla/4.0 (compatible; MSIE ?.0; SaferSurf*)]
4215
- Parent=Proxy Servers
4216
- Browser="SaferSurf"
4217
-
4218
- [Mozilla/5.0 (compatible; del.icio.us-thumbnails/*; *) KHTML/* (like Gecko)]
4219
- Parent=Proxy Servers
4220
- Browser="Yahoo!"
4221
- Crawler=true
4222
-
4223
- [Nutscrape]
4224
- Parent=Proxy Servers
4225
- Browser="Squid"
4226
-
4227
- [Nutscrape/* (CP/M; 8-bit*)]
4228
- Parent=Proxy Servers
4229
- Browser="Squid"
4230
-
4231
- [Privoxy/*]
4232
- Parent=Proxy Servers
4233
- Browser="Privoxy"
4234
-
4235
- [ProxyTester*]
4236
- Parent=Proxy Servers
4237
- Browser="ProxyTester"
4238
- Crawler=true
4239
-
4240
- [SilentSurf*]
4241
- Parent=Proxy Servers
4242
- Browser="SilentSurf"
4243
-
4244
- [SmallProxy*]
4245
- Parent=Proxy Servers
4246
- Browser="SmallProxy"
4247
-
4248
- [Space*Bison/*]
4249
- Parent=Proxy Servers
4250
- Browser="Proxomitron"
4251
-
4252
- [Sqworm/*]
4253
- Parent=Proxy Servers
4254
- Browser="Websense"
4255
-
4256
- [SurfControl]
4257
- Parent=Proxy Servers
4258
- Browser="SurfControl"
4259
-
4260
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Research Projects
4261
-
4262
- [Research Projects]
4263
- Parent=DefaultProperties
4264
- Comment="Research Projects"
4265
- Browser="Research Projects"
4266
- Crawler=true
4267
-
4268
- [*research*]
4269
- Parent=Research Projects
4270
- Browser="Generic Research Crawler"
4271
-
4272
- [AcadiaUniversityWebCensusClient]
4273
- Parent=Research Projects
4274
- Browser="AcadiaUniversityWebCensusClient"
4275
-
4276
- [Amico Alpha * (*) Gecko/* AmicoAlpha/*]
4277
- Parent=Research Projects
4278
- Browser="Amico Alpha"
4279
-
4280
- [annotate_google; http://ponderer.org/*]
4281
- Parent=Research Projects
4282
- Browser="Annotate Google"
4283
-
4284
- [CMS crawler (?http://buytaert.net/crawler/)]
4285
- Parent=Research Projects
4286
-
4287
- [e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)]
4288
- Parent=Research Projects
4289
- Browser="e-SocietyRobot"
4290
-
4291
- [Forschungsportal/*]
4292
- Parent=Research Projects
4293
- Browser="Forschungsportal"
4294
-
4295
- [Gulper Web *]
4296
- Parent=Research Projects
4297
- Browser="Gulper Web Bot"
4298
-
4299
- [HooWWWer/*]
4300
- Parent=Research Projects
4301
- Browser="HooWWWer"
4302
-
4303
- [inetbot/* (?http://www.inetbot.com/bot.html)]
4304
- Parent=Research Projects
4305
- Browser="inetbot"
4306
-
4307
- [IRLbot/1.0 (*http://irl.cs.tamu.edu/crawler*)]
4308
- Parent=Research Projects
4309
- Browser="IRLbot"
4310
- Version=1.0
4311
- MajorVer=1
4312
- MinorVer=0
4313
-
4314
- [IRLbot/2.0 (*http://irl.cs.tamu.edu/crawler*)]
4315
- Parent=Research Projects
4316
- Version=2.0
4317
- MajorVer=2
4318
- MinorVer=0
4319
-
4320
- [IRLbot/3.0 (*http://irl.cs.tamu.edu/crawler*)]
4321
- Parent=Research Projects
4322
- Version=3.0
4323
- MajorVer=3
4324
- MinorVer=0
4325
-
4326
- [JUST-CRAWLER(*)]
4327
- Parent=Research Projects
4328
- Browser="JUST-CRAWLER"
4329
-
4330
- [Lachesis]
4331
- Parent=Research Projects
4332
- Browser="Lachesis"
4333
-
4334
- [Mozilla/5.0 (compatible; nextthing.org/*)]
4335
- Parent=Research Projects
4336
- Browser="nextthing.org"
4337
- Version=1.0
4338
- MajorVer=1
4339
- MinorVer=0
4340
-
4341
- [Mozilla/5.0 (compatible; Theophrastus/*)]
4342
- Parent=Research Projects
4343
- Browser="Theophrastus"
4344
-
4345
- [Mozilla/5.0 (compatible; Webscan v0.*; +http://otc.dyndns.org/webscan/)]
4346
- Parent=Research Projects
4347
- Browser="Webscan"
4348
-
4349
- [MQbot*]
4350
- Parent=Research Projects
4351
- Browser="MQbot"
4352
-
4353
- [OutfoxBot/*]
4354
- Parent=Research Projects
4355
- Browser="OutfoxBot"
4356
-
4357
- [polybot?*]
4358
- Parent=Research Projects
4359
- Browser="Polybot"
4360
-
4361
- [Shim?Crawler*]
4362
- Parent=Research Projects
4363
- Browser="Shim Crawler"
4364
-
4365
- [Steeler/*]
4366
- Parent=Research Projects
4367
- Browser="Steeler"
4368
-
4369
- [Taiga web spider]
4370
- Parent=Research Projects
4371
- Browser="Taiga"
4372
-
4373
- [Theme Spider*]
4374
- Parent=Research Projects
4375
- Browser="Theme Spider"
4376
-
4377
- [UofTDB_experiment* (leehyun@cs.toronto.edu)]
4378
- Parent=Research Projects
4379
- Browser="UofTDB Experiment"
4380
-
4381
- [USyd-NLP-Spider*]
4382
- Parent=Research Projects
4383
- Browser="USyd-NLP-Spider"
4384
-
4385
- [woriobot*]
4386
- Parent=Research Projects
4387
- Browser="woriobot"
4388
-
4389
- [wwwster/* (Beta, mailto:gue@cis.uni-muenchen.de)]
4390
- Parent=Research Projects
4391
- Browser="wwwster"
4392
- Beta=true
4393
-
4394
- [Zao-Crawler]
4395
- Parent=Research Projects
4396
- Browser="Zao-Crawler"
4397
-
4398
- [Zao/*]
4399
- Parent=Research Projects
4400
- Browser="Zao"
4401
-
4402
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Rippers
4403
-
4404
- [Rippers]
4405
- Parent=DefaultProperties
4406
- Comment="Rippers"
4407
- Browser="Ripper"
4408
- Crawler=true
4409
-
4410
- [*grub*]
4411
- Parent=Rippers
4412
- Browser="grub"
4413
-
4414
- [*ickHTTP*]
4415
- Parent=Rippers
4416
- Browser="IP*Works"
4417
-
4418
- [*java*]
4419
- Parent=Rippers
4420
- Browser="Generic Java Crawler"
4421
-
4422
- [*libwww*]
4423
- Parent=Rippers
4424
- Browser="libwww"
4425
-
4426
- [*WebGrabber*]
4427
- Parent=Rippers
4428
- Browser="WebGrabber"
4429
-
4430
- [*WinHttpRequest*]
4431
- Parent=Rippers
4432
- Browser="WinHttp"
4433
-
4434
- [3D-FTP/*]
4435
- Parent=Rippers
4436
- Browser="3D-FTP"
4437
-
4438
- [3wGet/*]
4439
- Parent=Rippers
4440
- Browser="3wGet"
4441
-
4442
- [ActiveRefresh*]
4443
- Parent=Rippers
4444
- Browser="ActiveRefresh"
4445
-
4446
- [Ad Muncher*]
4447
- Parent=Rippers
4448
- Browser="Ad Muncher"
4449
-
4450
- [Artera (Version *)]
4451
- Parent=Rippers
4452
- Browser="Artera"
4453
-
4454
- [AutoHotkey]
4455
- Parent=Rippers
4456
- Browser="AutoHotkey"
4457
-
4458
- [b2w/*]
4459
- Parent=Rippers
4460
- Browser="b2w"
4461
-
4462
- [BasicHTTP/*]
4463
- Parent=Rippers
4464
- Browser="BasicHTTP"
4465
-
4466
- [BlockNote.Net]
4467
- Parent=Rippers
4468
- Browser="BlockNote.Net"
4469
-
4470
- [CAST]
4471
- Parent=Rippers
4472
- Browser="CAST"
4473
-
4474
- [CFNetwork/*]
4475
- Parent=Rippers
4476
- Browser="CFNetwork"
4477
-
4478
- [CFSCHEDULE*]
4479
- Parent=Rippers
4480
- Browser="ColdFusion Task Scheduler"
4481
-
4482
- [CobWeb/*]
4483
- Parent=Rippers
4484
- Browser="CobWeb"
4485
-
4486
- [ColdFusion*]
4487
- Parent=Rippers
4488
- Browser="ColdFusion"
4489
-
4490
- [Crawl_Application]
4491
- Parent=Rippers
4492
- Browser="Crawl_Application"
4493
-
4494
- [CTerm/*]
4495
- Parent=Rippers
4496
- Browser="CTerm"
4497
-
4498
- [curl*]
4499
- Parent=Rippers
4500
- Browser="cURL"
4501
-
4502
- [Custo*]
4503
- Parent=Rippers
4504
- Browser="Custo"
4505
-
4506
- [DataCha0s/*]
4507
- Parent=Rippers
4508
- Browser="DataCha0s"
4509
-
4510
- [DeepIndexer*]
4511
- Parent=Rippers
4512
- Browser="DeepIndexer"
4513
-
4514
- [DISCo Pump *]
4515
- Parent=Rippers
4516
- Browser="DISCo Pump"
4517
-
4518
- [eStyleSearch * (compatible; MSIE 6.0; Windows NT 5.0)]
4519
- Parent=Rippers
4520
- Browser="eStyleSearch"
4521
- Platform_Version=5.0
4522
- Win32=true
4523
-
4524
- [ezic.com http agent *]
4525
- Parent=Rippers
4526
- Browser="Ezic.com"
4527
-
4528
- [fetch libfetch/*]
4529
- Parent=Rippers
4530
- Browser="fetch libfetch"
4531
-
4532
- [FGet*]
4533
- Parent=Rippers
4534
- Browser="FGet"
4535
-
4536
- [findfiles.net/* (Robot;test_robot@gmx-topmail.de)]
4537
- Parent=Rippers
4538
- Browser="FindFiles"
4539
-
4540
- [Flaming AttackBot*]
4541
- Parent=Rippers
4542
- Browser="Flaming AttackBot"
4543
-
4544
- [Foobot*]
4545
- Parent=Rippers
4546
- Browser="Foobot"
4547
-
4548
- [GameSpyHTTP/*]
4549
- Parent=Rippers
4550
- Browser="GameSpyHTTP"
4551
-
4552
- [gnome-vfs/*]
4553
- Parent=Rippers
4554
- Browser="gnome-vfs"
4555
-
4556
- [Harvest/*]
4557
- Parent=Rippers
4558
- Browser="Harvest"
4559
-
4560
- [hcat/*]
4561
- Parent=Rippers
4562
- Browser="hcat"
4563
-
4564
- [HLoader]
4565
- Parent=Rippers
4566
- Browser="HLoader"
4567
-
4568
- [Holmes/*]
4569
- Parent=Rippers
4570
- Browser="Holmes"
4571
-
4572
- [HTMLParser/*]
4573
- Parent=Rippers
4574
- Browser="HTMLParser"
4575
-
4576
- [http generic]
4577
- Parent=Rippers
4578
- Browser="http generic"
4579
-
4580
- [http://arachnode.net*]
4581
- Parent=Rippers
4582
- Browser="arachnode"
4583
-
4584
- [httpclient*]
4585
- Parent=Rippers
4586
- Browser="httpclient"
4587
-
4588
- [httperf/*]
4589
- Parent=Rippers
4590
- Browser="httperf"
4591
-
4592
- [HTTPFetch/*]
4593
- Parent=Rippers
4594
- Browser="HTTPFetch"
4595
-
4596
- [HTTPGrab]
4597
- Parent=Rippers
4598
- Browser="HTTPGrab"
4599
-
4600
- [HttpSession]
4601
- Parent=Rippers
4602
- Browser="HttpSession"
4603
-
4604
- [httpunit/*]
4605
- Parent=Rippers
4606
- Browser="HttpUnit"
4607
-
4608
- [ICE_GetFile]
4609
- Parent=Rippers
4610
- Browser="ICE_GetFile"
4611
-
4612
- [iexplore.exe]
4613
- Parent=Rippers
4614
- Browser="iexplore.exe"
4615
-
4616
- [Inet - Eureka App]
4617
- Parent=Rippers
4618
- Browser="Inet - Eureka App"
4619
-
4620
- [INetURL/*]
4621
- Parent=Rippers
4622
- Browser="INetURL"
4623
-
4624
- [InetURL:/*]
4625
- Parent=Rippers
4626
- Browser="InetURL"
4627
-
4628
- [Internet Exploiter/*]
4629
- Parent=Rippers
4630
- Browser="Internet Exploiter"
4631
-
4632
- [Internet Explore *]
4633
- Parent=Rippers
4634
- Browser="Fake IE"
4635
-
4636
- [Internet Explorer *]
4637
- Parent=Rippers
4638
- Browser="Fake IE"
4639
-
4640
- [IP*Works!*/*]
4641
- Parent=Rippers
4642
- Browser="IP*Works!"
4643
-
4644
- [IrssiUrlLog/*]
4645
- Parent=Rippers
4646
- Browser="IrssiUrlLog"
4647
-
4648
- [JPluck/*]
4649
- Parent=Rippers
4650
- Browser="JPluck"
4651
-
4652
- [Kapere (http://www.kapere.com)]
4653
- Parent=Rippers
4654
- Browser="Kapere"
4655
-
4656
- [LeechFTP]
4657
- Parent=Rippers
4658
- Browser="LeechFTP"
4659
-
4660
- [LeechGet*]
4661
- Parent=Rippers
4662
- Browser="LeechGet"
4663
-
4664
- [libcurl-agent/*]
4665
- Parent=Rippers
4666
- Browser="libcurl"
4667
-
4668
- [libWeb/clsHTTP*]
4669
- Parent=Rippers
4670
- Browser="libWeb/clsHTTP"
4671
-
4672
- [lwp*]
4673
- Parent=Rippers
4674
- Browser="lwp"
4675
-
4676
- [MFC_Tear_Sample]
4677
- Parent=Rippers
4678
- Browser="MFC_Tear_Sample"
4679
-
4680
- [Moozilla]
4681
- Parent=Rippers
4682
- Browser="Moozilla"
4683
-
4684
- [MovableType/*]
4685
- Parent=Rippers
4686
- Browser="MovableType Web Log"
4687
-
4688
- [Mozilla/* (compatible; OffByOne; Windows*) Webster Pro V3.*]
4689
- Parent=Rippers
4690
- Browser="OffByOne"
4691
- Version=3.0
4692
- MajorVer=3
4693
- MinorVer=0
4694
-
4695
- [Mozilla/2.0 (compatible; NEWT ActiveX; Win32)]
4696
- Parent=Rippers
4697
- Browser="NEWT ActiveX"
4698
- Platform="Win32"
4699
-
4700
- [Mozilla/3.0 (compatible; Indy Library)]
4701
- Parent=Rippers
4702
- Cookies=true
4703
-
4704
- [Mozilla/4.0 (compatible; BorderManager*)]
4705
- Parent=Rippers
4706
- Browser="Novell BorderManager"
4707
-
4708
- [Mozilla/5.0 (compatible; IPCheck Server Monitor*)]
4709
- Parent=Rippers
4710
- Browser="IPCheck Server Monitor"
4711
-
4712
- [OCN-SOC/*]
4713
- Parent=Rippers
4714
- Browser="OCN-SOC"
4715
-
4716
- [Offline Explorer*]
4717
- Parent=Rippers
4718
- Browser="Offline Explorer"
4719
-
4720
- [Open Web Analytics Bot*]
4721
- Parent=Rippers
4722
- Browser="Open Web Analytics Bot"
4723
-
4724
- [OSSProxy*]
4725
- Parent=Rippers
4726
- Browser="OSSProxy"
4727
-
4728
- [Pageload*]
4729
- Parent=Rippers
4730
- Browser="PageLoad"
4731
-
4732
- [PageNest/*]
4733
- Parent=Rippers
4734
- Browser="PageNest"
4735
-
4736
- [pavuk/*]
4737
- Parent=Rippers
4738
- Browser="Pavuk"
4739
-
4740
- [PEAR HTTP_Request*]
4741
- Parent=Rippers
4742
- Browser="PEAR-PHP"
4743
-
4744
- [PHP*]
4745
- Parent=Rippers
4746
- Browser="PHP"
4747
-
4748
- [PigBlock (Windows NT 5.1; U)*]
4749
- Parent=Rippers
4750
- Browser="PigBlock"
4751
- Platform_Version=5.1
4752
- Win32=true
4753
-
4754
- [Pockey*]
4755
- Parent=Rippers
4756
- Browser="Pockey-GetHTML"
4757
-
4758
- [POE-Component-Client-HTTP/*]
4759
- Parent=Rippers
4760
- Browser="POE-Component-Client-HTTP"
4761
-
4762
- [PycURL/*]
4763
- Parent=Rippers
4764
- Browser="PycURL"
4765
-
4766
- [Python*]
4767
- Parent=Rippers
4768
- Browser="Python"
4769
-
4770
- [RepoMonkey*]
4771
- Parent=Rippers
4772
- Browser="RepoMonkey"
4773
-
4774
- [SBL-BOT*]
4775
- Parent=Rippers
4776
- Browser="BlackWidow"
4777
-
4778
- [ScoutAbout*]
4779
- Parent=Rippers
4780
- Browser="ScoutAbout"
4781
-
4782
- [sherlock/*]
4783
- Parent=Rippers
4784
- Browser="Sherlock"
4785
-
4786
- [SiteParser/*]
4787
- Parent=Rippers
4788
- Browser="SiteParser"
4789
-
4790
- [SiteSnagger*]
4791
- Parent=Rippers
4792
- Browser="SiteSnagger"
4793
-
4794
- [SiteSucker/*]
4795
- Parent=Rippers
4796
- Browser="SiteSucker"
4797
-
4798
- [SiteWinder*]
4799
- Parent=Rippers
4800
- Browser="SiteWinder"
4801
-
4802
- [Snoopy*]
4803
- Parent=Rippers
4804
- Browser="Snoopy"
4805
-
4806
- [SOFTWING_TEAR_AGENT*]
4807
- Parent=Rippers
4808
- Browser="AspTear"
4809
-
4810
- [SuperHTTP/*]
4811
- Parent=Rippers
4812
- Browser="SuperHTTP"
4813
-
4814
- [Tcl http client package*]
4815
- Parent=Rippers
4816
- Browser="Tcl http client package"
4817
-
4818
- [Twisted PageGetter]
4819
- Parent=Rippers
4820
- Browser="Twisted PageGetter"
4821
-
4822
- [URL2File/*]
4823
- Parent=Rippers
4824
- Browser="URL2File"
4825
-
4826
- [UtilMind HTTPGet]
4827
- Parent=Rippers
4828
- Browser="UtilMind HTTPGet"
4829
-
4830
- [VCI WebViewer*]
4831
- Parent=Rippers
4832
- Browser="VCI WebViewer"
4833
-
4834
- [Web Downloader*]
4835
- Parent=Rippers
4836
- Browser="Web Downloader"
4837
-
4838
- [Web Downloader/*]
4839
- Parent=Rippers
4840
- Browser="Web Downloader"
4841
-
4842
- [Web Magnet*]
4843
- Parent=Rippers
4844
- Browser="Web Magnet"
4845
-
4846
- [WebAuto/*]
4847
- Parent=Rippers
4848
- Browser="WebAuto"
4849
-
4850
- [webbandit/*]
4851
- Parent=Rippers
4852
- Browser="webbandit"
4853
-
4854
- [WebCopier*]
4855
- Parent=Rippers
4856
- Browser="WebCopier"
4857
-
4858
- [WebDownloader*]
4859
- Parent=Rippers
4860
- Browser="WebDownloader"
4861
-
4862
- [WebFetch]
4863
- Parent=Rippers
4864
- Browser="WebFetch"
4865
-
4866
- [webfetch/*]
4867
- Parent=Rippers
4868
- Browser="WebFetch"
4869
-
4870
- [WebGatherer*]
4871
- Parent=Rippers
4872
- Browser="WebGatherer"
4873
-
4874
- [WebGet]
4875
- Parent=Rippers
4876
- Browser="WebGet"
4877
-
4878
- [WebReaper*]
4879
- Parent=Rippers
4880
- Browser="WebReaper"
4881
-
4882
- [WebRipper]
4883
- Parent=Rippers
4884
- Browser="WebRipper"
4885
-
4886
- [WebSauger*]
4887
- Parent=Rippers
4888
- Browser="WebSauger"
4889
-
4890
- [Website Downloader*]
4891
- Parent=Rippers
4892
- Browser="Website Downloader"
4893
-
4894
- [Website eXtractor*]
4895
- Parent=Rippers
4896
- Browser="Website eXtractor"
4897
-
4898
- [Website Quester]
4899
- Parent=Rippers
4900
- Browser="Website Quester"
4901
-
4902
- [WebsiteExtractor*]
4903
- Parent=Rippers
4904
- Browser="Website eXtractor"
4905
-
4906
- [WebSnatcher*]
4907
- Parent=Rippers
4908
- Browser="WebSnatcher"
4909
-
4910
- [Webster Pro*]
4911
- Parent=Rippers
4912
- Browser="Webster Pro"
4913
-
4914
- [WebStripper*]
4915
- Parent=Rippers
4916
- Browser="WebStripper"
4917
-
4918
- [WebWhacker*]
4919
- Parent=Rippers
4920
- Browser="WebWhacker"
4921
-
4922
- [WinHttp*]
4923
- Parent=Rippers
4924
- Browser="WinHttp"
4925
-
4926
- [WinScripter iNet Tools]
4927
- Parent=Rippers
4928
- Browser="WinScripter iNet Tools"
4929
-
4930
- [WWW-Mechanize/*]
4931
- Parent=Rippers
4932
- Browser="WWW-Mechanize"
4933
-
4934
- [Zend_Http_Client]
4935
- Parent=Rippers
4936
- Browser="Zend_Http_Client"
4937
-
4938
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Site Monitors
4939
-
4940
- [Site Monitors]
4941
- Parent=DefaultProperties
4942
- Comment="Site Monitors"
4943
- Browser="Site Monitors"
4944
- Crawler=true
4945
-
4946
- [*EasyRider*]
4947
- Parent=Site Monitors
4948
- Browser="EasyRider"
4949
-
4950
- [*maxamine.com--robot*]
4951
- Parent=Site Monitors
4952
- Browser="maxamine.com--robot"
4953
-
4954
- [*Pingdom*]
4955
- Parent=Site Monitors
4956
- Browser="Pingdom"
4957
-
4958
- [*WebMon ?.*]
4959
- Parent=Site Monitors
4960
- Browser="WebMon"
4961
-
4962
- [Kenjin Spider*]
4963
- Parent=Site Monitors
4964
- Browser="Kenjin Spider"
4965
-
4966
- [Kevin http://*]
4967
- Parent=Site Monitors
4968
- Browser="Kevin"
4969
-
4970
- [Mozilla/4.0 (compatible; ChangeDetection/*]
4971
- Parent=Site Monitors
4972
- Browser="ChangeDetection"
4973
-
4974
- [Mozilla/4.0 (compatible; MSIE ?.0; GomezAgent ?.0; Windows NT)]
4975
- Parent=Site Monitors
4976
- Browser="Gomez Site Monitor"
4977
-
4978
- [Mozilla/5.0 (compatible; Chirp/1.0; +http://www.binarycanary.com/chirp.cfm)]
4979
- Parent=Site Monitors
4980
- Browser="BinaryCanary"
4981
- Version=1.0
4982
- MajorVer=1
4983
- MinorVer=0
4984
-
4985
- [Mozilla/5.0 (compatible; UptimeRobot/1.0; http://www.uptimerobot.com/)]
4986
- Parent=Site Monitors
4987
- Browser="UptimeRobot"
4988
- Version=1.0
4989
- MajorVer=1
4990
- MinorVer=0
4991
-
4992
- [Myst Monitor Service v*]
4993
- Parent=Site Monitors
4994
- Browser="Myst Monitor Service"
4995
-
4996
- [Net Probe]
4997
- Parent=Site Monitors
4998
- Browser="Net Probe"
4999
-
5000
- [NetMechanic*]
5001
- Parent=Site Monitors
5002
- Browser="NetMechanic"
5003
-
5004
- [NetReality*]
5005
- Parent=Site Monitors
5006
- Browser="NetReality"
5007
-
5008
- [Pingdom.com_bot_version_*_(http://www.pingdom.com/)]
5009
- Parent=Site Monitors
5010
- Browser="Pingdom"
5011
-
5012
- [Site Valet Online*]
5013
- Parent=Site Monitors
5014
- Browser="Site Valet"
5015
-
5016
- [SITECHECKER]
5017
- Parent=Site Monitors
5018
- Browser="SITECHECKER"
5019
-
5020
- [sitemonitor@dnsvr.com/*]
5021
- Parent=Site Monitors
5022
- Browser="ZoneEdit Failover Monitor"
5023
-
5024
- [UpTime Checker*]
5025
- Parent=Site Monitors
5026
- Browser="UpTime Checker"
5027
-
5028
- [URL Control*]
5029
- Parent=Site Monitors
5030
- Browser="URL Control"
5031
-
5032
- [URL_Access/*]
5033
- Parent=Site Monitors
5034
- Browser="URL_Access"
5035
-
5036
- [URLCHECK]
5037
- Parent=Site Monitors
5038
- Browser="URLCHECK"
5039
-
5040
- [URLy Warning*]
5041
- Parent=Site Monitors
5042
- Browser="URLy Warning"
5043
-
5044
- [Webcheck *]
5045
- Parent=Site Monitors
5046
- Browser="Webcheck"
5047
- Version=1.0
5048
- MajorVer=1
5049
- MinorVer=0
5050
-
5051
- [WebPatrol/*]
5052
- Parent=Site Monitors
5053
- Browser="WebPatrol"
5054
-
5055
- [websitepulse checker/*]
5056
- Parent=Site Monitors
5057
- Browser="websitepulse checker"
5058
-
5059
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Social Bookmarkers
5060
-
5061
- [Social Networking]
5062
- Parent=DefaultProperties
5063
- Comment="Social Bookmarkers"
5064
- Browser="Social Bookmarkers"
5065
- Crawler=true
5066
-
5067
- [BookmarkBase(2/;http://bookmarkbase.com)]
5068
- Parent=Social Networking
5069
- Browser="BookmarkBase"
5070
-
5071
- [Cocoal.icio.us/1.0 (v43) (Mac OS X; http://www.scifihifi.com/cocoalicious)]
5072
- Parent=Social Networking
5073
- Browser="Cocoalicious"
5074
-
5075
- [Mozilla/5.0 (*) Gecko/* Firefox/2.0 OneRiot/1.0 (http://www.oneriot.com) ]
5076
- Parent=Social Networking
5077
- Browser="OneRiot"
5078
-
5079
- [Mozilla/5.0 (compatible; FriendFeedBot/0.*; +Http://friendfeed.com/about/bot)]
5080
- Parent=Social Networking
5081
- Browser="FriendFeedBot"
5082
-
5083
- [Mozilla/5.0 (compatible; Twitturls; +http://twitturls.com)]
5084
- Parent=Social Networking
5085
- Browser="Twitturls"
5086
-
5087
- [SocialSpider-Finder/0.*]
5088
- Parent=Social Networking
5089
- Browser="SocialSpider-Finder"
5090
-
5091
- [Twitturly*]
5092
- Parent=Social Networking
5093
- Browser="Twitturly"
5094
-
5095
- [WinkBot/*]
5096
- Parent=Social Networking
5097
- Browser="WinkBot"
5098
-
5099
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Translators
5100
-
5101
- [Translators]
5102
- Parent=DefaultProperties
5103
- Comment="Translators"
5104
- Browser="Translators"
5105
- Frames=true
5106
- Tables=true
5107
- Crawler=true
5108
-
5109
- [Seram Server]
5110
- Parent=Translators
5111
- Browser="Seram Server"
5112
-
5113
- [TeragramWebcrawler/*]
5114
- Parent=Translators
5115
- Browser="TeragramWebcrawler"
5116
- Version=1.0
5117
- MajorVer=1
5118
- MinorVer=0
5119
-
5120
- [WebIndexer/* (Web Indexer; *)]
5121
- Parent=Translators
5122
- Browser="WorldLingo"
5123
-
5124
- [WebTrans]
5125
- Parent=Translators
5126
- Browser="WebTrans"
5127
-
5128
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Version Checkers
5129
-
5130
- [Version Checkers]
5131
- Parent=DefaultProperties
5132
- Comment="Version Checkers"
5133
- Browser="Version Checkers"
5134
- Crawler=true
5135
-
5136
- [Automated Browscap.ini Updater. Gary contact me at serge@skycomp.ca with problems.]
5137
- Parent=Version Checkers
5138
- Browser="Automated Browscap Updater"
5139
-
5140
- [Automated Browscap.ini Updater. To report issues contact us at+http://www.skycomp.ca]
5141
- Parent=Version Checkers
5142
- Browser="Automated Browscap.ini Updater"
5143
-
5144
- [Browscap Mirror System/1.* (browscap.giantrealm.com)]
5145
- Parent=Version Checkers
5146
- Browser="Browscap Mirror System"
5147
-
5148
- [Browscap Mirror v1.30]
5149
- Parent=Version Checkers
5150
- Browser="Browscap Mirror"
5151
-
5152
- [Browscap updater]
5153
- Parent=Version Checkers
5154
- Browser="Browscap updater"
5155
-
5156
- [browscap updater; interval:weekly; server:rohan.doppy.nl; questions:support@doppy.nl;]
5157
- Parent=Version Checkers
5158
- Browser="browscap updater"
5159
-
5160
- [BrowscapUpdater1.0]
5161
- Parent=Version Checkers
5162
- Browser="BrowscapUpdater"
5163
-
5164
- [Browser Capabilities Project - PHP Browscap*]
5165
- Parent=Version Checkers
5166
- Browser="BCP - PHP Browscap"
5167
- Version=1.0
5168
- MajorVer=1
5169
- MinorVer=0
5170
-
5171
- [Browser Capabilities Project AutoDownloader; created by Tom Kelleher Consulting, Inc. (tkelleher.com); used with special permission from Gary Joel Keith; uses Microsoft's WinHTTP component]
5172
- Parent=Version Checkers
5173
- Browser="TKC AutoDownloader"
5174
-
5175
- [Decode Framework 0.* browscap library]
5176
- Parent=Version Checkers
5177
- Browser="Decode Framework browscap library"
5178
-
5179
- [Desktop Sidebar*]
5180
- Parent=Version Checkers
5181
- Browser="Desktop Sidebar"
5182
-
5183
- [Mono Browser Capabilities Updater*]
5184
- Parent=Version Checkers
5185
- Browser="Mono Browser Capabilities Updater"
5186
-
5187
- [PHP Browser Capabilities Project/*]
5188
- Parent=Version Checkers
5189
- Browser="PHP Browser Capabilities Project"
5190
-
5191
- [UpdateBrowscap*]
5192
- Parent=Version Checkers
5193
- Browser="UpdateBrowscap"
5194
-
5195
- [WCC Browscap Updater/0.* (PHP: file_get_contents)]
5196
- Parent=Version Checkers
5197
- Browser="WCC Browscap Updater"
5198
-
5199
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; W3C
5200
-
5201
- [W3C]
5202
- Parent=DefaultProperties
5203
- Comment="W3C"
5204
- Browser="W3C"
5205
- Crawler=true
5206
-
5207
- [*W3C-checklink/*]
5208
- Parent=W3C
5209
- Browser="W3C-checklink"
5210
-
5211
- [Jigsaw/* W3C_CSS_Validator*/*]
5212
- Parent=W3C
5213
- Browser="Jigsaw_W3C_CSS_Validator"
5214
-
5215
- [P3P Validator]
5216
- Parent=W3C
5217
- Browser="P3P Validator"
5218
-
5219
- [Unicorn/1.*]
5220
- Parent=W3C
5221
- Browser="W3C Unicorn"
5222
-
5223
- [W3C-mobileOK/*]
5224
- Parent=W3C
5225
- Browser="W3C-mobileOK"
5226
- Alpha=false
5227
- Beta=false
5228
- Win16=false
5229
- Win32=false
5230
- Win64=false
5231
- Frames=false
5232
- IFrames=false
5233
- Tables=false
5234
- Cookies=false
5235
- BackgroundSounds=false
5236
- JavaScript=false
5237
- VBScript=false
5238
- JavaApplets=false
5239
- ActiveXControls=false
5240
- isMobileDevice=false
5241
- isSyndicationReader=false
5242
- Crawler=true
5243
-
5244
- [W3C-mobileOK/DDC-*]
5245
- Parent=W3C
5246
- Browser="W3C-mobileOK/DDC"
5247
- isMobileDevice=true
5248
-
5249
- [W3C-WebCon/*]
5250
- Parent=W3C
5251
- Browser="W3C-WebCon"
5252
-
5253
- [W3C_Validator/*]
5254
- Parent=W3C
5255
- Browser="W3C_Validator"
5256
-
5257
- [W3CLineMode/*]
5258
- Parent=W3C
5259
- Browser="W3CLineMode"
5260
-
5261
- [W3CRobot/*]
5262
- Parent=W3C
5263
- Browser="W3CRobot"
5264
-
5265
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Become
5266
-
5267
- [Become]
5268
- Parent=DefaultProperties
5269
- Comment="Become"
5270
- Browser="Become"
5271
- isSyndicationReader=true
5272
- Crawler=true
5273
-
5274
- [*BecomeBot/*]
5275
- Parent=Become
5276
- Browser="BecomeBot"
5277
-
5278
- [*BecomeBot@exava.com*]
5279
- Parent=Become
5280
- Browser="BecomeBot"
5281
-
5282
- [*Exabot@exava.com*]
5283
- Parent=Become
5284
- Browser="Exabot"
5285
-
5286
- [MonkeyCrawl/*]
5287
- Parent=Become
5288
- Browser="MonkeyCrawl"
5289
-
5290
- [Mozilla/5.0 (compatible; BecomeJPBot/2.3; *)]
5291
- Parent=Become
5292
- Browser="BecomeJPBot"
5293
-
5294
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Blue Coat Systems
5295
-
5296
- [Blue Coat Systems]
5297
- Parent=DefaultProperties
5298
- Comment="Blue Coat Systems"
5299
- Browser="Blue Coat Systems"
5300
- Crawler=true
5301
-
5302
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; FeedHub
5303
-
5304
- [FeedHub]
5305
- Parent=DefaultProperties
5306
- Comment="FeedHub"
5307
- Browser="FeedHub"
5308
- isSyndicationReader=true
5309
- Crawler=true
5310
-
5311
- [FeedHub FeedDiscovery/1.0 (http://www.feedhub.com)]
5312
- Parent=FeedHub
5313
- Browser="FeedHub FeedDiscovery"
5314
- Version=1.0
5315
- MajorVer=1
5316
- MinorVer=0
5317
-
5318
- [FeedHub FeedFetcher/1.0 (http://www.feedhub.com)]
5319
- Parent=FeedHub
5320
- Browser="FeedHub FeedFetcher"
5321
- Version=1.0
5322
- MajorVer=1
5323
- MinorVer=0
5324
-
5325
- [FeedHub MetaDataFetcher/1.0 (http://www.feedhub.com)]
5326
- Parent=FeedHub
5327
- Browser="FeedHub MetaDataFetcher"
5328
- Version=1.0
5329
- MajorVer=1
5330
- MinorVer=0
5331
-
5332
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Internet Content Rating Association
5333
-
5334
- [Internet Content Rating Association]
5335
- Parent=DefaultProperties
5336
- Comment="Internet Content Rating Association"
5337
- Browser=""
5338
- Frames=true
5339
- Tables=true
5340
- Crawler=true
5341
-
5342
- [ICRA_label_generator/1.?]
5343
- Parent=Internet Content Rating Association
5344
- Browser="ICRA_label_generator"
5345
-
5346
- [ICRA_Semantic_spider/0.?]
5347
- Parent=Internet Content Rating Association
5348
- Browser="ICRA_Semantic_spider"
5349
-
5350
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Nagios
5351
-
5352
- [Nagios]
5353
- Parent=DefaultProperties
5354
- Comment="Nagios"
5355
- Browser="Nagios"
5356
- Crawler=true
5357
-
5358
- [check_http/* (nagios-plugins 1.*)]
5359
- Parent=Nagios
5360
- Version=1.0
5361
- MajorVer=1
5362
- MinorVer=0
5363
-
5364
- [check_http/* (nagios-plugins 1.1.*)]
5365
- Parent=Nagios
5366
- Version=1.1
5367
- MajorVer=1
5368
- MinorVer=1
5369
-
5370
- [check_http/* (nagios-plugins 1.2.*)]
5371
- Parent=Nagios
5372
- Version=1.2
5373
- MajorVer=1
5374
- MinorVer=2
5375
-
5376
- [check_http/* (nagios-plugins 1.3.*)]
5377
- Parent=Nagios
5378
- Version=1.3
5379
- MajorVer=1
5380
- MinorVer=3
5381
-
5382
- [check_http/* (nagios-plugins 1.4.*)]
5383
- Parent=Nagios
5384
- Version=1.4
5385
- MajorVer=1
5386
- MinorVer=4
5387
-
5388
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NameProtect
5389
-
5390
- [NameProtect]
5391
- Parent=DefaultProperties
5392
- Comment="NameProtect"
5393
- Browser="NameProtect"
5394
- Crawler=true
5395
-
5396
- [abot/*]
5397
- Parent=NameProtect
5398
- Browser="NameProtect"
5399
-
5400
- [NP/*]
5401
- Parent=NameProtect
5402
- Browser="NameProtect"
5403
-
5404
- [NPBot*]
5405
- Parent=NameProtect
5406
- Browser="NameProtect"
5407
-
5408
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Netcraft
5409
-
5410
- [Netcraft]
5411
- Parent=DefaultProperties
5412
- Comment="Netcraft"
5413
- Browser="Netcraft"
5414
- Crawler=true
5415
-
5416
- [*Netcraft Web Server Survey*]
5417
- Parent=Netcraft
5418
- Browser="Netcraft Webserver Survey"
5419
-
5420
- [Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; *info@netcraft.com)]
5421
- Parent=Netcraft
5422
- Browser="NetcraftSurveyAgent"
5423
-
5424
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; NewsGator
5425
-
5426
- [NewsGator]
5427
- Parent=DefaultProperties
5428
- Comment="NewsGator"
5429
- Browser="NewsGator"
5430
- isSyndicationReader=true
5431
- Crawler=true
5432
-
5433
- [MarsEdit*]
5434
- Parent=NewsGator
5435
- Browser="MarsEdit"
5436
-
5437
- [NetNewsWire*/*]
5438
- Parent=NewsGator
5439
- Browser="NetNewsWire"
5440
- Platform="MacOSX"
5441
-
5442
- [NewsFire/*]
5443
- Parent=NewsGator
5444
- Browser="NewsFire"
5445
-
5446
- [NewsGator FetchLinks extension/*]
5447
- Parent=NewsGator
5448
- Browser="NewsGator FetchLinks"
5449
-
5450
- [NewsGator/*]
5451
- Parent=NewsGator
5452
- Browser="NewsGator"
5453
-
5454
- [NewsGatorOnline/*]
5455
- Parent=NewsGator
5456
- Browser="NewsGatorOnline"
5457
-
5458
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 10.0
5459
-
5460
- [Chromium 10.0]
5461
- Parent=DefaultProperties
5462
- Comment="Chromium 10.0"
5463
- Browser="Chromium"
5464
- Version=10.0
5465
- MajorVer=10
5466
- MinorVer=0
5467
- Platform="Linux"
5468
- Frames=true
5469
- IFrames=true
5470
- Tables=true
5471
- Cookies=true
5472
- JavaScript=true
5473
- JavaApplets=true
5474
- CssVersion=3
5475
-
5476
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/10.*Chrome/*Safari/*]
5477
- Parent=Chromium 10.0
5478
-
5479
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/10.*Chrome/*Safari/*]
5480
- Parent=Chromium 10.0
5481
-
5482
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 11.0
5483
-
5484
- [Chromium 11.0]
5485
- Parent=DefaultProperties
5486
- Comment="Chromium 11.0"
5487
- Browser="Chromium"
5488
- Version=11.0
5489
- MajorVer=11
5490
- MinorVer=0
5491
- Platform="Linux"
5492
- Frames=true
5493
- IFrames=true
5494
- Tables=true
5495
- Cookies=true
5496
- JavaScript=true
5497
- JavaApplets=true
5498
- CssVersion=3
5499
-
5500
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/11.*Chrome/*Safari/*]
5501
- Parent=Chromium 11.0
5502
-
5503
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/11.*Chrome/*Safari/*]
5504
- Parent=Chromium 11.0
5505
-
5506
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 12.0
5507
-
5508
- [Chromium 12.0]
5509
- Parent=DefaultProperties
5510
- Comment="Chromium 12.0"
5511
- Browser="Chromium"
5512
- Version=12.0
5513
- MajorVer=12
5514
- MinorVer=0
5515
- Platform="Linux"
5516
- Frames=true
5517
- IFrames=true
5518
- Tables=true
5519
- Cookies=true
5520
- JavaScript=true
5521
- JavaApplets=true
5522
- CssVersion=3
5523
-
5524
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/12.*Chrome/*Safari/*]
5525
- Parent=Chromium 12.0
5526
-
5527
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/12.*Chrome/*Safari/*]
5528
- Parent=Chromium 12.0
5529
-
5530
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 13.0
5531
-
5532
- [Chromium 13.0]
5533
- Parent=DefaultProperties
5534
- Comment="Chromium 13.0"
5535
- Browser="Chromium"
5536
- Version=13.0
5537
- MajorVer=13
5538
- MinorVer=0
5539
- Platform="Linux"
5540
- Frames=true
5541
- IFrames=true
5542
- Tables=true
5543
- Cookies=true
5544
- JavaScript=true
5545
- JavaApplets=true
5546
- CssVersion=3
5547
-
5548
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/13.*Chrome/*Safari/*]
5549
- Parent=Chromium 13.0
5550
-
5551
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/13.*Chrome/*Safari/*]
5552
- Parent=Chromium 13.0
5553
-
5554
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 14.0
5555
-
5556
- [Chromium 14.0]
5557
- Parent=DefaultProperties
5558
- Comment="Chromium 14.0"
5559
- Browser="Chromium"
5560
- Version=14.0
5561
- MajorVer=14
5562
- MinorVer=0
5563
- Platform="Linux"
5564
- Frames=true
5565
- IFrames=true
5566
- Tables=true
5567
- Cookies=true
5568
- JavaScript=true
5569
- JavaApplets=true
5570
- CssVersion=3
5571
-
5572
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/14.*Chrome/*Safari/*]
5573
- Parent=Chromium 14.0
5574
-
5575
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/14.*Chrome/*Safari/*]
5576
- Parent=Chromium 14.0
5577
-
5578
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 15.0
5579
-
5580
- [Chromium 15.0]
5581
- Parent=DefaultProperties
5582
- Comment="Chromium 15.0"
5583
- Browser="Chromium"
5584
- Version=15.0
5585
- MajorVer=15
5586
- MinorVer=0
5587
- Platform="Linux"
5588
- Frames=true
5589
- IFrames=true
5590
- Tables=true
5591
- Cookies=true
5592
- JavaScript=true
5593
- JavaApplets=true
5594
- CssVersion=3
5595
-
5596
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/15.*Chrome/*Safari/*]
5597
- Parent=Chromium 15.0
5598
-
5599
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/15.*Chrome/*Safari/*]
5600
- Parent=Chromium 15.0
5601
-
5602
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 16.0
5603
-
5604
- [Chromium 16.0]
5605
- Parent=DefaultProperties
5606
- Comment="Chromium 16.0"
5607
- Browser="Chromium"
5608
- Version=16.0
5609
- MajorVer=16
5610
- MinorVer=0
5611
- Platform="Linux"
5612
- Frames=true
5613
- IFrames=true
5614
- Tables=true
5615
- Cookies=true
5616
- JavaScript=true
5617
- JavaApplets=true
5618
- CssVersion=3
5619
-
5620
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/16.*Chrome/*Safari/*]
5621
- Parent=Chromium 16.0
5622
-
5623
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/16.*Chrome/*Safari/*]
5624
- Parent=Chromium 16.0
5625
-
5626
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 17.0
5627
-
5628
- [Chromium 17.0]
5629
- Parent=DefaultProperties
5630
- Comment="Chromium 17.0"
5631
- Browser="Chromium"
5632
- Version=17.0
5633
- MajorVer=17
5634
- MinorVer=0
5635
- Platform="Linux"
5636
- Frames=true
5637
- IFrames=true
5638
- Tables=true
5639
- Cookies=true
5640
- JavaScript=true
5641
- JavaApplets=true
5642
- CssVersion=3
5643
-
5644
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/17.*Chrome/*Safari/*]
5645
- Parent=Chromium 17.0
5646
-
5647
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/17.*Chrome/*Safari/*]
5648
- Parent=Chromium 17.0
5649
-
5650
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 18.0
5651
-
5652
- [Chromium 18.0]
5653
- Parent=DefaultProperties
5654
- Comment="Chromium 18.0"
5655
- Browser="Chromium"
5656
- Version=18.0
5657
- MajorVer=18
5658
- MinorVer=0
5659
- Platform="Linux"
5660
- Frames=true
5661
- IFrames=true
5662
- Tables=true
5663
- Cookies=true
5664
- JavaScript=true
5665
- JavaApplets=true
5666
- CssVersion=3
5667
-
5668
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/18.*Chrome/*Safari/*]
5669
- Parent=Chromium 18.0
5670
-
5671
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/18.*Chrome/*Safari/*]
5672
- Parent=Chromium 18.0
5673
-
5674
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 19.0
5675
-
5676
- [Chromium 19.0]
5677
- Parent=DefaultProperties
5678
- Comment="Chromium 19.0"
5679
- Browser="Chromium"
5680
- Version=19.0
5681
- MajorVer=19
5682
- MinorVer=0
5683
- Platform="Linux"
5684
- Frames=true
5685
- IFrames=true
5686
- Tables=true
5687
- Cookies=true
5688
- JavaScript=true
5689
- JavaApplets=true
5690
- CssVersion=3
5691
-
5692
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/19.*Chrome/*Safari/*]
5693
- Parent=Chromium 19.0
5694
-
5695
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/19.*Chrome/*Safari/*]
5696
- Parent=Chromium 19.0
5697
-
5698
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 20.0
5699
-
5700
- [Chromium 20.0]
5701
- Parent=DefaultProperties
5702
- Comment="Chromium 20.0"
5703
- Browser="Chromium"
5704
- Version=20.0
5705
- MajorVer=20
5706
- MinorVer=0
5707
- Platform="Linux"
5708
- Frames=true
5709
- IFrames=true
5710
- Tables=true
5711
- Cookies=true
5712
- JavaScript=true
5713
- JavaApplets=true
5714
- CssVersion=3
5715
-
5716
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/20.*Chrome/*Safari/*]
5717
- Parent=Chromium 20.0
5718
-
5719
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/20.*Chrome/*Safari/*]
5720
- Parent=Chromium 20.0
5721
-
5722
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 21.0
5723
-
5724
- [Chromium 21.0]
5725
- Parent=DefaultProperties
5726
- Comment="Chromium 21.0"
5727
- Browser="Chromium"
5728
- Version=21.0
5729
- MajorVer=21
5730
- MinorVer=0
5731
- Platform="Linux"
5732
- Frames=true
5733
- IFrames=true
5734
- Tables=true
5735
- Cookies=true
5736
- JavaScript=true
5737
- JavaApplets=true
5738
- CssVersion=3
5739
-
5740
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/21.*Chrome/*Safari/*]
5741
- Parent=Chromium 21.0
5742
-
5743
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/21.*Chrome/*Safari/*]
5744
- Parent=Chromium 21.0
5745
-
5746
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 22.0
5747
-
5748
- [Chromium 22.0]
5749
- Parent=DefaultProperties
5750
- Comment="Chromium 22.0"
5751
- Browser="Chromium"
5752
- Version=22.0
5753
- MajorVer=22
5754
- MinorVer=0
5755
- Platform="Linux"
5756
- Frames=true
5757
- IFrames=true
5758
- Tables=true
5759
- Cookies=true
5760
- JavaScript=true
5761
- JavaApplets=true
5762
- CssVersion=3
5763
-
5764
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/22.*Chrome/*Safari/*]
5765
- Parent=Chromium 22.0
5766
-
5767
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/22.*Chrome/*Safari/*]
5768
- Parent=Chromium 22.0
5769
-
5770
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 6.0
5771
-
5772
- [Chromium 6.0]
5773
- Parent=DefaultProperties
5774
- Comment="Chromium 6.0"
5775
- Browser="Chromium"
5776
- Version=6.0
5777
- MajorVer=6
5778
- MinorVer=0
5779
- Platform="Linux"
5780
- Frames=true
5781
- IFrames=true
5782
- Tables=true
5783
- Cookies=true
5784
- JavaScript=true
5785
- JavaApplets=true
5786
- CssVersion=3
5787
-
5788
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/6.*Chrome/*Safari/*]
5789
- Parent=Chromium 6.0
5790
-
5791
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/6.*Chrome/*Safari/*]
5792
- Parent=Chromium 6.0
5793
- Platform="Linux"
5794
-
5795
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 7.0
5796
-
5797
- [Chromium 7.0]
5798
- Parent=DefaultProperties
5799
- Comment="Chromium 7.0"
5800
- Browser="Chromium"
5801
- Version=7.0
5802
- MajorVer=7
5803
- MinorVer=0
5804
- Platform="Linux"
5805
- Frames=true
5806
- IFrames=true
5807
- Tables=true
5808
- Cookies=true
5809
- JavaScript=true
5810
- JavaApplets=true
5811
- CssVersion=3
5812
-
5813
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/7.*Chrome/*Safari/*]
5814
- Parent=Chromium 7.0
5815
-
5816
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/7.*Chrome/*Safari/*]
5817
- Parent=Chromium 7.0
5818
-
5819
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 8.0
5820
-
5821
- [Chromium 8.0]
5822
- Parent=DefaultProperties
5823
- Comment="Chromium 8.0"
5824
- Browser="Chromium"
5825
- Version=8.0
5826
- MajorVer=8
5827
- MinorVer=0
5828
- Platform="Linux"
5829
- Frames=true
5830
- IFrames=true
5831
- Tables=true
5832
- Cookies=true
5833
- JavaScript=true
5834
- JavaApplets=true
5835
- CssVersion=3
5836
-
5837
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/8.*Chrome/*Safari/*]
5838
- Parent=Chromium 8.0
5839
-
5840
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/8.*Chrome/*Safari/*]
5841
- Parent=Chromium 8.0
5842
-
5843
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium 9.0
5844
-
5845
- [Chromium 9.0]
5846
- Parent=DefaultProperties
5847
- Comment="Chromium 9.0"
5848
- Browser="Chromium"
5849
- Version=9.0
5850
- MajorVer=9
5851
- MinorVer=0
5852
- Platform="Linux"
5853
- Frames=true
5854
- IFrames=true
5855
- Tables=true
5856
- Cookies=true
5857
- JavaScript=true
5858
- JavaApplets=true
5859
- CssVersion=3
5860
-
5861
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/9.*Chrome/*Safari/*]
5862
- Parent=Chromium 9.0
5863
-
5864
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/9.*Chrome/*Safari/*]
5865
- Parent=Chromium 9.0
5866
-
5867
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chromium Generic
5868
-
5869
- [Chromium Generic]
5870
- Parent=DefaultProperties
5871
- Comment="Chromium Generic"
5872
- Browser="Chromium"
5873
- Platform="Linux"
5874
- CssVersion=1
5875
-
5876
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chromium/*Chrome/*Safari/*]
5877
- Parent=Chromium Generic
5878
-
5879
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chromium/*Chrome/*Safari/*]
5880
- Parent=Chromium Generic
5881
-
5882
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 10.0
5883
-
5884
- [Chrome 10.0]
5885
- Parent=DefaultProperties
5886
- Comment="Chrome 10.0"
5887
- Browser="Chrome"
5888
- Version=10.0
5889
- MajorVer=10
5890
- MinorVer=0
5891
- Win32=true
5892
- Frames=true
5893
- IFrames=true
5894
- Tables=true
5895
- Cookies=true
5896
- JavaScript=true
5897
- JavaApplets=true
5898
- CssVersion=3
5899
-
5900
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5901
- Parent=Chrome 10.0
5902
- Platform="MacOSX"
5903
- Win32=false
5904
-
5905
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5906
- Parent=Chrome 10.0
5907
- Platform="Linux"
5908
- Win32=false
5909
-
5910
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5911
- Parent=Chrome 10.0
5912
- Platform="Linux"
5913
- Win32=false
5914
-
5915
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5916
- Parent=Chrome 10.0
5917
- Platform="WinNT"
5918
- Platform_Version=4.0
5919
-
5920
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5921
- Parent=Chrome 10.0
5922
- Platform="Win2000"
5923
- Platform_Version=5.0
5924
-
5925
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5926
- Parent=Chrome 10.0
5927
- Platform="WinXP"
5928
- Platform_Version=5.1
5929
-
5930
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5931
- Parent=Chrome 10.0
5932
- Platform="WinXP"
5933
- Platform_Version=5.1
5934
- Win32=false
5935
- Win64=true
5936
-
5937
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5938
- Parent=Chrome 10.0
5939
- Platform="WinXP"
5940
- Platform_Version=5.2
5941
-
5942
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5943
- Parent=Chrome 10.0
5944
- Platform="WinXP"
5945
- Platform_Version=5.2
5946
- Win32=false
5947
- Win64=true
5948
-
5949
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5950
- Parent=Chrome 10.0
5951
- Platform="WinVista"
5952
- Platform_Version=6.0
5953
-
5954
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5955
- Parent=Chrome 10.0
5956
- Platform="WinVista"
5957
- Platform_Version=6.0
5958
- Win32=false
5959
- Win64=true
5960
-
5961
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5962
- Parent=Chrome 10.0
5963
- Platform="Win7"
5964
- Platform_Version=6.1
5965
-
5966
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/10.*Safari/*]
5967
- Parent=Chrome 10.0
5968
- Platform="Win7"
5969
- Platform_Version=6.1
5970
- Win32=false
5971
- Win64=true
5972
-
5973
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 11.0
5974
-
5975
- [Chrome 11.0]
5976
- Parent=DefaultProperties
5977
- Comment="Chrome 11.0"
5978
- Browser="Chrome"
5979
- Version=11.0
5980
- MajorVer=11
5981
- MinorVer=0
5982
- Win32=true
5983
- Frames=true
5984
- IFrames=true
5985
- Tables=true
5986
- Cookies=true
5987
- JavaScript=true
5988
- JavaApplets=true
5989
- CssVersion=3
5990
-
5991
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
5992
- Parent=Chrome 11.0
5993
- Platform="MacOSX"
5994
- Win32=false
5995
-
5996
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
5997
- Parent=Chrome 11.0
5998
- Platform="Linux"
5999
- Win32=false
6000
-
6001
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6002
- Parent=Chrome 11.0
6003
- Platform="Linux"
6004
- Win32=false
6005
-
6006
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6007
- Parent=Chrome 11.0
6008
- Platform="WinNT"
6009
- Platform_Version=4.0
6010
-
6011
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6012
- Parent=Chrome 11.0
6013
- Platform="Win2000"
6014
- Platform_Version=5.0
6015
-
6016
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6017
- Parent=Chrome 11.0
6018
- Platform="WinXP"
6019
- Platform_Version=5.1
6020
-
6021
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6022
- Parent=Chrome 11.0
6023
- Platform="WinXP"
6024
- Platform_Version=5.1
6025
- Win32=false
6026
- Win64=true
6027
-
6028
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6029
- Parent=Chrome 11.0
6030
- Platform="WinXP"
6031
- Platform_Version=5.2
6032
-
6033
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6034
- Parent=Chrome 11.0
6035
- Platform="WinXP"
6036
- Platform_Version=5.2
6037
- Win32=false
6038
- Win64=true
6039
-
6040
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6041
- Parent=Chrome 11.0
6042
- Platform="WinVista"
6043
- Platform_Version=6.0
6044
-
6045
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6046
- Parent=Chrome 11.0
6047
- Platform="WinVista"
6048
- Platform_Version=6.0
6049
- Win32=false
6050
- Win64=true
6051
-
6052
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6053
- Parent=Chrome 11.0
6054
- Platform="Win7"
6055
- Platform_Version=6.1
6056
-
6057
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/11.*Safari/*]
6058
- Parent=Chrome 11.0
6059
- Platform="Win7"
6060
- Platform_Version=6.1
6061
- Win32=false
6062
- Win64=true
6063
-
6064
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 12.0
6065
-
6066
- [Chrome 12.0]
6067
- Parent=DefaultProperties
6068
- Comment="Chrome 12.0"
6069
- Browser="Chrome"
6070
- Version=12.0
6071
- MajorVer=12
6072
- MinorVer=0
6073
- Win32=true
6074
- Frames=true
6075
- IFrames=true
6076
- Tables=true
6077
- Cookies=true
6078
- JavaScript=true
6079
- JavaApplets=true
6080
- CssVersion=3
6081
-
6082
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6083
- Parent=Chrome 12.0
6084
- Platform="MacOSX"
6085
- Win32=false
6086
-
6087
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6088
- Parent=Chrome 12.0
6089
- Platform="Linux"
6090
- Win32=false
6091
-
6092
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6093
- Parent=Chrome 12.0
6094
- Platform="Linux"
6095
- Win32=false
6096
-
6097
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6098
- Parent=Chrome 12.0
6099
- Platform="WinNT"
6100
- Platform_Version=4.0
6101
-
6102
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6103
- Parent=Chrome 12.0
6104
- Platform="Win2000"
6105
- Platform_Version=5.0
6106
-
6107
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6108
- Parent=Chrome 12.0
6109
- Platform="WinXP"
6110
- Platform_Version=5.1
6111
-
6112
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6113
- Parent=Chrome 12.0
6114
- Platform="WinXP"
6115
- Platform_Version=5.1
6116
- Win32=false
6117
- Win64=true
6118
-
6119
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6120
- Parent=Chrome 12.0
6121
- Platform="WinXP"
6122
- Platform_Version=5.2
6123
-
6124
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6125
- Parent=Chrome 12.0
6126
- Platform="WinXP"
6127
- Platform_Version=5.2
6128
- Win32=false
6129
- Win64=true
6130
-
6131
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6132
- Parent=Chrome 12.0
6133
- Platform="WinVista"
6134
- Platform_Version=6.0
6135
-
6136
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6137
- Parent=Chrome 12.0
6138
- Platform="WinVista"
6139
- Platform_Version=6.0
6140
- Win32=false
6141
- Win64=true
6142
-
6143
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6144
- Parent=Chrome 12.0
6145
- Platform="Win7"
6146
- Platform_Version=6.1
6147
-
6148
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/12.*Safari/*]
6149
- Parent=Chrome 12.0
6150
- Platform="Win7"
6151
- Platform_Version=6.1
6152
- Win32=false
6153
- Win64=true
6154
-
6155
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 13.0
6156
-
6157
- [Chrome 13.0]
6158
- Parent=DefaultProperties
6159
- Comment="Chrome 13.0"
6160
- Browser="Chrome"
6161
- Version=13.0
6162
- MajorVer=13
6163
- MinorVer=0
6164
- Win32=true
6165
- Frames=true
6166
- IFrames=true
6167
- Tables=true
6168
- Cookies=true
6169
- JavaScript=true
6170
- JavaApplets=true
6171
- CssVersion=3
6172
-
6173
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6174
- Parent=Chrome 13.0
6175
- Platform="MacOSX"
6176
- Win32=false
6177
-
6178
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6179
- Parent=Chrome 13.0
6180
- Platform="Linux"
6181
- Win32=false
6182
-
6183
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6184
- Parent=Chrome 13.0
6185
- Platform="Linux"
6186
- Win32=false
6187
-
6188
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6189
- Parent=Chrome 13.0
6190
- Platform="WinNT"
6191
- Platform_Version=4.0
6192
-
6193
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6194
- Parent=Chrome 13.0
6195
- Platform="Win2000"
6196
- Platform_Version=5.0
6197
-
6198
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6199
- Parent=Chrome 13.0
6200
- Platform="WinXP"
6201
- Platform_Version=5.1
6202
-
6203
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6204
- Parent=Chrome 13.0
6205
- Platform="WinXP"
6206
- Platform_Version=5.1
6207
- Win32=false
6208
- Win64=true
6209
-
6210
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6211
- Parent=Chrome 13.0
6212
- Platform="WinXP"
6213
- Platform_Version=5.2
6214
-
6215
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6216
- Parent=Chrome 13.0
6217
- Platform="WinXP"
6218
- Platform_Version=5.2
6219
- Win32=false
6220
- Win64=true
6221
-
6222
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6223
- Parent=Chrome 13.0
6224
- Platform="WinVista"
6225
- Platform_Version=6.0
6226
-
6227
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6228
- Parent=Chrome 13.0
6229
- Platform="WinVista"
6230
- Platform_Version=6.0
6231
- Win32=false
6232
- Win64=true
6233
-
6234
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6235
- Parent=Chrome 13.0
6236
- Platform="Win7"
6237
- Platform_Version=6.1
6238
-
6239
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/13.*Safari/*]
6240
- Parent=Chrome 13.0
6241
- Platform="Win7"
6242
- Platform_Version=6.1
6243
- Win32=false
6244
- Win64=true
6245
-
6246
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 14.0
6247
-
6248
- [Chrome 14.0]
6249
- Parent=DefaultProperties
6250
- Comment="Chrome 14.0"
6251
- Browser="Chrome"
6252
- Version=14.0
6253
- MajorVer=14
6254
- MinorVer=0
6255
- Win32=true
6256
- Frames=true
6257
- IFrames=true
6258
- Tables=true
6259
- Cookies=true
6260
- JavaScript=true
6261
- JavaApplets=true
6262
- CssVersion=3
6263
-
6264
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6265
- Parent=Chrome 14.0
6266
- Platform="MacOSX"
6267
- Win32=false
6268
-
6269
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6270
- Parent=Chrome 14.0
6271
- Platform="Linux"
6272
- Win32=false
6273
-
6274
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6275
- Parent=Chrome 14.0
6276
- Platform="Linux"
6277
- Win32=false
6278
-
6279
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6280
- Parent=Chrome 14.0
6281
- Platform="WinNT"
6282
- Platform_Version=4.0
6283
-
6284
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6285
- Parent=Chrome 14.0
6286
- Platform="Win2000"
6287
- Platform_Version=5.0
6288
-
6289
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6290
- Parent=Chrome 14.0
6291
- Platform="WinXP"
6292
- Platform_Version=5.1
6293
-
6294
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6295
- Parent=Chrome 14.0
6296
- Platform="WinXP"
6297
- Platform_Version=5.1
6298
- Win32=false
6299
- Win64=true
6300
-
6301
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6302
- Parent=Chrome 14.0
6303
- Platform="WinXP"
6304
- Platform_Version=5.2
6305
-
6306
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6307
- Parent=Chrome 14.0
6308
- Platform="WinXP"
6309
- Platform_Version=5.2
6310
- Win32=false
6311
- Win64=true
6312
-
6313
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6314
- Parent=Chrome 14.0
6315
- Platform="WinVista"
6316
- Platform_Version=6.0
6317
-
6318
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6319
- Parent=Chrome 14.0
6320
- Platform="WinVista"
6321
- Platform_Version=6.0
6322
- Win32=false
6323
- Win64=true
6324
-
6325
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6326
- Parent=Chrome 14.0
6327
- Platform="Win7"
6328
- Platform_Version=6.1
6329
-
6330
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6331
- Parent=Chrome 14.0
6332
- Platform="Win7"
6333
- Platform_Version=6.1
6334
- Win32=false
6335
- Win64=true
6336
-
6337
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6338
- Parent=Chrome 14.0
6339
- Platform="Win8"
6340
- Platform_Version=6.2
6341
-
6342
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/14.*Safari/*]
6343
- Parent=Chrome 14.0
6344
- Platform="Win8"
6345
- Platform_Version=6.2
6346
- Win32=false
6347
- Win64=true
6348
-
6349
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 15.0
6350
-
6351
- [Chrome 15.0]
6352
- Parent=DefaultProperties
6353
- Comment="Chrome 15.0"
6354
- Browser="Chrome"
6355
- Version=15.0
6356
- MajorVer=15
6357
- MinorVer=0
6358
- Win32=true
6359
- Frames=true
6360
- IFrames=true
6361
- Tables=true
6362
- Cookies=true
6363
- JavaScript=true
6364
- JavaApplets=true
6365
- CssVersion=3
6366
-
6367
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6368
- Parent=Chrome 15.0
6369
- Platform="MacOSX"
6370
- Win32=false
6371
-
6372
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6373
- Parent=Chrome 15.0
6374
- Platform="Linux"
6375
- Win32=false
6376
-
6377
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6378
- Parent=Chrome 15.0
6379
- Platform="Linux"
6380
- Win32=false
6381
-
6382
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6383
- Parent=Chrome 15.0
6384
- Platform="WinNT"
6385
- Platform_Version=4.0
6386
-
6387
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6388
- Parent=Chrome 15.0
6389
- Platform="Win2000"
6390
- Platform_Version=5.0
6391
-
6392
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6393
- Parent=Chrome 15.0
6394
- Platform="WinXP"
6395
- Platform_Version=5.1
6396
-
6397
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6398
- Parent=Chrome 15.0
6399
- Platform="WinXP"
6400
- Platform_Version=5.1
6401
- Win32=false
6402
- Win64=true
6403
-
6404
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6405
- Parent=Chrome 15.0
6406
- Platform="WinXP"
6407
- Platform_Version=5.2
6408
-
6409
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6410
- Parent=Chrome 15.0
6411
- Platform="WinXP"
6412
- Platform_Version=5.2
6413
- Win32=false
6414
- Win64=true
6415
-
6416
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6417
- Parent=Chrome 15.0
6418
- Platform="WinVista"
6419
- Platform_Version=6.0
6420
-
6421
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6422
- Parent=Chrome 15.0
6423
- Platform="WinVista"
6424
- Platform_Version=6.0
6425
- Win32=false
6426
- Win64=true
6427
-
6428
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6429
- Parent=Chrome 15.0
6430
- Platform="Win7"
6431
- Platform_Version=6.1
6432
-
6433
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6434
- Parent=Chrome 15.0
6435
- Platform="Win7"
6436
- Platform_Version=6.1
6437
- Win32=false
6438
- Win64=true
6439
-
6440
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6441
- Parent=Chrome 15.0
6442
- Platform="Win8"
6443
- Platform_Version=6.2
6444
-
6445
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/15.*Safari/*]
6446
- Parent=Chrome 15.0
6447
- Platform="Win8"
6448
- Platform_Version=6.2
6449
- Win32=false
6450
- Win64=true
6451
-
6452
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 16.0
6453
-
6454
- [Chrome 16.0]
6455
- Parent=DefaultProperties
6456
- Comment="Chrome 16.0"
6457
- Browser="Chrome"
6458
- Version=16.0
6459
- MajorVer=16
6460
- MinorVer=0
6461
- Win32=true
6462
- Frames=true
6463
- IFrames=true
6464
- Tables=true
6465
- Cookies=true
6466
- JavaScript=true
6467
- JavaApplets=true
6468
- CssVersion=3
6469
-
6470
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6471
- Parent=Chrome 16.0
6472
- Platform="MacOSX"
6473
- Win32=false
6474
-
6475
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6476
- Parent=Chrome 16.0
6477
- Platform="Linux"
6478
- Win32=false
6479
-
6480
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6481
- Parent=Chrome 16.0
6482
- Platform="Linux"
6483
- Win32=false
6484
-
6485
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6486
- Parent=Chrome 16.0
6487
- Platform="WinNT"
6488
- Platform_Version=4.0
6489
-
6490
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6491
- Parent=Chrome 16.0
6492
- Platform="Win2000"
6493
- Platform_Version=5.0
6494
-
6495
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6496
- Parent=Chrome 16.0
6497
- Platform="WinXP"
6498
- Platform_Version=5.1
6499
-
6500
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6501
- Parent=Chrome 16.0
6502
- Platform="WinXP"
6503
- Platform_Version=5.1
6504
- Win32=false
6505
- Win64=true
6506
-
6507
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6508
- Parent=Chrome 16.0
6509
- Platform="WinXP"
6510
- Platform_Version=5.2
6511
-
6512
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6513
- Parent=Chrome 16.0
6514
- Platform="WinXP"
6515
- Platform_Version=5.2
6516
- Win32=false
6517
- Win64=true
6518
-
6519
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6520
- Parent=Chrome 16.0
6521
- Platform="WinVista"
6522
- Platform_Version=6.0
6523
-
6524
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6525
- Parent=Chrome 16.0
6526
- Platform="WinVista"
6527
- Platform_Version=6.0
6528
- Win32=false
6529
- Win64=true
6530
-
6531
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6532
- Parent=Chrome 16.0
6533
- Platform="Win7"
6534
- Platform_Version=6.1
6535
-
6536
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6537
- Parent=Chrome 16.0
6538
- Platform="Win7"
6539
- Platform_Version=6.1
6540
- Win32=false
6541
- Win64=true
6542
-
6543
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6544
- Parent=Chrome 16.0
6545
- Platform="Win8"
6546
- Platform_Version=6.2
6547
-
6548
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/16.*Safari/*]
6549
- Parent=Chrome 16.0
6550
- Platform="Win8"
6551
- Platform_Version=6.2
6552
- Win32=false
6553
- Win64=true
6554
-
6555
- [Mozilla/5.0 (Linux*Android 4.0*)*AppleWebKit/*(*KHTML, like Gecko*)*CrMo/16.0*Safari/*]
6556
- Parent=Chrome 16.0
6557
- Platform="Android"
6558
- Platform_Version=4.0
6559
- isMobileDevice=true
6560
-
6561
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 17.0
6562
-
6563
- [Chrome 17.0]
6564
- Parent=DefaultProperties
6565
- Comment="Chrome 17.0"
6566
- Browser="Chrome"
6567
- Version=17.0
6568
- MajorVer=17
6569
- MinorVer=0
6570
- Win32=true
6571
- Frames=true
6572
- IFrames=true
6573
- Tables=true
6574
- Cookies=true
6575
- JavaScript=true
6576
- JavaApplets=true
6577
- CssVersion=3
6578
-
6579
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6580
- Parent=Chrome 17.0
6581
- Platform="MacOSX"
6582
- Win32=false
6583
-
6584
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6585
- Parent=Chrome 17.0
6586
- Platform="Linux"
6587
- Win32=false
6588
-
6589
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6590
- Parent=Chrome 17.0
6591
- Platform="Linux"
6592
- Win32=false
6593
-
6594
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6595
- Parent=Chrome 17.0
6596
- Platform="WinNT"
6597
- Platform_Version=4.0
6598
-
6599
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6600
- Parent=Chrome 17.0
6601
- Platform="Win2000"
6602
- Platform_Version=5.0
6603
-
6604
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6605
- Parent=Chrome 17.0
6606
- Platform="WinXP"
6607
- Platform_Version=5.1
6608
-
6609
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6610
- Parent=Chrome 17.0
6611
- Platform="WinXP"
6612
- Platform_Version=5.1
6613
- Win32=false
6614
- Win64=true
6615
-
6616
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6617
- Parent=Chrome 17.0
6618
- Platform="WinXP"
6619
- Platform_Version=5.2
6620
-
6621
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6622
- Parent=Chrome 17.0
6623
- Platform="WinXP"
6624
- Platform_Version=5.2
6625
- Win32=false
6626
- Win64=true
6627
-
6628
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6629
- Parent=Chrome 17.0
6630
- Platform="WinVista"
6631
- Platform_Version=6.0
6632
-
6633
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6634
- Parent=Chrome 17.0
6635
- Platform="WinVista"
6636
- Platform_Version=6.0
6637
- Win32=false
6638
- Win64=true
6639
-
6640
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6641
- Parent=Chrome 17.0
6642
- Platform="Win7"
6643
- Platform_Version=6.1
6644
-
6645
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6646
- Parent=Chrome 17.0
6647
- Platform="Win7"
6648
- Platform_Version=6.1
6649
- Win32=false
6650
- Win64=true
6651
-
6652
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6653
- Parent=Chrome 17.0
6654
- Platform="Win8"
6655
- Platform_Version=6.2
6656
-
6657
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/17.*Safari/*]
6658
- Parent=Chrome 17.0
6659
- Platform="Win8"
6660
- Platform_Version=6.2
6661
- Win32=false
6662
- Win64=true
6663
-
6664
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 18.0
6665
-
6666
- [Chrome 18.0]
6667
- Parent=DefaultProperties
6668
- Comment="Chrome 18.0"
6669
- Browser="Chrome"
6670
- Version=18.0
6671
- MajorVer=18
6672
- MinorVer=0
6673
- Win32=true
6674
- Frames=true
6675
- IFrames=true
6676
- Tables=true
6677
- Cookies=true
6678
- JavaScript=true
6679
- JavaApplets=true
6680
- CssVersion=3
6681
-
6682
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6683
- Parent=Chrome 18.0
6684
- Platform="MacOSX"
6685
- Win32=false
6686
-
6687
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6688
- Parent=Chrome 18.0
6689
- Platform="Linux"
6690
- Win32=false
6691
-
6692
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6693
- Parent=Chrome 18.0
6694
- Platform="Linux"
6695
- Win32=false
6696
-
6697
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6698
- Parent=Chrome 18.0
6699
- Platform="WinNT"
6700
- Platform_Version=4.0
6701
-
6702
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6703
- Parent=Chrome 18.0
6704
- Platform="Win2000"
6705
- Platform_Version=5.0
6706
-
6707
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6708
- Parent=Chrome 18.0
6709
- Platform="WinXP"
6710
- Platform_Version=5.1
6711
-
6712
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6713
- Parent=Chrome 18.0
6714
- Platform="WinXP"
6715
- Platform_Version=5.1
6716
- Win32=false
6717
- Win64=true
6718
-
6719
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6720
- Parent=Chrome 18.0
6721
- Platform="WinXP"
6722
- Platform_Version=5.2
6723
-
6724
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6725
- Parent=Chrome 18.0
6726
- Platform="WinXP"
6727
- Platform_Version=5.2
6728
- Win32=false
6729
- Win64=true
6730
-
6731
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6732
- Parent=Chrome 18.0
6733
- Platform="WinVista"
6734
- Platform_Version=6.0
6735
-
6736
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6737
- Parent=Chrome 18.0
6738
- Platform="WinVista"
6739
- Platform_Version=6.0
6740
- Win32=false
6741
- Win64=true
6742
-
6743
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6744
- Parent=Chrome 18.0
6745
- Platform="Win7"
6746
- Platform_Version=6.1
6747
-
6748
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6749
- Parent=Chrome 18.0
6750
- Platform="Win7"
6751
- Platform_Version=6.1
6752
- Win32=false
6753
- Win64=true
6754
-
6755
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6756
- Parent=Chrome 18.0
6757
- Platform="Win8"
6758
- Platform_Version=6.2
6759
-
6760
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/18.*Safari/*]
6761
- Parent=Chrome 18.0
6762
- Platform="Win8"
6763
- Platform_Version=6.2
6764
- Win32=false
6765
- Win64=true
6766
-
6767
- [Mozilla/5.0 (Linux*Android 1.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6768
- Parent=Chrome 18.0
6769
- Platform="Android"
6770
- Platform_Version=1.0
6771
- Win32=false
6772
- isMobileDevice=true
6773
-
6774
- [Mozilla/5.0 (Linux*Android 1.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6775
- Parent=Chrome 18.0
6776
- Platform="Android"
6777
- Platform_Version=1.1
6778
- Win32=false
6779
- isMobileDevice=true
6780
-
6781
- [Mozilla/5.0 (Linux*Android 1.5*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6782
- Parent=Chrome 18.0
6783
- Platform="Android"
6784
- Platform_Version=1.5
6785
- Win32=false
6786
- isMobileDevice=true
6787
-
6788
- [Mozilla/5.0 (Linux*Android 1.6*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6789
- Parent=Chrome 18.0
6790
- Platform="Android"
6791
- Platform_Version=1.6
6792
- Win32=false
6793
- isMobileDevice=true
6794
-
6795
- [Mozilla/5.0 (Linux*Android 2.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6796
- Parent=Chrome 18.0
6797
- Platform="Android"
6798
- Platform_Version=2.0
6799
- Win32=false
6800
- isMobileDevice=true
6801
-
6802
- [Mozilla/5.0 (Linux*Android 2.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6803
- Parent=Chrome 18.0
6804
- Platform="Android"
6805
- Platform_Version=2.1
6806
- Win32=false
6807
- isMobileDevice=true
6808
-
6809
- [Mozilla/5.0 (Linux*Android 2.2*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6810
- Parent=Chrome 18.0
6811
- Platform="Android"
6812
- Platform_Version=2.2
6813
- Win32=false
6814
- isMobileDevice=true
6815
-
6816
- [Mozilla/5.0 (Linux*Android 2.3*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6817
- Parent=Chrome 18.0
6818
- Platform="Android"
6819
- Platform_Version=2.3
6820
- Win32=false
6821
- isMobileDevice=true
6822
-
6823
- [Mozilla/5.0 (Linux*Android 4.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6824
- Parent=Chrome 18.0
6825
- Platform="Android"
6826
- Platform_Version=4.0
6827
- Win32=false
6828
- isMobileDevice=true
6829
-
6830
- [Mozilla/5.0 (Linux*Android 4.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/18.*Safari/*]
6831
- Parent=Chrome 18.0
6832
- Platform="Android"
6833
- Platform_Version=4.1
6834
- Win32=false
6835
-
6836
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 19.0
6837
-
6838
- [Chrome 19.0]
6839
- Parent=DefaultProperties
6840
- Comment="Chrome 19.0"
6841
- Browser="Chrome"
6842
- Version=19.0
6843
- MajorVer=19
6844
- MinorVer=0
6845
- Win32=true
6846
- Frames=true
6847
- IFrames=true
6848
- Tables=true
6849
- Cookies=true
6850
- JavaScript=true
6851
- JavaApplets=true
6852
- CssVersion=3
6853
-
6854
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6855
- Parent=Chrome 19.0
6856
- Platform="MacOSX"
6857
- Win32=false
6858
-
6859
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6860
- Parent=Chrome 19.0
6861
- Platform="Linux"
6862
- Win32=false
6863
-
6864
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6865
- Parent=Chrome 19.0
6866
- Platform="Linux"
6867
- Win32=false
6868
-
6869
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6870
- Parent=Chrome 19.0
6871
- Platform="WinNT"
6872
- Platform_Version=4.0
6873
-
6874
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6875
- Parent=Chrome 19.0
6876
- Platform="Win2000"
6877
- Platform_Version=5.0
6878
-
6879
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6880
- Parent=Chrome 19.0
6881
- Platform="WinXP"
6882
- Platform_Version=5.1
6883
-
6884
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6885
- Parent=Chrome 19.0
6886
- Platform="WinXP"
6887
- Platform_Version=5.1
6888
- Win32=false
6889
- Win64=true
6890
-
6891
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6892
- Parent=Chrome 19.0
6893
- Platform="WinXP"
6894
- Platform_Version=5.2
6895
-
6896
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6897
- Parent=Chrome 19.0
6898
- Platform="WinXP"
6899
- Platform_Version=5.2
6900
- Win32=false
6901
- Win64=true
6902
-
6903
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6904
- Parent=Chrome 19.0
6905
- Platform="WinVista"
6906
- Platform_Version=6.0
6907
-
6908
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6909
- Parent=Chrome 19.0
6910
- Platform="WinVista"
6911
- Platform_Version=6.0
6912
- Win32=false
6913
- Win64=true
6914
-
6915
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6916
- Parent=Chrome 19.0
6917
- Platform="Win7"
6918
- Platform_Version=6.1
6919
-
6920
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6921
- Parent=Chrome 19.0
6922
- Platform="Win7"
6923
- Platform_Version=6.1
6924
- Win32=false
6925
- Win64=true
6926
-
6927
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6928
- Parent=Chrome 19.0
6929
- Platform="Win8"
6930
- Platform_Version=6.2
6931
-
6932
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/19.*Safari/*]
6933
- Parent=Chrome 19.0
6934
- Platform="Win8"
6935
- Platform_Version=6.2
6936
- Win32=false
6937
- Win64=true
6938
-
6939
- [Mozilla/5.0 (iPad*CPU*OS 5_1*like Mac OS X*)*AppleWebKit/534.46.*(*KHTML, like Gecko*)*CriOS/19.0.*Mobile/9B206*Safari/7534.48.3]
6940
- Parent=Chrome 19.0
6941
- Platform="iOS"
6942
- Platform_Version=5.1
6943
- Win32=false
6944
- isMobileDevice=true
6945
-
6946
- [Mozilla/5.0 (iPhone*CPU*OS 5_1*like Mac OS X*)*AppleWebKit/534.46.*(*KHTML, like Gecko*)*CriOS/19.0.*Mobile/9B206*Safari/7534.48.3]
6947
- Parent=Chrome 19.0
6948
- Platform="iOS"
6949
- Platform_Version=5.1
6950
- Win32=false
6951
- isMobileDevice=true
6952
-
6953
- [Mozilla/5.0 (Linux*Android 1.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
6954
- Parent=Chrome 19.0
6955
- Platform="Android"
6956
- Platform_Version=1.0
6957
- Win32=false
6958
- isMobileDevice=true
6959
-
6960
- [Mozilla/5.0 (Linux*Android 1.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
6961
- Parent=Chrome 19.0
6962
- Platform="Android"
6963
- Platform_Version=1.1
6964
- Win32=false
6965
- isMobileDevice=true
6966
-
6967
- [Mozilla/5.0 (Linux*Android 1.5*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
6968
- Parent=Chrome 19.0
6969
- Platform="Android"
6970
- Platform_Version=1.5
6971
- Win32=false
6972
- isMobileDevice=true
6973
-
6974
- [Mozilla/5.0 (Linux*Android 1.6*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
6975
- Parent=Chrome 19.0
6976
- Platform="Android"
6977
- Platform_Version=1.6
6978
- Win32=false
6979
- isMobileDevice=true
6980
-
6981
- [Mozilla/5.0 (Linux*Android 2.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
6982
- Parent=Chrome 19.0
6983
- Platform="Android"
6984
- Platform_Version=2.0
6985
- Win32=false
6986
- isMobileDevice=true
6987
-
6988
- [Mozilla/5.0 (Linux*Android 2.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
6989
- Parent=Chrome 19.0
6990
- Platform="Android"
6991
- Platform_Version=2.1
6992
- Win32=false
6993
- isMobileDevice=true
6994
-
6995
- [Mozilla/5.0 (Linux*Android 2.2*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
6996
- Parent=Chrome 19.0
6997
- Platform="Android"
6998
- Platform_Version=2.2
6999
- Win32=false
7000
- isMobileDevice=true
7001
-
7002
- [Mozilla/5.0 (Linux*Android 2.3*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
7003
- Parent=Chrome 19.0
7004
- Platform="Android"
7005
- Platform_Version=2.3
7006
- Win32=false
7007
- isMobileDevice=true
7008
-
7009
- [Mozilla/5.0 (Linux*Android 4.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
7010
- Parent=Chrome 19.0
7011
- Platform="Android"
7012
- Platform_Version=4.0
7013
- Win32=false
7014
- isMobileDevice=true
7015
-
7016
- [Mozilla/5.0 (Linux*Android 4.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/19.*Safari/*]
7017
- Parent=Chrome 19.0
7018
- Platform="Android"
7019
- Platform_Version=4.1
7020
- Win32=false
7021
-
7022
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 20.0
7023
-
7024
- [Chrome 20.0]
7025
- Parent=DefaultProperties
7026
- Comment="Chrome 20.0"
7027
- Browser="Chrome"
7028
- Version=20.0
7029
- MajorVer=20
7030
- MinorVer=0
7031
- Beta=true
7032
- Win32=true
7033
- Frames=true
7034
- IFrames=true
7035
- Tables=true
7036
- Cookies=true
7037
- JavaScript=true
7038
- JavaApplets=true
7039
- CssVersion=3
7040
-
7041
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7042
- Parent=Chrome 20.0
7043
- Platform="MacOSX"
7044
- Win32=false
7045
-
7046
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7047
- Parent=Chrome 20.0
7048
- Platform="Linux"
7049
- Win32=false
7050
-
7051
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7052
- Parent=Chrome 20.0
7053
- Platform="Linux"
7054
- Win32=false
7055
-
7056
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7057
- Parent=Chrome 20.0
7058
- Platform="WinNT"
7059
- Platform_Version=4.0
7060
-
7061
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7062
- Parent=Chrome 20.0
7063
- Platform="Win2000"
7064
- Platform_Version=5.0
7065
-
7066
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7067
- Parent=Chrome 20.0
7068
- Platform="WinXP"
7069
- Platform_Version=5.1
7070
-
7071
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7072
- Parent=Chrome 20.0
7073
- Platform="WinXP"
7074
- Platform_Version=5.1
7075
- Win32=false
7076
- Win64=true
7077
-
7078
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7079
- Parent=Chrome 20.0
7080
- Platform="WinXP"
7081
- Platform_Version=5.2
7082
-
7083
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7084
- Parent=Chrome 20.0
7085
- Platform="WinXP"
7086
- Platform_Version=5.2
7087
- Win32=false
7088
- Win64=true
7089
-
7090
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7091
- Parent=Chrome 20.0
7092
- Platform="WinVista"
7093
- Platform_Version=6.0
7094
-
7095
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7096
- Parent=Chrome 20.0
7097
- Platform="WinVista"
7098
- Platform_Version=6.0
7099
- Win32=false
7100
- Win64=true
7101
-
7102
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7103
- Parent=Chrome 20.0
7104
- Platform="Win7"
7105
- Platform_Version=6.1
7106
-
7107
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7108
- Parent=Chrome 20.0
7109
- Platform="Win7"
7110
- Platform_Version=6.1
7111
- Win32=false
7112
- Win64=true
7113
-
7114
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7115
- Parent=Chrome 20.0
7116
- Platform="Win8"
7117
- Platform_Version=6.2
7118
-
7119
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/20.*Safari/*]
7120
- Parent=Chrome 20.0
7121
- Platform="Win8"
7122
- Platform_Version=6.2
7123
- Win32=false
7124
- Win64=true
7125
-
7126
- [Mozilla/5.0 (Linux*Android 1.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7127
- Parent=Chrome 20.0
7128
- Platform="Android"
7129
- Platform_Version=1.0
7130
- Win32=false
7131
- isMobileDevice=true
7132
-
7133
- [Mozilla/5.0 (Linux*Android 1.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7134
- Parent=Chrome 20.0
7135
- Platform="Android"
7136
- Platform_Version=1.1
7137
- Win32=false
7138
- isMobileDevice=true
7139
-
7140
- [Mozilla/5.0 (Linux*Android 1.5*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7141
- Parent=Chrome 20.0
7142
- Platform="Android"
7143
- Platform_Version=1.5
7144
- Win32=false
7145
- isMobileDevice=true
7146
-
7147
- [Mozilla/5.0 (Linux*Android 1.6*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7148
- Parent=Chrome 20.0
7149
- Platform="Android"
7150
- Platform_Version=1.6
7151
- Win32=false
7152
- isMobileDevice=true
7153
-
7154
- [Mozilla/5.0 (Linux*Android 2.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7155
- Parent=Chrome 20.0
7156
- Platform="Android"
7157
- Platform_Version=2.0
7158
- Win32=false
7159
- isMobileDevice=true
7160
-
7161
- [Mozilla/5.0 (Linux*Android 2.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7162
- Parent=Chrome 20.0
7163
- Platform="Android"
7164
- Platform_Version=2.1
7165
- Win32=false
7166
- isMobileDevice=true
7167
-
7168
- [Mozilla/5.0 (Linux*Android 2.2*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7169
- Parent=Chrome 20.0
7170
- Platform="Android"
7171
- Platform_Version=2.2
7172
- Win32=false
7173
- isMobileDevice=true
7174
-
7175
- [Mozilla/5.0 (Linux*Android 2.3*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7176
- Parent=Chrome 20.0
7177
- Platform="Android"
7178
- Platform_Version=2.3
7179
- Win32=false
7180
- isMobileDevice=true
7181
-
7182
- [Mozilla/5.0 (Linux*Android 4.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7183
- Parent=Chrome 20.0
7184
- Platform="Android"
7185
- Platform_Version=4.0
7186
- Win32=false
7187
- isMobileDevice=true
7188
-
7189
- [Mozilla/5.0 (Linux*Android 4.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/20.*Safari/*]
7190
- Parent=Chrome 20.0
7191
- Platform="Android"
7192
- Platform_Version=4.1
7193
- Win32=false
7194
-
7195
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 21.0
7196
-
7197
- [Chrome 21.0]
7198
- Parent=DefaultProperties
7199
- Comment="Chrome 21.0"
7200
- Browser="Chrome"
7201
- Version=21.0
7202
- MajorVer=21
7203
- MinorVer=0
7204
- Alpha=true
7205
- Win32=true
7206
- Frames=true
7207
- IFrames=true
7208
- Tables=true
7209
- Cookies=true
7210
- JavaScript=true
7211
- JavaApplets=true
7212
- CssVersion=3
7213
-
7214
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7215
- Parent=Chrome 21.0
7216
- Platform="MacOSX"
7217
- Win32=false
7218
-
7219
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7220
- Parent=Chrome 21.0
7221
- Platform="Linux"
7222
- Win32=false
7223
-
7224
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7225
- Parent=Chrome 21.0
7226
- Platform="Linux"
7227
- Win32=false
7228
-
7229
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7230
- Parent=Chrome 21.0
7231
- Platform="WinNT"
7232
- Platform_Version=4.0
7233
-
7234
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7235
- Parent=Chrome 21.0
7236
- Platform="Win2000"
7237
- Platform_Version=5.0
7238
-
7239
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7240
- Parent=Chrome 21.0
7241
- Platform="WinXP"
7242
- Platform_Version=5.1
7243
-
7244
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7245
- Parent=Chrome 21.0
7246
- Platform="WinXP"
7247
- Platform_Version=5.1
7248
- Win32=false
7249
- Win64=true
7250
-
7251
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7252
- Parent=Chrome 21.0
7253
- Platform="WinXP"
7254
- Platform_Version=5.2
7255
-
7256
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7257
- Parent=Chrome 21.0
7258
- Platform="WinXP"
7259
- Platform_Version=5.2
7260
- Win32=false
7261
- Win64=true
7262
-
7263
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7264
- Parent=Chrome 21.0
7265
- Platform="WinVista"
7266
- Platform_Version=6.0
7267
-
7268
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7269
- Parent=Chrome 21.0
7270
- Platform="WinVista"
7271
- Platform_Version=6.0
7272
- Win32=false
7273
- Win64=true
7274
-
7275
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7276
- Parent=Chrome 21.0
7277
- Platform="Win7"
7278
- Platform_Version=6.1
7279
-
7280
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7281
- Parent=Chrome 21.0
7282
- Platform="Win7"
7283
- Platform_Version=6.1
7284
- Win32=false
7285
- Win64=true
7286
-
7287
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7288
- Parent=Chrome 21.0
7289
- Platform="Win8"
7290
- Platform_Version=6.2
7291
-
7292
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/21.*Safari/*]
7293
- Parent=Chrome 21.0
7294
- Platform="Win8"
7295
- Platform_Version=6.2
7296
- Win32=false
7297
- Win64=true
7298
-
7299
- [Mozilla/5.0 (Linux*Android 1.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7300
- Parent=Chrome 21.0
7301
- Platform="Android"
7302
- Platform_Version=1.0
7303
- Win32=false
7304
- isMobileDevice=true
7305
-
7306
- [Mozilla/5.0 (Linux*Android 1.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7307
- Parent=Chrome 21.0
7308
- Platform="Android"
7309
- Platform_Version=1.1
7310
- Win32=false
7311
- isMobileDevice=true
7312
-
7313
- [Mozilla/5.0 (Linux*Android 1.5*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7314
- Parent=Chrome 21.0
7315
- Platform="Android"
7316
- Platform_Version=1.5
7317
- Win32=false
7318
- isMobileDevice=true
7319
-
7320
- [Mozilla/5.0 (Linux*Android 1.6*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7321
- Parent=Chrome 21.0
7322
- Platform="Android"
7323
- Platform_Version=1.6
7324
- Win32=false
7325
- isMobileDevice=true
7326
-
7327
- [Mozilla/5.0 (Linux*Android 2.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7328
- Parent=Chrome 21.0
7329
- Platform="Android"
7330
- Platform_Version=2.0
7331
- Win32=false
7332
- isMobileDevice=true
7333
-
7334
- [Mozilla/5.0 (Linux*Android 2.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7335
- Parent=Chrome 21.0
7336
- Platform="Android"
7337
- Platform_Version=2.1
7338
- Win32=false
7339
- isMobileDevice=true
7340
-
7341
- [Mozilla/5.0 (Linux*Android 2.2*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7342
- Parent=Chrome 21.0
7343
- Platform="Android"
7344
- Platform_Version=2.2
7345
- Win32=false
7346
- isMobileDevice=true
7347
-
7348
- [Mozilla/5.0 (Linux*Android 2.3*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7349
- Parent=Chrome 21.0
7350
- Platform="Android"
7351
- Platform_Version=2.3
7352
- Win32=false
7353
- isMobileDevice=true
7354
-
7355
- [Mozilla/5.0 (Linux*Android 4.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7356
- Parent=Chrome 21.0
7357
- Platform="Android"
7358
- Platform_Version=4.0
7359
- Win32=false
7360
- isMobileDevice=true
7361
-
7362
- [Mozilla/5.0 (Linux*Android 4.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/21.*Safari/*]
7363
- Parent=Chrome 21.0
7364
- Platform="Android"
7365
- Platform_Version=4.1
7366
- Win32=false
7367
-
7368
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 22.0
7369
-
7370
- [Chrome 22.0]
7371
- Parent=DefaultProperties
7372
- Comment="Chrome 22.0"
7373
- Browser="Chrome"
7374
- Version=22.0
7375
- MajorVer=22
7376
- MinorVer=0
7377
- Alpha=true
7378
- Win32=true
7379
- Frames=true
7380
- IFrames=true
7381
- Tables=true
7382
- Cookies=true
7383
- JavaScript=true
7384
- JavaApplets=true
7385
- CssVersion=3
7386
-
7387
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7388
- Parent=Chrome 22.0
7389
- Platform="MacOSX"
7390
- Win32=false
7391
-
7392
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7393
- Parent=Chrome 22.0
7394
- Platform="Linux"
7395
- Win32=false
7396
-
7397
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7398
- Parent=Chrome 22.0
7399
- Platform="Linux"
7400
- Win32=false
7401
-
7402
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7403
- Parent=Chrome 22.0
7404
- Platform="WinNT"
7405
- Platform_Version=4.0
7406
-
7407
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7408
- Parent=Chrome 22.0
7409
- Platform="Win2000"
7410
- Platform_Version=5.0
7411
-
7412
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7413
- Parent=Chrome 22.0
7414
- Platform="WinXP"
7415
- Platform_Version=5.1
7416
-
7417
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7418
- Parent=Chrome 22.0
7419
- Platform="WinXP"
7420
- Platform_Version=5.1
7421
- Win32=false
7422
- Win64=true
7423
-
7424
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7425
- Parent=Chrome 22.0
7426
- Platform="WinXP"
7427
- Platform_Version=5.2
7428
-
7429
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7430
- Parent=Chrome 22.0
7431
- Platform="WinXP"
7432
- Platform_Version=5.2
7433
- Win32=false
7434
- Win64=true
7435
-
7436
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7437
- Parent=Chrome 22.0
7438
- Platform="WinVista"
7439
- Platform_Version=6.0
7440
-
7441
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7442
- Parent=Chrome 22.0
7443
- Platform="WinVista"
7444
- Platform_Version=6.0
7445
- Win32=false
7446
- Win64=true
7447
-
7448
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7449
- Parent=Chrome 22.0
7450
- Platform="Win7"
7451
- Platform_Version=6.1
7452
-
7453
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7454
- Parent=Chrome 22.0
7455
- Platform="Win7"
7456
- Platform_Version=6.1
7457
- Win32=false
7458
- Win64=true
7459
-
7460
- [Mozilla/5.0 (*Windows NT 6.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7461
- Parent=Chrome 22.0
7462
- Platform="Win8"
7463
- Platform_Version=6.2
7464
-
7465
- [Mozilla/5.0 (*Windows NT 6.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/22.*Safari/*]
7466
- Parent=Chrome 22.0
7467
- Platform="Win8"
7468
- Platform_Version=6.2
7469
- Win32=false
7470
- Win64=true
7471
-
7472
- [Mozilla/5.0 (Linux*Android 1.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7473
- Parent=Chrome 22.0
7474
- Platform="Android"
7475
- Platform_Version=1.0
7476
- Win32=false
7477
- isMobileDevice=true
7478
-
7479
- [Mozilla/5.0 (Linux*Android 1.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7480
- Parent=Chrome 22.0
7481
- Platform="Android"
7482
- Platform_Version=1.1
7483
- Win32=false
7484
- isMobileDevice=true
7485
-
7486
- [Mozilla/5.0 (Linux*Android 1.5*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7487
- Parent=Chrome 22.0
7488
- Platform="Android"
7489
- Platform_Version=1.5
7490
- Win32=false
7491
- isMobileDevice=true
7492
-
7493
- [Mozilla/5.0 (Linux*Android 1.6*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7494
- Parent=Chrome 22.0
7495
- Platform="Android"
7496
- Platform_Version=1.6
7497
- Win32=false
7498
- isMobileDevice=true
7499
-
7500
- [Mozilla/5.0 (Linux*Android 2.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7501
- Parent=Chrome 22.0
7502
- Platform="Android"
7503
- Platform_Version=2.0
7504
- Win32=false
7505
- isMobileDevice=true
7506
-
7507
- [Mozilla/5.0 (Linux*Android 2.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7508
- Parent=Chrome 22.0
7509
- Platform="Android"
7510
- Platform_Version=2.1
7511
- Win32=false
7512
- isMobileDevice=true
7513
-
7514
- [Mozilla/5.0 (Linux*Android 2.2*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7515
- Parent=Chrome 22.0
7516
- Platform="Android"
7517
- Platform_Version=2.2
7518
- Win32=false
7519
- isMobileDevice=true
7520
-
7521
- [Mozilla/5.0 (Linux*Android 2.3*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7522
- Parent=Chrome 22.0
7523
- Platform="Android"
7524
- Platform_Version=2.3
7525
- Win32=false
7526
- isMobileDevice=true
7527
-
7528
- [Mozilla/5.0 (Linux*Android 4.0*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7529
- Parent=Chrome 22.0
7530
- Platform="Android"
7531
- Platform_Version=4.0
7532
- Win32=false
7533
- isMobileDevice=true
7534
-
7535
- [Mozilla/5.0 (Linux*Android 4.1*)*AppleWebKit/*(*KHTML, like Gecko*)*Chrome/22.*Safari/*]
7536
- Parent=Chrome 22.0
7537
- Platform="Android"
7538
- Platform_Version=4.1
7539
- Win32=false
7540
-
7541
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 6.0
7542
-
7543
- [Chrome 6.0]
7544
- Parent=DefaultProperties
7545
- Comment="Chrome 6.0"
7546
- Browser="Chrome"
7547
- Version=6.0
7548
- MajorVer=6
7549
- MinorVer=0
7550
- Win32=true
7551
- Frames=true
7552
- IFrames=true
7553
- Tables=true
7554
- Cookies=true
7555
- JavaScript=true
7556
- JavaApplets=true
7557
- CssVersion=2
7558
-
7559
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7560
- Parent=Chrome 6.0
7561
- Platform="MacOSX"
7562
- Win32=false
7563
-
7564
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7565
- Parent=Chrome 6.0
7566
- Platform="Linux"
7567
- Win32=false
7568
-
7569
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7570
- Parent=Chrome 6.0
7571
- Platform="Linux"
7572
- Win32=false
7573
-
7574
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7575
- Parent=Chrome 6.0
7576
- Platform="WinNT"
7577
- Platform_Version=4.0
7578
-
7579
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7580
- Parent=Chrome 6.0
7581
- Platform="Win2000"
7582
- Platform_Version=5.0
7583
-
7584
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7585
- Parent=Chrome 6.0
7586
- Platform="WinXP"
7587
- Platform_Version=5.1
7588
-
7589
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7590
- Parent=Chrome 6.0
7591
- Platform="WinXP"
7592
- Platform_Version=5.1
7593
- Win32=false
7594
- Win64=true
7595
-
7596
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7597
- Parent=Chrome 6.0
7598
- Platform="WinXP"
7599
- Platform_Version=5.2
7600
-
7601
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7602
- Parent=Chrome 6.0
7603
- Platform="WinXP"
7604
- Platform_Version=5.2
7605
- Win32=false
7606
- Win64=true
7607
-
7608
- [Mozilla/5.0 (*Windows NT 6.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7609
- Parent=Chrome 6.0
7610
- Platform="WinVista"
7611
- Platform_Version=6.0
7612
-
7613
- [Mozilla/5.0 (*Windows NT 6.0*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7614
- Parent=Chrome 6.0
7615
- Platform="WinVista"
7616
- Platform_Version=6.0
7617
- Win32=false
7618
- Win64=true
7619
-
7620
- [Mozilla/5.0 (*Windows NT 6.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7621
- Parent=Chrome 6.0
7622
- Platform="Win7"
7623
- Platform_Version=6.1
7624
-
7625
- [Mozilla/5.0 (*Windows NT 6.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/6.*Safari/*]
7626
- Parent=Chrome 6.0
7627
- Platform="Win7"
7628
- Platform_Version=6.1
7629
- Win32=false
7630
- Win64=true
7631
-
7632
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Chrome 7.0
7633
-
7634
- [Chrome 7.0]
7635
- Parent=DefaultProperties
7636
- Comment="Chrome 7.0"
7637
- Browser="Chrome"
7638
- Version=7.0
7639
- MajorVer=7
7640
- MinorVer=0
7641
- Win32=true
7642
- Frames=true
7643
- IFrames=true
7644
- Tables=true
7645
- Cookies=true
7646
- JavaScript=true
7647
- JavaApplets=true
7648
- CssVersion=2
7649
-
7650
- [Mozilla/5.0 (*Intel Mac OS X*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7651
- Parent=Chrome 7.0
7652
- Platform="MacOSX"
7653
- Win32=false
7654
-
7655
- [Mozilla/5.0 (*Linux i686*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7656
- Parent=Chrome 7.0
7657
- Platform="Linux"
7658
- Win32=false
7659
-
7660
- [Mozilla/5.0 (*Linux x86_64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7661
- Parent=Chrome 7.0
7662
- Platform="Linux"
7663
- Win32=false
7664
-
7665
- [Mozilla/5.0 (*Windows NT 4.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7666
- Parent=Chrome 7.0
7667
- Platform="WinNT"
7668
- Platform_Version=4.0
7669
-
7670
- [Mozilla/5.0 (*Windows NT 5.0*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7671
- Parent=Chrome 7.0
7672
- Platform="Win2000"
7673
- Platform_Version=5.0
7674
-
7675
- [Mozilla/5.0 (*Windows NT 5.1*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7676
- Parent=Chrome 7.0
7677
- Platform="WinXP"
7678
- Platform_Version=5.1
7679
-
7680
- [Mozilla/5.0 (*Windows NT 5.1*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7681
- Parent=Chrome 7.0
7682
- Platform="WinXP"
7683
- Platform_Version=5.1
7684
- Win32=false
7685
- Win64=true
7686
-
7687
- [Mozilla/5.0 (*Windows NT 5.2*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7688
- Parent=Chrome 7.0
7689
- Platform="WinXP"
7690
- Platform_Version=5.2
7691
-
7692
- [Mozilla/5.0 (*Windows NT 5.2*WOW64*) AppleWebKit/* (KHTML, like Gecko)*Chrome/7.*Safari/*]
7693
- Parent=Chrome 7.0
7694
- Platform="WinXP"
7695
- Pla