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

Version Description

  • Feature Re-factored the add/edit link screen to be more intuitive and accurate
  • Feature Added the ability to add a new group from the Add / Edit Link screen
  • Fix Using uniqid() to generate visitor id for normal & extended tracking now in order to increase performance and avoid issues with mt_rand and pow
  • Fix Replaced all code dependent on curl to now use the more versatile WP_Http
  • Fix Altered the hits list for normal & extended tracking to use GMT time
  • Fix Fixed some issues with Parameter Forwarding
  • Fix Fixed the conflict with W3 Total Cache Object Caching that was causing pretty link options to not be saved when it was enabled
  • Pro Feature Added Double Redirection for any pretty link
  • Pro Feature Added Google Analytics support for any pretty link by integrating with the Google Analyticator, Google Analytics for WordPress and Google Analytics Plugin
  • Pro Feature Added Delayed Redirection for any pretty links using Javascript and Meta-Refresh Redirection
  • Pro Feature Added the ability to automatically create and download QR Codes pretty links
  • Pro Feature Added the ability to change the minimum user admin role that can access Pretty Link
  • Pro Fix Made some major performance enhancements to Keyword and URL Replacements
  • Pro Fix Fixed an issue adding Twitter accounts for some users running wordpress within a subdomain
  • Pro Fix Fixed an issue with select all links
Download this release

Release Info

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

Code changes from version 1.5.6 to 1.5.8

classes/controllers/PrliAppController.php CHANGED
@@ -4,7 +4,7 @@ if(!defined('ABSPATH'))
4
 
5
  class PrliAppController
6
  {
7
- function PrliAppController()
8
  {
9
  add_action('init', array(&$this,'parse_standalone_request'));
10
  add_action('admin_notices', array(&$this, 'upgrade_database_headline'));
@@ -42,6 +42,7 @@ class PrliAppController
42
  !empty($_REQUEST['controller']) and !empty($_REQUEST['action']) )
43
  {
44
  $this->standalone_route($_REQUEST['controller'], $_REQUEST['action']);
 
45
  exit;
46
  }
47
  }
@@ -62,7 +63,7 @@ class PrliAppController
62
 
63
  if( wp_verify_nonce( $_REQUEST['_wpnonce'], "prli-db-upgrade" ) and current_user_can( 'update_core' ) ) {
64
  prli_install();
65
- wp_redirect(admin_url("admin.php?page=pretty-link/prli-links.php&message=" . urlencode(__('Your Database Has Been Successfully Upgraded.', 'pretty-link'))));
66
  }
67
  else
68
  wp_redirect(home_url());
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'));
42
  !empty($_REQUEST['controller']) and !empty($_REQUEST['action']) )
43
  {
44
  $this->standalone_route($_REQUEST['controller'], $_REQUEST['action']);
45
+ do_action('prli-standalone-route');
46
  exit;
47
  }
48
  }
63
 
64
  if( wp_verify_nonce( $_REQUEST['_wpnonce'], "prli-db-upgrade" ) and current_user_can( 'update_core' ) ) {
65
  prli_install();
66
+ wp_redirect(admin_url("admin.php?page=pretty-link&message=" . urlencode(__('Your Database Has Been Successfully Upgraded.', 'pretty-link'))));
67
  }
68
  else
69
  wp_redirect(home_url());
classes/controllers/PrliGroupsController.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH'))
3
+ die(__('You are not allowed to call this page directly.', 'pretty-link'));
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 ADDED
@@ -0,0 +1,300 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if(!defined('ABSPATH'))
3
+ die(__('You are not allowed to call this page directly.', 'pretty-link'));
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_edit_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
32
+ return self::list_links($params);
33
+ }
34
+
35
+ public static function load_styles() {
36
+ wp_enqueue_style( 'prli-admin-links', PRLI_CSS_URL . '/prli-admin-links.css', array() );
37
+ }
38
+
39
+ public static function load_scripts() {
40
+ wp_enqueue_script( 'prli-admin-links', PRLI_JS_URL . '/prli-admin-links.js', array('jquery') );
41
+ }
42
+
43
+ public static function list_links($params) {
44
+ global $wpdb, $prli_group;
45
+
46
+ if(!empty($params['message']))
47
+ $prli_message = $params['message'];
48
+ else if(empty($params['group']))
49
+ $prli_message = prli_get_main_message();
50
+ else
51
+ $prli_message = __("Links in Group: ", 'pretty-link') . $wpdb->get_var("SELECT name FROM " . $prli_group->table_name . " WHERE id=".$params['group']);
52
+
53
+ self::display_links_list($params, $prli_message);
54
+ }
55
+
56
+ public function list_form($params) {
57
+ if(apply_filters('prli-link-list-process-form', true))
58
+ self::display_links_list($params, prli_get_main_message());
59
+ }
60
+
61
+ public static function new_link($params) {
62
+ global $prli_group;
63
+ $groups = $prli_group->getAll('',' ORDER BY name');
64
+ $values = setup_new_vars($groups);
65
+
66
+ require_once PRLI_VIEWS_PATH . '/prli-links/new.php';
67
+ }
68
+
69
+ public static function quick_create_link($params) {
70
+ global $prli_link, $prli_group, $prli_options;
71
+
72
+ $params = self::get_params_array();
73
+ $errors = $prli_link->validate($_POST);
74
+
75
+ if( count($errors) > 0 )
76
+ {
77
+ $groups = $prli_group->getAll('',' ORDER BY name');
78
+ $values = setup_new_vars($groups);
79
+ require_once PRLI_VIEWS_PATH . '/prli-links/new.php';
80
+ }
81
+ else
82
+ {
83
+ $_POST['param_forwarding'] = 'off';
84
+ $_POST['param_struct'] = '';
85
+ $_POST['name'] = '';
86
+ $_POST['description'] = '';
87
+ if( $prli_options->link_track_me )
88
+ $_POST['track_me'] = 'on';
89
+ if( $prli_options->link_nofollow )
90
+ $_POST['nofollow'] = 'on';
91
+
92
+ $_POST['redirect_type'] = $prli_options->link_redirect_type;
93
+
94
+ $record = $prli_link->create( $_POST );
95
+
96
+ $prli_message = __("Your Pretty Link was Successfully Created", 'pretty-link');
97
+ self::display_links_list($params, $prli_message, '', 1);
98
+ }
99
+ }
100
+
101
+ public static function create_link($params) {
102
+ global $prli_link, $prli_group;
103
+ $errors = $prli_link->validate($_POST);
104
+
105
+ $errors = apply_filters( "prli_validate_link", $errors );
106
+
107
+ if( count($errors) > 0 )
108
+ {
109
+ $groups = $prli_group->getAll('',' ORDER BY name');
110
+ $values = setup_new_vars($groups);
111
+ require_once PRLI_VIEWS_PATH . '/prli-links/new.php';
112
+ }
113
+ else
114
+ {
115
+ $record = $prli_link->create( $_POST );
116
+
117
+ do_action( "prli_update_link", $record );
118
+
119
+ $prli_message = __("Your Pretty Link was Successfully Created", 'pretty-link');
120
+ self::display_links_list($params, $prli_message, '', 1);
121
+ }
122
+ }
123
+
124
+ public static function edit_link($params) {
125
+ global $prli_group, $prli_link;
126
+ $groups = $prli_group->getAll('',' ORDER BY name');
127
+
128
+ $record = $prli_link->getOne( $params['id'] );
129
+ $values = setup_edit_vars($groups,$record);
130
+ $id = $params['id'];
131
+ require_once PRLI_VIEWS_PATH . '/prli-links/edit.php';
132
+ }
133
+
134
+ public static function bulk_update_links($params) {
135
+ if(apply_filters('prli-bulk-link-update', true))
136
+ {
137
+ $prli_message = __("Your Pretty Links were Successfully Updated", 'pretty-link');
138
+ self::display_links_list($params, $prli_message, '', 1);
139
+ }
140
+ }
141
+
142
+ public static function update_link($params) {
143
+ global $prli_link, $prli_group;
144
+ $errors = $prli_link->validate($_POST);
145
+ $id = $_POST['id'];
146
+
147
+ $errors = apply_filters( "prli_validate_link", $errors );
148
+
149
+ if( count($errors) > 0 )
150
+ {
151
+ $groups = $prli_group->getAll('',' ORDER BY name');
152
+ $record = $prli_link->getOne( $params['id'] );
153
+ $values = setup_edit_vars($groups,$record);
154
+ require_once PRLI_VIEWS_PATH . '/prli-links/edit.php';
155
+ }
156
+ else
157
+ {
158
+ $record = $prli_link->update( $_POST['id'], $_POST );
159
+
160
+ do_action( "prli_update_link", $id );
161
+
162
+ $prli_message = __("Your Pretty Link was Successfully Updated", 'pretty-link');
163
+ self::display_links_list($params, $prli_message, '', 1);
164
+ }
165
+ }
166
+
167
+ public static function reset_link($params) {
168
+ global $prli_link;
169
+ $prli_link->reset( $params['id'] );
170
+ $prli_message = __("Your Pretty Link was Successfully Reset", 'pretty-link');
171
+ self::display_links_list($params, $prli_message, '', 1);
172
+ }
173
+
174
+ public static function destroy_link($params) {
175
+ global $prli_link;
176
+ $prli_link->destroy( $params['id'] );
177
+ $prli_message = __("Your Pretty Link was Successfully Destroyed", 'pretty-link');
178
+ self::display_links_list($params, $prli_message, '', 1);
179
+ }
180
+
181
+ public static function display_links_list($params, $prli_message, $page_params_ov = false, $current_page_ov = false)
182
+ {
183
+ global $wpdb, $prli_utils, $prli_click, $prli_group, $prli_link, $page_size, $prli_options;
184
+
185
+ $controller_file = basename(__FILE__);
186
+
187
+ $where_clause = '';
188
+ $page_params = '';
189
+
190
+ if(!empty($params['group']))
191
+ {
192
+ $where_clause = " group_id=" . $params['group'];
193
+ $page_params = "&group=" . $params['group'];
194
+ }
195
+
196
+ $link_vars = self::get_link_sort_vars($params, $where_clause);
197
+
198
+ if($current_page_ov)
199
+ $current_page = $current_page_ov;
200
+ else
201
+ $current_page = $params['paged'];
202
+
203
+ if($page_params_ov)
204
+ $page_params .= $page_params_ov;
205
+ else
206
+ $page_params .= $link_vars['page_params'];
207
+
208
+ $sort_str = $link_vars['sort_str'];
209
+ $sdir_str = $link_vars['sdir_str'];
210
+ $search_str = $link_vars['search_str'];
211
+
212
+ $record_count = $prli_link->getRecordCount($link_vars['where_clause']);
213
+ $page_count = $prli_link->getPageCount($page_size,$link_vars['where_clause']);
214
+ $links = $prli_link->getPage($current_page,$page_size,$link_vars['where_clause'],$link_vars['order_by']);
215
+ $page_last_record = $prli_utils->getLastRecordNum($record_count,$current_page,$page_size);
216
+ $page_first_record = $prli_utils->getFirstRecordNum($record_count,$current_page,$page_size);
217
+
218
+ require_once PRLI_VIEWS_PATH . '/prli-links/list.php';
219
+ }
220
+
221
+ public static function get_link_sort_vars($params,$where_clause = '')
222
+ {
223
+ $order_by = '';
224
+ $page_params = '';
225
+
226
+ // These will have to work with both get and post
227
+ $sort_str = $params['sort'];
228
+ $sdir_str = $params['sdir'];
229
+ $search_str = $params['search'];
230
+
231
+ // Insert search string
232
+ if(!empty($search_str))
233
+ {
234
+ $search_params = explode(" ", $search_str);
235
+
236
+ foreach($search_params as $search_param)
237
+ {
238
+ if(!empty($where_clause))
239
+ $where_clause .= " AND";
240
+
241
+ $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%')";
242
+ }
243
+
244
+ $page_params .="&search=$search_str";
245
+ }
246
+
247
+ // make sure page params stay correct
248
+ if(!empty($sort_str))
249
+ $page_params .="&sort=$sort_str";
250
+
251
+ if(!empty($sdir_str))
252
+ $page_params .= "&sdir=$sdir_str";
253
+
254
+ // Add order by clause
255
+ switch($sort_str)
256
+ {
257
+ case "name":
258
+ case "clicks":
259
+ case "group_name":
260
+ case "slug":
261
+ $order_by .= " ORDER BY $sort_str";
262
+ break;
263
+ default:
264
+ $order_by .= " ORDER BY created_at";
265
+ }
266
+
267
+ // Toggle ascending / descending
268
+ if((empty($sort_str) and empty($sdir_str)) or $sdir_str == 'desc')
269
+ {
270
+ $order_by .= ' DESC';
271
+ $sdir_str = 'desc';
272
+ }
273
+ else
274
+ $sdir_str = 'asc';
275
+
276
+ return array('order_by' => $order_by,
277
+ 'sort_str' => $sort_str,
278
+ 'sdir_str' => $sdir_str,
279
+ 'search_str' => $search_str,
280
+ 'where_clause' => $where_clause,
281
+ 'page_params' => $page_params);
282
+ }
283
+
284
+ // Set defaults and grab get or post of each possible param
285
+ public static function get_params_array()
286
+ {
287
+ return array(
288
+ 'action' => (isset($_REQUEST['action'])?$_REQUEST['action']:'list'),
289
+ 'regenerate' => (isset($_REQUEST['regenerate'])?$_REQUEST['regenerate']:'false'),
290
+ 'id' => (isset($_REQUEST['id'])?$_REQUEST['id']:''),
291
+ 'group_name' => (isset($_REQUEST['group_name'])?$_REQUEST['group_name']:''),
292
+ 'paged' => (isset($_REQUEST['paged'])?$_REQUEST['paged']:1),
293
+ 'group' => (isset($_REQUEST['group'])?$_REQUEST['group']:''),
294
+ 'search' => (isset($_REQUEST['search'])?$_REQUEST['search']:''),
295
+ 'sort' => (isset($_REQUEST['sort'])?$_REQUEST['sort']:''),
296
+ 'sdir' => (isset($_REQUEST['sdir'])?$_REQUEST['sdir']:''),
297
+ 'message' => (isset($_REQUEST['message'])?$_REQUEST['message']:'')
298
+ );
299
+ }
300
+ }
classes/helpers/PrliAppHelper.php ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
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/models/PrliClick.php CHANGED
@@ -166,24 +166,9 @@ class PrliClick
166
  return $results;
167
  }
168
 
169
- function generateUniqueVisitorId($num_chars = 6)
170
  {
171
- global $wpdb, $prli_utils;
172
-
173
- // We're doing a base 36 hash which is why we're always doing everything by 36
174
- $max_vuid_value = pow(36,$num_chars);
175
- $min_vuid_value = 37;
176
- $vuid = base_convert( mt_rand($min_vuid_value,$max_vuid_value), 10, 36 );
177
-
178
- $query = "SELECT DISTINCT vuid FROM ".$this->table_name;
179
- $vuids = $wpdb->get_col($query,0);
180
-
181
- // It is highly unlikely that we'll ever see 2 identical random vuids
182
- // but just in case, here's some code to prevent collisions
183
- while( in_array($vuid,$vuids) )
184
- $vuid = base_convert( mt_rand($min_vuid_value,$max_vuid_value), 10, 36 );
185
-
186
- return $vuid;
187
  }
188
 
189
  function get_counts_by_days($start_timestamp, $end_timestamp, $link_id = "all", $type = "all", $group = '')
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 = '')
classes/models/PrliGroup.php CHANGED
@@ -14,20 +14,17 @@ class PrliGroup
14
 
15
  function create( $values )
16
  {
17
- global $wpdb, $wp_rewrite;
18
 
19
- $query = 'INSERT INTO ' . $this->table_name .
20
- ' (name,description,created_at) VALUES (\'' .
21
- $values['name'] . '\',\'' .
22
- $values['description'] . '\',' .
23
- 'NOW())';
24
  $query_results = $wpdb->query($query);
25
  return $wpdb->insert_id;
26
  }
27
 
28
  function update( $id, $values )
29
  {
30
- global $wpdb, $wp_rewrite;
31
 
32
  $query = 'UPDATE ' . $this->table_name .
33
  ' SET name=\'' . $values['name'] . '\', ' .
@@ -40,7 +37,7 @@ class PrliGroup
40
  function destroy( $id )
41
  {
42
  require_once(PRLI_MODELS_PATH.'/models.inc.php');
43
- global $wpdb, $prli_link, $wp_rewrite;
44
 
45
  // Disconnect the links from this group
46
  $query = 'UPDATE ' . $prli_link->table_name .
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, $values['name'], $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=\'' . $values['name'] . '\', ' .
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 .
classes/models/PrliLink.php CHANGED
@@ -14,12 +14,12 @@ class PrliLink
14
 
15
  function create( $values )
16
  {
17
- global $wpdb, $prli_url_utils;
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']:$prli_url_utils->get_title($values['url'],$values['slug']));
23
 
24
  $query_str = "INSERT INTO {$this->table_name} " .
25
  '(url,'.
@@ -48,20 +48,24 @@ class PrliLink
48
  (isset($values['group_id'])?(int)$values['group_id']:'NULL') );
49
  $query_results = $wpdb->query($query);
50
 
51
- if($query_results)
52
- return $wpdb->insert_id;
53
  else
54
- return false;
 
 
 
 
55
  }
56
 
57
  function update( $id, $values )
58
  {
59
- global $wpdb, $prli_url_utils;
60
 
61
  if($values['redirect_type'] == 'pixel')
62
  $values['name'] = (!empty($values['name'])?$values['name']:$values['slug']);
63
  else
64
- $values['name'] = (!empty($values['name'])?$values['name']:$prli_url_utils->get_title($values['url'],$values['slug']));
65
 
66
  $query_str = "UPDATE {$this->table_name} " .
67
  'SET url=%s, ' .
@@ -283,7 +287,7 @@ class PrliLink
283
 
284
  function is_pretty_link_slug($slug)
285
  {
286
- return $this->getOneFromSlug( urldecode($slug) );
287
  }
288
 
289
  function get_link_min( $id, $return_type = OBJECT )
@@ -410,23 +414,6 @@ class PrliLink
410
  return $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug;
411
  }
412
 
413
- // Set defaults and grab get or post of each possible param
414
- function get_params_array()
415
- {
416
- return array(
417
- 'action' => (isset($_REQUEST['action'])?$_REQUEST['action']:'list'),
418
- 'regenerate' => (isset($_REQUEST['regenerate'])?$_REQUEST['regenerate']:'false'),
419
- 'id' => (isset($_REQUEST['id'])?$_REQUEST['id']:''),
420
- 'group_name' => (isset($_REQUEST['group_name'])?$_REQUEST['group_name']:''),
421
- 'paged' => (isset($_REQUEST['paged'])?$_REQUEST['paged']:1),
422
- 'group' => (isset($_REQUEST['group'])?$_REQUEST['group']:''),
423
- 'search' => (isset($_REQUEST['search'])?$_REQUEST['search']:''),
424
- 'sort' => (isset($_REQUEST['sort'])?$_REQUEST['sort']:''),
425
- 'sdir' => (isset($_REQUEST['sdir'])?$_REQUEST['sdir']:''),
426
- 'message' => (isset($_REQUEST['message'])?$_REQUEST['message']:'')
427
- );
428
- }
429
-
430
  function validate( $values )
431
  {
432
  global $wpdb, $prli_utils, $prli_blogurl;
@@ -463,4 +450,46 @@ class PrliLink
463
 
464
  return $errors;
465
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  }
14
 
15
  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,'.
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
  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, ' .
287
 
288
  function is_pretty_link_slug($slug)
289
  {
290
+ return apply_filters('prli-check-if-slug', $this->getOneFromSlug( urldecode($slug) ), urldecode($slug));
291
  }
292
 
293
  function get_link_min( $id, $return_type = OBJECT )
414
  return $prli_blogurl . PrliUtils::get_permalink_pre_slug_uri() . $link->slug;
415
  }
416
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
  function validate( $values )
418
  {
419
  global $wpdb, $prli_utils, $prli_blogurl;
450
 
451
  return $errors;
452
  }
453
+
454
+ public function get_target_to_pretty_urls($urls=array(),$create_pretty_links=false) {
455
+ global $wpdb, $prli_blogurl;
456
+
457
+ if(empty($urls))
458
+ return false;
459
+
460
+ $decoded_urls = array_map( create_function( '$url', 'return html_entity_decode(urldecode($url));' ), $urls );
461
+
462
+ if( count($decoded_urls) > 1 )
463
+ $where = "IN (" . implode( ',', array_map( create_function( '$url', 'return "\"{$url}\"";' ), $decoded_urls ) ) . ")";
464
+ else
465
+ $where = "= '" . html_entity_decode(urldecode($decoded_urls[0])) . "'";
466
+
467
+ $query = "SELECT li.url AS target_url, " .
468
+ "CONCAT(%s, li.slug) AS pretty_url " .
469
+ "FROM {$this->table_name} AS li " .
470
+ "WHERE li.url {$where}";
471
+
472
+ $query = $wpdb->prepare($query, $prli_blogurl.PrliUtils::get_permalink_pre_slug_uri());
473
+
474
+ $results = (array)$wpdb->get_results($query);
475
+
476
+ $prli_lookup = array();
477
+ foreach($results as $url_hash) {
478
+ if(isset($prli_lookup[$url_hash->target_url]))
479
+ $prli_lookup[$url_hash->target_url][] = $url_hash->pretty_url;
480
+ else
481
+ $prli_lookup[$url_hash->target_url] = array($url_hash->pretty_url);
482
+ }
483
+
484
+ if($create_pretty_links) {
485
+ foreach($decoded_urls as $url) {
486
+ if(!isset($prli_lookup[$url])) {
487
+ if( $id = prli_create_pretty_link( $url ) )
488
+ $prli_lookup[$url] = array(prli_get_pretty_link_url($id));
489
+ }
490
+ }
491
+ }
492
+
493
+ return $prli_lookup;
494
+ }
495
  }
classes/models/PrliOptions.php CHANGED
@@ -4,35 +4,39 @@ if(!defined('ABSPATH'))
4
 
5
  class PrliOptions
6
  {
7
- var $prli_exclude_ips;
8
- var $whitelist_ips;
9
- var $filter_robots;
10
- var $extended_tracking;
11
- var $prettybar_image_url;
12
- var $prettybar_background_image_url;
13
- var $prettybar_color;
14
- var $prettybar_text_color;
15
- var $prettybar_link_color;
16
- var $prettybar_hover_color;
17
- var $prettybar_visited_color;
18
- var $prettybar_show_title;
19
- var $prettybar_show_description;
20
- var $prettybar_show_share_links;
21
- var $prettybar_show_target_url_link;
22
- var $prettybar_title_limit;
23
- var $prettybar_desc_limit;
24
- var $prettybar_link_limit;
25
-
26
- var $link_redirect_type;
27
- var $link_redirect_action;
28
- var $link_prefix;
29
- var $link_track_me;
30
- var $link_nofollow;
31
-
32
- var $bookmarklet_auth;
33
-
34
- function PrliOptions()
35
  {
 
 
 
 
36
  $this->set_default_options();
37
  }
38
 
@@ -279,4 +283,31 @@ class PrliOptions
279
  if(!isset($this->extended_tracking))
280
  $this->extended_tracking = 'normal';
281
  }
282
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  class PrliOptions
6
  {
7
+ public $prli_exclude_ips;
8
+ public $whitelist_ips;
9
+ public $filter_robots;
10
+ public $extended_tracking;
11
+ public $prettybar_image_url;
12
+ public $prettybar_background_image_url;
13
+ public $prettybar_color;
14
+ public $prettybar_text_color;
15
+ public $prettybar_link_color;
16
+ public $prettybar_hover_color;
17
+ public $prettybar_visited_color;
18
+ public $prettybar_show_title;
19
+ public $prettybar_show_description;
20
+ public $prettybar_show_share_links;
21
+ public $prettybar_show_target_url_link;
22
+ public $prettybar_title_limit;
23
+ public $prettybar_desc_limit;
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
 
283
  if(!isset($this->extended_tracking))
284
  $this->extended_tracking = 'normal';
285
  }
286
+
287
+ public function store() {
288
+ $storage_array = (array)$this;
289
+ update_option( 'prli_options', $storage_array );
290
+ }
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
302
+ }
303
+ else if(is_array($prli_options))
304
+ $prli_options = new PrliOptions($prli_options);
305
+ else
306
+ $prli_options = new PrliOptions();
307
+ }
308
+ else
309
+ $prli_options = new PrliOptions();
310
+
311
+ return $prli_options;
312
+ }
313
+ }
classes/models/PrliUpdate.php CHANGED
@@ -38,7 +38,7 @@ class PrliUpdate
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/prli-links.php';
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');
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');
classes/models/PrliUtils.php CHANGED
@@ -210,10 +210,11 @@ class PrliUtils
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));
214
  $pretty_link_url = $pretty_link_target['url'];
 
215
 
216
- if(isset($pretty_link->track_me) and $pretty_link->track_me)
217
  {
218
  $first_click = 0;
219
 
@@ -300,24 +301,19 @@ class PrliUtils
300
  }
301
  }
302
 
303
- // Reformat Parameters
304
  $param_string = '';
 
 
 
 
 
305
 
306
- if(isset($pretty_link->param_forwarding) and ($pretty_link->param_forwarding == 'custom' OR $pretty_link->param_forwarding == 'on') and isset($values) and count($values) >= 1)
307
- {
308
- $first_param = true;
309
- foreach($values as $key => $value)
310
- {
311
- if($first_param)
312
- {
313
- $param_string = (preg_match("#\?#", $pretty_link_url)?"&":"?");
314
- $first_param = false;
315
- }
316
- else
317
- $param_string .= "&";
318
-
319
- $param_string .= "$key=$value";
320
- }
321
  }
322
 
323
  if(isset($pretty_link->nofollow) and $pretty_link->nofollow)
@@ -343,7 +339,7 @@ class PrliUtils
343
  do_action('prli_issue_cloaked_redirect', $pretty_link->redirect_type, $pretty_link, $pretty_link_url, $param_string);
344
  }
345
  }
346
-
347
  function get_custom_forwarding_rule($param_struct)
348
  {
349
  $param_struct = preg_replace('#%.*?%#','(.*?)',$param_struct);
@@ -915,7 +911,8 @@ class PrliUtils
915
  unset($prli_options->prettybar_link_limit);
916
 
917
  // Save the posted value in the database
918
- update_option( 'prli_options', $prli_options );
 
919
  }
920
 
921
  // Modify the tables so they're UTF-8
@@ -1196,4 +1193,25 @@ class PrliUtils
1196
 
1197
  return $string;
1198
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1199
  }
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
 
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)
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);
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
1193
 
1194
  return $string;
1195
  }
1196
+
1197
+ public static function get_page_title($url, $slug='')
1198
+ {
1199
+ $title = '';
1200
+ $wp_http = new WP_Http;
1201
+ $result = $wp_http->request( $url, array( 'sslverify' => false ) );
1202
+
1203
+ if(!$result or is_a($result, 'WP_Error') or !isset($result['body']))
1204
+ return $slug;
1205
+
1206
+ $data = $result['body'];
1207
+
1208
+ // Look for <title>(.*?)</title> in the text
1209
+ if($data and preg_match('#<title>[\s\n\r]*?(.*?)[\s\n\r]*?</title>#im', $data, $matches))
1210
+ $title = trim($matches[1]);
1211
+
1212
+ if(empty($title) or !$title)
1213
+ return $slug;
1214
+
1215
+ return $title;
1216
+ }
1217
  }
classes/models/models.inc.php CHANGED
@@ -6,7 +6,6 @@ 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.'/PrliUrlUtils.php');
10
  require_once(PRLI_MODELS_PATH.'/PrliLinkMeta.php');
11
  require_once(PRLI_MODELS_PATH.'/PrliUpdate.php');
12
 
@@ -15,7 +14,6 @@ global $prli_link_meta;
15
  global $prli_click;
16
  global $prli_group;
17
  global $prli_utils;
18
- global $prli_url_utils;
19
  global $prli_update;
20
 
21
  $prli_link = new PrliLink();
@@ -23,9 +21,10 @@ $prli_link_meta = new PrliLinkMeta();
23
  $prli_click = new PrliClick();
24
  $prli_group = new PrliGroup();
25
  $prli_utils = new PrliUtils();
26
- $prli_url_utils = new PrliUrlUtils();
27
  $prli_update = new PrliUpdate();
28
 
 
 
29
  global $prli_db_version;
30
  global $prlipro_db_version;
31
 
@@ -33,7 +32,11 @@ $prli_db_version = 12; // this is the version of the database we're moving to
33
  $prlipro_db_version = 3; // this is the version of the database we're moving to
34
 
35
  // Load Controller(s)
36
- require_once( PRLI_CONTROLLERS_PATH.'/PrliAppController.php');
 
 
 
 
37
 
38
  global $prli_app_controller;
39
 
@@ -45,7 +48,7 @@ function prli_get_main_message($message='',$expiration=1800) // Get new messages
45
 
46
  // Set the default message
47
  if(empty($message)) {
48
- $message = __( "Get started by <a href=\"?page=pretty-link/prli-links.php&action=new\">" .
49
  "adding a URL</a> that you want to turn into a pretty link.<br/>" .
50
  "Come back to see how many times it was clicked." , 'pretty-link');
51
  }
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
 
14
  global $prli_click;
15
  global $prli_group;
16
  global $prli_utils;
 
17
  global $prli_update;
18
 
19
  $prli_link = new PrliLink();
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
 
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
+
39
+ PrliGroupsController::load_hooks();
40
 
41
  global $prli_app_controller;
42
 
48
 
49
  // Set the default message
50
  if(empty($message)) {
51
+ $message = __( "Get started by <a href=\"?page=pretty-link&action=new\">" .
52
  "adding a URL</a> that you want to turn into a pretty link.<br/>" .
53
  "Come back to see how many times it was clicked." , 'pretty-link');
54
  }
classes/views/prli-clicks/list.php CHANGED
@@ -3,7 +3,7 @@
3
  <?php
4
  require(PRLI_VIEWS_PATH.'/shared/nav.php');
5
  ?>
6
- <h2><img src="<?php echo PRLI_IMAGES_URL.'/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Hits</h2>
7
  <span style="font-size: 14px; font-weight: bold;">For <?php echo stripslashes($link_name); ?>: </span>
8
  <?php
9
  // Don't show this sheesh if we're displaying the vuid or ip grouping
@@ -129,7 +129,7 @@
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 } ?>
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;">For <?php echo stripslashes($link_name); ?>: </span>
8
  <?php
9
  // Don't show this sheesh if we're displaying the vuid or ip grouping
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 gmdate('Y-m-d H:i:s', (strtotime($click->created_at) + (get_option('gmt_offset') * 3600))); ?></td>
133
  <?php if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking == "extended" ) { ?>
134
  <td><?php echo $click->host; ?></td>
135
  <?php } ?>
classes/views/prli-groups/edit.php CHANGED
@@ -4,7 +4,7 @@ if(!defined('ABSPATH'))
4
  ?>
5
 
6
  <div class="wrap">
7
- <h2><img src="<?php echo PRLI_IMAGES_URL.'/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Edit Group</h2>
8
 
9
  <?php
10
  require(PRLI_VIEWS_PATH.'/shared/errors.php');
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');
classes/views/prli-groups/list.php CHANGED
@@ -6,7 +6,7 @@ if(!defined('ABSPATH'))
6
  <?php
7
  require(PRLI_VIEWS_PATH.'/shared/nav.php');
8
  ?>
9
- <h2><img src="<?php echo PRLI_IMAGES_URL.'/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Groups</h2>
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="">
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="">
classes/views/prli-groups/new.php CHANGED
@@ -4,7 +4,7 @@ if(!defined('ABSPATH'))
4
  ?>
5
 
6
  <div class="wrap">
7
- <h2><img src="<?php echo PRLI_IMAGES_URL.'/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Add Group</h2>
8
 
9
  <?php
10
  require(PRLI_VIEWS_PATH.'/shared/errors.php');
4
  ?>
5
 
6
  <div class="wrap">
7
+ <?php echo PrliAppHelper::page_title(__('New Group', 'pretty-link')); ?>
8
 
9
  <?php
10
  require(PRLI_VIEWS_PATH.'/shared/errors.php');
classes/views/prli-links/edit.php CHANGED
@@ -4,13 +4,13 @@ if(!defined('ABSPATH'))
4
  ?>
5
 
6
  <div class="wrap">
7
- <h2><img src="<?php echo PRLI_IMAGES_URL.'/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Edit Link</h2>
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-links.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'); ?>
@@ -20,7 +20,7 @@ if(!defined('ABSPATH'))
20
  ?>
21
 
22
  <p class="submit">
23
- <input type="submit" name="Submit" value="Update" />&nbsp;or&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-links.php">Cancel</a>
24
  </p>
25
 
26
  </form>
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'); ?>
20
  ?>
21
 
22
  <p class="submit">
23
+ <input type="submit" name="Submit" value="Update" />&nbsp;or&nbsp;<a href="<?php echo admin_url('admin.php?page=pretty-link'); ?>">Cancel</a>
24
  </p>
25
 
26
  </form>
classes/views/prli-links/form.php CHANGED
@@ -1,38 +1,47 @@
1
  <?php if(!defined('ABSPATH')) { die('You are not allowed to call this page directly.'); } ?>
 
2
  <table class="form-table">
3
  <tr class="form-field">
4
- <td width="75px" valign="top">Target URL*: </td>
5
- <td><textarea style="height: 50px;" name="url"><?php echo esc_html(htmlentities($values['url'],ENT_COMPAT,'UTF-8')); ?></textarea>
6
- <a class="toggle">&nbsp;[?]</a>
7
- <span class="description toggle_pane"><br/>Enter the URL you want to mask and track. Don't forget to start your url with <code>http://</code> or <code>https://</code>. Example: <code>http://www.yoururl.com</code></span></td>
 
 
 
 
 
 
 
 
 
 
8
  </tr>
9
- <tr>
10
- <td valign="top">Pretty Link*: </td>
11
- <td><strong><?php echo esc_html($prli_blogurl); ?></strong>/<input type="text" name="slug" value="<?php echo esc_attr($values['slug']); ?>" size="50"/>
12
- <a class="toggle">&nbsp;[?]</a>
13
- <span class="toggle_pane description"><br/>Enter the slug (word trailing your main URL) that will form your pretty link and redirect to the URL above.</span></td>
14
  </tr>
15
- <tr class="form-field">
16
- <td width="75px" valign="top">Title: </td>
17
- <td><input type="text" name="name" value="<?php echo esc_attr($values['name']); ?>" />
18
- <a class="toggle">&nbsp;[?]</a>
19
- <span class="description toggle_pane"><br/>This will act as the title of your Pretty Link. If a name is not entered here then the slug name will be used.</span></td>
20
  </tr>
21
  <tr class="form-field">
22
- <td valign="top">Description: </td>
23
- <td><textarea style="height: 50px;" name="description"><?php echo esc_html($values['description']); ?></textarea>
24
- </select><a class="toggle">&nbsp;[?]</a>
25
- <span class="toggle_pane description"><br/>A Description of this link.</span></td>
26
  </tr>
27
  </table>
28
- <h3><a class="options-table-toggle">Link Options <span class="expand-options" style="display: none;">[+]</span><span class="collapse-options">[-]</span></a> <span class="expand-collapse" style="display: none"><a class="expand-all" title="Show all option instructions.">&nbsp;[?]</a><a class="collapse-all" title="Hide all option instructions." style="display: none;">&nbsp;[?]</a></span></h3>
29
- <table class="options-table">
 
 
 
 
30
  <tr>
31
  <td valign="top" width="50%">
32
- <h3>Group&nbsp;</h3>
33
  <div class="pane">
34
- <select name="group_id" style="padding: 0px; margin: 0px;">
35
- <option>None</option>
36
  <?php
37
  foreach($values['groups'] as $group)
38
  {
@@ -41,58 +50,69 @@
41
  <?php
42
  }
43
  ?>
44
- </select><a class="toggle">&nbsp;[?]</a>
45
- <div class="toggle_pane description">Select a group for this link.</div>
46
- </div>
47
- <br/>
48
- <h3>Redirection Type&nbsp;</h3>
49
- <div class="pane">
50
- <select id="redirect_type" name="redirect_type" style="padding: 0px; margin: 0px;">
51
- <option value="307"<?php echo esc_html($values['redirect_type']['307']); ?>><?php _e("307 (Temporary)", 'pretty-link') ?>&nbsp;</option>
52
- <option value="301"<?php echo esc_html($values['redirect_type']['301']); ?>><?php _e("301 (Permanent)", 'pretty-link') ?>&nbsp;</option>
53
- <?php do_action('prli_redirection_types', $values); ?>
54
- </select><a class="toggle">&nbsp;[?]</a>
55
- <div class="toggle_pane description"><strong>307 Redirection</strong> is the best option if your Target URL could possibly change or need accurate reporting for this link.<br/><br/><strong>301 Redirection</strong> is the best option if you're <strong>NOT</strong> planning on changing your Target URL. Traditionally this option is considered to be the best approach to use for your SEO/SEM efforts but since Pretty Link uses your domain name either way this notion isn't necessarily true for Pretty Links. Also, this option may not give you accurate reporting since proxy and caching servers may go directly to your Target URL once it's cached.<br/><br/><strong>Pretty Bar Redirection</strong> is the best option if you want to show the Pretty Bar at the top of the page when redirecting to the Target URL.<br/><br/><strong>Cloak Redirection</strong> is the best option if you don't want your Target URL to be visible even after the redirection. This way, if a Target URL doesn't redirect to a URL you want to show then this will mask it.<br/><br/><strong>Pixel Redirection</strong> is the option you should select if you want this link to behave like a tracking pixel instead of as a link. This option is useful if you want to track the number of times a page or email is opened. If you place your Pretty Link inside an img tag on the page (Example: <code>&lt;img src="<?php echo esc_html($prli_blogurl . "/yourslug"); ?>" /&gt;</code>) then the page load will be tracked as a click and then displayed. Note: If this option is selected your Target URL will simply be ignored if there's a value in it.</div>
56
- <?php global $prli_update; ?>
57
- <?php if(!$prli_update->pro_is_installed_and_authorized()) { ?>
58
- <p class="description">To Enable Cloaking &amp; Pretty Bar<br/>Upgrade to <a href="http://prettylinkpro.com">Pretty Link Pro</a></p>
59
- <?php } ?>
60
  </div>
61
  <br/>
62
- <h3>SEO Options</h3>
63
  <div class="pane">
64
- <input type="checkbox" name="nofollow" <?php echo esc_html($values['nofollow']); ?>/>&nbsp; 'Nofollow' this Link <a class="toggle">&nbsp;[?]</a>
65
- <div class="toggle_pane description">Select this if you want to add a nofollow code to this link. A nofollow will prevent reputable spiders and robots from following or indexing this link.</div>
66
  </div>
 
 
 
 
 
 
 
 
67
  </td>
68
  <td valign="top" width="50%">
69
- <h3>Tracking Options</h3>
70
  <div class="pane">
71
- <input type="checkbox" name="track_me" <?php echo esc_html($values['track_me']); ?>/>&nbsp; Track this Link <a class="toggle">&nbsp;[?]</a>
72
- <div class="toggle_pane description">De-select this option if you don't want this link tracked. If de-selected, this link will still redirect to the target URL but hits on it won't be recorded in the database.</div>
73
- </div>
74
- <br/>
75
- <a name="param_forwarding_pos" height="0"></a>
76
- <h3>Parameter Forwarding</h3>
77
- <ul style="list-style-type: none" class="pane">
78
- <li>
79
- <input type="radio" name="param_forwarding" value="off" <?php echo esc_html($values['param_forwarding']['off']); ?>/>&nbsp;Forward Parameters Off <a class="toggle">&nbsp;[?]</a>
80
- <div class="toggle_pane description">You may want to leave this option off if you don't need to forward any parameters on to your Target URL.</div>
81
- </li>
82
- <li>
83
- <input type="radio" name="param_forwarding" value="on" <?php echo esc_html($values['param_forwarding']['on']); ?> />&nbsp;Standard Parameter Forwarding <a class="toggle">&nbsp;[?]</a>
84
- <div class="toggle_pane description">Select this option if you want to forward parameters through your pretty link to your Target URL. This will allow you to pass parameters in the standard syntax for example the pretty link <code>http://yoururl.com/coollink?product_id=4&sku=5441</code> will forward to the target URL and append the same parameters like so: <code>http://anotherurl.com?product_id=4&sku=5441</code>.</div>
85
- </li>
86
- <!--
87
- <li>
88
- <input type="radio" name="param_forwarding" value="custom" <?php echo esc_html($values['param_forwarding']['custom']); ?> />&nbsp;Custom Parameter Forwarding&nbsp;&nbsp;<input type="text" name="param_struct" value="<?php echo esc_attr($values['param_struct']); ?>" size="25"/> <a class="toggle">&nbsp);[?]</a>
89
- <div class="toggle_pane description">Select this option if you want to forward parameters through your Pretty Link to your Target URL and write the parameters in a custom format. For example, say I wanted to to have my links look like this: <code>http://yourdomain.com/products/14/4</code> and I wanted this to forward to <code>http://anotherurl.com?product_id=14&dock=4</code> you'd just select this option and enter the following string into the text field <code>/products/%product_id%/%dock%</code>. This will tell Pretty Link where each variable will be located in the URL and what each variable name is.</div>
90
- </li>
91
- -->
92
- </ul>
 
 
 
 
93
  </td>
94
  </tr>
95
  </table>
 
 
96
  <?php
97
- // Add stuff to the form here
98
- do_action('prli_link_fields',$id);
 
 
 
 
 
 
 
 
 
 
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
  {
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
+ // Add stuff to the form here
110
+ do_action('prli_link_fields',$id);
111
+ }
112
+ else {
113
+ ?>
114
+ <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>
115
+ <?php
116
+ }
117
+ ?>
118
+ </table>
classes/views/prli-links/list.php CHANGED
@@ -7,7 +7,7 @@ if(!defined('ABSPATH'))
7
  <?php
8
  require(PRLI_VIEWS_PATH.'/shared/nav.php');
9
  ?>
10
- <h2><img src="<?php echo PRLI_IMAGES_URL . '/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Links</h2>
11
  <?php
12
  if(empty($params['group']))
13
  {
@@ -32,7 +32,7 @@ if(!defined('ABSPATH'))
32
  if(!empty($search_str))
33
  {
34
  ?>
35
- or <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php">Reset</a>
36
  <?php
37
  }
38
  ?>
@@ -40,8 +40,7 @@ if(!defined('ABSPATH'))
40
  </form>
41
  </div>
42
  <div id="button_bar">
43
- <p><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-add-link.php"><img src="<?php echo PRLI_IMAGES_URL . '/pretty-link-add.png'; ?>"/> Add a Pretty Link</a>
44
- &nbsp;|&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-options.php">Options</a>
45
  &nbsp;|&nbsp;<a href="http://blairwilliams.com/plintro">Watch Pretty Link Intro Video</a>
46
  <?php do_action('prli-link-nav'); ?>
47
  </p>
@@ -63,12 +62,12 @@ if(!defined('ABSPATH'))
63
  <table class="widefat post fixed" cellspacing="0">
64
  <thead>
65
  <tr>
66
- <th class="manage-column" width="30%"><?php do_action('prli-list-header-icon'); ?><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=name<?php echo (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Name<?php echo (($sort_str == 'name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
67
  <?php do_action('prli_link_column_header'); ?>
68
- <th class="manage-column" width="10%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=clicks<?php echo (($sort_str == 'clicks' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Hits / Uniq<?php echo (($sort_str == 'clicks')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
69
- <th class="manage-column" width="5%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=group_name<?php echo (($sort_str == 'group_name' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Group<?php echo (($sort_str == 'group_name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
70
- <th class="manage-column" width="12%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=created_at<?php echo (($sort_str == 'created_at' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Created<?php 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>
71
- <th class="manage-column" width="20%"><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&sort=slug<?php echo (($sort_str == 'slug' and $sdir_str == 'asc')?'&sdir=desc':''); ?>">Links<?php echo (($sort_str == 'slug')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
72
  </tr>
73
  </thead>
74
  <?php
@@ -89,7 +88,7 @@ if(!defined('ABSPATH'))
89
  $struct = PrliUtils::get_permalink_pre_slug_uri();
90
  $pretty_link_url = "{$prli_blogurl}{$struct}{$link->slug}";
91
  ?>
92
- <tr style="min-height: 75px; height: 75px;">
93
  <td class="edit_link">
94
 
95
  <?php do_action('prli_list_icon',$link->id); ?>
@@ -132,6 +131,7 @@ if(!defined('ABSPATH'))
132
  <?php
133
  }
134
  ?>
 
135
 
136
  <?php if( $link->redirect_type != 'pixel' )
137
  {
@@ -140,15 +140,16 @@ if(!defined('ABSPATH'))
140
  <a href="<?php echo $pretty_link_url; ?>" target="_blank" title="Visit Pretty Link: <?php echo $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;
141
  <?php
142
  }
 
143
  ?>
144
- <a class="slug_name" href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&action=edit&id=<?php echo $link->id; ?>" title="Edit <?php echo stripslashes($link->name); ?>"><?php echo stripslashes($link->name); ?></a>
145
  <br/>
146
  <div class="link_actions">
147
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&action=edit&id=<?php echo $link->id; ?>" title="Edit <?php echo $link->slug; ?>">Edit</a>&nbsp;|
148
- <a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&action=destroy&id=<?php echo $link->id; ?>" onclick="return confirm('Are you sure you want to delete your <?php echo $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 $link->slug; ?>">Delete</a>
149
- |&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&action=reset&id=<?php echo $link->id; ?>" onclick="return confirm('Are you sure you want to reset your <?php echo $link->name; ?> Pretty Link? This will delete all of the statistical data about this Pretty Link in your database.');" title="Reset <?php echo $link->name; ?>">Reset</a>
150
  <?php if( $link->track_me and $prli_options->extended_tracking!='count' ) { ?>
151
- |&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-clicks.php&l=<?php echo $link->id; ?>" title="View clicks for <?php echo $link->slug; ?>">Hits</a>
152
  <?php do_action('prli-link-action',$link->id); ?>
153
  <?php } ?>
154
  <?php if( $link->redirect_type != 'pixel' )
@@ -164,12 +165,12 @@ if(!defined('ABSPATH'))
164
  <?php do_action('prli_link_column_row',$link->id); ?>
165
  <td>
166
  <?php if($prli_options->extended_tracking!='count')
167
- echo (($link->track_me)?"<a href=\"?page=".PRLI_PLUGIN_NAME."/prli-clicks.php&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\"/>");
168
  else
169
  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\"/>");
170
  ?>
171
  </td>
172
- <td><a href="?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php&group=<?php echo $link->group_id; ?>"><?php echo $link->group_name; ?></a></td>
173
  <td><?php echo $link->created_at; ?></td>
174
  </td>
175
  <td><input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='<?php echo $pretty_link_url; ?>' /><br/>
@@ -199,4 +200,4 @@ if(!defined('ABSPATH'))
199
  <?php $footer = true; require(PRLI_VIEWS_PATH.'/shared/link-table-nav.php'); ?>
200
  </form>
201
 
202
- </div>
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
  {
32
  if(!empty($search_str))
33
  {
34
  ?>
35
+ or <a href="<?php echo admin_url('admin.php?page=pretty-link&action=reset'); ?>">Reset</a>
36
  <?php
37
  }
38
  ?>
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'; ?>"/> Add a Pretty Link</a>
 
44
  &nbsp;|&nbsp;<a href="http://blairwilliams.com/plintro">Watch Pretty Link Intro Video</a>
45
  <?php do_action('prli-link-nav'); ?>
46
  </p>
62
  <table class="widefat post fixed" cellspacing="0">
63
  <thead>
64
  <tr>
65
+ <th class="manage-column" width="30%"><?php do_action('prli-list-header-icon'); ?><a href="<?php echo admin_url('admin.php?page=pretty-link&sort=name' . (($sort_str == 'name' and $sdir_str == 'asc')?'&sdir=desc':'')); ?>">Name<?php echo (($sort_str == 'name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
66
  <?php do_action('prli_link_column_header'); ?>
67
+ <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':'')); ?>">Hits / Uniq<?php echo (($sort_str == 'clicks')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
68
+ <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<?php echo (($sort_str == 'group_name')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
69
+ <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':'')); ?>">Created<?php 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>
70
+ <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':'')); ?>">Links<?php echo (($sort_str == 'slug')?'&nbsp;&nbsp;&nbsp;<img src="'.PRLI_IMAGES_URL . '/'.(($sdir_str == 'desc')?'arrow_down.png':'arrow_up.png').'"/>':'') ?></a></th>
71
  </tr>
72
  </thead>
73
  <?php
88
  $struct = PrliUtils::get_permalink_pre_slug_uri();
89
  $pretty_link_url = "{$prli_blogurl}{$struct}{$link->slug}";
90
  ?>
91
+ <tr class="link_row">
92
  <td class="edit_link">
93
 
94
  <?php do_action('prli_list_icon',$link->id); ?>
131
  <?php
132
  }
133
  ?>
134
+ <?php do_action('prli_list_end_icon',$link); ?>
135
 
136
  <?php if( $link->redirect_type != 'pixel' )
137
  {
140
  <a href="<?php echo $pretty_link_url; ?>" target="_blank" title="Visit Pretty Link: <?php echo $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;
141
  <?php
142
  }
143
+ do_action('prli-special-link-action',$link->id);
144
  ?>
145
+ <a class="slug_name" href="<?php echo admin_url('admin.php?page=pretty-link&action=edit&id=' . $link->id); ?>" title="Edit <?php echo stripslashes($link->name); ?>"><?php echo stripslashes($link->name); ?></a>
146
  <br/>
147
  <div class="link_actions">
148
+ <a href="<?php echo admin_url('admin.php?page=pretty-link&action=edit&id=' . $link->id); ?>" title="Edit <?php echo $link->slug; ?>">Edit</a>&nbsp;|
149
+ <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 $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 $link->slug; ?>">Delete</a>
150
+ |&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 $link->name; ?> Pretty Link? This will delete all of the statistical data about this Pretty Link in your database.');" title="Reset <?php echo $link->name; ?>">Reset</a>
151
  <?php if( $link->track_me and $prli_options->extended_tracking!='count' ) { ?>
152
+ |&nbsp;<a href="<?php echo admin_url("admin.php?page=pretty-link/prli-clicks.php&l={$link->id}"); ?>" title="View clicks for <?php echo $link->slug; ?>">Hits</a>
153
  <?php do_action('prli-link-action',$link->id); ?>
154
  <?php } ?>
155
  <?php if( $link->redirect_type != 'pixel' )
165
  <?php do_action('prli_link_column_row',$link->id); ?>
166
  <td>
167
  <?php if($prli_options->extended_tracking!='count')
168
+ echo (($link->track_me)?"<a href=\"". admin_url( "admin.php?page=pretty-link/prli-clicks.php&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\"/>");
169
  else
170
  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\"/>");
171
  ?>
172
  </td>
173
+ <td><a href="<?php echo admin_url( "admin.php?page=pretty-link&group={$link->group_id}"); ?>"><?php echo $link->group_name; ?></a></td>
174
  <td><?php echo $link->created_at; ?></td>
175
  </td>
176
  <td><input type='text' style="font-size: 10px; width: 100%;" readonly="true" onclick='this.select();' onfocus='this.select();' value='<?php echo $pretty_link_url; ?>' /><br/>
200
  <?php $footer = true; require(PRLI_VIEWS_PATH.'/shared/link-table-nav.php'); ?>
201
  </form>
202
 
203
+ </div>
classes/views/prli-links/new.php CHANGED
@@ -4,13 +4,13 @@ if(!defined('ABSPATH'))
4
  ?>
5
 
6
  <div class="wrap">
7
- <h2><img src="<?php echo PRLI_IMAGES_URL . '/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Add Link</h2>
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-links.php">
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; ?>">
@@ -20,7 +20,7 @@ if(!defined('ABSPATH'))
20
  ?>
21
 
22
  <p class="submit">
23
- <input type="submit" name="Submit" value="Create" />&nbsp;or&nbsp;<a href="?page=<?php echo PRLI_PLUGIN_NAME ?>/prli-links.php">Cancel</a>
24
  </p>
25
 
26
  </form>
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; ?>">
20
  ?>
21
 
22
  <p class="submit">
23
+ <input type="submit" name="Submit" value="Create" />&nbsp;or&nbsp;<a href="<?php admin_url('admin.php?page=pretty-link'); ?>">Cancel</a>
24
  </p>
25
 
26
  </form>
classes/views/prli-options/form.php CHANGED
@@ -4,8 +4,7 @@ if(!defined('ABSPATH'))
4
  ?>
5
 
6
  <div class="wrap">
7
- <div id="icon-options-general" class="icon32"><br /></div>
8
- <h2 id="prli_title">Pretty Link: Options</h2>
9
  <br/>
10
  <?php
11
  $permalink_structure = get_option('permalink_structure');
@@ -17,14 +16,14 @@ if(!$permalink_structure or empty($permalink_structure))
17
  }
18
  ?>
19
  <?php do_action('prli-options-message'); ?>
20
- <a href="admin.php?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php">&laquo Pretty Link Admin</a>
21
 
22
  <form name="form1" method="post" action="<?php echo admin_url("/admin.php?page=pretty-link/prli-options.php"); ?>">
23
  <input type="hidden" name="<?php echo $hidden_field_name; ?>" value="Y">
24
  <?php wp_nonce_field('update-options'); ?>
25
 
26
  <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>
27
- <ul class="link-toggle-pane" style="list-style-type: none;">
28
  <li>
29
  <h3><?php _e('Link Defaults:', 'pretty-link') ?></h3>
30
  <input type="checkbox" name="<?php echo $link_track_me; ?>" <?php echo (($prli_options->link_track_me != 0)?'checked="true"':''); ?>/>&nbsp; Track Link
@@ -47,6 +46,7 @@ if(!$permalink_structure or empty($permalink_structure))
47
  </select>
48
  <br/><span class="description">Select the type of redirection you want your newly created links to have.</span>
49
  </li>
 
50
  <li>
51
  <h3><?php _e('Advanced', 'pretty-link') ?></h3>
52
  <span><strong><?php _e('WordPress Redirection Action:', 'pretty-link') ?> </strong></span>
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');
16
  }
17
  ?>
18
  <?php do_action('prli-options-message'); ?>
19
+ <a href="admin.php?page=<?php echo PRLI_PLUGIN_NAME; ?>/prli-links.php">&laquo; Pretty Link Admin</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; Track Link
46
  </select>
47
  <br/><span class="description">Select the type of redirection you want your newly created links to have.</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>
classes/views/prli-options/pro-settings.php CHANGED
@@ -4,8 +4,7 @@ if(!defined('ABSPATH'))
4
  ?>
5
 
6
  <div class="wrap">
7
- <div id="icon-options-general" class="icon32"><br /></div>
8
- <h2 id="prli_title">Pretty Link: Pro Account Information</h2>
9
  <?php $this_uri = preg_replace('#&.*?$#', '', str_replace( '%7E', '~', $_SERVER['REQUEST_URI'])); ?>
10
  <h3>Pretty Link Pro Account Information</h3>
11
  <?php if($prli_update->pro_is_installed_and_authorized()) { ?>
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>Pretty Link Pro Account Information</h3>
10
  <?php if($prli_update->pro_is_installed_and_authorized()) { ?>
classes/views/prli-tools/form.php CHANGED
@@ -14,7 +14,7 @@ function toggle_iphone_instructions()
14
  <?php
15
  require(PRLI_VIEWS_PATH.'/shared/nav.php');
16
  ?>
17
- <h2><img src="<?php echo PRLI_IMAGES_URL.'/pretty-link-med.png'; ?>"/>&nbsp;Pretty Link: Tools</h2>
18
  <h3>Bookmarklet: </h3>
19
  <p><strong><a href="javascript:location.href='<?php echo PRLI_URL; ?>/prli-bookmarklet.php?k=<?php echo $prli_options->bookmarklet_auth; ?>&target_url='+escape(location.href);">Get PrettyLink</a></strong><br/>
20
  <span class="description">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.&nbsp;&nbsp;<a href="http://blairwilliams.com/pretty-link-bookmarklet/">(more help)</a></span>
14
  <?php
15
  require(PRLI_VIEWS_PATH.'/shared/nav.php');
16
  ?>
17
+ <?php echo PrliAppHelper::page_title(__('Tools', 'pretty-link')); ?>
18
  <h3>Bookmarklet: </h3>
19
  <p><strong><a href="javascript:location.href='<?php echo PRLI_URL; ?>/prli-bookmarklet.php?k=<?php echo $prli_options->bookmarklet_auth; ?>&target_url='+escape(location.href);">Get PrettyLink</a></strong><br/>
20
  <span class="description">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.&nbsp;&nbsp;<a href="http://blairwilliams.com/pretty-link-bookmarklet/">(more help)</a></span>
classes/views/shared/link-table-nav.php CHANGED
@@ -8,14 +8,14 @@ if(!defined('ABSPATH'))
8
  ?>
9
  <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
10
  <?php do_action('prli-link-list-actions', $footer); ?>
11
- <div class='tablenav-pages'><span class="displaying-num">Displaying <?php print "$page_first_record&#8211;$page_last_record of $record_count"; ?></span>
12
 
13
  <?php
14
  // Only show the prev page button if the current page is not the first page
15
  if($current_page > 1)
16
  {
17
  ?>
18
- <a class='prev page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print($current_page-1); ?>'>&laquo;</a>
19
  <?php
20
  }
21
 
@@ -29,7 +29,7 @@ if(!defined('ABSPATH'))
29
  else
30
  {
31
  ?>
32
- <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=1'>1</a>
33
  <?php
34
  }
35
 
@@ -49,13 +49,13 @@ if(!defined('ABSPATH'))
49
  if($current_page==$i)
50
  {
51
  ?>
52
- <span class='page-numbers current'><?php print $i; ?></span>
53
  <?php
54
  }
55
  else
56
  {
57
  ?>
58
- <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print $i; ?>'><?php print $i; ?></a>
59
  <?php
60
  }
61
  }
@@ -72,13 +72,13 @@ if(!defined('ABSPATH'))
72
  if($current_page == $page_count)
73
  {
74
  ?>
75
- <span class='page-numbers current'><?php print $page_count; ?></span>
76
  <?php
77
  }
78
  else
79
  {
80
  ?>
81
- <a class='page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print $page_count; ?>'><?php print $page_count; ?></a>
82
  <?php
83
  }
84
 
@@ -86,7 +86,7 @@ if(!defined('ABSPATH'))
86
  if($current_page < $page_count)
87
  {
88
  ?>
89
- <a class='next page-numbers' href='?page=<?php print PRLI_PLUGIN_NAME; ?>/<?php print $controller_file . $page_params; ?>&paged=<?php print($current_page + 1); ?>'>&raquo;</a>
90
  <?php
91
  }
92
  ?>
@@ -101,4 +101,4 @@ if(!defined('ABSPATH'))
101
  <?php do_action('prli-link-list-actions', $footer); ?>
102
  </div>
103
  <?php
104
- }
8
  ?>
9
  <div class="tablenav"<?php echo (isset($navstyle)?" style=\"$navstyle\"":''); ?>>
10
  <?php do_action('prli-link-list-actions', $footer); ?>
11
+ <div class='tablenav-pages'><span class="displaying-num">Displaying <?php echo "$page_first_record&#8211;$page_last_record of $record_count"; ?></span>
12
 
13
  <?php
14
  // Only show the prev page button if the current page is not the first page
15
  if($current_page > 1)
16
  {
17
  ?>
18
+ <a class='prev page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=<?php echo ($current_page-1); ?>'>&laquo;</a>
19
  <?php
20
  }
21
 
29
  else
30
  {
31
  ?>
32
+ <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=1'>1</a>
33
  <?php
34
  }
35
 
49
  if($current_page==$i)
50
  {
51
  ?>
52
+ <span class='page-numbers current'><?php echo $i; ?></span>
53
  <?php
54
  }
55
  else
56
  {
57
  ?>
58
+ <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=<?php echo $i; ?>'><?php echo $i; ?></a>
59
  <?php
60
  }
61
  }
72
  if($current_page == $page_count)
73
  {
74
  ?>
75
+ <span class='page-numbers current'><?php echo $page_count; ?></span>
76
  <?php
77
  }
78
  else
79
  {
80
  ?>
81
+ <a class='page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=<?php echo $page_count; ?>'><?php echo $page_count; ?></a>
82
  <?php
83
  }
84
 
86
  if($current_page < $page_count)
87
  {
88
  ?>
89
+ <a class='next page-numbers' href='?page=<?php echo esc_html($_REQUEST['page'].$page_params); ?>&paged=<?php echo ($current_page + 1); ?>'>&raquo;</a>
90
  <?php
91
  }
92
  ?>
101
  <?php do_action('prli-link-list-actions', $footer); ?>
102
  </div>
103
  <?php
104
+ }
classes/views/shared/table-nav.php CHANGED
@@ -12,7 +12,7 @@
12
  if($current_page > 1)
13
  {
14
  ?>
15
- <a class='prev page-numbers' href='?page=<?php echo esc_html(PRLI_PLUGIN_NAME); ?>/<?php echo esc_html($controller_file . $page_params); ?>&paged=<?php print($current_page-1); ?>'>&laquo;</a>
16
  <?php
17
  }
18
 
@@ -26,7 +26,7 @@
26
  else
27
  {
28
  ?>
29
- <a class='page-numbers' href='?page=<?php echo esc_html(PRLI_PLUGIN_NAME); ?>/<?php echo esc_html($controller_file . $page_params); ?>&paged=1'>1</a>
30
  <?php
31
  }
32
 
@@ -52,7 +52,7 @@
52
  else
53
  {
54
  ?>
55
- <a class='page-numbers' href='?page=<?php echo esc_html(PRLI_PLUGIN_NAME); ?>/<?php echo esc_html($controller_file . $page_params); ?>&paged=<?php echo esc_html($i); ?>'><?php echo esc_html($i); ?></a>
56
  <?php
57
  }
58
  }
@@ -75,7 +75,7 @@
75
  else
76
  {
77
  ?>
78
- <a class='page-numbers' href='?page=<?php echo esc_html(PRLI_PLUGIN_NAME); ?>/<?php echo esc_html($controller_file . $page_params); ?>&paged=<?php echo esc_html($page_count); ?>'><?php echo esc_html($page_count); ?></a>
79
  <?php
80
  }
81
 
@@ -83,11 +83,11 @@
83
  if($current_page < $page_count)
84
  {
85
  ?>
86
- <a class='next page-numbers' href='?page=<?php echo esc_html(PRLI_PLUGIN_NAME); ?>/<?php echo esc_html($controller_file . $page_params); ?>&paged=<?php print($current_page + 1); ?>'>&raquo;</a>
87
  <?php
88
  }
89
  ?>
90
  </div>
91
  </div>
92
  <?php
93
- }
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
 
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
 
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
  }
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
 
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
  ?>
90
  </div>
91
  </div>
92
  <?php
93
+ }
classes/views/shared/title_text.php ADDED
@@ -0,0 +1,2 @@
 
 
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/prli-admin-links.css ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #options-table {
2
+ width: 100%;
3
+ margin-top: 10px;
4
+ }
5
+
6
+ #pro-options-table {
7
+ width: 100%;
8
+ margin-top: 10px;
9
+ display: none;
10
+ }
11
+
12
+ #options-table td {
13
+ padding: 10px;
14
+ }
15
+
16
+ #pro-options-table td {
17
+ padding: 10px;
18
+ }
19
+
20
+ .defaultTextActive {
21
+ color: #a1a1a1;
22
+ font-style: italic;
23
+ }
24
+
25
+ .link_row {
26
+ min-height: 75px;
27
+ height: 75px;
28
+ }
29
+
30
+ .link_actions {
31
+ display: none;
32
+ }
33
+
34
+ #add_group_message {
35
+ padding-left: 5px;
36
+ display: inline;
37
+ }
i18n/pretty-link.pot CHANGED
@@ -2,9 +2,9 @@
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.5.6\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/pretty-link\n"
7
- "POT-Creation-Date: 2012-01-06 20:31:51+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -21,19 +21,19 @@ msgstr ""
21
  msgid "Pretty Link Pro Successfully Uninstalled."
22
  msgstr ""
23
 
24
- #: prli-options.php:60 pro/prlipro-options.php:192
25
  msgid "Options saved."
26
  msgstr ""
27
 
28
- #: prli-options.php:67
29
  msgid "Hit Database was Cleared."
30
  msgstr ""
31
 
32
- #: prli-options.php:76
33
  msgid "No hits older than 30 days were found, so nothing was deleted"
34
  msgstr ""
35
 
36
- #: prli-options.php:85
37
  msgid "No hits older than 90 days were found, so nothing was deleted"
38
  msgstr ""
39
 
@@ -43,23 +43,74 @@ msgid ""
43
  "$sAutomatically Upgrade your Database%2$s"
44
  msgstr ""
45
 
46
- #: classes/controllers/PrliAppController.php:65
47
  msgid "Your Database Has Been Successfully Upgraded."
48
  msgstr ""
49
 
50
- #: classes/views/prli-options/form.php:26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  msgid "Link Options"
52
  msgstr ""
53
 
54
- #: classes/views/prli-options/form.php:29
55
  msgid "Link Defaults:"
56
  msgstr ""
57
 
58
- #: classes/views/prli-options/form.php:42
59
  msgid "Default Link Redirection Type:"
60
  msgstr ""
61
 
62
- #: classes/views/prli-options/form.php:51
63
  msgid "Advanced"
64
  msgstr ""
65
 
@@ -131,22 +182,170 @@ msgstr ""
131
  msgid "Update Options"
132
  msgstr ""
133
 
134
- #: classes/views/prli-links/list.php:106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  msgid "Meta Refresh Redirection"
136
  msgstr ""
137
 
138
- #: classes/views/prli-links/list.php:109
139
  msgid "Javascript Redirection"
140
  msgstr ""
141
 
142
- #: classes/views/prli-links/form.php:51
 
 
 
 
143
  msgid "307 (Temporary)"
144
  msgstr ""
145
 
146
- #: classes/views/prli-links/form.php:52
147
  msgid "301 (Permanent)"
148
  msgstr ""
149
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  #: classes/views/prli-tools/form.php:21
151
  msgid "Show iPhone Bookmarklet Instructions"
152
  msgstr ""
@@ -207,7 +406,7 @@ msgid "ERROR"
207
  msgstr ""
208
 
209
  #: classes/models/PrliUpdate.php:208
210
- #: pro/classes/views/prlipro-options/form.php:432
211
  msgid "Save"
212
  msgstr ""
213
 
@@ -265,7 +464,23 @@ msgstr ""
265
  msgid "There was an error fetching your Pretty Link URL"
266
  msgstr ""
267
 
268
- #: prli-main.php:362 prli-main.php:381
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
  msgid ""
270
  "Your Pretty Link Pro installation isn't quite complete yet.<br/>%1"
271
  "$sAutomatically Upgrade to Enable Pretty Link Pro%2$s"
@@ -283,10 +498,6 @@ msgstr ""
283
  msgid "Disable Keyword Replacements on this post."
284
  msgstr ""
285
 
286
- #: pro/pretty-link-pro.php:164
287
- msgid "Hits"
288
- msgstr ""
289
-
290
  #: pro/pretty-link-pro.php:164
291
  msgid "Uniques"
292
  msgstr ""
@@ -297,178 +508,186 @@ msgid ""
297
  "\" to generate."
298
  msgstr ""
299
 
300
- #: pro/pretty-link-pro.php:260
301
  msgid "ERROR: Your Pretty Link was unable to be created"
302
  msgstr ""
303
 
304
- #: pro/pretty-link-pro.php:263
305
  msgid "Unauthorized"
306
  msgstr ""
307
 
308
- #: pro/pretty-link-pro.php:1584
 
 
 
 
 
 
 
 
309
  msgid "Alternate Pretty Bar Attribution URL:"
310
  msgstr ""
311
 
312
- #: pro/pretty-link-pro.php:1677
313
  msgid "End-Point URL:"
314
  msgstr ""
315
 
316
- #: pro/pretty-link-pro.php:1678
317
  msgid "This can be used to integrate with your twitter client."
318
  msgstr ""
319
 
320
- #: pro/pretty-link-pro.php:1681
321
  msgid "Show TweetDeck Integration Instructions"
322
  msgstr ""
323
 
324
- #: pro/pretty-link-pro.php:1683 pro/pretty-link-pro.php:1689
325
  msgid "Follow the"
326
  msgstr ""
327
 
328
- #: pro/pretty-link-pro.php:1683
329
  msgid "TweetDeck Custom URL Instructions"
330
  msgstr ""
331
 
332
- #: pro/pretty-link-pro.php:1683
333
  msgid " and add the following URL to TweetDeck"
334
  msgstr ""
335
 
336
- #: pro/pretty-link-pro.php:1687
337
  msgid "Show Twitter for iPhone Integration Instructions"
338
  msgstr ""
339
 
340
- #: pro/pretty-link-pro.php:1689
341
  msgid "Twitter for iPhone Custom URL Instructions"
342
  msgstr ""
343
 
344
- #: pro/pretty-link-pro.php:1689
345
  msgid " and add the following URL to Twitter for iPhone"
346
  msgstr ""
347
 
348
- #: pro/pretty-link-pro.php:1699
349
  msgid "Label:"
350
  msgstr ""
351
 
352
- #: pro/pretty-link-pro.php:1704 pro/prlipro-create-public-link-widget.php:46
353
  msgid "Redirection:"
354
  msgstr ""
355
 
356
- #: pro/pretty-link-pro.php:1715 pro/prlipro-create-public-link-widget.php:57
357
  msgid "Tracking Enabled:"
358
  msgstr ""
359
 
360
- #: pro/pretty-link-pro.php:1724 pro/prlipro-create-public-link-widget.php:66
361
  msgid "Group:"
362
  msgstr ""
363
 
364
- #: pro/pretty-link-pro.php:1826 pro/pretty-link-pro.php:1866
365
  msgid "There was an error saving your Twitter account."
366
  msgstr ""
367
 
368
- #: pro/pretty-link-pro.php:1862
369
  msgid "Your Twitter Account was successfully saved."
370
  msgstr ""
371
 
372
- #: pro/pretty-link-pro.php:1880 pro/pretty-link-pro.php:1928
373
  msgid "Pretty Bar"
374
  msgstr ""
375
 
376
- #: pro/pretty-link-pro.php:1881
377
  msgid "Cloaked"
378
  msgstr ""
379
 
380
- #: pro/pretty-link-pro.php:1882 pro/pretty-link-pro.php:1930
381
  msgid "Pixel"
382
  msgstr ""
383
 
384
- #: pro/pretty-link-pro.php:1883 pro/pretty-link-pro.php:1931
385
  msgid "Meta Refresh"
386
  msgstr ""
387
 
388
- #: pro/pretty-link-pro.php:1884 pro/pretty-link-pro.php:1932
389
  msgid "Javascript"
390
  msgstr ""
391
 
392
- #: pro/pretty-link-pro.php:1929
393
  msgid "Cloak"
394
  msgstr ""
395
 
396
- #: pro/pretty-link-pro.php:1960
397
  msgid "Image URL:"
398
  msgstr ""
399
 
400
- #: pro/pretty-link-pro.php:1963
401
  msgid ""
402
  "If set, this will replace the logo image on the PrettyBar. The image that "
403
  "this URL references should be 48x48 Pixels to fit."
404
  msgstr ""
405
 
406
- #: pro/pretty-link-pro.php:1967
407
  msgid "Background Image URL:"
408
  msgstr ""
409
 
410
- #: pro/pretty-link-pro.php:1970
411
  msgid ""
412
  "If set, this will replace the background image on PrettyBar. The image that "
413
  "this URL references should be 65px tall - this image will be repeated "
414
  "horizontally across the bar."
415
  msgstr ""
416
 
417
- #: pro/pretty-link-pro.php:1974
418
  msgid "Background Color:"
419
  msgstr ""
420
 
421
- #: pro/pretty-link-pro.php:1977
422
  msgid ""
423
  "This will alter the background color of the PrettyBar if you haven't "
424
  "specified a PrettyBar background image."
425
  msgstr ""
426
 
427
- #: pro/pretty-link-pro.php:1981
428
  msgid "Text Color:"
429
  msgstr ""
430
 
431
- #: pro/pretty-link-pro.php:1984
432
  msgid ""
433
  "If not set, this defaults to black (RGB value <code>#000000</code>) but you "
434
  "can change it to whatever color you like."
435
  msgstr ""
436
 
437
- #: pro/pretty-link-pro.php:1988
438
  msgid "Link Color:"
439
  msgstr ""
440
 
441
- #: pro/pretty-link-pro.php:1991
442
  msgid ""
443
  "If not set, this defaults to blue (RGB value <code>#0000ee</code>) but you "
444
  "can change it to whatever color you like."
445
  msgstr ""
446
 
447
- #: pro/pretty-link-pro.php:1995
448
  msgid "Link Hover Color:"
449
  msgstr ""
450
 
451
- #: pro/pretty-link-pro.php:1998
452
  msgid ""
453
  "If not set, this defaults to RGB value <code>#ababab</code> but you can "
454
  "change it to whatever color you like."
455
  msgstr ""
456
 
457
- #: pro/pretty-link-pro.php:2002
458
  msgid "Visited Link Color:"
459
  msgstr ""
460
 
461
- #: pro/pretty-link-pro.php:2005
462
  msgid ""
463
  "If not set, this defaults to RGB value <code>#551a8b</code> but you can "
464
  "change it to whatever color you like."
465
  msgstr ""
466
 
467
- #: pro/pretty-link-pro.php:2009
468
  msgid "Title Char Limit*:"
469
  msgstr ""
470
 
471
- #: pro/pretty-link-pro.php:2012
472
  msgid ""
473
  "If your Website has a long title then you may need to adjust this value so "
474
  "that it will all fit on the PrettyBar. It is recommended that you keep this "
@@ -476,11 +695,11 @@ msgid ""
476
  "good across different browsers and screen resolutions."
477
  msgstr ""
478
 
479
- #: pro/pretty-link-pro.php:2016
480
  msgid "Description Char Limit*:"
481
  msgstr ""
482
 
483
- #: pro/pretty-link-pro.php:2019
484
  msgid ""
485
  "If your Website has a long Description (tagline) then you may need to adjust "
486
  "this value so that it will all fit on the PrettyBar. It is recommended that "
@@ -488,105 +707,121 @@ msgid ""
488
  "format looks good across different browsers and screen resolutions."
489
  msgstr ""
490
 
491
- #: pro/pretty-link-pro.php:2023
492
  msgid "Target URL Char Limit*:"
493
  msgstr ""
494
 
495
- #: pro/pretty-link-pro.php:2026
496
  msgid ""
497
  "If you link to a lot of large Target URLs you may want to adjust this value. "
498
  "It is recommended that you keep this value to <code>40</code> or below so "
499
  "the PrettyBar's format looks good across different browsers and URL sizes"
500
  msgstr ""
501
 
502
- #: pro/pretty-link-pro.php:2031
503
  msgid "Show Pretty Bar Title"
504
  msgstr ""
505
 
506
- #: pro/pretty-link-pro.php:2032
507
  msgid ""
508
  "Make sure this is checked if you want the title of your blog (and link) to "
509
  "show up on the PrettyBar."
510
  msgstr ""
511
 
512
- #: pro/pretty-link-pro.php:2037
513
  msgid "Show Pretty Bar Description"
514
  msgstr ""
515
 
516
- #: pro/pretty-link-pro.php:2038
517
  msgid ""
518
  "Make sure this is checked if you want your site description to show up on "
519
  "the PrettyBar."
520
  msgstr ""
521
 
522
- #: pro/pretty-link-pro.php:2043
523
  msgid "Show Pretty Bar Share Links"
524
  msgstr ""
525
 
526
- #: pro/pretty-link-pro.php:2044
527
  msgid ""
528
  "Make sure this is checked if you want \"share links\" to show up on the "
529
  "PrettyBar."
530
  msgstr ""
531
 
532
- #: pro/pretty-link-pro.php:2049
533
  msgid "Show Pretty Bar Target URL"
534
  msgstr ""
535
 
536
- #: pro/pretty-link-pro.php:2050
537
  msgid ""
538
  "Make sure this is checked if you want a link displaying the Target URL to "
539
  "show up on the PrettyBar."
540
  msgstr ""
541
 
542
- #: pro/pretty-link-pro.php:2080
543
  msgid "Logo Image URL must be a correctly formatted URL"
544
  msgstr ""
545
 
546
- #: pro/pretty-link-pro.php:2083
547
  msgid "Background Image URL must be a correctly formatted URL"
548
  msgstr ""
549
 
550
- #: pro/pretty-link-pro.php:2086
551
  msgid "PrettyBar Background Color must be an actual RGB Value"
552
  msgstr ""
553
 
554
- #: pro/pretty-link-pro.php:2089
555
  msgid "PrettyBar Text Color must be an actual RGB Value"
556
  msgstr ""
557
 
558
- #: pro/pretty-link-pro.php:2092
559
  msgid "PrettyBar Link Color must be an actual RGB Value"
560
  msgstr ""
561
 
562
- #: pro/pretty-link-pro.php:2095 pro/pretty-link-pro.php:2098
563
  msgid "PrettyBar Hover Color must be an actual RGB Value"
564
  msgstr ""
565
 
566
- #: pro/pretty-link-pro.php:2101
567
  msgid "PrettyBar Title Character Limit must not be blank"
568
  msgstr ""
569
 
570
- #: pro/pretty-link-pro.php:2104
571
  msgid "PrettyBar Description Character Limit must not be blank"
572
  msgstr ""
573
 
574
- #: pro/pretty-link-pro.php:2107
575
  msgid "PrettyBar Link Character Limit must not be blank"
576
  msgstr ""
577
 
578
- #: pro/pretty-link-pro.php:2110
579
  msgid "PrettyBar Title Character Limit must be a number"
580
  msgstr ""
581
 
582
- #: pro/pretty-link-pro.php:2113
583
  msgid "PrettyBar Description Character Limit must be a number"
584
  msgstr ""
585
 
586
- #: pro/pretty-link-pro.php:2116
587
  msgid "PrettyBar Link Character Limit must be a number"
588
  msgstr ""
589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
590
  #: pro/prlipro-create-public-link-widget.php:42
591
  msgid "Label Text:"
592
  msgstr ""
@@ -595,46 +830,193 @@ msgstr ""
595
  msgid "Button Text:"
596
  msgstr ""
597
 
598
- #: pro/classes/views/prlipro-options/form.php:34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
599
  msgid "Maximum Keywords per Page*:"
600
  msgstr ""
601
 
602
- #: pro/classes/views/prlipro-options/form.php:40
603
  msgid "Maximum Replacements per Keyword per Page*:"
604
  msgstr ""
605
 
606
- #: pro/classes/views/prlipro-options/form.php:59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
  msgid "Custom CSS Styling for your Keyword Replacements:"
608
  msgstr ""
609
 
610
- #: pro/classes/views/prlipro-options/form.php:66
611
  msgid "Custom Hover CSS Styling for your Keyword Replacements:"
612
  msgstr ""
613
 
614
- #: pro/classes/views/prlipro-options/form.php:187
615
  msgid "Twitter Account"
616
  msgstr ""
617
 
618
- #: pro/classes/views/prlipro-options/form.php:232
619
  msgid "Twitter Comments Headline:"
620
  msgstr ""
621
 
622
- #: pro/classes/views/prlipro-options/form.php:239
623
  msgid "Twitter Comments Height:"
624
  msgstr ""
625
 
626
- #: pro/classes/views/prlipro-options/form.php:252
627
  msgid "Main Tweet User:"
628
  msgstr ""
629
 
630
- #: pro/classes/views/prlipro-options/form.php:265
631
  msgid "Tweet Hash Tags:"
632
  msgstr ""
633
 
634
- #: pro/classes/views/prlipro-options/form.php:387
635
  msgid "Social Buttons Display Spacing:"
636
  msgstr ""
637
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
638
  #. Plugin Name of the plugin/theme
639
  msgid "Pretty Link Lite"
640
  msgstr ""
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.5.7\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/pretty-link\n"
7
+ "POT-Creation-Date: 2012-03-06 06:35:53+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
21
  msgid "Pretty Link Pro Successfully Uninstalled."
22
  msgstr ""
23
 
24
+ #: prli-options.php:61 pro/prlipro-options.php:195
25
  msgid "Options saved."
26
  msgstr ""
27
 
28
+ #: prli-options.php:68
29
  msgid "Hit Database was Cleared."
30
  msgstr ""
31
 
32
+ #: prli-options.php:77
33
  msgid "No hits older than 30 days were found, so nothing was deleted"
34
  msgstr ""
35
 
36
+ #: prli-options.php:86
37
  msgid "No hits older than 90 days were found, so nothing was deleted"
38
  msgstr ""
39
 
43
  "$sAutomatically Upgrade your Database%2$s"
44
  msgstr ""
45
 
46
+ #: classes/controllers/PrliAppController.php:66
47
  msgid "Your Database Has Been Successfully Upgraded."
48
  msgstr ""
49
 
50
+ #: classes/controllers/PrliLinksController.php:3
51
+ #: classes/controllers/PrliGroupsController.php:3
52
+ msgid "You are not allowed to call this page directly."
53
+ msgstr ""
54
+
55
+ #: classes/controllers/PrliLinksController.php:51
56
+ msgid "Links in Group: "
57
+ msgstr ""
58
+
59
+ #: classes/controllers/PrliLinksController.php:96
60
+ #: classes/controllers/PrliLinksController.php:119
61
+ msgid "Your Pretty Link was Successfully Created"
62
+ msgstr ""
63
+
64
+ #: classes/controllers/PrliLinksController.php:137
65
+ msgid "Your Pretty Links were Successfully Updated"
66
+ msgstr ""
67
+
68
+ #: classes/controllers/PrliLinksController.php:162
69
+ msgid "Your Pretty Link was Successfully Updated"
70
+ msgstr ""
71
+
72
+ #: classes/controllers/PrliLinksController.php:170
73
+ msgid "Your Pretty Link was Successfully Reset"
74
+ msgstr ""
75
+
76
+ #: classes/controllers/PrliLinksController.php:177
77
+ msgid "Your Pretty Link was Successfully Destroyed"
78
+ msgstr ""
79
+
80
+ #: classes/controllers/PrliGroupsController.php:17
81
+ msgid "An unknown error occurred when creating your group."
82
+ msgstr ""
83
+
84
+ #: classes/controllers/PrliGroupsController.php:26
85
+ msgid "Group Created"
86
+ msgstr ""
87
+
88
+ #: classes/controllers/PrliGroupsController.php:32
89
+ msgid "A name must be specified for your new group name"
90
+ msgstr ""
91
+
92
+ #: classes/controllers/PrliGroupsController.php:36
93
+ msgid "Cannot add group because security nonce failed"
94
+ msgstr ""
95
+
96
+ #: classes/views/prli-options/form.php:7 classes/views/prli-links/form.php:35
97
+ #: pro/classes/views/prlipro-options/form.php:7
98
+ msgid "Options"
99
+ msgstr ""
100
+
101
+ #: classes/views/prli-options/form.php:25
102
  msgid "Link Options"
103
  msgstr ""
104
 
105
+ #: classes/views/prli-options/form.php:28
106
  msgid "Link Defaults:"
107
  msgstr ""
108
 
109
+ #: classes/views/prli-options/form.php:41
110
  msgid "Default Link Redirection Type:"
111
  msgstr ""
112
 
113
+ #: classes/views/prli-options/form.php:51 classes/views/prli-links/form.php:36
114
  msgid "Advanced"
115
  msgstr ""
116
 
182
  msgid "Update Options"
183
  msgstr ""
184
 
185
+ #: classes/views/prli-options/pro-settings.php:7
186
+ msgid "Pro Account Information"
187
+ msgstr ""
188
+
189
+ #: classes/views/prli-groups/new.php:7
190
+ msgid "New Group"
191
+ msgstr ""
192
+
193
+ #: classes/views/prli-groups/list.php:9
194
+ msgid "Groups"
195
+ msgstr ""
196
+
197
+ #: classes/views/prli-groups/edit.php:7
198
+ msgid "Edit Group"
199
+ msgstr ""
200
+
201
+ #: classes/views/prli-links/new.php:7
202
+ msgid "Add Link"
203
+ msgstr ""
204
+
205
+ #: classes/views/prli-links/list.php:10
206
+ msgid "Links"
207
+ msgstr ""
208
+
209
+ #: classes/views/prli-links/list.php:105
210
  msgid "Meta Refresh Redirection"
211
  msgstr ""
212
 
213
+ #: classes/views/prli-links/list.php:108
214
  msgid "Javascript Redirection"
215
  msgstr ""
216
 
217
+ #: classes/views/prli-links/form.php:5
218
+ msgid "Redirection Type*:"
219
+ msgstr ""
220
+
221
+ #: classes/views/prli-links/form.php:8
222
  msgid "307 (Temporary)"
223
  msgstr ""
224
 
225
+ #: classes/views/prli-links/form.php:9
226
  msgid "301 (Permanent)"
227
  msgstr ""
228
 
229
+ #: classes/views/prli-links/form.php:16
230
+ msgid ""
231
+ "To Enable Cloaked, Meta-Refresh, Javascript, Pixel and Pretty Bar "
232
+ "Redirection, upgrade to %sPretty Link Pro%s"
233
+ msgstr ""
234
+
235
+ #: classes/views/prli-links/form.php:21
236
+ msgid "Target URL*:"
237
+ msgstr ""
238
+
239
+ #: classes/views/prli-links/form.php:25
240
+ msgid "Pretty Link*:"
241
+ msgstr ""
242
+
243
+ #: classes/views/prli-links/form.php:29
244
+ msgid "Title:"
245
+ msgstr ""
246
+
247
+ #: classes/views/prli-links/form.php:41
248
+ #: pro/classes/views/prli-links/form.php:62
249
+ msgid "Group"
250
+ msgstr ""
251
+
252
+ #: classes/views/prli-links/form.php:44
253
+ msgid "None"
254
+ msgstr ""
255
+
256
+ #: classes/views/prli-links/form.php:54
257
+ msgid "Add a New Group"
258
+ msgstr ""
259
+
260
+ #: classes/views/prli-links/form.php:55
261
+ msgid "Select a Group for this Link"
262
+ msgstr ""
263
+
264
+ #: classes/views/prli-links/form.php:58
265
+ msgid "SEO Options"
266
+ msgstr ""
267
+
268
+ #: classes/views/prli-links/form.php:60
269
+ msgid "'Nofollow' this Link"
270
+ msgstr ""
271
+
272
+ #: classes/views/prli-links/form.php:61
273
+ msgid "Add a nofollow and noindex to this link's http redirect header"
274
+ msgstr ""
275
+
276
+ #: classes/views/prli-links/form.php:65
277
+ msgid "Delay Redirect (Seconds):"
278
+ msgstr ""
279
+
280
+ #: classes/views/prli-links/form.php:68
281
+ msgid "Time in seconds to wait before redirecting"
282
+ msgstr ""
283
+
284
+ #: classes/views/prli-links/form.php:73
285
+ msgid "Parameter Forwarding"
286
+ msgstr ""
287
+
288
+ #: classes/views/prli-links/form.php:75
289
+ msgid "Parameter Forwarding Enabled"
290
+ msgstr ""
291
+
292
+ #: classes/views/prli-links/form.php:76
293
+ msgid "Forward parameters passed to this link onto the Target URL"
294
+ msgstr ""
295
+
296
+ #: classes/views/prli-links/form.php:78
297
+ msgid "Tracking Options"
298
+ msgstr ""
299
+
300
+ #: classes/views/prli-links/form.php:80
301
+ msgid "Track Hits on this Link"
302
+ msgstr ""
303
+
304
+ #: classes/views/prli-links/form.php:81
305
+ msgid "Enable Pretty Link's built-in hit (click) tracking"
306
+ msgstr ""
307
+
308
+ #: classes/views/prli-links/form.php:83
309
+ msgid "Enable Google Analytics Tracking on this Link"
310
+ msgstr ""
311
+
312
+ #: classes/views/prli-links/form.php:84
313
+ #: pro/classes/views/prli-links/link-options.php:3
314
+ msgid ""
315
+ "Requires the Google Analyticator, Google Analytics for WordPress or Google "
316
+ "Analytics Plugin installed and configured for this to work."
317
+ msgstr ""
318
+
319
+ #: classes/views/prli-links/form.php:90
320
+ msgid ""
321
+ "It appears that <strong>%s</strong> is currently installed. Pretty Link will "
322
+ "attempt to use its settings to track this link."
323
+ msgstr ""
324
+
325
+ #: classes/views/prli-links/form.php:94
326
+ msgid ""
327
+ "No Google Analytics Plugin is currently installed. Pretty Link cannot track "
328
+ "links using Google Analytics until one is."
329
+ msgstr ""
330
+
331
+ #: classes/views/prli-links/form.php:114
332
+ msgid ""
333
+ "To enable Double Redirection, Keyword Replacements, URL Replacements, URL "
334
+ "Rotations, Split Tests, and more, %sUpgrade to Pretty Link Pro%s today!"
335
+ msgstr ""
336
+
337
+ #: classes/views/prli-links/edit.php:7
338
+ msgid "Edit Link"
339
+ msgstr ""
340
+
341
+ #: classes/views/prli-clicks/list.php:6 pro/pretty-link-pro.php:164
342
+ msgid "Hits"
343
+ msgstr ""
344
+
345
+ #: classes/views/prli-tools/form.php:17
346
+ msgid "Tools"
347
+ msgstr ""
348
+
349
  #: classes/views/prli-tools/form.php:21
350
  msgid "Show iPhone Bookmarklet Instructions"
351
  msgstr ""
406
  msgstr ""
407
 
408
  #: classes/models/PrliUpdate.php:208
409
+ #: pro/classes/views/prlipro-options/form.php:441
410
  msgid "Save"
411
  msgstr ""
412
 
464
  msgid "There was an error fetching your Pretty Link URL"
465
  msgstr ""
466
 
467
+ #: prli-main.php:20
468
+ msgid "Pretty Link | Manage Pretty Links"
469
+ msgstr ""
470
+
471
+ #: prli-main.php:20
472
+ msgid "Pretty Link"
473
+ msgstr ""
474
+
475
+ #: prli-main.php:21
476
+ msgid "Pretty Link | Add New Link"
477
+ msgstr ""
478
+
479
+ #: prli-main.php:21
480
+ msgid "Add New Link"
481
+ msgstr ""
482
+
483
+ #: prli-main.php:355 prli-main.php:374
484
  msgid ""
485
  "Your Pretty Link Pro installation isn't quite complete yet.<br/>%1"
486
  "$sAutomatically Upgrade to Enable Pretty Link Pro%2$s"
498
  msgid "Disable Keyword Replacements on this post."
499
  msgstr ""
500
 
 
 
 
 
501
  #: pro/pretty-link-pro.php:164
502
  msgid "Uniques"
503
  msgstr ""
508
  "\" to generate."
509
  msgstr ""
510
 
511
+ #: pro/pretty-link-pro.php:265
512
  msgid "ERROR: Your Pretty Link was unable to be created"
513
  msgstr ""
514
 
515
+ #: pro/pretty-link-pro.php:268
516
  msgid "Unauthorized"
517
  msgstr ""
518
 
519
+ #: pro/pretty-link-pro.php:944
520
+ msgid "Delay Redirect must be a number"
521
+ msgstr ""
522
+
523
+ #: pro/pretty-link-pro.php:1011
524
+ msgid "This Link Has additional Target URL rotations"
525
+ msgstr ""
526
+
527
+ #: pro/pretty-link-pro.php:1589
528
  msgid "Alternate Pretty Bar Attribution URL:"
529
  msgstr ""
530
 
531
+ #: pro/pretty-link-pro.php:1682
532
  msgid "End-Point URL:"
533
  msgstr ""
534
 
535
+ #: pro/pretty-link-pro.php:1683
536
  msgid "This can be used to integrate with your twitter client."
537
  msgstr ""
538
 
539
+ #: pro/pretty-link-pro.php:1686
540
  msgid "Show TweetDeck Integration Instructions"
541
  msgstr ""
542
 
543
+ #: pro/pretty-link-pro.php:1688 pro/pretty-link-pro.php:1694
544
  msgid "Follow the"
545
  msgstr ""
546
 
547
+ #: pro/pretty-link-pro.php:1688
548
  msgid "TweetDeck Custom URL Instructions"
549
  msgstr ""
550
 
551
+ #: pro/pretty-link-pro.php:1688
552
  msgid " and add the following URL to TweetDeck"
553
  msgstr ""
554
 
555
+ #: pro/pretty-link-pro.php:1692
556
  msgid "Show Twitter for iPhone Integration Instructions"
557
  msgstr ""
558
 
559
+ #: pro/pretty-link-pro.php:1694
560
  msgid "Twitter for iPhone Custom URL Instructions"
561
  msgstr ""
562
 
563
+ #: pro/pretty-link-pro.php:1694
564
  msgid " and add the following URL to Twitter for iPhone"
565
  msgstr ""
566
 
567
+ #: pro/pretty-link-pro.php:1704
568
  msgid "Label:"
569
  msgstr ""
570
 
571
+ #: pro/pretty-link-pro.php:1709 pro/prlipro-create-public-link-widget.php:46
572
  msgid "Redirection:"
573
  msgstr ""
574
 
575
+ #: pro/pretty-link-pro.php:1720 pro/prlipro-create-public-link-widget.php:57
576
  msgid "Tracking Enabled:"
577
  msgstr ""
578
 
579
+ #: pro/pretty-link-pro.php:1729 pro/prlipro-create-public-link-widget.php:66
580
  msgid "Group:"
581
  msgstr ""
582
 
583
+ #: pro/pretty-link-pro.php:1835 pro/pretty-link-pro.php:1875
584
  msgid "There was an error saving your Twitter account."
585
  msgstr ""
586
 
587
+ #: pro/pretty-link-pro.php:1871
588
  msgid "Your Twitter Account was successfully saved."
589
  msgstr ""
590
 
591
+ #: pro/pretty-link-pro.php:1889 pro/pretty-link-pro.php:1967
592
  msgid "Pretty Bar"
593
  msgstr ""
594
 
595
+ #: pro/pretty-link-pro.php:1890
596
  msgid "Cloaked"
597
  msgstr ""
598
 
599
+ #: pro/pretty-link-pro.php:1891 pro/pretty-link-pro.php:1969
600
  msgid "Pixel"
601
  msgstr ""
602
 
603
+ #: pro/pretty-link-pro.php:1892 pro/pretty-link-pro.php:1970
604
  msgid "Meta Refresh"
605
  msgstr ""
606
 
607
+ #: pro/pretty-link-pro.php:1893 pro/pretty-link-pro.php:1971
608
  msgid "Javascript"
609
  msgstr ""
610
 
611
+ #: pro/pretty-link-pro.php:1968
612
  msgid "Cloak"
613
  msgstr ""
614
 
615
+ #: pro/pretty-link-pro.php:1999
616
  msgid "Image URL:"
617
  msgstr ""
618
 
619
+ #: pro/pretty-link-pro.php:2002
620
  msgid ""
621
  "If set, this will replace the logo image on the PrettyBar. The image that "
622
  "this URL references should be 48x48 Pixels to fit."
623
  msgstr ""
624
 
625
+ #: pro/pretty-link-pro.php:2006
626
  msgid "Background Image URL:"
627
  msgstr ""
628
 
629
+ #: pro/pretty-link-pro.php:2009
630
  msgid ""
631
  "If set, this will replace the background image on PrettyBar. The image that "
632
  "this URL references should be 65px tall - this image will be repeated "
633
  "horizontally across the bar."
634
  msgstr ""
635
 
636
+ #: pro/pretty-link-pro.php:2013
637
  msgid "Background Color:"
638
  msgstr ""
639
 
640
+ #: pro/pretty-link-pro.php:2016
641
  msgid ""
642
  "This will alter the background color of the PrettyBar if you haven't "
643
  "specified a PrettyBar background image."
644
  msgstr ""
645
 
646
+ #: pro/pretty-link-pro.php:2020
647
  msgid "Text Color:"
648
  msgstr ""
649
 
650
+ #: pro/pretty-link-pro.php:2023
651
  msgid ""
652
  "If not set, this defaults to black (RGB value <code>#000000</code>) but you "
653
  "can change it to whatever color you like."
654
  msgstr ""
655
 
656
+ #: pro/pretty-link-pro.php:2027
657
  msgid "Link Color:"
658
  msgstr ""
659
 
660
+ #: pro/pretty-link-pro.php:2030
661
  msgid ""
662
  "If not set, this defaults to blue (RGB value <code>#0000ee</code>) but you "
663
  "can change it to whatever color you like."
664
  msgstr ""
665
 
666
+ #: pro/pretty-link-pro.php:2034
667
  msgid "Link Hover Color:"
668
  msgstr ""
669
 
670
+ #: pro/pretty-link-pro.php:2037
671
  msgid ""
672
  "If not set, this defaults to RGB value <code>#ababab</code> but you can "
673
  "change it to whatever color you like."
674
  msgstr ""
675
 
676
+ #: pro/pretty-link-pro.php:2041
677
  msgid "Visited Link Color:"
678
  msgstr ""
679
 
680
+ #: pro/pretty-link-pro.php:2044
681
  msgid ""
682
  "If not set, this defaults to RGB value <code>#551a8b</code> but you can "
683
  "change it to whatever color you like."
684
  msgstr ""
685
 
686
+ #: pro/pretty-link-pro.php:2048
687
  msgid "Title Char Limit*:"
688
  msgstr ""
689
 
690
+ #: pro/pretty-link-pro.php:2051
691
  msgid ""
692
  "If your Website has a long title then you may need to adjust this value so "
693
  "that it will all fit on the PrettyBar. It is recommended that you keep this "
695
  "good across different browsers and screen resolutions."
696
  msgstr ""
697
 
698
+ #: pro/pretty-link-pro.php:2055
699
  msgid "Description Char Limit*:"
700
  msgstr ""
701
 
702
+ #: pro/pretty-link-pro.php:2058
703
  msgid ""
704
  "If your Website has a long Description (tagline) then you may need to adjust "
705
  "this value so that it will all fit on the PrettyBar. It is recommended that "
707
  "format looks good across different browsers and screen resolutions."
708
  msgstr ""
709
 
710
+ #: pro/pretty-link-pro.php:2062
711
  msgid "Target URL Char Limit*:"
712
  msgstr ""
713
 
714
+ #: pro/pretty-link-pro.php:2065
715
  msgid ""
716
  "If you link to a lot of large Target URLs you may want to adjust this value. "
717
  "It is recommended that you keep this value to <code>40</code> or below so "
718
  "the PrettyBar's format looks good across different browsers and URL sizes"
719
  msgstr ""
720
 
721
+ #: pro/pretty-link-pro.php:2070
722
  msgid "Show Pretty Bar Title"
723
  msgstr ""
724
 
725
+ #: pro/pretty-link-pro.php:2071
726
  msgid ""
727
  "Make sure this is checked if you want the title of your blog (and link) to "
728
  "show up on the PrettyBar."
729
  msgstr ""
730
 
731
+ #: pro/pretty-link-pro.php:2076
732
  msgid "Show Pretty Bar Description"
733
  msgstr ""
734
 
735
+ #: pro/pretty-link-pro.php:2077
736
  msgid ""
737
  "Make sure this is checked if you want your site description to show up on "
738
  "the PrettyBar."
739
  msgstr ""
740
 
741
+ #: pro/pretty-link-pro.php:2082
742
  msgid "Show Pretty Bar Share Links"
743
  msgstr ""
744
 
745
+ #: pro/pretty-link-pro.php:2083
746
  msgid ""
747
  "Make sure this is checked if you want \"share links\" to show up on the "
748
  "PrettyBar."
749
  msgstr ""
750
 
751
+ #: pro/pretty-link-pro.php:2088
752
  msgid "Show Pretty Bar Target URL"
753
  msgstr ""
754
 
755
+ #: pro/pretty-link-pro.php:2089
756
  msgid ""
757
  "Make sure this is checked if you want a link displaying the Target URL to "
758
  "show up on the PrettyBar."
759
  msgstr ""
760
 
761
+ #: pro/pretty-link-pro.php:2119
762
  msgid "Logo Image URL must be a correctly formatted URL"
763
  msgstr ""
764
 
765
+ #: pro/pretty-link-pro.php:2122
766
  msgid "Background Image URL must be a correctly formatted URL"
767
  msgstr ""
768
 
769
+ #: pro/pretty-link-pro.php:2125
770
  msgid "PrettyBar Background Color must be an actual RGB Value"
771
  msgstr ""
772
 
773
+ #: pro/pretty-link-pro.php:2128
774
  msgid "PrettyBar Text Color must be an actual RGB Value"
775
  msgstr ""
776
 
777
+ #: pro/pretty-link-pro.php:2131
778
  msgid "PrettyBar Link Color must be an actual RGB Value"
779
  msgstr ""
780
 
781
+ #: pro/pretty-link-pro.php:2134 pro/pretty-link-pro.php:2137
782
  msgid "PrettyBar Hover Color must be an actual RGB Value"
783
  msgstr ""
784
 
785
+ #: pro/pretty-link-pro.php:2140
786
  msgid "PrettyBar Title Character Limit must not be blank"
787
  msgstr ""
788
 
789
+ #: pro/pretty-link-pro.php:2143
790
  msgid "PrettyBar Description Character Limit must not be blank"
791
  msgstr ""
792
 
793
+ #: pro/pretty-link-pro.php:2146
794
  msgid "PrettyBar Link Character Limit must not be blank"
795
  msgstr ""
796
 
797
+ #: pro/pretty-link-pro.php:2149
798
  msgid "PrettyBar Title Character Limit must be a number"
799
  msgstr ""
800
 
801
+ #: pro/pretty-link-pro.php:2152
802
  msgid "PrettyBar Description Character Limit must be a number"
803
  msgstr ""
804
 
805
+ #: pro/pretty-link-pro.php:2155
806
  msgid "PrettyBar Link Character Limit must be a number"
807
  msgstr ""
808
 
809
+ #: pro/pretty-link-pro.php:2278
810
+ msgid "You are unauthorized to view this resource"
811
+ msgstr ""
812
+
813
+ #: pro/pretty-link-pro.php:2308
814
+ msgid "View QR Code for this link: %s"
815
+ msgstr ""
816
+
817
+ #: pro/pretty-link-pro.php:2316
818
+ msgid "Download QR Code for this link: %s"
819
+ msgstr ""
820
+
821
+ #: pro/pretty-link-pro.php:2410
822
+ msgid "Double Redirection Enabled"
823
+ msgstr ""
824
+
825
  #: pro/prlipro-create-public-link-widget.php:42
826
  msgid "Label Text:"
827
  msgstr ""
830
  msgid "Button Text:"
831
  msgstr ""
832
 
833
+ #: pro/classes/views/prli-links/form.php:7
834
+ msgid "Double Redirect:"
835
+ msgstr ""
836
+
837
+ #: pro/classes/views/prli-links/form.php:11
838
+ msgid "Use a double redirect to erase all referrer information"
839
+ msgstr ""
840
+
841
+ #: pro/classes/views/prli-links/form.php:18
842
+ msgid "Keywords:"
843
+ msgstr ""
844
+
845
+ #: pro/classes/views/prli-links/form.php:21
846
+ msgid ""
847
+ "Enter a comma separated list of keywords / keyword phrases that you'd like "
848
+ "to replace with this link in your Posts &amp; Pages."
849
+ msgstr ""
850
+
851
+ #: pro/classes/views/prli-links/form.php:24
852
+ msgid "URL Replacements:"
853
+ msgstr ""
854
+
855
+ #: pro/classes/views/prli-links/form.php:27
856
+ msgid ""
857
+ "Enter a comma separated list of the URLs that you'd like to replace with "
858
+ "this Pretty Link in your Posts &amp; Pages. These must be formatted as URLs "
859
+ "for example: <code>http://example.com</code> or <code>http://example.com?"
860
+ "product_id=53</code>"
861
+ msgstr ""
862
+
863
+ #: pro/classes/views/prli-links/form.php:32
864
+ msgid "Target URL Rotations:"
865
+ msgstr ""
866
+
867
+ #: pro/classes/views/prli-links/form.php:34
868
+ msgid ""
869
+ "Enter the Target URLs that you'd like to rotate through when this Pretty "
870
+ "Link is Clicked. These must be formatted as URLs example: <code>http://"
871
+ "example.com</code> or <code>http://example.com?product_id=53</code>"
872
+ msgstr ""
873
+
874
+ #: pro/classes/views/prli-links/form.php:50
875
+ msgid "Split Test This Link"
876
+ msgstr ""
877
+
878
+ #: pro/classes/views/prli-links/form.php:51
879
+ msgid ""
880
+ "This works best when you have multiple link rotation URLs entered -- that's "
881
+ "the whole point of split testing ..."
882
+ msgstr ""
883
+
884
+ #: pro/classes/views/prli-links/form.php:57
885
+ msgid "Split Test Goal Link:"
886
+ msgstr ""
887
+
888
+ #: pro/classes/views/prli-links/form.php:61
889
+ msgid "Name"
890
+ msgstr ""
891
+
892
+ #: pro/classes/views/prli-links/form.php:77
893
+ msgid "This is the goal link for your split test."
894
+ msgstr ""
895
+
896
+ #: pro/classes/views/prli-links/link-options.php:2
897
+ msgid "Enable Google Analytics"
898
+ msgstr ""
899
+
900
+ #: pro/classes/views/prli-links/link-options.php:6
901
+ msgid "Generate Downloadable %sQR Codes%s for Pretty Links"
902
+ msgstr ""
903
+
904
+ #: pro/classes/views/prli-links/link-options.php:7
905
+ msgid ""
906
+ "This will enable a link in your pretty link admin that will allow you to "
907
+ "automatically download a %sQR Code%s for each individual Pretty Link."
908
+ msgstr ""
909
+
910
+ #: pro/classes/views/prli-links/bulk-edit.php:7
911
+ msgid "Bulk Edit Links"
912
+ msgstr ""
913
+
914
+ #: pro/classes/views/prlipro-import-export/form.php:7
915
+ msgid "Import / Export Links"
916
+ msgstr ""
917
+
918
+ #: pro/classes/views/prlipro-import-export/import.php:7
919
+ msgid "Import Results"
920
+ msgstr ""
921
+
922
+ #: pro/classes/views/prlipro-options/form.php:33
923
  msgid "Maximum Keywords per Page*:"
924
  msgstr ""
925
 
926
+ #: pro/classes/views/prlipro-options/form.php:39
927
  msgid "Maximum Replacements per Keyword per Page*:"
928
  msgstr ""
929
 
930
+ #: pro/classes/views/prlipro-options/form.php:48
931
+ msgid "Open Keyword Pretty Links in a new Window"
932
+ msgstr ""
933
+
934
+ #: pro/classes/views/prlipro-options/form.php:49
935
+ msgid ""
936
+ "Ensure that these keyword replacement links are opened in a separate window. "
937
+ "<strong>Note:</strong> This does not apply to url replacements--only keyword "
938
+ "replacements."
939
+ msgstr ""
940
+
941
+ #: pro/classes/views/prlipro-options/form.php:52
942
+ msgid "Add the html nofollow attribute to all Keyword Pretty Links"
943
+ msgstr ""
944
+
945
+ #: pro/classes/views/prlipro-options/form.php:53
946
+ msgid ""
947
+ "This adds the html <code>NOFOLLOW</code> attribute to all keyword "
948
+ "replacement links. <strong>Note:</strong> This does not apply to url "
949
+ "replacements--only keyword replacements."
950
+ msgstr ""
951
+
952
+ #: pro/classes/views/prlipro-options/form.php:58
953
  msgid "Custom CSS Styling for your Keyword Replacements:"
954
  msgstr ""
955
 
956
+ #: pro/classes/views/prlipro-options/form.php:65
957
  msgid "Custom Hover CSS Styling for your Keyword Replacements:"
958
  msgstr ""
959
 
960
+ #: pro/classes/views/prlipro-options/form.php:186
961
  msgid "Twitter Account"
962
  msgstr ""
963
 
964
+ #: pro/classes/views/prlipro-options/form.php:231
965
  msgid "Twitter Comments Headline:"
966
  msgstr ""
967
 
968
+ #: pro/classes/views/prlipro-options/form.php:238
969
  msgid "Twitter Comments Height:"
970
  msgstr ""
971
 
972
+ #: pro/classes/views/prlipro-options/form.php:251
973
  msgid "Main Tweet User:"
974
  msgstr ""
975
 
976
+ #: pro/classes/views/prlipro-options/form.php:264
977
  msgid "Tweet Hash Tags:"
978
  msgstr ""
979
 
980
+ #: pro/classes/views/prlipro-options/form.php:386
981
  msgid "Social Buttons Display Spacing:"
982
  msgstr ""
983
 
984
+ #: pro/classes/views/prli-reports/new.php:7
985
+ msgid "Add Link Report"
986
+ msgstr ""
987
+
988
+ #: pro/classes/views/prli-reports/list.php:7
989
+ msgid "Link Reports"
990
+ msgstr ""
991
+
992
+ #: pro/classes/views/prli-reports/reports.php:7
993
+ msgid "Reports"
994
+ msgstr ""
995
+
996
+ #: pro/classes/views/prli-reports/custom-report.php:7
997
+ msgid "Link Report"
998
+ msgstr ""
999
+
1000
+ #: pro/classes/views/prli-reports/split-test-report.php:7
1001
+ msgid "Link Split-Test Report"
1002
+ msgstr ""
1003
+
1004
+ #: pro/classes/views/prli-reports/edit.php:7
1005
+ msgid "Edit Link Report"
1006
+ msgstr ""
1007
+
1008
+ #: pro/classes/models/PrliProUtils.php:272
1009
+ msgid "Google Analyticator"
1010
+ msgstr ""
1011
+
1012
+ #: pro/classes/models/PrliProUtils.php:274
1013
+ msgid "Google Analytics for WordPress"
1014
+ msgstr ""
1015
+
1016
+ #: pro/classes/models/PrliProUtils.php:276
1017
+ msgid "Google Analytics"
1018
+ msgstr ""
1019
+
1020
  #. Plugin Name of the plugin/theme
1021
  msgid "Pretty Link Lite"
1022
  msgstr ""
images/prettylink_logo_64.jpg ADDED
Binary file
images/url_icon.gif CHANGED
Binary file
js/prli-admin-links.js ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ function prli_toggle_link_options() {
2
+ if(jQuery('#redirect_type').val() == 'metarefresh' || jQuery('#redirect_type').val() == 'javascript') {
3
+ jQuery('#prli_time_delay').show();
4
+ }
5
+ else {
6
+ jQuery('#prli_time_delay').hide();
7
+ }
8
+
9
+ if(jQuery('#redirect_type').val() != '307' && jQuery('#redirect_type').val() != '301' && jQuery('#redirect_type').val() != 'pixel') {
10
+ jQuery('#prli_google_analytics').show();
11
+ }
12
+ else {
13
+ jQuery('#prli_google_analytics').hide();
14
+ }
15
+
16
+ if(jQuery('#redirect_type').val() == 'pixel') {
17
+ jQuery('#prli_target_url').hide();
18
+ }
19
+ else {
20
+ jQuery('#prli_target_url').show();
21
+ }
22
+
23
+ if(jQuery('.prlipro-enable-split-test').prop('checked')) {
24
+ jQuery('.prlipro-split-test-goal-link').show();
25
+ }
26
+ else {
27
+ jQuery('.prlipro-split-test-goal-link').hide();
28
+ }
29
+ }
30
+
31
+ jQuery(document).ready(function() {
32
+
33
+ prli_toggle_link_options();
34
+
35
+ jQuery('#redirect_type').change(function() {
36
+ prli_toggle_link_options();
37
+ });
38
+
39
+ jQuery('#param_forwarding').click(function() {
40
+ prli_toggle_link_options();
41
+ });
42
+
43
+ jQuery('.prlipro-enable-split-test').click(function() {
44
+ prli_toggle_link_options();
45
+ });
46
+
47
+ // tab swapping
48
+ jQuery('.nav-tab').click(function() {
49
+
50
+ // tab is already active. don't do anything
51
+ if( jQuery(this).hasClass( 'nav-tab-active' ) )
52
+ return false;
53
+
54
+ jQuery('.nav-tab-active').removeClass( 'nav-tab-active' );
55
+ jQuery(this).addClass( 'nav-tab-active' );
56
+
57
+ if( jQuery(this).attr( 'href' ) == '#options-table' ) {
58
+ jQuery('#options-table').show();
59
+ jQuery('#pro-options-table').hide();
60
+ } else {
61
+ jQuery('#options-table').hide();
62
+ jQuery('#pro-options-table').show();
63
+ }
64
+
65
+ return false;
66
+ });
67
+
68
+ jQuery("#add_group_textbox").keypress(function(e) {
69
+ // Apparently 13 is the enter key
70
+ if(e.which == 13) {
71
+ e.preventDefault();
72
+
73
+ var add_new_group_data = {
74
+ action: 'add_new_prli_group',
75
+ new_group_name: jQuery('#add_group_textbox').val(),
76
+ _prli_nonce: jQuery('#add_group_textbox').attr('prli_nonce')
77
+ };
78
+
79
+ jQuery.post(ajaxurl, add_new_group_data, function(data) {
80
+ if(data['status']=='success') {
81
+ jQuery('#group_dropdown').append(data['group_option']);
82
+ jQuery('#group_dropdown').val(data['group_id']);
83
+ jQuery('#add_group_textbox').val('');
84
+ jQuery("#add_group_textbox").blur();
85
+ jQuery("#add_group_message").addClass('updated');
86
+ jQuery("#add_group_message").text(data['message']);
87
+ jQuery("#add_group_message").show();
88
+
89
+ jQuery("#add_group_message").fadeOut(5000, function(e) {
90
+ jQuery("#add_group_message").removeClass('updated');
91
+ });
92
+ }
93
+ else {
94
+ jQuery("#add_group_message").addClass('error');
95
+ jQuery("#add_group_message").text(data['message']);
96
+
97
+ jQuery("#add_group_message").fadeOut(5000, function(e) {
98
+ jQuery("#add_group_message").removeClass('error');
99
+ });
100
+ }
101
+ });
102
+ }
103
+ });
104
+
105
+ jQuery(".defaultText").focus(function(srcc)
106
+ {
107
+ if (jQuery(this).val() == jQuery(this)[0].title)
108
+ {
109
+ jQuery(this).removeClass("defaultTextActive");
110
+ jQuery(this).val("");
111
+ }
112
+ });
113
+
114
+ jQuery(".defaultText").blur(function()
115
+ {
116
+ if (jQuery(this).val() == "")
117
+ {
118
+ jQuery(this).addClass("defaultTextActive");
119
+ jQuery(this).val(jQuery(this)[0].title);
120
+ }
121
+ });
122
+
123
+ jQuery(".defaultText").blur();
124
+
125
+ jQuery(".link_row").hover( function() {
126
+ jQuery(this).find(".link_actions").show();
127
+ },
128
+ function() {
129
+ jQuery(this).find(".link_actions").hide();
130
+ });
131
+
132
+ });
pretty-link.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Pretty Link Lite
4
  Plugin URI: http://blairwilliams.com/pretty-link
5
  Description: Shrink, track and share any URL on the Internet from your WordPress website!
6
- Version: 1.5.6
7
  Author: Caseproof
8
  Author URI: http://caseproof.com
9
  Copyright: 2004-2012, Caseproof, LLC
3
  Plugin Name: Pretty Link Lite
4
  Plugin URI: http://blairwilliams.com/pretty-link
5
  Description: Shrink, track and share any URL on the Internet from your WordPress website!
6
+ Version: 1.5.8
7
  Author: Caseproof
8
  Author URI: http://caseproof.com
9
  Copyright: 2004-2012, Caseproof, LLC
prli-config.php CHANGED
@@ -5,10 +5,13 @@ if(!defined('ABSPATH'))
5
  define('PRLI_PLUGIN_NAME',dirname(plugin_basename(__FILE__)));
6
  define('PRLI_PATH',WP_PLUGIN_DIR.'/'.PRLI_PLUGIN_NAME);
7
  define('PRLI_MODELS_PATH',PRLI_PATH.'/classes/models');
 
8
  define('PRLI_CONTROLLERS_PATH',PRLI_PATH.'/classes/controllers');
9
  define('PRLI_VIEWS_PATH',PRLI_PATH.'/classes/views');
10
  //define(PRLI_URL,WP_PLUGIN_URL.'/'.PRLI_PLUGIN_NAME);
11
  define('PRLI_URL',plugins_url($path = '/'.PRLI_PLUGIN_NAME));
 
 
12
  define('PRLI_IMAGES_URL',PRLI_URL . '/images');
13
  define('PRLI_BROWSER_URL','https://d14715w921jdje.cloudfront.net/browser');
14
  define('PRLI_OS_URL','https://d14715w921jdje.cloudfront.net/os');
@@ -40,23 +43,7 @@ $prli_blogdescription = get_option('blogdescription');
40
 
41
  /***** SETUP OPTIONS OBJECT *****/
42
  global $prli_options;
43
-
44
- $prli_options = get_option('prli_options');
45
-
46
- // If unserializing didn't work
47
- if(!is_object($prli_options))
48
- {
49
- if($prli_options and is_string($prli_options))
50
- $prli_options = unserialize($prli_options);
51
-
52
- // If it still isn't an object then let's create it
53
- if(!is_object($prli_options))
54
- $prli_options = new PrliOptions();
55
-
56
- update_option('prli_options',$prli_options);
57
- }
58
-
59
- $prli_options->set_default_options(); // Sets defaults for unset options
60
 
61
  /***** TODO: Uh... these functions should find a better home somewhere *****/
62
  function setup_new_vars($groups)
@@ -80,9 +67,9 @@ function setup_new_vars($groups)
80
  $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"':'');
81
  $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"':'');
82
  $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"':'');
83
-
84
  $values['groups'] = array();
85
-
86
  if(is_array($groups))
87
  {
88
  foreach($groups as $group)
@@ -92,18 +79,33 @@ function setup_new_vars($groups)
92
  'name' => $group->name );
93
  }
94
  }
95
-
96
- $values['param_forwarding'] = array();
97
- $values['param_forwarding']['off'] = (((isset($_REQUEST['param_forwarding']) and $_REQUEST['param_forwarding'] == 'off') or !isset($_REQUEST['param_forwarding']))?'checked="true"':'');
98
- $values['param_forwarding']['on'] = ((isset($_REQUEST['param_forwarding']) and $_REQUEST['param_forwarding'] == 'on')?'checked="true"':'');
99
- $values['param_forwarding']['custom'] = ((isset($_REQUEST['param_forwarding']) and $_REQUEST['param_forwarding'] == 'custom')?'checked="true"':'');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
 
101
  return $values;
102
  }
103
 
104
  function setup_edit_vars($groups,$record)
105
  {
106
- global $prli_link;
107
 
108
  $values = array();
109
  $values['url'] = ((isset($_REQUEST['url']) and $record == null)?$_REQUEST['url']:$record->url);
@@ -121,11 +123,7 @@ function setup_edit_vars($groups,$record)
121
  'name' => $group->name );
122
  }
123
 
124
- $values['param_forwarding'] = array();
125
- $values['param_forwarding']['off'] = ((!isset($_REQUEST['param_forwarding']) or $record->param_forwarding == 'off')?'checked="true"':'');
126
- $values['param_forwarding']['on'] = (((isset($_REQUEST['param_forwarding']) and $_REQUEST['param_forwarding'] == 'on') or (isset($record->param_forwarding) and $record->param_forwarding == 'on'))?'checked="true"':'');
127
- $values['param_forwarding']['custom'] = (((isset($_REQUEST['param_forwarding']) and $_REQUEST['param_forwarding'] == 'custom') or (isset($record->param_forwarding) and $record->param_forwarding == 'custom'))?'checked="true"':'');
128
- $values['param_struct'] = ((isset($_REQUEST['param_struct']) and $record == null)?$_REQUEST['param_struct']:$record->param_struct);
129
 
130
  $values['redirect_type'] = array();
131
  $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"':'');
@@ -136,5 +134,16 @@ function setup_edit_vars($groups,$record)
136
  $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"':'');
137
  $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"':'');
138
 
 
 
 
 
 
 
 
 
 
 
 
139
  return $values;
140
- }
5
  define('PRLI_PLUGIN_NAME',dirname(plugin_basename(__FILE__)));
6
  define('PRLI_PATH',WP_PLUGIN_DIR.'/'.PRLI_PLUGIN_NAME);
7
  define('PRLI_MODELS_PATH',PRLI_PATH.'/classes/models');
8
+ define('PRLI_HELPERS_PATH',PRLI_PATH.'/classes/helpers');
9
  define('PRLI_CONTROLLERS_PATH',PRLI_PATH.'/classes/controllers');
10
  define('PRLI_VIEWS_PATH',PRLI_PATH.'/classes/views');
11
  //define(PRLI_URL,WP_PLUGIN_URL.'/'.PRLI_PLUGIN_NAME);
12
  define('PRLI_URL',plugins_url($path = '/'.PRLI_PLUGIN_NAME));
13
+ define('PRLI_CSS_URL',PRLI_URL . '/css');
14
+ define('PRLI_JS_URL',PRLI_URL . '/js');
15
  define('PRLI_IMAGES_URL',PRLI_URL . '/images');
16
  define('PRLI_BROWSER_URL','https://d14715w921jdje.cloudfront.net/browser');
17
  define('PRLI_OS_URL','https://d14715w921jdje.cloudfront.net/os');
43
 
44
  /***** SETUP OPTIONS OBJECT *****/
45
  global $prli_options;
46
+ $prli_options = PrliOptions::get_options();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
  /***** TODO: Uh... these functions should find a better home somewhere *****/
49
  function setup_new_vars($groups)
67
  $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"':'');
68
  $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"':'');
69
  $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"':'');
70
+
71
  $values['groups'] = array();
72
+
73
  if(is_array($groups))
74
  {
75
  foreach($groups as $group)
79
  'name' => $group->name );
80
  }
81
  }
82
+
83
+ $values['param_forwarding'] = isset($_REQUEST['param_forwarding'])?'checked=checked':'';
84
+
85
+ if(isset($_REQUEST['delay']))
86
+ $values['delay'] = $_REQUEST['delay'];
87
+ else
88
+ $values['delay'] = 0;
89
+
90
+ if(isset($_REQUEST['google_tracking']))
91
+ $values['google_tracking'] = ' checked=checked';
92
+ else {
93
+ global $prli_update;
94
+ if( $prli_update->pro_is_installed_and_authorized() ) {
95
+ global $prlipro_options;
96
+
97
+ $values['google_tracking'] = $prlipro_options->google_tracking?' checked=checked':'';
98
+ }
99
+ else
100
+ $values['google_tracking'] = '';
101
+ }
102
 
103
  return $values;
104
  }
105
 
106
  function setup_edit_vars($groups,$record)
107
  {
108
+ global $prli_link, $prli_link_meta;
109
 
110
  $values = array();
111
  $values['url'] = ((isset($_REQUEST['url']) and $record == null)?$_REQUEST['url']:$record->url);
123
  'name' => $group->name );
124
  }
125
 
126
+ $values['param_forwarding'] = ((isset($_REQUEST['param_forwarding']) or $record->param_forwarding == 'on' or $record->param_forwarding == 1)?'checked=checked':'');
 
 
 
 
127
 
128
  $values['redirect_type'] = array();
129
  $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"':'');
134
  $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"':'');
135
  $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"':'');
136
 
137
+
138
+ if(isset($_REQUEST['delay']))
139
+ $values['delay'] = $_REQUEST['delay'];
140
+ else
141
+ $values['delay'] = $prli_link_meta->get_link_meta($record->id, 'delay', true);
142
+
143
+ if(isset($_REQUEST['google_tracking']))
144
+ $values['google_tracking'] = ' checked=checked';
145
+ else
146
+ $values['google_tracking'] = (($prli_link_meta->get_link_meta($record->id, 'google_tracking', true) == 1)?' checked=checked':'');
147
+
148
  return $values;
149
+ }
prli-main.php CHANGED
@@ -11,24 +11,31 @@ add_action('admin_menu', 'prli_menu');
11
 
12
  function prli_menu()
13
  {
14
- global $prli_options;
15
 
16
- add_menu_page('Pretty Link', 'Pretty Link', 'administrator', PRLI_PATH.'/prli-links.php','',PRLI_IMAGES_URL.'/pretty-link-small.png');
17
- add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Add New Link', 'Add New Link', 'administrator', PRLI_PATH.'/prli-add-link.php');
18
- add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Groups', 'Groups', 'administrator', PRLI_PATH.'/prli-groups.php');
 
 
 
 
19
 
20
  if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking != "count" )
21
- add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Hits', 'Hits', 'administrator', PRLI_PATH.'/prli-clicks.php');
22
 
23
- add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Tools', 'Tools', 'administrator', PRLI_PATH.'/prli-tools.php');
24
- add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Options', 'Options', 'administrator', PRLI_PATH.'/prli-options.php');
25
- add_submenu_page(PRLI_PATH.'/prli-links.php', 'Pretty Link | Pretty Link Pro', 'Pretty Link Pro', 'administrator', PRLI_PATH.'/prli-pro-settings.php');
26
 
27
  add_action('admin_head-pretty-link/prli-clicks.php', 'prli_reports_admin_header');
28
- add_action('admin_head-pretty-link/prli-links.php', 'prli_links_admin_header');
29
- add_action('admin_head-pretty-link/prli-add-link.php', 'prli_links_admin_header');
30
  add_action('admin_head-pretty-link/prli-groups.php', 'prli_groups_admin_header');
31
  add_action('admin_head-pretty-link/prli-options.php', 'prli_options_admin_header');
 
 
 
32
  }
33
 
34
  /* Add header to prli-options page */
@@ -75,13 +82,6 @@ function prli_reports_admin_header()
75
  }
76
  }
77
 
78
- /* Add header to the prli-links page */
79
- function prli_links_admin_header()
80
- {
81
- global $prli_siteurl;
82
- require_once 'classes/views/prli-links/head.php';
83
- }
84
-
85
  /* Add header to the prli-links page */
86
  function prli_groups_admin_header()
87
  {
@@ -328,15 +328,8 @@ function prli_install()
328
  $prli_utils->clear_unknown_post_metas();
329
 
330
  /***** SAVE OPTIONS *****/
331
- $prli_options = get_option('prli_options');
332
-
333
- // If unserializing didn't work
334
- if(!$prli_options)
335
- $prli_options = new PrliOptions();
336
- else
337
- $prli_options->set_default_options(); // Sets defaults for unset options
338
-
339
- update_option('prli_options',$prli_options);
340
 
341
  /***** SAVE DB VERSION *****/
342
  update_option('prli_db_version',$prli_db_version);
@@ -381,4 +374,4 @@ function prli_pro_get_started_headline()
381
  <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>
382
  <?php
383
  }
384
- }
11
 
12
  function prli_menu()
13
  {
14
+ global $prli_options, $prlipro_options;
15
 
16
+ $role = 'administrator';
17
+ if(isset($prlipro_options->min_role))
18
+ $role = $prlipro_options->min_role;
19
+
20
+ $prli_menu_hook = add_menu_page( __('Pretty Link | Manage Pretty Links', 'pretty-link'), __('Pretty Link', 'pretty-link'), $role, 'pretty-link', 'PrliLinksController::route', PRLI_IMAGES_URL.'/pretty-link-small.png' );
21
+ $prli_add_links_menu_hook = add_submenu_page( 'pretty-link', __('Pretty Link | Add New Link', 'pretty-link'), __('Add New Link', 'pretty-link'), $role, 'add-new-pretty-link', 'PrliLinksController::new_link' );
22
+ add_submenu_page('pretty-link', 'Pretty Link | Groups', 'Groups', $role, PRLI_PATH.'/prli-groups.php');
23
 
24
  if( isset($prli_options->extended_tracking) and $prli_options->extended_tracking != "count" )
25
+ add_submenu_page('pretty-link', 'Pretty Link | Hits', 'Hits', $role, PRLI_PATH.'/prli-clicks.php');
26
 
27
+ add_submenu_page('pretty-link', 'Pretty Link | Tools', 'Tools', $role, PRLI_PATH.'/prli-tools.php');
28
+ add_submenu_page('pretty-link', 'Pretty Link | Options', 'Options', $role, PRLI_PATH.'/prli-options.php');
29
+ add_submenu_page('pretty-link', 'Pretty Link | Pretty Link Pro', 'Pretty Link Pro', $role, PRLI_PATH.'/prli-pro-settings.php');
30
 
31
  add_action('admin_head-pretty-link/prli-clicks.php', 'prli_reports_admin_header');
32
+ add_action('admin_print_scripts-' . $prli_menu_hook, 'PrliLinksController::load_scripts');
33
+ add_action('admin_print_scripts-' . $prli_add_links_menu_hook, 'PrliLinksController::load_scripts');
34
  add_action('admin_head-pretty-link/prli-groups.php', 'prli_groups_admin_header');
35
  add_action('admin_head-pretty-link/prli-options.php', 'prli_options_admin_header');
36
+
37
+ add_action('admin_print_styles-' . $prli_menu_hook, 'PrliLinksController::load_styles');
38
+ add_action('admin_print_styles-' . $prli_add_links_menu_hook, 'PrliLinksController::load_styles');
39
  }
40
 
41
  /* Add header to prli-options page */
82
  }
83
  }
84
 
 
 
 
 
 
 
 
85
  /* Add header to the prli-links page */
86
  function prli_groups_admin_header()
87
  {
328
  $prli_utils->clear_unknown_post_metas();
329
 
330
  /***** SAVE OPTIONS *****/
331
+ $prli_options = PrliOptions::get_options();
332
+ $prli_options->store();
 
 
 
 
 
 
 
333
 
334
  /***** SAVE DB VERSION *****/
335
  update_option('prli_db_version',$prli_db_version);
374
  <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>
375
  <?php
376
  }
377
+ }
prli-options.php CHANGED
@@ -53,7 +53,8 @@ if( isset($_REQUEST[ $hidden_field_name ]) and $_REQUEST[ $hidden_field_name ] =
53
  else
54
  {
55
  // Save the posted value in the database
56
- update_option( 'prli_options', $prli_options );
 
57
 
58
  // Put an options updated message on the screen
59
 
@@ -92,4 +93,4 @@ if($update_message)
92
  <?php
93
  }
94
 
95
- require_once 'classes/views/prli-options/form.php';
53
  else
54
  {
55
  // Save the posted value in the database
56
+ //update_option( 'prli_options', $prli_options );
57
+ $prli_options->store();
58
 
59
  // Put an options updated message on the screen
60
 
93
  <?php
94
  }
95
 
96
+ require_once 'classes/views/prli-options/form.php';
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://prettylinkpro.com
4
  Tags: links, link, url, urls, affiliate, affiliates, pretty, marketing, redirect, forward, plugin, twitter, tweet, rewrite, shorturl, hoplink, hop, shortlink, short, shorten, click, clicks, track, tracking, tiny, tinyurl, budurl, shrinking, domain, shrink, mask, masking, cloak, cloaking, slug, slugs, admin, administration, stats, statistics, stat, statistic, email, ajax, javascript, ui, csv, download, page, post, pages, posts, shortcode, seo, automation, widget, widgets, dashboard
5
  Requires at least: 3.0
6
  Tested up to: 3.3.1
7
- Stable tag: 1.5.6
8
 
9
  Shrink, beautify, track, manage and share any URL on or off of your WordPress website. Create links that look however you want using your own domain name!
10
 
@@ -66,6 +66,23 @@ http://blairwilliams.com/w7a
66
 
67
  == Changelog ==
68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  = 1.5.6 =
70
  * Fixed a cross-site scripting vulnerability that could have affected a very small number of users
71
 
@@ -327,6 +344,9 @@ http://blairwilliams.com/w7a
327
 
328
  == Upgrade Notice ==
329
 
 
 
 
330
  = 1.5.6 =
331
  * Fixed a cross-site scripting vulnerability that could have affected a very small number of users
332
 
4
  Tags: links, link, url, urls, affiliate, affiliates, pretty, marketing, redirect, forward, plugin, twitter, tweet, rewrite, shorturl, hoplink, hop, shortlink, short, shorten, click, clicks, track, tracking, tiny, tinyurl, budurl, shrinking, domain, shrink, mask, masking, cloak, cloaking, slug, slugs, admin, administration, stats, statistics, stat, statistic, email, ajax, javascript, ui, csv, download, page, post, pages, posts, shortcode, seo, automation, widget, widgets, dashboard
5
  Requires at least: 3.0
6
  Tested up to: 3.3.1
7
+ Stable tag: 1.5.8
8
 
9
  Shrink, beautify, track, manage and share any URL on or off of your WordPress website. Create links that look however you want using your own domain name!
10
 
66
 
67
  == Changelog ==
68
 
69
+ = 1.5.8 =
70
+ * *Feature* Re-factored the add/edit link screen to be more intuitive and accurate
71
+ * *Feature* Added the ability to add a new group from the Add / Edit Link screen
72
+ * *Fix* Using uniqid() to generate visitor id for normal & extended tracking now in order to increase performance and avoid issues with mt_rand and pow
73
+ * *Fix* Replaced all code dependent on curl to now use the more versatile WP_Http
74
+ * *Fix* Altered the hits list for normal & extended tracking to use GMT time
75
+ * *Fix* Fixed some issues with Parameter Forwarding
76
+ * *Fix* Fixed the conflict with W3 Total Cache Object Caching that was causing pretty link options to not be saved when it was enabled
77
+ * *Pro Feature* Added Double Redirection for any pretty link
78
+ * *Pro Feature* Added Google Analytics support for any pretty link by integrating with the Google Analyticator, Google Analytics for WordPress and Google Analytics Plugin
79
+ * *Pro Feature* Added Delayed Redirection for any pretty links using Javascript and Meta-Refresh Redirection
80
+ * *Pro Feature* Added the ability to automatically create and download QR Codes pretty links
81
+ * *Pro Feature* Added the ability to change the minimum user admin role that can access Pretty Link
82
+ * *Pro Fix* Made some major performance enhancements to Keyword and URL Replacements
83
+ * *Pro Fix* Fixed an issue adding Twitter accounts for some users running wordpress within a subdomain
84
+ * *Pro Fix* Fixed an issue with select all links
85
+
86
  = 1.5.6 =
87
  * Fixed a cross-site scripting vulnerability that could have affected a very small number of users
88
 
344
 
345
  == Upgrade Notice ==
346
 
347
+ = 1.5.8 =
348
+ * This is a major new release that fixes numerous bugs and adds several new features for Lite and Pro users. Everyone should upgrade.
349
+
350
  = 1.5.6 =
351
  * Fixed a cross-site scripting vulnerability that could have affected a very small number of users
352