Redirection - Version 2.2.11

Version Description

  • Add Lithuanian
  • Add Belarusian
  • Add Czech
  • Fix order of redirects, thanks to Nicolas Hatier
Download this release

Release Info

Developer johnny5
Plugin Icon 128x128 Redirection
Version 2.2.11
Comparing to
See all releases

Code changes from version 2.2.10 to 2.2.11

actions/error.php CHANGED
@@ -12,14 +12,13 @@ class Error_Action extends Red_Action
12
  410 => get_status_header_desc (410)
13
  );
14
  }
15
-
16
  function process_after ()
17
  {
18
  global $wp_query;
19
  $wp_query->is_404 = true;
20
-
21
  // Page comments plugin interferes with this
22
  remove_filter ('template_redirect', 'paged_comments_alter_source', 12);
23
  }
24
  }
25
- ?>
12
  410 => get_status_header_desc (410)
13
  );
14
  }
15
+
16
  function process_after ()
17
  {
18
  global $wp_query;
19
  $wp_query->is_404 = true;
20
+
21
  // Page comments plugin interferes with this
22
  remove_filter ('template_redirect', 'paged_comments_alter_source', 12);
23
  }
24
  }
 
actions/nothing.php CHANGED
@@ -4,4 +4,3 @@ class Nothing_Action extends Red_Action
4
  {
5
  function can_perform_action () { return false; }
6
  }
7
- ?>
4
  {
5
  function can_perform_action () { return false; }
6
  }
 
actions/pass.php CHANGED
@@ -45,4 +45,3 @@ class Pass_Action extends Red_Action
45
  return true;
46
  }
47
  }
48
- ?>
45
  return true;
46
  }
47
  }
 
actions/random.php CHANGED
@@ -24,7 +24,7 @@ class Random_Action extends Red_Action
24
  {
25
  function can_change_code () { return true; }
26
  function can_perform_action () { return false; }
27
-
28
  function action_codes ()
29
  {
30
  return array
@@ -34,18 +34,16 @@ class Random_Action extends Red_Action
34
  307 => get_status_header_desc (307)
35
  );
36
  }
37
-
38
  function process_before ($code, $target)
39
  {
40
  // Pick a random WordPress page
41
  global $wpdb;
42
  $id = $wpdb->get_var ("SELECT ID FROM {$wpdb->prefix}posts WHERE post_status='publish' AND post_password='' AND post_type='post' ORDER BY RAND() LIMIT 0,1");
43
-
44
  $target = str_replace (get_bloginfo ('url'), '', get_permalink ($id));
45
-
46
  wp_redirect ($target, $code);
47
  exit ();
48
  }
49
  }
50
-
51
- ?>
24
  {
25
  function can_change_code () { return true; }
26
  function can_perform_action () { return false; }
27
+
28
  function action_codes ()
29
  {
30
  return array
34
  307 => get_status_header_desc (307)
35
  );
36
  }
37
+
38
  function process_before ($code, $target)
39
  {
40
  // Pick a random WordPress page
41
  global $wpdb;
42
  $id = $wpdb->get_var ("SELECT ID FROM {$wpdb->prefix}posts WHERE post_status='publish' AND post_password='' AND post_type='post' ORDER BY RAND() LIMIT 0,1");
43
+
44
  $target = str_replace (get_bloginfo ('url'), '', get_permalink ($id));
45
+
46
  wp_redirect ($target, $code);
47
  exit ();
48
  }
49
  }
 
 
actions/url.php CHANGED
@@ -4,7 +4,7 @@ class Url_Action extends Red_Action {
4
  function can_change_code() {
5
  return true;
6
  }
7
-
8
  function action_codes() {
9
  return array(
10
  301 => get_status_header_desc( 301 ),
@@ -12,7 +12,7 @@ class Url_Action extends Red_Action {
12
  307 => get_status_header_desc( 307 )
13
  );
14
  }
15
-
16
  function process_before( $code, $target ) {
17
  wp_redirect( $target, $code );
18
  die();
4
  function can_change_code() {
5
  return true;
6
  }
7
+
8
  function action_codes() {
9
  return array(
10
  301 => get_status_header_desc( 301 ),
12
  307 => get_status_header_desc( 307 )
13
  );
14
  }
15
+
16
  function process_before( $code, $target ) {
17
  wp_redirect( $target, $code );
18
  die();
ajax.php CHANGED
@@ -25,27 +25,27 @@ header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
25
 
26
  class RedirectionAjax extends Redirection_Plugin {
27
  var $post;
28
-
29
  function RedirectionAjax() {
30
  $this->register_plugin( 'redirection', __FILE__ );
31
 
32
  add_action( 'init', array( &$this, 'init' ) );
33
  }
34
-
35
  function init() {
36
  if ( current_user_can( 'administrator' ) ) {
37
  $this->post = stripslashes_deep( $_POST );
38
-
39
  $this->register_ajax( 'red_log_show' );
40
  $this->register_ajax( 'red_log_hide' );
41
  $this->register_ajax( 'red_log_delete' );
42
-
43
  $this->register_ajax( 'red_module_edit' );
44
  $this->register_ajax( 'red_module_load' );
45
  $this->register_ajax( 'red_module_save' );
46
  $this->register_ajax( 'red_module_reset' );
47
  $this->register_ajax( 'red_module_delete' );
48
-
49
  $this->register_ajax( 'red_group_edit' );
50
  $this->register_ajax( 'red_group_load' );
51
  $this->register_ajax( 'red_group_save' );
@@ -66,14 +66,14 @@ class RedirectionAjax extends Redirection_Plugin {
66
  $this->register_ajax( 'red_redirect_add' );
67
  }
68
  }
69
-
70
  function red_log_show() {
71
  $id = intval( $_GET['id'] );
72
-
73
  if ( check_ajax_referer( 'redirection-log_'.$id ) ) {
74
  $log = RE_Log::get_by_id( $id );
75
  $redirect = Red_Item::get_by_id( $log->redirection_id );
76
-
77
  $this->render_admin( 'log_item_details', array( 'log' => $log, 'redirect' => $redirect ) );
78
  die();
79
  }
@@ -81,7 +81,7 @@ class RedirectionAjax extends Redirection_Plugin {
81
 
82
  function red_log_hide() {
83
  $id = intval( $_GET['id'] );
84
-
85
  if ( check_ajax_referer( 'redirection-log_'.$id ) ) {
86
  $log = RE_Log::get_by_id( $id );
87
 
@@ -89,7 +89,7 @@ class RedirectionAjax extends Redirection_Plugin {
89
  die();
90
  }
91
  }
92
-
93
  function red_log_delete() {
94
  if ( check_ajax_referer( 'redirection-items' ) ) {
95
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
@@ -99,36 +99,36 @@ class RedirectionAjax extends Redirection_Plugin {
99
  }
100
  }
101
  }
102
-
103
  function red_module_edit() {
104
  $id = intval( $_GET['id'] );
105
-
106
  if ( check_ajax_referer( 'redirection-module_'.$id ) ) {
107
  $module = Red_Module::get( $id );
108
-
109
  if ( $module )
110
  $this->render_admin( 'module_edit', array( 'module' => $module ) );
111
-
112
  die();
113
  }
114
  }
115
-
116
  function red_module_load() {
117
  $id = intval( $_GET['id'] );
118
-
119
  if ( check_ajax_referer( 'redirection-module_'.$id ) ) {
120
  $module = Red_Module::get ($id);
121
  if ($module) {
122
  global $redirection;
123
  $options = $redirection->get_options();
124
-
125
  $this->render_admin( 'module_item', array( 'module' => $module, 'token' => $options['token'] ) );
126
  }
127
-
128
  die();
129
  }
130
  }
131
-
132
  function red_module_save() {
133
  $id = intval( $this->post['id'] );
134
 
@@ -138,19 +138,19 @@ class RedirectionAjax extends Redirection_Plugin {
138
  global $redirection;
139
  $options = $redirection->get_options();
140
  $module->update( $this->post );
141
-
142
  $this->render_admin( 'module_item', array( 'module' => $module, 'token' => $options['token'] ) );
143
  die();
144
  }
145
  }
146
  }
147
-
148
  function red_module_reset() {
149
  $id = intval( $_GET['id'] );
150
-
151
  if ( check_ajax_referer( 'redirection-module_'.$id ) ) {
152
  $module = Red_Module::get( $id );
153
-
154
  if ( $module ) {
155
  global $redirection;
156
  $options = $redirection->get_options();
@@ -158,11 +158,11 @@ class RedirectionAjax extends Redirection_Plugin {
158
  $module->reset ();
159
  $this->render_admin( 'module_item', array( 'module' => $module, 'token' => $options['token'] ) );
160
  }
161
-
162
  die();
163
  }
164
  }
165
-
166
  function red_module_delete() {
167
  $id = intval( $_GET['id'] );
168
  if ( check_ajax_referer( 'redirection-module_'.$id ) ) {
@@ -173,19 +173,19 @@ class RedirectionAjax extends Redirection_Plugin {
173
 
174
  function red_group_edit() {
175
  $id = intval( $_GET['id'] );
176
-
177
  if ( check_ajax_referer( 'redirection-group_'.$id ) ) {
178
  $group = Red_Group::get( $id );
179
  if ( $group )
180
  $this->render_admin( 'group_edit', array( 'group' => $group, 'modules' => Red_Module::get_for_select() ) );
181
-
182
  die();
183
  }
184
  }
185
-
186
  function red_group_load() {
187
  $id = intval( $_GET['id'] );
188
-
189
  if ( check_ajax_referer( 'redirection-group_'.$id ) ) {
190
  $group = Red_Group::get( $id );
191
  if ( $group )
@@ -202,10 +202,10 @@ class RedirectionAjax extends Redirection_Plugin {
202
  if ( $group ) {
203
  $original_module = $group->module_id;
204
  $group->update( $this->post );
205
-
206
  $this->render_admin( 'group_item', array( 'group' => $group ) );
207
  }
208
-
209
  die();
210
  }
211
  }
@@ -217,12 +217,12 @@ class RedirectionAjax extends Redirection_Plugin {
217
  $group = Red_Group::get( $group );
218
  $group->toggle_status();
219
  }
220
-
221
  Red_Module::flush( $group->module_id );
222
  }
223
  }
224
  }
225
-
226
  function red_group_delete() {
227
  if ( check_ajax_referer( 'redirection-items' ) ) {
228
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
@@ -232,7 +232,7 @@ class RedirectionAjax extends Redirection_Plugin {
232
  }
233
  }
234
  }
235
-
236
  function red_group_reset() {
237
  if ( check_ajax_referer( 'redirection-items' ) ) {
238
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
@@ -243,11 +243,11 @@ class RedirectionAjax extends Redirection_Plugin {
243
  }
244
  }
245
  }
246
-
247
  function red_group_move() {
248
  if ( check_ajax_referer( 'redirection-items' ) ) {
249
  $target = intval( $this->post['target'] );
250
-
251
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
252
  foreach ( $items[1] AS $group ) {
253
  $redirect = Red_Group::get( $group );
@@ -270,7 +270,7 @@ class RedirectionAjax extends Redirection_Plugin {
270
  $redirect = Red_Item::get_by_id( intval( $_GET['id'] ) );
271
  if ( $redirect )
272
  $this->render_admin( 'item_edit', array( 'redirect' => $redirect, 'groups' => Red_Group::get_for_select() ) );
273
-
274
  die();
275
  }
276
  }
@@ -280,18 +280,18 @@ class RedirectionAjax extends Redirection_Plugin {
280
  $redirect = Red_Item::get_by_id( intval( $_GET['id'] ) );
281
  if ( $redirect )
282
  $this->render_admin( 'item', array( 'redirect' => $redirect, 'date_format' => get_option( 'date_format' ) ) );
283
-
284
  die();
285
  }
286
  }
287
-
288
  function red_redirect_save() {
289
  $id = intval( $this->post['id'] );
290
 
291
  if ( check_ajax_referer( 'redirection-redirect_save_'.$id ) ) {
292
  $redirect = Red_Item::get_by_id( $id );
293
  $redirect->update( $this->post );
294
-
295
  $this->render_admin( 'item', array( 'redirect' => $redirect, 'date_format' => get_option( 'date_format' ) ) );
296
  die();
297
  }
@@ -305,12 +305,12 @@ class RedirectionAjax extends Redirection_Plugin {
305
  $redirect->toggle_status();
306
  }
307
  }
308
-
309
  $group = Red_Group::get( $redirect->group_id );
310
  Red_Module::flush( $group->module_id );
311
  }
312
  }
313
-
314
  function red_redirect_delete() {
315
  if ( check_ajax_referer( 'redirection-items' ) ) {
316
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
@@ -368,7 +368,7 @@ class RedirectionAjax extends Redirection_Plugin {
368
  }
369
  else
370
  $this->render_error (__ ('Sorry, but your redirection was not created', 'redirection'));
371
-
372
  die();
373
  }
374
  }
25
 
26
  class RedirectionAjax extends Redirection_Plugin {
27
  var $post;
28
+
29
  function RedirectionAjax() {
30
  $this->register_plugin( 'redirection', __FILE__ );
31
 
32
  add_action( 'init', array( &$this, 'init' ) );
33
  }
34
+
35
  function init() {
36
  if ( current_user_can( 'administrator' ) ) {
37
  $this->post = stripslashes_deep( $_POST );
38
+
39
  $this->register_ajax( 'red_log_show' );
40
  $this->register_ajax( 'red_log_hide' );
41
  $this->register_ajax( 'red_log_delete' );
42
+
43
  $this->register_ajax( 'red_module_edit' );
44
  $this->register_ajax( 'red_module_load' );
45
  $this->register_ajax( 'red_module_save' );
46
  $this->register_ajax( 'red_module_reset' );
47
  $this->register_ajax( 'red_module_delete' );
48
+
49
  $this->register_ajax( 'red_group_edit' );
50
  $this->register_ajax( 'red_group_load' );
51
  $this->register_ajax( 'red_group_save' );
66
  $this->register_ajax( 'red_redirect_add' );
67
  }
68
  }
69
+
70
  function red_log_show() {
71
  $id = intval( $_GET['id'] );
72
+
73
  if ( check_ajax_referer( 'redirection-log_'.$id ) ) {
74
  $log = RE_Log::get_by_id( $id );
75
  $redirect = Red_Item::get_by_id( $log->redirection_id );
76
+
77
  $this->render_admin( 'log_item_details', array( 'log' => $log, 'redirect' => $redirect ) );
78
  die();
79
  }
81
 
82
  function red_log_hide() {
83
  $id = intval( $_GET['id'] );
84
+
85
  if ( check_ajax_referer( 'redirection-log_'.$id ) ) {
86
  $log = RE_Log::get_by_id( $id );
87
 
89
  die();
90
  }
91
  }
92
+
93
  function red_log_delete() {
94
  if ( check_ajax_referer( 'redirection-items' ) ) {
95
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
99
  }
100
  }
101
  }
102
+
103
  function red_module_edit() {
104
  $id = intval( $_GET['id'] );
105
+
106
  if ( check_ajax_referer( 'redirection-module_'.$id ) ) {
107
  $module = Red_Module::get( $id );
108
+
109
  if ( $module )
110
  $this->render_admin( 'module_edit', array( 'module' => $module ) );
111
+
112
  die();
113
  }
114
  }
115
+
116
  function red_module_load() {
117
  $id = intval( $_GET['id'] );
118
+
119
  if ( check_ajax_referer( 'redirection-module_'.$id ) ) {
120
  $module = Red_Module::get ($id);
121
  if ($module) {
122
  global $redirection;
123
  $options = $redirection->get_options();
124
+
125
  $this->render_admin( 'module_item', array( 'module' => $module, 'token' => $options['token'] ) );
126
  }
127
+
128
  die();
129
  }
130
  }
131
+
132
  function red_module_save() {
133
  $id = intval( $this->post['id'] );
134
 
138
  global $redirection;
139
  $options = $redirection->get_options();
140
  $module->update( $this->post );
141
+
142
  $this->render_admin( 'module_item', array( 'module' => $module, 'token' => $options['token'] ) );
143
  die();
144
  }
145
  }
146
  }
147
+
148
  function red_module_reset() {
149
  $id = intval( $_GET['id'] );
150
+
151
  if ( check_ajax_referer( 'redirection-module_'.$id ) ) {
152
  $module = Red_Module::get( $id );
153
+
154
  if ( $module ) {
155
  global $redirection;
156
  $options = $redirection->get_options();
158
  $module->reset ();
159
  $this->render_admin( 'module_item', array( 'module' => $module, 'token' => $options['token'] ) );
160
  }
161
+
162
  die();
163
  }
164
  }
165
+
166
  function red_module_delete() {
167
  $id = intval( $_GET['id'] );
168
  if ( check_ajax_referer( 'redirection-module_'.$id ) ) {
173
 
174
  function red_group_edit() {
175
  $id = intval( $_GET['id'] );
176
+
177
  if ( check_ajax_referer( 'redirection-group_'.$id ) ) {
178
  $group = Red_Group::get( $id );
179
  if ( $group )
180
  $this->render_admin( 'group_edit', array( 'group' => $group, 'modules' => Red_Module::get_for_select() ) );
181
+
182
  die();
183
  }
184
  }
185
+
186
  function red_group_load() {
187
  $id = intval( $_GET['id'] );
188
+
189
  if ( check_ajax_referer( 'redirection-group_'.$id ) ) {
190
  $group = Red_Group::get( $id );
191
  if ( $group )
202
  if ( $group ) {
203
  $original_module = $group->module_id;
204
  $group->update( $this->post );
205
+
206
  $this->render_admin( 'group_item', array( 'group' => $group ) );
207
  }
208
+
209
  die();
210
  }
211
  }
217
  $group = Red_Group::get( $group );
218
  $group->toggle_status();
219
  }
220
+
221
  Red_Module::flush( $group->module_id );
222
  }
223
  }
224
  }
225
+
226
  function red_group_delete() {
227
  if ( check_ajax_referer( 'redirection-items' ) ) {
228
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
232
  }
233
  }
234
  }
235
+
236
  function red_group_reset() {
237
  if ( check_ajax_referer( 'redirection-items' ) ) {
238
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
243
  }
244
  }
245
  }
246
+
247
  function red_group_move() {
248
  if ( check_ajax_referer( 'redirection-items' ) ) {
249
  $target = intval( $this->post['target'] );
250
+
251
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
252
  foreach ( $items[1] AS $group ) {
253
  $redirect = Red_Group::get( $group );
270
  $redirect = Red_Item::get_by_id( intval( $_GET['id'] ) );
271
  if ( $redirect )
272
  $this->render_admin( 'item_edit', array( 'redirect' => $redirect, 'groups' => Red_Group::get_for_select() ) );
273
+
274
  die();
275
  }
276
  }
280
  $redirect = Red_Item::get_by_id( intval( $_GET['id'] ) );
281
  if ( $redirect )
282
  $this->render_admin( 'item', array( 'redirect' => $redirect, 'date_format' => get_option( 'date_format' ) ) );
283
+
284
  die();
285
  }
286
  }
287
+
288
  function red_redirect_save() {
289
  $id = intval( $this->post['id'] );
290
 
291
  if ( check_ajax_referer( 'redirection-redirect_save_'.$id ) ) {
292
  $redirect = Red_Item::get_by_id( $id );
293
  $redirect->update( $this->post );
294
+
295
  $this->render_admin( 'item', array( 'redirect' => $redirect, 'date_format' => get_option( 'date_format' ) ) );
296
  die();
297
  }
305
  $redirect->toggle_status();
306
  }
307
  }
308
+
309
  $group = Red_Group::get( $redirect->group_id );
310
  Red_Module::flush( $group->module_id );
311
  }
312
  }
313
+
314
  function red_redirect_delete() {
315
  if ( check_ajax_referer( 'redirection-items' ) ) {
316
  if ( preg_match_all( '/=(\d*)/', $this->post['checked'], $items ) > 0) {
368
  }
369
  else
370
  $this->render_error (__ ('Sorry, but your redirection was not created', 'redirection'));
371
+
372
  die();
373
  }
374
  }
fileio/apache.php CHANGED
@@ -20,37 +20,37 @@ if (!function_exists ('strpbrk'))
20
  return false;
21
  }
22
  return substr($haystack, $pos);
23
- }
24
  }
25
 
26
  class Red_Apache_File extends Red_FileIO
27
  {
28
  var $htaccess;
29
-
30
  function collect ($module)
31
  {
32
  include_once (dirname (__FILE__).'/../models/htaccess.php');
33
 
34
  $this->htaccess = new Red_Htaccess ($module);
35
  $pager = new RE_Pager ($_GET, $_SERVER['REQUEST_URI'], 'name', 'DESC', 'log');
36
-
37
  $pager->per_page = 0;
38
  $this->name = $module->name;
39
  $this->id = $module->id;
40
-
41
  // Get the items
42
  $items = Red_Item::get_by_module ($pager, $module->id);
43
-
44
  foreach ($items AS $item)
45
  $this->htaccess->add ($item);
46
-
47
  return true;
48
  }
49
-
50
  function feed ()
51
  {
52
  $filename = sprintf ('module_%d.htaccess', $this->id);
53
-
54
  header ("Content-Type: application/octet-stream");
55
  header ("Cache-Control: no-cache, must-revalidate");
56
  header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
@@ -58,7 +58,7 @@ class Red_Apache_File extends Red_FileIO
58
 
59
  echo $this->htaccess->generate ($this->name);
60
  }
61
-
62
  function load ($group, $data)
63
  {
64
  // Remove any comments
@@ -83,7 +83,7 @@ class Red_Apache_File extends Red_FileIO
83
  else if (preg_match ('@Redirectmatch\s+(.*?)\s+(.*?)@i', $line, $matches) > 0)
84
  $items[] = array ('source' => $this->decode_url ($matches[1]), 'target' => $this->decode_url ($matches[2]), 'code' => 302, 'regex' => true);
85
  }
86
-
87
  // Add items to group
88
  if (count ($items) > 0)
89
  {
@@ -94,29 +94,29 @@ class Red_Apache_File extends Red_FileIO
94
  $item['match'] = 'url';
95
  if ($item['code'] == 0)
96
  $item['red_action'] = 'pass';
97
-
98
  Red_Item::create ($item);
99
  }
100
-
101
  return count ($items);
102
  }
103
  }
104
-
105
  return 0;
106
  }
107
-
108
  function decode_url ($url)
109
  {
110
  $url = rawurldecode ($url);
111
  $url = str_replace ('\\.', '.', $url);
112
  return $url;
113
  }
114
-
115
  function is_str_regex ($url)
116
  {
117
  $regex = '()[]$^?+.';
118
  $escape = false;
119
-
120
  for ($x = 0; $x < strlen ($url); $x++)
121
  {
122
  if ($url{$x} == '\\')
@@ -126,40 +126,40 @@ class Red_Apache_File extends Red_FileIO
126
  else
127
  $escape = false;
128
  }
129
-
130
  return false;
131
  }
132
-
133
  function is_regex ($url)
134
  {
135
  if ($this->is_str_regex ($url))
136
  {
137
  $tmp = ltrim ($url, '^');
138
  $tmp = rtrim ($tmp, '$');
139
-
140
  if ($this->is_str_regex ($tmp))
141
  return true;
142
  }
143
-
144
  return false;
145
  }
146
-
147
  function regex_url ($url)
148
  {
149
  if ($this->is_str_regex ($url))
150
  {
151
  $tmp = ltrim ($url, '^');
152
  $tmp = rtrim ($tmp, '$');
153
-
154
  if ($this->is_str_regex ($tmp) == false)
155
  return '/'.$this->decode_url ($tmp);
156
-
157
  return '/'.$this->decode_url ($url);
158
  }
159
-
160
  return $this->decode_url ($url);
161
  }
162
-
163
  function get_code ($code)
164
  {
165
  if (strpos ($code, '301') !== false || stripos ($code, 'permanent') !== false)
@@ -175,4 +175,4 @@ class Red_Apache_File extends Red_FileIO
175
  return 0;
176
  }
177
  }
178
- ?>
20
  return false;
21
  }
22
  return substr($haystack, $pos);
23
+ }
24
  }
25
 
26
  class Red_Apache_File extends Red_FileIO
27
  {
28
  var $htaccess;
29
+
30
  function collect ($module)
31
  {
32
  include_once (dirname (__FILE__).'/../models/htaccess.php');
33
 
34
  $this->htaccess = new Red_Htaccess ($module);
35
  $pager = new RE_Pager ($_GET, $_SERVER['REQUEST_URI'], 'name', 'DESC', 'log');
36
+
37
  $pager->per_page = 0;
38
  $this->name = $module->name;
39
  $this->id = $module->id;
40
+
41
  // Get the items
42
  $items = Red_Item::get_by_module ($pager, $module->id);
43
+
44
  foreach ($items AS $item)
45
  $this->htaccess->add ($item);
46
+
47
  return true;
48
  }
49
+
50
  function feed ()
51
  {
52
  $filename = sprintf ('module_%d.htaccess', $this->id);
53
+
54
  header ("Content-Type: application/octet-stream");
55
  header ("Cache-Control: no-cache, must-revalidate");
56
  header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
58
 
59
  echo $this->htaccess->generate ($this->name);
60
  }
61
+
62
  function load ($group, $data)
63
  {
64
  // Remove any comments
83
  else if (preg_match ('@Redirectmatch\s+(.*?)\s+(.*?)@i', $line, $matches) > 0)
84
  $items[] = array ('source' => $this->decode_url ($matches[1]), 'target' => $this->decode_url ($matches[2]), 'code' => 302, 'regex' => true);
85
  }
86
+
87
  // Add items to group
88
  if (count ($items) > 0)
89
  {
94
  $item['match'] = 'url';
95
  if ($item['code'] == 0)
96
  $item['red_action'] = 'pass';
97
+
98
  Red_Item::create ($item);
99
  }
100
+
101
  return count ($items);
102
  }
103
  }
104
+
105
  return 0;
106
  }
107
+
108
  function decode_url ($url)
109
  {
110
  $url = rawurldecode ($url);
111
  $url = str_replace ('\\.', '.', $url);
112
  return $url;
113
  }
114
+
115
  function is_str_regex ($url)
116
  {
117
  $regex = '()[]$^?+.';
118
  $escape = false;
119
+
120
  for ($x = 0; $x < strlen ($url); $x++)
121
  {
122
  if ($url{$x} == '\\')
126
  else
127
  $escape = false;
128
  }
129
+
130
  return false;
131
  }
132
+
133
  function is_regex ($url)
134
  {
135
  if ($this->is_str_regex ($url))
136
  {
137
  $tmp = ltrim ($url, '^');
138
  $tmp = rtrim ($tmp, '$');
139
+
140
  if ($this->is_str_regex ($tmp))
141
  return true;
142
  }
143
+
144
  return false;
145
  }
146
+
147
  function regex_url ($url)
148
  {
149
  if ($this->is_str_regex ($url))
150
  {
151
  $tmp = ltrim ($url, '^');
152
  $tmp = rtrim ($tmp, '$');
153
+
154
  if ($this->is_str_regex ($tmp) == false)
155
  return '/'.$this->decode_url ($tmp);
156
+
157
  return '/'.$this->decode_url ($url);
158
  }
159
+
160
  return $this->decode_url ($url);
161
  }
162
+
163
  function get_code ($code)
164
  {
165
  if (strpos ($code, '301') !== false || stripos ($code, 'permanent') !== false)
175
  return 0;
176
  }
177
  }
178
+ ?>
fileio/csv.php CHANGED
@@ -7,7 +7,7 @@ class Red_Csv_File extends Red_FileIO
7
  $pager = new RE_Pager ($_GET, $_SERVER['REQUEST_URI'], 'name', 'DESC', 'log');
8
  $pager->per_page = 0;
9
  $this->id = $module->id;
10
-
11
  $items = Red_Item::get_by_module ($pager, $module->id);
12
  if (count ($items) > 0)
13
  {
@@ -15,11 +15,11 @@ class Red_Csv_File extends Red_FileIO
15
  $this->items[] = array ('source' => $item->url, 'target' => ($item->action_type == 'url' ? $item->action_data : ''), 'last_count' => $item->last_count);
16
  }
17
  }
18
-
19
  function feed ($filename = '', $heading = '')
20
  {
21
  $filename = sprintf (__ ('module_%d.csv', 'redirection'), $this->id);
22
-
23
  header ("Content-Type: text/csv");
24
  header ("Cache-Control: no-cache, must-revalidate");
25
  header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
@@ -28,12 +28,12 @@ class Red_Csv_File extends Red_FileIO
28
  if (count ($this->items) > 0)
29
  {
30
  echo "source,target,hits\r\n";
31
-
32
  foreach ($this->items AS $line)
33
  echo implode (",", array_map (array (&$this, 'escape'), $line))."\r\n";
34
  }
35
  }
36
-
37
  function escape ($value)
38
  {
39
  // Escape any special values
@@ -51,8 +51,8 @@ class Red_Csv_File extends Red_FileIO
51
  $value = '"'.$value.'"';
52
  return $value;
53
  }
54
-
55
- function parse_csv ($string, $separator = ',')
56
  {
57
  $string = str_replace('""', "'", $string);
58
  $bits = explode ('"',$string);
@@ -62,23 +62,23 @@ class Red_Csv_File extends Red_FileIO
62
  {
63
  if (($i % 2) == 1)
64
  $elements[] = $bits[$i];
65
- else
66
  {
67
  $rest = $bits[$i];
68
  $rest = preg_replace ('/^'.$separator.'/', '', $rest);
69
  $rest = preg_replace ('/'.$separator.'$/', '', $rest);
70
-
71
  $elements = array_merge ($elements, explode ($separator, $rest));
72
  }
73
  }
74
 
75
  return $elements;
76
  }
77
-
78
  function load( $group, $data, $filename ) {
79
  $count = 0;
80
  $file = fopen( $filename, 'r' );
81
-
82
  if ( $file ) {
83
  while ( ( $csv = fgetcsv( $file, 1000, ',' ) ) ) {
84
  if ( $csv[0] != 'source' && $csv[1] != 'target') {
@@ -90,7 +90,7 @@ class Red_Csv_File extends Red_FileIO
90
  'match' => 'url',
91
  'red_action' => 'url'
92
  ) );
93
-
94
  $count++;
95
  }
96
  }
@@ -98,12 +98,12 @@ class Red_Csv_File extends Red_FileIO
98
 
99
  return $count;
100
  }
101
-
102
  function is_regex ($url)
103
  {
104
  $regex = '()[]$^?+';
105
  $escape = false;
106
-
107
  for ($x = 0; $x < strlen ($url); $x++)
108
  {
109
  if ($url{$x} == '\\')
@@ -113,8 +113,8 @@ class Red_Csv_File extends Red_FileIO
113
  else
114
  $escape = false;
115
  }
116
-
117
  return false;
118
  }
119
  }
120
- ?>
7
  $pager = new RE_Pager ($_GET, $_SERVER['REQUEST_URI'], 'name', 'DESC', 'log');
8
  $pager->per_page = 0;
9
  $this->id = $module->id;
10
+
11
  $items = Red_Item::get_by_module ($pager, $module->id);
12
  if (count ($items) > 0)
13
  {
15
  $this->items[] = array ('source' => $item->url, 'target' => ($item->action_type == 'url' ? $item->action_data : ''), 'last_count' => $item->last_count);
16
  }
17
  }
18
+
19
  function feed ($filename = '', $heading = '')
20
  {
21
  $filename = sprintf (__ ('module_%d.csv', 'redirection'), $this->id);
22
+
23
  header ("Content-Type: text/csv");
24
  header ("Cache-Control: no-cache, must-revalidate");
25
  header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
28
  if (count ($this->items) > 0)
29
  {
30
  echo "source,target,hits\r\n";
31
+
32
  foreach ($this->items AS $line)
33
  echo implode (",", array_map (array (&$this, 'escape'), $line))."\r\n";
34
  }
35
  }
36
+
37
  function escape ($value)
38
  {
39
  // Escape any special values
51
  $value = '"'.$value.'"';
52
  return $value;
53
  }
54
+
55
+ function parse_csv ($string, $separator = ',')
56
  {
57
  $string = str_replace('""', "'", $string);
58
  $bits = explode ('"',$string);
62
  {
63
  if (($i % 2) == 1)
64
  $elements[] = $bits[$i];
65
+ else
66
  {
67
  $rest = $bits[$i];
68
  $rest = preg_replace ('/^'.$separator.'/', '', $rest);
69
  $rest = preg_replace ('/'.$separator.'$/', '', $rest);
70
+
71
  $elements = array_merge ($elements, explode ($separator, $rest));
72
  }
73
  }
74
 
75
  return $elements;
76
  }
77
+
78
  function load( $group, $data, $filename ) {
79
  $count = 0;
80
  $file = fopen( $filename, 'r' );
81
+
82
  if ( $file ) {
83
  while ( ( $csv = fgetcsv( $file, 1000, ',' ) ) ) {
84
  if ( $csv[0] != 'source' && $csv[1] != 'target') {
90
  'match' => 'url',
91
  'red_action' => 'url'
92
  ) );
93
+
94
  $count++;
95
  }
96
  }
98
 
99
  return $count;
100
  }
101
+
102
  function is_regex ($url)
103
  {
104
  $regex = '()[]$^?+';
105
  $escape = false;
106
+
107
  for ($x = 0; $x < strlen ($url); $x++)
108
  {
109
  if ($url{$x} == '\\')
113
  else
114
  $escape = false;
115
  }
116
+
117
  return false;
118
  }
119
  }
120
+ ?>
fileio/rss.php CHANGED
@@ -3,16 +3,16 @@
3
  class Red_Rss_File extends Red_FileIO
4
  {
5
  var $title;
6
-
7
  function collect ($module)
8
  {
9
  $pager = new RE_Pager ($_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log');
10
  $pager->per_page = 100;
11
-
12
  $this->name = $module->name;
13
  $this->items = RE_Log::get_by_module ($pager, $module->id);
14
  }
15
-
16
  function feed ()
17
  {
18
  $title = sprintf ('%s log', $this->name);
@@ -20,7 +20,7 @@ class Red_Rss_File extends Red_FileIO
20
  header ('Content-type: text/xml; charset='.get_option ('blog_charset'), true);
21
  echo '<?xml version="1.0" encoding="'.get_option ('blog_charset').'"?'.">\r\n";
22
  ?>
23
- <rss version="2.0"
24
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
25
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
26
  xmlns:dc="http://purl.org/dc/elements/1.1/">
@@ -50,5 +50,5 @@ class Red_Rss_File extends Red_FileIO
50
  die();
51
  }
52
  }
53
-
54
- ?>
3
  class Red_Rss_File extends Red_FileIO
4
  {
5
  var $title;
6
+
7
  function collect ($module)
8
  {
9
  $pager = new RE_Pager ($_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log');
10
  $pager->per_page = 100;
11
+
12
  $this->name = $module->name;
13
  $this->items = RE_Log::get_by_module ($pager, $module->id);
14
  }
15
+
16
  function feed ()
17
  {
18
  $title = sprintf ('%s log', $this->name);
20
  header ('Content-type: text/xml; charset='.get_option ('blog_charset'), true);
21
  echo '<?xml version="1.0" encoding="'.get_option ('blog_charset').'"?'.">\r\n";
22
  ?>
23
+ <rss version="2.0"
24
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
25
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
26
  xmlns:dc="http://purl.org/dc/elements/1.1/">
50
  die();
51
  }
52
  }
53
+
54
+ ?>
fileio/xml.php CHANGED
@@ -8,7 +8,7 @@ class Red_Xml_File extends Red_FileIO
8
  $this->id = $module->id;
9
  $this->type = $module->type;
10
  $this->options = unserialize ($module->options);
11
-
12
  if (!is_array ($this->options))
13
  $this->options = array ();
14
 
@@ -23,7 +23,7 @@ class Red_Xml_File extends Red_FileIO
23
  }
24
  else
25
  $this->groups = array ();
26
-
27
  return true;
28
  }
29
 
@@ -58,10 +58,10 @@ class Red_Xml_File extends Red_FileIO
58
  <?php endforeach; ?>
59
  <?php endif; ?>
60
  </module>
61
- </redirection>
62
  <?php
63
  }
64
-
65
  function output_item ($item)
66
  {
67
  $data = unserialize ($item->action_data);
@@ -95,7 +95,7 @@ class Red_Xml_File extends Red_FileIO
95
  if (function_exists ('simplexml_load_string'))
96
  {
97
  global $wpdb;
98
-
99
  $xml = simplexml_load_string ($data);
100
 
101
  // Extract module
@@ -104,24 +104,24 @@ class Red_Xml_File extends Red_FileIO
104
  'type' => (string)$xml->module['type'],
105
  'name' => sprintf (__ ('%s imported on %s at %s', 'redirection'), (string)$xml->module['name'], date ('M d Y'), date ('H:i'))
106
  );
107
-
108
  if (isset ($xml->module->options))
109
  {
110
  foreach ($xml->module->options->option AS $option)
111
  $options[(string)$option['name']] = trim ((string)$option);
112
-
113
  $moduledata['options'] = $options;
114
  }
115
 
116
  $module = Red_Module::create ($moduledata);
117
-
118
  // Look at groups
119
  if (count ($xml->module->group) > 0)
120
  {
121
  foreach ($xml->module->group AS $group)
122
  {
123
  $id = Red_Group::create (array ('module_id' => $module, 'name' => (string)$group['name'], 'status' => (string)$group['status'], 'position' => (string)$group['position']));
124
-
125
  // Look at items
126
  if (count ($group->item) > 0)
127
  {
@@ -132,12 +132,12 @@ class Red_Xml_File extends Red_FileIO
132
  {
133
  foreach ($item->action->option AS $option)
134
  $actiondata[(string)$option['key']] = trim ((string)$option);
135
-
136
  $actiondata = serialize ($actiondata);
137
  }
138
  else
139
  $actiondata = trim ((string)$item->action);
140
-
141
  $data = array
142
  (
143
  'group_id' => $id,
@@ -150,10 +150,10 @@ class Red_Xml_File extends Red_FileIO
150
  'action_code' => (string)$item->action['code'],
151
  'action_data' => $actiondata
152
  );
153
-
154
  foreach ($data AS $key => $value)
155
  $data[$key] = "'".$wpdb->escape ($value)."'";
156
-
157
  // Easier to insert it directly here
158
  $wpdb->query ("INSERT INTO {$wpdb->prefix}redirection_items (".implode (',', array_keys ($data)).") VALUES (".implode (',', $data).")");
159
  $count++;
@@ -171,4 +171,4 @@ class Red_Xml_File extends Red_FileIO
171
  return $count;
172
  }
173
  }
174
- ?>
8
  $this->id = $module->id;
9
  $this->type = $module->type;
10
  $this->options = unserialize ($module->options);
11
+
12
  if (!is_array ($this->options))
13
  $this->options = array ();
14
 
23
  }
24
  else
25
  $this->groups = array ();
26
+
27
  return true;
28
  }
29
 
58
  <?php endforeach; ?>
59
  <?php endif; ?>
60
  </module>
61
+ </redirection>
62
  <?php
63
  }
64
+
65
  function output_item ($item)
66
  {
67
  $data = unserialize ($item->action_data);
95
  if (function_exists ('simplexml_load_string'))
96
  {
97
  global $wpdb;
98
+
99
  $xml = simplexml_load_string ($data);
100
 
101
  // Extract module
104
  'type' => (string)$xml->module['type'],
105
  'name' => sprintf (__ ('%s imported on %s at %s', 'redirection'), (string)$xml->module['name'], date ('M d Y'), date ('H:i'))
106
  );
107
+
108
  if (isset ($xml->module->options))
109
  {
110
  foreach ($xml->module->options->option AS $option)
111
  $options[(string)$option['name']] = trim ((string)$option);
112
+
113
  $moduledata['options'] = $options;
114
  }
115
 
116
  $module = Red_Module::create ($moduledata);
117
+
118
  // Look at groups
119
  if (count ($xml->module->group) > 0)
120
  {
121
  foreach ($xml->module->group AS $group)
122
  {
123
  $id = Red_Group::create (array ('module_id' => $module, 'name' => (string)$group['name'], 'status' => (string)$group['status'], 'position' => (string)$group['position']));
124
+
125
  // Look at items
126
  if (count ($group->item) > 0)
127
  {
132
  {
133
  foreach ($item->action->option AS $option)
134
  $actiondata[(string)$option['key']] = trim ((string)$option);
135
+
136
  $actiondata = serialize ($actiondata);
137
  }
138
  else
139
  $actiondata = trim ((string)$item->action);
140
+
141
  $data = array
142
  (
143
  'group_id' => $id,
150
  'action_code' => (string)$item->action['code'],
151
  'action_data' => $actiondata
152
  );
153
+
154
  foreach ($data AS $key => $value)
155
  $data[$key] = "'".$wpdb->escape ($value)."'";
156
+
157
  // Easier to insert it directly here
158
  $wpdb->query ("INSERT INTO {$wpdb->prefix}redirection_items (".implode (',', array_keys ($data)).") VALUES (".implode (',', $data).")");
159
  $count++;
171
  return $count;
172
  }
173
  }
174
+ ?>
js/redirection.js CHANGED
@@ -35,7 +35,7 @@ var Redirection;
35
  function sort_order_save( type ) {
36
  if ( confirm( opts.are_you_sure ) ) {
37
  $( '#loading' ).show();
38
-
39
  $.post( opts.ajaxurl, {
40
  action: 'red_' + type + '_saveorder',
41
  page: opts.page,
@@ -53,7 +53,7 @@ var Redirection;
53
 
54
  return false;
55
  }
56
-
57
  function sort_order() {
58
  $( '#items' ).sortable();
59
  $( '#toggle_sort_on' ).hide();
@@ -84,7 +84,7 @@ var Redirection;
84
 
85
  return false;
86
  }
87
-
88
  function select_all() {
89
  $( '.item :checkbox' ).each(function () {
90
  this.checked = (this.checked ? '' : 'checked');
@@ -99,14 +99,14 @@ var Redirection;
99
  if ( checked.length > 0 ) {
100
  if ( confirm( opts.are_you_sure ) ) {
101
  var urltype = 'red_redirect_delete';
102
-
103
  if ( type == 'group' )
104
  urltype = 'red_group_delete';
105
  else if ( type == 'log' )
106
  urltype = 'red_log_delete';
107
 
108
  $( '#loading' ).show();
109
-
110
  $.post( opts.ajaxurl, {
111
  checked: checked.serialize(),
112
  action: urltype,
@@ -125,11 +125,11 @@ var Redirection;
125
 
126
  return false;
127
  }
128
-
129
  function form_loader( element, type, reset_func ) {
130
  var item = $( element ).parents( type )
131
  var href = element.href;
132
-
133
  if ( href.indexOf( 'admin-ajax.php' ) == -1 )
134
  href = opts.ajaxurl + '?action=red_redirect_edit&id=' + item.attr( 'id' ).substr( 5 ) + '&_ajax_nonce=' + opts.nonce;
135
 
@@ -139,34 +139,34 @@ var Redirection;
139
  // Setup cancel handler
140
  $( item ).find( 'input[name=cancel]').click( function() {
141
  $( item ).find( '.loader' ).show();
142
-
143
  $( item ).load( href.replace( '_edit', '_load' ), function () {
144
  reset_func( type );
145
  });
146
-
147
  return false;
148
  });
149
-
150
  var changestatus = null;
151
-
152
  // Form handler
153
  $( item ).find( 'form' ).ajaxForm( {
154
  beforeSubmit: function( data, form ) {
155
  $( item ).find( '.loader' ).show();
156
-
157
  if ( form.find( 'input[name=status]' ).length > 0 )
158
  changestatus = form.find( 'input[name=status]' ).attr( 'checked' );
159
  },
160
  success: function( response ) {
161
  $( item ).html( response );
162
-
163
  if ( changestatus !== null ) {
164
  if ( changestatus === true )
165
  $( item ).removeClass( 'disabled' );
166
  else
167
  $( item ).addClass( 'disabled' );
168
  }
169
-
170
  reset_func( type );
171
  }
172
  });
@@ -174,7 +174,7 @@ var Redirection;
174
 
175
  return false;
176
  }
177
-
178
  function modules() {
179
  // Edit module
180
  $( 'a.edit' ).unbind( 'click' ).click( function() {
@@ -208,16 +208,16 @@ var Redirection;
208
  return false;
209
  });
210
  }
211
-
212
  function edit_items( type ) {
213
  $( 'a.redirection-edit' ).unbind( 'click' ).click(function() { return form_loader( this, 'li', edit_items ) } );
214
-
215
  $( 'a.select-all' ).unbind( 'click' ).click(function() { return select_all(); } );
216
  $( 'a.toggle-all' ).unbind( 'click' ).click(function() { return do_items( type, 'toggle' ); });
217
  $( 'a.reset-all' ).unbind( 'click' ).click(function() { return do_items( type, 'reset' ); });
218
  $( 'a.delete-all' ).unbind( 'click' ).click(function() { return delete_all( type ); });
219
  $( 'input.move-all' ).unbind( 'click' ).click(function() { return move_all( type ); });
220
-
221
  $( 'a.sort-on' ).unbind( 'click' ).click(function() { return sort_order(); });
222
  $( 'a.sort-save' ).unbind( 'click' ).click(function() { return sort_order_save( type ); });
223
  }
@@ -226,10 +226,10 @@ var Redirection;
226
  $( '.show-log' ).unbind( 'click' ).click( function() {
227
  var item = $( this ).parents( 'tr' )
228
  var href = this.href;
229
-
230
  // Set loading icon
231
  $( item ).find( '.info' ).html( opts.progress );
232
-
233
  // Load info
234
  $( item ).find( '.info' ).load( this.href, function() {
235
  // Setup cancel handler
@@ -237,11 +237,11 @@ var Redirection;
237
  $( item ).find( '.info' ).load( href.replace( 'red_log_show', 'red_log_hide' ), function () {
238
  logs();
239
  });
240
-
241
  return false;
242
  });
243
  } );
244
-
245
  return false;
246
  });
247
 
@@ -270,7 +270,7 @@ var Redirection;
270
  });
271
  });
272
  }
273
-
274
  var api = {
275
  logs: logs,
276
  edit_items: edit_items,
@@ -279,11 +279,11 @@ var Redirection;
279
 
280
  return api;
281
  }
282
-
283
  $( document ).ready( function() {
284
  $( '#support-annoy' ).animate( { opacity: 0.2, backgroundColor: 'red' } ).animate( { opacity: 1, backgroundColor: 'yellow' } );
285
  } );
286
-
287
  })(jQuery);
288
 
289
  function update_user_agent (item,box)
35
  function sort_order_save( type ) {
36
  if ( confirm( opts.are_you_sure ) ) {
37
  $( '#loading' ).show();
38
+
39
  $.post( opts.ajaxurl, {
40
  action: 'red_' + type + '_saveorder',
41
  page: opts.page,
53
 
54
  return false;
55
  }
56
+
57
  function sort_order() {
58
  $( '#items' ).sortable();
59
  $( '#toggle_sort_on' ).hide();
84
 
85
  return false;
86
  }
87
+
88
  function select_all() {
89
  $( '.item :checkbox' ).each(function () {
90
  this.checked = (this.checked ? '' : 'checked');
99
  if ( checked.length > 0 ) {
100
  if ( confirm( opts.are_you_sure ) ) {
101
  var urltype = 'red_redirect_delete';
102
+
103
  if ( type == 'group' )
104
  urltype = 'red_group_delete';
105
  else if ( type == 'log' )
106
  urltype = 'red_log_delete';
107
 
108
  $( '#loading' ).show();
109
+
110
  $.post( opts.ajaxurl, {
111
  checked: checked.serialize(),
112
  action: urltype,
125
 
126
  return false;
127
  }
128
+
129
  function form_loader( element, type, reset_func ) {
130
  var item = $( element ).parents( type )
131
  var href = element.href;
132
+
133
  if ( href.indexOf( 'admin-ajax.php' ) == -1 )
134
  href = opts.ajaxurl + '?action=red_redirect_edit&id=' + item.attr( 'id' ).substr( 5 ) + '&_ajax_nonce=' + opts.nonce;
135
 
139
  // Setup cancel handler
140
  $( item ).find( 'input[name=cancel]').click( function() {
141
  $( item ).find( '.loader' ).show();
142
+
143
  $( item ).load( href.replace( '_edit', '_load' ), function () {
144
  reset_func( type );
145
  });
146
+
147
  return false;
148
  });
149
+
150
  var changestatus = null;
151
+
152
  // Form handler
153
  $( item ).find( 'form' ).ajaxForm( {
154
  beforeSubmit: function( data, form ) {
155
  $( item ).find( '.loader' ).show();
156
+
157
  if ( form.find( 'input[name=status]' ).length > 0 )
158
  changestatus = form.find( 'input[name=status]' ).attr( 'checked' );
159
  },
160
  success: function( response ) {
161
  $( item ).html( response );
162
+
163
  if ( changestatus !== null ) {
164
  if ( changestatus === true )
165
  $( item ).removeClass( 'disabled' );
166
  else
167
  $( item ).addClass( 'disabled' );
168
  }
169
+
170
  reset_func( type );
171
  }
172
  });
174
 
175
  return false;
176
  }
177
+
178
  function modules() {
179
  // Edit module
180
  $( 'a.edit' ).unbind( 'click' ).click( function() {
208
  return false;
209
  });
210
  }
211
+
212
  function edit_items( type ) {
213
  $( 'a.redirection-edit' ).unbind( 'click' ).click(function() { return form_loader( this, 'li', edit_items ) } );
214
+
215
  $( 'a.select-all' ).unbind( 'click' ).click(function() { return select_all(); } );
216
  $( 'a.toggle-all' ).unbind( 'click' ).click(function() { return do_items( type, 'toggle' ); });
217
  $( 'a.reset-all' ).unbind( 'click' ).click(function() { return do_items( type, 'reset' ); });
218
  $( 'a.delete-all' ).unbind( 'click' ).click(function() { return delete_all( type ); });
219
  $( 'input.move-all' ).unbind( 'click' ).click(function() { return move_all( type ); });
220
+
221
  $( 'a.sort-on' ).unbind( 'click' ).click(function() { return sort_order(); });
222
  $( 'a.sort-save' ).unbind( 'click' ).click(function() { return sort_order_save( type ); });
223
  }
226
  $( '.show-log' ).unbind( 'click' ).click( function() {
227
  var item = $( this ).parents( 'tr' )
228
  var href = this.href;
229
+
230
  // Set loading icon
231
  $( item ).find( '.info' ).html( opts.progress );
232
+
233
  // Load info
234
  $( item ).find( '.info' ).load( this.href, function() {
235
  // Setup cancel handler
237
  $( item ).find( '.info' ).load( href.replace( 'red_log_show', 'red_log_hide' ), function () {
238
  logs();
239
  });
240
+
241
  return false;
242
  });
243
  } );
244
+
245
  return false;
246
  });
247
 
270
  });
271
  });
272
  }
273
+
274
  var api = {
275
  logs: logs,
276
  edit_items: edit_items,
279
 
280
  return api;
281
  }
282
+
283
  $( document ).ready( function() {
284
  $( '#support-annoy' ).animate( { opacity: 0.2, backgroundColor: 'red' } ).animate( { opacity: 1, backgroundColor: 'yellow' } );
285
  } );
286
+
287
  })(jQuery);
288
 
289
  function update_user_agent (item,box)
locale/be_BY.mo ADDED
Binary file
locale/be_BY.po ADDED
@@ -0,0 +1,988 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) 2009 Grib <grib69@gmail.com>
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: Redirection 2.1.20\n"
9
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/redirection\n"
10
+ "POT-Creation-Date: 2011-07-17 10:14:58+00:00\n"
11
+ "PO-Revision-Date: 2011-11-04 09:20+0200\n"
12
+ "Language-Team: Web Geeks\n"
13
+ "Last-Translator: \n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;\n"
18
+ "X-Poedit-Language: Belarusian\n"
19
+ "X-Poedit-Country: BELARUS\n"
20
+
21
+ #: fileio/csv.php:21
22
+ msgid "module_%d.csv"
23
+ msgstr "module_%d.csv"
24
+
25
+ #: fileio/xml.php:32
26
+ msgid "module_%d.xml"
27
+ msgstr "module_%d.xml"
28
+
29
+ #: fileio/xml.php:105
30
+ msgid "%s imported on %s at %s"
31
+ msgstr "%s імпартавана %s у %s"
32
+
33
+ #: fileio/xml.php:168
34
+ msgid "XML importing is only available with PHP5 - you have PHP4."
35
+ msgstr "Імпарт XML даступны толькі з PHP5, у вас усталяваны PHP4"
36
+
37
+ #: view/admin/group_list.php:6
38
+ msgid "Groups for module"
39
+ msgstr "Групы для модуля"
40
+
41
+ #: view/admin/group_list.php:16
42
+ #: view/admin/log.php:38
43
+ msgid "Module"
44
+ msgstr "Модуль"
45
+
46
+ #: view/admin/group_list.php:21
47
+ #: view/admin/log.php:16
48
+ #: view/admin/log.php:23
49
+ #: view/admin/item_list.php:29
50
+ msgid "Search"
51
+ msgstr "Пошук"
52
+
53
+ #: view/admin/group_list.php:26
54
+ msgid "go"
55
+ msgstr "наперад"
56
+
57
+ #: view/admin/group_list.php:36
58
+ #: view/admin/item_list.php:42
59
+ #: view/admin/module_list.php:17
60
+ msgid "Hits"
61
+ msgstr "Лічыльнік"
62
+
63
+ #: view/admin/group_list.php:37
64
+ #: view/admin/group_list.php:100
65
+ #: view/admin/module_edit.php:18
66
+ #: view/admin/module_list.php:42
67
+ #: view/admin/group_edit.php:6
68
+ msgid "Name"
69
+ msgstr "Назва"
70
+
71
+ #: view/admin/group_list.php:59
72
+ #: view/admin/item_list.php:67
73
+ msgid "Select All"
74
+ msgstr "Абраць усё"
75
+
76
+ #: view/admin/group_list.php:60
77
+ #: view/admin/item_list.php:68
78
+ msgid "Toggle"
79
+ msgstr "Вкл/Выкл"
80
+
81
+ #: view/admin/group_list.php:61
82
+ #: view/admin/item_list.php:69
83
+ msgid "Reset Hits"
84
+ msgstr "Абнуліць лічыльнік"
85
+
86
+ #: view/admin/group_list.php:62
87
+ #: view/admin/log.php:30
88
+ #: view/admin/item_list.php:70
89
+ #: view/admin/options.php:120
90
+ msgid "Delete"
91
+ msgstr "Выдаліць"
92
+
93
+ #: view/admin/group_list.php:64
94
+ #: view/admin/item_list.php:72
95
+ msgid "Move To"
96
+ msgstr "Перамясціць"
97
+
98
+ #: view/admin/group_list.php:69
99
+ #: view/admin/item_list.php:34
100
+ #: view/admin/item_list.php:77
101
+ msgid "Go"
102
+ msgstr "Наперад"
103
+
104
+ #: view/admin/group_list.php:75
105
+ #: view/admin/item_list.php:83
106
+ msgid "re-order"
107
+ msgstr "памяняць месцамі"
108
+
109
+ #: view/admin/group_list.php:76
110
+ #: view/admin/item_list.php:84
111
+ msgid "save order"
112
+ msgstr "захаваць парадак"
113
+
114
+ #: view/admin/group_list.php:89
115
+ msgid "You have no groups in this module."
116
+ msgstr "Няма груп у дадзеным модулі"
117
+
118
+ #: view/admin/group_list.php:94
119
+ msgid "Add Group"
120
+ msgstr "Дадаць групу"
121
+
122
+ #: view/admin/group_list.php:105
123
+ msgid "Add"
124
+ msgstr "Дадаць"
125
+
126
+ #: view/admin/group_list.php:117
127
+ #: view/admin/log.php:112
128
+ #: view/admin/item_list.php:112
129
+ #: redirection.php:116
130
+ msgid "No items have been selected"
131
+ msgstr "Нічога не абрана"
132
+
133
+ #: view/admin/group_list.php:118
134
+ #: view/admin/log.php:113
135
+ #: view/admin/item_list.php:113
136
+ #: redirection.php:115
137
+ msgid "Are you sure?"
138
+ msgstr "Вы ўпэўнены?"
139
+
140
+ #: view/admin/submenu.php:6
141
+ msgid "Redirects"
142
+ msgstr "Перанакіраванні"
143
+
144
+ #: view/admin/submenu.php:11
145
+ #: view/admin/module_list.php:15
146
+ msgid "Groups"
147
+ msgstr "Групы"
148
+
149
+ #: view/admin/submenu.php:16
150
+ #: view/admin/module_list.php:6
151
+ msgid "Modules"
152
+ msgstr "Модулі"
153
+
154
+ #: view/admin/submenu.php:21
155
+ msgid "Log"
156
+ msgstr "Часопіс"
157
+
158
+ #: view/admin/submenu.php:26
159
+ #: view/admin/options.php:6
160
+ msgid "Options"
161
+ msgstr "Налады"
162
+
163
+ #: view/admin/submenu.php:31
164
+ msgid "Support"
165
+ msgstr "Падтрымка"
166
+
167
+ #: view/admin/module_item.php:23
168
+ msgid "View as"
169
+ msgstr "Паглядзець як"
170
+
171
+ #: view/admin/module_item.php:25
172
+ msgid "CSV"
173
+ msgstr "CSV"
174
+
175
+ #: view/admin/module_item.php:26
176
+ msgid "XML"
177
+ msgstr "XML"
178
+
179
+ #: view/admin/module_item.php:27
180
+ #: models/module.php:160
181
+ #: models/database.php:95
182
+ msgid "Apache"
183
+ msgstr "Apache"
184
+
185
+ #: view/admin/module_item.php:28
186
+ msgid "RSS"
187
+ msgstr "RSS"
188
+
189
+ #: view/admin/module_item.php:41
190
+ msgid "edit"
191
+ msgstr "кіраваць"
192
+
193
+ #: view/admin/module_item.php:43
194
+ msgid "delete"
195
+ msgstr "выдаліць"
196
+
197
+ #: view/admin/module_item.php:45
198
+ msgid "reset"
199
+ msgstr "скінуць"
200
+
201
+ #: view/admin/log.php:6
202
+ msgid "Redirection Log"
203
+ msgstr "Часопіс перанакіраванняў"
204
+
205
+ #: view/admin/log.php:29
206
+ msgid "Bulk Actions"
207
+ msgstr "Масавыя дзеянні"
208
+
209
+ #: view/admin/log.php:33
210
+ msgid "Apply"
211
+ msgstr "Ужыць"
212
+
213
+ #: view/admin/log.php:43
214
+ #: view/admin/item_list.php:24
215
+ #: view/admin/add.php:36
216
+ msgid "Group"
217
+ msgstr "Група"
218
+
219
+ #: view/admin/log.php:49
220
+ msgid "Filter"
221
+ msgstr "Фільтр"
222
+
223
+ #: view/admin/log.php:67
224
+ msgid "Date"
225
+ msgstr "Дата"
226
+
227
+ #: view/admin/log.php:68
228
+ #: view/admin/log_item_details.php:4
229
+ #: view/admin/item_edit.php:15
230
+ #: view/admin/add.php:12
231
+ msgid "Source URL"
232
+ msgstr "URL крыніцы"
233
+
234
+ #: view/admin/log.php:69
235
+ #: matches/referrer.php:40
236
+ msgid "Referrer"
237
+ msgstr "Реферер"
238
+
239
+ #: view/admin/log.php:70
240
+ msgid "IP"
241
+ msgstr "IP"
242
+
243
+ #: view/admin/log.php:85
244
+ msgid "There are no logs to display!"
245
+ msgstr "Часопісы адсутнічаюць!"
246
+
247
+ #: view/admin/log.php:94
248
+ msgid "Process Current Logs"
249
+ msgstr "Дзеянні з бягучым часопісам"
250
+
251
+ #: view/admin/log.php:95
252
+ msgid "These actions will affect all currently available logs (i.e. your search phrase will restrict the log items)."
253
+ msgstr "Гэтыя дзеянні крануць усіх наяўных у наш час часопісаў (пошук па часопісе будзе абмежаваны)"
254
+
255
+ #: view/admin/log.php:100
256
+ msgid "Delete Logs"
257
+ msgstr "Выдаліць часопісы"
258
+
259
+ #: view/admin/item_list.php:7
260
+ msgid "Redirections for group"
261
+ msgstr "Перанакіраванне для групы"
262
+
263
+ #: view/admin/item_list.php:41
264
+ msgid "Last Access"
265
+ msgstr "Апошні"
266
+
267
+ #: view/admin/item_list.php:43
268
+ #: view/admin/module_list.php:46
269
+ msgid "Type"
270
+ msgstr "Тып"
271
+
272
+ #: view/admin/item_list.php:44
273
+ msgid "URL"
274
+ msgstr "URL"
275
+
276
+ #: view/admin/item_list.php:44
277
+ msgid "Position"
278
+ msgstr "Сартаванне"
279
+
280
+ #: view/admin/item_list.php:88
281
+ msgid "You have no redirections."
282
+ msgstr "Няма перанакіраванняў"
283
+
284
+ #: view/admin/log_item_details.php:9
285
+ msgid "Redirect to"
286
+ msgstr "Перанакіраваць на"
287
+
288
+ #: view/admin/log_item_details.php:15
289
+ msgid "Redirected by"
290
+ msgstr "Перанакіравана"
291
+
292
+ #: view/admin/log_item_details.php:16
293
+ msgid "for"
294
+ msgstr "для"
295
+
296
+ #: view/admin/log_item_details.php:20
297
+ #: matches/user_agent.php:43
298
+ msgid "User Agent"
299
+ msgstr "User-Agent"
300
+
301
+ #: view/admin/item.php:27
302
+ #: view/admin/group_item.php:23
303
+ msgid "disabled"
304
+ msgstr "адключана"
305
+
306
+ #: view/admin/item_edit.php:3
307
+ msgid "%s by matching %s"
308
+ msgstr "%s супастаўленне %s"
309
+
310
+ #: view/admin/item_edit.php:7
311
+ msgid "Title"
312
+ msgstr "Назва"
313
+
314
+ #: view/admin/item_edit.php:10
315
+ msgid "optional"
316
+ msgstr "не абавязкова"
317
+
318
+ #: view/admin/item_edit.php:18
319
+ #: matches/referrer.php:43
320
+ msgid "Regex"
321
+ msgstr "Рэгулярны выраз"
322
+
323
+ #: view/admin/item_edit.php:27
324
+ #: view/admin/module_edit.php:27
325
+ #: view/admin/group_edit.php:20
326
+ msgid "Save"
327
+ msgstr "Захаваць"
328
+
329
+ #: view/admin/item_edit.php:28
330
+ #: view/admin/module_edit.php:28
331
+ #: view/admin/group_edit.php:21
332
+ msgid "Cancel"
333
+ msgstr "Адмена"
334
+
335
+ #: view/admin/add.php:3
336
+ msgid "Add new redirection"
337
+ msgstr "Дадаць новае перанакіраванне"
338
+
339
+ #: view/admin/add.php:6
340
+ msgid "Your redirection has been added."
341
+ msgstr "Ваша правіла перанакіравання дададзена."
342
+
343
+ #: view/admin/add.php:16
344
+ msgid "Match"
345
+ msgstr "Супадзенне"
346
+
347
+ #: view/admin/add.php:22
348
+ msgid "Action"
349
+ msgstr "Дзеянне"
350
+
351
+ #: view/admin/add.php:27
352
+ msgid "Regular expression"
353
+ msgstr "Рэгулярны выраз"
354
+
355
+ #: view/admin/add.php:31
356
+ #: matches/url.php:32
357
+ msgid "Target URL"
358
+ msgstr "URL прызначэнні"
359
+
360
+ #: view/admin/add.php:43
361
+ msgid "Add Redirection"
362
+ msgstr "Дадаць перанакіраванне"
363
+
364
+ #: view/admin/group_item.php:3
365
+ msgid "edit group"
366
+ msgstr "кіраваць групу"
367
+
368
+ #: view/admin/module_list.php:14
369
+ msgid "Details"
370
+ msgstr "Дэталі"
371
+
372
+ #: view/admin/module_list.php:16
373
+ msgid "Items"
374
+ msgstr "Элементы"
375
+
376
+ #: view/admin/module_list.php:18
377
+ msgid "Operations"
378
+ msgstr "Дзеянні"
379
+
380
+ #: view/admin/module_list.php:27
381
+ msgid "Note: Hits are dependant on log entries"
382
+ msgstr "Нататка: сведчанні лічыльніка залежаць ад запісаў у часопісе"
383
+
384
+ #: view/admin/module_list.php:29
385
+ msgid "You have no modules defined yet"
386
+ msgstr "Вы не вызначылі модулі"
387
+
388
+ #: view/admin/module_list.php:34
389
+ msgid "Add Module"
390
+ msgstr "Дадаць модуль"
391
+
392
+ #: view/admin/module_list.php:35
393
+ msgid "A module is a controlling element that determines how redirections are handled. Elements in a WordPress module are handled by WordPress, elements in an Apache module are handled by <code>.htaccess</code>, and elements in a 404 module affect how 404 errors are logged."
394
+ msgstr "Модуль уяўляе сабою элемент кіравання, які вызначае як апрацоўваюцца перанакіраванні. Элементы модуля WordPress апрацоўваюцца WordPress, элементы модуля Apache апрацоўваюцца файлам <code>.htaccess</code> і элементы модуля 404 уплываюць на журналяванне памылак 404"
395
+
396
+ #: view/admin/module_list.php:55
397
+ msgid "Create"
398
+ msgstr "Стварыць"
399
+
400
+ #: view/admin/support.php:5
401
+ msgid "Redirection Support"
402
+ msgstr "Падтрымка"
403
+
404
+ #: view/admin/support.php:9
405
+ msgid "Redirection is free to use - life is wonderful and lovely! However, it has required a great deal of time and effort to develop and if it has been useful you can help support this development by <strong>making a small donation</strong>."
406
+ msgstr "Гэта ўбудова абсалютна вольны для выкарыстання - жыццё выдатная і дзіўная! Тым не менш, ён патрабуе шмат часу і высілкаў у распрацоўцы і калі ён быў вам карысны, вы можаце падтрымаць яго далейшае развіццё, <strong>зрабіўшы невялікае ахвяраванне</strong>."
407
+
408
+ #: view/admin/support.php:10
409
+ msgid "This will act as an incentive for me to carry on developing, providing countless hours of support, and including new features and suggestions. You get some useful software and I get to carry on making it. Everybody wins."
410
+ msgstr "Гэта будзе для мяне стымулам працягваць займацца распрацоўкай дадзенай убудовы, марнаваць шмат часу на аказанне падтрымкі, у тым ліку на рэалізацыю новых прапанаваных магчымасцяў. Вы атрымліваеце новыя праграмы, а я працягваю гэтым займацца. Усё застаюцца ў выйгрышы."
411
+
412
+ #: view/admin/support.php:13
413
+ msgid "If you are using this plugin in a commercial setup, or feel that it's been particularly useful, then you may want to consider a <strong>commercial donation</strong>."
414
+ msgstr "Калі вы выкарыстоўваеце дадзеная ўбудова ў камерцыйных праектах ці лічыце, што ён быў вам асабліва карысны, то цалкам магчыма, што вы захочаце зрабіць <strong>камерцыйны ўнёсак</strong>."
415
+
416
+ #: view/admin/support.php:36
417
+ msgid "Individual<br/>Donation"
418
+ msgstr "Індывідуальны<br/>унёсак"
419
+
420
+ #: view/admin/support.php:56
421
+ msgid "Commercial<br/>Donation"
422
+ msgstr "Камерцыйны<br/>унёсак"
423
+
424
+ #: view/admin/support.php:60
425
+ msgid "Translations"
426
+ msgstr "Перакладнікі"
427
+
428
+ #: view/admin/support.php:62
429
+ msgid "If you're multi-lingual then you may want to consider donating a translation:"
430
+ msgstr "Калі вы валодаеце іншай мовай, вы можаце аказаць дапамогу, зрабіўшы пераклад:"
431
+
432
+ #: view/admin/support.php:70
433
+ msgid "All translators will have a link to their website placed on the plugin homepage at <a href=\"http://urbangiraffe.com/plugins/redirection/\">UrbanGiraffe</a>, in addition to being an individual supporter."
434
+ msgstr "Усе перакладнікі атрымліваюць спасылку на свой сайт з хатняй старонкі ўбудовы на <a href=\"http://urbangiraffe.com/plugins/redirection/\">UrbanGiraffe</a> і <a href=\"http://wordpress.org/extend/plugins/redirection/\">WordPress.org</a>, а таксама маюць магчымасць атрымліваць індывідуальную падтрымку."
435
+
436
+ #: view/admin/support.php:71
437
+ msgid "Full details of producing a translation can be found in this <a href=\"http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/\">guide to translating WordPress plugins</a>."
438
+ msgstr "Поўную інфармацыю пра падрыхтоўку перакладу можна знайсці ў <a href=\"http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/\">кіраўніцтве па перакладзе ўбудоў для WordPress</a>."
439
+
440
+ #: view/admin/options.php:15
441
+ msgid "Auto-generate URL"
442
+ msgstr "Аўтаматычная генерацыя URL"
443
+
444
+ #: view/admin/options.php:19
445
+ msgid "This will be used to auto-generate a URL if no URL is given. You can use the special tags $dec$ or $hex$ to have a unique ID inserted (either decimal or hex)"
446
+ msgstr "Выкарыстоўваецца для аўтаматычнай генерацыі URL, калі URL не прадстаўлены. Вы можаце выкарыстоўваць адмысловыя тэгі $dec$ ці $hex$ для ўстаўкі ўнікальнага ID (дзесятковыя ці шаснаццатковыя)"
447
+
448
+ #: view/admin/options.php:24
449
+ msgid "IP Lookup Service"
450
+ msgstr "Сэрвіс дазволу імёнаў па IP"
451
+
452
+ #: view/admin/options.php:30
453
+ msgid "Plugin Support"
454
+ msgstr "Падтрымка ўбудовы"
455
+
456
+ #: view/admin/options.php:33
457
+ msgid "I'm a nice person and I have helped support the author of this plugin"
458
+ msgstr "Я - добры чалавек і я падтрымаў аўтара дадзенай убудовы"
459
+
460
+ #: view/admin/options.php:37
461
+ msgid "Logging"
462
+ msgstr "Часопіс"
463
+
464
+ #: view/admin/options.php:40
465
+ msgid "log redirected requests"
466
+ msgstr "весці часопіс запытаў перанакіраванняў"
467
+
468
+ #: view/admin/options.php:42
469
+ msgid "log 404 Not Found requests"
470
+ msgstr "весці часопіс запытаў 404"
471
+
472
+ #: view/admin/options.php:43
473
+ msgid "Uncheck one or both of these to turn off logging and reduce database load if your redirected URLs are hit very frequently, and/or your site is very busy and pages are often not found."
474
+ msgstr "Калі вашы перанакіраваныя URL наведваюцца вельмі часта і/ці ваш сайт вельмі загружаны і старонкі часта бываюць не знойдзены, зніміце сцяжок з адной ці абедзвюх гэтых опцый каб адключыць вядзенне часопіса і тым самым зменшыць загрузку базы дадзеных."
475
+
476
+ #: view/admin/options.php:47
477
+ msgid "Expire Logs"
478
+ msgstr "Час жыцця часопіса"
479
+
480
+ #: view/admin/options.php:50
481
+ msgid "days (enter 0 for no expiry)"
482
+ msgstr "дзён (увядзіце 0 для неабмежаванага часу)"
483
+
484
+ #: view/admin/options.php:54
485
+ msgid "RSS Token"
486
+ msgstr "Токен RSS"
487
+
488
+ #: view/admin/options.php:57
489
+ msgid "A unique token allowing feed readers access to Redirection RSS (leave blank to auto-generate)"
490
+ msgstr "Унікальны радок для доступу да RSS фиду ўбудовы (пакіньце пусты для аўтаматычнай генерацыі)"
491
+
492
+ #: view/admin/options.php:62
493
+ msgid "URL Monitoring"
494
+ msgstr "Адсочванне URL"
495
+
496
+ #: view/admin/options.php:63
497
+ msgid "You can have Redirection detect changes in URLs and have an automatic redirection created in a specific group."
498
+ msgstr "Вы можаце ўключыць сачэнне за зменай URL і аўтаматычна ствараць перанакіраванне ў вызначанай групе."
499
+
500
+ #: view/admin/options.php:67
501
+ msgid "Post &amp; Page URLs"
502
+ msgstr "URL запісаў і старонак"
503
+
504
+ #: view/admin/options.php:70
505
+ #: view/admin/options.php:82
506
+ msgid "Don't monitor"
507
+ msgstr "Не адсочваць"
508
+
509
+ #: view/admin/options.php:74
510
+ msgid "Monitor new posts"
511
+ msgstr "Адсочванне новых запісаў"
512
+
513
+ #: view/admin/options.php:79
514
+ msgid "Category URLs"
515
+ msgstr "URL катэгорыі"
516
+
517
+ #: view/admin/options.php:89
518
+ msgid "Update"
519
+ msgstr "Абнавіць"
520
+
521
+ #: view/admin/options.php:95
522
+ msgid "Import"
523
+ msgstr "Імпарт"
524
+
525
+ #: view/admin/options.php:97
526
+ msgid "Here you can import redirections from an existing .htaccess file, a CSV file, or a Redirection XML."
527
+ msgstr "Вы можаце імпартаваць правілы перанакіраванняў з існых .htaccess, CSV ці XML файлаў"
528
+
529
+ #: view/admin/options.php:104
530
+ msgid "Import into"
531
+ msgstr "Імпартаваць у"
532
+
533
+ #: view/admin/options.php:107
534
+ msgid "Upload"
535
+ msgstr "Загрузіць"
536
+
537
+ #: view/admin/options.php:110
538
+ msgid "Note that the group is ignored when uploading an XML file."
539
+ msgstr "Нататка: група будзе праігнаравана пры загрузцы XML-файла."
540
+
541
+ #: view/admin/options.php:114
542
+ msgid "Delete Redirection"
543
+ msgstr "Выдаліць убудову"
544
+
545
+ #: view/admin/options.php:115
546
+ msgid "Selecting this option will delete all redirections, all logs, and any options associated with the Redirection plugin. Make sure this is what you want to do."
547
+ msgstr "Выбар дадзенай опцыі выдаліць усе наладжаныя перанакіраванні, усе часопісы і ўсе іншыя налады, злучаныя з дадзенай убудовай. Пераканаецеся, што гэта менавіта тое, чаго вы жадаеце."
548
+
549
+ #: view/admin/group_edit.php:10
550
+ msgid "Tracked"
551
+ msgstr "Сачэнне"
552
+
553
+ #: view/admin/group_edit.php:11
554
+ msgid "Whether to track 'hits' to items"
555
+ msgstr "Адсочваць кол-у спрацоўванняў"
556
+
557
+ #: view/admin/group_edit.php:14
558
+ msgid "Enabled"
559
+ msgstr "Уключана"
560
+
561
+ #: view/admin/group_edit.php:15
562
+ msgid "Disabling a group will disable all items contained within it"
563
+ msgstr "Адключэнне групы прывядзе да адключэння ўсіх пунктаў, якія змяшчаюцца ў ёй"
564
+
565
+ #: modules/404.php:37
566
+ msgid "Log 404s"
567
+ msgstr "Журналяванне 404"
568
+
569
+ #: modules/404.php:46
570
+ #: modules/wordpress.php:121
571
+ msgid "<strong>Disabled: You must enable <a href=\"options-permalink.php\">permalinks</a> before using this</strong>"
572
+ msgstr "<strong>Адключана: Перад выкарыстаннем павінны быць уключаны <a href=\"options-permalink.php\">ЧПУ</a>"
573
+
574
+ #: modules/404.php:57
575
+ msgid "<small>No options have been set</small>"
576
+ msgstr "<small>Няма наладжвальных параметраў</small>"
577
+
578
+ #: modules/apache.php:77
579
+ msgid "Location"
580
+ msgstr "Размяшчэнне"
581
+
582
+ #: modules/apache.php:82
583
+ msgid "WordPress is installed in: <code>%s</code>"
584
+ msgstr "WordPress усталяваны ў: <code>%s</code>"
585
+
586
+ #: modules/apache.php:87
587
+ msgid "Canonical"
588
+ msgstr "Аснова"
589
+
590
+ #: modules/apache.php:90
591
+ #: modules/apache.php:96
592
+ msgid "Leave as is"
593
+ msgstr "Пакінуць як ёсць"
594
+
595
+ #: modules/apache.php:90
596
+ msgid "Strip WWW (%s)"
597
+ msgstr "Выразаць WWW (%s)"
598
+
599
+ #: modules/apache.php:90
600
+ msgid "Force WWW (www.%s)"
601
+ msgstr "Прымусова выкарыстоўваць WWW (www.%s)"
602
+
603
+ #: modules/apache.php:94
604
+ msgid "Strip Index"
605
+ msgstr "Выдаленне індэксу"
606
+
607
+ #: modules/apache.php:96
608
+ msgid "Strip index files (html,php)"
609
+ msgstr "Выдаліць файлы index (html,php) "
610
+
611
+ #: modules/apache.php:101
612
+ msgid "Memory Limit"
613
+ msgstr "Ліміт памяці"
614
+
615
+ #: modules/apache.php:104
616
+ #: modules/apache.php:109
617
+ msgid "Server default"
618
+ msgstr "Налады сервера"
619
+
620
+ #: modules/apache.php:107
621
+ msgid "Error Level"
622
+ msgstr "Узровень памылак"
623
+
624
+ #: modules/apache.php:109
625
+ msgid "No errors"
626
+ msgstr "Без памылак"
627
+
628
+ #: modules/apache.php:109
629
+ msgid "Show errors"
630
+ msgstr "Паказваць памылкі"
631
+
632
+ #: modules/apache.php:114
633
+ msgid "Ban IPs"
634
+ msgstr "Блакаваць IP"
635
+
636
+ #: modules/apache.php:120
637
+ msgid "Allow IPs"
638
+ msgstr "Дазволіць IP"
639
+
640
+ #: modules/apache.php:126
641
+ msgid "Raw .htaccess"
642
+ msgstr "Неапрацаваны .htaccess"
643
+
644
+ #: modules/apache.php:132
645
+ msgid "Site URL"
646
+ msgstr "URL сайта"
647
+
648
+ #: modules/apache.php:135
649
+ msgid "Advanced: For management of external sites"
650
+ msgstr "Дадаткова: для кіравання вонкавымі сайтамі"
651
+
652
+ #: modules/apache.php:150
653
+ msgid "<strong>Location is invalid - check that path exists</strong>"
654
+ msgstr "<strong>Няправільнае размяшчэнне - праверце што шлях існуе</strong>"
655
+
656
+ #: modules/apache.php:156
657
+ msgid "<strong>Could not write to configured <code>.htaccess</code> file - check file permissions</strong>"
658
+ msgstr "<strong>Немагчыма запісаць файл <code>.htaccess</code> - праверце правы доступу</strong>"
659
+
660
+ #: modules/apache.php:163
661
+ msgid "<strong>Disabled: enter the location of an <code>.htaccess</code> file for this to be valid</strong>"
662
+ msgstr "<strong>Адключана: пакажыце становішча файла <code>.htaccess</code> ці прывядзіце яго ў працоўны стан</strong>"
663
+
664
+ #: modules/apache.php:168
665
+ msgid "strip WWW"
666
+ msgstr "выразаць WWW"
667
+
668
+ #: modules/apache.php:168
669
+ msgid "force WWW"
670
+ msgstr "прымусова выкарыстоўваць WWW"
671
+
672
+ #: modules/apache.php:171
673
+ msgid "strip index"
674
+ msgstr "выдаліць index"
675
+
676
+ #: modules/apache.php:174
677
+ msgid "memory limit at %dMB"
678
+ msgstr "ліміт памяці %dMB"
679
+
680
+ #: modules/apache.php:177
681
+ msgid "no errors"
682
+ msgstr "няма памылак"
683
+
684
+ #: modules/apache.php:177
685
+ msgid "show errors"
686
+ msgstr "паказаць памылкі"
687
+
688
+ #: modules/apache.php:180
689
+ msgid "IPs are banned"
690
+ msgstr "Забароненыя IP"
691
+
692
+ #: modules/apache.php:183
693
+ msgid "IPs are allowed"
694
+ msgstr "Дазволеныя IP"
695
+
696
+ #: models/redirect.php:386
697
+ msgid "Redirect to URL"
698
+ msgstr "Перанакіраваць на URL"
699
+
700
+ #: models/redirect.php:387
701
+ msgid "Redirect to random post"
702
+ msgstr "Перанакіраваць на выпадковы запіс"
703
+
704
+ #: models/redirect.php:388
705
+ msgid "Pass-through"
706
+ msgstr "Транзіт (pass-through)"
707
+
708
+ #: models/redirect.php:389
709
+ msgid "Error (404)"
710
+ msgstr "Памылка 404"
711
+
712
+ #: models/redirect.php:390
713
+ msgid "Do nothing"
714
+ msgstr "Нічога не рабіць"
715
+
716
+ #: models/module.php:161
717
+ #: models/database.php:94
718
+ msgid "WordPress"
719
+ msgstr "WordPress"
720
+
721
+ #: models/module.php:162
722
+ msgid "404 Errors"
723
+ msgstr "Памылкі 404"
724
+
725
+ #: models/module.php:187
726
+ msgid "Strip WWW"
727
+ msgstr "Выразаць WWW"
728
+
729
+ #: models/module.php:187
730
+ msgid "Force WWW"
731
+ msgstr "Прымусова выкарыстоўваць WWW"
732
+
733
+ #: models/module.php:192
734
+ msgid "Strip index.php"
735
+ msgstr "Выдаліць index.php"
736
+
737
+ #: models/database.php:96
738
+ msgid "404"
739
+ msgstr "404"
740
+
741
+ #: models/database.php:101
742
+ msgid "Redirections"
743
+ msgstr "Перанакіраванні"
744
+
745
+ #: models/database.php:102
746
+ msgid "Modified Posts"
747
+ msgstr "Змененыя запісы"
748
+
749
+ #: models/pager.php:404
750
+ msgid "Previous"
751
+ msgstr "Папярэдні"
752
+
753
+ #: models/pager.php:405
754
+ msgid "Next"
755
+ msgstr "Наступны"
756
+
757
+ #: models/pager.php:463
758
+ msgid "%d per-page"
759
+ msgstr "%d на старонку"
760
+
761
+ #: models/pager.php:472
762
+ msgid "Displaying %s&#8211;%s of %s"
763
+ msgstr "Паказана %s&#8211;%s з %s"
764
+
765
+ #: models/group.php:194
766
+ msgid "Yes"
767
+ msgstr "Так"
768
+
769
+ #: models/group.php:195
770
+ msgid "No"
771
+ msgstr "Не"
772
+
773
+ #: ajax.php:370
774
+ msgid "Sorry, but your redirection was not created"
775
+ msgstr "Выбачыце, перанакіраванне не было створана"
776
+
777
+ #: redirection.php:94
778
+ msgid "Settings"
779
+ msgstr "Налады"
780
+
781
+ #: redirection.php:112
782
+ msgid "Please wait..."
783
+ msgstr "Калі ласка пачакайце..."
784
+
785
+ #. #-#-#-#-# plugin.pot (Redirection 2.2.5) #-#-#-#-#
786
+ #. Plugin Name of the plugin/theme
787
+ #: redirection.php:121
788
+ msgid "Redirection"
789
+ msgstr "Перанакіраванні"
790
+
791
+ #: redirection.php:159
792
+ msgid "Your module was successfully created"
793
+ msgstr "Модуль паспяхова створаны"
794
+
795
+ #: redirection.php:163
796
+ msgid "Your module was not created - did you provide a name?"
797
+ msgstr "Модуль не быў створаны - не паказалі імя?"
798
+
799
+ #: redirection.php:228
800
+ msgid "Your options were updated"
801
+ msgstr "Вашы налады былі абноўлены"
802
+
803
+ #: redirection.php:236
804
+ msgid "Redirection data has been deleted and the plugin disabled"
805
+ msgstr "Усе налады перанакіраванняў былі выдалены, а ўбудова адключаны"
806
+
807
+ #: redirection.php:246
808
+ msgid "%d redirection was successfully imported"
809
+ msgid_plural "%d redirections were successfully imported"
810
+ msgstr[0] "%d перанакіраванне было паспяхова імпартавана"
811
+ msgstr[1] "%d перанакіраванні былі паспяхова імпартаваны"
812
+
813
+ #: redirection.php:248
814
+ msgid "No items were imported"
815
+ msgstr "Нічога не імпартавана"
816
+
817
+ #: redirection.php:266
818
+ msgid "Your logs have been deleted"
819
+ msgstr "Вашы часопісы былі выдалены"
820
+
821
+ #: redirection.php:289
822
+ msgid "Your group was added successfully"
823
+ msgstr "Ваша група паспяхова дададзена"
824
+
825
+ #: redirection.php:293
826
+ msgid "Please specify a group name"
827
+ msgstr "Калі ласка, вызначыце імя групы"
828
+
829
+ #: redirection.php:330
830
+ msgid "Redirection is available in"
831
+ msgstr "Перанакіраванні даступныя ў"
832
+
833
+ #: matches/url.php:25
834
+ msgid "URL only"
835
+ msgstr "Толькі URL"
836
+
837
+ #: matches/url.php:40
838
+ #: matches/user_agent.php:55
839
+ #: matches/referrer.php:47
840
+ msgid "HTTP Code"
841
+ msgstr "Код HTTP"
842
+
843
+ #: matches/login.php:25
844
+ msgid "URL and login status"
845
+ msgstr "URL і статут уваходу"
846
+
847
+ #: matches/login.php:33
848
+ msgid "The target URL will be chosen from one of the following URLs, depending if the user is logged in or out. Leaving a URL blank means that the user is not redirected."
849
+ msgstr "Будзе абраны адзін з наступных URL-адрасоў у залежнасці ад таго, увойдзе карыстач у сістэму ці няма. Калі пакінуць поле пустым - карыстач перанакіроўвацца не будзе."
850
+
851
+ #: matches/login.php:39
852
+ #: matches/login.php:41
853
+ msgid "Logged In"
854
+ msgstr "Залогинен"
855
+
856
+ #: matches/login.php:51
857
+ #: matches/login.php:53
858
+ msgid "Logged Out"
859
+ msgstr "Разлогинен"
860
+
861
+ #: matches/user_agent.php:27
862
+ msgid "URL and user agent"
863
+ msgstr "URL і User-Agent"
864
+
865
+ #: matches/user_agent.php:32
866
+ msgid "FeedBurner"
867
+ msgstr "FeedBurner"
868
+
869
+ #: matches/user_agent.php:33
870
+ msgid "Internet Explorer"
871
+ msgstr "Internet Explorer"
872
+
873
+ #: matches/user_agent.php:34
874
+ msgid "FireFox"
875
+ msgstr "FireFox"
876
+
877
+ #: matches/user_agent.php:35
878
+ msgid "Opera"
879
+ msgstr "Opera"
880
+
881
+ #: matches/user_agent.php:36
882
+ msgid "Safari"
883
+ msgstr "Safari"
884
+
885
+ #: matches/user_agent.php:37
886
+ msgid "iPhone"
887
+ msgstr "iPhone"
888
+
889
+ #: matches/user_agent.php:38
890
+ msgid "Nintendo Wii"
891
+ msgstr "Nintendo Wii"
892
+
893
+ #: matches/user_agent.php:66
894
+ msgid "The visitor will be redirected from the source URL if the user agent matches. You can specify a <em>matched</em> target URL as the address to send visitors if they do match, and <em>not matched</em> if they don't match. Leaving a URL blank means that the visitor is not redirected. <strong>All matches are performed as regular expressions</strong>.\n"
895
+ msgstr "Наведвальнік будзе перанакіраваны пры супадзенні User-Agent. Вы можаце вызначыць розныя мэтавыя URL пры супадзенні ці не супадзенні. Калі пакінуць поле пустым, то наведвальнік нікуды перанакіроўвацца не будзе. <strong>Усе ўмовы ўводзяцца як рэгулярныя выразы</strong>.\n"
896
+
897
+ #: matches/user_agent.php:73
898
+ #: matches/user_agent.php:75
899
+ #: matches/referrer.php:63
900
+ #: matches/referrer.php:65
901
+ msgid "Matched"
902
+ msgstr "Супадаюць"
903
+
904
+ #: matches/user_agent.php:83
905
+ #: matches/user_agent.php:85
906
+ #: matches/referrer.php:73
907
+ #: matches/referrer.php:75
908
+ msgid "Not matched"
909
+ msgstr "Не супадаюць"
910
+
911
+ #: matches/referrer.php:28
912
+ msgid "URL and referrer"
913
+ msgstr "URL і реферер"
914
+
915
+ #: matches/referrer.php:57
916
+ msgid "The visitor will be redirected from the source URL if the referrer matches. You can specify a <em>matched</em> target URL as the address to send visitors if they do match, and <em>not matched</em> if they don't match. Leaving a URL blank means that the visitor is not redirected."
917
+ msgstr "Наведвальнік будзе перенапрвлен на URL крыніцы пры супадзенні реферера. Вы можаце вызначыць розныя мэтавыя URL пры супадзенні і не супадзенні. Калі пакінуць поле пустым, наведвальнік нікуды перанакіроўвацца не будзе."
918
+
919
+ #. Plugin URI of the plugin/theme
920
+ msgid "http://urbangiraffe.com/plugins/redirection/"
921
+ msgstr "http://urbangiraffe.com/plugins/redirection/"
922
+
923
+ #. Description of the plugin/theme
924
+ msgid "Manage all your 301 redirects and monitor 404 errors"
925
+ msgstr "Кіруйце ўсімі 301-перанакіраваннямі і адсочвайце памылкі 404"
926
+
927
+ #. Author of the plugin/theme
928
+ msgid "John Godley"
929
+ msgstr "Джон Годли"
930
+
931
+ #. Author URI of the plugin/theme
932
+ msgid "http://urbangiraffe.com"
933
+ msgstr "http://urbangiraffe.com"
934
+
935
+ #~ msgid " for external site: <code>%s</code>"
936
+ #~ msgstr " для вонкавага сайта: <code>%s</code>"
937
+
938
+ #~ msgid "1 minute"
939
+ #~ msgstr "1 хвіліна"
940
+
941
+ #~ msgid "2 minutes"
942
+ #~ msgstr "2 хвіліны"
943
+
944
+ #~ msgid "30 seconds"
945
+ #~ msgstr "30 секунд"
946
+
947
+ #~ msgid "5 minutes"
948
+ #~ msgstr "5 мінуць"
949
+
950
+ #~ msgid "As long as possible"
951
+ #~ msgstr "Як мага даўжэй"
952
+
953
+ #~ msgid "Export to CSV"
954
+ #~ msgstr "Экспарт у CSV"
955
+
956
+ #~ msgid ""
957
+ #~ "Please read the documentation and FAQ, and check the bug tracker, before "
958
+ #~ "asking a question."
959
+ #~ msgstr ""
960
+ #~ "Калі ласка, прачытайце дакументацыю і FAQ, а таксама праверце памылку на "
961
+ #~ "трэкеры, перш чым задаць пытанне."
962
+
963
+ #~ msgid "Redirection Bug Tracker"
964
+ #~ msgstr "Паведаміць пра памылкі"
965
+
966
+ #~ msgid "Redirection Documentation"
967
+ #~ msgstr "Дакументацыя па ўбудове"
968
+
969
+ #~ msgid "Redirection FAQ"
970
+ #~ msgstr "Часта задаваныя пытанні (FAQ)"
971
+
972
+ #~ msgid "Redirection Help"
973
+ #~ msgstr "Дапамога"
974
+
975
+ #~ msgid "Redirection Support Forum"
976
+ #~ msgstr "Форум падтрымкі"
977
+
978
+ #~ msgid "Strip index files (html,php,asp)"
979
+ #~ msgstr "Выдаліць файлы index (html,php,asp)"
980
+
981
+ #~ msgid "Time Limit"
982
+ #~ msgstr "Ліміт часу"
983
+
984
+ #~ msgid "time limit at %ss"
985
+ #~ msgstr "ліміт часу %ss"
986
+
987
+ #~ msgid "time limit set as long as possible"
988
+ #~ msgstr "ліміт часу ўсталяваны на максімальна магчымы"
locale/cs_CZ.mo ADDED
Binary file
locale/cs_CZ.po ADDED
@@ -0,0 +1,1135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Redirection 2.2.5\n"
4
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/redirection\n"
5
+ "POT-Creation-Date: 2011-07-17 10:14:58+00:00\n"
6
+ "PO-Revision-Date: 2011-08-18 13:24+0100\n"
7
+ "Last-Translator: Martin Jurica <martin@jurica.info>\n"
8
+ "Language-Team: Martin Jurica <martin@jurica.info>\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Poedit-SourceCharset: utf-8\n"
14
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
15
+ "X-Poedit-Basepath: .\n"
16
+ "X-Textdomain-Support: yes\n"
17
+ "X-Poedit-SearchPath-0: .\n"
18
+
19
+ #@ redirection
20
+ #: fileio/csv.php:21
21
+ #, php-format
22
+ msgid "module_%d.csv"
23
+ msgstr "module_%d.csv"
24
+
25
+ #@ redirection
26
+ #: fileio/xml.php:32
27
+ #, php-format
28
+ msgid "module_%d.xml"
29
+ msgstr "module_%d.xml"
30
+
31
+ #@ redirection
32
+ #: fileio/xml.php:105
33
+ #, php-format
34
+ msgid "%s imported on %s at %s"
35
+ msgstr "%s importován z %s na %s"
36
+
37
+ #@ redirection
38
+ #: fileio/xml.php:168
39
+ msgid "XML importing is only available with PHP5 - you have PHP4."
40
+ msgstr "XML import je k dispozici pouze v PHP5 - používáte bohužel PHP4."
41
+
42
+ #@ redirection
43
+ #: view/admin/group_list.php:6
44
+ msgid "Groups for module"
45
+ msgstr "Skupiny modulu"
46
+
47
+ #@ redirection
48
+ #: view/admin/group_list.php:16
49
+ #: view/admin/log.php:38
50
+ msgid "Module"
51
+ msgstr "Modul"
52
+
53
+ #@ redirection
54
+ #: view/admin/group_list.php:21
55
+ #: view/admin/item_list.php:29
56
+ #: view/admin/log.php:16
57
+ #: view/admin/log.php:23
58
+ msgid "Search"
59
+ msgstr "Hledat"
60
+
61
+ #@ redirection
62
+ #: view/admin/group_list.php:26
63
+ msgid "go"
64
+ msgstr "go"
65
+
66
+ #@ redirection
67
+ #: view/admin/group_list.php:36
68
+ #: view/admin/item_list.php:42
69
+ #: view/admin/module_list.php:17
70
+ msgid "Hits"
71
+ msgstr "Zobrazení"
72
+
73
+ #@ redirection
74
+ #: view/admin/group_edit.php:6
75
+ #: view/admin/group_list.php:37
76
+ #: view/admin/group_list.php:100
77
+ #: view/admin/module_edit.php:18
78
+ #: view/admin/module_list.php:42
79
+ msgid "Name"
80
+ msgstr "Jméno"
81
+
82
+ #@ redirection
83
+ #: view/admin/group_list.php:59
84
+ #: view/admin/item_list.php:67
85
+ msgid "Select All"
86
+ msgstr "Vybrat vše"
87
+
88
+ #@ redirection
89
+ #: view/admin/group_list.php:60
90
+ #: view/admin/item_list.php:68
91
+ msgid "Toggle"
92
+ msgstr "Povolit/Zakázat"
93
+
94
+ #@ redirection
95
+ #: view/admin/group_list.php:61
96
+ #: view/admin/item_list.php:69
97
+ msgid "Reset Hits"
98
+ msgstr "Vynulovat počet zobrazení"
99
+
100
+ #@ redirection
101
+ #@ default
102
+ #: view/admin/group_list.php:62
103
+ #: view/admin/item_list.php:70
104
+ #: view/admin/log.php:30
105
+ #: view/admin/options.php:120
106
+ msgid "Delete"
107
+ msgstr "Odstranit"
108
+
109
+ #@ redirection
110
+ #: view/admin/group_list.php:64
111
+ #: view/admin/item_list.php:72
112
+ msgid "Move To"
113
+ msgstr "Přesunout do"
114
+
115
+ #@ redirection
116
+ #: view/admin/group_list.php:69
117
+ #: view/admin/item_list.php:34
118
+ #: view/admin/item_list.php:77
119
+ msgid "Go"
120
+ msgstr "Go"
121
+
122
+ #@ redirection
123
+ #: view/admin/group_list.php:75
124
+ #: view/admin/item_list.php:83
125
+ msgid "re-order"
126
+ msgstr "přeuspořádat"
127
+
128
+ #@ redirection
129
+ #: view/admin/group_list.php:76
130
+ #: view/admin/item_list.php:84
131
+ msgid "save order"
132
+ msgstr "uložit pořadí"
133
+
134
+ #@ redirection
135
+ #: view/admin/group_list.php:89
136
+ msgid "You have no groups in this module."
137
+ msgstr "Tento modul neobsahuje žádné skupiny."
138
+
139
+ #@ redirection
140
+ #: view/admin/group_list.php:94
141
+ msgid "Add Group"
142
+ msgstr "Přidat skupinu"
143
+
144
+ #@ redirection
145
+ #: view/admin/group_list.php:105
146
+ msgid "Add"
147
+ msgstr "Přidat"
148
+
149
+ #@ redirection
150
+ #: redirection.php:116
151
+ #: view/admin/group_list.php:117
152
+ #: view/admin/item_list.php:112
153
+ #: view/admin/log.php:112
154
+ msgid "No items have been selected"
155
+ msgstr "Nebyly vybrány žádné položky"
156
+
157
+ #@ redirection
158
+ #: redirection.php:115
159
+ #: view/admin/group_list.php:118
160
+ #: view/admin/item_list.php:113
161
+ #: view/admin/log.php:113
162
+ msgid "Are you sure?"
163
+ msgstr "Opravdu?"
164
+
165
+ #@ redirection
166
+ #: view/admin/submenu.php:6
167
+ msgid "Redirects"
168
+ msgstr "Přesměrování"
169
+
170
+ #@ redirection
171
+ #: view/admin/module_list.php:15
172
+ #: view/admin/submenu.php:11
173
+ msgid "Groups"
174
+ msgstr "Skupiny"
175
+
176
+ #@ redirection
177
+ #: view/admin/module_list.php:6
178
+ #: view/admin/submenu.php:16
179
+ msgid "Modules"
180
+ msgstr "Moduly"
181
+
182
+ #@ redirection
183
+ #: view/admin/submenu.php:21
184
+ msgid "Log"
185
+ msgstr "Log"
186
+
187
+ #@ redirection
188
+ #: view/admin/options.php:6
189
+ #: view/admin/submenu.php:26
190
+ msgid "Options"
191
+ msgstr "Nastavení"
192
+
193
+ #@ redirection
194
+ #: view/admin/submenu.php:31
195
+ msgid "Support"
196
+ msgstr "Podpora"
197
+
198
+ #@ redirection
199
+ #: view/admin/module_item.php:23
200
+ msgid "View as"
201
+ msgstr "Zobrazit jako"
202
+
203
+ #@ redirection
204
+ #: view/admin/module_item.php:25
205
+ msgid "CSV"
206
+ msgstr "CSV"
207
+
208
+ #@ redirection
209
+ #: view/admin/module_item.php:26
210
+ msgid "XML"
211
+ msgstr "XML"
212
+
213
+ #@ redirection
214
+ #: models/database.php:95
215
+ #: models/module.php:160
216
+ #: view/admin/module_item.php:27
217
+ msgid "Apache"
218
+ msgstr "Apache"
219
+
220
+ #@ redirection
221
+ #: view/admin/module_item.php:28
222
+ msgid "RSS"
223
+ msgstr "RSS"
224
+
225
+ #@ redirection
226
+ #: view/admin/module_item.php:41
227
+ msgid "edit"
228
+ msgstr "upravit"
229
+
230
+ #@ redirection
231
+ #: view/admin/module_item.php:43
232
+ msgid "delete"
233
+ msgstr "odstranit"
234
+
235
+ #@ redirection
236
+ #: view/admin/module_item.php:45
237
+ msgid "reset"
238
+ msgstr "reset"
239
+
240
+ #@ redirection
241
+ #: view/admin/log.php:6
242
+ msgid "Redirection Log"
243
+ msgstr "Logy přesměrování"
244
+
245
+ #@ default
246
+ #: view/admin/log.php:29
247
+ msgid "Bulk Actions"
248
+ msgstr "Hromadné akce"
249
+
250
+ #@ default
251
+ #: view/admin/log.php:33
252
+ msgid "Apply"
253
+ msgstr "Použít"
254
+
255
+ #@ redirection
256
+ #: view/admin/add.php:36
257
+ #: view/admin/item_list.php:24
258
+ #: view/admin/log.php:43
259
+ msgid "Group"
260
+ msgstr "Skupina"
261
+
262
+ #@ default
263
+ #: view/admin/log.php:49
264
+ msgid "Filter"
265
+ msgstr "Filtr"
266
+
267
+ #@ redirection
268
+ #: view/admin/log.php:67
269
+ msgid "Date"
270
+ msgstr "Datum"
271
+
272
+ #@ redirection
273
+ #: view/admin/add.php:12
274
+ #: view/admin/item_edit.php:15
275
+ #: view/admin/log.php:68
276
+ #: view/admin/log_item_details.php:4
277
+ msgid "Source URL"
278
+ msgstr "Zdrojová URL"
279
+
280
+ #@ redirection
281
+ #: matches/referrer.php:40
282
+ #: view/admin/log.php:69
283
+ msgid "Referrer"
284
+ msgstr "Referrer"
285
+
286
+ #@ redirection
287
+ #: view/admin/log.php:70
288
+ msgid "IP"
289
+ msgstr "IP"
290
+
291
+ #@ redirection
292
+ #: view/admin/log.php:85
293
+ msgid "There are no logs to display!"
294
+ msgstr "Není k dispozici žádný log pro zobrazení!"
295
+
296
+ #@ redirection
297
+ #: view/admin/log.php:94
298
+ msgid "Process Current Logs"
299
+ msgstr "Operace s aktuálními logy"
300
+
301
+ #@ redirection
302
+ #: view/admin/log.php:95
303
+ msgid "These actions will affect all currently available logs (i.e. your search phrase will restrict the log items)."
304
+ msgstr "Tyto akce budou mít vliv na všechny logy, které jsou k dispozici (pomocí vyhledávání můžete omezit rozsah zpracovaných logů)."
305
+
306
+ #@ redirection
307
+ #: view/admin/log.php:100
308
+ msgid "Delete Logs"
309
+ msgstr "Smazat logy"
310
+
311
+ #@ redirection
312
+ #: view/admin/item_list.php:7
313
+ msgid "Redirections for group"
314
+ msgstr "Přesměrování pro skupinu"
315
+
316
+ #@ redirection
317
+ #: view/admin/item_list.php:41
318
+ msgid "Last Access"
319
+ msgstr "Poslední přístup"
320
+
321
+ #@ redirection
322
+ #: view/admin/item_list.php:43
323
+ #: view/admin/module_list.php:46
324
+ msgid "Type"
325
+ msgstr "Typ"
326
+
327
+ #@ redirection
328
+ #: view/admin/item_list.php:44
329
+ msgid "URL"
330
+ msgstr "URL"
331
+
332
+ #@ redirection
333
+ #: view/admin/item_list.php:44
334
+ msgid "Position"
335
+ msgstr "Pozice"
336
+
337
+ #@ redirection
338
+ #: view/admin/item_list.php:88
339
+ msgid "You have no redirections."
340
+ msgstr "Neexistuje žádné přesměrování."
341
+
342
+ #@ redirection
343
+ #: view/admin/log_item_details.php:9
344
+ msgid "Redirect to"
345
+ msgstr "Přesměrovat na"
346
+
347
+ #@ redirection
348
+ #: view/admin/log_item_details.php:15
349
+ msgid "Redirected by"
350
+ msgstr "Přesměrováno dle"
351
+
352
+ #@ redirection
353
+ #: view/admin/log_item_details.php:16
354
+ msgid "for"
355
+ msgstr "pro"
356
+
357
+ #@ redirection
358
+ #: matches/user_agent.php:43
359
+ #: view/admin/log_item_details.php:20
360
+ msgid "User Agent"
361
+ msgstr "User Agent"
362
+
363
+ #@ redirection
364
+ #: view/admin/group_item.php:23
365
+ #: view/admin/item.php:27
366
+ msgid "disabled"
367
+ msgstr "zakázáno"
368
+
369
+ #@ redirection
370
+ #: view/admin/item_edit.php:3
371
+ #, php-format
372
+ msgid "%s by matching %s"
373
+ msgstr "%s odpovídá %s"
374
+
375
+ #@ redirection
376
+ #: view/admin/item_edit.php:7
377
+ msgid "Title"
378
+ msgstr "Nadpis"
379
+
380
+ #@ redirection
381
+ #: view/admin/item_edit.php:10
382
+ msgid "optional"
383
+ msgstr "volitelný"
384
+
385
+ #@ redirection
386
+ #: matches/referrer.php:43
387
+ #: view/admin/item_edit.php:18
388
+ msgid "Regex"
389
+ msgstr "Regex"
390
+
391
+ #@ redirection
392
+ #: view/admin/group_edit.php:20
393
+ #: view/admin/item_edit.php:27
394
+ #: view/admin/module_edit.php:27
395
+ msgid "Save"
396
+ msgstr "Uložit"
397
+
398
+ #@ redirection
399
+ #: view/admin/group_edit.php:21
400
+ #: view/admin/item_edit.php:28
401
+ #: view/admin/module_edit.php:28
402
+ msgid "Cancel"
403
+ msgstr "Zrušit"
404
+
405
+ #@ redirection
406
+ #: view/admin/add.php:3
407
+ msgid "Add new redirection"
408
+ msgstr "Přidat nové přesměrování"
409
+
410
+ #@ redirection
411
+ #: view/admin/add.php:6
412
+ msgid "Your redirection has been added."
413
+ msgstr "Přesměrování bylo přidáno."
414
+
415
+ #@ redirection
416
+ #: view/admin/add.php:16
417
+ msgid "Match"
418
+ msgstr "Shoda"
419
+
420
+ #@ redirection
421
+ #: view/admin/add.php:22
422
+ msgid "Action"
423
+ msgstr "Akce"
424
+
425
+ #@ redirection
426
+ #: view/admin/add.php:27
427
+ msgid "Regular expression"
428
+ msgstr "Regulární výraz"
429
+
430
+ #@ redirection
431
+ #: matches/url.php:32
432
+ #: view/admin/add.php:31
433
+ msgid "Target URL"
434
+ msgstr "Cílová URL"
435
+
436
+ #@ redirection
437
+ #: view/admin/add.php:43
438
+ msgid "Add Redirection"
439
+ msgstr "Přidat přesměrování"
440
+
441
+ #@ redirection
442
+ #: view/admin/group_item.php:3
443
+ msgid "edit group"
444
+ msgstr "upravit skupinu"
445
+
446
+ #@ redirection
447
+ #: view/admin/module_list.php:14
448
+ msgid "Details"
449
+ msgstr "Podrobnosti"
450
+
451
+ #@ redirection
452
+ #: view/admin/module_list.php:16
453
+ msgid "Items"
454
+ msgstr "Položky"
455
+
456
+ #@ redirection
457
+ #: view/admin/module_list.php:18
458
+ msgid "Operations"
459
+ msgstr "Operace"
460
+
461
+ #@ redirection
462
+ #: view/admin/module_list.php:27
463
+ msgid "Note: Hits are dependant on log entries"
464
+ msgstr "Poznámka: Počet zobrazení je vypočítán ze záznamů v logu"
465
+
466
+ #@ redirection
467
+ #: view/admin/module_list.php:29
468
+ msgid "You have no modules defined yet"
469
+ msgstr "Žádné moduly nebyly dosud definovány"
470
+
471
+ #@ redirection
472
+ #: view/admin/module_list.php:34
473
+ msgid "Add Module"
474
+ msgstr "Přidat modul"
475
+
476
+ #@ redirection
477
+ #: view/admin/module_list.php:35
478
+ msgid "A module is a controlling element that determines how redirections are handled. Elements in a WordPress module are handled by WordPress, elements in an Apache module are handled by <code>.htaccess</code>, and elements in a 404 module affect how 404 errors are logged."
479
+ msgstr "Modul je kontrolní prvek, který určuje, jakým způsobem jsou zpracovávány přesměrování. Záznamy v modulu WordPress jsou zpracovány WordPressem, záznamy v modulu Apache zpracovává <code>.htaccess</code>, a záznamy v modulu 404 ovlivní, jak budou zalogovány chyby 404."
480
+
481
+ #@ redirection
482
+ #: view/admin/module_list.php:55
483
+ msgid "Create"
484
+ msgstr "Vytvořit"
485
+
486
+ #@ redirection
487
+ #: view/admin/support.php:5
488
+ msgid "Redirection Support"
489
+ msgstr "Podpora pro Redirection"
490
+
491
+ #@ redirection
492
+ #: view/admin/support.php:9
493
+ msgid "Redirection is free to use - life is wonderful and lovely! However, it has required a great deal of time and effort to develop and if it has been useful you can help support this development by <strong>making a small donation</strong>."
494
+ msgstr "Plugin Redirection je šířen zdarma - život je krásný, autor vás má rád! Nicméně, vývoj vyžaduje hodně času a úsilí... Pokud vám tento plugin připadá užitečný, neostýchejte se podpořit jeho vývoj <strong>drobným příspěvkem.</strong>"
495
+
496
+ #@ redirection
497
+ #: view/admin/support.php:10
498
+ msgid "This will act as an incentive for me to carry on developing, providing countless hours of support, and including new features and suggestions. You get some useful software and I get to carry on making it. Everybody wins."
499
+ msgstr "Drobnou dotací nejen přispějete na další vývoj, ale dáte mi také najevo, že tento plugin má smysl a mám pokračovat v jeho vývoji, podpoře vás, uživatelů, a v přidávání dalších skvělých funkcí. Vy tak získáte užitečný software a já povzbuzení do další práce. A to za to stojí, nemyslíte?"
500
+
501
+ #@ redirection
502
+ #: view/admin/support.php:13
503
+ msgid "If you are using this plugin in a commercial setup, or feel that it's been particularly useful, then you may want to consider a <strong>commercial donation</strong>."
504
+ msgstr "Používáte-li tento plugin ve firemní sféře, nebo máte pocit, že je extrémně užitečný, pak byste možná mohli zvážit <strong>výraznější dotaci za komerční využití.</strong>"
505
+
506
+ #@ redirection
507
+ #: view/admin/support.php:36
508
+ msgid "Individual<br/>Donation"
509
+ msgstr "Individuální<br/>příspěvek"
510
+
511
+ #@ redirection
512
+ #: view/admin/support.php:56
513
+ msgid "Commercial<br/>Donation"
514
+ msgstr "Komerční<br/>příspěvek"
515
+
516
+ #@ redirection
517
+ #: view/admin/support.php:60
518
+ msgid "Translations"
519
+ msgstr "Překlady"
520
+
521
+ #@ redirection
522
+ #: view/admin/support.php:62
523
+ msgid "If you're multi-lingual then you may want to consider donating a translation:"
524
+ msgstr "Pokud hovoříte více jazyky, můžete podpořit další vývoj pluginu jeho přeložením například do těchto jazyků:"
525
+
526
+ #@ redirection
527
+ #: view/admin/support.php:70
528
+ msgid "All translators will have a link to their website placed on the plugin homepage at <a href=\"http://urbangiraffe.com/plugins/redirection/\">UrbanGiraffe</a>, in addition to being an individual supporter."
529
+ msgstr "Všichni překladatelé získají odkaz na své webové stránky na domovské stránce pluginu <a href=\"http://urbangiraffe.com/plugins/redirection/\">UrbanGiraffe</a>. A pochopitelně dobrý pocit z přispění komunitě."
530
+
531
+ #@ redirection
532
+ #: view/admin/support.php:71
533
+ msgid "Full details of producing a translation can be found in this <a href=\"http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/\">guide to translating WordPress plugins</a>."
534
+ msgstr "Kompletní postup pro překládání je k dispozici v podobě <a href=\"http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/\">příručky pro překlad WordPress pluginů</a> ."
535
+
536
+ #@ redirection
537
+ #: view/admin/options.php:15
538
+ msgid "Auto-generate URL"
539
+ msgstr "Automatické generování URL"
540
+
541
+ #@ redirection
542
+ #: view/admin/options.php:19
543
+ msgid "This will be used to auto-generate a URL if no URL is given. You can use the special tags $dec$ or $hex$ to have a unique ID inserted (either decimal or hex)"
544
+ msgstr "Tato volba je použita pro automatické generování URL v případě, kdy není URL specifikována. Je možné použít speciální tagy $dec$ nebo $hex$ pro vložení unikátního ID do URL (dec - dekadický, hex - šestnáctkový)"
545
+
546
+ #@ redirection
547
+ #: view/admin/options.php:24
548
+ msgid "IP Lookup Service"
549
+ msgstr "Služba pro vyhledávání dle IP"
550
+
551
+ #@ redirection
552
+ #: view/admin/options.php:30
553
+ msgid "Plugin Support"
554
+ msgstr "Podpora pluginu"
555
+
556
+ #@ redirection
557
+ #: view/admin/options.php:33
558
+ msgid "I'm a nice person and I have helped support the author of this plugin"
559
+ msgstr "Jsem milý člověk a podpořil jsem vývoj tohoto pluginu"
560
+
561
+ #@ redirection
562
+ #: view/admin/options.php:37
563
+ msgid "Logging"
564
+ msgstr "Logování"
565
+
566
+ #@ redirection
567
+ #: view/admin/options.php:40
568
+ msgid "log redirected requests"
569
+ msgstr "logovat žádosti o přesměrování"
570
+
571
+ #@ redirection
572
+ #: view/admin/options.php:42
573
+ msgid "log 404 Not Found requests"
574
+ msgstr "logovat požadavky 404 - Nenalezeno"
575
+
576
+ #@ redirection
577
+ #: view/admin/options.php:43
578
+ msgid "Uncheck one or both of these to turn off logging and reduce database load if your redirected URLs are hit very frequently, and/or your site is very busy and pages are often not found."
579
+ msgstr "Zakázáním jedné nebo obou těchto voleb docílíte nižšího zatížení databáze a vyššího výkonu webu. To se hodí zejména u webů, které mají omezené systémové zdroje, velký počet přesměrování a chybných URL či v případech, kdy nepotřebujete záznamy o proběhlých přesměrováních."
580
+
581
+ #@ redirection
582
+ #: view/admin/options.php:47
583
+ msgid "Expire Logs"
584
+ msgstr "Expirace logů"
585
+
586
+ #@ redirection
587
+ #: view/admin/options.php:50
588
+ msgid "days (enter 0 for no expiry)"
589
+ msgstr "dnů (při zadání 0 neexpirují logy nikdy)"
590
+
591
+ #@ redirection
592
+ #: view/admin/options.php:54
593
+ msgid "RSS Token"
594
+ msgstr "RSS Token"
595
+
596
+ #@ redirection
597
+ #: view/admin/options.php:57
598
+ msgid "A unique token allowing feed readers access to Redirection RSS (leave blank to auto-generate)"
599
+ msgstr "Unikátní token umožňující přístup RSS čtečkám k Redirection RSS (ponechte prázdné pro automatické generování)"
600
+
601
+ #@ redirection
602
+ #: view/admin/options.php:62
603
+ msgid "URL Monitoring"
604
+ msgstr "URL Monitoring"
605
+
606
+ #@ redirection
607
+ #: view/admin/options.php:63
608
+ msgid "You can have Redirection detect changes in URLs and have an automatic redirection created in a specific group."
609
+ msgstr "Plugin Redirection může detekovat změny v URL a na jejich základě vytvářet automatická přesměrování pro konkrétní skupiny."
610
+
611
+ #@ redirection
612
+ #: view/admin/options.php:67
613
+ msgid "Post &amp; Page URLs"
614
+ msgstr "URL Příspěvků &amp; Stránek"
615
+
616
+ #@ redirection
617
+ #: view/admin/options.php:70
618
+ #: view/admin/options.php:82
619
+ msgid "Don't monitor"
620
+ msgstr "Nesledovat"
621
+
622
+ #@ redirection
623
+ #: view/admin/options.php:74
624
+ msgid "Monitor new posts"
625
+ msgstr "Sledovat nové příspěvky"
626
+
627
+ #@ redirection
628
+ #: view/admin/options.php:79
629
+ msgid "Category URLs"
630
+ msgstr "URL kategorií"
631
+
632
+ #@ redirection
633
+ #: view/admin/options.php:89
634
+ msgid "Update"
635
+ msgstr "Aktualizovat"
636
+
637
+ #@ redirection
638
+ #: view/admin/options.php:95
639
+ msgid "Import"
640
+ msgstr "Import"
641
+
642
+ #@ redirection
643
+ #: view/admin/options.php:97
644
+ msgid "Here you can import redirections from an existing .htaccess file, a CSV file, or a Redirection XML."
645
+ msgstr "Složí k importu přesměrování z existujícího souboru .htaccess, CSV souboru nebo z XML exportu pluginu Redirection."
646
+
647
+ #@ redirection
648
+ #: view/admin/options.php:104
649
+ msgid "Import into"
650
+ msgstr "Importovat do"
651
+
652
+ #@ redirection
653
+ #: view/admin/options.php:107
654
+ msgid "Upload"
655
+ msgstr "Nahrát"
656
+
657
+ #@ redirection
658
+ #: view/admin/options.php:110
659
+ msgid "Note that the group is ignored when uploading an XML file."
660
+ msgstr "Poznámka: Nastavení Skupiny je při nahrání XML souboru ignorováno."
661
+
662
+ #@ redirection
663
+ #: view/admin/options.php:114
664
+ msgid "Delete Redirection"
665
+ msgstr "Odstranit plugin Redirection"
666
+
667
+ #@ redirection
668
+ #: view/admin/options.php:115
669
+ msgid "Selecting this option will delete all redirections, all logs, and any options associated with the Redirection plugin. Make sure this is what you want to do."
670
+ msgstr "Výběrem této možnosti dojde k odstranění všech přesměrování, logů a všech nastavení, spojených s pluginem Redirection. Tyto změny není možné vzít zpět, ujistěte se, že víte, co děláte."
671
+
672
+ #@ redirection
673
+ #: view/admin/group_edit.php:10
674
+ msgid "Tracked"
675
+ msgstr "Sledování"
676
+
677
+ #@ redirection
678
+ #: view/admin/group_edit.php:11
679
+ msgid "Whether to track 'hits' to items"
680
+ msgstr "Sledovat 'hits' (použití) položek"
681
+
682
+ #@ redirection
683
+ #: view/admin/group_edit.php:14
684
+ msgid "Enabled"
685
+ msgstr "Povoleno"
686
+
687
+ #@ redirection
688
+ #: view/admin/group_edit.php:15
689
+ msgid "Disabling a group will disable all items contained within it"
690
+ msgstr "Zakázání skupiny současně zakáže všechny její položky"
691
+
692
+ #@ redirection
693
+ #: modules/404.php:37
694
+ msgid "Log 404s"
695
+ msgstr "Logovat chyby 404"
696
+
697
+ #@ redirection
698
+ #: modules/404.php:46
699
+ #: modules/wordpress.php:121
700
+ msgid "<strong>Disabled: You must enable <a href=\"options-permalink.php\">permalinks</a> before using this</strong>"
701
+ msgstr "<strong>Plugin neaktivní: nejprve musíte povolit <a href=\\\"options-permalink.php\\\">trvalé odkazy</a></strong>"
702
+
703
+ #@ redirection
704
+ #: modules/404.php:57
705
+ msgid "<small>No options have been set</small>"
706
+ msgstr "<small>Nic nebylo nastaveno</small>"
707
+
708
+ #@ redirection
709
+ #: modules/apache.php:77
710
+ msgid "Location"
711
+ msgstr "Umístění"
712
+
713
+ #@ redirection
714
+ #: modules/apache.php:82
715
+ #, php-format
716
+ msgid "WordPress is installed in: <code>%s</code>"
717
+ msgstr "WordPress je nainstalován v: <code>%s</code>"
718
+
719
+ #@ redirection
720
+ #: modules/apache.php:87
721
+ msgid "Canonical"
722
+ msgstr "Kanonizace"
723
+
724
+ #@ redirection
725
+ #: modules/apache.php:90
726
+ #: modules/apache.php:96
727
+ msgid "Leave as is"
728
+ msgstr "Beze změny"
729
+
730
+ #@ redirection
731
+ #: modules/apache.php:90
732
+ #, php-format
733
+ msgid "Strip WWW (%s)"
734
+ msgstr "Odebrat WWW (%s)"
735
+
736
+ #@ redirection
737
+ #: modules/apache.php:90
738
+ #, php-format
739
+ msgid "Force WWW (www.%s)"
740
+ msgstr "Vždy přidat WWW (www.%s)"
741
+
742
+ #@ redirection
743
+ #: modules/apache.php:94
744
+ msgid "Strip Index"
745
+ msgstr "Odebrat Index"
746
+
747
+ #@ redirection
748
+ #: modules/apache.php:96
749
+ msgid "Strip index files (html,php)"
750
+ msgstr "Odebrat soubory index (html,php)"
751
+
752
+ #@ redirection
753
+ #: modules/apache.php:101
754
+ msgid "Memory Limit"
755
+ msgstr "Memory Limit"
756
+
757
+ #@ redirection
758
+ #: modules/apache.php:104
759
+ #: modules/apache.php:109
760
+ msgid "Server default"
761
+ msgstr "Server default"
762
+
763
+ #@ redirection
764
+ #: modules/apache.php:107
765
+ msgid "Error Level"
766
+ msgstr "Error Level"
767
+
768
+ #@ redirection
769
+ #: modules/apache.php:109
770
+ msgid "No errors"
771
+ msgstr "No errors"
772
+
773
+ #@ redirection
774
+ #: modules/apache.php:109
775
+ msgid "Show errors"
776
+ msgstr "Show errors"
777
+
778
+ #@ redirection
779
+ #: modules/apache.php:114
780
+ msgid "Ban IPs"
781
+ msgstr "Zakázané IP"
782
+
783
+ #@ redirection
784
+ #: modules/apache.php:120
785
+ msgid "Allow IPs"
786
+ msgstr "Povolené IP"
787
+
788
+ #@ redirection
789
+ #: modules/apache.php:126
790
+ msgid "Raw .htaccess"
791
+ msgstr "Raw .htaccess"
792
+
793
+ #@ redirection
794
+ #: modules/apache.php:132
795
+ msgid "Site URL"
796
+ msgstr "URL webu"
797
+
798
+ #@ redirection
799
+ #: modules/apache.php:135
800
+ msgid "Advanced: For management of external sites"
801
+ msgstr "Pokročilé: Pro správu externích webů"
802
+
803
+ #@ redirection
804
+ #: modules/apache.php:150
805
+ msgid "<strong>Location is invalid - check that path exists</strong>"
806
+ msgstr "<strong>Umístění je chybné - zkontrolujte zadanou cestu</strong>"
807
+
808
+ #@ redirection
809
+ #: modules/apache.php:156
810
+ msgid "<strong>Could not write to configured <code>.htaccess</code> file - check file permissions</strong>"
811
+ msgstr "<strong>Nelze zapisovat do <code>.htaccess</code> souboru - zkontrolujte přístupová oprávnění</strong>"
812
+
813
+ #@ redirection
814
+ #: modules/apache.php:163
815
+ msgid "<strong>Disabled: enter the location of an <code>.htaccess</code> file for this to be valid</strong>"
816
+ msgstr "<strong>Zakázáno: Je potřeba zadat správné umístění souboru <code>.htaccess</code></strong>"
817
+
818
+ #@ redirection
819
+ #: modules/apache.php:168
820
+ msgid "strip WWW"
821
+ msgstr "odstranit WWW"
822
+
823
+ #@ redirection
824
+ #: modules/apache.php:168
825
+ msgid "force WWW"
826
+ msgstr "vždy použít WWW"
827
+
828
+ #@ redirection
829
+ #: modules/apache.php:171
830
+ msgid "strip index"
831
+ msgstr "odstranit index"
832
+
833
+ #@ redirection
834
+ #: modules/apache.php:174
835
+ #, php-format
836
+ msgid "memory limit at %dMB"
837
+ msgstr "memory limit - %dMB"
838
+
839
+ #@ redirection
840
+ #: modules/apache.php:177
841
+ msgid "no errors"
842
+ msgstr "nezobrazovat chyby"
843
+
844
+ #@ redirection
845
+ #: modules/apache.php:177
846
+ msgid "show errors"
847
+ msgstr "zobrazovat chyby"
848
+
849
+ #@ redirection
850
+ #: modules/apache.php:180
851
+ msgid "IPs are banned"
852
+ msgstr "IP adresy jsou zakázány"
853
+
854
+ #@ redirection
855
+ #: modules/apache.php:183
856
+ msgid "IPs are allowed"
857
+ msgstr "IP adresy jsou povoleny"
858
+
859
+ #@ redirection
860
+ #: models/redirect.php:386
861
+ msgid "Redirect to URL"
862
+ msgstr "Přesměrovat na URL"
863
+
864
+ #@ redirection
865
+ #: models/redirect.php:387
866
+ msgid "Redirect to random post"
867
+ msgstr "Přesměrovat na náhodný příspěvek"
868
+
869
+ #@ redirection
870
+ #: models/redirect.php:388
871
+ msgid "Pass-through"
872
+ msgstr "Pass-through"
873
+
874
+ #@ redirection
875
+ #: models/redirect.php:389
876
+ msgid "Error (404)"
877
+ msgstr "Chyba (404)"
878
+
879
+ #@ redirection
880
+ #: models/redirect.php:390
881
+ msgid "Do nothing"
882
+ msgstr "Nedělat nic"
883
+
884
+ #@ redirection
885
+ #: models/database.php:94
886
+ #: models/module.php:161
887
+ msgid "WordPress"
888
+ msgstr "WordPress"
889
+
890
+ #@ redirection
891
+ #: models/module.php:162
892
+ msgid "404 Errors"
893
+ msgstr "chyby 404"
894
+
895
+ #@ redirection
896
+ #: models/module.php:187
897
+ msgid "Strip WWW"
898
+ msgstr "Odebrat WWW"
899
+
900
+ #@ redirection
901
+ #: models/module.php:187
902
+ msgid "Force WWW"
903
+ msgstr "Vždy použít WWW"
904
+
905
+ #@ redirection
906
+ #: models/module.php:192
907
+ msgid "Strip index.php"
908
+ msgstr "Odebrat index.php"
909
+
910
+ #@ redirection
911
+ #: models/database.php:96
912
+ msgid "404"
913
+ msgstr "404"
914
+
915
+ #@ default
916
+ #: models/database.php:101
917
+ msgid "Redirections"
918
+ msgstr "Redirections"
919
+
920
+ #@ default
921
+ #: models/database.php:102
922
+ msgid "Modified Posts"
923
+ msgstr "Upravené příspěvky"
924
+
925
+ #@ redirection
926
+ #: models/pager.php:404
927
+ msgid "Previous"
928
+ msgstr "Předchozí"
929
+
930
+ #@ redirection
931
+ #: models/pager.php:405
932
+ msgid "Next"
933
+ msgstr "Další"
934
+
935
+ #@ redirection
936
+ #: models/pager.php:463
937
+ #, php-format
938
+ msgid "%d per-page"
939
+ msgstr "%d na stránku"
940
+
941
+ #@ default
942
+ #: models/pager.php:472
943
+ #, php-format
944
+ msgid "Displaying %s&#8211;%s of %s"
945
+ msgstr "Zobrazuje se %s&#8211;%s z %s"
946
+
947
+ #@ redirection
948
+ #: models/group.php:194
949
+ msgid "Yes"
950
+ msgstr "Ano"
951
+
952
+ #@ redirection
953
+ #: models/group.php:195
954
+ msgid "No"
955
+ msgstr "Ne"
956
+
957
+ #@ redirection
958
+ #: ajax.php:370
959
+ msgid "Sorry, but your redirection was not created"
960
+ msgstr "Přesměrování nebylo vytvořeno"
961
+
962
+ #@ redirection
963
+ #: redirection.php:94
964
+ msgid "Settings"
965
+ msgstr "Nastavení"
966
+
967
+ #@ redirection
968
+ #: redirection.php:112
969
+ msgid "Please wait..."
970
+ msgstr "Čekejte prosím ..."
971
+
972
+ #@ redirection
973
+ #: redirection.php:121
974
+ msgid "Redirection"
975
+ msgstr "Redirection"
976
+
977
+ #@ redirection
978
+ #: redirection.php:159
979
+ msgid "Your module was successfully created"
980
+ msgstr "Modul byl úspěšně vytvořen"
981
+
982
+ #@ redirection
983
+ #: redirection.php:163
984
+ msgid "Your module was not created - did you provide a name?"
985
+ msgstr "Modul nebyl vytvořen - nezapomněli jste zadat název?"
986
+
987
+ #@ redirection
988
+ #: redirection.php:228
989
+ msgid "Your options were updated"
990
+ msgstr "Nastavení aktualizováno"
991
+
992
+ #@ redirection
993
+ #: redirection.php:236
994
+ msgid "Redirection data has been deleted and the plugin disabled"
995
+ msgstr "Data pluginu Redirection byla odstraněna a plugin byl deaktivován"
996
+
997
+ #@ redirection
998
+ #: redirection.php:246
999
+ #, php-format
1000
+ msgid "%d redirection was successfully imported"
1001
+ msgid_plural "%d redirections were successfully imported"
1002
+ msgstr[0] "%d přesměrování bylo úspěšně importováno"
1003
+ msgstr[1] "%d přesměrování byla úspěšně importována"
1004
+ msgstr[2] "%d přesměrování bylo úspěšně importováno"
1005
+
1006
+ #@ redirection
1007
+ #: redirection.php:248
1008
+ msgid "No items were imported"
1009
+ msgstr "Žádné položky nebyly importovány"
1010
+
1011
+ #@ redirection
1012
+ #: redirection.php:266
1013
+ msgid "Your logs have been deleted"
1014
+ msgstr "Vaše logy byly smazány"
1015
+
1016
+ #@ redirection
1017
+ #: redirection.php:289
1018
+ msgid "Your group was added successfully"
1019
+ msgstr "Skupina byla úspěšně přidána"
1020
+
1021
+ #@ redirection
1022
+ #: redirection.php:293
1023
+ msgid "Please specify a group name"
1024
+ msgstr "Zadejte prosím název skupiny"
1025
+
1026
+ #@ default
1027
+ #: redirection.php:330
1028
+ msgid "Redirection is available in"
1029
+ msgstr "Redirection je k dispozici v"
1030
+
1031
+ #@ redirection
1032
+ #: matches/url.php:25
1033
+ msgid "URL only"
1034
+ msgstr "pouze URL"
1035
+
1036
+ #@ redirection
1037
+ #: matches/referrer.php:47
1038
+ #: matches/url.php:40
1039
+ #: matches/user_agent.php:55
1040
+ msgid "HTTP Code"
1041
+ msgstr "HTTP kód"
1042
+
1043
+ #@ redirection
1044
+ #: matches/login.php:25
1045
+ msgid "URL and login status"
1046
+ msgstr "URL a přihlášení"
1047
+
1048
+ #@ redirection
1049
+ #: matches/login.php:33
1050
+ msgid "The target URL will be chosen from one of the following URLs, depending if the user is logged in or out. Leaving a URL blank means that the user is not redirected."
1051
+ msgstr "Cílová URL bude vybírána z následujících URL - v závislosti na tom, zda je uživatel přihlášen nebo ne. Prázdné pole pro URL znamená, že k přesměrování nedojde"
1052
+
1053
+ #@ redirection
1054
+ #: matches/login.php:39
1055
+ #: matches/login.php:41
1056
+ msgid "Logged In"
1057
+ msgstr "Přihlášený"
1058
+
1059
+ #@ redirection
1060
+ #: matches/login.php:51
1061
+ #: matches/login.php:53
1062
+ msgid "Logged Out"
1063
+ msgstr "Odhlášený"
1064
+
1065
+ #@ redirection
1066
+ #: matches/user_agent.php:27
1067
+ msgid "URL and user agent"
1068
+ msgstr "URL a user agent"
1069
+
1070
+ #@ redirection
1071
+ #: matches/user_agent.php:32
1072
+ msgid "FeedBurner"
1073
+ msgstr "FeedBurner"
1074
+
1075
+ #@ redirection
1076
+ #: matches/user_agent.php:33
1077
+ msgid "Internet Explorer"
1078
+ msgstr "Internet Explorer"
1079
+
1080
+ #@ redirection
1081
+ #: matches/user_agent.php:34
1082
+ msgid "FireFox"
1083
+ msgstr "FireFox"
1084
+
1085
+ #@ redirection
1086
+ #: matches/user_agent.php:35
1087
+ msgid "Opera"
1088
+ msgstr "Opera"
1089
+
1090
+ #@ redirection
1091
+ #: matches/user_agent.php:36
1092
+ msgid "Safari"
1093
+ msgstr "Safari"
1094
+
1095
+ #@ redirection
1096
+ #: matches/user_agent.php:37
1097
+ msgid "iPhone"
1098
+ msgstr "iPhone"
1099
+
1100
+ #@ redirection
1101
+ #: matches/user_agent.php:38
1102
+ msgid "Nintendo Wii"
1103
+ msgstr "Nintendo Wii"
1104
+
1105
+ #@ redirection
1106
+ #: matches/user_agent.php:66
1107
+ msgid "The visitor will be redirected from the source URL if the user agent matches. You can specify a <em>matched</em> target URL as the address to send visitors if they do match, and <em>not matched</em> if they don't match. Leaving a URL blank means that the visitor is not redirected. <strong>All matches are performed as regular expressions</strong>.\n"
1108
+ msgstr "Návštěvník bude přesměrován ze zdrojové URL, pokud odpovídá jeho identifikace User Agent. Lze nastavit cílové URL pro <em>shodu</em> parametru User Agent a další URL pro ostatní případy - <em>neshoduje se</em>. Ponechání prázdné URL znamená, že návštěvník nebude přesměrován. <strong>Poznámka: ve všech případech je použit regulární výraz - verze a revize nejsou brány v potaz.</strong>\n"
1109
+
1110
+ #@ redirection
1111
+ #: matches/referrer.php:63
1112
+ #: matches/referrer.php:65
1113
+ #: matches/user_agent.php:73
1114
+ #: matches/user_agent.php:75
1115
+ msgid "Matched"
1116
+ msgstr "Shoda"
1117
+
1118
+ #@ redirection
1119
+ #: matches/referrer.php:73
1120
+ #: matches/referrer.php:75
1121
+ #: matches/user_agent.php:83
1122
+ #: matches/user_agent.php:85
1123
+ msgid "Not matched"
1124
+ msgstr "Neshoduje se"
1125
+
1126
+ #@ redirection
1127
+ #: matches/referrer.php:28
1128
+ msgid "URL and referrer"
1129
+ msgstr "URL a referrer"
1130
+
1131
+ #@ redirection
1132
+ #: matches/referrer.php:57
1133
+ msgid "The visitor will be redirected from the source URL if the referrer matches. You can specify a <em>matched</em> target URL as the address to send visitors if they do match, and <em>not matched</em> if they don't match. Leaving a URL blank means that the visitor is not redirected."
1134
+ msgstr "Návštěvník bude přesměrován ze zdrojové URL, pokud přichází z konkrétní URL (referrer). Lze nastavit cílové URL pro <em>shodu</em> parametru referrer a další URL pro ostatní případy - <em>neshoduje se</em>. Ponechání prázdné URL znamená, že návštěvník nebude přesměrován."
1135
+
locale/lt_LT.mo ADDED
Binary file
locale/lt_LT.po ADDED
@@ -0,0 +1,928 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2010 Redirection
2
+ # This file is distributed under the same license as the Redirection package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Redirection 2.2.5\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/redirection\n"
7
+ "POT-Creation-Date: 2011-07-17 10:14:58+00:00\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2011-08-31 00:43+0200\n"
12
+ "Last-Translator: Тарас Данилюк <nikman851@gmail.com>\n"
13
+ "Language-Team: Nata Strazda <nata.strazda@gmail.com>\n"
14
+ "X-Poedit-Language: Lithuanian\n"
15
+ "X-Poedit-Country: LITHUANIA\n"
16
+
17
+ #: fileio/csv.php:21
18
+ msgid "module_%d.csv"
19
+ msgstr "module_%d.csv"
20
+
21
+ #: fileio/xml.php:32
22
+ msgid "module_%d.xml"
23
+ msgstr "module_%d.xml"
24
+
25
+ #: fileio/xml.php:105
26
+ msgid "%s imported on %s at %s"
27
+ msgstr "%s imported on %s at %s"
28
+
29
+ #: fileio/xml.php:168
30
+ msgid "XML importing is only available with PHP5 - you have PHP4."
31
+ msgstr "XML importuoti tik su PHP5 turite PHP4."
32
+
33
+ #: view/admin/group_list.php:6
34
+ msgid "Groups for module"
35
+ msgstr "Už modulio grupės"
36
+
37
+ #: view/admin/group_list.php:16
38
+ #: view/admin/log.php:38
39
+ msgid "Module"
40
+ msgstr "modulio "
41
+
42
+ #: view/admin/group_list.php:21
43
+ #: view/admin/log.php:16
44
+ #: view/admin/log.php:23
45
+ #: view/admin/item_list.php:29
46
+ msgid "Search"
47
+ msgstr "paieška"
48
+
49
+ #: view/admin/group_list.php:26
50
+ msgid "go"
51
+ msgstr "eiti"
52
+
53
+ #: view/admin/group_list.php:36
54
+ #: view/admin/item_list.php:42
55
+ #: view/admin/module_list.php:17
56
+ msgid "Hits"
57
+ msgstr "Hitai"
58
+
59
+ #: view/admin/group_list.php:37
60
+ #: view/admin/group_list.php:100
61
+ #: view/admin/module_edit.php:18
62
+ #: view/admin/module_list.php:42
63
+ #: view/admin/group_edit.php:6
64
+ msgid "Name"
65
+ msgstr "pavadinimas"
66
+
67
+ #: view/admin/group_list.php:59
68
+ #: view/admin/item_list.php:67
69
+ msgid "Select All"
70
+ msgstr "Žymėti viską"
71
+
72
+ #: view/admin/group_list.php:60
73
+ #: view/admin/item_list.php:68
74
+ msgid "Toggle"
75
+ msgstr "perjungti"
76
+
77
+ #: view/admin/group_list.php:61
78
+ #: view/admin/item_list.php:69
79
+ msgid "Reset Hits"
80
+ msgstr "Atstatyti Hitai"
81
+
82
+ #: view/admin/group_list.php:62
83
+ #: view/admin/log.php:30
84
+ #: view/admin/item_list.php:70
85
+ #: view/admin/options.php:120
86
+ msgid "Delete"
87
+ msgstr "panaikinti"
88
+
89
+ #: view/admin/group_list.php:64
90
+ #: view/admin/item_list.php:72
91
+ msgid "Move To"
92
+ msgstr "perkelti į"
93
+
94
+ #: view/admin/group_list.php:69
95
+ #: view/admin/item_list.php:34
96
+ #: view/admin/item_list.php:77
97
+ msgid "Go"
98
+ msgstr "eiti"
99
+
100
+ #: view/admin/group_list.php:75
101
+ #: view/admin/item_list.php:83
102
+ msgid "re-order"
103
+ msgstr "užsakymą"
104
+
105
+ #: view/admin/group_list.php:76
106
+ #: view/admin/item_list.php:84
107
+ msgid "save order"
108
+ msgstr "išsaugoti, kad"
109
+
110
+ #: view/admin/group_list.php:89
111
+ msgid "You have no groups in this module."
112
+ msgstr "Jūs neturite šiame modulyje grupių"
113
+
114
+ #: view/admin/group_list.php:94
115
+ msgid "Add Group"
116
+ msgstr "Pridėti grupę"
117
+
118
+ #: view/admin/group_list.php:105
119
+ msgid "Add"
120
+ msgstr "Pridėti grupę"
121
+
122
+ #: view/admin/group_list.php:117
123
+ #: view/admin/log.php:112
124
+ #: view/admin/item_list.php:112
125
+ #: redirection.php:116
126
+ msgid "No items have been selected"
127
+ msgstr "Nėra elementų, buvo atrinkti"
128
+
129
+ #: view/admin/group_list.php:118
130
+ #: view/admin/log.php:113
131
+ #: view/admin/item_list.php:113
132
+ #: redirection.php:115
133
+ msgid "Are you sure?"
134
+ msgstr "Ar tikrai?"
135
+
136
+ #: view/admin/submenu.php:6
137
+ msgid "Redirects"
138
+ msgstr "nukreipimus"
139
+
140
+ #: view/admin/submenu.php:11
141
+ #: view/admin/module_list.php:15
142
+ msgid "Groups"
143
+ msgstr "grupės"
144
+
145
+ #: view/admin/submenu.php:16
146
+ #: view/admin/module_list.php:6
147
+ msgid "Modules"
148
+ msgstr "moduliai"
149
+
150
+ #: view/admin/submenu.php:21
151
+ msgid "Log"
152
+ msgstr "Prisijungti"
153
+
154
+ #: view/admin/submenu.php:26
155
+ #: view/admin/options.php:6
156
+ msgid "Options"
157
+ msgstr "parinktys"
158
+
159
+ #: view/admin/submenu.php:31
160
+ msgid "Support"
161
+ msgstr "parama"
162
+
163
+ #: view/admin/module_item.php:23
164
+ msgid "View as"
165
+ msgstr "Žiūrėti kaip"
166
+
167
+ #: view/admin/module_item.php:25
168
+ msgid "CSV"
169
+ msgstr "CSV"
170
+
171
+ #: view/admin/module_item.php:26
172
+ msgid "XML"
173
+ msgstr "XML"
174
+
175
+ #: view/admin/module_item.php:27
176
+ #: models/module.php:160
177
+ #: models/database.php:95
178
+ msgid "Apache"
179
+ msgstr "Apache"
180
+
181
+ #: view/admin/module_item.php:28
182
+ msgid "RSS"
183
+ msgstr "RSS"
184
+
185
+ #: view/admin/module_item.php:41
186
+ msgid "edit"
187
+ msgstr "redaguoti"
188
+
189
+ #: view/admin/module_item.php:43
190
+ msgid "delete"
191
+ msgstr "panaikinti"
192
+
193
+ #: view/admin/module_item.php:45
194
+ msgid "reset"
195
+ msgstr "iš naujo"
196
+
197
+ #: view/admin/log.php:6
198
+ msgid "Redirection Log"
199
+ msgstr "Nukreipiama Prisijungti"
200
+
201
+ #: view/admin/log.php:29
202
+ msgid "Bulk Actions"
203
+ msgstr "Tūrinės veiksmai"
204
+
205
+ #: view/admin/log.php:33
206
+ msgid "Apply"
207
+ msgstr "taikyti"
208
+
209
+ #: view/admin/log.php:43
210
+ #: view/admin/item_list.php:24
211
+ #: view/admin/add.php:36
212
+ msgid "Group"
213
+ msgstr "grupė"
214
+
215
+ #: view/admin/log.php:49
216
+ msgid "Filter"
217
+ msgstr "filtras"
218
+
219
+ #: view/admin/log.php:67
220
+ msgid "Date"
221
+ msgstr "data"
222
+
223
+ #: view/admin/log.php:68
224
+ #: view/admin/log_item_details.php:4
225
+ #: view/admin/item_edit.php:15
226
+ #: view/admin/add.php:12
227
+ msgid "Source URL"
228
+ msgstr "šaltinio URL"
229
+
230
+ #: view/admin/log.php:69
231
+ #: matches/referrer.php:40
232
+ msgid "Referrer"
233
+ msgstr "nuorodą"
234
+
235
+ #: view/admin/log.php:70
236
+ msgid "IP"
237
+ msgstr ""
238
+
239
+ #: view/admin/log.php:85
240
+ msgid "There are no logs to display!"
241
+ msgstr "Nėra rąstų, kuriuos būtų galima parodyti!"
242
+
243
+ #: view/admin/log.php:94
244
+ msgid "Process Current Logs"
245
+ msgstr "Tvarkyti Aktualus Įrašai"
246
+
247
+ #: view/admin/log.php:95
248
+ msgid "These actions will affect all currently available logs (i.e. your search phrase will restrict the log items)."
249
+ msgstr "Šie veiksmai turės įtakos visų šiuo metu turimų rąstų (ty savo paieškos frazę apriboti žurnalo elementus)."
250
+
251
+ #: view/admin/log.php:100
252
+ msgid "Delete Logs"
253
+ msgstr "ištrinti Įrašai"
254
+
255
+ #: view/admin/item_list.php:7
256
+ msgid "Redirections for group"
257
+ msgstr "Peradresavimai, grupės"
258
+
259
+ #: view/admin/item_list.php:41
260
+ msgid "Last Access"
261
+ msgstr "Paskutinis apsilankymas"
262
+
263
+ #: view/admin/item_list.php:43
264
+ #: view/admin/module_list.php:46
265
+ msgid "Type"
266
+ msgstr "tipas"
267
+
268
+ #: view/admin/item_list.php:44
269
+ msgid "URL"
270
+ msgstr ""
271
+
272
+ #: view/admin/item_list.php:44
273
+ msgid "Position"
274
+ msgstr "pozicija"
275
+
276
+ #: view/admin/item_list.php:88
277
+ msgid "You have no redirections."
278
+ msgstr "Jūs neturite nukreipimai."
279
+
280
+ #: view/admin/log_item_details.php:9
281
+ msgid "Redirect to"
282
+ msgstr "nukreipti į"
283
+
284
+ #: view/admin/log_item_details.php:15
285
+ msgid "Redirected by"
286
+ msgstr "Nukreipta pagal"
287
+
288
+ #: view/admin/log_item_details.php:16
289
+ msgid "for"
290
+ msgstr "už"
291
+
292
+ #: view/admin/log_item_details.php:20
293
+ #: matches/user_agent.php:43
294
+ msgid "User Agent"
295
+ msgstr ""
296
+
297
+ #: view/admin/item.php:27
298
+ #: view/admin/group_item.php:23
299
+ msgid "disabled"
300
+ msgstr "neįgaliesiems"
301
+
302
+ #: view/admin/item_edit.php:3
303
+ msgid "%s by matching %s"
304
+ msgstr ""
305
+
306
+ #: view/admin/item_edit.php:7
307
+ msgid "Title"
308
+ msgstr "pavadinimas"
309
+
310
+ #: view/admin/item_edit.php:10
311
+ msgid "optional"
312
+ msgstr "neprivalomas"
313
+
314
+ #: view/admin/item_edit.php:18
315
+ #: matches/referrer.php:43
316
+ msgid "Regex"
317
+ msgstr ""
318
+
319
+ #: view/admin/item_edit.php:27
320
+ #: view/admin/module_edit.php:27
321
+ #: view/admin/group_edit.php:20
322
+ msgid "Save"
323
+ msgstr "sutaupyti"
324
+
325
+ #: view/admin/item_edit.php:28
326
+ #: view/admin/module_edit.php:28
327
+ #: view/admin/group_edit.php:21
328
+ msgid "Cancel"
329
+ msgstr "atšaukti"
330
+
331
+ #: view/admin/add.php:3
332
+ msgid "Add new redirection"
333
+ msgstr "Pridėti naują peradresavimo"
334
+
335
+ #: view/admin/add.php:6
336
+ msgid "Your redirection has been added."
337
+ msgstr "Jūsų peradresavimo buvo įtrauktas."
338
+
339
+ #: view/admin/add.php:16
340
+ msgid "Match"
341
+ msgstr "rungtynės"
342
+
343
+ #: view/admin/add.php:22
344
+ msgid "Action"
345
+ msgstr "veiksmas"
346
+
347
+ #: view/admin/add.php:27
348
+ msgid "Regular expression"
349
+ msgstr "reguliaraus išraiška"
350
+
351
+ #: view/admin/add.php:31
352
+ #: matches/url.php:32
353
+ msgid "Target URL"
354
+ msgstr "Paskirties URL"
355
+
356
+ #: view/admin/add.php:43
357
+ msgid "Add Redirection"
358
+ msgstr "Pridėti Nukreipiama"
359
+
360
+ #: view/admin/group_item.php:3
361
+ msgid "edit group"
362
+ msgstr "redaguoti grupę"
363
+
364
+ #: view/admin/module_list.php:14
365
+ msgid "Details"
366
+ msgstr "Išsamiau"
367
+
368
+ #: view/admin/module_list.php:16
369
+ msgid "Items"
370
+ msgstr "daiktai"
371
+
372
+ #: view/admin/module_list.php:18
373
+ msgid "Operations"
374
+ msgstr "operacijų"
375
+
376
+ #: view/admin/module_list.php:27
377
+ msgid "Note: Hits are dependant on log entries"
378
+ msgstr "Pastaba: Hitai priklauso nuo žurnalo įrašus"
379
+
380
+ #: view/admin/module_list.php:29
381
+ msgid "You have no modules defined yet"
382
+ msgstr "Jūs turite ne dar apibrėžti moduliai"
383
+
384
+ #: view/admin/module_list.php:34
385
+ msgid "Add Module"
386
+ msgstr ""
387
+
388
+ #: view/admin/module_list.php:35
389
+ msgid "A module is a controlling element that determines how redirections are handled. Elements in a WordPress module are handled by WordPress, elements in an Apache module are handled by <code>.htaccess</code>, and elements in a 404 module affect how 404 errors are logged."
390
+ msgstr "Modulis yra kontrolės elementas, kuris nustato, kaip tvarkomi nukreipimai. Tvarko WordPress WordPress modulio elementų, Apache modulis elementai tvarkomi pagal <code>. htaccess</ ode> ir 404 modulis elementai veikia kaip klaidas 404 prisijungęs."
391
+
392
+ #: view/admin/module_list.php:55
393
+ msgid "Create"
394
+ msgstr "kurti"
395
+
396
+ #: view/admin/support.php:5
397
+ msgid "Redirection Support"
398
+ msgstr ""
399
+
400
+ #: view/admin/support.php:9
401
+ msgid "Redirection is free to use - life is wonderful and lovely! However, it has required a great deal of time and effort to develop and if it has been useful you can help support this development by <strong>making a small donation</strong>."
402
+ msgstr "Nukreipiama laisvai naudotis - gyvenimas yra nuostabus ir mielas! Tačiau, ji reikalauja daug laiko ir pastangų plėtoti ir, jei ji buvo naudinga, galite padėti remti šią plėtrą <strong>mažą donorystės</strong>."
403
+
404
+ #: view/admin/support.php:10
405
+ msgid "This will act as an incentive for me to carry on developing, providing countless hours of support, and including new features and suggestions. You get some useful software and I get to carry on making it. Everybody wins."
406
+ msgstr ""
407
+
408
+ #: view/admin/support.php:13
409
+ msgid "If you are using this plugin in a commercial setup, or feel that it's been particularly useful, then you may want to consider a <strong>commercial donation</strong>."
410
+ msgstr "Jei jūs naudojate šią plugin komercinės sąrankos, arba jaučia, kad tai buvo ypač naudinga, tada galbūt norėsite apsvarstyti <strong>komercinę donorystę</strong>."
411
+
412
+ #: view/admin/support.php:36
413
+ msgid "Individual<br/>Donation"
414
+ msgstr "Individualus <br/> Donorystė"
415
+
416
+ #: view/admin/support.php:56
417
+ msgid "Commercial<br/>Donation"
418
+ msgstr "Komercinis <br/> Donorystė"
419
+
420
+ #: view/admin/support.php:60
421
+ msgid "Translations"
422
+ msgstr "vertimai"
423
+
424
+ #: view/admin/support.php:62
425
+ msgid "If you're multi-lingual then you may want to consider donating a translation:"
426
+ msgstr "Jei esate daugiakalbiai, tada jūs galbūt norėsite apsvarstyti dovanojančios vertimą:"
427
+
428
+ #: view/admin/support.php:70
429
+ msgid "All translators will have a link to their website placed on the plugin homepage at <a href=\"http://urbangiraffe.com/plugins/redirection/\">UrbanGiraffe</a>, in addition to being an individual supporter."
430
+ msgstr "Visi vertėjai turės pateikti nuorodą į savo svetainę pagrindiniame puslapyje įjungti <a href=\"http://urbangiraffe.com/plugins/redirection/\"> UrbanGiraffe</a>, be to yra individualus rėmėjas."
431
+
432
+ #: view/admin/support.php:71
433
+ msgid "Full details of producing a translation can be found in this <a href=\"http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/\">guide to translating WordPress plugins</a>."
434
+ msgstr ""
435
+
436
+ #: view/admin/options.php:15
437
+ msgid "Auto-generate URL"
438
+ msgstr ""
439
+
440
+ #: view/admin/options.php:19
441
+ msgid "This will be used to auto-generate a URL if no URL is given. You can use the special tags $dec$ or $hex$ to have a unique ID inserted (either decimal or hex)"
442
+ msgstr "This will be used to auto-generate a URL if no URL is given. You can use the special tags $dec$ or $hex$ to have a unique ID inserted (either decimal or hex)"
443
+
444
+ #: view/admin/options.php:24
445
+ msgid "IP Lookup Service"
446
+ msgstr ""
447
+
448
+ #: view/admin/options.php:30
449
+ msgid "Plugin Support"
450
+ msgstr ""
451
+
452
+ #: view/admin/options.php:33
453
+ msgid "I'm a nice person and I have helped support the author of this plugin"
454
+ msgstr "Aš esu gražus ir aš padėjo remti šį papildinį autorius"
455
+
456
+ #: view/admin/options.php:37
457
+ msgid "Logging"
458
+ msgstr ""
459
+
460
+ #: view/admin/options.php:40
461
+ msgid "log redirected requests"
462
+ msgstr ""
463
+
464
+ #: view/admin/options.php:42
465
+ msgid "log 404 Not Found requests"
466
+ msgstr ""
467
+
468
+ #: view/admin/options.php:43
469
+ msgid "Uncheck one or both of these to turn off logging and reduce database load if your redirected URLs are hit very frequently, and/or your site is very busy and pages are often not found."
470
+ msgstr "Atsisakykite vieno ar abiejų šių išjungti medienos ruoša ir sumažinti duomenų bazės apkrovos, jei jūsų nukreipimo URL nukentėjo labai dažnai, ir / ar jūsų svetainė yra labai užsiėmę ir dažnai nerastas puslapių."
471
+
472
+ #: view/admin/options.php:47
473
+ msgid "Expire Logs"
474
+ msgstr ""
475
+
476
+ #: view/admin/options.php:50
477
+ msgid "days (enter 0 for no expiry)"
478
+ msgstr ""
479
+
480
+ #: view/admin/options.php:54
481
+ msgid "RSS Token"
482
+ msgstr ""
483
+
484
+ #: view/admin/options.php:57
485
+ msgid "A unique token allowing feed readers access to Redirection RSS (leave blank to auto-generate)"
486
+ msgstr "Leisti pašarų skaitytojams susipažinti su Nukreipiama RSS (palikti tuščią, jei norite automatiškai kurti unikalią žymę)"
487
+
488
+ #: view/admin/options.php:62
489
+ msgid "URL Monitoring"
490
+ msgstr "URL stebėsena"
491
+
492
+ #: view/admin/options.php:63
493
+ msgid "You can have Redirection detect changes in URLs and have an automatic redirection created in a specific group."
494
+ msgstr "Galite Nukreipiama aptikti URL ir turi automatinio peradresavimo, sukurtas konkrečiai grupei."
495
+
496
+ #: view/admin/options.php:67
497
+ msgid "Post &amp; Page URLs"
498
+ msgstr ""
499
+
500
+ #: view/admin/options.php:70
501
+ #: view/admin/options.php:82
502
+ msgid "Don't monitor"
503
+ msgstr "Nekontroliuoja"
504
+
505
+ #: view/admin/options.php:74
506
+ msgid "Monitor new posts"
507
+ msgstr "Stebėti naujus pranešimus"
508
+
509
+ #: view/admin/options.php:79
510
+ msgid "Category URLs"
511
+ msgstr "Kategorija URL"
512
+
513
+ #: view/admin/options.php:89
514
+ msgid "Update"
515
+ msgstr "atnaujinti"
516
+
517
+ #: view/admin/options.php:95
518
+ msgid "Import"
519
+ msgstr "importuoti"
520
+
521
+ #: view/admin/options.php:97
522
+ msgid "Here you can import redirections from an existing .htaccess file, a CSV file, or a Redirection XML."
523
+ msgstr "Čia galite importuoti nukreipimai iš esamų. Htaccess failą, CSV failą, arba Nukreipiama XML."
524
+
525
+ #: view/admin/options.php:104
526
+ msgid "Import into"
527
+ msgstr "importo į"
528
+
529
+ #: view/admin/options.php:107
530
+ msgid "Upload"
531
+ msgstr "Įkelti"
532
+
533
+ #: view/admin/options.php:110
534
+ msgid "Note that the group is ignored when uploading an XML file."
535
+ msgstr "Atkreipkite dėmesį, kad grupėje yra ignoruojamas, kai įkelti XML failą."
536
+
537
+ #: view/admin/options.php:114
538
+ msgid "Delete Redirection"
539
+ msgstr "ištrinti Nukreipiama"
540
+
541
+ #: view/admin/options.php:115
542
+ msgid "Selecting this option will delete all redirections, all logs, and any options associated with the Redirection plugin. Make sure this is what you want to do."
543
+ msgstr "Pasirinkus šią parinktį, bus ištrinti visus peradresavimus, visų rąstų, ir bet kokių galimybių, susijusių su Nukreipiama plugin. Įsitikinkite, kad tai, ką norite daryti."
544
+
545
+ #: view/admin/group_edit.php:10
546
+ msgid "Tracked"
547
+ msgstr "Vikšrinės"
548
+
549
+ #: view/admin/group_edit.php:11
550
+ msgid "Whether to track 'hits' to items"
551
+ msgstr "Ar sekti \"hitai\" elementų"
552
+
553
+ #: view/admin/group_edit.php:14
554
+ msgid "Enabled"
555
+ msgstr "įjungta"
556
+
557
+ #: view/admin/group_edit.php:15
558
+ msgid "Disabling a group will disable all items contained within it"
559
+ msgstr "Išjungus grupės išjungti visus elementus, joje esančios"
560
+
561
+ #: modules/404.php:37
562
+ msgid "Log 404s"
563
+ msgstr "Prisijungti 404s"
564
+
565
+ #: modules/404.php:46
566
+ #: modules/wordpress.php:121
567
+ msgid "<strong>Disabled: You must enable <a href=\"options-permalink.php\">permalinks</a> before using this</strong>"
568
+ msgstr "<strong>Išjungta: Jūs turite įjungti<a href=\"options-permalink.php\">permalinks</a> before using this</strong>"
569
+
570
+ #: modules/404.php:57
571
+ msgid "<small>No options have been set</small>"
572
+ msgstr "<small>Nėra galimybės nustatyti</small>"
573
+
574
+ #: modules/apache.php:77
575
+ msgid "Location"
576
+ msgstr "vieta"
577
+
578
+ #: modules/apache.php:82
579
+ msgid "WordPress is installed in: <code>%s</code>"
580
+ msgstr "WordPress is installed in: <code>%s</code>"
581
+
582
+ #: modules/apache.php:87
583
+ msgid "Canonical"
584
+ msgstr "Canonical"
585
+
586
+ #: modules/apache.php:90
587
+ #: modules/apache.php:96
588
+ msgid "Leave as is"
589
+ msgstr "Leave as is"
590
+
591
+ #: modules/apache.php:90
592
+ msgid "Strip WWW (%s)"
593
+ msgstr "Strip WWW (%s)"
594
+
595
+ #: modules/apache.php:90
596
+ msgid "Force WWW (www.%s)"
597
+ msgstr "Force WWW (www.%s)"
598
+
599
+ #: modules/apache.php:94
600
+ msgid "Strip Index"
601
+ msgstr "Strip Index"
602
+
603
+ #: modules/apache.php:96
604
+ msgid "Strip index files (html,php)"
605
+ msgstr "Ruože indeksą failus (HTML, PHP)"
606
+
607
+ #: modules/apache.php:101
608
+ msgid "Memory Limit"
609
+ msgstr "atminties Limito"
610
+
611
+ #: modules/apache.php:104
612
+ #: modules/apache.php:109
613
+ msgid "Server default"
614
+ msgstr "serverio nutylėjimą"
615
+
616
+ #: modules/apache.php:107
617
+ msgid "Error Level"
618
+ msgstr "klaidų lygis"
619
+
620
+ #: modules/apache.php:109
621
+ msgid "No errors"
622
+ msgstr "Nėra klaidų"
623
+
624
+ #: modules/apache.php:109
625
+ msgid "Show errors"
626
+ msgstr "Rodyti klaidas"
627
+
628
+ #: modules/apache.php:114
629
+ msgid "Ban IPs"
630
+ msgstr "uždrausti IP"
631
+
632
+ #: modules/apache.php:120
633
+ msgid "Allow IPs"
634
+ msgstr "leisti IP"
635
+
636
+ #: modules/apache.php:126
637
+ msgid "Raw .htaccess"
638
+ msgstr "Žalias. Htaccess"
639
+
640
+ #: modules/apache.php:132
641
+ msgid "Site URL"
642
+ msgstr "Svetainės URL"
643
+
644
+ #: modules/apache.php:135
645
+ msgid "Advanced: For management of external sites"
646
+ msgstr "Detali: valdymo išorinių svetainių"
647
+
648
+ #: modules/apache.php:150
649
+ msgid "<strong>Location is invalid - check that path exists</strong>"
650
+ msgstr "<strong>Vieta yra neteisingas - patikrinti, kad sekai</strong>"
651
+
652
+ #: modules/apache.php:156
653
+ msgid "<strong>Could not write to configured <code>.htaccess</code> file - check file permissions</strong>"
654
+ msgstr "<strong> negalite rašyti sukonfigūruotas <code> Htaccess </code> Failas - patikrinti failo teises </strong>"
655
+
656
+ #: modules/apache.php:163
657
+ msgid "<strong>Disabled: enter the location of an <code>.htaccess</code> file for this to be valid</strong>"
658
+ msgstr "<strong>neįgaliesiems įveskite <code> vietą Htaccess</code>, kad tai galioja</strong>"
659
+
660
+ #: modules/apache.php:168
661
+ msgid "strip WWW"
662
+ msgstr "juostelės WWW"
663
+
664
+ #: modules/apache.php:168
665
+ msgid "force WWW"
666
+ msgstr "jėgos WWW"
667
+
668
+ #: modules/apache.php:171
669
+ msgid "strip index"
670
+ msgstr "juostelės indeksas"
671
+
672
+ #: modules/apache.php:174
673
+ msgid "memory limit at %dMB"
674
+ msgstr "atminties limitą %dMB"
675
+
676
+ #: modules/apache.php:177
677
+ msgid "no errors"
678
+ msgstr "nėra klaidų"
679
+
680
+ #: modules/apache.php:177
681
+ msgid "show errors"
682
+ msgstr "Rodyti klaidas"
683
+
684
+ #: modules/apache.php:180
685
+ msgid "IPs are banned"
686
+ msgstr "IP yra uždraustas"
687
+
688
+ #: modules/apache.php:183
689
+ msgid "IPs are allowed"
690
+ msgstr "IP yra leidžiama"
691
+
692
+ #: models/redirect.php:386
693
+ msgid "Redirect to URL"
694
+ msgstr "Nukreipti į URL"
695
+
696
+ #: models/redirect.php:387
697
+ msgid "Redirect to random post"
698
+ msgstr "Nukreipti į Atsitiktinis užrašas"
699
+
700
+ #: models/redirect.php:388
701
+ msgid "Pass-through"
702
+ msgstr "Pass-through"
703
+
704
+ #: models/redirect.php:389
705
+ msgid "Error (404)"
706
+ msgstr "Klaida (404)"
707
+
708
+ #: models/redirect.php:390
709
+ msgid "Do nothing"
710
+ msgstr "nieko nedaryti"
711
+
712
+ #: models/module.php:161
713
+ #: models/database.php:94
714
+ msgid "WordPress"
715
+ msgstr "WordPress"
716
+
717
+ #: models/module.php:162
718
+ msgid "404 Errors"
719
+ msgstr "404 Errors"
720
+
721
+ #: models/module.php:187
722
+ msgid "Strip WWW"
723
+ msgstr "juostelės WWW"
724
+
725
+ #: models/module.php:187
726
+ msgid "Force WWW"
727
+ msgstr "jėga WWW"
728
+
729
+ #: models/module.php:192
730
+ msgid "Strip index.php"
731
+ msgstr "juostelės index.php"
732
+
733
+ #: models/database.php:96
734
+ msgid "404"
735
+ msgstr "404"
736
+
737
+ #: models/database.php:101
738
+ msgid "Redirections"
739
+ msgstr "peradresavimai"
740
+
741
+ #: models/database.php:102
742
+ msgid "Modified Posts"
743
+ msgstr "Modifikuota Pranešimai"
744
+
745
+ #: models/pager.php:404
746
+ msgid "Previous"
747
+ msgstr "ankstesnis"
748
+
749
+ #: models/pager.php:405
750
+ msgid "Next"
751
+ msgstr "kitas"
752
+
753
+ #: models/pager.php:463
754
+ msgid "%d per-page"
755
+ msgstr "%d per-page"
756
+
757
+ #: models/pager.php:472
758
+ msgid "Displaying %s&#8211;%s of %s"
759
+ msgstr "Displaying %s&#8211;%s of %s"
760
+
761
+ #: models/group.php:194
762
+ msgid "Yes"
763
+ msgstr "taip"
764
+
765
+ #: models/group.php:195
766
+ msgid "No"
767
+ msgstr "ne"
768
+
769
+ #: ajax.php:370
770
+ msgid "Sorry, but your redirection was not created"
771
+ msgstr "Atsiprašome, tačiau jūsų peradresavimo nebuvo sukurta"
772
+
773
+ #: redirection.php:94
774
+ msgid "Settings"
775
+ msgstr "Nustatymai"
776
+
777
+ #: redirection.php:112
778
+ msgid "Please wait..."
779
+ msgstr "Prašome palaukti ..."
780
+
781
+ #. #-#-#-#-# plugin.pot (Redirection 2.2.5) #-#-#-#-#
782
+ #. Plugin Name of the plugin/theme
783
+ #: redirection.php:121
784
+ msgid "Redirection"
785
+ msgstr "Nukreipiama"
786
+
787
+ #: redirection.php:159
788
+ msgid "Your module was successfully created"
789
+ msgstr "Jūsų modulis buvo sėkmingai sukurta"
790
+
791
+ #: redirection.php:163
792
+ msgid "Your module was not created - did you provide a name?"
793
+ msgstr "Jūsų modulis nebuvo sukurta tu vardą?"
794
+
795
+ #: redirection.php:228
796
+ msgid "Your options were updated"
797
+ msgstr "Jūsų galimybės buvo atnaujintos"
798
+
799
+ #: redirection.php:236
800
+ msgid "Redirection data has been deleted and the plugin disabled"
801
+ msgstr "Nukreipiama duomenys buvo ištrinti ir įjungti neįgaliesiems"
802
+
803
+ #: redirection.php:246
804
+ msgid "%d redirection was successfully imported"
805
+ msgstr "%d redirections were successfully imported"
806
+
807
+ #: redirection.php:248
808
+ msgid "No items were imported"
809
+ msgstr "Nėra elementų, buvo importuoti"
810
+
811
+ #: redirection.php:266
812
+ msgid "Your logs have been deleted"
813
+ msgstr "Jūsų rąstai buvo ištrintos"
814
+
815
+ #: redirection.php:289
816
+ msgid "Your group was added successfully"
817
+ msgstr "Jūsų grupė buvo sėkmingai įrašytas."
818
+
819
+ #: redirection.php:293
820
+ msgid "Please specify a group name"
821
+ msgstr "Prašome nurodyti grupės pavadinimą,"
822
+
823
+ #: redirection.php:330
824
+ msgid "Redirection is available in"
825
+ msgstr "Nukreipiama yra išversta į"
826
+
827
+ #: matches/url.php:25
828
+ msgid "URL only"
829
+ msgstr "tik URL"
830
+
831
+ #: matches/url.php:40
832
+ #: matches/user_agent.php:55
833
+ #: matches/referrer.php:47
834
+ msgid "HTTP Code"
835
+ msgstr "HTTP Kodas"
836
+
837
+ #: matches/login.php:25
838
+ msgid "URL and login status"
839
+ msgstr "URL ir prisijungimo statuso"
840
+
841
+ #: matches/login.php:33
842
+ msgid "The target URL will be chosen from one of the following URLs, depending if the user is logged in or out. Leaving a URL blank means that the user is not redirected."
843
+ msgstr "The target URL will be chosen from one of the following URLs, depending if the user is logged in or out. Leaving a URL blank means that the user is not redirected."
844
+
845
+ #: matches/login.php:39
846
+ #: matches/login.php:41
847
+ msgid "Logged In"
848
+ msgstr "Prisijungimas:"
849
+
850
+ #: matches/login.php:51
851
+ #: matches/login.php:53
852
+ msgid "Logged Out"
853
+ msgstr "Atsijungimas"
854
+
855
+ #: matches/user_agent.php:27
856
+ msgid "URL and user agent"
857
+ msgstr "URL ir vartotojo agentas"
858
+
859
+ #: matches/user_agent.php:32
860
+ msgid "FeedBurner"
861
+ msgstr "FeedBurner"
862
+
863
+ #: matches/user_agent.php:33
864
+ msgid "Internet Explorer"
865
+ msgstr "Internet Explorer"
866
+
867
+ #: matches/user_agent.php:34
868
+ msgid "FireFox"
869
+ msgstr "FireFox"
870
+
871
+ #: matches/user_agent.php:35
872
+ msgid "Opera"
873
+ msgstr "Opera"
874
+
875
+ #: matches/user_agent.php:36
876
+ msgid "Safari"
877
+ msgstr "Safari"
878
+
879
+ #: matches/user_agent.php:37
880
+ msgid "iPhone"
881
+ msgstr "iPhone"
882
+
883
+ #: matches/user_agent.php:38
884
+ msgid "Nintendo Wii"
885
+ msgstr "Nintendo Wii"
886
+
887
+ #: matches/user_agent.php:66
888
+ msgid "The visitor will be redirected from the source URL if the user agent matches. You can specify a <em>matched</em> target URL as the address to send visitors if they do match, and <em>not matched</em> if they don't match. Leaving a URL blank means that the visitor is not redirected. <strong>All matches are performed as regular expressions</strong>.\n"
889
+ msgstr "Lankytojai bus nukreipiami iš šaltinio URL, jei user-agent atitinka. Galite nurodyti <em>atitiko</em>, kad paskirties URL adresą siųsti lankytojus, jei jie rungtynės, ir <em> neatitiko </em>, jei jie nesutampa. , Paliekant URL tuščią, reiškia, kad lankytojas nėra nukreipti. <strong>Visos rungtynės yra atlikti kaip reguliarios išraiškos</strong> . \n"
890
+
891
+ #: matches/user_agent.php:73
892
+ #: matches/user_agent.php:75
893
+ #: matches/referrer.php:63
894
+ #: matches/referrer.php:65
895
+ msgid "Matched"
896
+ msgstr "Sutampa"
897
+
898
+ #: matches/user_agent.php:83
899
+ #: matches/user_agent.php:85
900
+ #: matches/referrer.php:73
901
+ #: matches/referrer.php:75
902
+ msgid "Not matched"
903
+ msgstr "nesutampa"
904
+
905
+ #: matches/referrer.php:28
906
+ msgid "URL and referrer"
907
+ msgstr "URL ir nukreipimo"
908
+
909
+ #: matches/referrer.php:57
910
+ msgid "The visitor will be redirected from the source URL if the referrer matches. You can specify a <em>matched</em> target URL as the address to send visitors if they do match, and <em>not matched</em> if they don't match. Leaving a URL blank means that the visitor is not redirected."
911
+ msgstr "Lankytojas bus nukreiptas nuo šaltinio URL, jei refererių rungtynės. Galite nurodyti <em>atitiko</em>, kad paskirties URL adresą siųsti lankytojus, jei jie rungtynės, ir <em>neatitiko</ em>, jei jie nesutampa. , Paliekant URL tuščią, reiškia, kad lankytojas nėra nukreipti."
912
+
913
+ #. Plugin URI of the plugin/theme
914
+ msgid "http://urbangiraffe.com/plugins/redirection/"
915
+ msgstr ""
916
+
917
+ #. Description of the plugin/theme
918
+ msgid "Manage all your 301 redirects and monitor 404 errors"
919
+ msgstr "Tvarkyti visus savo 301 peradresavimą ir stebėti klaidas 404"
920
+
921
+ #. Author of the plugin/theme
922
+ msgid "John Godley"
923
+ msgstr ""
924
+
925
+ #. Author URI of the plugin/theme
926
+ msgid "http://urbangiraffe.com"
927
+ msgstr ""
928
+
locale/nl_NL.mo CHANGED
Binary file
locale/nl_NL.po CHANGED
Binary file
matches/login.php CHANGED
@@ -24,11 +24,11 @@ class Login_Match extends Red_Match {
24
  function name() {
25
  return __( 'URL and login status', 'redirection' );
26
  }
27
-
28
  function show() {
29
  ?>
30
  </table>
31
-
32
  <p style="padding: 0.5em">
33
  <?php _e( 'The target URL will be chosen from one of the following URLs, depending if the user is logged in or out. Leaving a URL blank means that the user is not redirected.', 'redirection' ); ?>
34
  </p>
@@ -45,7 +45,7 @@ class Login_Match extends Red_Match {
45
  <input style="width: 95%" type="text" name="url_loggedin" value="<?php echo esc_attr( $this->url_loggedin ); ?>"/>
46
  </td>
47
  </tr>
48
- <tr>
49
  <th width="100" valign="top">
50
  <?php if ( strlen( $this->url_loggedout ) > 0 ) : ?>
51
  <a target="_blank" href="<?php echo $this->url_loggedout ?>"><?php _e( 'Logged Out', 'redirection' ); ?>:</a>
@@ -59,7 +59,7 @@ class Login_Match extends Red_Match {
59
  </tr>
60
  <?php
61
  }
62
-
63
  function save( $details ) {
64
  if ( isset( $details['target'] ) )
65
  $details['target'] = $details;
@@ -69,11 +69,11 @@ class Login_Match extends Red_Match {
69
  'url_loggedout' => $details['url_loggedout']
70
  );
71
  }
72
-
73
  function initialize( $url ) {
74
  $this->url = array( $url, '' );
75
  }
76
-
77
  function get_target( $url, $matched_url, $regex ) {
78
  if ( is_user_logged_in() === false )
79
  $target = $this->url_loggedout;
@@ -84,14 +84,14 @@ class Login_Match extends Red_Match {
84
  $target = preg_replace( '@'.str_replace( '@', '\\@', $matched_url ).'@', $target, $url );
85
  return $target;
86
  }
87
-
88
  function wants_it() {
89
  if ( is_user_logged_in() && strlen( $this->url_loggedin ) > 0 )
90
  return true;
91
  if ( !is_user_logged_in() && strlen( $this->url_loggedout ) > 0 )
92
  return true;
93
  }
94
-
95
  function match_name() {
96
  return sprintf( 'login status', $this->user_agent );
97
  }
24
  function name() {
25
  return __( 'URL and login status', 'redirection' );
26
  }
27
+
28
  function show() {
29
  ?>
30
  </table>
31
+
32
  <p style="padding: 0.5em">
33
  <?php _e( 'The target URL will be chosen from one of the following URLs, depending if the user is logged in or out. Leaving a URL blank means that the user is not redirected.', 'redirection' ); ?>
34
  </p>
45
  <input style="width: 95%" type="text" name="url_loggedin" value="<?php echo esc_attr( $this->url_loggedin ); ?>"/>
46
  </td>
47
  </tr>
48
+ <tr>]
49
  <th width="100" valign="top">
50
  <?php if ( strlen( $this->url_loggedout ) > 0 ) : ?>
51
  <a target="_blank" href="<?php echo $this->url_loggedout ?>"><?php _e( 'Logged Out', 'redirection' ); ?>:</a>
59
  </tr>
60
  <?php
61
  }
62
+
63
  function save( $details ) {
64
  if ( isset( $details['target'] ) )
65
  $details['target'] = $details;
69
  'url_loggedout' => $details['url_loggedout']
70
  );
71
  }
72
+
73
  function initialize( $url ) {
74
  $this->url = array( $url, '' );
75
  }
76
+
77
  function get_target( $url, $matched_url, $regex ) {
78
  if ( is_user_logged_in() === false )
79
  $target = $this->url_loggedout;
84
  $target = preg_replace( '@'.str_replace( '@', '\\@', $matched_url ).'@', $target, $url );
85
  return $target;
86
  }
87
+
88
  function wants_it() {
89
  if ( is_user_logged_in() && strlen( $this->url_loggedin ) > 0 )
90
  return true;
91
  if ( !is_user_logged_in() && strlen( $this->url_loggedout ) > 0 )
92
  return true;
93
  }
94
+
95
  function match_name() {
96
  return sprintf( 'login status', $this->user_agent );
97
  }
matches/referrer.php CHANGED
@@ -23,18 +23,18 @@ For full license details see license.txt
23
  class Referrer_Match extends Red_Match {
24
  var $referrer;
25
  var $regex;
26
-
27
  function name() {
28
  return __( 'URL and referrer', 'redirection' );
29
  }
30
-
31
  function show() {
32
- $codes = array(
33
  301 => get_status_header_desc( 301 ),
34
  302 => get_status_header_desc( 302 ),
35
  307 => get_status_header_desc( 307 )
36
  );
37
-
38
  ?>
39
  <tr>
40
  <th width="100"><?php _e( 'Referrer', 'redirection' ); ?>:</th>
@@ -81,11 +81,11 @@ class Referrer_Match extends Red_Match {
81
  </tr>
82
  <?php
83
  }
84
-
85
  function save( $details ) {
86
  if ( isset( $details['target'] ) )
87
  $details['url_from'] = $details['target'];
88
-
89
  return array(
90
  'url_from' => $details['url_from'],
91
  'url_notfrom' => $details['url_notfrom'],
@@ -93,7 +93,7 @@ class Referrer_Match extends Red_Match {
93
  'referrer' => $details['referrer']
94
  );
95
  }
96
-
97
  function initialize( $url ) {
98
  $this->url = array( $url, '' );
99
  }
@@ -102,10 +102,10 @@ class Referrer_Match extends Red_Match {
102
  // Match referrer
103
  return true;
104
  }
105
-
106
  function get_target( $url, $matched_url, $regex ) {
107
  $target = false;
108
-
109
  // Check if referrer matches
110
  if ( ( $this->regex == false && $_SERVER['HTTP_REFERER'] == $this->referrer ) ||( $this->regex == true && preg_match( '@'.str_replace( '@', '\\@', $this->referrer ).'@', $_SERVER['HTTP_REFERER'], $matches ) ) ) {
111
  $target = $this->url_from;
@@ -117,7 +117,7 @@ class Referrer_Match extends Red_Match {
117
  $target = $this->url_notfrom;
118
  return $target;
119
  }
120
-
121
  function match_name() {
122
  return sprintf( 'referrer - <code>%s</code>', $this->referrer );
123
  }
23
  class Referrer_Match extends Red_Match {
24
  var $referrer;
25
  var $regex;
26
+
27
  function name() {
28
  return __( 'URL and referrer', 'redirection' );
29
  }
30
+
31
  function show() {
32
+ $codes = array(
33
  301 => get_status_header_desc( 301 ),
34
  302 => get_status_header_desc( 302 ),
35
  307 => get_status_header_desc( 307 )
36
  );
37
+
38
  ?>
39
  <tr>
40
  <th width="100"><?php _e( 'Referrer', 'redirection' ); ?>:</th>
81
  </tr>
82
  <?php
83
  }
84
+
85
  function save( $details ) {
86
  if ( isset( $details['target'] ) )
87
  $details['url_from'] = $details['target'];
88
+
89
  return array(
90
  'url_from' => $details['url_from'],
91
  'url_notfrom' => $details['url_notfrom'],
93
  'referrer' => $details['referrer']
94
  );
95
  }
96
+
97
  function initialize( $url ) {
98
  $this->url = array( $url, '' );
99
  }
102
  // Match referrer
103
  return true;
104
  }
105
+
106
  function get_target( $url, $matched_url, $regex ) {
107
  $target = false;
108
+
109
  // Check if referrer matches
110
  if ( ( $this->regex == false && $_SERVER['HTTP_REFERER'] == $this->referrer ) ||( $this->regex == true && preg_match( '@'.str_replace( '@', '\\@', $this->referrer ).'@', $_SERVER['HTTP_REFERER'], $matches ) ) ) {
111
  $target = $this->url_from;
117
  $target = $this->url_notfrom;
118
  return $target;
119
  }
120
+
121
  function match_name() {
122
  return sprintf( 'referrer - <code>%s</code>', $this->referrer );
123
  }
matches/url.php CHANGED
@@ -24,7 +24,7 @@ class URL_Match extends Red_Match {
24
  function name () {
25
  return __( 'URL only', 'redirection' );
26
  }
27
-
28
  function show() {
29
  ?>
30
  <?php if ( $this->action->can_perform_action() ) : ?>
@@ -46,19 +46,19 @@ class URL_Match extends Red_Match {
46
  </tr>
47
  <?php endif;
48
  }
49
-
50
  function save( $details ) {
51
  if ( !isset( $details['target'] ) || strlen( $details['target'] ) == 0 )
52
  $details['target'] = '/';
53
-
54
  return array( 'url' => $details['target'] );
55
  }
56
-
57
  function get_target( $url, $matched_url, $regex ) {
58
  $target = $this->url;
59
  if ( $regex )
60
  $target = preg_replace( '@'.str_replace( '@', '\\@', $matched_url ).'@', $this->url, $url );
61
-
62
  if ( $target == '' )
63
  return $matched_url;
64
  return $target;
24
  function name () {
25
  return __( 'URL only', 'redirection' );
26
  }
27
+
28
  function show() {
29
  ?>
30
  <?php if ( $this->action->can_perform_action() ) : ?>
46
  </tr>
47
  <?php endif;
48
  }
49
+
50
  function save( $details ) {
51
  if ( !isset( $details['target'] ) || strlen( $details['target'] ) == 0 )
52
  $details['target'] = '/';
53
+
54
  return array( 'url' => $details['target'] );
55
  }
56
+
57
  function get_target( $url, $matched_url, $regex ) {
58
  $target = $this->url;
59
  if ( $regex )
60
  $target = preg_replace( '@'.str_replace( '@', '\\@', $matched_url ).'@', $this->url, $url );
61
+
62
  if ( $target == '' )
63
  return $matched_url;
64
  return $target;
matches/user_agent.php CHANGED
@@ -22,13 +22,13 @@ For full license details see license.txt
22
 
23
  class Agent_Match extends Red_Match {
24
  var $user_agent;
25
-
26
  function name() {
27
  return __( 'URL and user agent', 'redirection' );
28
  }
29
 
30
  function show() {
31
- $defined = array(
32
  'feedburner|feedvalidator' => __( 'FeedBurner', 'redirection' ),
33
  'MSIE' => __( 'Internet Explorer', 'redirection' ),
34
  'Firefox' => __( 'FireFox', 'redirection' ),
@@ -39,7 +39,7 @@ class Agent_Match extends Red_Match {
39
  'Android' => __( 'Android', 'redirection' ),
40
  'Wii' => __( 'Nintendo Wii', 'redirection' ),
41
  );
42
-
43
  ?>
44
  <tr>
45
  <th width="100"><?php _e( 'User Agent', 'redirection' ); ?>:</th>
@@ -62,7 +62,7 @@ class Agent_Match extends Red_Match {
62
  </td>
63
  </tr>
64
  <?php endif; ?>
65
-
66
  <?php if ( $this->action->can_perform_action() ) : ?>
67
  </table>
68
  <p style="padding: 0.5em"><?php _e( 'The visitor will be redirected from the source URL if the user agent matches. You can specify a <em>matched</em> target URL as the address to send visitors if they do match, and <em>not matched</em> if they don\'t match. Leaving a URL blank means that the visitor is not redirected. <strong>All matches are performed as regular expressions</strong>.
@@ -94,18 +94,18 @@ class Agent_Match extends Red_Match {
94
  <?php endif; ?>
95
  <?php
96
  }
97
-
98
  function save( $details ) {
99
  if ( isset( $details['target'] ) )
100
  $details['url_from'] = $details['target'];
101
-
102
  return array(
103
  'url_from' => $details['url_from'],
104
  'url_notfrom' => $details['url_notfrom'],
105
  'user_agent' => $details['user_agent']
106
  );
107
  }
108
-
109
  function initialize( $url ) {
110
  $this->url = array( $url, '' );
111
  }
@@ -114,7 +114,7 @@ class Agent_Match extends Red_Match {
114
  // Match referrer
115
  return true;
116
  }
117
-
118
  function get_target( $url, $matched_url, $regex ) {
119
  // Check if referrer matches
120
  if ( preg_match( '@'.str_replace( '@', '\\@', $this->user_agent ).'@i', $_SERVER['HTTP_USER_AGENT'], $matches ) > 0 )
@@ -123,7 +123,7 @@ class Agent_Match extends Red_Match {
123
  return $this->url_notfrom;
124
  return false;
125
  }
126
-
127
  function match_name() {
128
  return sprintf( 'user agent - %s', $this->user_agent );
129
  }
22
 
23
  class Agent_Match extends Red_Match {
24
  var $user_agent;
25
+
26
  function name() {
27
  return __( 'URL and user agent', 'redirection' );
28
  }
29
 
30
  function show() {
31
+ $defined = array(
32
  'feedburner|feedvalidator' => __( 'FeedBurner', 'redirection' ),
33
  'MSIE' => __( 'Internet Explorer', 'redirection' ),
34
  'Firefox' => __( 'FireFox', 'redirection' ),
39
  'Android' => __( 'Android', 'redirection' ),
40
  'Wii' => __( 'Nintendo Wii', 'redirection' ),
41
  );
42
+
43
  ?>
44
  <tr>
45
  <th width="100"><?php _e( 'User Agent', 'redirection' ); ?>:</th>
62
  </td>
63
  </tr>
64
  <?php endif; ?>
65
+
66
  <?php if ( $this->action->can_perform_action() ) : ?>
67
  </table>
68
  <p style="padding: 0.5em"><?php _e( 'The visitor will be redirected from the source URL if the user agent matches. You can specify a <em>matched</em> target URL as the address to send visitors if they do match, and <em>not matched</em> if they don\'t match. Leaving a URL blank means that the visitor is not redirected. <strong>All matches are performed as regular expressions</strong>.
94
  <?php endif; ?>
95
  <?php
96
  }
97
+
98
  function save( $details ) {
99
  if ( isset( $details['target'] ) )
100
  $details['url_from'] = $details['target'];
101
+
102
  return array(
103
  'url_from' => $details['url_from'],
104
  'url_notfrom' => $details['url_notfrom'],
105
  'user_agent' => $details['user_agent']
106
  );
107
  }
108
+
109
  function initialize( $url ) {
110
  $this->url = array( $url, '' );
111
  }
114
  // Match referrer
115
  return true;
116
  }
117
+
118
  function get_target( $url, $matched_url, $regex ) {
119
  // Check if referrer matches
120
  if ( preg_match( '@'.str_replace( '@', '\\@', $this->user_agent ).'@i', $_SERVER['HTTP_USER_AGENT'], $matches ) > 0 )
123
  return $this->url_notfrom;
124
  return false;
125
  }
126
+
127
  function match_name() {
128
  return sprintf( 'user agent - %s', $this->user_agent );
129
  }
models/action.php CHANGED
@@ -10,9 +10,9 @@ class Red_Action
10
  $this->$key = $value;
11
  }
12
  }
13
-
14
  function can_change_code () { return false;}
15
-
16
  function config () { }
17
 
18
  function create ($name, $code)
@@ -22,15 +22,15 @@ class Red_Action
22
  {
23
  if (!class_exists (strtolower ($avail[$name][1])))
24
  include (dirname (__FILE__).'/../actions/'.$avail[$name][0]);
25
-
26
  $obj = new $avail[$name][1] (array ('action_code' => $code));
27
  $obj->type = $name;
28
  return $obj;
29
  }
30
-
31
  return false;
32
  }
33
-
34
  function available ()
35
  {
36
  return array
@@ -42,17 +42,17 @@ class Red_Action
42
  'pass' => array ('pass.php', 'Pass_Action'),
43
  );
44
  }
45
-
46
  function type ()
47
  {
48
  return $this->type;
49
  }
50
-
51
  function process_before ($code, $target) { return true; }
52
  function process_after ($code, $target) { return true; }
53
  function can_perform_action () { return true; }
54
  function action_codes () { return array ();}
55
-
56
  function display_actions ()
57
  {
58
  foreach ($this->action_codes () AS $key => $code)
@@ -60,4 +60,4 @@ class Red_Action
60
  }
61
 
62
  }
63
- ?>
10
  $this->$key = $value;
11
  }
12
  }
13
+
14
  function can_change_code () { return false;}
15
+
16
  function config () { }
17
 
18
  function create ($name, $code)
22
  {
23
  if (!class_exists (strtolower ($avail[$name][1])))
24
  include (dirname (__FILE__).'/../actions/'.$avail[$name][0]);
25
+
26
  $obj = new $avail[$name][1] (array ('action_code' => $code));
27
  $obj->type = $name;
28
  return $obj;
29
  }
30
+
31
  return false;
32
  }
33
+
34
  function available ()
35
  {
36
  return array
42
  'pass' => array ('pass.php', 'Pass_Action'),
43
  );
44
  }
45
+
46
  function type ()
47
  {
48
  return $this->type;
49
  }
50
+
51
  function process_before ($code, $target) { return true; }
52
  function process_after ($code, $target) { return true; }
53
  function can_perform_action () { return true; }
54
  function action_codes () { return array ();}
55
+
56
  function display_actions ()
57
  {
58
  foreach ($this->action_codes () AS $key => $code)
60
  }
61
 
62
  }
63
+ ?>
models/database.php CHANGED
@@ -18,9 +18,9 @@ class Redirector_Referrer {
18
  class RE_Database {
19
  function install() {
20
  global $wpdb;
21
-
22
  $create = array(
23
- "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_items`(
24
  `id` int(11) unsigned NOT NULL auto_increment,
25
  `url` mediumtext NOT NULL,
26
  `regex` int(11) unsigned NOT NULL default '0',
@@ -41,8 +41,8 @@ class RE_Database {
41
  KEY `group_idpos` (`group_id`,`position`),
42
  KEY `group` (`group_id`)
43
  )",
44
-
45
- "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_groups`(
46
  `id` int(11) NOT NULL auto_increment,
47
  `name` varchar(50) NOT NULL,
48
  `tracking` int(11) NOT NULL default '1',
@@ -53,8 +53,8 @@ class RE_Database {
53
  KEY `module_id` (`module_id`),
54
  KEY `status` (`status`)
55
  )",
56
-
57
- "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_logs`(
58
  `id` int(11) unsigned NOT NULL auto_increment,
59
  `created` datetime NOT NULL,
60
  `url` mediumtext NOT NULL,
@@ -72,8 +72,8 @@ class RE_Database {
72
  KEY `group_id` (`group_id`),
73
  KEY `module_id` (`module_id`)
74
  )",
75
-
76
- "CREATE TABLE `{$wpdb->prefix}redirection_modules`(
77
  `id` int(11) unsigned NOT NULL auto_increment,
78
  `type` varchar(20) NOT NULL default '',
79
  `name` varchar(50) NOT NULL default '',
@@ -104,16 +104,16 @@ class RE_Database {
104
  $options = get_option( 'redirection_options' );
105
  $options['monitor_post'] = 2;
106
  $options['monitor_category'] = 2;
107
-
108
  update_option( 'redirection_options', $options );
109
  }
110
  }
111
-
112
  function upgrade( $current, $target ) {
113
  global $wpdb;
114
 
115
  $wpdb->show_errors();
116
-
117
  // No previous version? Install the DB tables
118
  if ( $current === false )
119
  $success = $this->install();
@@ -128,81 +128,81 @@ class RE_Database {
128
 
129
  if ( version_compare( $current, '2.1.16' ) == -1 )
130
  $this->upgrade_to_216();
131
-
132
  if ( version_compare( $current, '2.2' ) == -1 )
133
  $this->upgrade_to_220();
134
  }
135
-
136
  // Set our current version
137
  update_option( 'redirection_version', $target );
138
 
139
  $wpdb->hide_errors();
140
  return $success;
141
  }
142
-
143
  function upgrade_from_20() {
144
  global $wpdb;
145
-
146
  $this->upgrade_from_21();
147
  $this->upgrade_from_22();
148
  }
149
-
150
  function upgrade_from_21() {
151
  global $wpdb;
152
-
153
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD `title` varchar(50) NULL" );
154
-
155
  $this->upgrade_from_22();
156
  }
157
-
158
  function upgrade_from_22() {
159
  global $wpdb;
160
-
161
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` CHANGE `title` `title` varchar(50) NULL" );
162
  }
163
-
164
  function upgrade_to_216() {
165
  global $wpdb;
166
-
167
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_groups` ADD INDEX(module_id)" );
168
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_groups` ADD INDEX(status)" );
169
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(url(200))" );
170
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(status)" );
171
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(regex)" );
172
  }
173
-
174
  function upgrade_to_220() {
175
  global $wpdb;
176
-
177
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX `group_idpos` (`group_id`,`position`)" );
178
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX `group` (`group_id`)" );
179
-
180
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `group` (`group_id`)" );
181
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `redirection_id` (`redirection_id`)" );
182
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `created` (`created`)" );
183
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `ip` (`ip`)" );
184
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `group_id` (`group_id`)" );
185
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `module_id` (`module_id`)" );
186
-
187
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_modules` ADD INDEX `name` (`name`)" );
188
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_modules` ADD INDEX `type` (`type`)" );
189
  }
190
-
191
  function remove( $plugin ) {
192
  global $wpdb;
193
-
194
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection;" );
195
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_items;" );
196
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_logs;" );
197
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_groups;" );
198
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_modules;" );
199
-
200
  delete_option( 'redirection_lookup' );
201
  delete_option( 'redirection_post' );
202
  delete_option( 'redirection_root' );
203
  delete_option( 'redirection_index' );
204
  delete_option( 'redirection_version' );
205
-
206
  $current = get_option( 'active_plugins' );
207
  array_splice( $current, array_search( basename( dirname( $plugin ) ).'/'.basename( $plugin ), $current ), 1 );
208
  update_option( 'active_plugins', $current );
18
  class RE_Database {
19
  function install() {
20
  global $wpdb;
21
+
22
  $create = array(
23
+ "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_items`(
24
  `id` int(11) unsigned NOT NULL auto_increment,
25
  `url` mediumtext NOT NULL,
26
  `regex` int(11) unsigned NOT NULL default '0',
41
  KEY `group_idpos` (`group_id`,`position`),
42
  KEY `group` (`group_id`)
43
  )",
44
+
45
+ "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_groups`(
46
  `id` int(11) NOT NULL auto_increment,
47
  `name` varchar(50) NOT NULL,
48
  `tracking` int(11) NOT NULL default '1',
53
  KEY `module_id` (`module_id`),
54
  KEY `status` (`status`)
55
  )",
56
+
57
+ "CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}redirection_logs`(
58
  `id` int(11) unsigned NOT NULL auto_increment,
59
  `created` datetime NOT NULL,
60
  `url` mediumtext NOT NULL,
72
  KEY `group_id` (`group_id`),
73
  KEY `module_id` (`module_id`)
74
  )",
75
+
76
+ "CREATE TABLE `{$wpdb->prefix}redirection_modules`(
77
  `id` int(11) unsigned NOT NULL auto_increment,
78
  `type` varchar(20) NOT NULL default '',
79
  `name` varchar(50) NOT NULL default '',
104
  $options = get_option( 'redirection_options' );
105
  $options['monitor_post'] = 2;
106
  $options['monitor_category'] = 2;
107
+
108
  update_option( 'redirection_options', $options );
109
  }
110
  }
111
+
112
  function upgrade( $current, $target ) {
113
  global $wpdb;
114
 
115
  $wpdb->show_errors();
116
+
117
  // No previous version? Install the DB tables
118
  if ( $current === false )
119
  $success = $this->install();
128
 
129
  if ( version_compare( $current, '2.1.16' ) == -1 )
130
  $this->upgrade_to_216();
131
+
132
  if ( version_compare( $current, '2.2' ) == -1 )
133
  $this->upgrade_to_220();
134
  }
135
+
136
  // Set our current version
137
  update_option( 'redirection_version', $target );
138
 
139
  $wpdb->hide_errors();
140
  return $success;
141
  }
142
+
143
  function upgrade_from_20() {
144
  global $wpdb;
145
+
146
  $this->upgrade_from_21();
147
  $this->upgrade_from_22();
148
  }
149
+
150
  function upgrade_from_21() {
151
  global $wpdb;
152
+
153
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD `title` varchar(50) NULL" );
154
+
155
  $this->upgrade_from_22();
156
  }
157
+
158
  function upgrade_from_22() {
159
  global $wpdb;
160
+
161
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` CHANGE `title` `title` varchar(50) NULL" );
162
  }
163
+
164
  function upgrade_to_216() {
165
  global $wpdb;
166
+
167
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_groups` ADD INDEX(module_id)" );
168
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_groups` ADD INDEX(status)" );
169
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(url(200))" );
170
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(status)" );
171
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX(regex)" );
172
  }
173
+
174
  function upgrade_to_220() {
175
  global $wpdb;
176
+
177
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX `group_idpos` (`group_id`,`position`)" );
178
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_items` ADD INDEX `group` (`group_id`)" );
179
+
180
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `group` (`group_id`)" );
181
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `redirection_id` (`redirection_id`)" );
182
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `created` (`created`)" );
183
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `ip` (`ip`)" );
184
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `group_id` (`group_id`)" );
185
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_logs` ADD INDEX `module_id` (`module_id`)" );
186
+
187
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_modules` ADD INDEX `name` (`name`)" );
188
  $wpdb->query( "ALTER TABLE `{$wpdb->prefix}redirection_modules` ADD INDEX `type` (`type`)" );
189
  }
190
+
191
  function remove( $plugin ) {
192
  global $wpdb;
193
+
194
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection;" );
195
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_items;" );
196
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_logs;" );
197
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_groups;" );
198
  $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}redirection_modules;" );
199
+
200
  delete_option( 'redirection_lookup' );
201
  delete_option( 'redirection_post' );
202
  delete_option( 'redirection_root' );
203
  delete_option( 'redirection_index' );
204
  delete_option( 'redirection_version' );
205
+
206
  $current = get_option( 'active_plugins' );
207
  array_splice( $current, array_search( basename( dirname( $plugin ) ).'/'.basename( $plugin ), $current ), 1 );
208
  update_option( 'active_plugins', $current );
models/file_io.php CHANGED
@@ -3,16 +3,16 @@
3
  class Red_FileIO
4
  {
5
  var $items = array ();
6
-
7
  function export ($type)
8
  {
9
  include (dirname (__FILE__).'/../models/pager.php');
10
-
11
  $module = Red_Module::get (intval ($_GET['module']));
12
  if ($module)
13
  {
14
  include (dirname (__FILE__)."/../fileio/$type.php");
15
-
16
  if ($type == 'rss')
17
  $exporter = new Red_Rss_File ();
18
  else if ($type == 'xml')
@@ -26,7 +26,7 @@ class Red_FileIO
26
  $exporter->feed ();
27
  return true;
28
  }
29
-
30
  return false;
31
  }
32
 
@@ -49,14 +49,12 @@ class Red_FileIO
49
  $importer = new Red_Apache_File();
50
  $data = @file_get_contents ($file['tmp_name']);
51
  }
52
-
53
  return $importer->load( $group, $data, $file['tmp_name'] );
54
  }
55
 
56
  return 0;
57
  }
58
-
59
  function load ($group, $data) { }
60
  }
61
-
62
- ?>
3
  class Red_FileIO
4
  {
5
  var $items = array ();
6
+
7
  function export ($type)
8
  {
9
  include (dirname (__FILE__).'/../models/pager.php');
10
+
11
  $module = Red_Module::get (intval ($_GET['module']));
12
  if ($module)
13
  {
14
  include (dirname (__FILE__)."/../fileio/$type.php");
15
+
16
  if ($type == 'rss')
17
  $exporter = new Red_Rss_File ();
18
  else if ($type == 'xml')
26
  $exporter->feed ();
27
  return true;
28
  }
29
+
30
  return false;
31
  }
32
 
49
  $importer = new Red_Apache_File();
50
  $data = @file_get_contents ($file['tmp_name']);
51
  }
52
+
53
  return $importer->load( $group, $data, $file['tmp_name'] );
54
  }
55
 
56
  return 0;
57
  }
58
+
59
  function load ($group, $data) { }
60
  }
 
 
models/group.php CHANGED
@@ -8,7 +8,7 @@ class Red_Group {
8
  }
9
  }
10
  }
11
-
12
  /**
13
  * Get list of groups
14
  */
@@ -20,10 +20,10 @@ class Red_Group {
20
  return new Red_Group( $row );
21
  return false;
22
  }
23
-
24
  function get_for_module( $module ) {
25
  global $wpdb;
26
-
27
  $sql = $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS {$wpdb->prefix}redirection_groups.* FROM {$wpdb->prefix}redirection_groups WHERE {$wpdb->prefix}redirection_groups.module_id=%d", $module );
28
 
29
  $rows = $wpdb->get_results( $sql );
@@ -36,14 +36,14 @@ class Red_Group {
36
 
37
  return $items;
38
  }
39
-
40
  /**
41
  * Get all groups with number of items in each group
42
  * DBW
43
  */
44
  function get_all( $module, $pager ) {
45
  global $wpdb;
46
-
47
  $sql = $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS {$wpdb->prefix}redirection_groups.*,COUNT( {$wpdb->prefix}redirection_items.id ) AS items,SUM( {$wpdb->prefix}redirection_items.last_count ) AS redirects FROM {$wpdb->prefix}redirection_groups LEFT JOIN {$wpdb->prefix}redirection_items ON {$wpdb->prefix}redirection_items.group_id={$wpdb->prefix}redirection_groups.id WHERE {$wpdb->prefix}redirection_groups.module_id=%d", $module );
48
  $sql .= str_replace( 'WHERE', 'AND', $pager->to_limits( '', array( 'name' ), '', "GROUP BY {$wpdb->prefix}redirection_groups.id" ) );
49
 
@@ -58,14 +58,14 @@ class Red_Group {
58
 
59
  return $items;
60
  }
61
-
62
  /**
63
  * Get list of groups
64
  * DBW
65
  */
66
  function get_for_select() {
67
  global $wpdb;
68
-
69
  $data = array();
70
  $rows = $wpdb->get_results( $wpdb->prepare( "SELECT {$wpdb->prefix}redirection_modules.name AS module_name,{$wpdb->prefix}redirection_groups.name AS group_name,{$wpdb->prefix}redirection_groups.id FROM {$wpdb->prefix}redirection_groups INNER JOIN {$wpdb->prefix}redirection_modules ON {$wpdb->prefix}redirection_modules.id={$wpdb->prefix}redirection_groups.module_id ORDER BY {$wpdb->prefix}redirection_modules.name,{$wpdb->prefix}redirection_groups.position" ) );
71
  if ( $rows ) {
@@ -73,10 +73,10 @@ class Red_Group {
73
  $data[$row->module_name][$row->id] = $row->group_name;
74
  }
75
  }
76
-
77
  return $data;
78
  }
79
-
80
  /**
81
  * Get first group ID
82
  */
@@ -88,7 +88,7 @@ class Red_Group {
88
 
89
  function create( $data ) {
90
  global $wpdb;
91
-
92
  $name = trim( $data['name'] );
93
  $module = intval( $data['module_id'] );
94
 
@@ -107,36 +107,36 @@ class Red_Group {
107
  $data['status'] = $data['status'];
108
 
109
  $wpdb->insert( $wpdb->prefix.'redirection_groups', $data );
110
-
111
  Red_Module::flush( $module );
112
  return $wpdb->insert_id;
113
  }
114
-
115
  return false;
116
  }
117
-
118
  function update( $data ) {
119
  global $wpdb;
120
-
121
  $this->tracking = isset( $data['tracking'] ) ? true : false;
122
  $this->status = isset( $data['status'] ) ? 'enabled' : 'disabled';
123
-
124
  $wpdb->update( $wpdb->prefix.'redirection_groups', array( 'name' => $data['name'], 'status' => $this->status, 'tracking' => intval( $this->tracking ) ), array( 'id' => intval( $this->id ) ) );
125
-
126
  Red_Module::flush( $this->module_id );
127
  }
128
-
129
  function delete( $group ) {
130
  global $wpdb;
131
-
132
  $obj = Red_Group::get( $group );
133
-
134
  // Delete all items in this group
135
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_items WHERE group_id=%d", $group ) );
136
 
137
  // Delete the group
138
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_groups WHERE id=%d", $group ) );
139
-
140
  // Update positions
141
  $rows = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}redirection_groups ORDER BY position" );
142
  if ( count( $rows ) > 0 ) {
@@ -145,67 +145,67 @@ class Red_Group {
145
  }
146
  }
147
  }
148
-
149
  function save_order( $items, $start ) {
150
  global $wpdb;
151
 
152
  foreach ( $items AS $pos => $id ) {
153
  $wpdb->update( $wpdb->prefix.'redirection_groups', array( 'position' => $pos + $start ), array( 'id' => intval( $id ) ) );
154
  }
155
-
156
  $group = Red_Group::get( $items[0] );
157
  Red_Module::flush( $group->module_id );
158
  }
159
-
160
  function move_to( $module ) {
161
  global $wpdb;
162
 
163
  $wpdb->update( $wpdb->prefix.'redirection_groups', array( 'module_id' => intval( $module ) ), array( 'id' => $this->id ) );
164
-
165
  Red_Module::flush( $module );
166
  Red_Module::flush( $this->id );
167
  }
168
-
169
  function reset() {
170
  global $wpdb;
171
-
172
  $this->last_count = 0;
173
  $this->last_access = '0000-00-00 00:00:00';
174
-
175
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'last_count' => 0, 'last_access' => $this->last_access ), array( 'group_id' => $this->id ) );
176
-
177
  RE_Log::delete_for_group( $this->id );
178
  }
179
-
180
  function items() {
181
  if ( $this->items > 0 )
182
  return sprintf( ' (%d)', $this->items );
183
  return '';
184
  }
185
-
186
  function type() {
187
  if ( $this->apache )
188
  return '.ht';
189
  return 'WP';
190
  }
191
-
192
  function tracked() {
193
  if ( $this->tracking == 1 )
194
  return __( 'Yes', 'redirection' );
195
  return __( 'No', 'redirection' );
196
  }
197
-
198
  function toggle_status() {
199
  global $wpdb;
200
 
201
  $this->status = ( $this->status == 'enabled' ) ? 'disabled' : 'enabled';
202
-
203
  $wpdb->update( $wpdb->prefix.'redirection_groups', array( 'status' => $this->status ), array( 'id' => $this->id ) );
204
  }
205
-
206
  function hits() {
207
  global $wpdb;
208
-
209
  $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM {$wpdb->prefix}redirection_logs WHERE group_id=%d", $this->id ) );
210
  if ( $count > 0 )
211
  return $count;
8
  }
9
  }
10
  }
11
+
12
  /**
13
  * Get list of groups
14
  */
20
  return new Red_Group( $row );
21
  return false;
22
  }
23
+
24
  function get_for_module( $module ) {
25
  global $wpdb;
26
+
27
  $sql = $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS {$wpdb->prefix}redirection_groups.* FROM {$wpdb->prefix}redirection_groups WHERE {$wpdb->prefix}redirection_groups.module_id=%d", $module );
28
 
29
  $rows = $wpdb->get_results( $sql );
36
 
37
  return $items;
38
  }
39
+
40
  /**
41
  * Get all groups with number of items in each group
42
  * DBW
43
  */
44
  function get_all( $module, $pager ) {
45
  global $wpdb;
46
+
47
  $sql = $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS {$wpdb->prefix}redirection_groups.*,COUNT( {$wpdb->prefix}redirection_items.id ) AS items,SUM( {$wpdb->prefix}redirection_items.last_count ) AS redirects FROM {$wpdb->prefix}redirection_groups LEFT JOIN {$wpdb->prefix}redirection_items ON {$wpdb->prefix}redirection_items.group_id={$wpdb->prefix}redirection_groups.id WHERE {$wpdb->prefix}redirection_groups.module_id=%d", $module );
48
  $sql .= str_replace( 'WHERE', 'AND', $pager->to_limits( '', array( 'name' ), '', "GROUP BY {$wpdb->prefix}redirection_groups.id" ) );
49
 
58
 
59
  return $items;
60
  }
61
+
62
  /**
63
  * Get list of groups
64
  * DBW
65
  */
66
  function get_for_select() {
67
  global $wpdb;
68
+
69
  $data = array();
70
  $rows = $wpdb->get_results( $wpdb->prepare( "SELECT {$wpdb->prefix}redirection_modules.name AS module_name,{$wpdb->prefix}redirection_groups.name AS group_name,{$wpdb->prefix}redirection_groups.id FROM {$wpdb->prefix}redirection_groups INNER JOIN {$wpdb->prefix}redirection_modules ON {$wpdb->prefix}redirection_modules.id={$wpdb->prefix}redirection_groups.module_id ORDER BY {$wpdb->prefix}redirection_modules.name,{$wpdb->prefix}redirection_groups.position" ) );
71
  if ( $rows ) {
73
  $data[$row->module_name][$row->id] = $row->group_name;
74
  }
75
  }
76
+
77
  return $data;
78
  }
79
+
80
  /**
81
  * Get first group ID
82
  */
88
 
89
  function create( $data ) {
90
  global $wpdb;
91
+
92
  $name = trim( $data['name'] );
93
  $module = intval( $data['module_id'] );
94
 
107
  $data['status'] = $data['status'];
108
 
109
  $wpdb->insert( $wpdb->prefix.'redirection_groups', $data );
110
+
111
  Red_Module::flush( $module );
112
  return $wpdb->insert_id;
113
  }
114
+
115
  return false;
116
  }
117
+
118
  function update( $data ) {
119
  global $wpdb;
120
+
121
  $this->tracking = isset( $data['tracking'] ) ? true : false;
122
  $this->status = isset( $data['status'] ) ? 'enabled' : 'disabled';
123
+
124
  $wpdb->update( $wpdb->prefix.'redirection_groups', array( 'name' => $data['name'], 'status' => $this->status, 'tracking' => intval( $this->tracking ) ), array( 'id' => intval( $this->id ) ) );
125
+
126
  Red_Module::flush( $this->module_id );
127
  }
128
+
129
  function delete( $group ) {
130
  global $wpdb;
131
+
132
  $obj = Red_Group::get( $group );
133
+
134
  // Delete all items in this group
135
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_items WHERE group_id=%d", $group ) );
136
 
137
  // Delete the group
138
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_groups WHERE id=%d", $group ) );
139
+
140
  // Update positions
141
  $rows = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}redirection_groups ORDER BY position" );
142
  if ( count( $rows ) > 0 ) {
145
  }
146
  }
147
  }
148
+
149
  function save_order( $items, $start ) {
150
  global $wpdb;
151
 
152
  foreach ( $items AS $pos => $id ) {
153
  $wpdb->update( $wpdb->prefix.'redirection_groups', array( 'position' => $pos + $start ), array( 'id' => intval( $id ) ) );
154
  }
155
+
156
  $group = Red_Group::get( $items[0] );
157
  Red_Module::flush( $group->module_id );
158
  }
159
+
160
  function move_to( $module ) {
161
  global $wpdb;
162
 
163
  $wpdb->update( $wpdb->prefix.'redirection_groups', array( 'module_id' => intval( $module ) ), array( 'id' => $this->id ) );
164
+
165
  Red_Module::flush( $module );
166
  Red_Module::flush( $this->id );
167
  }
168
+
169
  function reset() {
170
  global $wpdb;
171
+
172
  $this->last_count = 0;
173
  $this->last_access = '0000-00-00 00:00:00';
174
+
175
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'last_count' => 0, 'last_access' => $this->last_access ), array( 'group_id' => $this->id ) );
176
+
177
  RE_Log::delete_for_group( $this->id );
178
  }
179
+
180
  function items() {
181
  if ( $this->items > 0 )
182
  return sprintf( ' (%d)', $this->items );
183
  return '';
184
  }
185
+
186
  function type() {
187
  if ( $this->apache )
188
  return '.ht';
189
  return 'WP';
190
  }
191
+
192
  function tracked() {
193
  if ( $this->tracking == 1 )
194
  return __( 'Yes', 'redirection' );
195
  return __( 'No', 'redirection' );
196
  }
197
+
198
  function toggle_status() {
199
  global $wpdb;
200
 
201
  $this->status = ( $this->status == 'enabled' ) ? 'disabled' : 'enabled';
202
+
203
  $wpdb->update( $wpdb->prefix.'redirection_groups', array( 'status' => $this->status ), array( 'id' => $this->id ) );
204
  }
205
+
206
  function hits() {
207
  global $wpdb;
208
+
209
  $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM {$wpdb->prefix}redirection_logs WHERE group_id=%d", $this->id ) );
210
  if ( $count > 0 )
211
  return $count;
models/htaccess.php CHANGED
@@ -4,7 +4,7 @@ class Red_Htaccess
4
  {
5
  var $settings;
6
  var $items;
7
-
8
  function Red_Htaccess ($settings)
9
  {
10
  foreach ($settings AS $key => $value)
@@ -15,7 +15,7 @@ class Red_Htaccess
15
  {
16
  return '^'.$this->encode ($url).'$';
17
  }
18
-
19
  function encode2nd ($url)
20
  {
21
  $url = urlencode ($url);
@@ -25,7 +25,7 @@ class Red_Htaccess
25
  $url = str_replace ('%24', '$', $url);
26
  return $url;
27
  }
28
-
29
  function encode ($url)
30
  {
31
  $url = urlencode ($url);
@@ -34,7 +34,7 @@ class Red_Htaccess
34
  $url = str_replace ('.', '\\.', $url);
35
  return $url;
36
  }
37
-
38
  function encode_regex ($url)
39
  {
40
  $url = str_replace (' ', '%20', $url);
@@ -43,13 +43,13 @@ class Red_Htaccess
43
  $url = str_replace ('%24', '$', $url);
44
  return $url;
45
  }
46
-
47
  function add_referrer ($item, $match)
48
  {
49
  $from = $this->encode_from (ltrim ($item->url, '/'));
50
  if ($item->regex)
51
  $from = $this->encode_regex (ltrim ($item->url, '/'));
52
-
53
  if (($match->url_from || $match->url_notfrom) && $match->referrer)
54
  {
55
  $this->items[] = sprintf ('RewriteCond %%{HTTP_REFERER} %s [NC]', ($match->regex ? $this->encode_regex ($match->referrer) : $this->encode_from ($match->referrer)));
@@ -59,7 +59,7 @@ class Red_Htaccess
59
  $to = $this->target ($item->action_type, $match->url_from, $item->action_code, $item->regex);
60
  $this->items[] = sprintf ('RewriteRule %s %s', $from, $to);
61
  }
62
-
63
  if ($match->url_notfrom)
64
  {
65
  $to = $this->target ($item->action_type, $match->url_notfrom, $item->action_code, $item->regex);
@@ -67,23 +67,23 @@ class Red_Htaccess
67
  }
68
  }
69
  }
70
-
71
  function add_agent ($item, $match)
72
  {
73
  $from = $this->encode (ltrim ($item->url, '/'));
74
  if ($item->regex)
75
  $from = $this->encode_regex (ltrim ($item->url, '/'));
76
-
77
  if (($match->url_from || $match->url_notfrom) && $match->user_agent)
78
  {
79
  $this->items[] = sprintf ('RewriteCond %%{HTTP_USER_AGENT} %s [NC]', ($match->regex ? $this->encode_regex ($match->user_agent) : $this->encode2nd ($match->user_agent)));
80
-
81
  if ($match->url_from)
82
  {
83
  $to = $this->target ($item->action_type, $match->url_from, $item->action_code, $item->regex);
84
  $this->items[] = sprintf ('RewriteRule %s %s', $from, $to);
85
  }
86
-
87
  if ($match->url_notfrom)
88
  {
89
  $to = $this->target ($item->action_type, $match->url_notfrom, $item->action_code, $item->regex);
@@ -91,29 +91,29 @@ class Red_Htaccess
91
  }
92
  }
93
  }
94
-
95
  function add_url ($item, $match)
96
  {
97
  $to = $this->target ($item->action_type, $match->url, $item->action_code, $item->regex);
98
  $from = $this->encode_from (ltrim ($item->url, '/'));
99
  if ($item->regex)
100
  $from = $this->encode_regex (ltrim ($item->url, '/'));
101
-
102
  if ($to)
103
  $this->items[] = sprintf ('RewriteRule %s %s', $from, $to);
104
  }
105
-
106
  function action_random ($data, $code, $regex)
107
  {
108
  // Pick a WP post at random
109
  global $wpdb;
110
-
111
  $post = $wpdb->get_var ("SELECT ID FROM {$wpdb->posts} ORDER BY RAND() LIMIT 0,1");
112
  $url = parse_url (get_permalink ($post));
113
-
114
  return sprintf ('%s [R=%d,L]', $this->encode ($url['path']), $code);
115
  }
116
-
117
  function action_pass ($data, $code, $regex)
118
  {
119
  if ($regex)
@@ -121,14 +121,14 @@ class Red_Htaccess
121
  else
122
  return sprintf ('%s [L]', $this->encode2nd ($data), $code);
123
  }
124
-
125
  function action_error ($data, $code, $regex)
126
  {
127
  if ($code == '410')
128
  return '/ [G,L]';
129
  return '/ [F,L]';
130
  }
131
-
132
  function action_url ($data, $code, $regex)
133
  {
134
  if ($regex)
@@ -136,7 +136,7 @@ class Red_Htaccess
136
  else
137
  return sprintf ('%s [R=%d,L]', $this->encode2nd ($data), $code);
138
  }
139
-
140
  function target ($action, $data, $code, $regex)
141
  {
142
  $target = 'action_'.$action;
@@ -145,36 +145,36 @@ class Red_Htaccess
145
  return $this->$target ($data, $code, $regex);
146
  return '';
147
  }
148
-
149
  function add ($item)
150
  {
151
  $target = 'add_'.$item->match_type;
152
-
153
  if (method_exists ($this, $target))
154
  $this->$target ($item, $item->match);
155
  }
156
-
157
  function generate ($name)
158
  {
159
  // Head of redirection section - do not localize this
160
  global $redirection;
161
-
162
  $text[] = '# Created by Redirection Module: '.$name;
163
  $text[] = '# '.date ('r');
164
  $text[] = '# Redirection '.$redirection->version ().' - http://urbangiraffe.com/plugins/redirection/';
165
  $text[] = '';
166
-
167
  // Default blocked files - I can't think of a reason not to block these
168
  $text[] = '<Files .htaccess,.svn>';
169
  $text[] = 'order allow,deny';
170
  $text[] = 'deny from all';
171
  $text[] = '</Files>';
172
  $text[] = '';
173
-
174
  // PHP options
175
  if (isset ($this->settings['error_level']) && $this->settings['error_level'] != 'default')
176
  $text[] = 'php_value error_reporting '.($this->settings == 'none' ? '0' : 'E_ALL');
177
-
178
  if (isset ($this->settings['memory_limit']) && $this->settings['memory_limit'] != 0)
179
  $text[] = 'php_value memory_limit '.$this->settings['memory_limit'].'M';
180
 
@@ -191,7 +191,7 @@ class Red_Htaccess
191
  $text[] = 'deny from '.$ip;
192
  }
193
  }
194
-
195
  if ($this->settings['allow_ip'])
196
  {
197
  $ips = array_filter (explode (',', $this->settings['allow_ip']));
@@ -217,10 +217,10 @@ class Red_Htaccess
217
  $base = $this->settings['site'];
218
  if ($base == '')
219
  $base = get_option ('home');
220
-
221
  $parts = parse_url ($base);
222
  $base = str_replace ('www.', '', $parts['host']);
223
-
224
  if ($this->settings['canonical'] == 'nowww')
225
  {
226
  $text[] = 'RewriteCond %{HTTP_HOST} ^www\.'.str_replace ('.', '\\.', $base).'$ [NC]';
@@ -231,7 +231,7 @@ class Red_Htaccess
231
  $text[] = 'RewriteCond %{HTTP_HOST} ^'.str_replace ('.', '\\.', $base).'$ [NC]';
232
  $text[] = 'RewriteRule ^(.*)$ http://www.'.$base.'/$1 [R=301,L]';
233
  }
234
-
235
  $text[] = '';
236
  }
237
 
@@ -241,47 +241,47 @@ class Red_Htaccess
241
  $text[] = 'RewriteRule ^(.*)index\.(php|html|htm)$ $1 [R=301,NC,L]';
242
  $text[] = '';
243
  }
244
-
245
  // Add redirects
246
  if (is_array ($this->items))
247
  $text = array_merge ($text, $this->items);
248
-
249
  // End of mod_rewrite
250
  $text[] = '</IfModule>';
251
  $text[] = '';
252
-
253
  if ($this->settings['raw'])
254
  $text[] = $this->settings['raw'];
255
-
256
  // End of redirection section
257
  $text[] = '# End of Redirection';
258
  $text[] = '';
259
-
260
  $text = implode ("\r\n", $text);
261
  $text = str_replace ("\r\n\r\n\r\n", "\r\n", $text);
262
  $text = str_replace ("\r\n\r\n\r\n", "\r\n", $text);
263
  return $text;
264
  }
265
-
266
  function save ($filename, $name)
267
  {
268
  $text = $this->generate ($name);
269
-
270
  // Does the file already exist?
271
  if (file_exists ($filename))
272
  {
273
  $existing = @file_get_contents ($filename);
274
-
275
  // Remove any existing Redirection module
276
  $text .= preg_replace ('@# Created by Redirection Module: '.$name.'(.*?)# End of Redirection@s', '', $existing);
277
  }
278
-
279
  $file = @fopen ($filename, 'w');
280
  if ($file)
281
  {
282
  $text = str_replace ("\r\n\r\n\r\n", "\r\n", $text);
283
  $text = str_replace ("\r\n\r\n\r\n", "\r\n", $text);
284
-
285
  fwrite ($file, $text);
286
  fclose ($file);
287
  return true;
4
  {
5
  var $settings;
6
  var $items;
7
+
8
  function Red_Htaccess ($settings)
9
  {
10
  foreach ($settings AS $key => $value)
15
  {
16
  return '^'.$this->encode ($url).'$';
17
  }
18
+
19
  function encode2nd ($url)
20
  {
21
  $url = urlencode ($url);
25
  $url = str_replace ('%24', '$', $url);
26
  return $url;
27
  }
28
+
29
  function encode ($url)
30
  {
31
  $url = urlencode ($url);
34
  $url = str_replace ('.', '\\.', $url);
35
  return $url;
36
  }
37
+
38
  function encode_regex ($url)
39
  {
40
  $url = str_replace (' ', '%20', $url);
43
  $url = str_replace ('%24', '$', $url);
44
  return $url;
45
  }
46
+
47
  function add_referrer ($item, $match)
48
  {
49
  $from = $this->encode_from (ltrim ($item->url, '/'));
50
  if ($item->regex)
51
  $from = $this->encode_regex (ltrim ($item->url, '/'));
52
+
53
  if (($match->url_from || $match->url_notfrom) && $match->referrer)
54
  {
55
  $this->items[] = sprintf ('RewriteCond %%{HTTP_REFERER} %s [NC]', ($match->regex ? $this->encode_regex ($match->referrer) : $this->encode_from ($match->referrer)));
59
  $to = $this->target ($item->action_type, $match->url_from, $item->action_code, $item->regex);
60
  $this->items[] = sprintf ('RewriteRule %s %s', $from, $to);
61
  }
62
+
63
  if ($match->url_notfrom)
64
  {
65
  $to = $this->target ($item->action_type, $match->url_notfrom, $item->action_code, $item->regex);
67
  }
68
  }
69
  }
70
+
71
  function add_agent ($item, $match)
72
  {
73
  $from = $this->encode (ltrim ($item->url, '/'));
74
  if ($item->regex)
75
  $from = $this->encode_regex (ltrim ($item->url, '/'));
76
+
77
  if (($match->url_from || $match->url_notfrom) && $match->user_agent)
78
  {
79
  $this->items[] = sprintf ('RewriteCond %%{HTTP_USER_AGENT} %s [NC]', ($match->regex ? $this->encode_regex ($match->user_agent) : $this->encode2nd ($match->user_agent)));
80
+
81
  if ($match->url_from)
82
  {
83
  $to = $this->target ($item->action_type, $match->url_from, $item->action_code, $item->regex);
84
  $this->items[] = sprintf ('RewriteRule %s %s', $from, $to);
85
  }
86
+
87
  if ($match->url_notfrom)
88
  {
89
  $to = $this->target ($item->action_type, $match->url_notfrom, $item->action_code, $item->regex);
91
  }
92
  }
93
  }
94
+
95
  function add_url ($item, $match)
96
  {
97
  $to = $this->target ($item->action_type, $match->url, $item->action_code, $item->regex);
98
  $from = $this->encode_from (ltrim ($item->url, '/'));
99
  if ($item->regex)
100
  $from = $this->encode_regex (ltrim ($item->url, '/'));
101
+
102
  if ($to)
103
  $this->items[] = sprintf ('RewriteRule %s %s', $from, $to);
104
  }
105
+
106
  function action_random ($data, $code, $regex)
107
  {
108
  // Pick a WP post at random
109
  global $wpdb;
110
+
111
  $post = $wpdb->get_var ("SELECT ID FROM {$wpdb->posts} ORDER BY RAND() LIMIT 0,1");
112
  $url = parse_url (get_permalink ($post));
113
+
114
  return sprintf ('%s [R=%d,L]', $this->encode ($url['path']), $code);
115
  }
116
+
117
  function action_pass ($data, $code, $regex)
118
  {
119
  if ($regex)
121
  else
122
  return sprintf ('%s [L]', $this->encode2nd ($data), $code);
123
  }
124
+
125
  function action_error ($data, $code, $regex)
126
  {
127
  if ($code == '410')
128
  return '/ [G,L]';
129
  return '/ [F,L]';
130
  }
131
+
132
  function action_url ($data, $code, $regex)
133
  {
134
  if ($regex)
136
  else
137
  return sprintf ('%s [R=%d,L]', $this->encode2nd ($data), $code);
138
  }
139
+
140
  function target ($action, $data, $code, $regex)
141
  {
142
  $target = 'action_'.$action;
145
  return $this->$target ($data, $code, $regex);
146
  return '';
147
  }
148
+
149
  function add ($item)
150
  {
151
  $target = 'add_'.$item->match_type;
152
+
153
  if (method_exists ($this, $target))
154
  $this->$target ($item, $item->match);
155
  }
156
+
157
  function generate ($name)
158
  {
159
  // Head of redirection section - do not localize this
160
  global $redirection;
161
+
162
  $text[] = '# Created by Redirection Module: '.$name;
163
  $text[] = '# '.date ('r');
164
  $text[] = '# Redirection '.$redirection->version ().' - http://urbangiraffe.com/plugins/redirection/';
165
  $text[] = '';
166
+
167
  // Default blocked files - I can't think of a reason not to block these
168
  $text[] = '<Files .htaccess,.svn>';
169
  $text[] = 'order allow,deny';
170
  $text[] = 'deny from all';
171
  $text[] = '</Files>';
172
  $text[] = '';
173
+
174
  // PHP options
175
  if (isset ($this->settings['error_level']) && $this->settings['error_level'] != 'default')
176
  $text[] = 'php_value error_reporting '.($this->settings == 'none' ? '0' : 'E_ALL');
177
+
178
  if (isset ($this->settings['memory_limit']) && $this->settings['memory_limit'] != 0)
179
  $text[] = 'php_value memory_limit '.$this->settings['memory_limit'].'M';
180
 
191
  $text[] = 'deny from '.$ip;
192
  }
193
  }
194
+
195
  if ($this->settings['allow_ip'])
196
  {
197
  $ips = array_filter (explode (',', $this->settings['allow_ip']));
217
  $base = $this->settings['site'];
218
  if ($base == '')
219
  $base = get_option ('home');
220
+
221
  $parts = parse_url ($base);
222
  $base = str_replace ('www.', '', $parts['host']);
223
+
224
  if ($this->settings['canonical'] == 'nowww')
225
  {
226
  $text[] = 'RewriteCond %{HTTP_HOST} ^www\.'.str_replace ('.', '\\.', $base).'$ [NC]';
231
  $text[] = 'RewriteCond %{HTTP_HOST} ^'.str_replace ('.', '\\.', $base).'$ [NC]';
232
  $text[] = 'RewriteRule ^(.*)$ http://www.'.$base.'/$1 [R=301,L]';
233
  }
234
+
235
  $text[] = '';
236
  }
237
 
241
  $text[] = 'RewriteRule ^(.*)index\.(php|html|htm)$ $1 [R=301,NC,L]';
242
  $text[] = '';
243
  }
244
+
245
  // Add redirects
246
  if (is_array ($this->items))
247
  $text = array_merge ($text, $this->items);
248
+
249
  // End of mod_rewrite
250
  $text[] = '</IfModule>';
251
  $text[] = '';
252
+
253
  if ($this->settings['raw'])
254
  $text[] = $this->settings['raw'];
255
+
256
  // End of redirection section
257
  $text[] = '# End of Redirection';
258
  $text[] = '';
259
+
260
  $text = implode ("\r\n", $text);
261
  $text = str_replace ("\r\n\r\n\r\n", "\r\n", $text);
262
  $text = str_replace ("\r\n\r\n\r\n", "\r\n", $text);
263
  return $text;
264
  }
265
+
266
  function save ($filename, $name)
267
  {
268
  $text = $this->generate ($name);
269
+
270
  // Does the file already exist?
271
  if (file_exists ($filename))
272
  {
273
  $existing = @file_get_contents ($filename);
274
+
275
  // Remove any existing Redirection module
276
  $text .= preg_replace ('@# Created by Redirection Module: '.$name.'(.*?)# End of Redirection@s', '', $existing);
277
  }
278
+
279
  $file = @fopen ($filename, 'w');
280
  if ($file)
281
  {
282
  $text = str_replace ("\r\n\r\n\r\n", "\r\n", $text);
283
  $text = str_replace ("\r\n\r\n\r\n", "\r\n", $text);
284
+
285
  fwrite ($file, $text);
286
  fclose ($file);
287
  return true;
models/log.php CHANGED
@@ -28,104 +28,104 @@ class RE_Log {
28
  var $referrer;
29
  var $ip;
30
  var $redirection_id;
31
-
32
  function RE_Log ($values)
33
  {
34
  foreach ($values AS $key => $value)
35
  $this->$key = $value;
36
-
37
  $this->created = mysql2date ('U', $this->created);
38
  $this->url = stripslashes ($this->url);
39
  }
40
-
41
  function get_by_id ($id)
42
  {
43
  global $wpdb;
44
-
45
  $row = $wpdb->get_row ("SELECT * FROM {$wpdb->prefix}redirection_logs WHERE id='$id'", ARRAY_A);
46
  if ($row)
47
  return new RE_Log ($row);
48
  return false;
49
  }
50
-
51
  function get( &$pager ) {
52
  global $wpdb;
53
-
54
  $rows = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_logs FORCE INDEX(created) ".$pager->to_limits ('redirection_id IS NOT NULL', array ('url', 'sent_to', 'ip')), ARRAY_A );
55
  $pager->set_total ($wpdb->get_var ("SELECT FOUND_ROWS()"));
56
-
57
  $items = array ();
58
  if (count ($rows) > 0)
59
  {
60
  foreach ($rows AS $row)
61
  $items[] = new RE_Log ($row);
62
  }
63
-
64
  return $items;
65
  }
66
-
67
  function get_by_group (&$pager, $group)
68
  {
69
  global $wpdb;
70
-
71
  $rows = $wpdb->get_results ("SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_logs".$pager->to_limits ("redirection_id IS NOT NULL AND group_id='".$group."'", array ('url', 'sent_to', 'ip')), ARRAY_A);
72
  $pager->set_total ($wpdb->get_var ("SELECT FOUND_ROWS()"));
73
-
74
  $items = array ();
75
  if (count ($rows) > 0)
76
  {
77
  foreach ($rows AS $row)
78
  $items[] = new RE_Log ($row);
79
  }
80
-
81
  return $items;
82
  }
83
-
84
  function get_by_module (&$pager, $module)
85
  {
86
  global $wpdb;
87
 
88
  $rows = $wpdb->get_results ("SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_logs".$pager->to_limits ("module_id='".$module."'", array ('url', 'sent_to', 'ip')), ARRAY_A);
89
  $pager->set_total ($wpdb->get_var ("SELECT FOUND_ROWS()"));
90
-
91
  $items = array ();
92
  if (count ($rows) > 0)
93
  {
94
  foreach ($rows AS $row)
95
  $items[] = new RE_Log ($row);
96
  }
97
-
98
  return $items;
99
  }
100
-
101
  function get_by_redirect (&$pager, $redirect)
102
  {
103
  global $wpdb;
104
-
105
  $rows = $wpdb->get_results ("SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_logs".$pager->to_limits ("redirection_id=$redirect", array ('url', 'sent_to', 'ip')), ARRAY_A);
106
  $pager->set_total ($wpdb->get_var ("SELECT FOUND_ROWS()"));
107
-
108
  $items = array ();
109
  if (count ($rows) > 0)
110
  {
111
  foreach ($rows AS $row)
112
  $items[] = new RE_Log ($row);
113
  }
114
-
115
  return $items;
116
  }
117
-
118
  function create ($url, $target, $agent, $ip, $referrer, $redirection_id = 'NULL', $module_id = 'NULL', $group_id = 'NULL') {
119
  global $wpdb, $redirection;
120
-
121
  $wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->prefix}redirection_logs (url,sent_to,created,agent,redirection_id,ip,referrer,module_id,group_id) VALUES (%s,%s,NOW(),%s,%d,%s,%s,%d,%d)", $url, $target, $agent, $redirection_id, $ip, $referrer, $module_id, $group_id ) );
122
-
123
  // Expire old entries
124
  $options = $redirection->get_options ();
125
  if ($options['expire'] != 0)
126
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs WHERE created < DATE_SUB(NOW(), INTERVAL ".$options['expire']." DAY)");
127
  }
128
-
129
  function show_url ($url)
130
  {
131
  return implode ('&#8203;/', explode ('/', substr (esc_html ($url), 0, 80))).(strlen ($url) > 80 ? '...' : '');
@@ -136,19 +136,19 @@ class RE_Log {
136
  global $wpdb;
137
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs WHERE id='$id'");
138
  }
139
-
140
  function delete_404 ($pager)
141
  {
142
  global $wpdb;
143
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs ".$pager->to_conditions ('redirection_id IS NULL', array ('url', 'sent_to', 'ip')));
144
  }
145
-
146
  function delete_for_id ($id)
147
  {
148
  global $wpdb;
149
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs WHERE redirection_id='$id'");
150
  }
151
-
152
  function delete_for_group ($id)
153
  {
154
  global $wpdb;
@@ -160,11 +160,11 @@ class RE_Log {
160
  global $wpdb;
161
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs WHERE module_id=$id");
162
  }
163
-
164
  function delete_all ($cond, $pager)
165
  {
166
  global $wpdb;
167
-
168
  $sql = 'redirection_id IS NOT NULL';
169
  if (!empty ($cond))
170
  {
@@ -175,7 +175,7 @@ class RE_Log {
175
 
176
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs ".$pager->to_conditions ($sql, array ('url', 'sent_to', 'ip')));
177
  }
178
-
179
  function referrer ()
180
  {
181
  return preg_replace ('@https?://(.*?)/.*@', '$1', $this->referrer);
28
  var $referrer;
29
  var $ip;
30
  var $redirection_id;
31
+
32
  function RE_Log ($values)
33
  {
34
  foreach ($values AS $key => $value)
35
  $this->$key = $value;
36
+
37
  $this->created = mysql2date ('U', $this->created);
38
  $this->url = stripslashes ($this->url);
39
  }
40
+
41
  function get_by_id ($id)
42
  {
43
  global $wpdb;
44
+
45
  $row = $wpdb->get_row ("SELECT * FROM {$wpdb->prefix}redirection_logs WHERE id='$id'", ARRAY_A);
46
  if ($row)
47
  return new RE_Log ($row);
48
  return false;
49
  }
50
+
51
  function get( &$pager ) {
52
  global $wpdb;
53
+
54
  $rows = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_logs FORCE INDEX(created) ".$pager->to_limits ('redirection_id IS NOT NULL', array ('url', 'sent_to', 'ip')), ARRAY_A );
55
  $pager->set_total ($wpdb->get_var ("SELECT FOUND_ROWS()"));
56
+
57
  $items = array ();
58
  if (count ($rows) > 0)
59
  {
60
  foreach ($rows AS $row)
61
  $items[] = new RE_Log ($row);
62
  }
63
+
64
  return $items;
65
  }
66
+
67
  function get_by_group (&$pager, $group)
68
  {
69
  global $wpdb;
70
+
71
  $rows = $wpdb->get_results ("SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_logs".$pager->to_limits ("redirection_id IS NOT NULL AND group_id='".$group."'", array ('url', 'sent_to', 'ip')), ARRAY_A);
72
  $pager->set_total ($wpdb->get_var ("SELECT FOUND_ROWS()"));
73
+
74
  $items = array ();
75
  if (count ($rows) > 0)
76
  {
77
  foreach ($rows AS $row)
78
  $items[] = new RE_Log ($row);
79
  }
80
+
81
  return $items;
82
  }
83
+
84
  function get_by_module (&$pager, $module)
85
  {
86
  global $wpdb;
87
 
88
  $rows = $wpdb->get_results ("SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_logs".$pager->to_limits ("module_id='".$module."'", array ('url', 'sent_to', 'ip')), ARRAY_A);
89
  $pager->set_total ($wpdb->get_var ("SELECT FOUND_ROWS()"));
90
+
91
  $items = array ();
92
  if (count ($rows) > 0)
93
  {
94
  foreach ($rows AS $row)
95
  $items[] = new RE_Log ($row);
96
  }
97
+
98
  return $items;
99
  }
100
+
101
  function get_by_redirect (&$pager, $redirect)
102
  {
103
  global $wpdb;
104
+
105
  $rows = $wpdb->get_results ("SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_logs".$pager->to_limits ("redirection_id=$redirect", array ('url', 'sent_to', 'ip')), ARRAY_A);
106
  $pager->set_total ($wpdb->get_var ("SELECT FOUND_ROWS()"));
107
+
108
  $items = array ();
109
  if (count ($rows) > 0)
110
  {
111
  foreach ($rows AS $row)
112
  $items[] = new RE_Log ($row);
113
  }
114
+
115
  return $items;
116
  }
117
+
118
  function create ($url, $target, $agent, $ip, $referrer, $redirection_id = 'NULL', $module_id = 'NULL', $group_id = 'NULL') {
119
  global $wpdb, $redirection;
120
+
121
  $wpdb->query( $wpdb->prepare( "INSERT INTO {$wpdb->prefix}redirection_logs (url,sent_to,created,agent,redirection_id,ip,referrer,module_id,group_id) VALUES (%s,%s,NOW(),%s,%d,%s,%s,%d,%d)", $url, $target, $agent, $redirection_id, $ip, $referrer, $module_id, $group_id ) );
122
+
123
  // Expire old entries
124
  $options = $redirection->get_options ();
125
  if ($options['expire'] != 0)
126
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs WHERE created < DATE_SUB(NOW(), INTERVAL ".$options['expire']." DAY)");
127
  }
128
+
129
  function show_url ($url)
130
  {
131
  return implode ('&#8203;/', explode ('/', substr (esc_html ($url), 0, 80))).(strlen ($url) > 80 ? '...' : '');
136
  global $wpdb;
137
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs WHERE id='$id'");
138
  }
139
+
140
  function delete_404 ($pager)
141
  {
142
  global $wpdb;
143
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs ".$pager->to_conditions ('redirection_id IS NULL', array ('url', 'sent_to', 'ip')));
144
  }
145
+
146
  function delete_for_id ($id)
147
  {
148
  global $wpdb;
149
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs WHERE redirection_id='$id'");
150
  }
151
+
152
  function delete_for_group ($id)
153
  {
154
  global $wpdb;
160
  global $wpdb;
161
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs WHERE module_id=$id");
162
  }
163
+
164
  function delete_all ($cond, $pager)
165
  {
166
  global $wpdb;
167
+
168
  $sql = 'redirection_id IS NOT NULL';
169
  if (!empty ($cond))
170
  {
175
 
176
  $wpdb->query ("DELETE FROM {$wpdb->prefix}redirection_logs ".$pager->to_conditions ($sql, array ('url', 'sent_to', 'ip')));
177
  }
178
+
179
  function referrer ()
180
  {
181
  return preg_replace ('@https?://(.*?)/.*@', '$1', $this->referrer);
models/match.php CHANGED
@@ -22,7 +22,7 @@ For full license details see license.txt
22
 
23
  class Red_Match {
24
  var $url;
25
-
26
  function Red_Match( $values = '' ) {
27
  if ( $values ) {
28
  $obj = @unserialize( $values );
@@ -35,60 +35,60 @@ class Red_Match {
35
  }
36
  }
37
  }
38
-
39
  function data( $details ) {
40
  $data = $this->save( $details );
41
  if ( count( $data ) == 1 && !is_array( current( $data ) ) )
42
  $data = current( $data );
43
  else
44
- $data = serialize( $data );
45
  return $data;
46
  }
47
-
48
  function save( $details ) {
49
  return array();
50
  }
51
-
52
  function name() {
53
  return '';
54
  }
55
-
56
  function show() {
57
  }
58
-
59
  function wants_it() {
60
  return true;
61
  }
62
-
63
  function get_target( $url, $matched_url, $regex ) {
64
  return $false;
65
  }
66
-
67
  function create( $name, $data = '' ) {
68
  $avail = Red_Match::available();
69
  if ( isset( $avail[strtolower( $name )] ) ) {
70
  $classname = $name.'_match';
71
-
72
  if ( !class_exists( strtolower( $classname ) ) )
73
  include( dirname( __FILE__ ).'/../matches/'.$avail[strtolower( $name )] );
74
  return new $classname( $data );
75
  }
76
-
77
  return false;
78
  }
79
-
80
  function all() {
81
  $data = array();
82
-
83
  $avail = Red_Match::available();
84
  foreach ( $avail AS $name => $file ) {
85
  $obj = Red_Match::create( $name );
86
  $data[$name] = $obj->name();
87
  }
88
-
89
  return $data;
90
  }
91
-
92
  function available() {
93
  return array (
94
  'url' => 'url.php',
@@ -97,7 +97,7 @@ class Red_Match {
97
  'login' => 'login.php',
98
  );
99
  }
100
-
101
  function match_name() {
102
  return '';
103
  }
22
 
23
  class Red_Match {
24
  var $url;
25
+
26
  function Red_Match( $values = '' ) {
27
  if ( $values ) {
28
  $obj = @unserialize( $values );
35
  }
36
  }
37
  }
38
+
39
  function data( $details ) {
40
  $data = $this->save( $details );
41
  if ( count( $data ) == 1 && !is_array( current( $data ) ) )
42
  $data = current( $data );
43
  else
44
+ $data = serialize( $data );
45
  return $data;
46
  }
47
+
48
  function save( $details ) {
49
  return array();
50
  }
51
+
52
  function name() {
53
  return '';
54
  }
55
+
56
  function show() {
57
  }
58
+
59
  function wants_it() {
60
  return true;
61
  }
62
+
63
  function get_target( $url, $matched_url, $regex ) {
64
  return $false;
65
  }
66
+
67
  function create( $name, $data = '' ) {
68
  $avail = Red_Match::available();
69
  if ( isset( $avail[strtolower( $name )] ) ) {
70
  $classname = $name.'_match';
71
+
72
  if ( !class_exists( strtolower( $classname ) ) )
73
  include( dirname( __FILE__ ).'/../matches/'.$avail[strtolower( $name )] );
74
  return new $classname( $data );
75
  }
76
+
77
  return false;
78
  }
79
+
80
  function all() {
81
  $data = array();
82
+
83
  $avail = Red_Match::available();
84
  foreach ( $avail AS $name => $file ) {
85
  $obj = Red_Match::create( $name );
86
  $data[$name] = $obj->name();
87
  }
88
+
89
  return $data;
90
  }
91
+
92
  function available() {
93
  return array (
94
  'url' => 'url.php',
97
  'login' => 'login.php',
98
  );
99
  }
100
+
101
  function match_name() {
102
  return '';
103
  }
models/module.php CHANGED
@@ -11,47 +11,47 @@ class Red_Module {
11
  $this->load( unserialize( $this->options ) );
12
  }
13
  }
14
-
15
  function module_flush( $items ) {
16
  }
17
-
18
  function module_flush_delete() {
19
  }
20
-
21
  function flush( $id ) {
22
  $module = Red_Module::get( $id );
23
  if ( $module && $module->is_valid() )
24
  $module->module_flush( Red_Item::get_all_for_module( $id ) );
25
  }
26
-
27
  function flush_delete( $id ) {
28
  $module = Red_Module::get( $id );
29
  if ( $module )
30
  $module->module_flush_delete();
31
  }
32
-
33
  function update( $data ) {
34
  global $wpdb;
35
-
36
  $this->name = $data['name'];
37
  $options = $this->save( $data );
38
  $wpdb->update( $wpdb->prefix.'redirection_modules', array( 'name' => trim( $data['name'] ), 'options' => empty( $options ) ? '' : serialize( $options ) ), array( 'id' => intval( $this->id ) ) );
39
 
40
  Red_Module::clear_cache( $this->id );
41
  }
42
-
43
  function delete() {
44
  global $wpdb;
45
-
46
  $groups = Red_Group::get_for_module( $this->id );
47
  if ( count( $groups ) > 0 ) {
48
  foreach ( $groups AS $group ) {
49
  $group->delete( $group->id );
50
  }
51
  }
52
-
53
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_modules WHERE id=%d", $this->id ) );
54
-
55
  RE_Log::delete_for_module( $this->id );
56
  Red_Module::clear_cache( $this->id );
57
  Red_Module::flush_delete( $this->id );
@@ -61,7 +61,7 @@ class Red_Module {
61
  delete_option( 'redirection_module_cache' );
62
  Red_Module::flush( $module );
63
  }
64
-
65
  function create( $data ) {
66
  global $wpdb;
67
 
@@ -70,22 +70,22 @@ class Red_Module {
70
  'name' => trim( $data['name'] ),
71
  'type' => $data['type'],
72
  );
73
-
74
  if ( isset( $data['options'] ) )
75
  $db['options'] = serialize( $data['options'] );
76
-
77
  $wpdb->insert( $wpdb->prefix.'redirection_modules', $db );
78
 
79
  Red_Module::flush( $wpdb->insert_id );
80
  return $wpdb->insert_id;
81
  }
82
-
83
  return false;
84
  }
85
-
86
  function get( $id ) {
87
  global $wpdb;
88
-
89
  $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}redirection_modules WHERE id=%d", $id ) );
90
  if ( $row )
91
  return Red_Module::new_item( $row );
@@ -98,7 +98,7 @@ class Red_Module {
98
  $cache = get_option( 'redirection_module_cache' );
99
  if ( $cache && isset( $cache[$type] ) )
100
  return $cache[$type];
101
-
102
  $rows = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}redirection_modules WHERE type=%s ORDER BY id", $type ) );
103
  $items = array();
104
  if ( count( $rows ) > 0 ) {
@@ -106,18 +106,18 @@ class Red_Module {
106
  $items[] = Red_Module::new_item( $row );
107
  }
108
  }
109
-
110
  $cache[$type] = $items;
111
  update_option( 'redirection_module_cache', $cache );
112
  return $items;
113
  }
114
-
115
  /**
116
  * Get all modules
117
  */
118
  function get_all() {
119
  global $wpdb;
120
-
121
  $rows = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}redirection_modules WHERE id > 0 ORDER BY id" );
122
  $items = array();
123
  if ( count( $rows ) > 0 ) {
@@ -125,10 +125,10 @@ class Red_Module {
125
  $items[] = Red_Module::new_item( $row );
126
  }
127
  }
128
-
129
  return $items;
130
  }
131
-
132
  /**
133
  * Get first module
134
  */
@@ -136,22 +136,22 @@ class Red_Module {
136
  global $wpdb;
137
  return $wpdb->get_var( "SELECT id FROM {$wpdb->prefix}redirection_modules ORDER BY id LIMIT 0,1" );
138
  }
139
-
140
  /**
141
  * Get all modules
142
  */
143
-
144
  function get_for_select() {
145
  $data = array();
146
  $items = Red_Module::get_all();
147
-
148
  foreach ( $items AS $item ) {
149
  $data[$item->id] = $item->name;
150
  }
151
 
152
  return $data;
153
  }
154
-
155
  /**
156
  * Get all module types
157
  */
@@ -162,7 +162,7 @@ class Red_Module {
162
  '404' => __( '404 Errors', 'redirection' ),
163
  );
164
  }
165
-
166
  function new_item( $data ) {
167
  $map = array (
168
  'apache' => array( 'Apache_Module', 'apache.php' ),
@@ -173,7 +173,7 @@ class Red_Module {
173
  if ( isset( $map[$data->type] ) ) {
174
  $obj = $map[$data->type][0];
175
  $file = $map[$data->type][1];
176
-
177
  if ( !class_exists( $obj ) )
178
  include dirname( __FILE__ )."/../modules/$file";
179
 
@@ -182,25 +182,25 @@ class Red_Module {
182
 
183
  return false;
184
  }
185
-
186
  function canonical() {
187
  $can = array( 'none' => '&mdash;', 'nowww' => __( 'Strip WWW', 'redirection' ), 'www' => __( 'Force WWW', 'redirection' ) );
188
  return $can[$this->canonical];
189
  }
190
-
191
  function index() {
192
  $can = array( 'ignore' => '&mdash;', 'remove' => __( 'Strip index.php', 'redirection' ) );
193
  return $can[$this->index];
194
  }
195
-
196
- function options() {
197
  }
198
-
199
  function type() {
200
  $types = $this->get_types();
201
  return $types[$this->type];
202
  }
203
-
204
  function checked( $item, $field = '' ) {
205
  if ( $field && is_array( $item ) ) {
206
  if ( isset( $item[$field] ) && $item[$field] )
@@ -209,7 +209,7 @@ class Red_Module {
209
  elseif ( !empty( $item ) )
210
  echo ' checked="checked"';
211
  }
212
-
213
  function select( $items, $default = '' ) {
214
  if ( count( $items ) > 0 ) {
215
  foreach ( $items AS $key => $value ) {
@@ -217,22 +217,22 @@ class Red_Module {
217
  }
218
  }
219
  }
220
-
221
  function groups() {
222
  global $wpdb;
223
-
224
  return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id ) FROM {$wpdb->prefix}redirection_groups WHERE module_id=%d", $this->id ) );
225
  }
226
-
227
  function redirects() {
228
  global $wpdb;
229
-
230
  $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT({$wpdb->prefix}redirection_items.id) FROM {$wpdb->prefix}redirection_groups INNER JOIN {$wpdb->prefix}redirection_items ON {$wpdb->prefix}redirection_items.group_id={$wpdb->prefix}redirection_groups.id WHERE module_id=%d GROUP BY {$wpdb->prefix}redirection_items.group_id", $this->id ) );
231
  if ( $count > 0 )
232
  return $count;
233
  return 0;
234
  }
235
-
236
  function hits() {
237
  global $wpdb;
238
 
@@ -241,27 +241,27 @@ class Red_Module {
241
  return $count;
242
  return 0;
243
  }
244
-
245
  function reset() {
246
  Red_Module::clear_cache( $this->id );
247
-
248
  $groups = Red_Group::get_for_module( $this->id );
249
  if ( count( $groups ) > 0 ) {
250
  foreach ( $groups AS $group ) {
251
  $group->reset();
252
  }
253
  }
254
-
255
  RE_Log::delete_for_module( $this->id );
256
  }
257
-
258
  function is_valid() {
259
  return true;
260
  }
261
-
262
  function load( $data ) {
263
  }
264
-
265
  function config() {
266
  }
267
  }
11
  $this->load( unserialize( $this->options ) );
12
  }
13
  }
14
+
15
  function module_flush( $items ) {
16
  }
17
+
18
  function module_flush_delete() {
19
  }
20
+
21
  function flush( $id ) {
22
  $module = Red_Module::get( $id );
23
  if ( $module && $module->is_valid() )
24
  $module->module_flush( Red_Item::get_all_for_module( $id ) );
25
  }
26
+
27
  function flush_delete( $id ) {
28
  $module = Red_Module::get( $id );
29
  if ( $module )
30
  $module->module_flush_delete();
31
  }
32
+
33
  function update( $data ) {
34
  global $wpdb;
35
+
36
  $this->name = $data['name'];
37
  $options = $this->save( $data );
38
  $wpdb->update( $wpdb->prefix.'redirection_modules', array( 'name' => trim( $data['name'] ), 'options' => empty( $options ) ? '' : serialize( $options ) ), array( 'id' => intval( $this->id ) ) );
39
 
40
  Red_Module::clear_cache( $this->id );
41
  }
42
+
43
  function delete() {
44
  global $wpdb;
45
+
46
  $groups = Red_Group::get_for_module( $this->id );
47
  if ( count( $groups ) > 0 ) {
48
  foreach ( $groups AS $group ) {
49
  $group->delete( $group->id );
50
  }
51
  }
52
+
53
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_modules WHERE id=%d", $this->id ) );
54
+
55
  RE_Log::delete_for_module( $this->id );
56
  Red_Module::clear_cache( $this->id );
57
  Red_Module::flush_delete( $this->id );
61
  delete_option( 'redirection_module_cache' );
62
  Red_Module::flush( $module );
63
  }
64
+
65
  function create( $data ) {
66
  global $wpdb;
67
 
70
  'name' => trim( $data['name'] ),
71
  'type' => $data['type'],
72
  );
73
+
74
  if ( isset( $data['options'] ) )
75
  $db['options'] = serialize( $data['options'] );
76
+
77
  $wpdb->insert( $wpdb->prefix.'redirection_modules', $db );
78
 
79
  Red_Module::flush( $wpdb->insert_id );
80
  return $wpdb->insert_id;
81
  }
82
+
83
  return false;
84
  }
85
+
86
  function get( $id ) {
87
  global $wpdb;
88
+
89
  $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}redirection_modules WHERE id=%d", $id ) );
90
  if ( $row )
91
  return Red_Module::new_item( $row );
98
  $cache = get_option( 'redirection_module_cache' );
99
  if ( $cache && isset( $cache[$type] ) )
100
  return $cache[$type];
101
+
102
  $rows = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}redirection_modules WHERE type=%s ORDER BY id", $type ) );
103
  $items = array();
104
  if ( count( $rows ) > 0 ) {
106
  $items[] = Red_Module::new_item( $row );
107
  }
108
  }
109
+
110
  $cache[$type] = $items;
111
  update_option( 'redirection_module_cache', $cache );
112
  return $items;
113
  }
114
+
115
  /**
116
  * Get all modules
117
  */
118
  function get_all() {
119
  global $wpdb;
120
+
121
  $rows = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}redirection_modules WHERE id > 0 ORDER BY id" );
122
  $items = array();
123
  if ( count( $rows ) > 0 ) {
125
  $items[] = Red_Module::new_item( $row );
126
  }
127
  }
128
+
129
  return $items;
130
  }
131
+
132
  /**
133
  * Get first module
134
  */
136
  global $wpdb;
137
  return $wpdb->get_var( "SELECT id FROM {$wpdb->prefix}redirection_modules ORDER BY id LIMIT 0,1" );
138
  }
139
+
140
  /**
141
  * Get all modules
142
  */
143
+
144
  function get_for_select() {
145
  $data = array();
146
  $items = Red_Module::get_all();
147
+
148
  foreach ( $items AS $item ) {
149
  $data[$item->id] = $item->name;
150
  }
151
 
152
  return $data;
153
  }
154
+
155
  /**
156
  * Get all module types
157
  */
162
  '404' => __( '404 Errors', 'redirection' ),
163
  );
164
  }
165
+
166
  function new_item( $data ) {
167
  $map = array (
168
  'apache' => array( 'Apache_Module', 'apache.php' ),
173
  if ( isset( $map[$data->type] ) ) {
174
  $obj = $map[$data->type][0];
175
  $file = $map[$data->type][1];
176
+
177
  if ( !class_exists( $obj ) )
178
  include dirname( __FILE__ )."/../modules/$file";
179
 
182
 
183
  return false;
184
  }
185
+
186
  function canonical() {
187
  $can = array( 'none' => '&mdash;', 'nowww' => __( 'Strip WWW', 'redirection' ), 'www' => __( 'Force WWW', 'redirection' ) );
188
  return $can[$this->canonical];
189
  }
190
+
191
  function index() {
192
  $can = array( 'ignore' => '&mdash;', 'remove' => __( 'Strip index.php', 'redirection' ) );
193
  return $can[$this->index];
194
  }
195
+
196
+ function options() {
197
  }
198
+
199
  function type() {
200
  $types = $this->get_types();
201
  return $types[$this->type];
202
  }
203
+
204
  function checked( $item, $field = '' ) {
205
  if ( $field && is_array( $item ) ) {
206
  if ( isset( $item[$field] ) && $item[$field] )
209
  elseif ( !empty( $item ) )
210
  echo ' checked="checked"';
211
  }
212
+
213
  function select( $items, $default = '' ) {
214
  if ( count( $items ) > 0 ) {
215
  foreach ( $items AS $key => $value ) {
217
  }
218
  }
219
  }
220
+
221
  function groups() {
222
  global $wpdb;
223
+
224
  return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id ) FROM {$wpdb->prefix}redirection_groups WHERE module_id=%d", $this->id ) );
225
  }
226
+
227
  function redirects() {
228
  global $wpdb;
229
+
230
  $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT({$wpdb->prefix}redirection_items.id) FROM {$wpdb->prefix}redirection_groups INNER JOIN {$wpdb->prefix}redirection_items ON {$wpdb->prefix}redirection_items.group_id={$wpdb->prefix}redirection_groups.id WHERE module_id=%d GROUP BY {$wpdb->prefix}redirection_items.group_id", $this->id ) );
231
  if ( $count > 0 )
232
  return $count;
233
  return 0;
234
  }
235
+
236
  function hits() {
237
  global $wpdb;
238
 
241
  return $count;
242
  return 0;
243
  }
244
+
245
  function reset() {
246
  Red_Module::clear_cache( $this->id );
247
+
248
  $groups = Red_Group::get_for_module( $this->id );
249
  if ( count( $groups ) > 0 ) {
250
  foreach ( $groups AS $group ) {
251
  $group->reset();
252
  }
253
  }
254
+
255
  RE_Log::delete_for_module( $this->id );
256
  }
257
+
258
  function is_valid() {
259
  return true;
260
  }
261
+
262
  function load( $data ) {
263
  }
264
+
265
  function config() {
266
  }
267
  }
models/monitor.php CHANGED
@@ -2,31 +2,31 @@
2
 
3
  class Red_Monitor {
4
  var $monitor_post;
5
-
6
  function Red_Monitor( $options ) {
7
  if ( $options['monitor_post'] > 0 ) {
8
  $this->monitor_post = $options['monitor_post'];
9
-
10
  // Only monitor if permalinks enabled
11
  if ( get_option( 'permalink_structure' ) ) {
12
  add_action( 'post_updated', array( &$this, 'post_updated' ), 11, 3 );
13
  add_action( 'delete_post', array( &$this, 'post_deleted' ) );
14
  add_action( 'edit_form_advanced', array( &$this, 'insert_old_post' ) );
15
- add_action( 'edit_page_form', array( &$this, 'insert_old_post' ) );
16
  }
17
  }
18
  }
19
-
20
  function insert_old_post() {
21
  global $post;
22
-
23
  $url = parse_url( get_permalink() );
24
  $url = $url['path'];
25
  ?>
26
  <input type="hidden" name="redirection_slug" value="<?php echo esc_attr( $url ) ?>"/>
27
  <?php
28
  }
29
-
30
  function post_updated( $post_id, $post, $post_before ) {
31
  if ( isset( $_POST['redirection_slug'] ) ) {
32
  $after = parse_url( get_permalink( $post_id ) );
2
 
3
  class Red_Monitor {
4
  var $monitor_post;
5
+
6
  function Red_Monitor( $options ) {
7
  if ( $options['monitor_post'] > 0 ) {
8
  $this->monitor_post = $options['monitor_post'];
9
+
10
  // Only monitor if permalinks enabled
11
  if ( get_option( 'permalink_structure' ) ) {
12
  add_action( 'post_updated', array( &$this, 'post_updated' ), 11, 3 );
13
  add_action( 'delete_post', array( &$this, 'post_deleted' ) );
14
  add_action( 'edit_form_advanced', array( &$this, 'insert_old_post' ) );
15
+ add_action( 'edit_page_form', array( &$this, 'insert_old_post' ) );
16
  }
17
  }
18
  }
19
+
20
  function insert_old_post() {
21
  global $post;
22
+
23
  $url = parse_url( get_permalink() );
24
  $url = $url['path'];
25
  ?>
26
  <input type="hidden" name="redirection_slug" value="<?php echo esc_attr( $url ) ?>"/>
27
  <?php
28
  }
29
+
30
  function post_updated( $post_id, $post, $post_before ) {
31
  if ( isset( $_POST['redirection_slug'] ) ) {
32
  $after = parse_url( get_permalink( $post_id ) );
models/pager.php CHANGED
@@ -5,7 +5,7 @@
5
  // modify it under the terms of the GNU Lesser General Public
6
  // License as published by the Free Software Foundation; either
7
  // version 2.1 of the License, or (at your option) any later version.
8
- //
9
  // This library is distributed in the hope that it will be useful,
10
  // but WITHOUT ANY WARRANTY; without even the implied warranty of
11
  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -38,7 +38,7 @@
38
  * Searching is achieved by specifying the columns that can be searched:
39
  *
40
  * $rows = $wpdb->get_results ("SELECT * FROM wp_posts".$pager->to_limits ("post_type=page", array ('post_content', 'post_excerpt')));
41
- *
42
  * Additionally you can output column headings with correct URLs:
43
  * <th><?php echo $pager->sortable ('post_username', 'Username') ?></th>
44
  *
@@ -59,8 +59,8 @@ class RE_Pager
59
  var $search = null;
60
  var $filters = array ();
61
  var $id;
62
-
63
-
64
  /**
65
  * Construct a pager object using the $_GET data, the current URL, and default preferences
66
  *
@@ -76,12 +76,12 @@ class RE_Pager
76
  // Remove all pager params from the url
77
  $this->id = $id;
78
  $this->url = $url;
79
-
80
  if (isset ($data['curpage']))
81
  $this->current_page = intval ($data['curpage']);
82
 
83
  global $user_ID;
84
-
85
  if (isset ($data['perpage']))
86
  {
87
  $this->per_page = intval ($data['perpage']);
@@ -92,10 +92,10 @@ class RE_Pager
92
 
93
  if ($orderby != '')
94
  $this->order_by = $orderby;
95
-
96
  if (isset ($data['orderby']))
97
  $this->order_by = $data['orderby'];
98
-
99
  if (!empty ($tags))
100
  {
101
  $this->order_tags = $tags;
@@ -107,21 +107,21 @@ class RE_Pager
107
  $this->order_original = $orderby;
108
  if (isset ($data['order']))
109
  $this->order_direction = $data['order'];
110
-
111
  $this->search = isset($data['search']) ? $data['search'] : '';
112
  $this->steps = array (10, 25, 50, 100, 250);
113
  $this->url = str_replace ('&', '&amp;', $this->url);
114
  $this->url = str_replace ('&&amp;', '&amp;', $this->url);
115
  }
116
-
117
-
118
  /**
119
  * Set the total number of entries that match the conditions
120
  *
121
  * @param int $total Count
122
  * @return void
123
  **/
124
-
125
  function set_total ($total)
126
  {
127
  $this->total = $total;
@@ -129,32 +129,32 @@ class RE_Pager
129
  if ($this->current_page <= 0 || $this->current_page > $this->total_pages ())
130
  $this->current_page = 1;
131
  }
132
-
133
-
134
  /**
135
  * Return the current page offset
136
  *
137
  * @return int Current page offset
138
  **/
139
-
140
  function offset ()
141
  {
142
  return ($this->current_page - 1) * $this->per_page;
143
  }
144
-
145
-
146
  /**
147
  * @todo explain
148
  * @return void
149
  **/
150
  // XXX
151
-
152
  function is_secondary_sort ()
153
  {
154
  return substr ($this->order_by, 0, 1) == '_' ? true : false;
155
  }
156
-
157
-
158
  /**
159
  * Returns a set of conditions without any limits. This is suitable for a COUNT SQL
160
  *
@@ -163,14 +163,14 @@ class RE_Pager
163
  * @param array $filters Array of columns to filter on
164
  * @return string SQL
165
  **/
166
-
167
  function to_conditions ($conditions, $searches = '', $filters = '') {
168
  global $wpdb;
169
-
170
  $sql = '';
171
  if ($conditions != '')
172
  $sql .= ' WHERE '.$conditions;
173
-
174
  // Add on search conditions
175
  if (is_array ($searches) && $this->search != '')
176
  {
@@ -206,16 +206,16 @@ class RE_Pager
206
  $sql .= ' WHERE (';
207
  else
208
  $sql .= ' AND (';
209
-
210
  $sql .= implode (' AND ', $searchbits);
211
  $sql .= ')';
212
  }
213
  }
214
-
215
  return $sql;
216
  }
217
-
218
-
219
  /**
220
  * Returns a set of conditions with limits.
221
  *
@@ -224,15 +224,15 @@ class RE_Pager
224
  * @param array $filters Array of columns to filter on
225
  * @return string SQL
226
  **/
227
-
228
  function to_limits ($conditions = '', $searches = '', $filters = '', $group_by = '') {
229
  global $wpdb;
230
-
231
  $sql = $this->to_conditions ($conditions, $searches, $filters);
232
-
233
  if ($group_by)
234
  $sql .= ' '.$group_by.' ';
235
-
236
  if (strlen ($this->order_by) > 0)
237
  {
238
  if (!$this->is_secondary_sort ())
@@ -246,7 +246,7 @@ class RE_Pager
246
  return $sql;
247
  }
248
 
249
-
250
  /**
251
  * Return the url with all the params added back
252
  *
@@ -254,7 +254,7 @@ class RE_Pager
254
  * @param string $orderby Optional order
255
  * @return string URL
256
  **/
257
-
258
  function url ($offset, $orderby = '')
259
  {
260
  // Position
@@ -262,7 +262,7 @@ class RE_Pager
262
  $url = preg_replace ('/curpage=\d*/', 'curpage='.$offset, $this->url);
263
  else
264
  $url = $this->url.'&amp;curpage='.$offset;
265
-
266
  // Order
267
  if ($orderby != '')
268
  {
@@ -270,60 +270,60 @@ class RE_Pager
270
  $url = preg_replace ('/orderby=\w*/', 'orderby='.$orderby, $url);
271
  else
272
  $url = $url.'&amp;orderby='.$orderby;
273
-
274
  if (!empty ($this->order_tags) && isset ($this->order_tags[$orderby]))
275
  $dir = $this->order_direction == 'ASC' ? 'DESC' : 'ASC';
276
  else if ($this->order_by == $orderby)
277
  $dir = $this->order_direction == 'ASC' ? 'DESC' : 'ASC';
278
  else
279
  $dir = $this->order_direction;
280
-
281
  if (strpos ($url, 'order=') !== false)
282
  $url = preg_replace ('/order=\w*/', 'order='.$dir, $url);
283
  else
284
  $url = $url.'&amp;order='.$dir;
285
  }
286
-
287
  return str_replace ('&go=go', '', $url);
288
  }
289
-
290
-
291
  /**
292
  * Return current page
293
  *
294
  * @return int
295
  **/
296
-
297
  function current_page () { return $this->current_page; }
298
-
299
-
300
  /**
301
  * Return total number of pages
302
  *
303
  * @return int
304
  **/
305
-
306
  function total_pages ()
307
  {
308
  if ($this->per_page == 0)
309
  return 1;
310
  return ceil ($this->total / $this->per_page);
311
  }
312
-
313
-
314
  /**
315
  * Determine if we have a next page
316
  *
317
  * @return boolean
318
  **/
319
-
320
  function have_next_page ()
321
  {
322
  if ($this->current_page < $this->total_pages ())
323
  return true;
324
  return false;
325
  }
326
-
327
 
328
  /**
329
  * Determine if we have a previous page
@@ -337,8 +337,8 @@ class RE_Pager
337
  return true;
338
  return false;
339
  }
340
-
341
-
342
  function sortable_class ($column, $class = true)
343
  {
344
  if ($column == $this->order_by)
@@ -349,7 +349,7 @@ class RE_Pager
349
  echo ' sortedd';
350
  }
351
  }
352
-
353
  /**
354
  * Return a string suitable for a sortable column heading
355
  *
@@ -358,41 +358,41 @@ class RE_Pager
358
  * @param boolean $image Whether to show a direction image
359
  * @return string URL
360
  **/
361
-
362
  function sortable ($column, $text, $image = true)
363
  {
364
  $url = $this->url ($this->current_page, $column);
365
  $img = '';
366
-
367
  if (isset ($this->order_tags[$column]))
368
  $column = $this->order_tags[$column];
369
-
370
  if ($column == $this->order_by)
371
  {
372
  if (defined ('WP_PLUGIN_URL'))
373
  $dir = WP_PLUGIN_URL.'/'.basename (dirname (dirname (__FILE__)));
374
  else
375
  $dir = get_bloginfo ('wpurl').'/wp-content/plugins/'.basename (dirname (dirname (__FILE__)));
376
-
377
  if (strpos ($url, 'ASC') !== false)
378
  $img = '<img align="bottom" src="'.$dir.'/images/up.gif" alt="dir" width="16" height="7"/>';
379
  else
380
  $img = '<img align="bottom" src="'.$dir.'/images/down.gif" alt="dir" width="16" height="7"/>';
381
-
382
  if ($image == false)
383
  $img = '';
384
  }
385
-
386
  return '<a href="'.$url.'">'.$text.'</a>'.$img;
387
  }
388
-
389
-
390
  /**
391
  * Returns an array of page numbers => link, given the current page (next and previous etc)
392
  *
393
  * @return array Array of page links
394
  **/
395
-
396
  function area_pages ()
397
  {
398
  // First page
@@ -403,12 +403,12 @@ class RE_Pager
403
  {
404
  $previous = __ ('Previous', 'redirection');
405
  $next = __ ('Next', 'redirection');
406
-
407
  if ($this->have_previous_page ())
408
  $pages[] = '<a href="'.$this->url ($this->current_page - 1).'">'.$previous.'</a> |';
409
  else
410
  $pages[] = $previous.' |';
411
-
412
  for ($pos = 1; $pos <= $this->total_pages (); $pos++)
413
  {
414
  if ($pos == $this->current_page)
@@ -424,7 +424,7 @@ class RE_Pager
424
  $pages[] = '&hellip;';
425
  }
426
  }
427
-
428
  if ($this->have_next_page ())
429
  $pages[] = '| <a href="'.$this->url ($this->current_page + 1).'">'.$next.'</a>';
430
  else
@@ -433,27 +433,27 @@ class RE_Pager
433
 
434
  return $pages;
435
  }
436
-
437
-
438
  /**
439
  * @todo
440
  * @return boolean
441
  **/
442
-
443
  function filtered ($field, $value)
444
  {
445
  if (isset ($this->filters[$field]) && $this->filters[$field] == $value)
446
  return true;
447
  return false;
448
  }
449
-
450
-
451
  /**
452
  * Display a SELECT box suitable for a per-page
453
  *
454
  * @return void
455
  **/
456
-
457
  function per_page ($plugin = '')
458
  {
459
  ?>
@@ -466,7 +466,7 @@ class RE_Pager
466
  </select>
467
  <?php
468
  }
469
-
470
  function page_links ()
471
  {
472
  $text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>',
@@ -479,4 +479,4 @@ class RE_Pager
479
  }
480
  }
481
 
482
- ?>
5
  // modify it under the terms of the GNU Lesser General Public
6
  // License as published by the Free Software Foundation; either
7
  // version 2.1 of the License, or (at your option) any later version.
8
+ //
9
  // This library is distributed in the hope that it will be useful,
10
  // but WITHOUT ANY WARRANTY; without even the implied warranty of
11
  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
38
  * Searching is achieved by specifying the columns that can be searched:
39
  *
40
  * $rows = $wpdb->get_results ("SELECT * FROM wp_posts".$pager->to_limits ("post_type=page", array ('post_content', 'post_excerpt')));
41
+ *
42
  * Additionally you can output column headings with correct URLs:
43
  * <th><?php echo $pager->sortable ('post_username', 'Username') ?></th>
44
  *
59
  var $search = null;
60
  var $filters = array ();
61
  var $id;
62
+
63
+
64
  /**
65
  * Construct a pager object using the $_GET data, the current URL, and default preferences
66
  *
76
  // Remove all pager params from the url
77
  $this->id = $id;
78
  $this->url = $url;
79
+
80
  if (isset ($data['curpage']))
81
  $this->current_page = intval ($data['curpage']);
82
 
83
  global $user_ID;
84
+
85
  if (isset ($data['perpage']))
86
  {
87
  $this->per_page = intval ($data['perpage']);
92
 
93
  if ($orderby != '')
94
  $this->order_by = $orderby;
95
+
96
  if (isset ($data['orderby']))
97
  $this->order_by = $data['orderby'];
98
+
99
  if (!empty ($tags))
100
  {
101
  $this->order_tags = $tags;
107
  $this->order_original = $orderby;
108
  if (isset ($data['order']))
109
  $this->order_direction = $data['order'];
110
+
111
  $this->search = isset($data['search']) ? $data['search'] : '';
112
  $this->steps = array (10, 25, 50, 100, 250);
113
  $this->url = str_replace ('&', '&amp;', $this->url);
114
  $this->url = str_replace ('&&amp;', '&amp;', $this->url);
115
  }
116
+
117
+
118
  /**
119
  * Set the total number of entries that match the conditions
120
  *
121
  * @param int $total Count
122
  * @return void
123
  **/
124
+
125
  function set_total ($total)
126
  {
127
  $this->total = $total;
129
  if ($this->current_page <= 0 || $this->current_page > $this->total_pages ())
130
  $this->current_page = 1;
131
  }
132
+
133
+
134
  /**
135
  * Return the current page offset
136
  *
137
  * @return int Current page offset
138
  **/
139
+
140
  function offset ()
141
  {
142
  return ($this->current_page - 1) * $this->per_page;
143
  }
144
+
145
+
146
  /**
147
  * @todo explain
148
  * @return void
149
  **/
150
  // XXX
151
+
152
  function is_secondary_sort ()
153
  {
154
  return substr ($this->order_by, 0, 1) == '_' ? true : false;
155
  }
156
+
157
+
158
  /**
159
  * Returns a set of conditions without any limits. This is suitable for a COUNT SQL
160
  *
163
  * @param array $filters Array of columns to filter on
164
  * @return string SQL
165
  **/
166
+
167
  function to_conditions ($conditions, $searches = '', $filters = '') {
168
  global $wpdb;
169
+
170
  $sql = '';
171
  if ($conditions != '')
172
  $sql .= ' WHERE '.$conditions;
173
+
174
  // Add on search conditions
175
  if (is_array ($searches) && $this->search != '')
176
  {
206
  $sql .= ' WHERE (';
207
  else
208
  $sql .= ' AND (';
209
+
210
  $sql .= implode (' AND ', $searchbits);
211
  $sql .= ')';
212
  }
213
  }
214
+
215
  return $sql;
216
  }
217
+
218
+
219
  /**
220
  * Returns a set of conditions with limits.
221
  *
224
  * @param array $filters Array of columns to filter on
225
  * @return string SQL
226
  **/
227
+
228
  function to_limits ($conditions = '', $searches = '', $filters = '', $group_by = '') {
229
  global $wpdb;
230
+
231
  $sql = $this->to_conditions ($conditions, $searches, $filters);
232
+
233
  if ($group_by)
234
  $sql .= ' '.$group_by.' ';
235
+
236
  if (strlen ($this->order_by) > 0)
237
  {
238
  if (!$this->is_secondary_sort ())
246
  return $sql;
247
  }
248
 
249
+
250
  /**
251
  * Return the url with all the params added back
252
  *
254
  * @param string $orderby Optional order
255
  * @return string URL
256
  **/
257
+
258
  function url ($offset, $orderby = '')
259
  {
260
  // Position
262
  $url = preg_replace ('/curpage=\d*/', 'curpage='.$offset, $this->url);
263
  else
264
  $url = $this->url.'&amp;curpage='.$offset;
265
+
266
  // Order
267
  if ($orderby != '')
268
  {
270
  $url = preg_replace ('/orderby=\w*/', 'orderby='.$orderby, $url);
271
  else
272
  $url = $url.'&amp;orderby='.$orderby;
273
+
274
  if (!empty ($this->order_tags) && isset ($this->order_tags[$orderby]))
275
  $dir = $this->order_direction == 'ASC' ? 'DESC' : 'ASC';
276
  else if ($this->order_by == $orderby)
277
  $dir = $this->order_direction == 'ASC' ? 'DESC' : 'ASC';
278
  else
279
  $dir = $this->order_direction;
280
+
281
  if (strpos ($url, 'order=') !== false)
282
  $url = preg_replace ('/order=\w*/', 'order='.$dir, $url);
283
  else
284
  $url = $url.'&amp;order='.$dir;
285
  }
286
+
287
  return str_replace ('&go=go', '', $url);
288
  }
289
+
290
+
291
  /**
292
  * Return current page
293
  *
294
  * @return int
295
  **/
296
+
297
  function current_page () { return $this->current_page; }
298
+
299
+
300
  /**
301
  * Return total number of pages
302
  *
303
  * @return int
304
  **/
305
+
306
  function total_pages ()
307
  {
308
  if ($this->per_page == 0)
309
  return 1;
310
  return ceil ($this->total / $this->per_page);
311
  }
312
+
313
+
314
  /**
315
  * Determine if we have a next page
316
  *
317
  * @return boolean
318
  **/
319
+
320
  function have_next_page ()
321
  {
322
  if ($this->current_page < $this->total_pages ())
323
  return true;
324
  return false;
325
  }
326
+
327
 
328
  /**
329
  * Determine if we have a previous page
337
  return true;
338
  return false;
339
  }
340
+
341
+
342
  function sortable_class ($column, $class = true)
343
  {
344
  if ($column == $this->order_by)
349
  echo ' sortedd';
350
  }
351
  }
352
+
353
  /**
354
  * Return a string suitable for a sortable column heading
355
  *
358
  * @param boolean $image Whether to show a direction image
359
  * @return string URL
360
  **/
361
+
362
  function sortable ($column, $text, $image = true)
363
  {
364
  $url = $this->url ($this->current_page, $column);
365
  $img = '';
366
+
367
  if (isset ($this->order_tags[$column]))
368
  $column = $this->order_tags[$column];
369
+
370
  if ($column == $this->order_by)
371
  {
372
  if (defined ('WP_PLUGIN_URL'))
373
  $dir = WP_PLUGIN_URL.'/'.basename (dirname (dirname (__FILE__)));
374
  else
375
  $dir = get_bloginfo ('wpurl').'/wp-content/plugins/'.basename (dirname (dirname (__FILE__)));
376
+
377
  if (strpos ($url, 'ASC') !== false)
378
  $img = '<img align="bottom" src="'.$dir.'/images/up.gif" alt="dir" width="16" height="7"/>';
379
  else
380
  $img = '<img align="bottom" src="'.$dir.'/images/down.gif" alt="dir" width="16" height="7"/>';
381
+
382
  if ($image == false)
383
  $img = '';
384
  }
385
+
386
  return '<a href="'.$url.'">'.$text.'</a>'.$img;
387
  }
388
+
389
+
390
  /**
391
  * Returns an array of page numbers => link, given the current page (next and previous etc)
392
  *
393
  * @return array Array of page links
394
  **/
395
+
396
  function area_pages ()
397
  {
398
  // First page
403
  {
404
  $previous = __ ('Previous', 'redirection');
405
  $next = __ ('Next', 'redirection');
406
+
407
  if ($this->have_previous_page ())
408
  $pages[] = '<a href="'.$this->url ($this->current_page - 1).'">'.$previous.'</a> |';
409
  else
410
  $pages[] = $previous.' |';
411
+
412
  for ($pos = 1; $pos <= $this->total_pages (); $pos++)
413
  {
414
  if ($pos == $this->current_page)
424
  $pages[] = '&hellip;';
425
  }
426
  }
427
+
428
  if ($this->have_next_page ())
429
  $pages[] = '| <a href="'.$this->url ($this->current_page + 1).'">'.$next.'</a>';
430
  else
433
 
434
  return $pages;
435
  }
436
+
437
+
438
  /**
439
  * @todo
440
  * @return boolean
441
  **/
442
+
443
  function filtered ($field, $value)
444
  {
445
  if (isset ($this->filters[$field]) && $this->filters[$field] == $value)
446
  return true;
447
  return false;
448
  }
449
+
450
+
451
  /**
452
  * Display a SELECT box suitable for a per-page
453
  *
454
  * @return void
455
  **/
456
+
457
  function per_page ($plugin = '')
458
  {
459
  ?>
466
  </select>
467
  <?php
468
  }
469
+
470
  function page_links ()
471
  {
472
  $text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>',
479
  }
480
  }
481
 
482
+ ?>
models/redirect.php CHANGED
@@ -24,12 +24,12 @@ class Red_Item {
24
  var $url = null;
25
  var $regex = false;
26
  var $action_data = null;
27
-
28
  var $last_access = null;
29
  var $last_count = 0;
30
-
31
  var $tracking = true;
32
-
33
  function Red_Item( $values, $type = '', $match = '' ) {
34
  if ( is_object( $values ) ) {
35
  foreach ( $values AS $key => $value ) {
@@ -41,7 +41,7 @@ class Red_Item {
41
  $this->match->id = $this->id;
42
  $this->match->action_code = $this->action_code;
43
  }
44
-
45
  if ( $this->action_type ) {
46
  $this->action = Red_Action::create( $this->action_type, $this->action_code);
47
  $this->match->action = $this->action;
@@ -60,7 +60,7 @@ class Red_Item {
60
  $this->match = $match;
61
  }
62
  }
63
-
64
  function get_all_for_module( $module ) {
65
  global $wpdb;
66
 
@@ -74,10 +74,10 @@ class Red_Item {
74
  $items[] = new Red_Item( $row );
75
  }
76
  }
77
-
78
- return $items;
79
  }
80
-
81
  function exists( $url ) {
82
  global $wpdb;
83
 
@@ -85,7 +85,7 @@ class Red_Item {
85
  return true;
86
  return false;
87
  }
88
-
89
  function get_for_url( $url, $type ) {
90
  global $wpdb;
91
 
@@ -96,7 +96,7 @@ class Red_Item {
96
  $items = array();
97
  if ( count( $rows ) > 0 ) {
98
  foreach ( $rows AS $row ) {
99
- $items[$row->group_pos.'.'.$row->position] = new Red_Item( $row );
100
  }
101
  }
102
 
@@ -105,13 +105,13 @@ class Red_Item {
105
  $items = array_values( $items );
106
  return $items;
107
  }
108
-
109
  function get_by_module( &$pager, $module ) {
110
  global $wpdb;
111
-
112
  $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_items INNER JOIN {$wpdb->prefix}redirection_groups ON {$wpdb->prefix}redirection_groups.id={$wpdb->prefix}redirection_items.group_id";
113
  $sql .= $pager->to_limits( "{$wpdb->prefix}redirection_groups.module_id=".$module, array( 'url', 'action_data' ));
114
-
115
  $rows = $wpdb->get_results( $sql );
116
  $pager->set_total( $wpdb->get_var( "SELECT FOUND_ROWS()" ));
117
  $items = array();
@@ -120,10 +120,10 @@ class Red_Item {
120
  foreach( $rows AS $row)
121
  $items[] = new Red_Item( $row);
122
  }
123
-
124
  return $items;
125
  }
126
-
127
  /**
128
  * Get redirection items in a group
129
  */
@@ -139,22 +139,22 @@ class Red_Item {
139
  $items[] = new Red_Item( $row );
140
  }
141
  }
142
-
143
  return $items;
144
  }
145
-
146
  function get_by_id( $id ) {
147
  global $wpdb;
148
-
149
  $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}redirection_items WHERE id=%d", $id ) );
150
  if ( $row )
151
  return new Red_Item( $row );
152
  return false;
153
  }
154
-
155
  function auto_generate() {
156
  global $redirection;
157
-
158
  $options = $redirection->get_options();
159
  $id = time();
160
 
@@ -163,10 +163,10 @@ class Red_Item {
163
  $url = str_replace( '$hex$', sprintf( '%x', $id), $url );
164
  return $url;
165
  }
166
-
167
  function create( $details ) {
168
  global $wpdb;
169
-
170
  // Auto generate URLs
171
  if ( $details['source'] == '' )
172
  $details['source'] = Red_Item::auto_generate();
@@ -177,7 +177,7 @@ class Red_Item {
177
  // Make sure we don't redirect to ourself
178
  if ( $details['source'] == $details['target'] )
179
  $details['target'] .= '-1';
180
-
181
  $matcher = Red_Match::create( $details['match'] );
182
  $group_id = intval( $details['group'] );
183
 
@@ -191,7 +191,7 @@ class Red_Item {
191
  $action_code = 301;
192
  elseif ( $action == 'error' )
193
  $action_code = 404;
194
-
195
  if ( isset( $details['action_code'] ) )
196
  $action_code = intval( $details['action_code'] );
197
 
@@ -208,34 +208,34 @@ class Red_Item {
208
  );
209
 
210
  $wpdb->insert( $wpdb->prefix.'redirection_items', $data );
211
-
212
  $group = Red_Group::get( $group_id );
213
  Red_Module::flush( $group->module_id );
214
-
215
  return Red_Item::get_by_id( $wpdb->insert_id );
216
  }
217
 
218
  return false;
219
  }
220
-
221
  function delete_by_group( $group ) {
222
  global $wpdb;
223
 
224
  RE_Log::delete_for_group( $group);
225
 
226
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_items WHERE group_id=%d", $group ) );
227
-
228
  $group = Red_Group::get( $group_id );
229
  Red_Module::flush( $group->module_id );
230
  }
231
-
232
  function delete( $id ) {
233
  global $wpdb;
234
-
235
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_items WHERE id=%d", $id ) );
236
-
237
  RE_Log::delete_for_id( $id );
238
-
239
  // Reorder all elements
240
  $rows = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}redirection_items ORDER BY position" );
241
  if ( count( $rows) > 0 ) {
@@ -244,8 +244,8 @@ class Red_Item {
244
  }
245
  }
246
  }
247
-
248
-
249
  function sanitize_url( $url, $regex ) {
250
  // Make sure that the old URL is relative
251
  $url = preg_replace( '@^https?://(.*?)/@', '/', $url );
@@ -255,42 +255,42 @@ class Red_Item {
255
  $url = '/'.$url;
256
  return $url;
257
  }
258
-
259
-
260
  function update( $details ) {
261
  if ( strlen( $details['old'] ) > 0 ) {
262
  global $wpdb;
263
-
264
  $this->regex = isset( $details['regex'] ) ? 1 : 0;
265
  $this->url = $this->sanitize_url( $details['old'], $this->regex );
266
  $this->title = $details['title'];
267
-
268
  $data = $this->match->data( $details );
269
-
270
  $this->action_code = 0;
271
  if ( isset( $details['action_code'] ) )
272
  $this->action_code = intval( $details['action_code'] );
273
 
274
  if ( isset( $details['group_id'] ) )
275
  $this->group_id = intval( $details['group_id'] );
276
-
277
  // Save this
278
  global $wpdb;
279
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'url' => $this->url, 'regex' => $this->regex, 'action_code' => $this->action_code, 'action_data' => $data, 'group_id' => $this->group_id, 'title' => $this->title ), array( 'id' => $this->id ) );
280
-
281
  $group = Red_Group::get( $this->group_id );
282
  if ( $group )
283
  Red_Module::flush( $group->module_id );
284
  }
285
  }
286
-
287
  function save_order( $items, $start ) {
288
  global $wpdb;
289
-
290
  foreach ( $items AS $pos => $id ) {
291
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'position' => $pos + $start ), array( 'id' => $id ) );
292
  }
293
-
294
  $item = Red_Item::get_by_id( $id );
295
  $group = Red_Group::get( $item->group_id );
296
  if ( $group )
@@ -310,15 +310,15 @@ class Red_Item {
310
  $target = $this->replaceSpecialTags( $target );
311
 
312
  $this->visit( $url, $target );
313
-
314
  if ( $this->status == 'enabled' )
315
  return $this->action->process_before( $this->action_code, $target );
316
  }
317
  }
318
-
319
  return false;
320
  }
321
-
322
  function replaceSpecialTags( $target ) {
323
  if ( is_numeric( $target ) )
324
  $target = get_permalink( $target );
@@ -330,7 +330,7 @@ class Red_Item {
330
  $target = str_replace( '%userurl%', isset( $user->user_url ) ? $user->user_url : '', $target );
331
  }
332
  }
333
-
334
  return $target;
335
  }
336
 
@@ -352,28 +352,28 @@ class Red_Item {
352
  $log = RE_Log::create( $url, $target, $_SERVER['HTTP_USER_AGENT'], $ip, isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '', $this->id, $this->module_id, $this->group_id);
353
  }
354
  }
355
-
356
  function reset() {
357
  global $wpdb;
358
-
359
  $this->last_count = 0;
360
  $this->last_access = '0000-00-00 00:00:00';
361
-
362
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'last_count' => 0, 'last_access' => $this->last_access ), array( 'id' => $this->id ) );
363
-
364
  RE_Log::delete_for_id( $this->id );
365
  }
366
 
367
  function show_url( $url ) {
368
  return implode( '&#8203;/', explode( '/', $url ) );
369
  }
370
-
371
  function move_to( $group ) {
372
  global $wpdb;
373
 
374
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'group_id' => $group ), array( 'id' => $this->id ) );
375
  }
376
-
377
  function toggle_status() {
378
  global $wpdb;
379
 
@@ -389,16 +389,16 @@ class Red_Item {
389
  'error' => __( 'Error (404)', 'redirection' ),
390
  'nothing' => __( 'Do nothing', 'redirection' ),
391
  );
392
-
393
  if ( $action )
394
  return $actions[$action];
395
  return $actions;
396
  }
397
-
398
  function match_name() {
399
  return $this->match->match_name();
400
  }
401
-
402
  function type() {
403
  if ( ( $this->action_type == 'url' || $this->action_type == 'error' || $this->action_type == 'random' ) && $this->action_code > 0 )
404
  return $this->action_code;
24
  var $url = null;
25
  var $regex = false;
26
  var $action_data = null;
27
+
28
  var $last_access = null;
29
  var $last_count = 0;
30
+
31
  var $tracking = true;
32
+
33
  function Red_Item( $values, $type = '', $match = '' ) {
34
  if ( is_object( $values ) ) {
35
  foreach ( $values AS $key => $value ) {
41
  $this->match->id = $this->id;
42
  $this->match->action_code = $this->action_code;
43
  }
44
+
45
  if ( $this->action_type ) {
46
  $this->action = Red_Action::create( $this->action_type, $this->action_code);
47
  $this->match->action = $this->action;
60
  $this->match = $match;
61
  }
62
  }
63
+
64
  function get_all_for_module( $module ) {
65
  global $wpdb;
66
 
74
  $items[] = new Red_Item( $row );
75
  }
76
  }
77
+
78
+ return $items;
79
  }
80
+
81
  function exists( $url ) {
82
  global $wpdb;
83
 
85
  return true;
86
  return false;
87
  }
88
+
89
  function get_for_url( $url, $type ) {
90
  global $wpdb;
91
 
96
  $items = array();
97
  if ( count( $rows ) > 0 ) {
98
  foreach ( $rows AS $row ) {
99
+ $items[$row->group_pos * 1000 + $row->position] = new Red_Item( $row );
100
  }
101
  }
102
 
105
  $items = array_values( $items );
106
  return $items;
107
  }
108
+
109
  function get_by_module( &$pager, $module ) {
110
  global $wpdb;
111
+
112
  $sql = "SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}redirection_items INNER JOIN {$wpdb->prefix}redirection_groups ON {$wpdb->prefix}redirection_groups.id={$wpdb->prefix}redirection_items.group_id";
113
  $sql .= $pager->to_limits( "{$wpdb->prefix}redirection_groups.module_id=".$module, array( 'url', 'action_data' ));
114
+
115
  $rows = $wpdb->get_results( $sql );
116
  $pager->set_total( $wpdb->get_var( "SELECT FOUND_ROWS()" ));
117
  $items = array();
120
  foreach( $rows AS $row)
121
  $items[] = new Red_Item( $row);
122
  }
123
+
124
  return $items;
125
  }
126
+
127
  /**
128
  * Get redirection items in a group
129
  */
139
  $items[] = new Red_Item( $row );
140
  }
141
  }
142
+
143
  return $items;
144
  }
145
+
146
  function get_by_id( $id ) {
147
  global $wpdb;
148
+
149
  $row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}redirection_items WHERE id=%d", $id ) );
150
  if ( $row )
151
  return new Red_Item( $row );
152
  return false;
153
  }
154
+
155
  function auto_generate() {
156
  global $redirection;
157
+
158
  $options = $redirection->get_options();
159
  $id = time();
160
 
163
  $url = str_replace( '$hex$', sprintf( '%x', $id), $url );
164
  return $url;
165
  }
166
+
167
  function create( $details ) {
168
  global $wpdb;
169
+
170
  // Auto generate URLs
171
  if ( $details['source'] == '' )
172
  $details['source'] = Red_Item::auto_generate();
177
  // Make sure we don't redirect to ourself
178
  if ( $details['source'] == $details['target'] )
179
  $details['target'] .= '-1';
180
+
181
  $matcher = Red_Match::create( $details['match'] );
182
  $group_id = intval( $details['group'] );
183
 
191
  $action_code = 301;
192
  elseif ( $action == 'error' )
193
  $action_code = 404;
194
+
195
  if ( isset( $details['action_code'] ) )
196
  $action_code = intval( $details['action_code'] );
197
 
208
  );
209
 
210
  $wpdb->insert( $wpdb->prefix.'redirection_items', $data );
211
+
212
  $group = Red_Group::get( $group_id );
213
  Red_Module::flush( $group->module_id );
214
+
215
  return Red_Item::get_by_id( $wpdb->insert_id );
216
  }
217
 
218
  return false;
219
  }
220
+
221
  function delete_by_group( $group ) {
222
  global $wpdb;
223
 
224
  RE_Log::delete_for_group( $group);
225
 
226
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_items WHERE group_id=%d", $group ) );
227
+
228
  $group = Red_Group::get( $group_id );
229
  Red_Module::flush( $group->module_id );
230
  }
231
+
232
  function delete( $id ) {
233
  global $wpdb;
234
+
235
  $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}redirection_items WHERE id=%d", $id ) );
236
+
237
  RE_Log::delete_for_id( $id );
238
+
239
  // Reorder all elements
240
  $rows = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}redirection_items ORDER BY position" );
241
  if ( count( $rows) > 0 ) {
244
  }
245
  }
246
  }
247
+
248
+
249
  function sanitize_url( $url, $regex ) {
250
  // Make sure that the old URL is relative
251
  $url = preg_replace( '@^https?://(.*?)/@', '/', $url );
255
  $url = '/'.$url;
256
  return $url;
257
  }
258
+
259
+
260
  function update( $details ) {
261
  if ( strlen( $details['old'] ) > 0 ) {
262
  global $wpdb;
263
+
264
  $this->regex = isset( $details['regex'] ) ? 1 : 0;
265
  $this->url = $this->sanitize_url( $details['old'], $this->regex );
266
  $this->title = $details['title'];
267
+
268
  $data = $this->match->data( $details );
269
+
270
  $this->action_code = 0;
271
  if ( isset( $details['action_code'] ) )
272
  $this->action_code = intval( $details['action_code'] );
273
 
274
  if ( isset( $details['group_id'] ) )
275
  $this->group_id = intval( $details['group_id'] );
276
+
277
  // Save this
278
  global $wpdb;
279
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'url' => $this->url, 'regex' => $this->regex, 'action_code' => $this->action_code, 'action_data' => $data, 'group_id' => $this->group_id, 'title' => $this->title ), array( 'id' => $this->id ) );
280
+
281
  $group = Red_Group::get( $this->group_id );
282
  if ( $group )
283
  Red_Module::flush( $group->module_id );
284
  }
285
  }
286
+
287
  function save_order( $items, $start ) {
288
  global $wpdb;
289
+
290
  foreach ( $items AS $pos => $id ) {
291
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'position' => $pos + $start ), array( 'id' => $id ) );
292
  }
293
+
294
  $item = Red_Item::get_by_id( $id );
295
  $group = Red_Group::get( $item->group_id );
296
  if ( $group )
310
  $target = $this->replaceSpecialTags( $target );
311
 
312
  $this->visit( $url, $target );
313
+
314
  if ( $this->status == 'enabled' )
315
  return $this->action->process_before( $this->action_code, $target );
316
  }
317
  }
318
+
319
  return false;
320
  }
321
+
322
  function replaceSpecialTags( $target ) {
323
  if ( is_numeric( $target ) )
324
  $target = get_permalink( $target );
330
  $target = str_replace( '%userurl%', isset( $user->user_url ) ? $user->user_url : '', $target );
331
  }
332
  }
333
+
334
  return $target;
335
  }
336
 
352
  $log = RE_Log::create( $url, $target, $_SERVER['HTTP_USER_AGENT'], $ip, isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '', $this->id, $this->module_id, $this->group_id);
353
  }
354
  }
355
+
356
  function reset() {
357
  global $wpdb;
358
+
359
  $this->last_count = 0;
360
  $this->last_access = '0000-00-00 00:00:00';
361
+
362
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'last_count' => 0, 'last_access' => $this->last_access ), array( 'id' => $this->id ) );
363
+
364
  RE_Log::delete_for_id( $this->id );
365
  }
366
 
367
  function show_url( $url ) {
368
  return implode( '&#8203;/', explode( '/', $url ) );
369
  }
370
+
371
  function move_to( $group ) {
372
  global $wpdb;
373
 
374
  $wpdb->update( $wpdb->prefix.'redirection_items', array( 'group_id' => $group ), array( 'id' => $this->id ) );
375
  }
376
+
377
  function toggle_status() {
378
  global $wpdb;
379
 
389
  'error' => __( 'Error (404)', 'redirection' ),
390
  'nothing' => __( 'Do nothing', 'redirection' ),
391
  );
392
+
393
  if ( $action )
394
  return $actions[$action];
395
  return $actions;
396
  }
397
+
398
  function match_name() {
399
  return $this->match->match_name();
400
  }
401
+
402
  function type() {
403
  if ( ( $this->action_type == 'url' || $this->action_type == 'error' || $this->action_type == 'random' ) && $this->action_code > 0 )
404
  return $this->action_code;
modules/404.php CHANGED
@@ -3,12 +3,12 @@
3
  class Error404_Module extends Red_Module
4
  {
5
  var $log_404 = true;
6
-
7
  function start ()
8
  {
9
  add_action ('template_redirect', array (&$this, 'template_redirect'));
10
  }
11
-
12
  function load ($data)
13
  {
14
  $mine = array ('log_404');
@@ -18,18 +18,18 @@ class Error404_Module extends Red_Module
18
  $this->$key = $data[$key];
19
  }
20
  }
21
-
22
  function save ($data)
23
  {
24
  $save = array
25
  (
26
  'log_404' => isset ($data['log_404']) ? true : false
27
  );
28
-
29
  $this->load ($save);
30
  return $save;
31
  }
32
-
33
  function config ()
34
  {
35
  ?>
@@ -39,7 +39,7 @@ class Error404_Module extends Red_Module
39
  </tr>
40
  <?php
41
  }
42
-
43
  function options ()
44
  {
45
  if (!$this->is_valid ())
@@ -47,10 +47,10 @@ class Error404_Module extends Red_Module
47
  else
48
  {
49
  $options = array ();
50
-
51
  if (!empty ($this->log_404))
52
  $options[] = '404s are logged';
53
-
54
  if (count ($options) > 0)
55
  echo '<small>'.ucfirst (implode (', ', $options)).'</small>';
56
  else
@@ -61,7 +61,7 @@ class Error404_Module extends Red_Module
61
  function template_redirect ()
62
  {
63
  global $redirection;
64
-
65
  if (is_404 () && !$redirection->hasMatched ())
66
  {
67
  $url = $_SERVER['REQUEST_URI'];
@@ -72,7 +72,7 @@ class Error404_Module extends Red_Module
72
  {
73
  if ($item->matches ($url))
74
  {
75
- $redirection->setMatched (true);
76
  $this->matched = $item;
77
  break;
78
  }
@@ -82,7 +82,7 @@ class Error404_Module extends Red_Module
82
  if (empty ($this->matched))
83
  {
84
  $modules = Red_Module::get_by_type ('404');
85
-
86
  if (count ($modules) > 0)
87
  {
88
  foreach ($modules AS $module)
3
  class Error404_Module extends Red_Module
4
  {
5
  var $log_404 = true;
6
+
7
  function start ()
8
  {
9
  add_action ('template_redirect', array (&$this, 'template_redirect'));
10
  }
11
+
12
  function load ($data)
13
  {
14
  $mine = array ('log_404');
18
  $this->$key = $data[$key];
19
  }
20
  }
21
+
22
  function save ($data)
23
  {
24
  $save = array
25
  (
26
  'log_404' => isset ($data['log_404']) ? true : false
27
  );
28
+
29
  $this->load ($save);
30
  return $save;
31
  }
32
+
33
  function config ()
34
  {
35
  ?>
39
  </tr>
40
  <?php
41
  }
42
+
43
  function options ()
44
  {
45
  if (!$this->is_valid ())
47
  else
48
  {
49
  $options = array ();
50
+
51
  if (!empty ($this->log_404))
52
  $options[] = '404s are logged';
53
+
54
  if (count ($options) > 0)
55
  echo '<small>'.ucfirst (implode (', ', $options)).'</small>';
56
  else
61
  function template_redirect ()
62
  {
63
  global $redirection;
64
+
65
  if (is_404 () && !$redirection->hasMatched ())
66
  {
67
  $url = $_SERVER['REQUEST_URI'];
72
  {
73
  if ($item->matches ($url))
74
  {
75
+ $redirection->setMatched (true);
76
  $this->matched = $item;
77
  break;
78
  }
82
  if (empty ($this->matched))
83
  {
84
  $modules = Red_Module::get_by_type ('404');
85
+
86
  if (count ($modules) > 0)
87
  {
88
  foreach ($modules AS $module)
modules/apache.php CHANGED
@@ -6,21 +6,21 @@ class Apache_Module extends Red_Module
6
  var $allow_ip = false;
7
  var $raw;
8
  var $ban_ip = false;
9
-
10
  var $site = '';
11
  var $location = '';
12
  var $canonical = '';
13
  var $strip_index = '';
14
  var $memory_limit = '';
15
  var $error_level = '';
16
-
17
  function is_valid ()
18
  {
19
  if (!$this->location || !file_exists (dirname ($this->location)) && !is_writable (dirname ($this->location)))
20
  return false;
21
  return true;
22
  }
23
-
24
  function load ($data)
25
  {
26
  $mine = array ('location', 'canonical', 'strip_index', 'memory_limit', 'error_level', 'ban_ip', 'allow_ip', 'raw', 'site');
@@ -30,12 +30,12 @@ class Apache_Module extends Red_Module
30
  $this->$key = $data[$key];
31
  }
32
  }
33
-
34
  function module_flush_delete ()
35
  {
36
  @unlink ($this->location);
37
  }
38
-
39
  function module_flush ($items)
40
  {
41
  // Produce the .htaccess file
@@ -47,10 +47,10 @@ class Apache_Module extends Red_Module
47
  foreach ($items AS $item)
48
  $htaccess->add ($item);
49
  }
50
-
51
  $htaccess->save ($this->location, $this->name);
52
  }
53
-
54
  function save ($data)
55
  {
56
  $save = array
@@ -65,11 +65,11 @@ class Apache_Module extends Red_Module
65
  'raw' => $data['raw'],
66
  'site' => preg_replace ('@https?://@', '', $data['site'])
67
  );
68
-
69
  $this->load ($save);
70
  return $save;
71
  }
72
-
73
  function config ()
74
  {
75
  ?>
@@ -89,7 +89,7 @@ class Apache_Module extends Red_Module
89
  <select name="canonical">
90
  <?php echo $this->select (array ('default' => __ ('Leave as is', 'redirection'), 'nowww' => sprintf (__ ('Strip WWW (%s)', 'redirection'), preg_replace ('@https?://(www)?@', '', get_bloginfo ('url'))), 'www' => sprintf (__ ('Force WWW (www.%s)', 'redirection'), preg_replace ('@https?://(www)?@', '', get_bloginfo ('url')))), $this->canonical); ?>
91
  </select>
92
-
93
  <br/>
94
  <strong><?php _e ('Strip Index', 'redirection'); ?>:</strong>
95
  <select name="strip_index">
@@ -103,7 +103,7 @@ class Apache_Module extends Red_Module
103
  <select name="memory_limit">
104
  <?php echo $this->select (array ('0' => __ ('Server default', 'redirection'), '8' => '8MB', '16' => '16MB', '32' => '32MB', '64' => '64MB', '128' => '128MB'), $this->memory_limit); ?>
105
  </select>
106
-
107
  <strong><?php _e ('Error Level', 'redirection'); ?>:</strong>
108
  <select name="error_level">
109
  <?php echo $this->select (array ('default' => __ ('Server default', 'redirection'), 'none' => __ ('No errors', 'redirection'), 'error' => __ ('Show errors', 'redirection')), $this->error_level); ?>
@@ -135,10 +135,10 @@ class Apache_Module extends Red_Module
135
  <span class="sub"><?php _e ('Advanced: For management of external sites', 'redirection'); ?></span>
136
  </td>
137
  </tr>
138
-
139
  <?php
140
  }
141
-
142
  function options ()
143
  {
144
  echo '<p>';
@@ -162,26 +162,26 @@ class Apache_Module extends Red_Module
162
  else
163
  echo __ ('<strong>Disabled: enter the location of an <code>.htaccess</code> file for this to be valid</strong>', 'redirection');
164
  echo '</p>';
165
-
166
  $options = array ();
167
  if ($this->canonical != 'default' && !empty ($this->canonical))
168
  $options[] = ($this->canonical == 'nowww') ? __ ('strip WWW', 'redirection') : __ ('force WWW', 'redirection');
169
-
170
  if ($this->strip_index != 'default' && !empty ($this->strip_index))
171
  $options[] = __ ('strip index', 'redirection');
172
-
173
  if ($this->memory_limit > 0 && !empty ($this->memory_limit))
174
  $options[] = sprintf (__ ('memory limit at %dMB', 'redirection'), $this->memory_limit);
175
-
176
  if ($this->error_level != 'default' && !empty ($this->error_level))
177
  $options[] = ($this->error_level == 'none') ? __ ('no errors', 'redirection') : __ ('show errors', 'redirection');
178
-
179
  if (!empty ($this->ban_ip))
180
  $options[] = __ ('IPs are banned', 'redirection');
181
-
182
  if (!empty ($this->allow_ip))
183
  $options[] = __ ('IPs are allowed', 'redirection');
184
-
185
  echo '<small>'.ucfirst (implode (', ', $options)).'</small>';
186
- }
187
  }
6
  var $allow_ip = false;
7
  var $raw;
8
  var $ban_ip = false;
9
+
10
  var $site = '';
11
  var $location = '';
12
  var $canonical = '';
13
  var $strip_index = '';
14
  var $memory_limit = '';
15
  var $error_level = '';
16
+
17
  function is_valid ()
18
  {
19
  if (!$this->location || !file_exists (dirname ($this->location)) && !is_writable (dirname ($this->location)))
20
  return false;
21
  return true;
22
  }
23
+
24
  function load ($data)
25
  {
26
  $mine = array ('location', 'canonical', 'strip_index', 'memory_limit', 'error_level', 'ban_ip', 'allow_ip', 'raw', 'site');
30
  $this->$key = $data[$key];
31
  }
32
  }
33
+
34
  function module_flush_delete ()
35
  {
36
  @unlink ($this->location);
37
  }
38
+
39
  function module_flush ($items)
40
  {
41
  // Produce the .htaccess file
47
  foreach ($items AS $item)
48
  $htaccess->add ($item);
49
  }
50
+
51
  $htaccess->save ($this->location, $this->name);
52
  }
53
+
54
  function save ($data)
55
  {
56
  $save = array
65
  'raw' => $data['raw'],
66
  'site' => preg_replace ('@https?://@', '', $data['site'])
67
  );
68
+
69
  $this->load ($save);
70
  return $save;
71
  }
72
+
73
  function config ()
74
  {
75
  ?>
89
  <select name="canonical">
90
  <?php echo $this->select (array ('default' => __ ('Leave as is', 'redirection'), 'nowww' => sprintf (__ ('Strip WWW (%s)', 'redirection'), preg_replace ('@https?://(www)?@', '', get_bloginfo ('url'))), 'www' => sprintf (__ ('Force WWW (www.%s)', 'redirection'), preg_replace ('@https?://(www)?@', '', get_bloginfo ('url')))), $this->canonical); ?>
91
  </select>
92
+
93
  <br/>
94
  <strong><?php _e ('Strip Index', 'redirection'); ?>:</strong>
95
  <select name="strip_index">
103
  <select name="memory_limit">
104
  <?php echo $this->select (array ('0' => __ ('Server default', 'redirection'), '8' => '8MB', '16' => '16MB', '32' => '32MB', '64' => '64MB', '128' => '128MB'), $this->memory_limit); ?>
105
  </select>
106
+
107
  <strong><?php _e ('Error Level', 'redirection'); ?>:</strong>
108
  <select name="error_level">
109
  <?php echo $this->select (array ('default' => __ ('Server default', 'redirection'), 'none' => __ ('No errors', 'redirection'), 'error' => __ ('Show errors', 'redirection')), $this->error_level); ?>
135
  <span class="sub"><?php _e ('Advanced: For management of external sites', 'redirection'); ?></span>
136
  </td>
137
  </tr>
138
+
139
  <?php
140
  }
141
+
142
  function options ()
143
  {
144
  echo '<p>';
162
  else
163
  echo __ ('<strong>Disabled: enter the location of an <code>.htaccess</code> file for this to be valid</strong>', 'redirection');
164
  echo '</p>';
165
+
166
  $options = array ();
167
  if ($this->canonical != 'default' && !empty ($this->canonical))
168
  $options[] = ($this->canonical == 'nowww') ? __ ('strip WWW', 'redirection') : __ ('force WWW', 'redirection');
169
+
170
  if ($this->strip_index != 'default' && !empty ($this->strip_index))
171
  $options[] = __ ('strip index', 'redirection');
172
+
173
  if ($this->memory_limit > 0 && !empty ($this->memory_limit))
174
  $options[] = sprintf (__ ('memory limit at %dMB', 'redirection'), $this->memory_limit);
175
+
176
  if ($this->error_level != 'default' && !empty ($this->error_level))
177
  $options[] = ($this->error_level == 'none') ? __ ('no errors', 'redirection') : __ ('show errors', 'redirection');
178
+
179
  if (!empty ($this->ban_ip))
180
  $options[] = __ ('IPs are banned', 'redirection');
181
+
182
  if (!empty ($this->allow_ip))
183
  $options[] = __ ('IPs are allowed', 'redirection');
184
+
185
  echo '<small>'.ucfirst (implode (', ', $options)).'</small>';
186
+ }
187
  }
modules/wordpress.php CHANGED
@@ -12,16 +12,16 @@ class WordPress_Module extends Red_Module {
12
  add_action( 'send_headers', array( &$this, 'send_headers' ) );
13
  add_filter( 'permalink_redirect_skip', array( &$this, 'permalink_redirect_skip' ) );
14
  add_filter( 'wp_redirect', array( &$this, 'wp_redirect' ), 1, 2 );
15
-
16
  // Remove WordPress 2.3 redirection
17
  // XXX still needed?
18
  remove_action( 'template_redirect', 'wp_old_slug_redirect' );
19
  remove_action( 'edit_form_advanced', 'wp_remember_old_slug' );
20
  }
21
-
22
  function init() {
23
  global $redirection;
24
-
25
  $url = $_SERVER['REQUEST_URI'];
26
 
27
  // Make sure we don't try and redirect something essential
@@ -41,12 +41,12 @@ class WordPress_Module extends Red_Module {
41
  do_action( 'redirection_last', $url, $this );
42
  }
43
  }
44
-
45
  function protected_url( $url )
46
  {
47
  global $redirection;
48
  $part = explode( '?', $url );
49
-
50
  if ( $part[0] == str_replace( get_bloginfo( 'url' ), '', $redirection->url() ).'/ajax.php' || strpos($url, 'wp-cron.php' ) !== false )
51
  return true;
52
  return false;
@@ -69,7 +69,7 @@ class WordPress_Module extends Red_Module {
69
  function set_header_410() {
70
  return 'HTTP/1.1 410 Gone';
71
  }
72
-
73
  function wp_redirect( $url, $status )
74
  {
75
  global $wp_version, $is_IIS;
@@ -95,11 +95,11 @@ class WordPress_Module extends Red_Module {
95
  return $url;
96
  }
97
  }
98
-
99
  function save( $data ) {
100
  return array();
101
  }
102
-
103
  function permalink_redirect_skip( $skip ) {
104
  // only want this if we:ve matched using redirection
105
  if ( $this->matched )
@@ -114,7 +114,7 @@ class WordPress_Module extends Red_Module {
114
  return false;
115
  return true;
116
  }
117
-
118
  function options()
119
  {
120
  if ( !$this->is_valid() )
12
  add_action( 'send_headers', array( &$this, 'send_headers' ) );
13
  add_filter( 'permalink_redirect_skip', array( &$this, 'permalink_redirect_skip' ) );
14
  add_filter( 'wp_redirect', array( &$this, 'wp_redirect' ), 1, 2 );
15
+
16
  // Remove WordPress 2.3 redirection
17
  // XXX still needed?
18
  remove_action( 'template_redirect', 'wp_old_slug_redirect' );
19
  remove_action( 'edit_form_advanced', 'wp_remember_old_slug' );
20
  }
21
+
22
  function init() {
23
  global $redirection;
24
+
25
  $url = $_SERVER['REQUEST_URI'];
26
 
27
  // Make sure we don't try and redirect something essential
41
  do_action( 'redirection_last', $url, $this );
42
  }
43
  }
44
+
45
  function protected_url( $url )
46
  {
47
  global $redirection;
48
  $part = explode( '?', $url );
49
+
50
  if ( $part[0] == str_replace( get_bloginfo( 'url' ), '', $redirection->url() ).'/ajax.php' || strpos($url, 'wp-cron.php' ) !== false )
51
  return true;
52
  return false;
69
  function set_header_410() {
70
  return 'HTTP/1.1 410 Gone';
71
  }
72
+
73
  function wp_redirect( $url, $status )
74
  {
75
  global $wp_version, $is_IIS;
95
  return $url;
96
  }
97
  }
98
+
99
  function save( $data ) {
100
  return array();
101
  }
102
+
103
  function permalink_redirect_skip( $skip ) {
104
  // only want this if we:ve matched using redirection
105
  if ( $this->matched )
114
  return false;
115
  return true;
116
  }
117
+
118
  function options()
119
  {
120
  if ( !$this->is_valid() )
plugin.php CHANGED
@@ -138,7 +138,7 @@ class Redirection_Plugin {
138
 
139
  $this->add_action( 'init', 'load_locale' );
140
  }
141
-
142
  /**
143
  * Hook called to change the locale directory
144
  * @return void
@@ -166,7 +166,7 @@ class Redirection_Plugin {
166
  function add_action( $actions, $function = '', $priority = 10, $accepted_args = 1 ) {
167
  if ( !is_array( $actions ) )
168
  $actions = array( $actions );
169
-
170
  foreach ( $actions AS $action ) {
171
  add_action( $action, array( &$this, $function == '' ? $actions[0] : $function ), $priority, $accepted_args );
172
  }
@@ -185,7 +185,7 @@ class Redirection_Plugin {
185
  function add_filter( $filters, $function = '', $priority = 10, $accepted_args = 1 ) {
186
  if ( !is_array( $filters ) )
187
  $filters = array( $filters );
188
-
189
  foreach ( $filters AS $filter ) {
190
  add_filter( $filter, array( &$this, $function == '' ? $filters[0] : $function ), $priority, $accepted_args );
191
  }
@@ -206,7 +206,7 @@ class Redirection_Plugin {
206
  function register_ajax( $action, $function = '', $priority = 10 ) {
207
  add_action( 'wp_ajax_'.$action, array( &$this, $function == '' ? $action : $function ), $priority );
208
  }
209
-
210
  /**
211
  * Special deactivation function that takes into account the plugin directory
212
  *
@@ -217,7 +217,7 @@ class Redirection_Plugin {
217
  function register_deactivation( $pluginfile, $function = '' ) {
218
  add_action( 'deactivate_'.basename( dirname( $pluginfile ) ).'/'.basename( $pluginfile ), array( &$this, $function == '' ? 'deactivate' : $function ) );
219
  }
220
-
221
  function register_plugin_settings( $pluginfile, $function = '' ) {
222
  add_action( 'plugin_action_links_'.basename( dirname( $pluginfile ) ).'/'.basename( $pluginfile ), array( &$this, $function == '' ? 'plugin_settings' : $function ), 10, 4 );
223
  }
@@ -342,7 +342,7 @@ class Redirection_Plugin {
342
  $parts = explode( '?', basename( $_SERVER['REQUEST_URI'] ) );
343
  return $parts[0];
344
  }
345
-
346
  /**
347
  * Get a URL to the plugin. Useful for specifying JS and CSS files
348
  *
@@ -479,7 +479,7 @@ class Redirection_Plugin {
479
  return mb_strlen( $text );
480
  return strlen( $text );
481
  }
482
-
483
  /**
484
  * Returns version of plugin
485
  *
@@ -487,7 +487,7 @@ class Redirection_Plugin {
487
  **/
488
  function version() {
489
  $plugin_data = implode( '', file( $this->plugin_base ) );
490
-
491
  if ( preg_match( '|Version:(.*)|i', $plugin_data, $version ) )
492
  return trim( $version[1] );
493
  return '';
@@ -513,4 +513,4 @@ if ( !function_exists( '_n' ) ) {
513
  function _n($single, $plural, $number, $domain = 'default') {
514
  return __ngettext($single, $plural, $number, $domain = 'default');
515
  }
516
- }
138
 
139
  $this->add_action( 'init', 'load_locale' );
140
  }
141
+
142
  /**
143
  * Hook called to change the locale directory
144
  * @return void
166
  function add_action( $actions, $function = '', $priority = 10, $accepted_args = 1 ) {
167
  if ( !is_array( $actions ) )
168
  $actions = array( $actions );
169
+
170
  foreach ( $actions AS $action ) {
171
  add_action( $action, array( &$this, $function == '' ? $actions[0] : $function ), $priority, $accepted_args );
172
  }
185
  function add_filter( $filters, $function = '', $priority = 10, $accepted_args = 1 ) {
186
  if ( !is_array( $filters ) )
187
  $filters = array( $filters );
188
+
189
  foreach ( $filters AS $filter ) {
190
  add_filter( $filter, array( &$this, $function == '' ? $filters[0] : $function ), $priority, $accepted_args );
191
  }
206
  function register_ajax( $action, $function = '', $priority = 10 ) {
207
  add_action( 'wp_ajax_'.$action, array( &$this, $function == '' ? $action : $function ), $priority );
208
  }
209
+
210
  /**
211
  * Special deactivation function that takes into account the plugin directory
212
  *
217
  function register_deactivation( $pluginfile, $function = '' ) {
218
  add_action( 'deactivate_'.basename( dirname( $pluginfile ) ).'/'.basename( $pluginfile ), array( &$this, $function == '' ? 'deactivate' : $function ) );
219
  }
220
+
221
  function register_plugin_settings( $pluginfile, $function = '' ) {
222
  add_action( 'plugin_action_links_'.basename( dirname( $pluginfile ) ).'/'.basename( $pluginfile ), array( &$this, $function == '' ? 'plugin_settings' : $function ), 10, 4 );
223
  }
342
  $parts = explode( '?', basename( $_SERVER['REQUEST_URI'] ) );
343
  return $parts[0];
344
  }
345
+
346
  /**
347
  * Get a URL to the plugin. Useful for specifying JS and CSS files
348
  *
479
  return mb_strlen( $text );
480
  return strlen( $text );
481
  }
482
+
483
  /**
484
  * Returns version of plugin
485
  *
487
  **/
488
  function version() {
489
  $plugin_data = implode( '', file( $this->plugin_base ) );
490
+
491
  if ( preg_match( '|Version:(.*)|i', $plugin_data, $version ) )
492
  return trim( $version[1] );
493
  return '';
513
  function _n($single, $plural, $number, $domain = 'default') {
514
  return __ngettext($single, $plural, $number, $domain = 'default');
515
  }
516
+ }
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: johnny5
3
  Donate link: http://urbangiraffe.com/about/
4
  Tags: post, admin, seo, pages, manage, 301, 404, redirect, permalink
5
  Requires at least: 3.0
6
- Tested up to: 3.2.1
7
- Stable tag: trunk
8
 
9
  Redirection is a WordPress plugin to manage 301 redirections and keep track of 404 errors without requiring knowledge of Apache .htaccess files.
10
 
@@ -48,11 +48,13 @@ Redirection is available in:
48
  * Polish by Kuba Majerczyk
49
  * Arabic by Jerry John
50
  * Brazilian Portuguese by Pedro Padron
51
- * Dutch by Marlon Navas & Pieter Carette
52
  * Hungarian by daSSad
53
  * Turkish by Fatih Cevik
54
  * Romanian translation, thanks to Alina
55
  * Greek, thanks to Stefanos Kofopoulos
 
 
56
 
57
  == Installation ==
58
 
@@ -87,6 +89,12 @@ Full documentation can be found on the [Redirection](http://urbangiraffe.com/plu
87
 
88
  == Changelog ==
89
 
 
 
 
 
 
 
90
  = 2.2.10 =
91
  * Fix XSS in referrers log
92
 
@@ -117,7 +125,7 @@ Full documentation can be found on the [Redirection](http://urbangiraffe.com/plu
117
  * Remove debug from htaccess module
118
 
119
  = 2.2.2 =
120
- * Fix encoding of JS strings
121
 
122
  = 2.2.1 =
123
  * More Dutch translation
@@ -167,114 +175,114 @@ Full documentation can be found on the [Redirection](http://urbangiraffe.com/plu
167
  = 2.1.20 =
168
  * Fix for some users with problems deleting redirections
169
 
170
- = 2.1.19 =
171
  * Add Hindi translation
172
  * Fix some ajax
173
 
174
- = 2.1.18 =
175
  * Fix module deletion
176
 
177
- = 2.1.17 =
178
  * Log JS fixes
179
 
180
- = 2.1.16 =
181
  * Fix group edit and log add entry
182
 
183
- = 2.1.15 =
184
  * Use WP Ajax
185
  * Add Japanese
186
 
187
- = 2.1.14 =
188
  * Fix #457
189
  * Add #475, #427
190
  * Add Catalan translation.
191
  * WP2.8 compatibility
192
 
193
- = 2.1.13 =
194
  * Add Spanish and Chinese translation
195
 
196
- = 2.1.12 =
197
  * Add icons
198
  * Disable category monitoring
199
 
200
- = 2.1.11 =
201
  * Errors on some sites
202
 
203
- = 2.1.10 =
204
  * Missing localisations
205
 
206
- = 2.1.9 =
207
  * Fix 'you do not permissions' error on some non-English sites
208
 
209
- = 2.1.8 =
210
  * Fix category change 'quick edit'
211
 
212
- = 2.1.7 =
213
  * Fix #422, #426
214
 
215
- = 2.1.6 =
216
  * Redirection loops
217
 
218
- = 2.1.5 =
219
  * Fix #366, #371, #378, #390, #400.
220
  * Add #370, #357
221
 
222
- = 2.1.4 =
223
  * RSS feed token
224
 
225
- = 2.1.3 =
226
  * Re-enable import feature
227
 
228
- = 2.1.2 =
229
  * Minor button changes
230
 
231
- = 2.1.1 =
232
  * Force JS cache
233
  * Fix log deletion
234
 
235
- = 2.1 =
236
  * Change to jQuery
237
  * Nonce protection
238
  * Fix #352, #353, #339, #351
239
  * Add #358, #316.
240
 
241
- = 2.0.12 =
242
  * Disable category monitor in 2.7
243
 
244
- = 2.0.11 =
245
  * Hebrew translation
246
 
247
- = 2.0.10 =
248
  * Fix small issues in display with WP 2.7
249
 
250
- = 2.0.9 =
251
  * Fix delete redirects
252
 
253
- = 2.0.8 =
254
  * Refix log delete
255
 
256
- = 2.0.7 =
257
  * Fix incorrect automatic redirection with static home pages
258
 
259
- = 2.0.6 =
260
  * Support for wp-load.php
261
 
262
- = 2.0.5 =
263
  * Fix #264
264
 
265
- = 2.0.4 =
266
  * get_home_path seems not be available for some people
267
 
268
- = 2.0.3 =
269
  * Fix #248
270
  * Update plugin.php to better handle odd directories
271
 
272
- = 2.0.2 =
273
  * Correct DB install
274
  * Fix IIS problem
275
 
276
- = 2.0.1 =
277
  * Install defaults when no existing redirection setup
278
 
279
- = 2.0 =
280
  * New version
3
  Donate link: http://urbangiraffe.com/about/
4
  Tags: post, admin, seo, pages, manage, 301, 404, redirect, permalink
5
  Requires at least: 3.0
6
+ Tested up to: 3.4
7
+ Stable tag: 2.2.11
8
 
9
  Redirection is a WordPress plugin to manage 301 redirections and keep track of 404 errors without requiring knowledge of Apache .htaccess files.
10
 
48
  * Polish by Kuba Majerczyk
49
  * Arabic by Jerry John
50
  * Brazilian Portuguese by Pedro Padron
51
+ * Dutch by Marlon Navas, Pieter Carette, and Bart Kummel
52
  * Hungarian by daSSad
53
  * Turkish by Fatih Cevik
54
  * Romanian translation, thanks to Alina
55
  * Greek, thanks to Stefanos Kofopoulos
56
+ * Belarusian, thanks to Alexander Ovsov
57
+ * Czech, thanks to Martin Jurica
58
 
59
  == Installation ==
60
 
89
 
90
  == Changelog ==
91
 
92
+ = 2.2.11 =
93
+ * Add Lithuanian
94
+ * Add Belarusian
95
+ * Add Czech
96
+ * Fix order of redirects, thanks to Nicolas Hatier
97
+
98
  = 2.2.10 =
99
  * Fix XSS in referrers log
100
 
125
  * Remove debug from htaccess module
126
 
127
  = 2.2.2 =
128
+ * Fix encoding of JS strings
129
 
130
  = 2.2.1 =
131
  * More Dutch translation
175
  = 2.1.20 =
176
  * Fix for some users with problems deleting redirections
177
 
178
+ = 2.1.19 =
179
  * Add Hindi translation
180
  * Fix some ajax
181
 
182
+ = 2.1.18 =
183
  * Fix module deletion
184
 
185
+ = 2.1.17 =
186
  * Log JS fixes
187
 
188
+ = 2.1.16 =
189
  * Fix group edit and log add entry
190
 
191
+ = 2.1.15 =
192
  * Use WP Ajax
193
  * Add Japanese
194
 
195
+ = 2.1.14 =
196
  * Fix #457
197
  * Add #475, #427
198
  * Add Catalan translation.
199
  * WP2.8 compatibility
200
 
201
+ = 2.1.13 =
202
  * Add Spanish and Chinese translation
203
 
204
+ = 2.1.12 =
205
  * Add icons
206
  * Disable category monitoring
207
 
208
+ = 2.1.11 =
209
  * Errors on some sites
210
 
211
+ = 2.1.10 =
212
  * Missing localisations
213
 
214
+ = 2.1.9 =
215
  * Fix 'you do not permissions' error on some non-English sites
216
 
217
+ = 2.1.8 =
218
  * Fix category change 'quick edit'
219
 
220
+ = 2.1.7 =
221
  * Fix #422, #426
222
 
223
+ = 2.1.6 =
224
  * Redirection loops
225
 
226
+ = 2.1.5 =
227
  * Fix #366, #371, #378, #390, #400.
228
  * Add #370, #357
229
 
230
+ = 2.1.4 =
231
  * RSS feed token
232
 
233
+ = 2.1.3 =
234
  * Re-enable import feature
235
 
236
+ = 2.1.2 =
237
  * Minor button changes
238
 
239
+ = 2.1.1 =
240
  * Force JS cache
241
  * Fix log deletion
242
 
243
+ = 2.1 =
244
  * Change to jQuery
245
  * Nonce protection
246
  * Fix #352, #353, #339, #351
247
  * Add #358, #316.
248
 
249
+ = 2.0.12 =
250
  * Disable category monitor in 2.7
251
 
252
+ = 2.0.11 =
253
  * Hebrew translation
254
 
255
+ = 2.0.10 =
256
  * Fix small issues in display with WP 2.7
257
 
258
+ = 2.0.9 =
259
  * Fix delete redirects
260
 
261
+ = 2.0.8 =
262
  * Refix log delete
263
 
264
+ = 2.0.7 =
265
  * Fix incorrect automatic redirection with static home pages
266
 
267
+ = 2.0.6 =
268
  * Support for wp-load.php
269
 
270
+ = 2.0.5 =
271
  * Fix #264
272
 
273
+ = 2.0.4 =
274
  * get_home_path seems not be available for some people
275
 
276
+ = 2.0.3 =
277
  * Fix #248
278
  * Update plugin.php to better handle odd directories
279
 
280
+ = 2.0.2 =
281
  * Correct DB install
282
  * Fix IIS problem
283
 
284
+ = 2.0.1 =
285
  * Install defaults when no existing redirection setup
286
 
287
+ = 2.0 =
288
  * New version
redirection.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Redirection
4
  Plugin URI: http://urbangiraffe.com/plugins/redirection/
5
  Description: Manage all your 301 redirects and monitor 404 errors
6
- Version: 2.2.10
7
  Author: John Godley
8
  Author URI: http://urbangiraffe.com
9
  ============================================================================================================
@@ -37,18 +37,18 @@ if ( class_exists( 'Redirection' ) )
37
 
38
  class Redirection extends Redirection_Plugin {
39
  var $hasMatched = false;
40
-
41
  function Redirection() {
42
  $this->register_plugin( 'redirection', __FILE__ );
43
-
44
  if ( is_admin() ) {
45
  $this->add_action( 'admin_menu' );
46
  $this->add_action( 'load-tools_page_redirection', 'redirection_head' );
47
  $this->add_action( 'init', 'inject' );
48
-
49
  $this->register_activation( __FILE__ );
50
  $this->register_plugin_settings( __FILE__ );
51
-
52
  // Ajax functions
53
  if ( defined( 'DOING_AJAX' ) ) {
54
  include_once dirname( __FILE__ ).'/ajax.php';
@@ -57,18 +57,18 @@ class Redirection extends Redirection_Plugin {
57
  }
58
  else {
59
  $this->update();
60
-
61
  // Create a WordPress exporter and let it handle the load
62
  $this->wp = new WordPress_Module();
63
  $this->wp->start();
64
-
65
  $this->error = new Error404_Module();
66
  $this->error->start();
67
  }
68
-
69
  $this->monitor = new Red_Monitor( $this->get_options() );
70
  }
71
-
72
  function update() {
73
  $version = get_option( 'redirection_version' );
74
 
@@ -78,10 +78,10 @@ class Redirection extends Redirection_Plugin {
78
  $db = new RE_Database();
79
  return $db->upgrade( $version, REDIRECTION_VERSION );
80
  }
81
-
82
  return true;
83
  }
84
-
85
  function activate() {
86
  if ( $this->update() === false ) {
87
  $db = new RE_Database();
@@ -89,16 +89,16 @@ class Redirection extends Redirection_Plugin {
89
  exit();
90
  }
91
  }
92
-
93
  function plugin_settings( $links ) {
94
  $settings_link = '<a href="tools.php?page='.basename( __FILE__ ).'">'.__( 'Settings', 'redirection' ).'</a>';
95
  array_unshift( $links, $settings_link );
96
  return $links;
97
  }
98
-
99
  function version() {
100
  $plugin_data = implode( '', file( __FILE__ ) );
101
-
102
  if ( preg_match( '|Version:(.*)|i', $plugin_data, $version ) )
103
  return trim( $version[1] );
104
  return '';
@@ -107,7 +107,7 @@ class Redirection extends Redirection_Plugin {
107
  function redirection_head() {
108
  wp_enqueue_script( 'redirection', plugin_dir_url( __FILE__ ).'js/redirection.js', array( 'jquery-form', 'jquery-ui-sortable' ), $this->version() );
109
  wp_enqueue_style( 'redirection', plugin_dir_url( __FILE__ ).'admin.css', $this->version() );
110
-
111
  wp_localize_script( 'redirection', 'Redirectioni10n', array(
112
  'please_wait' => __( 'Please wait...', 'redirection' ),
113
  'type' => 1,
@@ -146,32 +146,32 @@ class Redirection extends Redirection_Plugin {
146
 
147
  return $this->admin_redirects( isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0 );
148
  }
149
-
150
  function admin_screen_modules() {
151
  if ( isset( $_POST['create'] ) && check_admin_referer( 'redirection-module_add' ) ) {
152
  $data = stripslashes_deep( $_POST );
153
-
154
  if ( ( $module = Red_Module::create( $data ) ) ) {
155
  $moduleid = 0;
156
  if ( isset( $_POST['module'] ) )
157
  $moduleid = intval( $_POST['module'] );
158
-
159
  $this->render_message( __( 'Your module was successfully created', 'redirection' ) );
160
  Red_Module::flush( $moduleid );
161
  }
162
  else
163
  $this->render_error( __( 'Your module was not created - did you provide a name?', 'redirection' ) );
164
  }
165
-
166
  $options = $this->get_options();
167
  $this->render_admin( 'module_list', array( 'modules' => Red_Module::get_all(), 'module_types' => Red_Module::get_types(), 'token' => $options['token'] ) );
168
  }
169
-
170
  function get_options() {
171
  $options = get_option( 'redirection_options' );
172
  if ( $options === false )
173
  $options = array();
174
-
175
  $defaults = array (
176
  'lookup' => 'http://urbangiraffe.com/map/?from=redirection&amp;ip=',
177
  'support' => false,
@@ -183,21 +183,21 @@ class Redirection extends Redirection_Plugin {
183
  'monitor_post' => 0,
184
  'auto_target' => '',
185
  );
186
-
187
  foreach ( $defaults AS $key => $value ) {
188
  if ( !isset( $options[$key] ) )
189
  $options[$key] = $value;
190
  }
191
-
192
  if ( $options['lookup'] == 'http://geomaplookup.cinnamonthoughts.org/?ip=' || $options['lookup'] == 'http://geomaplookup.net/?ip=' )
193
  $options['lookup'] = 'http://urbangiraffe.com/map/?from=redirection&amp;ip=';
194
-
195
  return $options;
196
  }
197
-
198
  function inject() {
199
  $options = $this->get_options();
200
-
201
  if ( isset($_GET['token'] ) && isset( $_GET['page'] ) && isset( $_GET['sub'] ) && $_GET['token'] == $options['token'] && $_GET['page'] == 'redirection.php' && in_array( $_GET['sub'], array( 'rss', 'xml', 'csv', 'apache' ) ) ) {
202
  include dirname( __FILE__ ).'/models/file_io.php';
203
 
@@ -219,10 +219,10 @@ class Redirection extends Redirection_Plugin {
219
  $options['monitor_new_posts'] = isset( $_POST['monitor_new_posts'] ) ? true : false;
220
  $options['expire'] = intval( $_POST['expire'] );
221
  $options['token'] = stripslashes( $_POST['token'] );
222
-
223
  if ( trim( $options['token'] ) == '' )
224
  $options['token'] = md5( uniqid() );
225
-
226
  update_option( 'redirection_options', $options );
227
 
228
  $this->render_message( __( 'Your options were updated', 'redirection' ) );
@@ -232,15 +232,15 @@ class Redirection extends Redirection_Plugin {
232
 
233
  $db = new RE_Database;
234
  $db->remove( __FILE__ );
235
-
236
  $this->render_message( __( 'Redirection data has been deleted and the plugin disabled', 'redirection' ) );
237
  return;
238
  }
239
  elseif ( isset( $_POST['import'] ) && check_admin_referer( 'redirection-import' ) ) {
240
  include dirname( __FILE__ ).'/models/file_io.php';
241
-
242
  $importer = new Red_FileIO;
243
-
244
  $count = $importer->import( $_POST['group'], $_FILES['upload'] );
245
  if ( $count > 0 )
246
  $this->render_message( sprintf( _n( '%d redirection was successfully imported','%d redirections were successfully imported', $count, 'redirection' ), $count ) );
@@ -254,7 +254,7 @@ class Redirection extends Redirection_Plugin {
254
 
255
  function admin_screen_log() {
256
  include dirname( __FILE__ ).'/models/pager.php';
257
-
258
  if ( isset( $_POST['deleteall'] ) && check_admin_referer( 'redirection-process_logs' ) ) {
259
  if ( isset( $_GET['module'] ) )
260
  RE_Log::delete_all( array( 'module_id' => intval( $_GET['module'] ) ), new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log' ) );
@@ -262,12 +262,12 @@ class Redirection extends Redirection_Plugin {
262
  RE_Log::delete_all( array( 'group_id' => intval( $_GET['group'] ) ), new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log' ) );
263
  else
264
  RE_Log::delete_all( array(), new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log' ) );
265
-
266
  $this->render_message( __( 'Your logs have been deleted', 'redirection' ) );
267
  }
268
-
269
  $pager = new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log' );
270
-
271
  if ( isset( $_GET['module'] ) )
272
  $logs = RE_Log::get_by_module( $pager, intval( $_GET['module'] ) );
273
  else if (isset($_GET['group']))
@@ -276,14 +276,14 @@ class Redirection extends Redirection_Plugin {
276
  $logs = RE_Log::get_by_redirect( $pager, intval( $_GET['redirect'] ) );
277
  else
278
  $logs = RE_Log::get( $pager );
279
-
280
  $options = $this->get_options();
281
  $this->render_admin( 'log', array( 'logs' => $logs, 'pager' => $pager, 'lookup' => $options['lookup'] ) );
282
  }
283
-
284
  function admin_groups( $module ) {
285
  include dirname( __FILE__ ).'/models/pager.php';
286
-
287
  if ( isset( $_POST['add'] ) && check_admin_referer( 'redirection-add_group' ) ) {
288
  if ( Red_Group::create( stripslashes_deep( $_POST ) ) ) {
289
  $this->render_message( __( 'Your group was added successfully', 'redirection' ) );
@@ -292,7 +292,7 @@ class Redirection extends Redirection_Plugin {
292
  else
293
  $this->render_error( __( 'Please specify a group name', 'redirection' ) );
294
  }
295
-
296
  if ( $module == 0 )
297
  $module = Red_Module::get_first_id();
298
 
@@ -301,13 +301,13 @@ class Redirection extends Redirection_Plugin {
301
 
302
  $this->render_admin( 'group_list', array( 'groups' => $items, 'pager' => $pager, 'modules' => Red_Module::get_for_select(), 'module' => Red_Module::get( $module ) ) );
303
  }
304
-
305
  function admin_redirects( $group ) {
306
  include dirname( __FILE__ ).'/models/pager.php';
307
-
308
  if ( $group == 0 )
309
  $group = Red_Group::get_first_id();
310
-
311
  $pager = new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'position', 'ASC' );
312
  $items = Red_Item::get_by_group( $group, $pager );
313
 
@@ -317,16 +317,16 @@ class Redirection extends Redirection_Plugin {
317
  function setMatched( $match ) {
318
  $this->hasMatched = $match;
319
  }
320
-
321
  function hasMatched() {
322
  return $this->hasMatched;
323
  }
324
-
325
  function locales() {
326
  $locales = array();
327
  if ( file_exists( dirname( __FILE__ ).'/readme.txt' ) ) {
328
  $readme = file_get_contents( dirname( __FILE__ ).'/readme.txt' );
329
-
330
  $start = strpos( $readme, __( 'Redirection is available in' ) );
331
  $end = strpos( $readme, '==', $start );
332
  if ( $start !== false && $end !== false ) {
@@ -334,10 +334,10 @@ class Redirection extends Redirection_Plugin {
334
  $locales = $matches[1];
335
  }
336
  }
337
-
338
  sort( $locales );
339
  }
340
-
341
  return $locales;
342
  }
343
  }
3
  Plugin Name: Redirection
4
  Plugin URI: http://urbangiraffe.com/plugins/redirection/
5
  Description: Manage all your 301 redirects and monitor 404 errors
6
+ Version: 2.2.11
7
  Author: John Godley
8
  Author URI: http://urbangiraffe.com
9
  ============================================================================================================
37
 
38
  class Redirection extends Redirection_Plugin {
39
  var $hasMatched = false;
40
+
41
  function Redirection() {
42
  $this->register_plugin( 'redirection', __FILE__ );
43
+
44
  if ( is_admin() ) {
45
  $this->add_action( 'admin_menu' );
46
  $this->add_action( 'load-tools_page_redirection', 'redirection_head' );
47
  $this->add_action( 'init', 'inject' );
48
+
49
  $this->register_activation( __FILE__ );
50
  $this->register_plugin_settings( __FILE__ );
51
+
52
  // Ajax functions
53
  if ( defined( 'DOING_AJAX' ) ) {
54
  include_once dirname( __FILE__ ).'/ajax.php';
57
  }
58
  else {
59
  $this->update();
60
+
61
  // Create a WordPress exporter and let it handle the load
62
  $this->wp = new WordPress_Module();
63
  $this->wp->start();
64
+
65
  $this->error = new Error404_Module();
66
  $this->error->start();
67
  }
68
+
69
  $this->monitor = new Red_Monitor( $this->get_options() );
70
  }
71
+
72
  function update() {
73
  $version = get_option( 'redirection_version' );
74
 
78
  $db = new RE_Database();
79
  return $db->upgrade( $version, REDIRECTION_VERSION );
80
  }
81
+
82
  return true;
83
  }
84
+
85
  function activate() {
86
  if ( $this->update() === false ) {
87
  $db = new RE_Database();
89
  exit();
90
  }
91
  }
92
+
93
  function plugin_settings( $links ) {
94
  $settings_link = '<a href="tools.php?page='.basename( __FILE__ ).'">'.__( 'Settings', 'redirection' ).'</a>';
95
  array_unshift( $links, $settings_link );
96
  return $links;
97
  }
98
+
99
  function version() {
100
  $plugin_data = implode( '', file( __FILE__ ) );
101
+
102
  if ( preg_match( '|Version:(.*)|i', $plugin_data, $version ) )
103
  return trim( $version[1] );
104
  return '';
107
  function redirection_head() {
108
  wp_enqueue_script( 'redirection', plugin_dir_url( __FILE__ ).'js/redirection.js', array( 'jquery-form', 'jquery-ui-sortable' ), $this->version() );
109
  wp_enqueue_style( 'redirection', plugin_dir_url( __FILE__ ).'admin.css', $this->version() );
110
+
111
  wp_localize_script( 'redirection', 'Redirectioni10n', array(
112
  'please_wait' => __( 'Please wait...', 'redirection' ),
113
  'type' => 1,
146
 
147
  return $this->admin_redirects( isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0 );
148
  }
149
+
150
  function admin_screen_modules() {
151
  if ( isset( $_POST['create'] ) && check_admin_referer( 'redirection-module_add' ) ) {
152
  $data = stripslashes_deep( $_POST );
153
+
154
  if ( ( $module = Red_Module::create( $data ) ) ) {
155
  $moduleid = 0;
156
  if ( isset( $_POST['module'] ) )
157
  $moduleid = intval( $_POST['module'] );
158
+
159
  $this->render_message( __( 'Your module was successfully created', 'redirection' ) );
160
  Red_Module::flush( $moduleid );
161
  }
162
  else
163
  $this->render_error( __( 'Your module was not created - did you provide a name?', 'redirection' ) );
164
  }
165
+
166
  $options = $this->get_options();
167
  $this->render_admin( 'module_list', array( 'modules' => Red_Module::get_all(), 'module_types' => Red_Module::get_types(), 'token' => $options['token'] ) );
168
  }
169
+
170
  function get_options() {
171
  $options = get_option( 'redirection_options' );
172
  if ( $options === false )
173
  $options = array();
174
+
175
  $defaults = array (
176
  'lookup' => 'http://urbangiraffe.com/map/?from=redirection&amp;ip=',
177
  'support' => false,
183
  'monitor_post' => 0,
184
  'auto_target' => '',
185
  );
186
+
187
  foreach ( $defaults AS $key => $value ) {
188
  if ( !isset( $options[$key] ) )
189
  $options[$key] = $value;
190
  }
191
+
192
  if ( $options['lookup'] == 'http://geomaplookup.cinnamonthoughts.org/?ip=' || $options['lookup'] == 'http://geomaplookup.net/?ip=' )
193
  $options['lookup'] = 'http://urbangiraffe.com/map/?from=redirection&amp;ip=';
194
+
195
  return $options;
196
  }
197
+
198
  function inject() {
199
  $options = $this->get_options();
200
+
201
  if ( isset($_GET['token'] ) && isset( $_GET['page'] ) && isset( $_GET['sub'] ) && $_GET['token'] == $options['token'] && $_GET['page'] == 'redirection.php' && in_array( $_GET['sub'], array( 'rss', 'xml', 'csv', 'apache' ) ) ) {
202
  include dirname( __FILE__ ).'/models/file_io.php';
203
 
219
  $options['monitor_new_posts'] = isset( $_POST['monitor_new_posts'] ) ? true : false;
220
  $options['expire'] = intval( $_POST['expire'] );
221
  $options['token'] = stripslashes( $_POST['token'] );
222
+
223
  if ( trim( $options['token'] ) == '' )
224
  $options['token'] = md5( uniqid() );
225
+
226
  update_option( 'redirection_options', $options );
227
 
228
  $this->render_message( __( 'Your options were updated', 'redirection' ) );
232
 
233
  $db = new RE_Database;
234
  $db->remove( __FILE__ );
235
+
236
  $this->render_message( __( 'Redirection data has been deleted and the plugin disabled', 'redirection' ) );
237
  return;
238
  }
239
  elseif ( isset( $_POST['import'] ) && check_admin_referer( 'redirection-import' ) ) {
240
  include dirname( __FILE__ ).'/models/file_io.php';
241
+
242
  $importer = new Red_FileIO;
243
+
244
  $count = $importer->import( $_POST['group'], $_FILES['upload'] );
245
  if ( $count > 0 )
246
  $this->render_message( sprintf( _n( '%d redirection was successfully imported','%d redirections were successfully imported', $count, 'redirection' ), $count ) );
254
 
255
  function admin_screen_log() {
256
  include dirname( __FILE__ ).'/models/pager.php';
257
+
258
  if ( isset( $_POST['deleteall'] ) && check_admin_referer( 'redirection-process_logs' ) ) {
259
  if ( isset( $_GET['module'] ) )
260
  RE_Log::delete_all( array( 'module_id' => intval( $_GET['module'] ) ), new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log' ) );
262
  RE_Log::delete_all( array( 'group_id' => intval( $_GET['group'] ) ), new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log' ) );
263
  else
264
  RE_Log::delete_all( array(), new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log' ) );
265
+
266
  $this->render_message( __( 'Your logs have been deleted', 'redirection' ) );
267
  }
268
+
269
  $pager = new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'created', 'DESC', 'log' );
270
+
271
  if ( isset( $_GET['module'] ) )
272
  $logs = RE_Log::get_by_module( $pager, intval( $_GET['module'] ) );
273
  else if (isset($_GET['group']))
276
  $logs = RE_Log::get_by_redirect( $pager, intval( $_GET['redirect'] ) );
277
  else
278
  $logs = RE_Log::get( $pager );
279
+
280
  $options = $this->get_options();
281
  $this->render_admin( 'log', array( 'logs' => $logs, 'pager' => $pager, 'lookup' => $options['lookup'] ) );
282
  }
283
+
284
  function admin_groups( $module ) {
285
  include dirname( __FILE__ ).'/models/pager.php';
286
+
287
  if ( isset( $_POST['add'] ) && check_admin_referer( 'redirection-add_group' ) ) {
288
  if ( Red_Group::create( stripslashes_deep( $_POST ) ) ) {
289
  $this->render_message( __( 'Your group was added successfully', 'redirection' ) );
292
  else
293
  $this->render_error( __( 'Please specify a group name', 'redirection' ) );
294
  }
295
+
296
  if ( $module == 0 )
297
  $module = Red_Module::get_first_id();
298
 
301
 
302
  $this->render_admin( 'group_list', array( 'groups' => $items, 'pager' => $pager, 'modules' => Red_Module::get_for_select(), 'module' => Red_Module::get( $module ) ) );
303
  }
304
+
305
  function admin_redirects( $group ) {
306
  include dirname( __FILE__ ).'/models/pager.php';
307
+
308
  if ( $group == 0 )
309
  $group = Red_Group::get_first_id();
310
+
311
  $pager = new RE_Pager( $_GET, $_SERVER['REQUEST_URI'], 'position', 'ASC' );
312
  $items = Red_Item::get_by_group( $group, $pager );
313
 
317
  function setMatched( $match ) {
318
  $this->hasMatched = $match;
319
  }
320
+
321
  function hasMatched() {
322
  return $this->hasMatched;
323
  }
324
+
325
  function locales() {
326
  $locales = array();
327
  if ( file_exists( dirname( __FILE__ ).'/readme.txt' ) ) {
328
  $readme = file_get_contents( dirname( __FILE__ ).'/readme.txt' );
329
+
330
  $start = strpos( $readme, __( 'Redirection is available in' ) );
331
  $end = strpos( $readme, '==', $start );
332
  if ( $start !== false && $end !== false ) {
334
  $locales = $matches[1];
335
  }
336
  }
337
+
338
  sort( $locales );
339
  }
340
+
341
  return $locales;
342
  }
343
  }
view/admin/add.php CHANGED
@@ -18,12 +18,12 @@
18
  <select name="match">
19
  <?php echo $this->select (Red_Match::all ()); ?>
20
  </select>
21
-
22
  <strong><?php _e ('Action', 'redirection'); ?>:</strong>
23
  <select name="red_action" onchange="return change_add_redirect (this)">
24
  <?php echo $this->select (Red_Item::actions (), 'url'); ?>
25
  </select>
26
-
27
  <label><?php _e ('Regular expression', 'redirection'); ?>: <input id="regex" type="checkbox" name="regex"/></label>
28
  </td>
29
  </tr>
@@ -44,10 +44,10 @@
44
  <?php if (isset($group)) : ?>
45
  <input type="hidden" name="group" value="<?php echo esc_attr( $group ) ?>"/>
46
  <?php endif; ?>
47
-
48
  <input type="hidden" name="action" value="red_redirect_add"/>
49
  <input type="hidden" name="_ajax_nonce" value="<?php echo wp_create_nonce( 'redirection-redirect_add' ); ?>"/>
50
-
51
  <div id="error"></div>
52
  </td>
53
  </tr>
18
  <select name="match">
19
  <?php echo $this->select (Red_Match::all ()); ?>
20
  </select>
21
+
22
  <strong><?php _e ('Action', 'redirection'); ?>:</strong>
23
  <select name="red_action" onchange="return change_add_redirect (this)">
24
  <?php echo $this->select (Red_Item::actions (), 'url'); ?>
25
  </select>
26
+
27
  <label><?php _e ('Regular expression', 'redirection'); ?>: <input id="regex" type="checkbox" name="regex"/></label>
28
  </td>
29
  </tr>
44
  <?php if (isset($group)) : ?>
45
  <input type="hidden" name="group" value="<?php echo esc_attr( $group ) ?>"/>
46
  <?php endif; ?>
47
+
48
  <input type="hidden" name="action" value="red_redirect_add"/>
49
  <input type="hidden" name="_ajax_nonce" value="<?php echo wp_create_nonce( 'redirection-redirect_add' ); ?>"/>
50
+
51
  <div id="error"></div>
52
  </td>
53
  </tr>
view/admin/annoy.php CHANGED
@@ -4,9 +4,9 @@
4
  $sub = isset ($_GET['sub']) ? $_GET['sub'] : '';
5
  $url = explode ('&', $_SERVER['REQUEST_URI']);
6
  $url = $url[0];
7
-
8
  if (!$options['support']) :?>
9
  <div style="text-align: center; width: 80px; height: 50px; float: right; margin: 5px 15px 1px 0; padding: 4px 3px 0px 3px;-moz-border-radius: 5px; -webkit-border-radius: 5px;" id="support-annoy">
10
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=support"><img src="<?php echo $this->url () ?>/images/donate.gif" alt="support" /></a>
11
  </div>
12
- <?php endif; ?>
4
  $sub = isset ($_GET['sub']) ? $_GET['sub'] : '';
5
  $url = explode ('&', $_SERVER['REQUEST_URI']);
6
  $url = $url[0];
7
+
8
  if (!$options['support']) :?>
9
  <div style="text-align: center; width: 80px; height: 50px; float: right; margin: 5px 15px 1px 0; padding: 4px 3px 0px 3px;-moz-border-radius: 5px; -webkit-border-radius: 5px;" id="support-annoy">
10
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=support"><img src="<?php echo $this->url () ?>/images/donate.gif" alt="support" /></a>
11
  </div>
12
+ <?php endif; ?>
view/admin/group_edit.php CHANGED
@@ -20,7 +20,7 @@
20
  <input class="button-primary" type="submit" name="save" value="<?php _e ('Save', 'redirection'); ?>"/>
21
  <input class="button-secondary" type="submit" name="cancel" value="<?php _e ('Cancel', 'redirection'); ?>"/>
22
  <img class="loader" src="<?php echo $this->url(); ?>/images/progress.gif" alt="loading" width="50" height="16" style="display: none"/>
23
-
24
  <input type="hidden" name="action" value="red_group_save"/>
25
  <input type="hidden" name="id" value="<?php echo $group->id; ?>"/>
26
  <input type="hidden" name="_ajax_nonce" value="<?php echo wp_create_nonce ('redirection-group_save_'.$group->id); ?>"/>
20
  <input class="button-primary" type="submit" name="save" value="<?php _e ('Save', 'redirection'); ?>"/>
21
  <input class="button-secondary" type="submit" name="cancel" value="<?php _e ('Cancel', 'redirection'); ?>"/>
22
  <img class="loader" src="<?php echo $this->url(); ?>/images/progress.gif" alt="loading" width="50" height="16" style="display: none"/>
23
+
24
  <input type="hidden" name="action" value="red_group_save"/>
25
  <input type="hidden" name="id" value="<?php echo $group->id; ?>"/>
26
  <input type="hidden" name="_ajax_nonce" value="<?php echo wp_create_nonce ('redirection-group_save_'.$group->id); ?>"/>
view/admin/group_item.php CHANGED
@@ -16,9 +16,9 @@
16
  <a href="<?php echo $this->base (); ?>?page=redirection.php&amp;sub=redirects&amp;id=<?php echo $group->id ?>">
17
  <?php echo esc_html( $group->name ); ?>
18
  </a>
19
-
20
  <?php echo $group->items () ?>
21
-
22
  <?php if ($group->status == 'disabled') : ?>
23
  &mdash; <?php _e ('disabled', 'redirection'); ?>
24
  <?php endif; ?>
16
  <a href="<?php echo $this->base (); ?>?page=redirection.php&amp;sub=redirects&amp;id=<?php echo $group->id ?>">
17
  <?php echo esc_html( $group->name ); ?>
18
  </a>
19
+
20
  <?php echo $group->items () ?>
21
+
22
  <?php if ($group->status == 'disabled') : ?>
23
  &mdash; <?php _e ('disabled', 'redirection'); ?>
24
  <?php endif; ?>
view/admin/group_list.php CHANGED
@@ -4,9 +4,9 @@
4
  <?php $this->render_admin( 'annoy' ); ?>
5
 
6
  <h2><?php _e( 'Groups for module', 'redirection' ); ?>: <a href="edit.php?page=redirection.php&amp;sub=modules"><?php echo esc_html( $module->name ) ?></a></h2>
7
-
8
  <?php $this->render_admin( 'submenu' ); ?>
9
-
10
  <div id="pager" class="pager">
11
  <form method="get" action="<?php echo $this->url( $pager->url ) ?>">
12
  <input type="hidden" name="page" value="<?php echo esc_attr( $_GET['page'] ) ?>"/>
@@ -17,8 +17,8 @@
17
  <select name="id">
18
  <?php echo $this->select( $modules, isset($_GET['id'] ) ? intval( $_GET['id'] ) : '' )?>
19
  </select>
20
-
21
- <?php _e( 'Search', 'redirection' ); ?>:
22
  <input type="text" class="search-input" name="search" value="<?php echo isset($_GET['search'] ) ? esc_attr( $_GET['search'] ) : '' ?>" style="font-size: 0.8em"/>
23
 
24
  <?php $pager->per_page( 'redirection' ); ?>
@@ -28,7 +28,7 @@
28
  </div>
29
 
30
  <br/>
31
-
32
  <?php if ( count( $groups ) > 0 ) : ?>
33
  <ul id="redirections_header" class="redirections_header">
34
  <li>
@@ -37,7 +37,7 @@
37
  <div class="item"><?php echo $pager->sortable( 'name', __( 'Name', 'redirection' ) ) ?></div>
38
  </li>
39
  </ul>
40
-
41
  <ul class="redirections" id="items">
42
  <?php if ( count( $groups ) > 0 ) : ?>
43
  <?php foreach ( $groups AS $group ) : ?>
@@ -45,7 +45,7 @@
45
  <?php endforeach; ?>
46
  <?php endif; ?>
47
  </ul>
48
-
49
  <?php if ( $pager->total_pages() > 0 ) : ?>
50
  <div class="pagertools">
51
  <?php foreach ( $pager->area_pages() AS $page ) : ?>
@@ -57,7 +57,7 @@
57
  <?php if ( count( $groups ) > 0 ) : ?>
58
  <div class="pager pagertools">
59
  <a class="select-all" href="#select-all"><?php _e( 'Select All', 'redirection' ); ?></a> |
60
- <a class="toggle-all" href="#toggle-all"><?php _e( 'Toggle', 'redirection' ); ?></a> |
61
  <a class="reset-all" href="#reset-all"><?php _e( 'Reset Hits', 'redirection' ); ?></a> |
62
  <a class="delete-all" href="#delete-all"><?php _e( 'Delete', 'redirection' ); ?></a> |
63
 
@@ -65,10 +65,10 @@
65
  <select name="move" id="move">
66
  <?php echo $this->select( $modules )?>
67
  </select>
68
-
69
  <input class="button-secondary move-all" type="submit" value="<?php _e( 'Go', 'redirection' ); ?>"/>
70
  </div>
71
-
72
  <div class="sort" id="sort">
73
  <img src="<?php echo $this->url() ?>/images/sort.png" width="16" height="16" alt="Sort"/>
74
 
@@ -76,11 +76,11 @@
76
  <a class="sort-save" id="toggle_sort_off" href="#" style="display: none"><?php _e( 'save order', 'redirection' ); ?></a>
77
  </div>
78
  <?php endif; ?>
79
-
80
  <div id="loading" style="display: none">
81
  <img src="<?php echo $this->url() ?>/images/loading.gif" alt="loading" width="32" height="32"/>
82
  </div>
83
-
84
  <?php global $is_IE; if ( !$is_IE ) : ?>
85
  <div style="clear: both"></div>
86
  <?php endif; ?>
@@ -92,7 +92,7 @@
92
 
93
  <div class="wrap">
94
  <h2><?php _e( 'Add Group', 'redirection' ); ?></h2>
95
-
96
  <form action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" method="post" accept-charset="utf-8">
97
  <?php wp_nonce_field( 'redirection-add_group' ); ?>
98
  <table class="form-table">
@@ -118,7 +118,7 @@ jQuery(document ).ready( function() {
118
  are_you_sure: '<?php echo esc_js( __( 'Are you sure?', 'redirection') ); ?>',
119
  page: <?php echo( $pager->current_page - 1 ) * $pager->per_page ?>
120
  } );
121
-
122
  redirection.edit_items( 'group' );
123
  } );
124
- </script>
4
  <?php $this->render_admin( 'annoy' ); ?>
5
 
6
  <h2><?php _e( 'Groups for module', 'redirection' ); ?>: <a href="edit.php?page=redirection.php&amp;sub=modules"><?php echo esc_html( $module->name ) ?></a></h2>
7
+
8
  <?php $this->render_admin( 'submenu' ); ?>
9
+
10
  <div id="pager" class="pager">
11
  <form method="get" action="<?php echo $this->url( $pager->url ) ?>">
12
  <input type="hidden" name="page" value="<?php echo esc_attr( $_GET['page'] ) ?>"/>
17
  <select name="id">
18
  <?php echo $this->select( $modules, isset($_GET['id'] ) ? intval( $_GET['id'] ) : '' )?>
19
  </select>
20
+
21
+ <?php _e( 'Search', 'redirection' ); ?>:
22
  <input type="text" class="search-input" name="search" value="<?php echo isset($_GET['search'] ) ? esc_attr( $_GET['search'] ) : '' ?>" style="font-size: 0.8em"/>
23
 
24
  <?php $pager->per_page( 'redirection' ); ?>
28
  </div>
29
 
30
  <br/>
31
+
32
  <?php if ( count( $groups ) > 0 ) : ?>
33
  <ul id="redirections_header" class="redirections_header">
34
  <li>
37
  <div class="item"><?php echo $pager->sortable( 'name', __( 'Name', 'redirection' ) ) ?></div>
38
  </li>
39
  </ul>
40
+
41
  <ul class="redirections" id="items">
42
  <?php if ( count( $groups ) > 0 ) : ?>
43
  <?php foreach ( $groups AS $group ) : ?>
45
  <?php endforeach; ?>
46
  <?php endif; ?>
47
  </ul>
48
+
49
  <?php if ( $pager->total_pages() > 0 ) : ?>
50
  <div class="pagertools">
51
  <?php foreach ( $pager->area_pages() AS $page ) : ?>
57
  <?php if ( count( $groups ) > 0 ) : ?>
58
  <div class="pager pagertools">
59
  <a class="select-all" href="#select-all"><?php _e( 'Select All', 'redirection' ); ?></a> |
60
+ <a class="toggle-all" href="#toggle-all"><?php _e( 'Toggle', 'redirection' ); ?></a> |
61
  <a class="reset-all" href="#reset-all"><?php _e( 'Reset Hits', 'redirection' ); ?></a> |
62
  <a class="delete-all" href="#delete-all"><?php _e( 'Delete', 'redirection' ); ?></a> |
63
 
65
  <select name="move" id="move">
66
  <?php echo $this->select( $modules )?>
67
  </select>
68
+
69
  <input class="button-secondary move-all" type="submit" value="<?php _e( 'Go', 'redirection' ); ?>"/>
70
  </div>
71
+
72
  <div class="sort" id="sort">
73
  <img src="<?php echo $this->url() ?>/images/sort.png" width="16" height="16" alt="Sort"/>
74
 
76
  <a class="sort-save" id="toggle_sort_off" href="#" style="display: none"><?php _e( 'save order', 'redirection' ); ?></a>
77
  </div>
78
  <?php endif; ?>
79
+
80
  <div id="loading" style="display: none">
81
  <img src="<?php echo $this->url() ?>/images/loading.gif" alt="loading" width="32" height="32"/>
82
  </div>
83
+
84
  <?php global $is_IE; if ( !$is_IE ) : ?>
85
  <div style="clear: both"></div>
86
  <?php endif; ?>
92
 
93
  <div class="wrap">
94
  <h2><?php _e( 'Add Group', 'redirection' ); ?></h2>
95
+
96
  <form action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" method="post" accept-charset="utf-8">
97
  <?php wp_nonce_field( 'redirection-add_group' ); ?>
98
  <table class="form-table">
118
  are_you_sure: '<?php echo esc_js( __( 'Are you sure?', 'redirection') ); ?>',
119
  page: <?php echo( $pager->current_page - 1 ) * $pager->per_page ?>
120
  } );
121
+
122
  redirection.edit_items( 'group' );
123
  } );
124
+ </script>
view/admin/item.php CHANGED
@@ -18,11 +18,11 @@
18
 
19
  <div class="item<?php if ($redirect->regex) echo ' item-regex' ?>">
20
  <input type="checkbox" class="check" name="checkall[]" value="<?php echo $redirect->id ?>"/>
21
-
22
  <a href="<?php echo $this->url ($redirect->url) ?>" class="redirection-edit"><?php if ($redirect->title) echo esc_html( $redirect->title ); else echo RE_Log::show_url ($redirect->url); ?></a>
23
-
24
  <?php if ($redirect->match_type != 'url') echo '('.esc_html( $redirect->match_name() ).')' ?>
25
-
26
  <?php if ($redirect->status == 'disabled') : ?>
27
  &mdash; <?php _e ('disabled', 'redirection'); ?>
28
  <?php endif; ?>
18
 
19
  <div class="item<?php if ($redirect->regex) echo ' item-regex' ?>">
20
  <input type="checkbox" class="check" name="checkall[]" value="<?php echo $redirect->id ?>"/>
21
+
22
  <a href="<?php echo $this->url ($redirect->url) ?>" class="redirection-edit"><?php if ($redirect->title) echo esc_html( $redirect->title ); else echo RE_Log::show_url ($redirect->url); ?></a>
23
+
24
  <?php if ($redirect->match_type != 'url') echo '('.esc_html( $redirect->match_name() ).')' ?>
25
+
26
  <?php if ($redirect->status == 'disabled') : ?>
27
  &mdash; <?php _e ('disabled', 'redirection'); ?>
28
  <?php endif; ?>
view/admin/item_edit.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php if ( !defined( 'ABSPATH' ) ) die( 'No direct access allowed' ); ?>
2
  <form method="post" accept-charset="utf-8" action="<?php echo admin_url( 'admin-ajax.php' ) ?>" style="padding: 3px">
3
  <h3><?php printf( __( '%s by matching %s', 'redirection' ), esc_html( $redirect->actions( $redirect->action_type ) ), esc_html( $redirect->match->name() ) ) ?></h3>
4
-
5
  <table class="edit">
6
  <tr>
7
  <th width="100"><?php _e ('Title', 'redirection'); ?>:</th>
1
  <?php if ( !defined( 'ABSPATH' ) ) die( 'No direct access allowed' ); ?>
2
  <form method="post" accept-charset="utf-8" action="<?php echo admin_url( 'admin-ajax.php' ) ?>" style="padding: 3px">
3
  <h3><?php printf( __( '%s by matching %s', 'redirection' ), esc_html( $redirect->actions( $redirect->action_type ) ), esc_html( $redirect->match->name() ) ) ?></h3>
4
+
5
  <table class="edit">
6
  <tr>
7
  <th width="100"><?php _e ('Title', 'redirection'); ?>:</th>
view/admin/item_list.php CHANGED
@@ -5,14 +5,14 @@
5
 
6
  <h2>
7
  <?php _e ('Redirections for group', 'redirection'); ?>:
8
-
9
  <?php if ( $group ) : ?>
10
  <a href="<?php echo $this->base (); ?>?page=redirection.php&amp;sub=groups&amp;id=<?php echo $group->module_id ?>">
11
  <?php echo esc_html( $group->name ); ?>
12
  </a>
13
  <?php endif; ?>
14
  </h2>
15
-
16
  <?php $this->render_admin( 'submenu' ); ?>
17
 
18
  <div id="pager" class="pager">
@@ -25,8 +25,8 @@
25
  <select name="id">
26
  <?php echo $this->select ($groups, isset( $_GET['id'] ) ? intval( $_GET['id'] ) : '')?>
27
  </select>
28
-
29
- <?php _e ('Search', 'redirection'); ?>:
30
  <input type="text" class="search-input" name="search" value="<?php echo isset($_GET['search']) ? esc_attr( $_GET['search'] ) : '' ?>" style="font-size: 0.8em"/>
31
 
32
  <?php $pager->per_page ('redirection'); ?>
@@ -35,7 +35,7 @@
35
  </form>
36
  </div>
37
  <br/>
38
-
39
  <ul id="redirections_header" class="redirections_header">
40
  <li>
41
  <div class="date" style="width: 8em"><?php echo $pager->sortable ('last_access', __ ('Last Access', 'redirection')) ?></div>
@@ -44,7 +44,7 @@
44
  <div class="item"><?php echo $pager->sortable ('url', __ ('URL', 'redirection')) ?> / <?php echo $pager->sortable ('position', __ ('Position', 'redirection')) ?></div>
45
  </li>
46
  </ul>
47
-
48
  <ul class="redirections" id="items">
49
  <?php if (is_array ($items) && count ($items) > 0) : ?>
50
  <?php foreach ($items AS $redirect) : ?>
@@ -54,7 +54,7 @@
54
  <?php endforeach; ?>
55
  <?php endif; ?>
56
  </ul>
57
-
58
  <?php if ($pager->total_pages () > 0) : ?>
59
  <div class="pagertools">
60
  <?php foreach ($pager->area_pages () AS $page) : ?>
@@ -62,10 +62,10 @@
62
  <?php endforeach; ?>
63
  </div>
64
  <?php endif;?>
65
-
66
  <div class="pager pagertools">
67
  <a class="select-all" href="#select-all"><?php _e ('Select All', 'redirection'); ?></a> |
68
- <a class="toggle-all" href="#toggle-all"><?php _e ('Toggle', 'redirection'); ?></a> |
69
  <a class="reset-all" href="#reset-all"><?php _e ('Reset Hits', 'redirection'); ?></a> |
70
  <a class="delete-all" href="#delete-all"><?php _e ('Delete', 'redirection'); ?></a> |
71
 
@@ -73,10 +73,10 @@
73
  <select name="move" id="move">
74
  <?php echo $this->select( $groups )?>
75
  </select>
76
-
77
  <input class="button-secondary move-all" type="submit" value="<?php _e( 'Go', 'redirection'); ?>"/>
78
  </div>
79
-
80
  <div class="sort" id="sort">
81
  <img src="<?php echo $this->url () ?>/images/sort.png" width="16" height="16" alt="Sort"/>
82
 
@@ -87,13 +87,13 @@
87
  <?php if (!is_array ($items) || count ($items) == 0) : ?>
88
  <p id="none"><?php _e ('You have no redirections.', 'redirection') ?></p>
89
  <?php endif; ?>
90
-
91
  <div id="loading" style="display: none">
92
  <img src="<?php echo $this->url () ?>/images/loading.gif" alt="loading" width="32" height="32"/>
93
  </div>
94
-
95
  <img src="<?php echo $this->url () ?>/images/progress.gif" width="50" height="16" alt="Progress" style="display: none"/>
96
-
97
  <?php global $is_IE; if (!$is_IE) : ?>
98
  <div style="clear: both"></div>
99
  <?php endif; ?>
@@ -110,10 +110,10 @@ jQuery(document).ready( function() {
110
  ajaxurl: '<?php echo esc_js( admin_url( 'admin-ajax.php' ) ) ?>',
111
  nonce: '<?php echo esc_js( wp_create_nonce( 'redirection-items' ) ); ?>',
112
  none_select: '<?php echo esc_js( __( 'No items have been selected', 'redirection' ) ); ?>',
113
- are_you_sure: '<?php echo esc_js( __( 'Are you sure?', 'redirection') ); ?>',
114
  page: <?php echo ($pager->current_page - 1) * $pager->per_page ?>
115
  });
116
-
117
  redirection.edit_items( 'redirect' );
118
  });
119
- </script>
5
 
6
  <h2>
7
  <?php _e ('Redirections for group', 'redirection'); ?>:
8
+
9
  <?php if ( $group ) : ?>
10
  <a href="<?php echo $this->base (); ?>?page=redirection.php&amp;sub=groups&amp;id=<?php echo $group->module_id ?>">
11
  <?php echo esc_html( $group->name ); ?>
12
  </a>
13
  <?php endif; ?>
14
  </h2>
15
+
16
  <?php $this->render_admin( 'submenu' ); ?>
17
 
18
  <div id="pager" class="pager">
25
  <select name="id">
26
  <?php echo $this->select ($groups, isset( $_GET['id'] ) ? intval( $_GET['id'] ) : '')?>
27
  </select>
28
+
29
+ <?php _e ('Search', 'redirection'); ?>:
30
  <input type="text" class="search-input" name="search" value="<?php echo isset($_GET['search']) ? esc_attr( $_GET['search'] ) : '' ?>" style="font-size: 0.8em"/>
31
 
32
  <?php $pager->per_page ('redirection'); ?>
35
  </form>
36
  </div>
37
  <br/>
38
+
39
  <ul id="redirections_header" class="redirections_header">
40
  <li>
41
  <div class="date" style="width: 8em"><?php echo $pager->sortable ('last_access', __ ('Last Access', 'redirection')) ?></div>
44
  <div class="item"><?php echo $pager->sortable ('url', __ ('URL', 'redirection')) ?> / <?php echo $pager->sortable ('position', __ ('Position', 'redirection')) ?></div>
45
  </li>
46
  </ul>
47
+
48
  <ul class="redirections" id="items">
49
  <?php if (is_array ($items) && count ($items) > 0) : ?>
50
  <?php foreach ($items AS $redirect) : ?>
54
  <?php endforeach; ?>
55
  <?php endif; ?>
56
  </ul>
57
+
58
  <?php if ($pager->total_pages () > 0) : ?>
59
  <div class="pagertools">
60
  <?php foreach ($pager->area_pages () AS $page) : ?>
62
  <?php endforeach; ?>
63
  </div>
64
  <?php endif;?>
65
+
66
  <div class="pager pagertools">
67
  <a class="select-all" href="#select-all"><?php _e ('Select All', 'redirection'); ?></a> |
68
+ <a class="toggle-all" href="#toggle-all"><?php _e ('Toggle', 'redirection'); ?></a> |
69
  <a class="reset-all" href="#reset-all"><?php _e ('Reset Hits', 'redirection'); ?></a> |
70
  <a class="delete-all" href="#delete-all"><?php _e ('Delete', 'redirection'); ?></a> |
71
 
73
  <select name="move" id="move">
74
  <?php echo $this->select( $groups )?>
75
  </select>
76
+
77
  <input class="button-secondary move-all" type="submit" value="<?php _e( 'Go', 'redirection'); ?>"/>
78
  </div>
79
+
80
  <div class="sort" id="sort">
81
  <img src="<?php echo $this->url () ?>/images/sort.png" width="16" height="16" alt="Sort"/>
82
 
87
  <?php if (!is_array ($items) || count ($items) == 0) : ?>
88
  <p id="none"><?php _e ('You have no redirections.', 'redirection') ?></p>
89
  <?php endif; ?>
90
+
91
  <div id="loading" style="display: none">
92
  <img src="<?php echo $this->url () ?>/images/loading.gif" alt="loading" width="32" height="32"/>
93
  </div>
94
+
95
  <img src="<?php echo $this->url () ?>/images/progress.gif" width="50" height="16" alt="Progress" style="display: none"/>
96
+
97
  <?php global $is_IE; if (!$is_IE) : ?>
98
  <div style="clear: both"></div>
99
  <?php endif; ?>
110
  ajaxurl: '<?php echo esc_js( admin_url( 'admin-ajax.php' ) ) ?>',
111
  nonce: '<?php echo esc_js( wp_create_nonce( 'redirection-items' ) ); ?>',
112
  none_select: '<?php echo esc_js( __( 'No items have been selected', 'redirection' ) ); ?>',
113
+ are_you_sure: '<?php echo esc_js( __( 'Are you sure?', 'redirection') ); ?>',
114
  page: <?php echo ($pager->current_page - 1) * $pager->per_page ?>
115
  });
116
+
117
  redirection.edit_items( 'redirect' );
118
  });
119
+ </script>
view/admin/log.php CHANGED
@@ -22,14 +22,14 @@
22
 
23
  <input type="submit" class="button" value="<?php _e ('Search', 'redirection'); ?>"/>
24
  </p>
25
-
26
  <div id="pager" class="tablenav">
27
  <div class="alignleft actions">
28
  <select name="action2" id="action2_select">
29
  <option value="-1" selected="selected"><?php _e('Bulk Actions'); ?></option>
30
  <option value="delete"><?php _e('Delete'); ?></option>
31
  </select>
32
-
33
  <input type="submit" value="<?php _e('Apply'); ?>" name="doaction2" id="actionator" class="button-secondary action" />
34
 
35
  <?php $pager->per_page ('redirection'); ?>
@@ -50,7 +50,7 @@
50
 
51
  <br class="clear" />
52
  </div>
53
-
54
  <div class="tablenav-pages">
55
  <?php echo $pager->page_links (); ?>
56
  </div>
@@ -71,7 +71,7 @@
71
  <th style="width:16px"></th>
72
  </tr>
73
  </thead>
74
-
75
  <tbody>
76
  <?php foreach ($logs AS $pos => $log) : ?>
77
  <tr id="item_<?php echo $log->id ?>" <?php if ($pos % 2 == 1) echo ' class="alt"' ?>>
@@ -84,7 +84,7 @@
84
  <?php else : ?>
85
  <p><?php _e ('There are no logs to display!', 'redirection'); ?></p>
86
  <?php endif; ?>
87
-
88
  <div style="clear: both"></div>
89
  </div>
90
 
@@ -93,10 +93,10 @@
93
  <div class="wrap">
94
  <h2><?php _e ('Process Current Logs', 'redirection'); ?></h2>
95
  <p><?php _e ('These actions will affect all currently available logs (i.e. your search phrase will restrict the log items).', 'redirection'); ?></p>
96
-
97
  <form action="<?php echo $this->url ($_SERVER['REQUEST_URI']) ?>" method="post" accept-charset="utf-8">
98
  <?php wp_nonce_field ('redirection-process_logs'); ?>
99
-
100
  <input class="button-primary" type="submit" name="deleteall" value="<?php _e ('Delete Logs', 'redirection'); ?>"/>
101
  </form>
102
  </div>
22
 
23
  <input type="submit" class="button" value="<?php _e ('Search', 'redirection'); ?>"/>
24
  </p>
25
+
26
  <div id="pager" class="tablenav">
27
  <div class="alignleft actions">
28
  <select name="action2" id="action2_select">
29
  <option value="-1" selected="selected"><?php _e('Bulk Actions'); ?></option>
30
  <option value="delete"><?php _e('Delete'); ?></option>
31
  </select>
32
+
33
  <input type="submit" value="<?php _e('Apply'); ?>" name="doaction2" id="actionator" class="button-secondary action" />
34
 
35
  <?php $pager->per_page ('redirection'); ?>
50
 
51
  <br class="clear" />
52
  </div>
53
+
54
  <div class="tablenav-pages">
55
  <?php echo $pager->page_links (); ?>
56
  </div>
71
  <th style="width:16px"></th>
72
  </tr>
73
  </thead>
74
+
75
  <tbody>
76
  <?php foreach ($logs AS $pos => $log) : ?>
77
  <tr id="item_<?php echo $log->id ?>" <?php if ($pos % 2 == 1) echo ' class="alt"' ?>>
84
  <?php else : ?>
85
  <p><?php _e ('There are no logs to display!', 'redirection'); ?></p>
86
  <?php endif; ?>
87
+
88
  <div style="clear: both"></div>
89
  </div>
90
 
93
  <div class="wrap">
94
  <h2><?php _e ('Process Current Logs', 'redirection'); ?></h2>
95
  <p><?php _e ('These actions will affect all currently available logs (i.e. your search phrase will restrict the log items).', 'redirection'); ?></p>
96
+
97
  <form action="<?php echo $this->url ($_SERVER['REQUEST_URI']) ?>" method="post" accept-charset="utf-8">
98
  <?php wp_nonce_field ('redirection-process_logs'); ?>
99
+
100
  <input class="button-primary" type="submit" name="deleteall" value="<?php _e ('Delete Logs', 'redirection'); ?>"/>
101
  </form>
102
  </div>
view/admin/log_item_details.php CHANGED
@@ -18,7 +18,7 @@
18
  <?php endif; ?>
19
  <tr>
20
  <th><?php _e ('User Agent', 'redirection'); ?>:</th>
21
- <td><input style="width: 95%" type="text" readonly="readonly" name="other" value="<?php echo esc_html ($log->agent) ?>"/></td>
22
  </tr>
23
  <tr>
24
  <td></td>
18
  <?php endif; ?>
19
  <tr>
20
  <th><?php _e ('User Agent', 'redirection'); ?>:</th>
21
+ <td><input style="width: 95%" type="text" readonly="readonly" name="other" value="<?php echo esc_attr ($log->agent) ?>"/></td>
22
  </tr>
23
  <tr>
24
  <td></td>
view/admin/module_edit.php CHANGED
@@ -20,14 +20,14 @@
20
  </tr>
21
 
22
  <?php $module->config(); ?>
23
-
24
  <tr>
25
  <th></th>
26
  <td>
27
  <input class="button-primary" type="submit" name="save" value="<?php _e( 'Save', 'redirection' ); ?>"/>
28
  <input class="button-secondary" type="submit" name="cancel" value="<?php _e( 'Cancel', 'redirection' ); ?>"/>
29
  <img class="loader" src="<?php echo $this->url(); ?>/images/progress.gif" alt="loading" width="50" height="16" style="display: none"/>
30
-
31
  <input type="hidden" name="action" value="red_module_save"/>
32
  <input type="hidden" name="id" value="<?php echo $module->id; ?>"/>
33
  <input type="hidden" name="_ajax_nonce" value="<?php echo wp_create_nonce( 'redirection-module_save_'.$module->id ); ?>"/>
20
  </tr>
21
 
22
  <?php $module->config(); ?>
23
+
24
  <tr>
25
  <th></th>
26
  <td>
27
  <input class="button-primary" type="submit" name="save" value="<?php _e( 'Save', 'redirection' ); ?>"/>
28
  <input class="button-secondary" type="submit" name="cancel" value="<?php _e( 'Cancel', 'redirection' ); ?>"/>
29
  <img class="loader" src="<?php echo $this->url(); ?>/images/progress.gif" alt="loading" width="50" height="16" style="display: none"/>
30
+
31
  <input type="hidden" name="action" value="red_module_save"/>
32
  <input type="hidden" name="id" value="<?php echo $module->id; ?>"/>
33
  <input type="hidden" name="_ajax_nonce" value="<?php echo wp_create_nonce( 'redirection-module_save_'.$module->id ); ?>"/>
view/admin/module_item.php CHANGED
@@ -15,13 +15,13 @@
15
  <h4>
16
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=groups&amp;id=<?php echo $module->id ?>"><?php echo esc_html( $module->name ); ?></a>
17
  </h4>
18
-
19
  <?php $module->options(); ?>
20
-
21
  <?php if ( $module->is_valid() ) : ?>
22
  <div class="toolbar">
23
  <strong><?php _e( 'View as', 'redirection' ); ?>:</strong>
24
-
25
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=csv&amp;module=<?php echo $module->id ?>&amp;token=<?php echo $token ?>"><?php _e( 'CSV', 'redirection' ); ?></a>
26
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=xml&amp;module=<?php echo $module->id ?>&amp;token=<?php echo $token ?>"><?php _e( 'XML', 'redirection' ); ?></a>
27
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=apache&amp;module=<?php echo $module->id ?>&amp;token=<?php echo $token ?>"><?php _e( 'Apache', 'redirection' ); ?></a>
@@ -44,7 +44,7 @@
44
  |
45
  <a class="reset" href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=red_module_reset&amp;id=<?php echo $module->id; ?>&amp;_ajax_nonce=<?php echo wp_create_nonce( 'redirection-module_'.$module->id ); ?>"><?php _e( 'reset', 'redirection' ); ?></a>
46
  </div>
47
-
48
  <img class="loader" src="<?php echo $this->url(); ?>/images/progress.gif" alt="loading" width="50" height="16" style="display: none"/>
49
  </td>
50
 
15
  <h4>
16
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=groups&amp;id=<?php echo $module->id ?>"><?php echo esc_html( $module->name ); ?></a>
17
  </h4>
18
+
19
  <?php $module->options(); ?>
20
+
21
  <?php if ( $module->is_valid() ) : ?>
22
  <div class="toolbar">
23
  <strong><?php _e( 'View as', 'redirection' ); ?>:</strong>
24
+
25
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=csv&amp;module=<?php echo $module->id ?>&amp;token=<?php echo $token ?>"><?php _e( 'CSV', 'redirection' ); ?></a>
26
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=xml&amp;module=<?php echo $module->id ?>&amp;token=<?php echo $token ?>"><?php _e( 'XML', 'redirection' ); ?></a>
27
  <a href="<?php echo $this->base(); ?>?page=redirection.php&amp;sub=apache&amp;module=<?php echo $module->id ?>&amp;token=<?php echo $token ?>"><?php _e( 'Apache', 'redirection' ); ?></a>
44
  |
45
  <a class="reset" href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=red_module_reset&amp;id=<?php echo $module->id; ?>&amp;_ajax_nonce=<?php echo wp_create_nonce( 'redirection-module_'.$module->id ); ?>"><?php _e( 'reset', 'redirection' ); ?></a>
46
  </div>
47
+
48
  <img class="loader" src="<?php echo $this->url(); ?>/images/progress.gif" alt="loading" width="50" height="16" style="display: none"/>
49
  </td>
50
 
view/admin/module_list.php CHANGED
@@ -17,7 +17,7 @@
17
  <th><?php _e( 'Hits', 'redirection' ); ?></th>
18
  <th><?php _e( 'Operations', 'redirection' ); ?></th>
19
  </tr>
20
-
21
  <?php foreach ( $modules AS $pos => $module ): ?>
22
  <tr id="item_<?php echo $module->id ?>">
23
  <?php $this->render_admin( 'module_item', array( 'module' => $module, 'token' => $token ) ); ?>
@@ -36,7 +36,7 @@
36
 
37
  <form action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" method="post" accept-charset="utf-8">
38
  <?php wp_nonce_field( 'redirection-module_add' ); ?>
39
-
40
  <table class="edit" summary="modules">
41
  <tr>
42
  <th width="100"><?php _e( 'Name', 'redirection' ); ?>:</th>
17
  <th><?php _e( 'Hits', 'redirection' ); ?></th>
18
  <th><?php _e( 'Operations', 'redirection' ); ?></th>
19
  </tr>
20
+
21
  <?php foreach ( $modules AS $pos => $module ): ?>
22
  <tr id="item_<?php echo $module->id ?>">
23
  <?php $this->render_admin( 'module_item', array( 'module' => $module, 'token' => $token ) ); ?>
36
 
37
  <form action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" method="post" accept-charset="utf-8">
38
  <?php wp_nonce_field( 'redirection-module_add' ); ?>
39
+
40
  <table class="edit" summary="modules">
41
  <tr>
42
  <th width="100"><?php _e( 'Name', 'redirection' ); ?>:</th>
view/admin/options.php CHANGED
@@ -5,11 +5,11 @@
5
 
6
  <h2><?php _e( 'Options', 'redirection' ) ?></h2>
7
  <?php $this->render_admin( 'submenu' ); ?>
8
-
9
  <form method="post" action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" style="clear: both">
10
-
11
  <?php wp_nonce_field( 'redirection-update_options' ); ?>
12
-
13
  <table cellpadding="3" width="100%" class="form-table">
14
  <tr>
15
  <th valign="top" align="right"><?php _e( 'Auto-generate URL', 'redirection' ) ?>:</th>
@@ -29,16 +29,16 @@
29
  <tr>
30
  <th align="right"><?php _e( 'Plugin Support', 'redirection' ); ?>:</th>
31
  <td>
32
- <input type="checkbox" name="support" <?php echo $this->checked( $options['support'] ) ?> id="support"/>
33
  <label for="support"><span class="sub"><?php _e( 'I\'m a nice person and I have helped support the author of this plugin', 'redirection' ); ?></span></label>
34
  </td>
35
  </tr>
36
  <tr>
37
  <th align="right"><?php _e( 'Logging', 'redirection' ); ?>:</th>
38
  <td>
39
- <input type="checkbox" name="log_redirections" <?php echo $this->checked( $options['log_redirections'] ) ?> id="log_redirections"/>
40
  <label for="log_redirections"><span class="sub"><?php _e( 'log redirected requests', 'redirection' ); ?></span></label><br />
41
- <input type="checkbox" name="log_404s" <?php echo $this->checked( $options['log_404s'] ) ?> id="log_404s"/>
42
  <label for="log_404s"><span class="sub"><?php _e( 'log 404 Not Found requests', 'redirection' ); ?></span></label><br />
43
  <?php _e( 'Uncheck one or both of these to turn off logging and reduce database load if your redirected URLs are hit very frequently, and/or your site is very busy and pages are often not found.', 'redirection' ); ?>
44
  </td>
@@ -58,7 +58,7 @@
58
  </td>
59
  </tr>
60
  </table>
61
-
62
  <h3><?php _e( 'URL Monitoring', 'redirection' ); ?></h3>
63
  <p><?php _e( 'You can have Redirection detect changes in URLs and have an automatic redirection created in a specific group.', 'redirection' ); ?></p>
64
 
@@ -93,20 +93,20 @@
93
 
94
  <div class="wrap">
95
  <h2><?php _e( 'Import', 'redirection' ); ?></h2>
96
-
97
  <p><?php _e( 'Here you can import redirections from an existing .htaccess file, a CSV file, or a Redirection XML.', 'redirection' ); ?></p>
98
-
99
  <form action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" method="post" accept-charset="utf-8" enctype="multipart/form-data">
100
  <?php wp_nonce_field( 'redirection-import' ); ?>
101
-
102
  <input type="file" name="upload" value=""/>
103
-
104
  <?php _e( 'Import into', 'redirection' ); ?>: <select name="group">
105
  <?php echo $this->select( $groups );?>
106
  </select>
107
  <input class="button-primary" type="submit" name="import" value="<?php _e( 'Upload', 'redirection' ); ?>"/>
108
  </form>
109
-
110
  <p><?php _e( 'Note that the group is ignored when uploading an XML file.', 'redirection' ); ?></p>
111
  </div>
112
 
@@ -116,7 +116,7 @@
116
 
117
  <form action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" method="post" accept-charset="utf-8">
118
  <?php wp_nonce_field( 'redirection-delete_plugin' ); ?>
119
-
120
  <input class="button-primary" type="submit" name="delete" value="<?php _e( 'Delete', 'redirection' ) ?>"/>
121
  </form>
122
- </div>
5
 
6
  <h2><?php _e( 'Options', 'redirection' ) ?></h2>
7
  <?php $this->render_admin( 'submenu' ); ?>
8
+
9
  <form method="post" action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" style="clear: both">
10
+
11
  <?php wp_nonce_field( 'redirection-update_options' ); ?>
12
+
13
  <table cellpadding="3" width="100%" class="form-table">
14
  <tr>
15
  <th valign="top" align="right"><?php _e( 'Auto-generate URL', 'redirection' ) ?>:</th>
29
  <tr>
30
  <th align="right"><?php _e( 'Plugin Support', 'redirection' ); ?>:</th>
31
  <td>
32
+ <input type="checkbox" name="support" <?php echo $this->checked( $options['support'] ) ?> id="support"/>
33
  <label for="support"><span class="sub"><?php _e( 'I\'m a nice person and I have helped support the author of this plugin', 'redirection' ); ?></span></label>
34
  </td>
35
  </tr>
36
  <tr>
37
  <th align="right"><?php _e( 'Logging', 'redirection' ); ?>:</th>
38
  <td>
39
+ <input type="checkbox" name="log_redirections" <?php echo $this->checked( $options['log_redirections'] ) ?> id="log_redirections"/>
40
  <label for="log_redirections"><span class="sub"><?php _e( 'log redirected requests', 'redirection' ); ?></span></label><br />
41
+ <input type="checkbox" name="log_404s" <?php echo $this->checked( $options['log_404s'] ) ?> id="log_404s"/>
42
  <label for="log_404s"><span class="sub"><?php _e( 'log 404 Not Found requests', 'redirection' ); ?></span></label><br />
43
  <?php _e( 'Uncheck one or both of these to turn off logging and reduce database load if your redirected URLs are hit very frequently, and/or your site is very busy and pages are often not found.', 'redirection' ); ?>
44
  </td>
58
  </td>
59
  </tr>
60
  </table>
61
+
62
  <h3><?php _e( 'URL Monitoring', 'redirection' ); ?></h3>
63
  <p><?php _e( 'You can have Redirection detect changes in URLs and have an automatic redirection created in a specific group.', 'redirection' ); ?></p>
64
 
93
 
94
  <div class="wrap">
95
  <h2><?php _e( 'Import', 'redirection' ); ?></h2>
96
+
97
  <p><?php _e( 'Here you can import redirections from an existing .htaccess file, a CSV file, or a Redirection XML.', 'redirection' ); ?></p>
98
+
99
  <form action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" method="post" accept-charset="utf-8" enctype="multipart/form-data">
100
  <?php wp_nonce_field( 'redirection-import' ); ?>
101
+
102
  <input type="file" name="upload" value=""/>
103
+
104
  <?php _e( 'Import into', 'redirection' ); ?>: <select name="group">
105
  <?php echo $this->select( $groups );?>
106
  </select>
107
  <input class="button-primary" type="submit" name="import" value="<?php _e( 'Upload', 'redirection' ); ?>"/>
108
  </form>
109
+
110
  <p><?php _e( 'Note that the group is ignored when uploading an XML file.', 'redirection' ); ?></p>
111
  </div>
112
 
116
 
117
  <form action="<?php echo $this->url( $_SERVER['REQUEST_URI'] ) ?>" method="post" accept-charset="utf-8">
118
  <?php wp_nonce_field( 'redirection-delete_plugin' ); ?>
119
+
120
  <input class="button-primary" type="submit" name="delete" value="<?php _e( 'Delete', 'redirection' ) ?>"/>
121
  </form>
122
+ </div>
view/admin/support.php CHANGED
@@ -1,17 +1,17 @@
1
  <?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?>
2
  <div class="wrap supporter">
3
  <?php screen_icon(); ?>
4
-
5
  <h2><?php _e ('Redirection Support', 'redirection'); ?></h2>
6
  <?php $this->render_admin( 'submenu' ); ?>
7
-
8
  <p style="clear: both">
9
  <?php _e( 'Redirection is free to use - life is wonderful and lovely! However, it has required a great deal of time and effort to develop and if it has been useful you can help support this development by <strong>making a small donation</strong>.', 'redirection'); ?>
10
  <?php _e( 'This will act as an incentive for me to carry on developing, providing countless hours of support, and including new features and suggestions. You get some useful software and I get to carry on making it. Everybody wins.', 'redirection'); ?>
11
  </p>
12
-
13
  <p><?php _e( 'If you are using this plugin in a commercial setup, or feel that it\'s been particularly useful, then you may want to consider a <strong>commercial donation</strong>.', 'redirection' )?>
14
-
15
  <ul class="donations">
16
  <li>
17
  <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
@@ -32,7 +32,7 @@
32
  <input type="hidden" name="bn" value="PP-DonationsBF">
33
  <input type="image" style="border: none" src="<?php echo $this->url () ?>/images/donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"/>
34
  </form>
35
-
36
  <p><strong>$14</strong><br/><?php _e( 'Individual<br/>Donation', 'redirection' ); ?></p>
37
  </li>
38
  <li>
@@ -56,11 +56,11 @@
56
  <p><strong>$$$</strong><br/><?php _e( 'Commercial<br/>Donation', 'redirection' ); ?></p>
57
  </li>
58
  </ul>
59
-
60
  <h3 style="clear: both"><?php _e( 'Translations', 'redirection' )?></h3>
61
-
62
  <p><?php _e( 'If you\'re multi-lingual then you may want to consider donating a translation:', 'redirection' )?>
63
-
64
  <ul class="translators">
65
  <?php foreach( $this->locales() AS $language ) : ?>
66
  <li><?php echo esc_html( $language ); ?></li>
@@ -69,4 +69,4 @@
69
 
70
  <p style="clear: both"><br/><?php _e( 'All translators will have a link to their website placed on the plugin homepage at <a href="http://urbangiraffe.com/plugins/redirection/">UrbanGiraffe</a>, in addition to being an individual supporter.', 'redirection' )?></p>
71
  <p><?php _e( 'Full details of producing a translation can be found in this <a href="http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/">guide to translating WordPress plugins</a>.', 'redirection' )?>
72
- </div>
1
  <?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?>
2
  <div class="wrap supporter">
3
  <?php screen_icon(); ?>
4
+
5
  <h2><?php _e ('Redirection Support', 'redirection'); ?></h2>
6
  <?php $this->render_admin( 'submenu' ); ?>
7
+
8
  <p style="clear: both">
9
  <?php _e( 'Redirection is free to use - life is wonderful and lovely! However, it has required a great deal of time and effort to develop and if it has been useful you can help support this development by <strong>making a small donation</strong>.', 'redirection'); ?>
10
  <?php _e( 'This will act as an incentive for me to carry on developing, providing countless hours of support, and including new features and suggestions. You get some useful software and I get to carry on making it. Everybody wins.', 'redirection'); ?>
11
  </p>
12
+
13
  <p><?php _e( 'If you are using this plugin in a commercial setup, or feel that it\'s been particularly useful, then you may want to consider a <strong>commercial donation</strong>.', 'redirection' )?>
14
+
15
  <ul class="donations">
16
  <li>
17
  <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
32
  <input type="hidden" name="bn" value="PP-DonationsBF">
33
  <input type="image" style="border: none" src="<?php echo $this->url () ?>/images/donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"/>
34
  </form>
35
+
36
  <p><strong>$14</strong><br/><?php _e( 'Individual<br/>Donation', 'redirection' ); ?></p>
37
  </li>
38
  <li>
56
  <p><strong>$$$</strong><br/><?php _e( 'Commercial<br/>Donation', 'redirection' ); ?></p>
57
  </li>
58
  </ul>
59
+
60
  <h3 style="clear: both"><?php _e( 'Translations', 'redirection' )?></h3>
61
+
62
  <p><?php _e( 'If you\'re multi-lingual then you may want to consider donating a translation:', 'redirection' )?>
63
+
64
  <ul class="translators">
65
  <?php foreach( $this->locales() AS $language ) : ?>
66
  <li><?php echo esc_html( $language ); ?></li>
69
 
70
  <p style="clear: both"><br/><?php _e( 'All translators will have a link to their website placed on the plugin homepage at <a href="http://urbangiraffe.com/plugins/redirection/">UrbanGiraffe</a>, in addition to being an individual supporter.', 'redirection' )?></p>
71
  <p><?php _e( 'Full details of producing a translation can be found in this <a href="http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/">guide to translating WordPress plugins</a>.', 'redirection' )?>
72
+ </div>