rtMedia for WordPress, BuddyPress and bbPress - Version 3.0.3

Version Description

  • Improved template system
  • Fixed bug with audio/video uploads
  • Fixed bug with featured media
  • Fixed activity duplication issue
  • Other minor bug fixes
Download this release

Release Info

Developer saurabhshukla
Plugin Icon 128x128 rtMedia for WordPress, BuddyPress and bbPress
Version 3.0.3
Comparing to
See all releases

Code changes from version 3.0.2 to 3.0.3

CONTRIBUTING.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contribute to rtMedia
2
+
3
+ This guide details how to use issues and pull requests to improve rtMedia.
4
+
5
+ ## Closing policy for issues
6
+
7
+ Github issue-tracker is used **only** for developer & contributor discussion.
8
+
9
+ For support-request/feature-request, please use - http://rtcamp.com/rtmedia/support/
10
+
11
+ ## Translation
12
+
13
+ Please do NOT send pull-request for translations.
14
+
15
+ You can contribute transaltions using web-interface here - http://rtcamp.com/translate/projects/rtmedia
16
+
17
+ ## Pull Requests
18
+
19
+ Please inclued your wordpress.org username while sending pull-request so that we can add you to contributors list.
app/admin/RTMediaAdmin.php CHANGED
@@ -17,13 +17,14 @@ if (!class_exists('RTMediaAdmin')) {
17
  public $rtmedia_feed;
18
 
19
  public function __construct() {
 
20
  add_action('init', array($this, 'video_transcoding_survey_response'));
21
  if (is_multisite()) {
22
  add_action('network_admin_notices', array($this, 'upload_filetypes_error'));
23
  add_action('admin_notices', array($this, 'upload_filetypes_error'));
24
  }
25
  $rtmedia_feed = new RTMediaFeed();
26
- add_filter( "plugin_action_links_". RTMEDIA_BASE_NAME, array(&$this,'plugin_add_settings_link' ));
27
  add_action('wp_ajax_rtmedia_fetch_feed', array($rtmedia_feed, 'fetch_feed'), 1);
28
  $this->rtmedia_support = new RTMediaSupport();
29
  add_action('wp_ajax_rtmedia_select_request', array($this->rtmedia_support, 'get_form'), 1);
@@ -39,18 +40,19 @@ if (!class_exists('RTMediaAdmin')) {
39
  add_action('wp_ajax_rtmedia_convert_videos_form', array($this, 'convert_videos_mailchimp_send'), 1);
40
  add_action('wp_ajax_rtmedia_correct_upload_filetypes', array($this, 'correct_upload_filetypes'), 1);
41
  add_filter('plugin_row_meta', array($this, 'plugin_meta_premium_addon_link'), 1, 4);
 
 
 
 
 
 
 
 
42
  if (is_admin()) {
43
  add_action('admin_enqueue_scripts', array($this, 'ui'));
44
  //bp_core_admin_hook();
45
- add_action('admin_menu', array($this, 'menu'),1);
46
- global $rtmedia;
47
- if (isset($_POST["rtmedia-options"])){
48
- if(isset($_POST["rtmedia-options"]["general_showAdminMenu"]) && $_POST["rtmedia-options"]["general_showAdminMenu"] == "1")
49
- add_action('admin_bar_menu', array($this, 'admin_bar_menu'),100,1);
50
- }else if(intval($rtmedia->options["general_showAdminMenu"]) == 1){
51
- add_action('admin_bar_menu', array($this, 'admin_bar_menu'),100,1);
52
- }
53
-
54
  if (current_user_can('manage_options'))
55
  add_action('bp_admin_tabs', array($this, 'tab'));
56
  if (is_multisite())
@@ -59,101 +61,124 @@ if (!class_exists('RTMediaAdmin')) {
59
  $this->rtmedia_settings = new RTMediaSettings();
60
  $this->rtmedia_encoding = new RTMediaEncoding();
61
  }
62
- function plugin_add_settings_link( $links ) {
 
63
  $settings_link = '<a href="' . admin_url('admin.php?page=rtmedia-settings') . '">Settings</a>';
64
- array_push( $links, $settings_link );
65
  $settings_link = '<a href="' . admin_url('admin.php?page=rtmedia-support') . '">Support</a>';
66
- array_push( $links, $settings_link );
67
  return $links;
68
  }
69
 
 
 
 
70
 
71
- function admin_bar_menu($admin_bar){
72
- $admin_bar->add_menu( array(
73
- 'id' => 'rtMedia',
74
- 'title' => 'rtMedia',
75
- 'href' => admin_url('admin.php?page=rtmedia-settings'),
76
- 'meta' => array(
77
- 'title' => __('rtMedia'),
78
- ),
79
- ));
80
- $admin_bar->add_menu( array(
81
- 'id' => 'rt-media-dashborad',
82
- 'parent' => 'rtMedia',
83
- 'title' => __('Settings',"rtmedia"),
84
- 'href' => admin_url('admin.php?page=rtmedia-settings'),
85
- 'meta' => array(
86
- 'title' => __('Settings'),
87
- 'target' => '_self',
88
  ),
89
- ));
90
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  }
 
92
  /**
93
  * Generates the Admin UI.
94
  *
95
  * @param string $hook
96
  */
97
 
98
- /**
99
- *
100
- * @param type $hook
101
- */
102
- public function ui($hook) {
103
- $admin_pages = array(
104
- 'rtmedia_page_rtmedia-migration',
105
- 'rtmedia_page_rtmedia-kaltura-settings',
106
- 'rtmedia_page_rtmedia-ffmpeg-settings',
107
- 'toplevel_page_rtmedia-settings',
108
- 'rtmedia_page_rtmedia-addons',
109
- 'rtmedia_page_rtmedia-support',
110
- 'rtmedia_page_rtmedia-importer'
111
- );
112
- $admin_pages = apply_filters('rtmedia_filter_admin_pages_array', $admin_pages);
113
-
114
- if(in_array($hook, $admin_pages)) {
115
- $admin_ajax = admin_url('admin-ajax.php');
116
-
117
- wp_enqueue_script('bootstrap-switch', RTMEDIA_URL . 'app/assets/js/bootstrap-switch.js', array('jquery'), RTMEDIA_VERSION);
118
- wp_enqueue_script('slider-tabs', RTMEDIA_URL . 'app/assets/js/jquery.sliderTabs.min.js', array('jquery', 'jquery-effects-core'), RTMEDIA_VERSION);
119
- wp_enqueue_script('power-tip', RTMEDIA_URL . 'app/assets/js/jquery.powertip.min.js', array('jquery'), RTMEDIA_VERSION);
120
- wp_enqueue_script('observe-hashchange', RTMEDIA_URL . 'app/assets/js/jquery.observehashchange.pack.js', array('jquery'), RTMEDIA_VERSION);
121
- wp_enqueue_script('rtmedia-admin', RTMEDIA_URL . 'app/assets/js/admin.js', array('jquery-ui-dialog'), RTMEDIA_VERSION);
122
- wp_localize_script('rtmedia-admin', 'rtmedia_on_label', __('ON','rtmedia'));
123
- wp_localize_script('rtmedia-admin', 'rtmedia_off_label', __('OFF','rtmedia'));
124
- wp_localize_script('rtmedia-admin', 'rtmedia_admin_ajax', $admin_ajax);
125
- wp_localize_script('rtmedia-admin', 'rtmedia_admin_url', admin_url());
126
- wp_localize_script('rtmedia-admin', 'rtmedia_admin_url', admin_url());
127
- $rtmedia_admin_strings = array(
128
- 'no_refresh' => __('Please do not refresh this page.', 'rtmedia'),
129
- 'something_went_wrong' => __('Something went wronng. Please <a href onclick="location.reload();">refresh</a> page.', 'rtmedia'),
130
- 'are_you_sure' => __('This will subscribe you to the free plan.', 'rtmedia'),
131
- 'disable_encoding' => __('Are you sure you want to disable the encoding service? Make sure you note your api key before disabling it incase you want to activate it in future.', 'rtmedia')
132
- );
133
- wp_localize_script('rtmedia-admin', 'rtmedia_admin_strings', $rtmedia_admin_strings);
134
- wp_localize_script('rtmedia-admin', 'settings_url', add_query_arg(
135
- array('page' => 'rtmedia-settings'), (is_multisite() ? network_admin_url('admin.php') : admin_url('admin.php'))
136
- ) . '#privacy_enabled');
137
- wp_localize_script('rtmedia-admin', 'settings_rt_album_import_url', add_query_arg(
138
- array('page' => 'rtmedia-settings'), (is_multisite() ? network_admin_url('admin.php') : admin_url('admin.php'))
139
- ));
140
- wp_enqueue_style('font-awesome', RTMEDIA_URL . 'app/assets/css/font-awesome.min.css', '', RTMEDIA_VERSION);
141
- wp_enqueue_style('bootstrap-switch', RTMEDIA_URL . 'app/assets/css/bootstrap-switch.css', '', RTMEDIA_VERSION);
142
- wp_enqueue_style('slider-tabs', RTMEDIA_URL . 'app/assets/css/jquery.sliderTabs.min.css', '', RTMEDIA_VERSION);
143
- wp_enqueue_style('power-tip', RTMEDIA_URL . 'app/assets/css/jquery.powertip.min.css', '', RTMEDIA_VERSION);
144
- wp_enqueue_style('grid-foundation', RTMEDIA_URL . 'app/assets/css/grid-foundation.css', '', RTMEDIA_VERSION);
145
- wp_enqueue_style('rtmedia-main', RTMEDIA_URL . 'app/assets/css/main.css', '', RTMEDIA_VERSION);
146
- wp_enqueue_style('rtmedia-admin', RTMEDIA_URL . 'app/assets/css/admin.css', '', RTMEDIA_VERSION);
147
- wp_enqueue_style('wp-jquery-ui-dialog');
148
- }
149
- }
150
-
151
- /**
152
- * Admin Menu
153
- *
154
- * @global string 'rtmedia'
155
- */
156
- public function menu() {
157
  add_menu_page('rtMedia', 'rtMedia', 'manage_options', 'rtmedia-settings', array($this, 'settings_page'));
158
  add_submenu_page('rtmedia-settings', __('Settings', 'rtmedia'), __('Settings', 'rtmedia'), 'manage_options', 'rtmedia-settings', array($this, 'settings_page'));
159
  add_submenu_page('rtmedia-settings', __('Addons', 'rtmedia'), __('Addons', 'rtmedia'), 'manage_options', 'rtmedia-addons', array($this, 'addons_page'));
@@ -162,7 +187,7 @@ if (!class_exists('RTMediaAdmin')) {
162
  // if (!BPMediaPrivacy::is_installed()) {
163
  // add_submenu_page('rtmedia-settings', __('rtMedia Database Update', 'rtmedia'), __('Update Database', 'rtmedia'), 'manage_options', 'rtmedia-db-update', array($this, 'privacy_page'));
164
  // }
165
- }
166
 
167
  /**
168
  * Render the BuddyPress Media Settings page
@@ -219,241 +244,242 @@ if (!class_exists('RTMediaAdmin')) {
219
  public function render_page($page, $option_group = NULL) {
220
  ?>
221
 
222
- <div class="wrap bp-media-admin <?php echo $this->get_current_tab(); ?>">
223
- <div id="icon-buddypress-media" class="icon32"><br></div>
224
- <h2 class="nav-tab-wrapper"><?php $this->rtmedia_tabs(); ?></h2>
225
- <?php settings_errors(); ?>
226
- <div class="row">
227
- <div id="bp-media-settings-boxes" class="columns large-7">
228
- <?php
229
- $settings_url = ( is_multisite() ) ? network_admin_url('edit.php?action=' . $option_group) : 'options.php';
230
- ?>
231
- <?php if ($option_group) { //$option_group if ($page == "bp-media-settings") action="<?php echo $settings_url; ?>
232
- <form id="bp_media_settings_form" name="bp_media_settings_form" method="post" enctype="multipart/form-data">
233
- <div class="bp-media-metabox-holder"><?php
234
- settings_fields($option_group);
235
- if ($page == "rtmedia-settings") {
236
-
237
-
238
- echo '<div id="bpm-settings-tabs">';
239
- $sub_tabs = $this->settings_sub_tabs();
240
- RTMediaFormHandler::rtForm_settings_tabs_content($page,$sub_tabs);
241
- echo '</div>';
242
- }else{
243
- do_settings_sections($page);
244
- }?>
245
- <div class="clearfix">&nbsp;</div>
246
- <div class="row">
247
- <input type="hidden" name="rtmedia-options-save" value="true">
248
- <input type="submit" id="rtmedia-settings-submit" class="rtmedia-settings-submit button" value="<?php echo __("Save Settings","rtmedia"); ?>">
249
- </div>
250
- <div class="rt-link alignright"><?php _e('By', 'rtmedia'); ?> <a href="http://rtcamp.com/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media" title="<?php _e('Empowering The Web With WordPress', 'rtmedia'); ?>"><img src="<?php echo RTMEDIA_URL; ?>app/assets/img/rtcamp-logo.png"></a></div>
251
- </div>
252
- </form><?php } else {
253
- ?>
254
- <div class="bp-media-metabox-holder">
255
-
256
- <?php
257
- if( $page == 'rtmedia-addons' )
258
- RTMediaAddon::render_addons ($page);
259
- else
260
- do_settings_sections($page);
261
- ?>
262
- <?php
263
- do_action('rtmedia_admin_page_insert', $page);
264
- ?>
265
- <div class="rt-link alignright"><?php _e('By', 'rtmedia'); ?> <a href="http://rtcamp.com/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media" title="<?php _e('Empowering The Web With WordPress', 'rtmedia'); ?>"><img src="<?php echo RTMEDIA_URL; ?>app/assets/img/rtcamp-logo.png"></a></div>
266
- </div><?php
267
- do_action('rtmedia_admin_page_append', $page);
268
- }
269
- ?>
270
-
271
-
272
- </div><!-- .bp-media-settings-boxes -->
273
- <div class="metabox-holder bp-media-metabox-holder columns large-3">
274
- <?php $this->admin_sidebar(); ?>
275
- </div>
276
- </div><!-- .metabox-holder -->
277
- </div><!-- .bp-media-admin --><?php
278
- }
279
-
280
- /**
281
- * Adds a tab for Media settings in the BuddyPress settings page
282
- *
283
- * @global type $bp_media
284
- */
285
- public function tab() {
286
-
287
- $tabs_html = '';
288
- $idle_class = 'nav-tab';
289
- $active_class = 'nav-tab nav-tab-active';
290
- $tabs = array();
 
291
 
292
  // Check to see which tab we are on
293
- $tab = $this->get_current_tab();
294
- /* rtMedia */
295
- $tabs[] = array(
296
- 'href' => get_admin_url(null,add_query_arg(array('page' => 'rtmedia-settings'), 'admin.php')),
297
- 'title' => __('rtMedia', 'rtmedia'),
298
- 'name' => __('rtMedia', 'rtmedia'),
299
- 'class' => ($tab == 'rtmedia-settings' || $tab == 'rtmedia-addons' || $tab == 'rtmedia-support' || $tab == 'rtmedia-importer') ? $active_class : $idle_class
300
- );
301
-
302
-
303
- foreach ($tabs as $tab) {
304
- $tabs_html.= '<a id="bp-media" title= "' . $tab['title'] . '" href="' . $tab['href'] . '" class="' . $tab['class'] . '">' . $tab['name'] . '</a>';
305
- }
306
- echo $tabs_html;
307
- }
308
 
309
- public function rtmedia_tabs($active_tab = '') {
310
- // Declare local variables
311
- $tabs_html = '';
312
- $idle_class = 'nav-tab';
313
- $active_class = 'nav-tab nav-tab-active';
314
-
315
- // Setup core admin tabs
316
- $tabs = array(
317
- array(
318
- 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-settings'), 'admin.php')),
319
- 'name' => __('Settings', 'rtmedia'),
320
- 'slug' => 'rtmedia-settings'
321
- ),
322
- array(
323
- 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-addons'), 'admin.php')),
324
- 'name' => __('Addons', 'rtmedia'),
325
- 'slug' => 'rtmedia-addons'
326
- ),
327
- array(
328
- 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-support'), 'admin.php')),
329
- 'name' => __('Support', 'rtmedia'),
330
- 'slug' => 'rtmedia-support'
331
- )//,
332
  // array(
333
  // 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-importer'), 'admin.php')),
334
  // 'name' => __('Importer', 'rtmedia'),
335
  // 'slug' => 'rtmedia-importer'
336
  // )
337
- );
338
 
339
- $tabs = apply_filters('media_add_tabs', $tabs);
340
 
341
- // Loop through tabs and build navigation
342
- foreach (array_values($tabs) as $tab_data) {
343
- $is_current = (bool) ( $tab_data['slug'] == $this->get_current_tab() );
344
- $tab_class = $is_current ? $active_class : $idle_class;
345
- $tabs_html .= '<a href="' . $tab_data['href'] . '" class="' . $tab_class . '">' . $tab_data['name'] . '</a>';
346
- }
347
 
348
- // Output the tabs
349
- echo $tabs_html;
350
 
351
  // // Do other fun things
352
  // do_action('bp_media_admin_tabs');
353
- }
354
-
355
- public function settings_content_tabs($page) {
356
- global $wp_settings_sections, $wp_settings_fields;
357
-
358
- if (!isset($wp_settings_sections) || !isset($wp_settings_sections[$page]))
359
- return;
360
-
361
- foreach ((array) $wp_settings_sections[$page] as $section) {
362
- if ($section['title'])
363
- echo "<h3>{$section['title']}</h3>\n";
364
-
365
- if ($section['callback'])
366
- call_user_func($section['callback'], $section);
367
-
368
- if (!isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section['id']]))
369
- continue;
370
- echo '<table class="form-table">';
371
- do_settings_fields($page, $section['id']);
372
- echo '</table>';
373
- }
374
- }
375
-
376
- /**
377
- * Adds a sub tabs to the BuddyPress Media settings page
378
- *
379
- * @global type $bp_media
380
- */
381
- public function settings_sub_tabs() {
382
- $tabs_html = '';
383
- $tabs = array();
384
-
385
- // Check to see which tab we are on
386
- $tab = $this->get_current_tab();
387
- /* rtMedia */
388
- $tabs[] = array(
389
- 'href' => '#rtmedia-general',
390
- 'icon' => 'icon-cogs',
391
- 'title' => __('rtMedia General', 'rtmedia'),
392
- 'name' => __('General', 'rtmedia'),
393
- 'callback' => array('RTMediaFormHandler', 'general_content')
394
- );
395
- $tabs[] = array(
396
- 'href' => '#rtmedia-types',
397
- 'icon' => 'icon-film',
398
- 'title' => __('rtMedia Types', 'rtmedia'),
399
- 'name' => __('Types', 'rtmedia'),
400
- 'callback' => array('RTMediaFormHandler', 'types_content')
401
- );
402
-
403
- $tabs[] = array(
404
- 'href' => '#rtmedia-sizes',
405
- 'icon' => 'icon-resize-full',
406
- 'title' => __('rtMedia Sizes', 'rtmedia'),
407
- 'name' => __('Sizes', 'rtmedia'),
408
- 'callback' => array('RTMediaFormHandler', 'sizes_content')
409
- );
410
-
411
- $tabs[] = array(
412
- 'href' => '#rtmedia-privacy',
413
- 'icon' => 'icon-lock',
414
- 'title' => __('rtMedia Privacy', 'rtmedia'),
415
- 'name' => __('Privacy', 'rtmedia'),
416
- 'callback' => array('RTMediaFormHandler', 'privacy_content')
417
- );
418
-
419
- $tabs[] = array(
420
- 'href' => '#rtmedia-bp',
421
- 'icon' => 'icon-group',
422
- 'title' => __('rtMedia BuddyPress', 'rtmedia'),
423
- 'name' => __('BuddyPress', 'rtmedia'),
424
- 'callback' => array('RTMediaFormHandler', 'buddypress_content') //change it to BuddyPress Content
425
- );
426
-
427
- $tabs = apply_filters('rtmedia_add_settings_sub_tabs', $tabs, $tab);
428
- $tabs_html .= '<ul>';
429
- foreach ($tabs as $tab) {
430
-
431
- $icon = '';
432
- if (isset($tab['icon']) && !empty($tab['icon']))
433
- $icon = '<i class="' . $tab['icon'] . '"></i>';
434
-
435
- $tabs_html.= '<li><a id="tab-'.substr($tab['href'], 1).'" title="' . $tab['title'] . '" href="' . $tab['href'] . '" class="rtmedia-tab-title ' . sanitize_title($tab['name']) . '">' . $icon . ' ' . $tab['name'] . '</a></li>';
436
- }
437
- $tabs_html .= '</ul>';
438
-
439
- echo $tabs_html;
440
- return $tabs;
441
- }
442
-
443
- /*
444
- * Updates the media count of all users.
445
- */
446
-
447
- /**
448
- *
449
- * @global type $wpdb
450
- * @return boolean
451
- */
452
- public function update_count() {
453
- global $wpdb;
454
-
455
- $query =
456
- "SELECT
457
  p.post_author,pmp.meta_value,
458
  SUM(CASE WHEN post_mime_type LIKE 'image%' THEN 1 ELSE 0 END) as Images,
459
  SUM(CASE WHEN post_mime_type LIKE 'music%' THEN 1 ELSE 0 END) as Music,
@@ -467,66 +493,66 @@ if (!class_exists('RTMediaAdmin')) {
467
  pmp.meta_key = 'bp_media_privacy' AND
468
  ( post_mime_type LIKE 'image%' OR post_mime_type LIKE 'music%' OR post_mime_type LIKE 'video%' OR post_type LIKE 'bp_media_album')
469
  GROUP BY p.post_author,pmp.meta_value order by p.post_author";
470
- $result = $wpdb->get_results($query);
471
- if (!is_array($result))
472
- return false;
473
- $formatted = array();
474
- foreach ($result as $obj) {
475
- $formatted[$obj->post_author][$obj->meta_value] = array(
476
- 'image' => $obj->Images,
477
- 'video' => $obj->Videos,
478
- 'music' => $obj->Music,
479
- 'album' => $obj->Albums,
480
- );
481
- }
482
-
483
- foreach ($formatted as $user => $obj) {
484
- update_user_meta($user, 'rtmedia_count', $obj);
485
- }
486
- return true;
487
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
488
 
489
- /* Multisite Save Options - http://wordpress.stackexchange.com/questions/64968/settings-api-in-multisite-missing-update-message#answer-72503 */
490
-
491
- /**
492
- *
493
- * @global type $bp_media_admin
494
- */
495
- public function save_multisite_options() {
496
- global $rtmedia_admin;
497
- if (isset($_POST['refresh-count'])) {
498
- $rtmedia_admin->update_count();
499
- }
500
- do_action('rtmedia_sanitize_settings', $_POST);
501
-
502
- if (isset($_POST['rtmedia_options'])) {
503
- update_site_option('rtmedia_options', $_POST['rtmedia_options']);
504
  //
505
  // // redirect to settings page in network
506
- wp_redirect(
507
- add_query_arg(
508
- array('page' => 'rtmedia-settings', 'updated' => 'true'), (is_multisite() ? network_admin_url('admin.php') : admin_url('admin.php'))
509
- )
510
- );
511
- exit;
512
- }
513
- }
514
 
515
- /* Admin Sidebar */
516
 
517
- /**
518
- *
519
- * @global type $bp_media
520
- */
521
- public function admin_sidebar() {
522
- do_action('rtmedia_before_default_admin_widgets');
523
- $current_user = wp_get_current_user();
524
  // echo '<p><a target="_blank" href="http://rtcamp.com/news/buddypress-media-review-contest/?utm_source=dashboard&#038;utm_medium=plugin&#038;utm_campaign=buddypress-media"><img src="' . RTMEDIA_URL . 'app/assets/img/bpm-contest-banner.jpg" alt="BuddyPress Media Review Contest" /></a></p>';
525
  // $contest = '<a target="_blank" href="http://rtcamp.com/news/buddypress-media-review-contest/?utm_source=dashboard&#038;utm_medium=plugin&#038;utm_campaign=buddypress-media"><img src="'.RTMEDIA_URL.'app/assets/img/bpm-contest-banner.jpg" alt="BuddyPress Media Review Contest" /></a>';
526
  // new BPMediaAdminWidget('bpm-contest', __('', 'rtmedia'), $contest);
527
 
528
- $message = sprintf(__('I use @buddypressmedia http://goo.gl/8Upmv on %s', 'rtmedia'), home_url());
529
- $addons = '<div id="social" class="row">
530
  <label class="columns large-6 large-offset-3" for="bp-media-add-linkback"><input' . checked(get_site_option('rtmedia-add-linkback', false), true, false) . ' type="checkbox" name="bp-media-add-linkback" value="1" id="bp-media-add-linkback"/> ' . __('Add link to footer', 'rtmedia') . '</label>
531
  <div class="row">
532
  <div class="columns large-6"><iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Frtcamp.com%2Fbuddypress-media%2F&amp;send=false&amp;layout=button_count&amp;width=72&amp;show_faces=false&amp;font&amp;colorscheme=light&amp;action=like&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px; margin-top: 5px;" allowTransparency="true"></iframe></div>
@@ -537,9 +563,9 @@ if (!class_exists('RTMediaAdmin')) {
537
  <div class="columns large-6"><a href="' . sprintf('%s', 'http://feeds.feedburner.com/rtcamp/') . '" title="' . __('Subscribe to our feeds', 'rtmedia') . '" class="button" target="_blank"><i class="bp-media-rss icon-rss"></i> ' . __('Feeds', 'rtmedia') . '</a></div>
538
  </div>
539
  </div>';
540
- //<li><a href="' . sprintf('%s', 'http://www.facebook.com/rtCamp.solutions/') . '" title="' . __('Become a fan on Facebook', 'rtmedia') . '" class="bp-media-facebook bp-media-social">' . __('Facebook', 'rtmedia') . '</a></li>
541
- //<li><a href="' . sprintf('%s', 'https://twitter.com/rtcamp/') . '" title="' . __('Follow us on Twitter', 'rtmedia') . '" class="bp-media-twitter bp-media-social">' . __('Twitter', 'rtmedia') . '</a></li> ;
542
- new RTMediaAdminWidget('spread-the-word', __('Spread the Word', 'rtmedia'), $addons);
543
 
544
  // $donate = '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
545
  // <!-- Identify your business so that you can collect the payments. -->
@@ -563,7 +589,7 @@ if (!class_exists('RTMediaAdmin')) {
563
  // ;
564
  // new BPMediaAdminWidget('donate', __('Donate', 'rtmedia'), $donate);
565
 
566
- $branding = '<form action="http://rtcamp.us1.list-manage1.com/subscribe/post?u=85b65c9c71e2ba3fab8cb1950&amp;id=9e8ded4470" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
567
  <div class="mc-field-group">
568
  <input type="email" value="' . $current_user->user_email . '" name="EMAIL" placeholder="Email" class="required email" id="mce-EMAIL">
569
  <input style="display:none;" type="checkbox" checked="checked" value="1" name="group[1721][1]" id="mce-group[1721]-1721-0"><label for="mce-group[1721]-1721-0">
@@ -571,86 +597,86 @@ if (!class_exists('RTMediaAdmin')) {
571
  <div class="response" id="mce-error-response" style="display:none"></div>
572
  <div class="response" id="mce-success-response" style="display:none"></div>
573
  </div>
574
- <input type="submit" value="'.__('Subscribe','rtmedia').'" name="subscribe" id="mc-embedded-subscribe" class="button">
575
  </div>
576
  </form>';
577
- new RTMediaAdminWidget('branding', __('Subscribe', 'rtmedia'), $branding);
578
 
579
- $news = '<img src ="' . admin_url('/images/wpspin_light.gif') . '" /> Loading...';
580
- new RTMediaAdminWidget('latest-news', __('Latest News', 'rtmedia'), $news);
581
- do_action('rtmedia_after_default_admin_widgets');
582
- }
583
 
584
- public function linkback() {
585
- if (isset($_POST['linkback']) && $_POST['linkback']) {
586
- return update_site_option('rtmedia-add-linkback', true);
587
- } else {
588
- return update_site_option('rtmedia-add-linkback', false);
589
- }
590
- die;
591
- }
592
 
593
- public function convert_videos_mailchimp_send() {
594
- if ($_POST['interested'] == 'Yes' && !empty($_POST['choice'])) {
595
- wp_remote_get(add_query_arg(array('rtmedia-convert-videos-form' => 1, 'choice' => $_POST['choice'], 'url' => urlencode($_POST['url']), 'email' => $_POST['email']), 'http://rtcamp.com/'));
596
- } else {
597
- update_site_option('rtmedia-survey', 0);
598
- }
599
- echo 'Thank you for your time.';
600
- die;
601
- }
602
 
603
- public function video_transcoding_survey_response() {
604
- if (isset($_GET['survey-done']) && ($_GET['survey-done'] == md5('survey-done'))) {
605
- update_site_option('rtmedia-survey', 0);
606
- }
607
- }
608
 
609
- public function plugin_meta_premium_addon_link($plugin_meta, $plugin_file, $plugin_data, $status) {
610
- if (plugin_basename(RTMEDIA_PATH . 'index.php') == $plugin_file)
611
- $plugin_meta[] = '<a href="https://rtcamp.com/store/product-category/buddypress/?utm_source=dashboard&#038;utm_medium=plugin&#038;utm_campaign=buddypress-media" title="Premium Add-ons">Premium Add-ons</a>';
612
- return $plugin_meta;
613
- }
614
 
615
- public function upload_filetypes_error() {
616
- global $rtmedia;
617
- $upload_filetypes = get_site_option('upload_filetypes', 'jpg jpeg png gif');
618
- $upload_filetypes = explode(' ', $upload_filetypes);
619
- $flag = false;
620
- if (isset($rtmedia->options['images_enabled']) && $rtmedia->options['images_enabled']) {
621
- $not_supported_image = array_diff(array('jpg', 'jpeg', 'png', 'gif'), $upload_filetypes);
622
- if (!empty($not_supported_image)) {
623
- echo '<div class="error upload-filetype-network-settings-error">
624
  <p>
625
  ' . sprintf(__('You have images enabled on rtMedia but your network allowed filetypes does not allow uploading of %s. Click <a href="%s">here</a> to change your settings manually.', 'rtmedia'), implode(', ', $not_supported_image), network_admin_url('settings.php#upload_filetypes')) . '
626
  <br /><strong>' . __('Recommended', 'rtmedia') . ':</strong> <input type="button" class="button update-network-settings-upload-filetypes" class="button" value="' . __('Update Network Settings Automatically', 'rtmedia') . '"> <img style="display:none;" src="' . admin_url('images/wpspin_light.gif') . '" />
627
  </p>
628
  </div>';
629
- $flag = true;
630
- }
631
- }
632
- if (isset($rtmedia->options['videos_enabled']) && $rtmedia->options['videos_enabled']) {
633
- if (!in_array('mp4', $upload_filetypes)) {
634
- echo '<div class="error upload-filetype-network-settings-error">
635
  <p>
636
  ' . sprintf(__('You have video enabled on BuddyPress Media but your network allowed filetypes does not allow uploading of mp4. Click <a href="%s">here</a> to change your settings manually.', 'rtmedia'), network_admin_url('settings.php#upload_filetypes')) . '
637
  <br /><strong>' . __('Recommended', 'rtmedia') . ':</strong> <input type="button" class="button update-network-settings-upload-filetypes" class="button" value="' . __('Update Network Settings Automatically', 'rtmedia') . '"> <img style="display:none;" src="' . admin_url('images/wpspin_light.gif') . '" />
638
  </p>
639
  </div>';
640
- $flag = true;
641
- }
642
- }
643
- if (isset($rtmedia->options['audio_enabled']) && $rtmedia->options['audio_enabled']) {
644
- if (!in_array('mp3', $upload_filetypes)) {
645
- echo '<div class="error upload-filetype-network-settings-error"><p>' . sprintf(__('You have audio enabled on BuddyPress Media but your network allowed filetypes does not allow uploading of mp3. Click <a href="%s">here</a> to change your settings manually.', 'rtmedia'), network_admin_url('settings.php#upload_filetypes')) . '
646
  <br /><strong>' . __('Recommended', 'rtmedia') . ':</strong> <input type="button" class="button update-network-settings-upload-filetypes" class="button" value="' . __('Update Network Settings Automatically', 'rtmedia') . '"> <img style="display:none;" src="' . admin_url('images/wpspin_light.gif') . '" />
647
  </p>
648
  </div>';
649
- $flag = true;
650
- }
651
- }
652
- if ($flag) {
653
- ?>
654
  <script type="text/javascript">
655
  jQuery('.upload-filetype-network-settings-error').on('click','.update-network-settings-upload-filetypes', function(){
656
  jQuery('.update-network-settings-upload-filetypes').siblings('img').show();
@@ -702,4 +728,4 @@ if (!class_exists('RTMediaAdmin')) {
702
  }
703
 
704
  }
705
- ?>
17
  public $rtmedia_feed;
18
 
19
  public function __construct() {
20
+ global $rtmedia;
21
  add_action('init', array($this, 'video_transcoding_survey_response'));
22
  if (is_multisite()) {
23
  add_action('network_admin_notices', array($this, 'upload_filetypes_error'));
24
  add_action('admin_notices', array($this, 'upload_filetypes_error'));
25
  }
26
  $rtmedia_feed = new RTMediaFeed();
27
+ add_filter("plugin_action_links_" . RTMEDIA_BASE_NAME, array(&$this, 'plugin_add_settings_link'));
28
  add_action('wp_ajax_rtmedia_fetch_feed', array($rtmedia_feed, 'fetch_feed'), 1);
29
  $this->rtmedia_support = new RTMediaSupport();
30
  add_action('wp_ajax_rtmedia_select_request', array($this->rtmedia_support, 'get_form'), 1);
40
  add_action('wp_ajax_rtmedia_convert_videos_form', array($this, 'convert_videos_mailchimp_send'), 1);
41
  add_action('wp_ajax_rtmedia_correct_upload_filetypes', array($this, 'correct_upload_filetypes'), 1);
42
  add_filter('plugin_row_meta', array($this, 'plugin_meta_premium_addon_link'), 1, 4);
43
+
44
+ if (isset($_POST["rtmedia-options"])) {
45
+ if (isset($_POST["rtmedia-options"]["general_showAdminMenu"]) && $_POST["rtmedia-options"]["general_showAdminMenu"] == "1")
46
+ add_action('admin_bar_menu', array($this, 'admin_bar_menu'), 100, 1);
47
+ }else if (intval($rtmedia->options["general_showAdminMenu"]) == 1) {
48
+ add_action('admin_bar_menu', array($this, 'admin_bar_menu'), 100, 1);
49
+ }
50
+
51
  if (is_admin()) {
52
  add_action('admin_enqueue_scripts', array($this, 'ui'));
53
  //bp_core_admin_hook();
54
+ add_action('admin_menu', array($this, 'menu'), 1);
55
+
 
 
 
 
 
 
 
56
  if (current_user_can('manage_options'))
57
  add_action('bp_admin_tabs', array($this, 'tab'));
58
  if (is_multisite())
61
  $this->rtmedia_settings = new RTMediaSettings();
62
  $this->rtmedia_encoding = new RTMediaEncoding();
63
  }
64
+
65
+ function plugin_add_settings_link($links) {
66
  $settings_link = '<a href="' . admin_url('admin.php?page=rtmedia-settings') . '">Settings</a>';
67
+ array_push($links, $settings_link);
68
  $settings_link = '<a href="' . admin_url('admin.php?page=rtmedia-support') . '">Support</a>';
69
+ array_push($links, $settings_link);
70
  return $links;
71
  }
72
 
73
+ function admin_bar_menu($admin_bar) {
74
+ if (!current_user_can('manage_options'))
75
+ return;
76
 
77
+ $admin_bar->add_menu(array(
78
+ 'id' => 'rtMedia',
79
+ 'title' => 'rtMedia',
80
+ 'href' => admin_url('admin.php?page=rtmedia-settings'),
81
+ 'meta' => array(
82
+ 'title' => __('rtMedia'),
 
 
 
 
 
 
 
 
 
 
 
83
  ),
84
+ ));
85
+ $admin_bar->add_menu(array(
86
+ 'id' => 'rt-media-dashborad',
87
+ 'parent' => 'rtMedia',
88
+ 'title' => __('Settings', "rtmedia"),
89
+ 'href' => admin_url('admin.php?page=rtmedia-settings'),
90
+ 'meta' => array(
91
+ 'title' => __('Settings'),
92
+ 'target' => '_self',
93
+ ),
94
+ ));
95
+ $admin_bar->add_menu(array(
96
+ 'id' => 'rt-media-addons',
97
+ 'parent' => 'rtMedia',
98
+ 'title' => __('Addons', "rtmedia"),
99
+ 'href' => admin_url('admin.php?page=rtmedia-addons'),
100
+ 'meta' => array(
101
+ 'title' => __('Addons'),
102
+ 'target' => '_self',
103
+ ),
104
+ ));
105
+ $admin_bar->add_menu(array(
106
+ 'id' => 'rt-media-support',
107
+ 'parent' => 'rtMedia',
108
+ 'title' => __('Support', "rtmedia"),
109
+ 'href' => admin_url('admin.php?page=rtmedia-support'),
110
+ 'meta' => array(
111
+ 'title' => __('Support'),
112
+ 'target' => '_self',
113
+ ),
114
+ ));
115
  }
116
+
117
  /**
118
  * Generates the Admin UI.
119
  *
120
  * @param string $hook
121
  */
122
 
123
+ /**
124
+ *
125
+ * @param type $hook
126
+ */
127
+ public function ui($hook) {
128
+ $admin_pages = array(
129
+ 'rtmedia_page_rtmedia-migration',
130
+ 'rtmedia_page_rtmedia-kaltura-settings',
131
+ 'rtmedia_page_rtmedia-ffmpeg-settings',
132
+ 'toplevel_page_rtmedia-settings',
133
+ 'rtmedia_page_rtmedia-addons',
134
+ 'rtmedia_page_rtmedia-support',
135
+ 'rtmedia_page_rtmedia-importer'
136
+ );
137
+ $admin_pages = apply_filters('rtmedia_filter_admin_pages_array', $admin_pages);
138
+
139
+ if (in_array($hook, $admin_pages)) {
140
+ $admin_ajax = admin_url('admin-ajax.php');
141
+
142
+ wp_enqueue_script('bootstrap-switch', RTMEDIA_URL . 'app/assets/js/bootstrap-switch.js', array('jquery'), RTMEDIA_VERSION);
143
+ wp_enqueue_script('slider-tabs', RTMEDIA_URL . 'app/assets/js/jquery.sliderTabs.min.js', array('jquery', 'jquery-effects-core'), RTMEDIA_VERSION);
144
+ wp_enqueue_script('power-tip', RTMEDIA_URL . 'app/assets/js/jquery.powertip.min.js', array('jquery'), RTMEDIA_VERSION);
145
+ wp_enqueue_script('observe-hashchange', RTMEDIA_URL . 'app/assets/js/jquery.observehashchange.pack.js', array('jquery'), RTMEDIA_VERSION);
146
+ wp_enqueue_script('rtmedia-admin', RTMEDIA_URL . 'app/assets/js/admin.js', array('jquery-ui-dialog'), RTMEDIA_VERSION);
147
+ wp_localize_script('rtmedia-admin', 'rtmedia_on_label', __('ON', 'rtmedia'));
148
+ wp_localize_script('rtmedia-admin', 'rtmedia_off_label', __('OFF', 'rtmedia'));
149
+ wp_localize_script('rtmedia-admin', 'rtmedia_admin_ajax', $admin_ajax);
150
+ wp_localize_script('rtmedia-admin', 'rtmedia_admin_url', admin_url());
151
+ wp_localize_script('rtmedia-admin', 'rtmedia_admin_url', admin_url());
152
+ $rtmedia_admin_strings = array(
153
+ 'no_refresh' => __('Please do not refresh this page.', 'rtmedia'),
154
+ 'something_went_wrong' => __('Something went wronng. Please <a href onclick="location.reload();">refresh</a> page.', 'rtmedia'),
155
+ 'are_you_sure' => __('This will subscribe you to the free plan.', 'rtmedia'),
156
+ 'disable_encoding' => __('Are you sure you want to disable the encoding service? Make sure you note your api key before disabling it incase you want to activate it in future.', 'rtmedia')
157
+ );
158
+ wp_localize_script('rtmedia-admin', 'rtmedia_admin_strings', $rtmedia_admin_strings);
159
+ wp_localize_script('rtmedia-admin', 'settings_url', add_query_arg(
160
+ array('page' => 'rtmedia-settings'), (is_multisite() ? network_admin_url('admin.php') : admin_url('admin.php'))
161
+ ) . '#privacy_enabled');
162
+ wp_localize_script('rtmedia-admin', 'settings_rt_album_import_url', add_query_arg(
163
+ array('page' => 'rtmedia-settings'), (is_multisite() ? network_admin_url('admin.php') : admin_url('admin.php'))
164
+ ));
165
+ wp_enqueue_style('font-awesome', RTMEDIA_URL . 'app/assets/css/font-awesome.min.css', '', RTMEDIA_VERSION);
166
+ wp_enqueue_style('bootstrap-switch', RTMEDIA_URL . 'app/assets/css/bootstrap-switch.css', '', RTMEDIA_VERSION);
167
+ wp_enqueue_style('slider-tabs', RTMEDIA_URL . 'app/assets/css/jquery.sliderTabs.min.css', '', RTMEDIA_VERSION);
168
+ wp_enqueue_style('power-tip', RTMEDIA_URL . 'app/assets/css/jquery.powertip.min.css', '', RTMEDIA_VERSION);
169
+ wp_enqueue_style('grid-foundation', RTMEDIA_URL . 'app/assets/css/grid-foundation.css', '', RTMEDIA_VERSION);
170
+ wp_enqueue_style('rtmedia-main', RTMEDIA_URL . 'app/assets/css/main.css', '', RTMEDIA_VERSION);
171
+ wp_enqueue_style('rtmedia-admin', RTMEDIA_URL . 'app/assets/css/admin.css', '', RTMEDIA_VERSION);
172
+ wp_enqueue_style('wp-jquery-ui-dialog');
173
+ }
174
+ }
175
+
176
+ /**
177
+ * Admin Menu
178
+ *
179
+ * @global string 'rtmedia'
180
+ */
181
+ public function menu() {
182
  add_menu_page('rtMedia', 'rtMedia', 'manage_options', 'rtmedia-settings', array($this, 'settings_page'));
183
  add_submenu_page('rtmedia-settings', __('Settings', 'rtmedia'), __('Settings', 'rtmedia'), 'manage_options', 'rtmedia-settings', array($this, 'settings_page'));
184
  add_submenu_page('rtmedia-settings', __('Addons', 'rtmedia'), __('Addons', 'rtmedia'), 'manage_options', 'rtmedia-addons', array($this, 'addons_page'));
187
  // if (!BPMediaPrivacy::is_installed()) {
188
  // add_submenu_page('rtmedia-settings', __('rtMedia Database Update', 'rtmedia'), __('Update Database', 'rtmedia'), 'manage_options', 'rtmedia-db-update', array($this, 'privacy_page'));
189
  // }
190
+ }
191
 
192
  /**
193
  * Render the BuddyPress Media Settings page
244
  public function render_page($page, $option_group = NULL) {
245
  ?>
246
 
247
+ <div class="wrap bp-media-admin <?php echo $this->get_current_tab(); ?>">
248
+ <div id="icon-buddypress-media" class="icon32"><br></div>
249
+ <h2 class="nav-tab-wrapper"><?php $this->rtmedia_tabs(); ?></h2>
250
+ <?php settings_errors(); ?>
251
+ <div class="row">
252
+ <div id="bp-media-settings-boxes" class="columns large-7">
253
+ <?php
254
+ $settings_url = ( is_multisite() ) ? network_admin_url('edit.php?action=' . $option_group) : 'options.php';
255
+ ?>
256
+ <?php if ($option_group) { //$option_group if ($page == "bp-media-settings") action="<?php echo $settings_url; ?>
257
+ <form id="bp_media_settings_form" name="bp_media_settings_form" method="post" enctype="multipart/form-data">
258
+ <div class="bp-media-metabox-holder"><?php
259
+ settings_fields($option_group);
260
+ if ($page == "rtmedia-settings") {
261
+
262
+
263
+ echo '<div id="bpm-settings-tabs">';
264
+ $sub_tabs = $this->settings_sub_tabs();
265
+ RTMediaFormHandler::rtForm_settings_tabs_content($page, $sub_tabs);
266
+ echo '</div>';
267
+ } else {
268
+ do_settings_sections($page);
269
+ }
270
+ ?>
271
+ <div class="clearfix">&nbsp;</div>
272
+ <div class="row">
273
+ <input type="hidden" name="rtmedia-options-save" value="true">
274
+ <input type="submit" id="rtmedia-settings-submit" class="rtmedia-settings-submit button" value="<?php echo __("Save Settings", "rtmedia"); ?>">
275
+ </div>
276
+ <div class="rt-link alignright"><?php _e('By', 'rtmedia'); ?> <a href="http://rtcamp.com/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media" title="<?php _e('Empowering The Web With WordPress', 'rtmedia'); ?>"><img src="<?php echo RTMEDIA_URL; ?>app/assets/img/rtcamp-logo.png"></a></div>
277
+ </div>
278
+ </form><?php } else {
279
+ ?>
280
+ <div class="bp-media-metabox-holder">
281
+
282
+ <?php
283
+ if ($page == 'rtmedia-addons')
284
+ RTMediaAddon::render_addons($page);
285
+ else
286
+ do_settings_sections($page);
287
+ ?>
288
+ <?php
289
+ do_action('rtmedia_admin_page_insert', $page);
290
+ ?>
291
+ <div class="rt-link alignright"><?php _e('By', 'rtmedia'); ?> <a href="http://rtcamp.com/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media" title="<?php _e('Empowering The Web With WordPress', 'rtmedia'); ?>"><img src="<?php echo RTMEDIA_URL; ?>app/assets/img/rtcamp-logo.png"></a></div>
292
+ </div><?php
293
+ do_action('rtmedia_admin_page_append', $page);
294
+ }
295
+ ?>
296
+
297
+
298
+ </div><!-- .bp-media-settings-boxes -->
299
+ <div class="metabox-holder bp-media-metabox-holder columns large-3">
300
+ <?php $this->admin_sidebar(); ?>
301
+ </div>
302
+ </div><!-- .metabox-holder -->
303
+ </div><!-- .bp-media-admin --><?php
304
+ }
305
+
306
+ /**
307
+ * Adds a tab for Media settings in the BuddyPress settings page
308
+ *
309
+ * @global type $bp_media
310
+ */
311
+ public function tab() {
312
+
313
+ $tabs_html = '';
314
+ $idle_class = 'nav-tab';
315
+ $active_class = 'nav-tab nav-tab-active';
316
+ $tabs = array();
317
 
318
  // Check to see which tab we are on
319
+ $tab = $this->get_current_tab();
320
+ /* rtMedia */
321
+ $tabs[] = array(
322
+ 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-settings'), 'admin.php')),
323
+ 'title' => __('rtMedia', 'rtmedia'),
324
+ 'name' => __('rtMedia', 'rtmedia'),
325
+ 'class' => ($tab == 'rtmedia-settings' || $tab == 'rtmedia-addons' || $tab == 'rtmedia-support' || $tab == 'rtmedia-importer') ? $active_class : $idle_class
326
+ );
327
+
328
+
329
+ foreach ($tabs as $tab) {
330
+ $tabs_html.= '<a id="bp-media" title= "' . $tab['title'] . '" href="' . $tab['href'] . '" class="' . $tab['class'] . '">' . $tab['name'] . '</a>';
331
+ }
332
+ echo $tabs_html;
333
+ }
334
 
335
+ public function rtmedia_tabs($active_tab = '') {
336
+ // Declare local variables
337
+ $tabs_html = '';
338
+ $idle_class = 'nav-tab';
339
+ $active_class = 'nav-tab nav-tab-active';
340
+
341
+ // Setup core admin tabs
342
+ $tabs = array(
343
+ array(
344
+ 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-settings'), 'admin.php')),
345
+ 'name' => __('Settings', 'rtmedia'),
346
+ 'slug' => 'rtmedia-settings'
347
+ ),
348
+ array(
349
+ 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-addons'), 'admin.php')),
350
+ 'name' => __('Addons', 'rtmedia'),
351
+ 'slug' => 'rtmedia-addons'
352
+ ),
353
+ array(
354
+ 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-support'), 'admin.php')),
355
+ 'name' => __('Support', 'rtmedia'),
356
+ 'slug' => 'rtmedia-support'
357
+ )//,
358
  // array(
359
  // 'href' => get_admin_url(null, add_query_arg(array('page' => 'rtmedia-importer'), 'admin.php')),
360
  // 'name' => __('Importer', 'rtmedia'),
361
  // 'slug' => 'rtmedia-importer'
362
  // )
363
+ );
364
 
365
+ $tabs = apply_filters('media_add_tabs', $tabs);
366
 
367
+ // Loop through tabs and build navigation
368
+ foreach (array_values($tabs) as $tab_data) {
369
+ $is_current = (bool) ( $tab_data['slug'] == $this->get_current_tab() );
370
+ $tab_class = $is_current ? $active_class : $idle_class;
371
+ $tabs_html .= '<a href="' . $tab_data['href'] . '" class="' . $tab_class . '">' . $tab_data['name'] . '</a>';
372
+ }
373
 
374
+ // Output the tabs
375
+ echo $tabs_html;
376
 
377
  // // Do other fun things
378
  // do_action('bp_media_admin_tabs');
379
+ }
380
+
381
+ public function settings_content_tabs($page) {
382
+ global $wp_settings_sections, $wp_settings_fields;
383
+
384
+ if (!isset($wp_settings_sections) || !isset($wp_settings_sections[$page]))
385
+ return;
386
+
387
+ foreach ((array) $wp_settings_sections[$page] as $section) {
388
+ if ($section['title'])
389
+ echo "<h3>{$section['title']}</h3>\n";
390
+
391
+ if ($section['callback'])
392
+ call_user_func($section['callback'], $section);
393
+
394
+ if (!isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section['id']]))
395
+ continue;
396
+ echo '<table class="form-table">';
397
+ do_settings_fields($page, $section['id']);
398
+ echo '</table>';
399
+ }
400
+ }
401
+
402
+ /**
403
+ * Adds a sub tabs to the BuddyPress Media settings page
404
+ *
405
+ * @global type $bp_media
406
+ */
407
+ public function settings_sub_tabs() {
408
+ $tabs_html = '';
409
+ $tabs = array();
410
+
411
+ // Check to see which tab we are on
412
+ $tab = $this->get_current_tab();
413
+ /* rtMedia */
414
+ $tabs[] = array(
415
+ 'href' => '#rtmedia-general',
416
+ 'icon' => 'icon-cogs',
417
+ 'title' => __('rtMedia General', 'rtmedia'),
418
+ 'name' => __('General', 'rtmedia'),
419
+ 'callback' => array('RTMediaFormHandler', 'general_content')
420
+ );
421
+ $tabs[] = array(
422
+ 'href' => '#rtmedia-types',
423
+ 'icon' => 'icon-film',
424
+ 'title' => __('rtMedia Types', 'rtmedia'),
425
+ 'name' => __('Types', 'rtmedia'),
426
+ 'callback' => array('RTMediaFormHandler', 'types_content')
427
+ );
428
+
429
+ $tabs[] = array(
430
+ 'href' => '#rtmedia-sizes',
431
+ 'icon' => 'icon-resize-full',
432
+ 'title' => __('rtMedia Sizes', 'rtmedia'),
433
+ 'name' => __('Sizes', 'rtmedia'),
434
+ 'callback' => array('RTMediaFormHandler', 'sizes_content')
435
+ );
436
+
437
+ $tabs[] = array(
438
+ 'href' => '#rtmedia-privacy',
439
+ 'icon' => 'icon-lock',
440
+ 'title' => __('rtMedia Privacy', 'rtmedia'),
441
+ 'name' => __('Privacy', 'rtmedia'),
442
+ 'callback' => array('RTMediaFormHandler', 'privacy_content')
443
+ );
444
+
445
+ $tabs[] = array(
446
+ 'href' => '#rtmedia-bp',
447
+ 'icon' => 'icon-group',
448
+ 'title' => __('rtMedia BuddyPress', 'rtmedia'),
449
+ 'name' => __('BuddyPress', 'rtmedia'),
450
+ 'callback' => array('RTMediaFormHandler', 'buddypress_content') //change it to BuddyPress Content
451
+ );
452
+
453
+ $tabs = apply_filters('rtmedia_add_settings_sub_tabs', $tabs, $tab);
454
+ $tabs_html .= '<ul>';
455
+ foreach ($tabs as $tab) {
456
+
457
+ $icon = '';
458
+ if (isset($tab['icon']) && !empty($tab['icon']))
459
+ $icon = '<i class="' . $tab['icon'] . '"></i>';
460
+
461
+ $tabs_html.= '<li><a id="tab-' . substr($tab['href'], 1) . '" title="' . $tab['title'] . '" href="' . $tab['href'] . '" class="rtmedia-tab-title ' . sanitize_title($tab['name']) . '">' . $icon . ' ' . $tab['name'] . '</a></li>';
462
+ }
463
+ $tabs_html .= '</ul>';
464
+
465
+ echo $tabs_html;
466
+ return $tabs;
467
+ }
468
+
469
+ /*
470
+ * Updates the media count of all users.
471
+ */
472
+
473
+ /**
474
+ *
475
+ * @global type $wpdb
476
+ * @return boolean
477
+ */
478
+ public function update_count() {
479
+ global $wpdb;
480
+
481
+ $query =
482
+ "SELECT
483
  p.post_author,pmp.meta_value,
484
  SUM(CASE WHEN post_mime_type LIKE 'image%' THEN 1 ELSE 0 END) as Images,
485
  SUM(CASE WHEN post_mime_type LIKE 'music%' THEN 1 ELSE 0 END) as Music,
493
  pmp.meta_key = 'bp_media_privacy' AND
494
  ( post_mime_type LIKE 'image%' OR post_mime_type LIKE 'music%' OR post_mime_type LIKE 'video%' OR post_type LIKE 'bp_media_album')
495
  GROUP BY p.post_author,pmp.meta_value order by p.post_author";
496
+ $result = $wpdb->get_results($query);
497
+ if (!is_array($result))
498
+ return false;
499
+ $formatted = array();
500
+ foreach ($result as $obj) {
501
+ $formatted[$obj->post_author][$obj->meta_value] = array(
502
+ 'image' => $obj->Images,
503
+ 'video' => $obj->Videos,
504
+ 'music' => $obj->Music,
505
+ 'album' => $obj->Albums,
506
+ );
507
+ }
508
+
509
+ foreach ($formatted as $user => $obj) {
510
+ update_user_meta($user, 'rtmedia_count', $obj);
511
+ }
512
+ return true;
513
+ }
514
+
515
+ /* Multisite Save Options - http://wordpress.stackexchange.com/questions/64968/settings-api-in-multisite-missing-update-message#answer-72503 */
516
+
517
+ /**
518
+ *
519
+ * @global type $bp_media_admin
520
+ */
521
+ public function save_multisite_options() {
522
+ global $rtmedia_admin;
523
+ if (isset($_POST['refresh-count'])) {
524
+ $rtmedia_admin->update_count();
525
+ }
526
+ do_action('rtmedia_sanitize_settings', $_POST);
527
 
528
+ if (isset($_POST['rtmedia_options'])) {
529
+ update_site_option('rtmedia_options', $_POST['rtmedia_options']);
 
 
 
 
 
 
 
 
 
 
 
 
 
530
  //
531
  // // redirect to settings page in network
532
+ wp_redirect(
533
+ add_query_arg(
534
+ array('page' => 'rtmedia-settings', 'updated' => 'true'), (is_multisite() ? network_admin_url('admin.php') : admin_url('admin.php'))
535
+ )
536
+ );
537
+ exit;
538
+ }
539
+ }
540
 
541
+ /* Admin Sidebar */
542
 
543
+ /**
544
+ *
545
+ * @global type $bp_media
546
+ */
547
+ public function admin_sidebar() {
548
+ do_action('rtmedia_before_default_admin_widgets');
549
+ $current_user = wp_get_current_user();
550
  // echo '<p><a target="_blank" href="http://rtcamp.com/news/buddypress-media-review-contest/?utm_source=dashboard&#038;utm_medium=plugin&#038;utm_campaign=buddypress-media"><img src="' . RTMEDIA_URL . 'app/assets/img/bpm-contest-banner.jpg" alt="BuddyPress Media Review Contest" /></a></p>';
551
  // $contest = '<a target="_blank" href="http://rtcamp.com/news/buddypress-media-review-contest/?utm_source=dashboard&#038;utm_medium=plugin&#038;utm_campaign=buddypress-media"><img src="'.RTMEDIA_URL.'app/assets/img/bpm-contest-banner.jpg" alt="BuddyPress Media Review Contest" /></a>';
552
  // new BPMediaAdminWidget('bpm-contest', __('', 'rtmedia'), $contest);
553
 
554
+ $message = sprintf(__('I use @buddypressmedia http://goo.gl/8Upmv on %s', 'rtmedia'), home_url());
555
+ $addons = '<div id="social" class="row">
556
  <label class="columns large-6 large-offset-3" for="bp-media-add-linkback"><input' . checked(get_site_option('rtmedia-add-linkback', false), true, false) . ' type="checkbox" name="bp-media-add-linkback" value="1" id="bp-media-add-linkback"/> ' . __('Add link to footer', 'rtmedia') . '</label>
557
  <div class="row">
558
  <div class="columns large-6"><iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Frtcamp.com%2Fbuddypress-media%2F&amp;send=false&amp;layout=button_count&amp;width=72&amp;show_faces=false&amp;font&amp;colorscheme=light&amp;action=like&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:80px; height:21px; margin-top: 5px;" allowTransparency="true"></iframe></div>
563
  <div class="columns large-6"><a href="' . sprintf('%s', 'http://feeds.feedburner.com/rtcamp/') . '" title="' . __('Subscribe to our feeds', 'rtmedia') . '" class="button" target="_blank"><i class="bp-media-rss icon-rss"></i> ' . __('Feeds', 'rtmedia') . '</a></div>
564
  </div>
565
  </div>';
566
+ //<li><a href="' . sprintf('%s', 'http://www.facebook.com/rtCamp.solutions/') . '" title="' . __('Become a fan on Facebook', 'rtmedia') . '" class="bp-media-facebook bp-media-social">' . __('Facebook', 'rtmedia') . '</a></li>
567
+ //<li><a href="' . sprintf('%s', 'https://twitter.com/rtcamp/') . '" title="' . __('Follow us on Twitter', 'rtmedia') . '" class="bp-media-twitter bp-media-social">' . __('Twitter', 'rtmedia') . '</a></li> ;
568
+ new RTMediaAdminWidget('spread-the-word', __('Spread the Word', 'rtmedia'), $addons);
569
 
570
  // $donate = '<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
571
  // <!-- Identify your business so that you can collect the payments. -->
589
  // ;
590
  // new BPMediaAdminWidget('donate', __('Donate', 'rtmedia'), $donate);
591
 
592
+ $branding = '<form action="http://rtcamp.us1.list-manage1.com/subscribe/post?u=85b65c9c71e2ba3fab8cb1950&amp;id=9e8ded4470" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
593
  <div class="mc-field-group">
594
  <input type="email" value="' . $current_user->user_email . '" name="EMAIL" placeholder="Email" class="required email" id="mce-EMAIL">
595
  <input style="display:none;" type="checkbox" checked="checked" value="1" name="group[1721][1]" id="mce-group[1721]-1721-0"><label for="mce-group[1721]-1721-0">
597
  <div class="response" id="mce-error-response" style="display:none"></div>
598
  <div class="response" id="mce-success-response" style="display:none"></div>
599
  </div>
600
+ <input type="submit" value="' . __('Subscribe', 'rtmedia') . '" name="subscribe" id="mc-embedded-subscribe" class="button">
601
  </div>
602
  </form>';
603
+ new RTMediaAdminWidget('branding', __('Subscribe', 'rtmedia'), $branding);
604
 
605
+ $news = '<img src ="' . admin_url('/images/wpspin_light.gif') . '" /> Loading...';
606
+ new RTMediaAdminWidget('latest-news', __('Latest News', 'rtmedia'), $news);
607
+ do_action('rtmedia_after_default_admin_widgets');
608
+ }
609
 
610
+ public function linkback() {
611
+ if (isset($_POST['linkback']) && $_POST['linkback']) {
612
+ return update_site_option('rtmedia-add-linkback', true);
613
+ } else {
614
+ return update_site_option('rtmedia-add-linkback', false);
615
+ }
616
+ die;
617
+ }
618
 
619
+ public function convert_videos_mailchimp_send() {
620
+ if ($_POST['interested'] == 'Yes' && !empty($_POST['choice'])) {
621
+ wp_remote_get(add_query_arg(array('rtmedia-convert-videos-form' => 1, 'choice' => $_POST['choice'], 'url' => urlencode($_POST['url']), 'email' => $_POST['email']), 'http://rtcamp.com/'));
622
+ } else {
623
+ update_site_option('rtmedia-survey', 0);
624
+ }
625
+ echo 'Thank you for your time.';
626
+ die;
627
+ }
628
 
629
+ public function video_transcoding_survey_response() {
630
+ if (isset($_GET['survey-done']) && ($_GET['survey-done'] == md5('survey-done'))) {
631
+ update_site_option('rtmedia-survey', 0);
632
+ }
633
+ }
634
 
635
+ public function plugin_meta_premium_addon_link($plugin_meta, $plugin_file, $plugin_data, $status) {
636
+ if (plugin_basename(RTMEDIA_PATH . 'index.php') == $plugin_file)
637
+ $plugin_meta[] = '<a href="https://rtcamp.com/store/product-category/buddypress/?utm_source=dashboard&#038;utm_medium=plugin&#038;utm_campaign=buddypress-media" title="Premium Add-ons">Premium Add-ons</a>';
638
+ return $plugin_meta;
639
+ }
640
 
641
+ public function upload_filetypes_error() {
642
+ global $rtmedia;
643
+ $upload_filetypes = get_site_option('upload_filetypes', 'jpg jpeg png gif');
644
+ $upload_filetypes = explode(' ', $upload_filetypes);
645
+ $flag = false;
646
+ if (isset($rtmedia->options['images_enabled']) && $rtmedia->options['images_enabled']) {
647
+ $not_supported_image = array_diff(array('jpg', 'jpeg', 'png', 'gif'), $upload_filetypes);
648
+ if (!empty($not_supported_image)) {
649
+ echo '<div class="error upload-filetype-network-settings-error">
650
  <p>
651
  ' . sprintf(__('You have images enabled on rtMedia but your network allowed filetypes does not allow uploading of %s. Click <a href="%s">here</a> to change your settings manually.', 'rtmedia'), implode(', ', $not_supported_image), network_admin_url('settings.php#upload_filetypes')) . '
652
  <br /><strong>' . __('Recommended', 'rtmedia') . ':</strong> <input type="button" class="button update-network-settings-upload-filetypes" class="button" value="' . __('Update Network Settings Automatically', 'rtmedia') . '"> <img style="display:none;" src="' . admin_url('images/wpspin_light.gif') . '" />
653
  </p>
654
  </div>';
655
+ $flag = true;
656
+ }
657
+ }
658
+ if (isset($rtmedia->options['videos_enabled']) && $rtmedia->options['videos_enabled']) {
659
+ if (!in_array('mp4', $upload_filetypes)) {
660
+ echo '<div class="error upload-filetype-network-settings-error">
661
  <p>
662
  ' . sprintf(__('You have video enabled on BuddyPress Media but your network allowed filetypes does not allow uploading of mp4. Click <a href="%s">here</a> to change your settings manually.', 'rtmedia'), network_admin_url('settings.php#upload_filetypes')) . '
663
  <br /><strong>' . __('Recommended', 'rtmedia') . ':</strong> <input type="button" class="button update-network-settings-upload-filetypes" class="button" value="' . __('Update Network Settings Automatically', 'rtmedia') . '"> <img style="display:none;" src="' . admin_url('images/wpspin_light.gif') . '" />
664
  </p>
665
  </div>';
666
+ $flag = true;
667
+ }
668
+ }
669
+ if (isset($rtmedia->options['audio_enabled']) && $rtmedia->options['audio_enabled']) {
670
+ if (!in_array('mp3', $upload_filetypes)) {
671
+ echo '<div class="error upload-filetype-network-settings-error"><p>' . sprintf(__('You have audio enabled on BuddyPress Media but your network allowed filetypes does not allow uploading of mp3. Click <a href="%s">here</a> to change your settings manually.', 'rtmedia'), network_admin_url('settings.php#upload_filetypes')) . '
672
  <br /><strong>' . __('Recommended', 'rtmedia') . ':</strong> <input type="button" class="button update-network-settings-upload-filetypes" class="button" value="' . __('Update Network Settings Automatically', 'rtmedia') . '"> <img style="display:none;" src="' . admin_url('images/wpspin_light.gif') . '" />
673
  </p>
674
  </div>';
675
+ $flag = true;
676
+ }
677
+ }
678
+ if ($flag) {
679
+ ?>
680
  <script type="text/javascript">
681
  jQuery('.upload-filetype-network-settings-error').on('click','.update-network-settings-upload-filetypes', function(){
682
  jQuery('.update-network-settings-upload-filetypes').siblings('img').show();
728
  }
729
 
730
  }
731
+ ?>
app/assets/js/admin.js CHANGED
@@ -82,7 +82,10 @@ jQuery(document).ready(function($){
82
  // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
83
  jQuery.getJSON(ajaxurl, data, function(response) {
84
  if(response.error===undefined && response.apikey){
85
- document.location.href = document.URL+'&apikey='+response.apikey;
 
 
 
86
  }else{
87
  jQuery('.encoding-try-now').next().remove();
88
  jQuery('#settings-error-encoding-error').remove();
@@ -103,12 +106,14 @@ jQuery(document).ready(function($){
103
  // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
104
  jQuery.getJSON(ajaxurl, data, function(response) {
105
  if(response.error===undefined && response.apikey){
106
- var tempUrl = document.URL;
107
- if(document.URL.toString().indexOf('&apikey='+response.apikey) == -1)
 
 
108
  tempUrl += '&apikey='+response.apikey;
109
- if(document.URL.toString().indexOf('&update=true') == -1)
110
  tempUrl += '&update=true';
111
- document.location.href = tempUrl;
112
 
113
  }else{
114
  jQuery('#settings-error-api-key-error').remove();
82
  // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
83
  jQuery.getJSON(ajaxurl, data, function(response) {
84
  if(response.error===undefined && response.apikey){
85
+ var tempUrl = window.location.href;
86
+ var hash = window.location.hash;
87
+ tempUrl = tempUrl.replace(hash, '');
88
+ document.location.href = tempUrl+'&apikey='+response.apikey+hash;
89
  }else{
90
  jQuery('.encoding-try-now').next().remove();
91
  jQuery('#settings-error-encoding-error').remove();
106
  // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
107
  jQuery.getJSON(ajaxurl, data, function(response) {
108
  if(response.error===undefined && response.apikey){
109
+ var tempUrl = window.location.href;
110
+ var hash = window.location.hash;
111
+ tempUrl = tempUrl.replace(hash, '');
112
+ if(tempUrl.toString().indexOf('&apikey='+response.apikey) == -1)
113
  tempUrl += '&apikey='+response.apikey;
114
+ if(tempUrl.toString().indexOf('&update=true') == -1)
115
  tempUrl += '&update=true';
116
+ document.location.href = tempUrl+hash;
117
 
118
  }else{
119
  jQuery('#settings-error-api-key-error').remove();
app/assets/js/rtMedia.backbone.js CHANGED
@@ -309,7 +309,8 @@ jQuery(function($) {
309
  try {
310
  var rtnObj;
311
  rtnObj = JSON.parse(res.response);
312
- activity_id = rtnObj.activity_id;
 
313
  } catch (e) {
314
  console.log('Invalid Activity ID');
315
  }
309
  try {
310
  var rtnObj;
311
  rtnObj = JSON.parse(res.response);
312
+ uploaderObj.uploader.settings.multipart_params.activity_id = rtnObj.activity_id;
313
+ activity_id= rtnObj.activity_id;
314
  } catch (e) {
315
  console.log('Invalid Activity ID');
316
  }
app/importers/RTMediaMigration.php CHANGED
@@ -35,7 +35,8 @@ class RTMediaMigration {
35
  }
36
 
37
  function add_migration_notice() {
38
- $this->create_notice("<p><strong>rtMedia</strong> : Please Migrate your Database <a href='" . admin_url("admin.php?page=rtmedia-migration&force=true") . "'>Click Here</a>. </p>");
 
39
  }
40
 
41
  function create_notice($message, $type = "error") {
35
  }
36
 
37
  function add_migration_notice() {
38
+ if (current_user_can( 'manage_options' ) )
39
+ $this->create_notice("<p><strong>rtMedia</strong> : Please Migrate your Database <a href='" . admin_url("admin.php?page=rtmedia-migration&force=true") . "'>Click Here</a>. </p>");
40
  }
41
 
42
  function create_notice($message, $type = "error") {
app/main/controllers/media/RTMediaUserInteraction.php CHANGED
@@ -78,7 +78,7 @@ class RTMediaUserInteraction {
78
 
79
  $this->init();
80
 
81
-
82
 
83
  // filter the default actions with this new one
84
  add_filter( 'rtmedia_query_actions', array( $this, 'register' ) );
@@ -89,11 +89,11 @@ class RTMediaUserInteraction {
89
 
90
 
91
  function init(){
92
- global $rtmedia_query;
 
93
  if(!isset($rtmedia_query->action_query)) return;
94
  if(!isset($rtmedia_query->action_query->id)) return;
95
-
96
- $this->model = new RTMediaModel();
97
  $this->set_label();
98
  $this->set_plural();
99
  $this->set_media();
78
 
79
  $this->init();
80
 
81
+
82
 
83
  // filter the default actions with this new one
84
  add_filter( 'rtmedia_query_actions', array( $this, 'register' ) );
89
 
90
 
91
  function init(){
92
+ $this->model = new RTMediaModel();
93
+ global $rtmedia_query;
94
  if(!isset($rtmedia_query->action_query)) return;
95
  if(!isset($rtmedia_query->action_query->id)) return;
96
+
 
97
  $this->set_label();
98
  $this->set_plural();
99
  $this->set_media();
app/main/controllers/shortcodes/RTMediaGalleryShortcode.php CHANGED
@@ -32,9 +32,16 @@ class RTMediaGalleryShortcode {
32
  wp_localize_script('rtmedia-backbone', 'template_url', RTMEDIA_URL . 'templates/media');
33
  $url = $_SERVER["REQUEST_URI"];
34
  $url = trailingslashit($url);
 
 
 
 
 
 
 
35
 
36
  $params = array(
37
- 'url' => (isset($url) && (strpos($url,"/media/") !== false))?str_replace("/media/", "/upload/", $url):'upload/',
38
  'runtimes' => 'gears,html5,flash,silverlight,browserplus',
39
  'browse_button' => 'rtMedia-upload-button',
40
  'container' => 'rtmedia-upload-container',
32
  wp_localize_script('rtmedia-backbone', 'template_url', RTMEDIA_URL . 'templates/media');
33
  $url = $_SERVER["REQUEST_URI"];
34
  $url = trailingslashit($url);
35
+
36
+ if(strpos($url,"/media") !==false){
37
+ $url_array= split("/media", $url);
38
+ $url = trailingslashit($url_array[0]) ."upload/";
39
+ }else{
40
+ $url = trailingslashit($url) ."upload/";
41
+ }
42
 
43
  $params = array(
44
+ 'url' => $url,
45
  'runtimes' => 'gears,html5,flash,silverlight,browserplus',
46
  'browse_button' => 'rtMedia-upload-button',
47
  'container' => 'rtmedia-upload-container',
app/main/controllers/template/RTMediaTemplate.php CHANGED
@@ -13,12 +13,11 @@ class RTMediaTemplate {
13
  public $media_args;
14
 
15
  function __construct() {
16
- global $rtmedia_query;
17
- if ( $rtmedia_query ) {
18
- add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
19
- add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_image_editor_scripts' ) );
20
- }
21
-
22
  }
23
 
24
  /**
@@ -26,10 +25,10 @@ class RTMediaTemplate {
26
  */
27
  function enqueue_scripts() {
28
  wp_enqueue_script( 'rtmedia-backbone' );
29
- $is_album = is_rtmedia_album() ? true : false;
30
- $is_edit_allowed = is_rtmedia_edit_allowed() ? true: false;
31
- wp_localize_script('rtmedia-backbone', 'is_album', array($is_album));
32
- wp_localize_script('rtmedia-backbone', 'is_edit_allowed', array($is_edit_allowed));
33
  }
34
 
35
  function enqueue_image_editor_scripts() {
@@ -37,8 +36,7 @@ class RTMediaTemplate {
37
  wp_enqueue_script( 'wp-ajax-response' );
38
  wp_enqueue_script( 'rtmedia-image-edit', admin_url( "js/image-edit$suffix.js" ), array( 'jquery', 'json2', 'imgareaselect' ), false, 1 );
39
  wp_enqueue_style( 'rtmedia-image-edit', RTMEDIA_URL . 'app/assets/css/image-edit.css' );
40
- wp_enqueue_style( 'rtmedia-image-area-select', includes_url('/js/imgareaselect/imgareaselect.css') );
41
-
42
  }
43
 
44
  /**
@@ -61,10 +59,10 @@ class RTMediaTemplate {
61
 
62
  //print_r($rtmedia_query);
63
 
64
- if(isset($rtmedia_query->action_query->action)){
65
  //echo $rtmedia_query->action_query->action;
66
  do_action( 'rtmedia_pre_action_' . $rtmedia_query->action_query->action );
67
- }else{
68
  do_action( 'rtmedia_pre_action_default' );
69
  }
70
 
@@ -84,8 +82,7 @@ class RTMediaTemplate {
84
  $this->check_return_comments();
85
 
86
  return $this->get_default_template();
87
-
88
- } else if ( ! $shortcode_attr ){
89
  return $this->get_default_template();
90
  } else if ( $shortcode_attr[ 'name' ] == 'gallery' ) {
91
  $valid = $this->sanitize_gallery_attributes( $shortcode_attr[ 'attr' ] );
@@ -95,12 +92,12 @@ class RTMediaTemplate {
95
  $this->update_global_query( $shortcode_attr[ 'attr' ] );
96
  include $this->locate_template( $template );
97
  } else {
98
- echo __('Invalid attribute passed for rtmedia_gallery shortcode.','rtmedia');
99
  return false;
100
  }
101
  }
102
  }
103
-
104
  function check_return_json() {
105
  global $rtmedia_query;
106
  if ( $rtmedia_query->format == 'json' ) {
@@ -110,11 +107,12 @@ class RTMediaTemplate {
110
  }
111
  }
112
 
113
- function check_return_upload(){
114
  global $rtmedia_query;
115
- if ( $rtmedia_query->action_query->action != 'upload' ) return;
116
- $upload = new RTMediaUploadEndpoint();
117
- $upload->template_redirect();
 
118
  }
119
 
120
  function json_output() {
@@ -124,10 +122,10 @@ class RTMediaTemplate {
124
  foreach ( $rtmedia_query->media as $key => $media ) {
125
  $media_array[ $key ] = $media;
126
  list($src, $width, $height) = wp_get_attachment_image_src( $media->media_id, 'thumbnail' );
127
- if(!$src){
128
- global $rtmedia;
129
- $src = $rtmedia->allowed_types[$media->media_type]["thumbnail"];
130
- }
131
  $media_array[ $key ]->guid = $src;
132
  $media_array[ $key ]->rt_permalink = get_rtmedia_permalink( $media->id );
133
  }
@@ -161,13 +159,12 @@ class RTMediaTemplate {
161
 
162
  // do_action('rtmedia_before_update_media',$rtmedia_query->action_query->id);
163
 
164
- $data = rtmedia_sanitize_object($_POST, array('media_title','description','privacy'));
165
  $media = new RTMediaMedia();
166
  $media->update( $rtmedia_query->action_query->id, $data, $rtmedia_query->media[ 0 ]->media_id );
167
  $rtmedia_query->query( false );
168
 
169
  // do_action('rtmedia_after_update_media',$rtmedia_query->action_query->id);
170
-
171
  } else {
172
  echo __( "Ooops !!! Invalid access. No nonce was found !!", "rtmedia" );
173
  }
@@ -315,52 +312,47 @@ class RTMediaTemplate {
315
  exit;
316
  }
317
 
318
-
319
-
320
-
321
-
322
- function check_return_comments(){
323
  global $rtmedia_query;
324
 
325
- if ( $rtmedia_query->action_query->action != 'comment' ) return;
326
- if ( isset( $rtmedia_query->action_query->id ) && count( $_POST ) ) {
327
- /**
328
- * /media/comments [POST]
329
- * Post a comment to the album by post id
330
- */
331
- $nonce = $_REQUEST[ 'rtmedia_comment_nonce' ];
332
- if ( wp_verify_nonce( $nonce, 'rtmedia_comment_nonce' ) ) {
333
- if(empty($_POST['comment_content'])){
334
- return false;
335
- }
336
- $comment = new RTMediaComment();
337
- $attr = $_POST;
338
- if ( ! isset( $attr[ 'comment_post_ID' ] ) )
339
- $attr[ 'comment_post_ID' ] = $rtmedia_query->action_query->id;
340
- $id = $comment->add( $attr );
341
-
342
- $mediaModel = new RTMediaModel();
343
- $result=$mediaModel->get(array('id'=>$rtmedia_query->action_query->id));
344
-
345
- if($result[0]->activity_id!=NULL) {
346
- global $rtmedia_buddypress_activity;
347
- remove_action("bp_activity_comment_posted", array($rtmedia_buddypress_activity,"comment_sync"),10,2);
348
- if(function_exists('bp_activity_new_comment')) {
349
- bp_activity_new_comment(array('content'=> $_POST['comment_content'], 'activity_id'=> $result[0]->activity_id));
350
- }
351
- }
352
- if(isset($_POST["rtajax"])){
353
- global $wpdb;
354
- $comments = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_ID = %d",$id), ARRAY_A);
355
- echo rmedia_single_comment($comments);
356
- exit;
357
- }
358
- }
359
- else {
360
- echo "Ooops !!! Invalid access. No nonce was found !!";
361
  }
362
  }
363
-
 
 
 
 
 
 
 
 
 
364
  }
365
 
366
  /**
@@ -418,7 +410,6 @@ class RTMediaTemplate {
418
  global $rtmedia_query;
419
 
420
  $rtmedia_query->query( $attr );
421
-
422
  }
423
 
424
  /**
@@ -428,7 +419,7 @@ class RTMediaTemplate {
428
  */
429
  function get_default_template() {
430
 
431
- return apply_filters( 'rtmedia_media_template_include', RTMEDIA_PATH . 'app/main/controllers/template/template.php' );
432
  }
433
 
434
  /**
@@ -437,18 +428,46 @@ class RTMediaTemplate {
437
  * @param type $template
438
  * @return string
439
  */
440
- static function locate_template( $template, $context = false ) {
441
  $located = '';
442
- if ( ! $template )
443
- return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
444
 
445
  $template_name = $template . '.php';
446
 
447
- if ( ! $context )
448
- $context = 'rtmedia';
 
 
 
 
 
449
 
450
- $path = '/' . $context . '/';
451
- $ogpath = 'templates/media/';
452
 
453
 
454
  if ( file_exists( STYLESHEETPATH . $path . $template_name ) ) {
13
  public $media_args;
14
 
15
  function __construct() {
16
+ global $rtmedia_query;
17
+ if ( $rtmedia_query ) {
18
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
19
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_image_editor_scripts' ) );
20
+ }
 
21
  }
22
 
23
  /**
25
  */
26
  function enqueue_scripts() {
27
  wp_enqueue_script( 'rtmedia-backbone' );
28
+ $is_album = is_rtmedia_album() ? true : false;
29
+ $is_edit_allowed = is_rtmedia_edit_allowed() ? true : false;
30
+ wp_localize_script( 'rtmedia-backbone', 'is_album', array( $is_album ) );
31
+ wp_localize_script( 'rtmedia-backbone', 'is_edit_allowed', array( $is_edit_allowed ) );
32
  }
33
 
34
  function enqueue_image_editor_scripts() {
36
  wp_enqueue_script( 'wp-ajax-response' );
37
  wp_enqueue_script( 'rtmedia-image-edit', admin_url( "js/image-edit$suffix.js" ), array( 'jquery', 'json2', 'imgareaselect' ), false, 1 );
38
  wp_enqueue_style( 'rtmedia-image-edit', RTMEDIA_URL . 'app/assets/css/image-edit.css' );
39
+ wp_enqueue_style( 'rtmedia-image-area-select', includes_url( '/js/imgareaselect/imgareaselect.css' ) );
 
40
  }
41
 
42
  /**
59
 
60
  //print_r($rtmedia_query);
61
 
62
+ if ( isset( $rtmedia_query->action_query->action ) ) {
63
  //echo $rtmedia_query->action_query->action;
64
  do_action( 'rtmedia_pre_action_' . $rtmedia_query->action_query->action );
65
+ } else {
66
  do_action( 'rtmedia_pre_action_default' );
67
  }
68
 
82
  $this->check_return_comments();
83
 
84
  return $this->get_default_template();
85
+ } else if ( ! $shortcode_attr ) {
 
86
  return $this->get_default_template();
87
  } else if ( $shortcode_attr[ 'name' ] == 'gallery' ) {
88
  $valid = $this->sanitize_gallery_attributes( $shortcode_attr[ 'attr' ] );
92
  $this->update_global_query( $shortcode_attr[ 'attr' ] );
93
  include $this->locate_template( $template );
94
  } else {
95
+ echo __( 'Invalid attribute passed for rtmedia_gallery shortcode.', 'rtmedia' );
96
  return false;
97
  }
98
  }
99
  }
100
+
101
  function check_return_json() {
102
  global $rtmedia_query;
103
  if ( $rtmedia_query->format == 'json' ) {
107
  }
108
  }
109
 
110
+ function check_return_upload() {
111
  global $rtmedia_query;
112
+ if ( $rtmedia_query->action_query->action != 'upload' )
113
+ return;
114
+ $upload = new RTMediaUploadEndpoint();
115
+ $upload->template_redirect();
116
  }
117
 
118
  function json_output() {
122
  foreach ( $rtmedia_query->media as $key => $media ) {
123
  $media_array[ $key ] = $media;
124
  list($src, $width, $height) = wp_get_attachment_image_src( $media->media_id, 'thumbnail' );
125
+ if ( ! $src ) {
126
+ global $rtmedia;
127
+ $src = $rtmedia->allowed_types[ $media->media_type ][ "thumbnail" ];
128
+ }
129
  $media_array[ $key ]->guid = $src;
130
  $media_array[ $key ]->rt_permalink = get_rtmedia_permalink( $media->id );
131
  }
159
 
160
  // do_action('rtmedia_before_update_media',$rtmedia_query->action_query->id);
161
 
162
+ $data = rtmedia_sanitize_object( $_POST, array( 'media_title', 'description', 'privacy' ) );
163
  $media = new RTMediaMedia();
164
  $media->update( $rtmedia_query->action_query->id, $data, $rtmedia_query->media[ 0 ]->media_id );
165
  $rtmedia_query->query( false );
166
 
167
  // do_action('rtmedia_after_update_media',$rtmedia_query->action_query->id);
 
168
  } else {
169
  echo __( "Ooops !!! Invalid access. No nonce was found !!", "rtmedia" );
170
  }
312
  exit;
313
  }
314
 
315
+ function check_return_comments() {
 
 
 
 
316
  global $rtmedia_query;
317
 
318
+ if ( $rtmedia_query->action_query->action != 'comment' )
319
+ return;
320
+ if ( isset( $rtmedia_query->action_query->id ) && count( $_POST ) ) {
321
+ /**
322
+ * /media/comments [POST]
323
+ * Post a comment to the album by post id
324
+ */
325
+ $nonce = $_REQUEST[ 'rtmedia_comment_nonce' ];
326
+ if ( wp_verify_nonce( $nonce, 'rtmedia_comment_nonce' ) ) {
327
+ if ( empty( $_POST[ 'comment_content' ] ) ) {
328
+ return false;
329
+ }
330
+ $comment = new RTMediaComment();
331
+ $attr = $_POST;
332
+ if ( ! isset( $attr[ 'comment_post_ID' ] ) )
333
+ $attr[ 'comment_post_ID' ] = $rtmedia_query->action_query->id;
334
+ $id = $comment->add( $attr );
335
+
336
+ $mediaModel = new RTMediaModel();
337
+ $result = $mediaModel->get( array( 'id' => $rtmedia_query->action_query->id ) );
338
+
339
+ if ( $result[ 0 ]->activity_id != NULL ) {
340
+ global $rtmedia_buddypress_activity;
341
+ remove_action( "bp_activity_comment_posted", array( $rtmedia_buddypress_activity, "comment_sync" ), 10, 2 );
342
+ if ( function_exists( 'bp_activity_new_comment' ) ) {
343
+ bp_activity_new_comment( array( 'content' => $_POST[ 'comment_content' ], 'activity_id' => $result[ 0 ]->activity_id ) );
 
 
 
 
 
 
 
 
 
 
344
  }
345
  }
346
+ if ( isset( $_POST[ "rtajax" ] ) ) {
347
+ global $wpdb;
348
+ $comments = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->comments WHERE comment_ID = %d", $id ), ARRAY_A );
349
+ echo rmedia_single_comment( $comments );
350
+ exit;
351
+ }
352
+ } else {
353
+ echo "Ooops !!! Invalid access. No nonce was found !!";
354
+ }
355
+ }
356
  }
357
 
358
  /**
410
  global $rtmedia_query;
411
 
412
  $rtmedia_query->query( $attr );
 
413
  }
414
 
415
  /**
419
  */
420
  function get_default_template() {
421
 
422
+ return apply_filters( 'rtmedia_media_template_include', self::locate_template('main','') );
423
  }
424
 
425
  /**
428
  * @param type $template
429
  * @return string
430
  */
431
+ static function locate_template( $template=false, $context = false ) {
432
  $located = '';
433
+ if ( ! $template ) {
434
+ global $rtmedia_query;
435
+
436
+ if ( is_rtmedia_album_gallery() ) {
437
+ $template = 'album-gallery';
438
+ } elseif ( is_rtmedia_album() || is_rtmedia_gallery() ) {
439
+ $template = 'media-gallery';
440
+ if (
441
+ is_rtmedia_album() &&
442
+ isset( $rtmedia_query->media_query ) &&
443
+ $rtmedia_query->action_query->action == 'edit'
444
+ ) {
445
+ if ( isset( $rtmedia_query->media_query[ 'media_author' ] ) && (get_current_user_id() == $rtmedia_query->media_query[ 'media_author' ]) ) {
446
+ $template = 'album-single-edit';
447
+ }
448
+ }
449
+ } else if ( is_rtmedia_single() ) {
450
+ $template = 'media-single';
451
+ if ( $rtmedia_query->action_query->action == 'edit' )
452
+ $template = 'media-single-edit';
453
+ }else{
454
+ return;
455
+ }
456
+ }
457
+
458
 
459
  $template_name = $template . '.php';
460
 
461
+ if ( $context===false ){
462
+ $context = 'media/';
463
+ }
464
+ if(!$context===''){
465
+ $context .='/';
466
+ }
467
+
468
 
469
+ $path = 'rtmedia/' . $context ;
470
+ $ogpath = 'templates/' . $context ;
471
 
472
 
473
  if ( file_exists( STYLESHEETPATH . $path . $template_name ) ) {
app/main/controllers/template/rt-template-functions.php CHANGED
@@ -476,6 +476,9 @@ function rtmedia_pagination_next_link() {
476
  $link .= $site_url . $post->post_name . '/';
477
  }
478
  $link .= 'media/';
 
 
 
479
  if (isset($rtmedia_query->action_query->media_type)) {
480
  if (in_array($rtmedia_query->action_query->media_type, array("photo", "music", "video", "album")))
481
  $link .= $rtmedia_query->action_query->media_type . '/';
@@ -775,7 +778,7 @@ function rtmedia_album_edit() {
775
  <?php wp_nonce_field('rtmedia_delete_album_' . $rtmedia_query->media_query['album_id'], 'rtmedia_delete_album_nonce'); ?>
776
  <input type="submit" name="album-delete" value="<?php _e('Delete', 'rtmedia'); ?>" />
777
  </form>
778
- <?php
779
  if( $album_list = rtmedia_user_album_list()){ ?>
780
  <input type="button" class="button rtmedia-merge" value="<?php _e('Merge', 'rtmedia'); ?>" />
781
  <div class="rtmedia-merge-container">
@@ -824,4 +827,7 @@ function is_rtmedia_album_enable(){
824
  }
825
  return false;
826
  }
827
-
 
 
 
476
  $link .= $site_url . $post->post_name . '/';
477
  }
478
  $link .= 'media/';
479
+ if(isset($rtmedia_query->media_query["album_id"]) && intval($rtmedia_query->media_query["album_id"]) > 0){
480
+ $link .= $rtmedia_query->media_query["album_id"] . "/";
481
+ }
482
  if (isset($rtmedia_query->action_query->media_type)) {
483
  if (in_array($rtmedia_query->action_query->media_type, array("photo", "music", "video", "album")))
484
  $link .= $rtmedia_query->action_query->media_type . '/';
778
  <?php wp_nonce_field('rtmedia_delete_album_' . $rtmedia_query->media_query['album_id'], 'rtmedia_delete_album_nonce'); ?>
779
  <input type="submit" name="album-delete" value="<?php _e('Delete', 'rtmedia'); ?>" />
780
  </form>
781
+ <?php
782
  if( $album_list = rtmedia_user_album_list()){ ?>
783
  <input type="button" class="button rtmedia-merge" value="<?php _e('Merge', 'rtmedia'); ?>" />
784
  <div class="rtmedia-merge-container">
827
  }
828
  return false;
829
  }
830
+
831
+ function rtmedia_load_template(){
832
+ include(RTMediaTemplate::locate_template());
833
+ }
app/main/controllers/upload/RTMediaUploadEndpoint.php CHANGED
@@ -27,7 +27,7 @@ class RTMediaUploadEndpoint {
27
  $nonce = $_REQUEST['rtmedia_upload_nonce'];
28
  $mode = $_REQUEST['mode'];
29
  $rtupload =false;
30
- $activity_id = -1;
31
  if (wp_verify_nonce($nonce, 'rtmedia_upload_nonce')) {
32
  $model = new RTMediaUploadModel();
33
  $this->upload = $model->set_post_object();
@@ -38,10 +38,23 @@ class RTMediaUploadEndpoint {
38
  $rtupload = new RTMediaUpload($this->upload);
39
  $mediaObj = new RTMediaMedia();
40
  $media = $mediaObj->model->get(array('id'=>$rtupload->media_ids[0]));
41
- if($activity_id==-1) {
42
  $activity_id = $mediaObj->insert_activity($rtupload->media_ids[0], $media[0]);
43
  } else {
44
  $mediaObj->model->update(array( 'activity_id' => $activity_id ), array( 'id' => $rtupload->media_ids[0] ));
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
  }
47
  if(isset($_POST["redirect"]) && $_POST["redirect"]=="no" ){
27
  $nonce = $_REQUEST['rtmedia_upload_nonce'];
28
  $mode = $_REQUEST['mode'];
29
  $rtupload =false;
30
+ $activity_id = -1;
31
  if (wp_verify_nonce($nonce, 'rtmedia_upload_nonce')) {
32
  $model = new RTMediaUploadModel();
33
  $this->upload = $model->set_post_object();
38
  $rtupload = new RTMediaUpload($this->upload);
39
  $mediaObj = new RTMediaMedia();
40
  $media = $mediaObj->model->get(array('id'=>$rtupload->media_ids[0]));
41
+ if($activity_id==-1 && (!(isset($_POST["rtmedia_update"]) && $_POST["rtmedia_update"]=="true"))) {
42
  $activity_id = $mediaObj->insert_activity($rtupload->media_ids[0], $media[0]);
43
  } else {
44
  $mediaObj->model->update(array( 'activity_id' => $activity_id ), array( 'id' => $rtupload->media_ids[0] ));
45
+ $same_medias = $mediaObj->model->get(array('activity_id'=>$activity_id));
46
+
47
+ $update_activity_media = Array();
48
+ foreach($same_medias as $a_media){
49
+ $update_activity_media[] = $a_media->id;
50
+ }
51
+ $privacy = 0;
52
+ if(isset($_POST["privacy"])){
53
+ $privacy = $_POST["privacy"];
54
+ }
55
+ $objActivity = new RTMediaActivity($update_activity_media, $privacy, false);
56
+ global $wpdb, $bp;
57
+ $wpdb->update($bp->activity->table_name, array("type" => "rtmedia_update", "content" => $objActivity->create_activity_html()), array("id" => $activity_id));
58
  }
59
  }
60
  if(isset($_POST["redirect"]) && $_POST["redirect"]=="no" ){
app/main/controllers/upload/RTMediaUploadView.php CHANGED
@@ -46,7 +46,7 @@ class RTMediaUploadView {
46
  if ( $rtmedia_query && is_rtmedia_album()){
47
  $album = '<input class="rtmedia-current-album" type="hidden" name="rtmedia-current-album" value="'.$rtmedia_query->media_query['album_id'].'" />';
48
  }elseif (is_rtmedia_album_enable () && $rtmedia_query && is_rtmedia_gallery() ){
49
-
50
  if($rtmedia_query->query['context']=='profile'){
51
  $album = '<select name="album" class="rtmedia-user-album-list">'.rtmedia_user_album_list().'</select>';
52
  }
@@ -90,10 +90,10 @@ class RTMediaUploadView {
90
 
91
  if (!$template_name)
92
  $located = false;
93
- if (file_exists(STYLESHEETPATH . '/rtmedia/' . $template_name)) {
94
- $located = STYLESHEETPATH . '/rtmedia/' . $template_name;
95
- } else if (file_exists(TEMPLATEPATH . '/rtmedia/' . $template_name)) {
96
- $located = TEMPLATEPATH . '/rtmedia/' . $template_name;
97
  } else {
98
  $located = RTMEDIA_PATH . 'templates/upload/' . $template_name;
99
  }
46
  if ( $rtmedia_query && is_rtmedia_album()){
47
  $album = '<input class="rtmedia-current-album" type="hidden" name="rtmedia-current-album" value="'.$rtmedia_query->media_query['album_id'].'" />';
48
  }elseif (is_rtmedia_album_enable () && $rtmedia_query && is_rtmedia_gallery() ){
49
+
50
  if($rtmedia_query->query['context']=='profile'){
51
  $album = '<select name="album" class="rtmedia-user-album-list">'.rtmedia_user_album_list().'</select>';
52
  }
90
 
91
  if (!$template_name)
92
  $located = false;
93
+ if (file_exists(STYLESHEETPATH . '/rtmedia/upload/' . $template_name)) {
94
+ $located = STYLESHEETPATH . '/rtmedia/upload/' . $template_name;
95
+ } else if (file_exists(TEMPLATEPATH . '/rtmedia/upload/' . $template_name)) {
96
+ $located = TEMPLATEPATH . '/rtmedia/upload/' . $template_name;
97
  } else {
98
  $located = RTMEDIA_PATH . 'templates/upload/' . $template_name;
99
  }
app/main/routers/query/RTMediaQuery.php CHANGED
@@ -256,10 +256,14 @@ class RTMediaQuery {
256
  case 'id':
257
 
258
  // /media/23/edit/ | media/23/delete/ | /media/23/like/
259
- if ( array_key_exists( $second_modifier, $this->actions ) ) {
260
 
261
  $action = $second_modifier;
262
- }
 
 
 
 
263
  break;
264
 
265
  case 'pg':
256
  case 'id':
257
 
258
  // /media/23/edit/ | media/23/delete/ | /media/23/like/
259
+ if ( array_key_exists( $second_modifier, $this->actions ) ) {
260
 
261
  $action = $second_modifier;
262
+ }else if($second_modifier == "pg"){
263
+ if(isset($raw_query[ 2 ]) && is_numeric($raw_query[ 2 ])){
264
+ $pageno = $raw_query[ 2 ];
265
+ }
266
+ }
267
  break;
268
 
269
  case 'pg':
index.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: rtMedia for WordPress, BuddyPress and bbPress
4
  Plugin URI: http://rtcamp.com/buddypress-media/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media
5
  Description: This plugin adds missing media rich features like photos, videos and audio uploading to BuddyPress which are essential if you are building social network, seriously!
6
- Version: 3.0.2
7
  Author: rtCamp
8
  Text Domain: rtmedia
9
  Author URI: http://rtcamp.com/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media
3
  Plugin Name: rtMedia for WordPress, BuddyPress and bbPress
4
  Plugin URI: http://rtcamp.com/buddypress-media/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media
5
  Description: This plugin adds missing media rich features like photos, videos and audio uploading to BuddyPress which are essential if you are building social network, seriously!
6
+ Version: 3.0.3
7
  Author: rtCamp
8
  Text Domain: rtmedia
9
  Author URI: http://rtcamp.com/?utm_source=dashboard&utm_medium=plugin&utm_campaign=buddypress-media
readme.txt CHANGED
@@ -6,7 +6,7 @@ License: GPLv2 or later
6
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
7
  Requires at least: WordPress 3.5
8
  Tested up to: WordPress 3.5.2 + BuddyPress 1.7
9
- Stable tag: 3.0.2
10
 
11
  rtMedia adds albums, audio/video encoding, privacy/sharing, front-end uploads & more. All this works nicely on mobile/tablets devices.
12
 
@@ -160,6 +160,13 @@ Please visit [rtMedia's Features page](http://rtcamp.com/buddypress-media/?utm_s
160
 
161
  Please visit [rtMedia's Roadmap page](http://rtcamp.com/buddypress-media/roadmap/?utm_source=readme&utm_medium=plugin&utm_campaign=buddypress-media "Visit rtMedia's Features page") to get some details about future releases.
162
 
 
 
 
 
 
 
 
163
  = 3.0.2 =
164
  * Legacy code added for Addon Updates
165
  * Added album enable /disable option
@@ -469,8 +476,8 @@ Please visit [rtMedia's Roadmap page](http://rtcamp.com/buddypress-media/roadmap
469
 
470
  == Upgrade Notice ==
471
 
472
- = 3.0.2 =
473
- Legacy code added for Addon Updates. Added album enable /disable option. Resolved other minor issues
474
 
475
  == Sponsors ==
476
 
6
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
7
  Requires at least: WordPress 3.5
8
  Tested up to: WordPress 3.5.2 + BuddyPress 1.7
9
+ Stable tag: 3.0.3
10
 
11
  rtMedia adds albums, audio/video encoding, privacy/sharing, front-end uploads & more. All this works nicely on mobile/tablets devices.
12
 
160
 
161
  Please visit [rtMedia's Roadmap page](http://rtcamp.com/buddypress-media/roadmap/?utm_source=readme&utm_medium=plugin&utm_campaign=buddypress-media "Visit rtMedia's Features page") to get some details about future releases.
162
 
163
+ = 3.0.3 =
164
+ * Improved template system
165
+ * Fixed bug with audio/video uploads
166
+ * Fixed bug with featured media
167
+ * Fixed activity duplication issue
168
+ * Other minor bug fixes
169
+
170
  = 3.0.2 =
171
  * Legacy code added for Addon Updates
172
  * Added album enable /disable option
476
 
477
  == Upgrade Notice ==
478
 
479
+ = 3.0.3 =
480
+ Fixed bugs. Improved template system.
481
 
482
  == Sponsors ==
483
 
templates/main.php ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /****************************************
4
+ * Main.php
5
+ *
6
+ * The main template file, that loads the header, footer and sidebar
7
+ * apart from loading the appropriate rtMedia template
8
+ *****************************************/
9
+ // by default it is not an ajax request
10
+
11
+ $ajax = false;
12
+
13
+ // check if it is an ajax request
14
+ if (
15
+ ! empty( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ] ) &&
16
+ strtolower( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ] ) == 'xmlhttprequest'
17
+ ){
18
+ $ajax = true;
19
+ }
20
+
21
+
22
+ //if it's not an ajax request, load headers
23
+ if ( ! $ajax ) {
24
+
25
+ // if this is a BuddyPress page, set template type to
26
+ // buddypress to load appropriate headers
27
+ if ( class_exists( 'BuddyPress' ) && ! bp_is_blog_page() ) {
28
+ $template_type = 'buddypress';
29
+ } else {
30
+ $template_type = '';
31
+ }
32
+
33
+ get_header( $template_type );
34
+
35
+ // the markup for the template starts
36
+ ?>
37
+
38
+
39
+ <div id="primary" class="site-content">
40
+
41
+
42
+ <?php
43
+ if ( $template_type == 'buddypress' ) {
44
+ //load buddypress markup
45
+ ?>
46
+ <div id ="content">
47
+ <div id="buddypress" class="padder">
48
+
49
+ <?php
50
+
51
+ if ( bp_displayed_user_id() ) {
52
+
53
+ //if it is a buddypress member profile
54
+
55
+ ?>
56
+ <div id="item-header">
57
+
58
+ <?php bp_get_template_part( 'members/single/member-header' ) ?>
59
+
60
+ </div><!--#item-header-->
61
+
62
+ <div id="item-nav">
63
+ <div class="item-list-tabs no-ajax" id="object-nav" role="navigation">
64
+ <ul>
65
+
66
+ <?php bp_get_displayed_user_nav(); ?>
67
+
68
+ <?php do_action( 'bp_member_options_nav' ); ?>
69
+
70
+ </ul>
71
+ </div>
72
+ </div><!--#item-nav-->
73
+
74
+ <div id="item-body">
75
+
76
+ <?php do_action( 'bp_before_member_body' ); ?>
77
+ <?php do_action( 'bp_before_member_media' ); ?>
78
+ <div class="item-list-tabs no-ajax" id="subnav">
79
+ <ul>
80
+
81
+ <?php rtmedia_sub_nav(); ?>
82
+
83
+ <?php do_action( 'rtmedia_sub_nav' ); ?>
84
+
85
+ </ul>
86
+ </div><!-- .item-list-tabs -->
87
+
88
+ <?php
89
+ } else if ( bp_is_group() ) {
90
+
91
+ //not a member profile, but a group
92
+ ?>
93
+
94
+ <?php
95
+ if ( bp_has_groups() ) : while ( bp_groups() ) : bp_the_group();
96
+ ?>
97
+ <div id="item-header">
98
+
99
+ <?php bp_get_template_part( 'groups/single/group-header' ); ?>
100
+
101
+ </div><!--#item-header-->
102
+
103
+ <div id="item-nav">
104
+ <div class="item-list-tabs no-ajax" id="object-nav" role="navigation">
105
+ <ul>
106
+
107
+ <?php bp_get_options_nav(); ?>
108
+
109
+ <?php do_action( 'bp_group_options_nav' ); ?>
110
+
111
+ </ul>
112
+ </div>
113
+ </div><!-- #item-nav -->
114
+
115
+
116
+ <div id="item-body">
117
+
118
+ <?php do_action( 'bp_before_group_body' ); ?>
119
+ <?php do_action( 'bp_before_group_media' ); ?>
120
+ <div class="item-list-tabs no-ajax" id="subnav">
121
+ <ul>
122
+
123
+ <?php rtmedia_sub_nav(); ?>
124
+
125
+ <?php do_action( 'rtmedia_sub_nav' ); ?>
126
+
127
+ </ul>
128
+ </div><!-- .item-list-tabs -->
129
+ <?php
130
+ endwhile;
131
+ endif;
132
+ } // group/profile if/else
133
+ } //if BuddyPress
134
+ } // if ajax
135
+
136
+
137
+ // include the right rtMedia template
138
+ rtmedia_load_template();
139
+
140
+
141
+
142
+
143
+ if ( ! $ajax ) {
144
+ if ( $template_type == 'buddypress' && (bp_displayed_user_id() || bp_is_group()) ) {
145
+
146
+ if ( bp_is_group() ) {
147
+ do_action( 'bp_after_group_media' );
148
+ do_action( 'bp_after_group_body' );
149
+ }
150
+ if ( bp_displayed_user_id() ) {
151
+ do_action( 'bp_after_member_media' );
152
+ do_action( 'bp_after_member_body' );
153
+ }
154
+ //close all markup
155
+ ?>
156
+
157
+ </div><!--#item-body-->
158
+ </div><!--#buddypress-->
159
+ </div><!--#content-->
160
+ </div><!--#site-content-->
161
+
162
+ <?php
163
+ get_sidebar( $template_type );
164
+
165
+ get_footer( $template_type );
166
+ } //if Buddypress
167
+ } // if ajax
168
+ ?>
templates/media/album-gallery.php CHANGED
@@ -19,12 +19,24 @@
19
 
20
  <!-- these links will be handled by backbone later
21
  -- get request parameters will be removed -->
22
- <?php if(rtmedia_offset() != 0) { ?>
23
- <a href="?rtmedia_page=<?php echo rtmedia_page()-1; ?>"><?php echo __('Prev','rtmedia'); ?></a>
24
- <?php } ?>
25
- <?php if(rtmedia_offset()+ rtmedia_per_page_media() < rtmedia_count()) { ?>
26
- <a href="?rtmedia_page=<?php echo rtmedia_page()+1; ?>"><?php echo __('Next','rtmedia'); ?></a>
27
- <?php } ?>
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
  <?php } else { ?>
30
  <p><?php echo __("Oops !! There's no media found for the request !!","rtmedia"); ?></p>
19
 
20
  <!-- these links will be handled by backbone later
21
  -- get request parameters will be removed -->
22
+ <?php
23
+ $display = '';
24
+ if (rtmedia_offset() != 0)
25
+ $display = 'style="display:block;"';
26
+ else
27
+ $display = 'style="display:none;"';
28
+ ?>
29
+ <a id="rtMedia-galary-prev" <?php echo $display; ?> href="<?php echo rtmedia_pagination_prev_link(); ?>"><?php echo __('Prev','rtmedia'); ?></a>
30
+
31
+ <?php
32
+ $display = '';
33
+ if (rtmedia_offset() + rtmedia_per_page_media() < rtmedia_count())
34
+ $display = 'style="display:block;"';
35
+ else
36
+ $display = 'style="display:none;"';
37
+ ?>
38
+ <a id="rtMedia-galary-next" <?php echo $display; ?> href="<?php echo rtmedia_pagination_next_link(); ?>"><?php echo __('Next','rtmedia'); ?></a>
39
+
40
 
41
  <?php } else { ?>
42
  <p><?php echo __("Oops !! There's no media found for the request !!","rtmedia"); ?></p>