wpForo Forum - Version 1.5.1

Version Description

Download this release

Release Info

Developer Tomdever
Plugin Icon 128x128 wpForo Forum
Version 1.5.1
Comparing to
See all releases

Code changes from version 1.5.0 to 1.5.1

readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: gVectors Team
3
Tags: forum, forums, forum plugin, WordPress forum plugin, community, discussion
4
Requires at least: 4.1
5
Tested up to: 4.9
6
- Stable tag: 1.5.0
7
Requires PHP: 5.4 and higher
8
License: GPLv2 or later
9
License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -36,7 +36,7 @@ GDPR Compliance: [https://wpforo.com/gdpr/](https://wpforo.com/gdpr/)
36
37
= Forum Integration =
38
39
- wpForo forum plugin is well integrated with many Profile Builder and Membership plugins, especially with **BuddyPress** and **Ultimate Members** plugins.
40
41
42
= FORUM FEATURES =
@@ -156,10 +156,16 @@ Find wpForo forum plugin addons on [gVectors Team website...](https://gvectors.c
156
157
== Changelog ==
158
159
- = wpForo Forum 1.5.0 | 09.07.2018 =
160
161
- [wpForo v1.5.0 Release Summary](https://wpforo.com/community/wpforo-announcements/wpforo-1-5-0-is-released/)
162
163
* Added: User Role-Usergroup Synchronization
164
* Added: Automatically change Usergroup based on User Role
165
* Added: Option to set Forum Usergroup for each User Role
3
Tags: forum, forums, forum plugin, WordPress forum plugin, community, discussion
4
Requires at least: 4.1
5
Tested up to: 4.9
6
+ Stable tag: 1.5.1
7
Requires PHP: 5.4 and higher
8
License: GPLv2 or later
9
License URI: https://www.gnu.org/licenses/gpl-2.0.html
36
37
= Forum Integration =
38
39
+ wpForo forum plugin is well integrated with many Profile Builder and Membership plugins, such as **BuddyPress** and **Ultimate Members** plugins.
40
41
42
= FORUM FEATURES =
156
157
== Changelog ==
158
159
+ = wpForo Forum 1.5.0 / 1.5.1 | 11.07.2018 =
160
161
+ [wpForo v1.5.0 and 1.5.1 Release Summary](https://wpforo.com/community/wpforo-announcements/wpforo-1-5-0-is-released/)
162
163
+ * wpForo Forum v1.5.1
164
+ * Added: Options to manage topic/post editing logs
165
+ * Fixed Bug: UM Integration issue on wpForo activation
166
+ * Fixed Bug: Long phrases cannot be changed in wpForo Phrase system
167
+ * --------------------
168
+ * wpForo Forum v1.5.0
169
* Added: User Role-Usergroup Synchronization
170
* Added: Automatically change Usergroup based on User Role
171
* Added: Option to set Forum Usergroup for each User Role
wpf-admin/options-tabs/posts.php CHANGED
@@ -18,6 +18,30 @@
18
<input id="rpt-posts" type="radio" name="wpforo_post_options[recent_posts_type]" value="posts" <?php wpfo_check(WPF()->post->options['recent_posts_type'], 'posts'); ?>/><label for="rpt-posts"><?php _e('Posts','wpforo'); ?></label>
19
</div>
20
</td>
21
</tr>
22
<tr>
23
<th><label for="topics_per_page"><?php _e('Number of Topics per Page', 'wpforo'); ?> <a href="https://wpforo.com/docs/root/wpforo-settings/topic-post-settings/#item-per-page" title="<?php _e('Read the documentation', 'wpforo') ?>" target="_blank"><i class="far fa-question-circle"></i></a></label></th>
18
<input id="rpt-posts" type="radio" name="wpforo_post_options[recent_posts_type]" value="posts" <?php wpfo_check(WPF()->post->options['recent_posts_type'], 'posts'); ?>/><label for="rpt-posts"><?php _e('Posts','wpforo'); ?></label>
19
</div>
20
</td>
21
+ </tr>
22
+ <tr>
23
+ <th>
24
+ <label><?php _e('Log Topic Editing Information','wpforo'); ?></label>
25
+ <p class="wpf-info"><?php _e('The post edit logging information "This post was modified 2 hours ago by John" is displayed under modified topic first post content..', 'wpforo') ?></p>
26
+ </th>
27
+ <td>
28
+ <div class="wpf-switch-field">
29
+ <input id="edit_topic_1" type="radio" name="wpforo_post_options[edit_topic]" value="1" <?php wpfo_check(WPF()->post->options['edit_topic'], 1); ?>/><label for="edit_topic_1"><?php _e('Enable','wpforo'); ?></label> &nbsp;
30
+ <input id="edit_topic_0" type="radio" name="wpforo_post_options[edit_topic]" value="0" <?php wpfo_check(WPF()->post->options['edit_topic'], 0); ?>/><label for="edit_topic_0"><?php _e('Disable','wpforo'); ?></label>
31
+ </div>
32
+ </td>
33
+ </tr>
34
+ <tr>
35
+ <th>
36
+ <label><?php _e('Log Post Editing Information','wpforo'); ?></label>
37
+ <p class="wpf-info"><?php _e('The post edit logging information "This post was modified 2 hours ago by John" is displayed under modified post content..', 'wpforo') ?></p>
38
+ </th>
39
+ <td>
40
+ <div class="wpf-switch-field">
41
+ <input id="edit_post_1" type="radio" name="wpforo_post_options[edit_post]" value="1" <?php wpfo_check(WPF()->post->options['edit_post'], 1); ?>/><label for="edit_post_1"><?php _e('Enable','wpforo'); ?></label> &nbsp;
42
+ <input id="edit_post_0" type="radio" name="wpforo_post_options[edit_post]" value="0" <?php wpfo_check(WPF()->post->options['edit_post'], 0); ?>/><label for="edit_post_0"><?php _e('Disable','wpforo'); ?></label>
43
+ </div>
44
+ </td>
45
</tr>
46
<tr>
47
<th><label for="topics_per_page"><?php _e('Number of Topics per Page', 'wpforo'); ?> <a href="https://wpforo.com/docs/root/wpforo-settings/topic-post-settings/#item-per-page" title="<?php _e('Read the documentation', 'wpforo') ?>" target="_blank"><i class="far fa-question-circle"></i></a></label></th>
wpf-includes/class-activity.php CHANGED
@@ -96,12 +96,16 @@ class wpForoActivity
96
private function init_options()
97
{
98
$this->options = get_wpf_option('wpforo_activity_options', $this->default->options);
99
}
100
101
private function init_hooks()
102
{
103
- if ($this->options['edit_topic']) add_action('wpforo_after_edit_topic', array($this, 'action_edit_topic'));
104
- if ($this->options['edit_post']) add_action('wpforo_after_edit_post', array($this, 'action_edit_post'));
105
}
106
107
private function parse_args($args)
96
private function init_options()
97
{
98
$this->options = get_wpf_option('wpforo_activity_options', $this->default->options);
99
+ //Some options are located in Topic & Posts setting page
100
+ foreach( $this->options as $key => $value ){
101
+ if( wpfkey( WPF()->post->options, $key ) ) $this->options[$key] = WPF()->post->options[$key];
102
+ }
103
}
104
105
private function init_hooks()
106
{
107
+ if ( $this->options['edit_topic'] ) add_action('wpforo_after_edit_topic', array($this, 'action_edit_topic'));
108
+ if ( $this->options['edit_post'] ) add_action('wpforo_after_edit_post', array($this, 'action_edit_post'));
109
}
110
111
private function parse_args($args)
wpf-includes/class-members.php CHANGED
@@ -118,7 +118,7 @@ class wpForoMember{
118
$this->pass_min_length = apply_filters('wpforo_pass_min_length', $this->pass_min_length);
119
$this->pass_max_length = apply_filters('wpforo_pass_max_length', $this->pass_max_length);
120
121
- if( !empty($user_fields) && is_array($user_fields) && !empty($user_fields['user_pass1']) ){
122
123
remove_action('register_new_user', 'wp_send_new_user_notifications');
124
add_action('register_new_user', array($this, 'send_new_user_notifications'));
@@ -207,7 +207,7 @@ class wpForoMember{
207
}
208
}
209
}
210
- elseif( !empty($user_fields['user_login']) && !empty($user_fields['user_email']) ){
211
if( strlen($user_fields['user_login']) < $this->login_min_length || strlen($user_fields['user_login']) > $this->login_max_length ){
212
WPF()->notice->add( 'Username length must be between %d characters and %d characters.', 'error', array($this->login_min_length, $this->login_max_length) );
213
return FALSE;
@@ -2648,9 +2648,14 @@ class wpForoMember{
2648
$fields = apply_filters('wpforo_get_register_fields', $fields);
2649
foreach( $fields as $kr => $row ){
2650
foreach( $row as $kc => $cols ){
2651
- foreach( $cols as $field ){
2652
if( 'user_pass' == $field['name'] ){
2653
- $password = true;
2654
}
2655
}
2656
}
118
$this->pass_min_length = apply_filters('wpforo_pass_min_length', $this->pass_min_length);
119
$this->pass_max_length = apply_filters('wpforo_pass_max_length', $this->pass_max_length);
120
121
+ if( !wpforo_feature('user-register-email-confirm') && !empty($user_fields) && is_array($user_fields) && !empty($user_fields['user_pass1']) ){
122
123
remove_action('register_new_user', 'wp_send_new_user_notifications');
124
add_action('register_new_user', array($this, 'send_new_user_notifications'));
207
}
208
}
209
}
210
+ elseif( wpforo_feature('user-register-email-confirm') && !empty($user_fields['user_login']) && !empty($user_fields['user_email']) ){
211
if( strlen($user_fields['user_login']) < $this->login_min_length || strlen($user_fields['user_login']) > $this->login_max_length ){
212
WPF()->notice->add( 'Username length must be between %d characters and %d characters.', 'error', array($this->login_min_length, $this->login_max_length) );
213
return FALSE;
2648
$fields = apply_filters('wpforo_get_register_fields', $fields);
2649
foreach( $fields as $kr => $row ){
2650
foreach( $row as $kc => $cols ){
2651
+ foreach( $cols as $kf => $field ){
2652
if( 'user_pass' == $field['name'] ){
2653
+ if( wpforo_feature('user-register-email-confirm') ){
2654
+ unset( $fields[$kr][$kc][$kf] );
2655
+ $password = false;
2656
+ } else {
2657
+ $password = true;
2658
+ }
2659
}
2660
}
2661
}
wpf-includes/class-posts.php CHANGED
@@ -26,6 +26,8 @@ class wpForoPost{
26
'layout_extended_intro_posts_length' => 50,
27
'recent_posts_type' => 'topics',
28
'topics_per_page' => 10,
29
'eot_durr' => 300,
30
'dot_durr' => 300,
31
'posts_per_page' => 15,
26
'layout_extended_intro_posts_length' => 50,
27
'recent_posts_type' => 'topics',
28
'topics_per_page' => 10,
29
+ 'edit_topic' => 1,
30
+ 'edit_post' => 1,
31
'eot_durr' => 300,
32
'dot_durr' => 300,
33
'posts_per_page' => 15,
wpf-includes/class-template.php CHANGED
@@ -799,7 +799,7 @@ class wpForoTemplate{
799
800
extract($url_data, EXTR_OVERWRITE);
801
802
- $lenght = apply_filters( 'wpforo_breadcrumb_text_lenght', 19 );
803
804
switch($template) :
805
case 'search': ?>
799
800
extract($url_data, EXTR_OVERWRITE);
801
802
+ $lenght = apply_filters( 'wpforo_breadcrumb_text_length', 19 );
803
804
switch($template) :
805
case 'search': ?>
wpf-includes/functions-installation.php CHANGED
@@ -542,6 +542,14 @@ function wpforo_activation(){
542
@WPF()->db->query( "ALTER TABLE `".WPF()->tables->profiles."` ADD `fields` LONGTEXT" );
543
}
544
545
#################################################################
546
// CHECK Addon Notice /////////////////////////////////////////
547
$lastHash = get_option('wpforo-addon-note-dismissed');
542
@WPF()->db->query( "ALTER TABLE `".WPF()->tables->profiles."` ADD `fields` LONGTEXT" );
543
}
544
545
+ #################################################################
546
+ // ADD `fields` field in profiles TABLE //////////////
547
+ $args = array( 'table' => WPF()->tables->phrases, 'col' => 'phrase_key', 'check' => 'col_type' );
548
+ $col_type = strtolower( wpforo_db_check( $args ) );
549
+ if( $col_type != 'text' ){
550
+ @WPF()->db->query( "ALTER TABLE `".WPF()->tables->phrases."` CHANGE `phrase_key` `phrase_key` TEXT;" );
551
+ }
552
+
553
#################################################################
554
// CHECK Addon Notice /////////////////////////////////////////
555
$lastHash = get_option('wpforo-addon-note-dismissed');
wpf-includes/functions-template.php CHANGED
@@ -657,9 +657,10 @@ function wpforo_post_edited($post, $echo = true){
657
$created = wpforo_date($post['created'], 'd/m/Y g:i a', false);
658
$modified = wpforo_date($post['modified'], 'd/m/Y g:i a', false);
659
if( isset($modified) && $created != $modified ){
660
- if($post['is_first_post']){
661
$edit_html = WPF()->activity->build('topic', $post['topicid'], 'edit_topic');
662
- }else{
663
$edit_html = WPF()->activity->build('post', $post['postid'], 'edit_post');
664
}
665
$edit_html = ( $edit_html ) ? sprintf( '<div class="wpf-post-edit-wrap">%s</div>', $edit_html ) : '';
657
$created = wpforo_date($post['created'], 'd/m/Y g:i a', false);
658
$modified = wpforo_date($post['modified'], 'd/m/Y g:i a', false);
659
if( isset($modified) && $created != $modified ){
660
+ if( $post['is_first_post'] && WPF()->activity->options['edit_topic'] ){
661
$edit_html = WPF()->activity->build('topic', $post['topicid'], 'edit_topic');
662
+ }
663
+ elseif( WPF()->activity->options['edit_post'] ){
664
$edit_html = WPF()->activity->build('post', $post['postid'], 'edit_post');
665
}
666
$edit_html = ( $edit_html ) ? sprintf( '<div class="wpf-post-edit-wrap">%s</div>', $edit_html ) : '';
wpf-includes/install-sql.php CHANGED
@@ -174,7 +174,7 @@
174
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->phrases."` (
175
`phraseid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
176
`langid` INT UNSIGNED NOT NULL,
177
- `phrase_key` VARCHAR(255) NOT NULL,
178
`phrase_value` text NOT NULL,
179
`package` VARCHAR(255) NOT NULL DEFAULT 'wpforo',
180
PRIMARY KEY (`phraseid`),
174
"CREATE TABLE IF NOT EXISTS `".WPF()->tables->phrases."` (
175
`phraseid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
176
`langid` INT UNSIGNED NOT NULL,
177
+ `phrase_key` text NOT NULL,
178
`phrase_value` text NOT NULL,
179
`package` VARCHAR(255) NOT NULL DEFAULT 'wpforo',
180
PRIMARY KEY (`phraseid`),
wpf-includes/integration/ultimate-member.php CHANGED
@@ -3,445 +3,464 @@
3
// Exit if accessed directly
4
if ( !defined( 'ABSPATH' ) ) exit;
5
6
- if ( false ) {
7
8
- function wpforo_um_tab_init(){
9
10
- $options = get_option( 'um_options' );
11
12
- if( wpfkey($options, 'profile_tab_foro') ||
13
- wpfkey($options, 'log_wpforo_user_reply')
14
- ){
15
- if( !empty( $options ) ){
16
- //Set default options for Tab Settings
17
- $tab_options = array( 'profile_tab_foro' => 1, 'profile_tab_foro_privacy' => 0 );
18
- foreach( $tab_options as $key => $value ) {
19
- if(!isset($options[$key])) $options[$key] = $value;
20
- }
21
- //Set default options for Notification Settings
22
- $notification_options = array();
23
- $notification_options['wpforo_user_reply'] = array(
24
- 'title' => __('User leaves a reply to wpForo topic', 'wpforo'),
25
- 'template' => '<strong>{member}</strong> has <strong>replied</strong> to a topic you started on the forum.',
26
- 'account_desc' => __('When a member replies to one of my forum topics', 'wpforo')
27
- );
28
- $notification_options['wpforo_user_reply_to_reply'] = array(
29
- 'title' => __('User replied to wpForo post', 'wpforo'),
30
- 'template' => '<strong>{member}</strong> has <strong>replied</strong> to your post on the forum.',
31
- 'account_desc' => __('When a member replies to one of my post in forum topics', 'wpforo')
32
- );
33
- foreach( $notification_options as $type => $note ) {
34
- if(!isset($options['log_' . $type])) $options['log_' . $type] = 1;
35
- if(!isset( $options['log_' . $type . '_template'])) $options['log_' . $type . '_template'] = $note['template'];
36
- }
37
- update_option( 'um_options', $options );
38
}
39
}
40
- }
41
42
- add_action('wp_enqueue_scripts', 'wpforo_um_frontend_enqueue');
43
- function wpforo_um_frontend_enqueue(){
44
- if (is_rtl()) {
45
- wp_register_style('wpforo-um-rtl', WPFORO_TEMPLATE_URL . '/integration/ultimate-member/style-rtl.css', false, WPFORO_VERSION );
46
- wp_enqueue_style('wpforo-um-rtl');
47
}
48
- else{
49
- wp_register_style('wpforo-um', WPFORO_TEMPLATE_URL . '/integration/ultimate-member/style.css', false, WPFORO_VERSION );
50
- wp_enqueue_style('wpforo-um');
51
- }
52
- if(!is_wpforo_page()){
53
- wp_enqueue_style( 'dashicons' );
54
}
55
- }
56
57
58
- add_filter("um_notifications_core_log_types", "wpforo_um_notification_types", 500, 1);
59
- function wpforo_um_notification_types( $array ){
60
- $array['wpforo_user_reply'] = array(
61
- 'title' => __('User leaves a reply to wpForo topic', 'wpforo'),
62
- 'template' => '<strong>{member}</strong> has <strong>replied</strong> to a topic you started on the forum.',
63
- 'account_desc' => __('When a member replies to one of my forum topics', 'wpforo')
64
- );
65
- $array['wpforo_user_reply_to_reply'] = array(
66
- 'title' => __('User replied to wpForo post', 'wpforo'),
67
- 'template' => '<strong>{member}</strong> has <strong>replied</strong> to your post on the forum.',
68
- 'account_desc' => __('When a member replies to one of my post in forum topics', 'wpforo')
69
- );
70
- return $array;
71
- }
72
73
- add_filter('um_notifications_get_icon', 'wpforo_um_notification_icon', 10, 2 );
74
- function wpforo_um_notification_icon( $output, $type ) {
75
- if ( $type == 'wpforo_user_reply' ) {
76
- $output = '<i class="um-faicon-comments" style="color: #43A6DF"></i>';
77
- }
78
- if ( $type == 'wpforo_user_reply_to_reply' ) {
79
- $output = '<i class="um-faicon-comment" style="color: #43A6DF"></i>';
80
}
81
- return $output;
82
- }
83
84
- add_action( 'wpforo_after_add_post', 'wpforo_um_add_notification', 10, 2 );
85
- function wpforo_um_add_notification( $post = array(), $topic = array() ) {
86
-
87
- if( !wpforo_feature('um_notification') || !class_exists( 'UM_Notifications_API' ) ) return;
88
89
- //Get reply data
90
- if( !wpfval($post,'postid') ) return;
91
- if( !wpfval($topic,'topicid') ) return;
92
93
- //Don't notify if a new reply is unapproved
94
- if( wpfval($post,'status') ) return false;
95
- if( wpfval($post, 'is_first_post')) return false;
96
97
- //Get author information
98
- $author_id = $post['userid'];
99
- $topic_author_id = $topic['userid'];
100
101
- // Hierarchical replies
102
- if ( wpfval($post, 'parentid') ) {
103
- $reply_to_item_author_id = wpforo_post( $post['parentid'], 'userid' );
104
}
105
106
- // Notify the topic author if not the current reply author
107
- $has_topic_note = false;
108
- if ( $author_id !== $topic_author_id ) {
109
- $has_topic_note = true;
110
- $vars['photo'] = um_get_avatar_url( get_avatar( get_current_user_id(), 40 ) );
111
- $vars['member'] = wpforo_member( get_current_user_id(), 'display_name');
112
- $vars['notification_uri'] = esc_url_raw( $post['posturl'] );
113
- UM()->Notifications_API()->api()->store_notification( $topic_author_id, 'wpforo_user_reply', $vars );
114
}
115
116
- // Notify the immediate reply author if not the current reply author
117
- if ( wpfval($post, 'parentid') && !$has_topic_note && ($topic_author_id !== $reply_to_item_author_id) && ( $author_id !== $reply_to_item_author_id ) ) {
118
- $vars['photo'] = um_get_avatar_url( get_avatar( get_current_user_id(), 40 ) );
119
- $vars['member'] = wpforo_member( get_current_user_id(), 'display_name');
120
- $vars['notification_uri'] = esc_url_raw( $post['posturl'] );
121
- UM()->Notifications_API()->api()->store_notification( $reply_to_item_author_id, 'wpforo_user_reply_to_reply', $vars );
122
}
123
- }
124
125
- add_action( 'wpforo_post_status_update', 'wpforo_um_notification_on_post_status_change', 10, 2 );
126
- function wpforo_um_notification_on_post_status_change( $reply_id, $status = 0 ) {
127
- if( !$reply_id || !wpforo_feature('bp_notification') ) return;
128
- $post = WPF()->post->get_post($reply_id);
129
- $post['status'] = $status;
130
- $post['posturl'] = WPF()->post->get_post_url( $post['postid'] );
131
- if( wpfval($post,'topicid') ) {
132
- $topic = WPF()->topic->get_topic($post['topicid']);
133
- } else {
134
- return false;
135
- }
136
- if( !$status ){
137
- wpforo_um_add_notification( $post, $topic );
138
}
139
- }
140
141
- add_filter('um_profile_tabs', 'wpforo_um_tabs', 999 );
142
- function wpforo_um_tabs( $tabs ) {
143
- $user_id = um_user('ID');
144
- if( $user_id && wpforo_feature('um_forum_tab') ){
145
- $member = wpforo_member( $user_id );
146
- $topics = 0; $posts = 0; $likes = 0; $subscriptions = 0;
147
- if( wpfval( $member, 'stat' ) ){
148
- if( wpfval($member, 'stat', 'topics') ) $topics = $member['stat']['topics'];
149
- if( wpfval($member, 'stat', 'posts') ) $posts = $member['stat']['posts'];
150
- if( wpfval($member, 'stat', 'likes') ) $likes = $member['stat']['likes'];
151
}
152
- $args = array('userid' => $user_id);
153
- $subs = WPF()->sbscrb->get_subscribes( $args);
154
- if( !empty($subs) ) $subscriptions = count($subs);
155
- $tabs['foro'] = array(
156
- 'name' => wpforo_phrase('Forums', false),
157
- 'icon' => 'um-faicon-comments',
158
- 'subnav' => array(
159
- 'topics' => wpforo_phrase('Topics Started', false) . '<span>' . intval($topics) . '</span>',
160
- 'replies' => wpforo_phrase('Replies Created', false) . '<span>' . intval($posts) . '</span>',
161
- 'favorites' => wpforo_phrase('Liked Posts', false) . '<span>' . intval($likes) . '</span>',
162
- 'subscriptions' => wpforo_phrase('Subscriptions', false) . '<span>' . intval($subscriptions) . '</span>',
163
- ),
164
- 'subnav_default' => 'topics'
165
);
166
}
167
- return $tabs;
168
- }
169
170
- add_filter('um_user_profile_tabs', 'wpforo_um_user_tabs', 999 );
171
- function wpforo_um_user_tabs( $tabs ) {
172
- if( wpfval($tabs, 'foro','subnav_default') &&
173
- wpfval($tabs, 'foro', 'subnav', $tabs['foro']['subnav_default'])
174
- ) {
175
- $i = 0;
176
- if ( isset( $tabs['foro']['subnav'] ) ) {
177
- foreach( $tabs['foro']['subnav'] as $id => $data ) {
178
- $i++;
179
- if ( $i == 1 ) {
180
- $tabs['foro']['subnav_default'] = $id;
181
- }
182
- }
183
}
184
}
185
- return $tabs;
186
- }
187
188
- add_action('um_profile_content_foro_default', 'wpforo_um_default_tab_content');
189
- function wpforo_um_default_tab_content( $args ) {
190
- wpforo_um_user_topics( $args );
191
192
- }
193
194
- add_action('um_profile_content_foro_topics', 'wpforo_um_user_topics');
195
- function wpforo_um_user_topics( $args ) {
196
- $user_id = um_user('ID');
197
- if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
198
- $paged = (isset($paged) && $paged) ? $paged : 1;
199
- $args = array(
200
- 'offset' => ($paged - 1) * WPF()->post->options['posts_per_page'],
201
- 'row_count' => WPF()->post->options['posts_per_page'],
202
- 'userid' => $user_id,
203
- 'check_private' => true
204
- );
205
- $activities = WPF()->topic->get_topics( $args, $items_count);
206
- ?>
207
- <div id="wpforo-topics" class="wpforo-activity">
208
- <h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Topics Started'); ?></h3>
209
- <?php if(empty($activities)) : ?>
210
- <p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
211
- <?php else: ?>
212
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
213
- <?php $bg = FALSE; foreach( $activities as $activity ) : ?>
214
- <tr>
215
- <td class="wpf-activity-title">
216
- <span class="dashicons dashicons-admin-comments"></span>
217
- <?php
218
- $topic = wpforo_topic($activity['topicid']);
219
- if( !empty($topic)){ $topic_url = $topic['url']; $topic_title = $topic['title']; if(!$topic_url) $topic_url = '#'; if(!$topic_title) $topic_title = wpforo_phrase('Topic link');
220
- ?><a href="<?php echo esc_url($topic_url) ?>" class="wpf-item-title"><?php echo $topic_title ?></a><?php
221
- }
222
- if( wpfval($topic, 'forumid') ){
223
- $forum = wpforo_forum($topic['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
224
- ?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
225
- }
226
- ?>
227
- </td>
228
- <td class="wpf-activity-users">
229
- <?php $members = WPF()->topic->members($topic['topicid'], 3); ?>
230
- <?php if(!empty($members)): foreach( $members as $member ): ?>
231
- <?php if(!empty($member)): ?>
232
- <a href="<?php echo um_user_profile_url($member['ID']) ?>" title="<?php echo esc_attr(um_get_display_name($member['ID'])); ?>"><?php echo WPF()->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"', 30) ?></a>
233
- <?php endif; ?>
234
- <?php endforeach; endif; ?>
235
- </td>
236
- <td class="wpf-activity-posts">
237
- <?php echo $activity['posts']; ?> <?php wpforo_phrase('posts'); ?>
238
- </td>
239
- <td class="wpf-activity-date"><?php wpforo_date($topic['created']); ?></td>
240
- </tr>
241
- <?php endforeach ?>
242
- </table>
243
- <div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, false ); ?></div>
244
- <div style="clear: both"></div>
245
- <?php endif; ?>
246
- </div>
247
- <?php
248
249
- }
250
251
- add_action('um_profile_content_foro_replies', 'wpforo_um_user_replies');
252
- function wpforo_um_user_replies( $args ) {
253
- $user_id = um_user('ID');
254
- if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
255
- $paged = (isset($paged) && $paged) ? $paged : 1;
256
- $args = array(
257
- 'offset' => ($paged - 1) * WPF()->post->options['posts_per_page'],
258
- 'row_count' => WPF()->post->options['posts_per_page'],
259
- 'userid' => $user_id,
260
- 'check_private' => true
261
- );
262
- $activities = WPF()->post->get_posts( $args, $items_count);
263
- ?>
264
- <div id="wpforo-posts" class="wpforo-activity">
265
- <h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Replies Created'); ?></h3>
266
- <?php if(empty($activities)) : ?>
267
- <p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
268
- <?php else: ?>
269
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
270
- <?php $bg = FALSE; foreach( $activities as $activity ) : ?>
271
- <tr>
272
- <td class="wpf-activity-title">
273
- <span class="dashicons dashicons-format-chat"></span>
274
- <?php
275
- $post = wpforo_post($activity['postid']);
276
- if( !empty($post)){ $post_url = $post['url']; $post_title = $post['title']; if(!$post_url) $post_url = '#'; if(!$post_title) $post_title = wpforo_phrase('Post link');
277
- ?><a href="<?php echo esc_url($post_url) ?>" class="wpf-item-title"><?php echo $post_title ?></a><?php
278
- }
279
- ?>
280
- <?php if(wpfval($post, 'body')): ?>
281
- <p class="wpf-post-excerpt" style="font-style: italic">
282
- <?php
283
- $body = wpforo_content_filter( $post['body'] );
284
- $body = preg_replace('#\[attach\][^\[\]]*\[\/attach\]#is', '', strip_shortcodes(strip_tags($body)));
285
- wpforo_text($body, 200);
286
- ?>
287
- </p>
288
- <?php endif; ?>
289
- </td>
290
- <td class="wpf-activity-forum">
291
- <?php
292
- if( wpfval($post, 'forumid') ){
293
- $forum = wpforo_forum($post['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
294
- ?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
295
- }
296
- ?>
297
- </td>
298
- <td class="wpf-activity-date"><?php wpforo_date($post['created']); ?></td>
299
- </tr>
300
- <?php endforeach ?>
301
- </table>
302
- <div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, false ); ?></div>
303
- <div style="clear: both"></div>
304
- <?php endif; ?>
305
- </div>
306
- <?php
307
- }
308
309
- add_action('um_profile_content_foro_favorites', 'wpforo_um_user_favorites');
310
- function wpforo_um_user_favorites( $args ) {
311
- $user_id = um_user('ID');
312
- if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
313
- $paged = (isset($paged) && $paged) ? $paged : 1;
314
- $args = array(
315
- 'userid' => $user_id,
316
- 'offset' => ($paged - 1) * WPF()->post->options['posts_per_page'],
317
- 'row_count' => WPF()->post->options['posts_per_page'],
318
- 'var' => 'postid'
319
- );
320
- $activities = WPF()->post->get_liked_posts( $args, $items_count);
321
- ?>
322
- <div id="wpforo-liked-posts" class="wpforo-activity">
323
- <h3 class="wpf-activity-head"><?php wpforo_phrase('Liked Forum Posts'); ?></h3>
324
- <?php if(empty($activities)) : ?>
325
- <p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
326
- <?php else: ?>
327
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
328
- <?php $bg = FALSE; foreach( $activities as $postid ) : ?>
329
- <tr>
330
- <td class="wpf-activity-title">
331
- <span class="dashicons dashicons-thumbs-up"></span>
332
- <?php
333
- $post = wpforo_post($postid);
334
- if( !empty($post)){ $post_url = $post['url']; $post_title = $post['title']; if(!$post_url) $post_url = '#'; if(!$post_title) $post_title = wpforo_phrase('Post link');
335
- ?><a href="<?php echo esc_url($post_url) ?>" class="wpf-item-title"><?php echo $post_title ?></a><?php
336
- }
337
- ?>
338
- <?php if(wpfval($post, 'body')): ?>
339
- <p class="wpf-post-excerpt" style="font-style: italic">
340
- <?php
341
- $body = wpforo_content_filter( $post['body'] );
342
- $body = preg_replace('#\[attach\][^\[\]]*\[\/attach\]#is', '', strip_shortcodes(strip_tags($body)));
343
- wpforo_text($body, 200);
344
- ?>
345
- </p>
346
- <?php endif; ?>
347
- </td>
348
- <td class="wpf-activity-forum">
349
- <?php
350
- if( wpfval($post, 'forumid') ){
351
- $forum = wpforo_forum($post['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
352
- ?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
353
- }
354
- ?>
355
- </td>
356
- <td class="wpf-activity-date"><?php wpforo_date($post['created']); ?></td>
357
- </tr>
358
- <?php endforeach ?>
359
- </table>
360
- <div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, false ); ?></div>
361
- <div style="clear: both"></div>
362
- <?php endif; ?>
363
- </div>
364
- <?php
365
- }
366
367
- add_action('um_profile_content_foro_subscriptions', 'wpforo_um_user_subscriptions');
368
- function wpforo_um_user_subscriptions( $args ) {
369
- $user_id = um_user('ID');
370
- if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
371
- $paged = (isset($paged) && $paged) ? $paged : 1;
372
- $args = array(
373
- 'offset' => ($paged - 1) * WPF()->post->options['posts_per_page'],
374
- 'row_count' => WPF()->post->options['posts_per_page'],
375
- 'userid' => $user_id,
376
- 'order' => 'DESC'
377
- );
378
- $activities = WPF()->sbscrb->get_subscribes( $args, $items_count);
379
- ?>
380
- <div id="wpforo-subscriptions" class="wpforo-activity">
381
- <h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Subscriptions'); ?></h3>
382
- <?php if(empty($activities)) : ?>
383
- <p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
384
- <?php else: ?>
385
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
386
- <?php $bg = FALSE; foreach( $activities as $activity ) : ?>
387
- <tr>
388
- <td class="wpf-activity-title">
389
- <span class="dashicons <?php echo ($activity['type'] == 'forum') ? 'dashicons-category' : 'dashicons-admin-comments' ; ?>"></span>
390
- <?php
391
- if( in_array($activity['type'], array('forum', 'forum-topic')) ){
392
- $item = wpforo_forum($activity['itemid']);
393
- $item_url = $item['url'];
394
- }elseif($activity['type'] == 'topic'){
395
- $item = wpforo_topic($activity['itemid']);
396
- $item_url = $item['url'];
397
- }elseif ( in_array($activity['type'], array('forums', 'forums-topics')) ){
398
- $item = array('title' => wpforo_phrase('All ' . $activity['type'], false));
399
- $item_url = '#';
400
- }
401
- if(empty($item)) continue;
402
- ?>
403
- <a href="<?php echo esc_url($item_url) ?>" class="wpf-item-title"><?php echo esc_html($item['title']) ?></a>
404
- </td>
405
- <td class="wpf-activity-unsb"><a href="<?php echo esc_url(WPF()->sbscrb->get_unsubscribe_link($activity['confirmkey'])) ?>"><?php wpforo_phrase('Unsubscribe'); ?></a></td>
406
- </tr>
407
- <?php endforeach ?>
408
- </table>
409
- <div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, false ); ?></div>
410
- <div style="clear: both"></div>
411
- <?php endif; ?>
412
- </div>
413
- <?php
414
- }
415
416
- wpforo_um_tab_init();
417
-
418
- add_filter( 'wpforo_member_profile_url', 'wpforo_um_profile_url', 10, 3 );
419
- function wpforo_um_profile_url( $url = '', $member = array(), $template = 'profile' ){
420
- if( wpfval($member, 'ID') && wpforo_feature('um_profile') ){
421
- //UM Functions don't work here
422
- //um_fetch_user( $member['ID'] );
423
- //$user_domain = um_user_profile_url();
424
- //Fatal error: Allowed memory size of ### bytes exhausted (tried to allocate #### bytes) in wp-includes\option.php on line 33
425
- $user_domain = get_author_posts_url( $member['ID'] );
426
- $user_domain = strtok( $user_domain, '?');
427
- if( $user_domain ){
428
- if( $template == 'account' ){
429
- //$url = $user_domain . '?profiletab=main&um_action=edit';
430
- $url = $user_domain;
431
- }
432
- elseif( $template == 'activity' ){
433
- //$url = $user_domain . '?profiletab=foro';
434
- $url = $user_domain;
435
- }
436
- elseif( $template == 'subscriptions' ){
437
- //$url = $user_domain . '?profiletab=foro&subnav=subscriptions';
438
- $url = $user_domain;
439
- } else{
440
- $url = $user_domain;
441
- }
442
}
443
}
444
- return apply_filters('wpforo_um_member_profile_url', $url, $member, $template);
445
}
446
447
}
3
// Exit if accessed directly
4
if ( !defined( 'ABSPATH' ) ) exit;
5
6
+ if( class_exists('UM') ){
7
8
+ class wpForo_UM {
9
10
+ private static $instance;
11
12
+ static public function instance() {
13
+ if ( is_null( self::$instance ) ) {
14
+ self::$instance = new self();
15
}
16
+ return self::$instance;
17
}
18
19
+ function __construct() {
20
+ add_action('init', array( $this, 'init' ), 100 );
21
+ add_action('wp_enqueue_scripts', array($this, 'um_frontend_enqueue'), 100 );
22
}
23
+
24
+ function init() {
25
+ $this->um_init();
26
+ if( wpforo_feature('um_forum_tab') ){
27
+ add_filter('um_profile_tabs', array($this, 'um_tabs'), 999 );
28
+ add_filter('um_user_profile_tabs', array($this, 'um_user_tabs'), 999 );
29
+ add_action('um_profile_content_foro_default', array($this, 'um_default_tab_content') );
30
+ add_action('um_profile_content_foro_topics', array($this, 'um_user_topics') );
31
+ add_action('um_profile_content_foro_replies', array($this, 'um_user_replies') );
32
+ add_action('um_profile_content_foro_favorites', array($this, 'um_user_favorites') );
33
+ add_action('um_profile_content_foro_subscriptions', array($this, 'um_user_subscriptions') );
34
+ }
35
+ if( wpforo_feature('um_profile') ){
36
+ add_filter('wpforo_member_profile_url', array($this, 'um_profile_url'), 10, 3 );
37
+ }
38
+ if( wpforo_feature('um_notification') && class_exists( 'UM_Notifications_API') ) {
39
+ add_filter('um_notifications_core_log_types', array($this, 'um_notification_types'), 500, 1 );
40
+ add_filter('um_notifications_get_icon', array($this, 'um_notification_icon'), 10, 2 );
41
+ add_action('wpforo_after_add_post', array($this, 'um_add_notification'), 10, 2 );
42
+ add_action('wpforo_post_status_update', array($this, 'um_notification_on_post_status_change'), 10, 2 );
43
+ }
44
}
45
46
+ function um_init(){
47
48
+ $options = get_option( 'um_options' );
49
50
+ if( wpfkey($options, 'profile_tab_foro') ||
51
+ wpfkey($options, 'log_wpforo_user_reply')
52
+ ){
53
+ if( !empty( $options ) ){
54
+ //Set default options for Tab Settings
55
+ $tab_options = array( 'profile_tab_foro' => 1, 'profile_tab_foro_privacy' => 0 );
56
+ foreach( $tab_options as $key => $value ) {
57
+ if(!isset($options[$key])) $options[$key] = $value;
58
+ }
59
+ //Set default options for Notification Settings
60
+ $notification_options = array();
61
+ $notification_options['wpforo_user_reply'] = array(
62
+ 'title' => __('User leaves a reply to wpForo topic', 'wpforo'),
63
+ 'template' => '<strong>{member}</strong> has <strong>replied</strong> to a topic you started on the forum.',
64
+ 'account_desc' => __('When a member replies to one of my forum topics', 'wpforo')
65
+ );
66
+ $notification_options['wpforo_user_reply_to_reply'] = array(
67
+ 'title' => __('User replied to wpForo post', 'wpforo'),
68
+ 'template' => '<strong>{member}</strong> has <strong>replied</strong> to your post on the forum.',
69
+ 'account_desc' => __('When a member replies to one of my post in forum topics', 'wpforo')
70
+ );
71
+ foreach( $notification_options as $type => $note ) {
72
+ if(!isset($options['log_' . $type])) $options['log_' . $type] = 1;
73
+ if(!isset( $options['log_' . $type . '_template'])) $options['log_' . $type . '_template'] = $note['template'];
74
+ }
75
+ update_option( 'um_options', $options );
76
+ }
77
+ }
78
}
79
80
+ function um_tabs( $tabs ) {
81
+ $user_id = um_user('ID');
82
+ if( $user_id ){
83
+ $member = wpforo_member( $user_id );
84
+ $topics = 0; $posts = 0; $likes = 0; $subscriptions = 0;
85
+ if( wpfval( $member, 'stat' ) ){
86
+ if( wpfval($member, 'stat', 'topics') ) $topics = $member['stat']['topics'];
87
+ if( wpfval($member, 'stat', 'posts') ) $posts = $member['stat']['posts'];
88
+ if( wpfval($member, 'stat', 'likes') ) $likes = $member['stat']['likes'];
89
+ }
90
+ $args = array('userid' => $user_id);
91
+ $subs = WPF()->sbscrb->get_subscribes( $args);
92
+ if( !empty($subs) ) $subscriptions = count($subs);
93
+ $tabs['foro'] = array(
94
+ 'name' => wpforo_phrase('Forums', false),
95
+ 'icon' => 'um-faicon-comments',
96
+ 'subnav' => array(
97
+ 'topics' => wpforo_phrase('Topics Started', false) . '<span>' . intval($topics) . '</span>',
98
+ 'replies' => wpforo_phrase('Replies Created', false) . '<span>' . intval($posts) . '</span>',
99
+ 'favorites' => wpforo_phrase('Liked Posts', false) . '<span>' . intval($likes) . '</span>',
100
+ 'subscriptions' => wpforo_phrase('Subscriptions', false) . '<span>' . intval($subscriptions) . '</span>',
101
+ ),
102
+ 'subnav_default' => 'topics'
103
+ );
104
+ }
105
+ return $tabs;
106
+ }
107
108
+ function um_user_tabs( $tabs ) {
109
+ if( wpfval($tabs, 'foro','subnav_default') &&
110
+ wpfval($tabs, 'foro', 'subnav', $tabs['foro']['subnav_default'])
111
+ ) {
112
+ $i = 0;
113
+ if ( isset( $tabs['foro']['subnav'] ) ) {
114
+ foreach( $tabs['foro']['subnav'] as $id => $data ) {
115
+ $i++;
116
+ if ( $i == 1 ) {
117
+ $tabs['foro']['subnav_default'] = $id;
118
+ }
119
+ }
120
+ }
121
+ }
122
+ return $tabs;
123
+ }
124
125
+ function um_default_tab_content( $args ) {
126
+ $this->um_user_topics( $args );
127
+ }
128
129
+ function um_user_topics( $args ) {
130
+ $user_id = um_user('ID');
131
+ if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
132
+ $paged = (isset($paged) && $paged) ? $paged : 1;
133
+ $args = array(
134
+ 'offset' => ($paged - 1) * WPF()->post->options['posts_per_page'],
135
+ 'row_count' => WPF()->post->options['posts_per_page'],
136
+ 'userid' => $user_id,
137
+ 'check_private' => true
138
+ );
139
+ $activities = WPF()->topic->get_topics( $args, $items_count);
140
+ ?>
141
+ <div id="wpforo-topics" class="wpforo-activity">
142
+ <h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Topics Started'); ?></h3>
143
+ <?php if(empty($activities)) : ?>
144
+ <p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
145
+ <?php else: ?>
146
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">
147
+ <?php $bg = FALSE; foreach( $activities as $activity ) : ?>
148
+ <tr>
149
+ <td class="wpf-activity-title">
150
+ <span class="dashicons dashicons-admin-comments"></span>
151
+ <?php
152
+ $topic = wpforo_topic($activity['topicid']);
153
+ if( !empty($topic)){ $topic_url = $topic['url']; $topic_title = $topic['title']; if(!$topic_url) $topic_url = '#'; if(!$topic_title) $topic_title = wpforo_phrase('Topic link');
154
+ ?><a href="<?php echo esc_url($topic_url) ?>" class="wpf-item-title"><?php echo $topic_title ?></a><?php
155
+ }
156
+ if( wpfval($topic, 'forumid') ){
157
+ $forum = wpforo_forum($topic['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
158
+ ?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
159
+ }
160
+ ?>
161
+ </td>
162
+ <td class="wpf-activity-users">
163
+ <?php $members = WPF()->topic->members($topic['topicid'], 3); ?>
164
+ <?php if(!empty($members)): foreach( $members as $member ): ?>
165
+ <?php if(!empty($member)): ?>
166
+ <a href="<?php echo um_user_profile_url($member['ID']) ?>" title="<?php echo esc_attr(um_get_display_name($member['ID'])); ?>"><?php echo WPF()->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"', 30) ?></a>
167
+ <?php endif; ?>
168
+ <?php endforeach; endif; ?>
169
+ </td>
170
+ <td class="wpf-activity-posts">
171
+ <?php echo $activity['posts']; ?> <?php wpforo_phrase('posts'); ?>
172
+ </td>
173
+ <td class="wpf-activity-date"><?php wpforo_date($topic['created']); ?></td>
174
+ </tr>
175
+ <?php endforeach ?>
176
+ </table>
177
+ <div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, false ); ?></div>
178
+ <div style="clear: both"></div>
179
+ <?php endif; ?>
180
+ </div>
181
+ <?php
182
183
}
184
185
+ function um_user_replies( $args ) {
186
+ $user_id = um_user('ID');
187
+ if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
188
+ $paged = (isset($paged) && $paged) ? $paged : 1;
189
+ $args = array(
190
+ 'offset' => ($paged - 1) * WPF()->post->options['posts_per_page'],
191
+ 'row_count' => WPF()->post->options['posts_per_page'],
192
+ 'userid' => $user_id,
193
+ 'check_private' => true
194
+ );
195
+ $activities = WPF()->post->get_posts( $args, $items_count);
196
+ ?>
197
+ <div id="wpforo-posts" class="wpforo-activity">
198
+ <h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Replies Created'); ?></h3>
199
+ <?php if(empty($activities)) : ?>
200
+ <p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
201
+ <?php else: ?>
202
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">
203
+ <?php $bg = FALSE; foreach( $activities as $activity ) : ?>
204
+ <tr>
205
+ <td class="wpf-activity-title">
206
+ <span class="dashicons dashicons-format-chat"></span>
207
+ <?php
208
+ $post = wpforo_post($activity['postid']);
209
+ if( !empty($post)){ $post_url = $post['url']; $post_title = $post['title']; if(!$post_url) $post_url = '#'; if(!$post_title) $post_title = wpforo_phrase('Post link');
210
+ ?><a href="<?php echo esc_url($post_url) ?>" class="wpf-item-title"><?php echo $post_title ?></a><?php
211
+ }
212
+ ?>
213
+ <?php if(wpfval($post, 'body')): ?>
214
+ <p class="wpf-post-excerpt" style="font-style: italic">
215
+ <?php
216
+ $body = wpforo_content_filter( $post['body'] );
217
+ $body = preg_replace('#\[attach\][^\[\]]*\[\/attach\]#is', '', strip_shortcodes(strip_tags($body)));
218
+ wpforo_text($body, 200);
219
+ ?>
220
+ </p>
221
+ <?php endif; ?>
222
+ </td>
223
+ <td class="wpf-activity-forum">
224
+ <?php
225
+ if( wpfval($post, 'forumid') ){
226
+ $forum = wpforo_forum($post['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
227
+ ?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
228
+ }
229
+ ?>
230
+ </td>
231
+ <td class="wpf-activity-date"><?php wpforo_date($post['created']); ?></td>
232
+ </tr>
233
+ <?php endforeach ?>
234
+ </table>
235
+ <div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, false ); ?></div>
236
+ <div style="clear: both"></div>
237
+ <?php endif; ?>
238
+ </div>
239
+ <?php
240
}
241
242
+ function um_user_favorites( $args ) {
243
+ $user_id = um_user('ID');
244
+ if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
245
+ $paged = (isset($paged) && $paged) ? $paged : 1;
246
+ $args = array(
247
+ 'userid' => $user_id,
248
+ 'offset' => ($paged - 1) * WPF()->post->options['posts_per_page'],
249
+ 'row_count' => WPF()->post->options['posts_per_page'],
250
+ 'var' => 'postid'
251
+ );
252
+ $activities = WPF()->post->get_liked_posts( $args, $items_count);
253
+ ?>
254
+ <div id="wpforo-liked-posts" class="wpforo-activity">
255
+ <h3 class="wpf-activity-head"><?php wpforo_phrase('Liked Forum Posts'); ?></h3>
256
+ <?php if(empty($activities)) : ?>
257
+ <p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
258
+ <?php else: ?>
259
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">
260
+ <?php $bg = FALSE; foreach( $activities as $postid ) : ?>
261
+ <tr>
262
+ <td class="wpf-activity-title">
263
+ <span class="dashicons dashicons-thumbs-up"></span>
264
+ <?php
265
+ $post = wpforo_post($postid);
266
+ if( !empty($post)){ $post_url = $post['url']; $post_title = $post['title']; if(!$post_url) $post_url = '#'; if(!$post_title) $post_title = wpforo_phrase('Post link');
267
+ ?><a href="<?php echo esc_url($post_url) ?>" class="wpf-item-title"><?php echo $post_title ?></a><?php
268
+ }
269
+ ?>
270
+ <?php if(wpfval($post, 'body')): ?>
271
+ <p class="wpf-post-excerpt" style="font-style: italic">
272
+ <?php
273
+ $body = wpforo_content_filter( $post['body'] );
274
+ $body = preg_replace('#\[attach\][^\[\]]*\[\/attach\]#is', '', strip_shortcodes(strip_tags($body)));
275
+ wpforo_text($body, 200);
276
+ ?>
277
+ </p>
278
+ <?php endif; ?>
279
+ </td>
280
+ <td class="wpf-activity-forum">
281
+ <?php
282
+ if( wpfval($post, 'forumid') ){
283
+ $forum = wpforo_forum($post['forumid']); $forum_url = $forum['url']; $forum_title = $forum['title']; if(!$forum_url) $forum_url = '#'; if(!$forum_title) $forum_url = wpforo_phrase('Forum link');
284
+ ?><p style="font-style: italic"><span><?php echo wpforo_phrase('in forum', false) ?></span> <a href="<?php echo esc_url($forum_url) ?>"><?php echo $forum_title ?></a></p><?php
285
+ }
286
+ ?>
287
+ </td>
288
+ <td class="wpf-activity-date"><?php wpforo_date($post['created']); ?></td>
289
+ </tr>
290
+ <?php endforeach ?>
291
+ </table>
292
+ <div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, false ); ?></div>
293
+ <div style="clear: both"></div>
294
+ <?php endif; ?>
295
+ </div>
296
+ <?php
297
}
298
299
+ function um_user_subscriptions( $args ) {
300
+ $user_id = um_user('ID');
301
+ if(isset($_GET['wpfpaged']) && intval($_GET['wpfpaged'])) $paged = intval($_GET['wpfpaged']);
302
+ $paged = (isset($paged) && $paged) ? $paged : 1;
303
+ $args = array(
304
+ 'offset' => ($paged - 1) * WPF()->post->options['posts_per_page'],
305
+ 'row_count' => WPF()->post->options['posts_per_page'],
306
+ 'userid' => $user_id,
307
+ 'order' => 'DESC'
308
+ );
309
+ $activities = WPF()->sbscrb->get_subscribes( $args, $items_count);
310
+ ?>
311
+ <div id="wpforo-subscriptions" class="wpforo-activity">
312
+ <h3 class="wpf-activity-head"><?php wpforo_phrase('Forum Subscriptions'); ?></h3>
313
+ <?php if(empty($activities)) : ?>
314
+ <p class="wpf-p-error"> <?php wpforo_phrase('No activity found for this member.') ?> </p>
315
+ <?php else: ?>
316
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">
317
+ <?php $bg = FALSE; foreach( $activities as $activity ) : ?>
318
+ <tr>
319
+ <td class="wpf-activity-title">
320
+ <span class="dashicons <?php echo ($activity['type'] == 'forum') ? 'dashicons-category' : 'dashicons-admin-comments' ; ?>"></span>
321
+ <?php
322
+ if( in_array($activity['type'], array('forum', 'forum-topic')) ){
323
+ $item = wpforo_forum($activity['itemid']);
324
+ $item_url = $item['url'];
325
+ }elseif($activity['type'] == 'topic'){
326
+ $item = wpforo_topic($activity['itemid']);
327
+ $item_url = $item['url'];
328
+ }elseif ( in_array($activity['type'], array('forums', 'forums-topics')) ){
329
+ $item = array('title' => wpforo_phrase('All ' . $activity['type'], false));
330
+ $item_url = '#';
331
+ }
332
+ if(empty($item)) continue;
333
+ ?>
334
+ <a href="<?php echo esc_url($item_url) ?>" class="wpf-item-title"><?php echo esc_html($item['title']) ?></a>
335
+ </td>
336
+ <td class="wpf-activity-unsb"><a href="<?php echo esc_url(WPF()->sbscrb->get_unsubscribe_link($activity['confirmkey'])) ?>"><?php wpforo_phrase('Unsubscribe'); ?></a></td>
337
+ </tr>
338
+ <?php endforeach ?>
339
+ </table>
340
+ <div class="wpf-activity-foot"><?php WPF()->tpl->pagenavi( $paged, $items_count, false ); ?></div>
341
+ <div style="clear: both"></div>
342
+ <?php endif; ?>
343
+ </div>
344
+ <?php
345
}
346
347
+ function um_profile_url( $url = '', $member = array(), $template = 'profile' ){
348
+ if( wpfval($member, 'ID') ){
349
+ um_fetch_user( $member['ID'] );
350
+ $user_domain = um_user_profile_url();
351
+ $user_domain = ( $user_domain ) ? $user_domain : get_author_posts_url( $member['ID'] );
352
+ $user_domain = strtok( $user_domain, '?');
353
+ if( $user_domain ){
354
+ if( $template == 'account' ){
355
+ $url = $user_domain . '?profiletab=main&um_action=edit';
356
+ }
357
+ elseif( $template == 'activity' ){
358
+ $url = $user_domain . '?profiletab=foro';
359
+ }
360
+ elseif( $template == 'subscriptions' ){
361
+ $url = $user_domain . '?profiletab=foro&subnav=subscriptions';
362
+ } else{
363
+ $url = $user_domain;
364
+ }
365
+ }
366
}
367
+ return apply_filters('wpforo_um_member_profile_url', $url, $member, $template);
368
+ }
369
+
370
+ function um_notification_types( $array ){
371
+ $array['wpforo_user_reply'] = array(
372
+ 'title' => __('User leaves a reply to wpForo topic', 'wpforo'),
373
+ 'template' => '<strong>{member}</strong> has <strong>replied</strong> to a topic you started on the forum.',
374
+ 'account_desc' => __('When a member replies to one of my forum topics', 'wpforo')
375
+ );
376
+ $array['wpforo_user_reply_to_reply'] = array(
377
+ 'title' => __('User replied to wpForo post', 'wpforo'),
378
+ 'template' => '<strong>{member}</strong> has <strong>replied</strong> to your post on the forum.',
379
+ 'account_desc' => __('When a member replies to one of my post in forum topics', 'wpforo')
380
);
381
+ return $array;
382
}
383
384
+ function um_notification_icon( $output, $type ) {
385
+ if ( $type == 'wpforo_user_reply' ) {
386
+ $output = '<i class="um-faicon-comments" style="color: #43A6DF"></i>';
387
}
388
+ if ( $type == 'wpforo_user_reply_to_reply' ) {
389
+ $output = '<i class="um-faicon-comment" style="color: #43A6DF"></i>';
390
+ }
391
+ return $output;
392
}
393
394
+ function um_add_notification( $post = array(), $topic = array() ) {
395
396
+ //Get reply data
397
+ if( !wpfval($post,'postid') ) return;
398
+ if( !wpfval($topic,'topicid') ) return;
399
400
+ //Don't notify if a new reply is unapproved
401
+ if( wpfval($post,'status') ) return false;
402
+ if( wpfval($post, 'is_first_post')) return false;
403
404
+ //Get author information
405
+ $author_id = $post['userid'];
406
+ $topic_author_id = $topic['userid'];
407
+ um_fetch_user( get_current_user_id() );
408
409
+ // Hierarchical replies
410
+ if ( wpfval($post, 'parentid') ) {
411
+ $reply_to_item_author_id = wpforo_post( $post['parentid'], 'userid' );
412
+ }
413
414
+ // Notify the topic author if not the current reply author
415
+ $has_topic_note = false;
416
+ if ( $author_id !== $topic_author_id ) {
417
+ $has_topic_note = true;
418
+ $vars['photo'] = um_get_avatar_url( get_avatar( get_current_user_id(), 40 ) );
419
+ $vars['member'] = um_user('display_name');
420
+ $vars['notification_uri'] = esc_url_raw( $post['posturl'] );
421
+ UM()->Notifications_API()->api()->store_notification( $topic_author_id, 'wpforo_user_reply', $vars );
422
+ }
423
424
+ // Notify the immediate reply author if not the current reply author
425
+ if ( wpfval($post, 'parentid') && !$has_topic_note && ($topic_author_id !== $reply_to_item_author_id) && ( $author_id !== $reply_to_item_author_id ) ) {
426
+ $vars['photo'] = um_get_avatar_url( get_avatar( get_current_user_id(), 40 ) );
427
+ $vars['member'] = um_user('display_name');
428
+ $vars['notification_uri'] = esc_url_raw( $post['posturl'] );
429
+ UM()->Notifications_API()->api()->store_notification( $reply_to_item_author_id, 'wpforo_user_reply_to_reply', $vars );
430
+ }
431
+ }
432
433
+ function um_notification_on_post_status_change( $reply_id, $status = 0 ) {
434
+ if( !$reply_id || !wpforo_feature('bp_notification') ) return;
435
+ $post = WPF()->post->get_post($reply_id);
436
+ $post['status'] = $status;
437
+ $post['posturl'] = WPF()->post->get_post_url( $post['postid'] );
438
+ if( wpfval($post,'topicid') ) {
439
+ $topic = WPF()->topic->get_topic($post['topicid']);
440
+ } else {
441
+ return false;
442
+ }
443
+ if( !$status ){
444
+ $this->um_add_notification( $post, $topic );
445
+ }
446
+ }
447
+
448
+ function um_frontend_enqueue(){
449
+ if (is_rtl()) {
450
+ wp_register_style('wpforo-um-rtl', WPFORO_TEMPLATE_URL . '/integration/ultimate-member/style-rtl.css', false, WPFORO_VERSION );
451
+ wp_enqueue_style('wpforo-um-rtl');
452
+ }
453
+ else{
454
+ wp_register_style('wpforo-um', WPFORO_TEMPLATE_URL . '/integration/ultimate-member/style.css', false, WPFORO_VERSION );
455
+ wp_enqueue_style('wpforo-um');
456
+ }
457
+ if(!is_wpforo_page()){
458
+ wp_enqueue_style( 'dashicons' );
459
}
460
}
461
+
462
}
463
464
+ $WPFUM = new wpForo_UM();
465
+
466
}
wpf-includes/wpf-phrases.php CHANGED
@@ -746,6 +746,7 @@ $wpforo_phrases = array(
746
'Split' => __('Split', 'wpforo'),
747
'Move Reply' => __('Move Reply', 'wpforo'),
748
'This action changes topic URL. Once the topic is moved to other forum the old URL of this topic will no longer be available.' => __('This action changes topic URL. Once the topic is moved to other forum the old URL of this topic will no longer be available.', 'wpforo'),
749
750
//1.5.0
751
'No data submitted' => __('No data submitted', 'wpforo'),
746
'Split' => __('Split', 'wpforo'),
747
'Move Reply' => __('Move Reply', 'wpforo'),
748
'This action changes topic URL. Once the topic is moved to other forum the old URL of this topic will no longer be available.' => __('This action changes topic URL. Once the topic is moved to other forum the old URL of this topic will no longer be available.', 'wpforo'),
749
+ 'When you login first time using Facebook Login button, we collect your account %s information shared by Facebook, based on your privacy settings. We also get your email address to automatically create a forum account for you. Once your account is created, you\'ll be logged-in to this account and you\'ll receive a confirmation email.' => __('When you login first time using Facebook Login button, we collect your account %s information shared by Facebook, based on your privacy settings. We also get your email address to automatically create a forum account for you. Once your account is created, you\'ll be logged-in to this account and you\'ll receive a confirmation email.', 'wpforo'),
750
751
//1.5.0
752
'No data submitted' => __('No data submitted', 'wpforo'),
wpf-languages/wpforo.pot CHANGED
@@ -5,7 +5,7 @@ msgid ""
5
msgstr ""
6
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
7
"Project-Id-Version: Forum - wpForo\n"
8
- "POT-Creation-Date: 2018-07-09 16:16+0300\n"
9
"PO-Revision-Date: 2016-06-28 21:09+0400\n"
10
"Last-Translator: \n"
11
"Language-Team: \n"
@@ -405,10 +405,10 @@ msgstr ""
405
#: wpf-admin/options-tabs/general.php:58 wpf-admin/options-tabs/general.php:69
406
#: wpf-admin/options-tabs/members.php:13 wpf-admin/options-tabs/members.php:27
407
#: wpf-admin/options-tabs/members.php:46 wpf-admin/options-tabs/members.php:87
408
- #: wpf-admin/options-tabs/posts.php:23 wpf-admin/options-tabs/posts.php:28
409
- #: wpf-admin/options-tabs/posts.php:35 wpf-admin/options-tabs/posts.php:41
410
- #: wpf-admin/options-tabs/posts.php:46 wpf-admin/options-tabs/posts.php:53
411
- #: wpf-admin/options-tabs/posts.php:61 wpf-admin/options-tabs/posts.php:77
412
#: wpf-admin/options-tabs/styles.php:43 wpf-admin/usergroup.php:28
413
#: wpf-admin/usergroup.php:30 wpf-admin/usergroup.php:243
414
#: wpf-themes/classic/functions.php:39 wpf-themes/classic/functions.php:48
@@ -666,7 +666,8 @@ msgstr ""
666
#: wpf-admin/options-tabs/api.php:37 wpf-admin/options-tabs/api.php:49
667
#: wpf-admin/options-tabs/api.php:60 wpf-admin/options-tabs/api.php:71
668
#: wpf-admin/options-tabs/api.php:140 wpf-admin/options-tabs/api.php:147
669
- #: wpf-admin/options-tabs/members.php:94 wpf-admin/tools-tabs/legal.php:48
670
#: wpf-admin/tools-tabs/legal.php:60 wpf-admin/tools-tabs/legal.php:82
671
#: wpf-admin/tools-tabs/legal.php:117 wpf-admin/tools-tabs/legal.php:129
672
#: wpf-admin/tools-tabs/legal.php:148
@@ -676,7 +677,8 @@ msgstr ""
676
#: wpf-admin/options-tabs/api.php:38 wpf-admin/options-tabs/api.php:50
677
#: wpf-admin/options-tabs/api.php:61 wpf-admin/options-tabs/api.php:72
678
#: wpf-admin/options-tabs/api.php:141 wpf-admin/options-tabs/api.php:148
679
- #: wpf-admin/options-tabs/members.php:95 wpf-admin/tools-tabs/legal.php:49
680
#: wpf-admin/tools-tabs/legal.php:61 wpf-admin/tools-tabs/legal.php:83
681
#: wpf-admin/tools-tabs/legal.php:118 wpf-admin/tools-tabs/legal.php:130
682
#: wpf-admin/tools-tabs/legal.php:149
@@ -817,10 +819,10 @@ msgid ""
817
"and bottom) locations."
818
msgstr ""
819
820
- #: wpf-admin/options-tabs/api.php:245 wpf-admin/options-tabs/emails.php:132
821
#: wpf-admin/options-tabs/features.php:89 wpf-admin/options-tabs/forums.php:16
822
#: wpf-admin/options-tabs/general.php:83 wpf-admin/options-tabs/members.php:181
823
- #: wpf-admin/options-tabs/posts.php:88 wpf-admin/options-tabs/styles.php:93
824
#: wpf-admin/tools-tabs/antispam.php:343 wpf-admin/tools-tabs/cleanup.php:49
825
#: wpf-admin/tools-tabs/legal.php:179 wpf-admin/tools-tabs/misc.php:134
826
#: wpf-includes/wpf-phrases.php:344
@@ -856,7 +858,7 @@ msgid ""
856
msgstr ""
857
858
#: wpf-admin/options-tabs/emails.php:33 wpf-admin/options-tabs/emails.php:45
859
- #: wpf-admin/options-tabs/emails.php:116 wpf-admin/options-tabs/features.php:77
860
#: wpf-admin/tools-tabs/antispam.php:31 wpf-admin/tools-tabs/antispam.php:40
861
#: wpf-admin/tools-tabs/antispam.php:49 wpf-admin/tools-tabs/antispam.php:150
862
#: wpf-admin/tools-tabs/antispam.php:159 wpf-admin/tools-tabs/antispam.php:169
@@ -868,7 +870,7 @@ msgid "Yes"
868
msgstr ""
869
870
#: wpf-admin/options-tabs/emails.php:34 wpf-admin/options-tabs/emails.php:46
871
- #: wpf-admin/options-tabs/emails.php:117 wpf-admin/options-tabs/features.php:79
872
#: wpf-admin/tools-tabs/antispam.php:32 wpf-admin/tools-tabs/antispam.php:41
873
#: wpf-admin/tools-tabs/antispam.php:50 wpf-admin/tools-tabs/antispam.php:151
874
#: wpf-admin/tools-tabs/antispam.php:160 wpf-admin/tools-tabs/antispam.php:170
@@ -934,30 +936,50 @@ msgid "Report message body"
934
msgstr ""
935
936
#: wpf-admin/options-tabs/emails.php:97
937
msgid "Reset Password Emails"
938
msgstr ""
939
940
- #: wpf-admin/options-tabs/emails.php:98
941
msgid "This message comes from Reset Password form."
942
msgstr ""
943
944
- #: wpf-admin/options-tabs/emails.php:102
945
msgid "Reset Password message body"
946
msgstr ""
947
948
- #: wpf-admin/options-tabs/emails.php:107
949
msgid "User Mentioning Email"
950
msgstr ""
951
952
- #: wpf-admin/options-tabs/emails.php:112
953
msgid "Enable Email Notification"
954
msgstr ""
955
956
- #: wpf-admin/options-tabs/emails.php:122
957
msgid "User Mention message subject"
958
msgstr ""
959
960
- #: wpf-admin/options-tabs/emails.php:126
961
msgid "User Mention message body"
962
msgstr ""
963
@@ -1383,9 +1405,9 @@ msgstr ""
1383
msgid "Online status timeout"
1384
msgstr ""
1385
1386
- #: wpf-admin/options-tabs/members.php:16 wpf-admin/options-tabs/posts.php:31
1387
- #: wpf-admin/options-tabs/posts.php:38 wpf-admin/options-tabs/posts.php:49
1388
- #: wpf-admin/options-tabs/posts.php:56 wpf-includes/wpf-phrases.php:390
1389
msgid "minutes"
1390
msgstr ""
1391
@@ -1562,63 +1584,83 @@ msgstr ""
1562
msgid "Recent Posts Display Type"
1563
msgstr ""
1564
1565
- #: wpf-admin/options-tabs/posts.php:23 wpf-includes/wpf-phrases.php:213
1566
msgid "Number of Topics per Page"
1567
msgstr ""
1568
1569
- #: wpf-admin/options-tabs/posts.php:28 wpf-includes/wpf-phrases.php:30
1570
msgid "Allow Edit Own Topic for"
1571
msgstr ""
1572
1573
- #: wpf-admin/options-tabs/posts.php:29 wpf-admin/options-tabs/posts.php:36
1574
- #: wpf-admin/options-tabs/posts.php:47 wpf-admin/options-tabs/posts.php:54
1575
msgid "Set this option value 0 if you want to remove time limit."
1576
msgstr ""
1577
1578
- #: wpf-admin/options-tabs/posts.php:35 wpf-includes/wpf-phrases.php:27
1579
msgid "Allow Delete Own Topic for"
1580
msgstr ""
1581
1582
- #: wpf-admin/options-tabs/posts.php:41 wpf-includes/wpf-phrases.php:212
1583
msgid "Number of Posts per Page"
1584
msgstr ""
1585
1586
- #: wpf-admin/options-tabs/posts.php:46 wpf-includes/wpf-phrases.php:29
1587
msgid "Allow Edit Own Post for"
1588
msgstr ""
1589
1590
- #: wpf-admin/options-tabs/posts.php:53 wpf-includes/wpf-phrases.php:28
1591
msgid "Allow Delete Own post for"
1592
msgstr ""
1593
1594
- #: wpf-admin/options-tabs/posts.php:61 wpf-includes/wpf-phrases.php:169
1595
msgid "Maximum upload file size"
1596
msgstr ""
1597
1598
- #: wpf-admin/options-tabs/posts.php:62 wpf-includes/wpf-phrases.php:370
1599
msgid ""
1600
"You can not set this value more than \"upload_max_filesize\" and "
1601
"\"post_max_size\". If you want to increase server parameters please contact "
1602
"to your hosting service support."
1603
msgstr ""
1604
1605
- #: wpf-admin/options-tabs/posts.php:65 wpf-includes/wpf-phrases.php:166
1606
msgid "MB"
1607
msgstr ""
1608
1609
- #: wpf-admin/options-tabs/posts.php:68 wpf-includes/wpf-phrases.php:288
1610
msgid "Server \"upload_max_filesize\" is "
1611
msgstr ""
1612
1613
- #: wpf-admin/options-tabs/posts.php:69 wpf-includes/wpf-phrases.php:287
1614
msgid "Server \"post_max_size\" is "
1615
msgstr ""
1616
1617
- #: wpf-admin/options-tabs/posts.php:77
1618
msgid "Attachment click - message for non-permitted users"
1619
msgstr ""
1620
1621
- #: wpf-admin/options-tabs/posts.php:78
1622
msgid ""
1623
"This message will be displayed when a non-permitted forum member clicks on "
1624
"attached file link in topic and posts."
@@ -2619,7 +2661,7 @@ msgstr ""
2619
msgid " Discussion Board"
2620
msgstr ""
2621
2622
- #: wpf-includes/class-posts.php:35
2623
msgid "You are not permitted to view this attachment"
2624
msgstr ""
2625
@@ -2635,41 +2677,41 @@ msgstr ""
2635
msgid "Open link in a new tab"
2636
msgstr ""
2637
2638
- #: wpf-includes/class-template.php:1454 wpf-includes/wpf-phrases.php:327
2639
msgid "Theme file not readable"
2640
msgstr ""
2641
2642
- #: wpf-includes/functions-installation.php:663
2643
msgid "Start Profile Synchronization"
2644
msgstr ""
2645
2646
- #: wpf-includes/functions-installation.php:663
2647
msgid "Continue Synchronization"
2648
msgstr ""
2649
2650
- #: wpf-includes/functions-installation.php:666
2651
msgid ""
2652
"This process may take a few seconds or dozens of minutes, please be patient "
2653
"and don't close this page."
2654
msgstr ""
2655
2656
- #: wpf-includes/functions-installation.php:667
2657
msgid ""
2658
"You can permanently disable this message in Dashboard > Forums > Features "
2659
"admin page."
2660
msgstr ""
2661
2662
- #: wpf-includes/functions-installation.php:669
2663
msgid "wpForo Forum Installation | "
2664
msgstr ""
2665
2666
- #: wpf-includes/functions-installation.php:670
2667
msgid ""
2668
"Forum users' profile data are not synchronized yet, this step is required! "
2669
"Please click the button below to complete installation."
2670
msgstr ""
2671
2672
- #: wpf-includes/functions-installation.php:681
2673
msgid ""
2674
"This process may take a few seconds or dozens of minutes, please be patient "
2675
"and don't close this page. Database backup is not required. If you got 500 "
@@ -2677,15 +2719,15 @@ msgid ""
2677
"in MySQL server."
2678
msgstr ""
2679
2680
- #: wpf-includes/functions-installation.php:682
2681
msgid "Updater Database"
2682
msgstr ""
2683
2684
- #: wpf-includes/functions-installation.php:683
2685
msgid "wpForo - Update Database "
2686
msgstr ""
2687
2688
- #: wpf-includes/functions-installation.php:684
2689
msgid "Please click the button below to complete wpForo update."
2690
msgstr ""
2691
@@ -2895,15 +2937,15 @@ msgstr ""
2895
msgid "Search Forums..."
2896
msgstr ""
2897
2898
- #: wpf-includes/integration/buddypress.php:78 wpf-includes/wpf-phrases.php:789
2899
msgid "Topics Started"
2900
msgstr ""
2901
2902
- #: wpf-includes/integration/buddypress.php:89 wpf-includes/wpf-phrases.php:790
2903
msgid "Replies Created"
2904
msgstr ""
2905
2906
- #: wpf-includes/integration/buddypress.php:100 wpf-includes/wpf-phrases.php:791
2907
msgid "Liked Posts"
2908
msgstr ""
2909
@@ -2938,23 +2980,23 @@ msgstr ""
2938
msgid "You do not have permission to mark notifications for that user."
2939
msgstr ""
2940
2941
- #: wpf-includes/integration/ultimate-member.php:22
2942
- #: wpf-includes/integration/ultimate-member.php:59
2943
msgid "User leaves a reply to wpForo topic"
2944
msgstr ""
2945
2946
- #: wpf-includes/integration/ultimate-member.php:24
2947
- #: wpf-includes/integration/ultimate-member.php:61
2948
msgid "When a member replies to one of my forum topics"
2949
msgstr ""
2950
2951
- #: wpf-includes/integration/ultimate-member.php:27
2952
- #: wpf-includes/integration/ultimate-member.php:64
2953
msgid "User replied to wpForo post"
2954
msgstr ""
2955
2956
- #: wpf-includes/integration/ultimate-member.php:29
2957
- #: wpf-includes/integration/ultimate-member.php:66
2958
msgid "When a member replies to one of my post in forum topics"
2959
msgstr ""
2960
@@ -4876,7 +4918,7 @@ msgstr ""
4876
msgid "Done!"
4877
msgstr ""
4878
4879
- #: wpf-includes/wpf-phrases.php:671 wpf-includes/wpf-phrases.php:775
4880
msgid "You are not allowed to attach this file type"
4881
msgstr ""
4882
@@ -5129,181 +5171,191 @@ msgid ""
5129
"old URL of this topic will no longer be available."
5130
msgstr ""
5131
5132
- #: wpf-includes/wpf-phrases.php:751
5133
- msgid "No data submitted"
5134
msgstr ""
5135
5136
#: wpf-includes/wpf-phrases.php:752
5137
- msgid "User profile fields not found"
5138
msgstr ""
5139
5140
#: wpf-includes/wpf-phrases.php:753
5141
- msgid "field is required"
5142
msgstr ""
5143
5144
#: wpf-includes/wpf-phrases.php:754
5145
#, php-format
5146
msgid "field value must be at least %d"
5147
msgstr ""
5148
5149
- #: wpf-includes/wpf-phrases.php:755
5150
#, php-format
5151
msgid "field value cannot be greater than %d"
5152
msgstr ""
5153
5154
- #: wpf-includes/wpf-phrases.php:756
5155
#, php-format
5156
msgid "field length must be at least %d characters"
5157
msgstr ""
5158
5159
- #: wpf-includes/wpf-phrases.php:757
5160
#, php-format
5161
msgid "field length can not be greater than %d characters"
5162
msgstr ""
5163
5164
- #: wpf-includes/wpf-phrases.php:758
5165
msgid "field value is not a valid URL"
5166
msgstr ""
5167
5168
- #: wpf-includes/wpf-phrases.php:759
5169
msgid "file type is not detected"
5170
msgstr ""
5171
5172
- #: wpf-includes/wpf-phrases.php:760
5173
#, php-format
5174
msgid "file type %s is not allowed"
5175
msgstr ""
5176
5177
- #: wpf-includes/wpf-phrases.php:761
5178
msgid "file is too large"
5179
msgstr ""
5180
5181
- #: wpf-includes/wpf-phrases.php:762
5182
msgid "Success! Please check your mail for confirmation."
5183
msgstr ""
5184
5185
- #: wpf-includes/wpf-phrases.php:763
5186
#, php-format
5187
msgid "Username length must be between %d characters and %d characters."
5188
msgstr ""
5189
5190
- #: wpf-includes/wpf-phrases.php:764
5191
msgid "User registration is disabled."
5192
msgstr ""
5193
5194
- #: wpf-includes/wpf-phrases.php:765
5195
msgid "Avatar image is too big maximum allowed size is 2MB"
5196
msgstr ""
5197
5198
- #: wpf-includes/wpf-phrases.php:766
5199
msgid "One of the selected Usergroups cannot be set as Secondary"
5200
msgstr ""
5201
5202
- #: wpf-includes/wpf-phrases.php:767
5203
msgid "The selected Usergroup is not found in allowed list"
5204
msgstr ""
5205
5206
- #: wpf-includes/wpf-phrases.php:768
5207
msgid "The selected Usergroup cannot be set"
5208
msgstr ""
5209
5210
- #: wpf-includes/wpf-phrases.php:769
5211
msgid "Admin and Moderator Usergroups are not permitted"
5212
msgstr ""
5213
5214
- #: wpf-includes/wpf-phrases.php:770
5215
msgid "You have no permission to edit Usergroup field"
5216
msgstr ""
5217
5218
- #: wpf-includes/wpf-phrases.php:771
5219
msgid "This nickname is already in use. Please insert another."
5220
msgstr ""
5221
5222
- #: wpf-includes/wpf-phrases.php:772
5223
msgid "Nickname validation failed"
5224
msgstr ""
5225
5226
- #: wpf-includes/wpf-phrases.php:773
5227
msgid "Numerical nicknames are not allowed. Please insert another."
5228
msgstr ""
5229
5230
- #: wpf-includes/wpf-phrases.php:774
5231
#, php-format
5232
msgid "Maximum allowed file size is %s MB"
5233
msgstr ""
5234
5235
- #: wpf-includes/wpf-phrases.php:776
5236
msgid "This email address is already registered. Please insert another"
5237
msgstr ""
5238
5239
- #: wpf-includes/wpf-phrases.php:777
5240
#, php-format
5241
msgid "Allowed file types: %s"
5242
msgstr ""
5243
5244
- #: wpf-includes/wpf-phrases.php:778
5245
msgid "Form name not found"
5246
msgstr ""
5247
5248
- #: wpf-includes/wpf-phrases.php:779
5249
msgid "Form template not found"
5250
msgstr ""
5251
5252
- #: wpf-includes/wpf-phrases.php:780
5253
msgid "Profile updated successfully"
5254
msgstr ""
5255
5256
- #: wpf-includes/wpf-phrases.php:781
5257
msgid "User data update failed"
5258
msgstr ""
5259
5260
- #: wpf-includes/wpf-phrases.php:782
5261
msgid "User profile update failed"
5262
msgstr ""
5263
5264
- #: wpf-includes/wpf-phrases.php:783
5265
msgid "User custom field update failed"
5266
msgstr ""
5267
5268
- #: wpf-includes/wpf-phrases.php:784
5269
msgid "Sorry, there was an error uploading attached file"
5270
msgstr ""
5271
5272
- #: wpf-includes/wpf-phrases.php:785
5273
msgid "Edit Topic"
5274
msgstr ""
5275
5276
- #: wpf-includes/wpf-phrases.php:786
5277
#, php-format
5278
msgid "This topic was modified %s by %s"
5279
msgstr ""
5280
5281
- #: wpf-includes/wpf-phrases.php:787
5282
msgid "Edit Post"
5283
msgstr ""
5284
5285
- #: wpf-includes/wpf-phrases.php:788
5286
#, php-format
5287
msgid "This post was modified %s by %s"
5288
msgstr ""
5289
5290
- #: wpf-includes/wpf-phrases.php:792
5291
msgid "Topic link"
5292
msgstr ""
5293
5294
- #: wpf-includes/wpf-phrases.php:793
5295
msgid "Forum Topics Started"
5296
msgstr ""
5297
5298
- #: wpf-includes/wpf-phrases.php:794
5299
msgid "Forum Replies Created"
5300
msgstr ""
5301
5302
- #: wpf-includes/wpf-phrases.php:795
5303
msgid "Liked Forum Posts"
5304
msgstr ""
5305
5306
- #: wpf-includes/wpf-phrases.php:796
5307
msgid "Forum Subscriptions"
5308
msgstr ""
5309
5
msgstr ""
6
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
7
"Project-Id-Version: Forum - wpForo\n"
8
+ "POT-Creation-Date: 2018-07-11 17:35+0300\n"
9
"PO-Revision-Date: 2016-06-28 21:09+0400\n"
10
"Last-Translator: \n"
11
"Language-Team: \n"
405
#: wpf-admin/options-tabs/general.php:58 wpf-admin/options-tabs/general.php:69
406
#: wpf-admin/options-tabs/members.php:13 wpf-admin/options-tabs/members.php:27
407
#: wpf-admin/options-tabs/members.php:46 wpf-admin/options-tabs/members.php:87
408
+ #: wpf-admin/options-tabs/posts.php:47 wpf-admin/options-tabs/posts.php:52
409
+ #: wpf-admin/options-tabs/posts.php:59 wpf-admin/options-tabs/posts.php:65
410
+ #: wpf-admin/options-tabs/posts.php:70 wpf-admin/options-tabs/posts.php:77
411
+ #: wpf-admin/options-tabs/posts.php:85 wpf-admin/options-tabs/posts.php:101
412
#: wpf-admin/options-tabs/styles.php:43 wpf-admin/usergroup.php:28
413
#: wpf-admin/usergroup.php:30 wpf-admin/usergroup.php:243
414
#: wpf-themes/classic/functions.php:39 wpf-themes/classic/functions.php:48
666
#: wpf-admin/options-tabs/api.php:37 wpf-admin/options-tabs/api.php:49
667
#: wpf-admin/options-tabs/api.php:60 wpf-admin/options-tabs/api.php:71
668
#: wpf-admin/options-tabs/api.php:140 wpf-admin/options-tabs/api.php:147
669
+ #: wpf-admin/options-tabs/members.php:94 wpf-admin/options-tabs/posts.php:29
670
+ #: wpf-admin/options-tabs/posts.php:41 wpf-admin/tools-tabs/legal.php:48
671
#: wpf-admin/tools-tabs/legal.php:60 wpf-admin/tools-tabs/legal.php:82
672
#: wpf-admin/tools-tabs/legal.php:117 wpf-admin/tools-tabs/legal.php:129
673
#: wpf-admin/tools-tabs/legal.php:148
677
#: wpf-admin/options-tabs/api.php:38 wpf-admin/options-tabs/api.php:50
678
#: wpf-admin/options-tabs/api.php:61 wpf-admin/options-tabs/api.php:72
679
#: wpf-admin/options-tabs/api.php:141 wpf-admin/options-tabs/api.php:148
680
+ #: wpf-admin/options-tabs/members.php:95 wpf-admin/options-tabs/posts.php:30
681
+ #: wpf-admin/options-tabs/posts.php:42 wpf-admin/tools-tabs/legal.php:49
682
#: wpf-admin/tools-tabs/legal.php:61 wpf-admin/tools-tabs/legal.php:83
683
#: wpf-admin/tools-tabs/legal.php:118 wpf-admin/tools-tabs/legal.php:130
684
#: wpf-admin/tools-tabs/legal.php:149
819
"and bottom) locations."
820
msgstr ""
821
822
+ #: wpf-admin/options-tabs/api.php:245 wpf-admin/options-tabs/emails.php:164
823
#: wpf-admin/options-tabs/features.php:89 wpf-admin/options-tabs/forums.php:16
824
#: wpf-admin/options-tabs/general.php:83 wpf-admin/options-tabs/members.php:181
825
+ #: wpf-admin/options-tabs/posts.php:112 wpf-admin/options-tabs/styles.php:93
826
#: wpf-admin/tools-tabs/antispam.php:343 wpf-admin/tools-tabs/cleanup.php:49
827
#: wpf-admin/tools-tabs/legal.php:179 wpf-admin/tools-tabs/misc.php:134
828
#: wpf-includes/wpf-phrases.php:344
858
msgstr ""
859
860
#: wpf-admin/options-tabs/emails.php:33 wpf-admin/options-tabs/emails.php:45
861
+ #: wpf-admin/options-tabs/emails.php:148 wpf-admin/options-tabs/features.php:77
862
#: wpf-admin/tools-tabs/antispam.php:31 wpf-admin/tools-tabs/antispam.php:40
863
#: wpf-admin/tools-tabs/antispam.php:49 wpf-admin/tools-tabs/antispam.php:150
864
#: wpf-admin/tools-tabs/antispam.php:159 wpf-admin/tools-tabs/antispam.php:169
870
msgstr ""
871
872
#: wpf-admin/options-tabs/emails.php:34 wpf-admin/options-tabs/emails.php:46
873
+ #: wpf-admin/options-tabs/emails.php:149 wpf-admin/options-tabs/features.php:79
874
#: wpf-admin/tools-tabs/antispam.php:32 wpf-admin/tools-tabs/antispam.php:41
875
#: wpf-admin/tools-tabs/antispam.php:50 wpf-admin/tools-tabs/antispam.php:151
876
#: wpf-admin/tools-tabs/antispam.php:160 wpf-admin/tools-tabs/antispam.php:170
936
msgstr ""
937
938
#: wpf-admin/options-tabs/emails.php:97
939
+ msgid "New User Registration Email for admins"
940
+ msgstr ""
941
+
942
+ #: wpf-admin/options-tabs/emails.php:98 wpf-admin/options-tabs/emails.php:114
943
+ msgid "This message comes when new user registers to site"
944
+ msgstr ""
945
+
946
+ #: wpf-admin/options-tabs/emails.php:103 wpf-admin/options-tabs/emails.php:119
947
+ msgid "Message Subject"
948
+ msgstr ""
949
+
950
+ #: wpf-admin/options-tabs/emails.php:108 wpf-admin/options-tabs/emails.php:124
951
+ msgid "Message Body"
952
+ msgstr ""
953
+
954
+ #: wpf-admin/options-tabs/emails.php:113
955
+ msgid "New User Registration Email for user"
956
+ msgstr ""
957
+
958
+ #: wpf-admin/options-tabs/emails.php:129
959
msgid "Reset Password Emails"
960
msgstr ""
961
962
+ #: wpf-admin/options-tabs/emails.php:130
963
msgid "This message comes from Reset Password form."
964
msgstr ""
965
966
+ #: wpf-admin/options-tabs/emails.php:134
967
msgid "Reset Password message body"
968
msgstr ""
969
970
+ #: wpf-admin/options-tabs/emails.php:139
971
msgid "User Mentioning Email"
972
msgstr ""
973
974
+ #: wpf-admin/options-tabs/emails.php:144
975
msgid "Enable Email Notification"
976
msgstr ""
977
978
+ #: wpf-admin/options-tabs/emails.php:154
979
msgid "User Mention message subject"
980
msgstr ""
981
982
+ #: wpf-admin/options-tabs/emails.php:158
983
msgid "User Mention message body"
984
msgstr ""
985
1405
msgid "Online status timeout"
1406
msgstr ""
1407
1408
+ #: wpf-admin/options-tabs/members.php:16 wpf-admin/options-tabs/posts.php:55
1409
+ #: wpf-admin/options-tabs/posts.php:62 wpf-admin/options-tabs/posts.php:73
1410
+ #: wpf-admin/options-tabs/posts.php:80 wpf-includes/wpf-phrases.php:390
1411
msgid "minutes"
1412
msgstr ""
1413
1584
msgid "Recent Posts Display Type"
1585
msgstr ""
1586
1587
+ #: wpf-admin/options-tabs/posts.php:24
1588
+ msgid "Log Topic Editing Information"
1589
+ msgstr ""
1590
+
1591
+ #: wpf-admin/options-tabs/posts.php:25
1592
+ msgid ""
1593
+ "The post edit logging information \"This post was modified 2 hours ago by "
1594
+ "John\" is displayed under modified topic first post content.."
1595
+ msgstr ""
1596
+
1597
+ #: wpf-admin/options-tabs/posts.php:36
1598
+ msgid "Log Post Editing Information"
1599
+ msgstr ""
1600
+
1601
+ #: wpf-admin/options-tabs/posts.php:37
1602
+ msgid ""
1603
+ "The post edit logging information \"This post was modified 2 hours ago by "
1604
+ "John\" is displayed under modified post content.."
1605
+ msgstr ""
1606
+
1607
+ #: wpf-admin/options-tabs/posts.php:47 wpf-includes/wpf-phrases.php:213
1608
msgid "Number of Topics per Page"
1609
msgstr ""
1610
1611
+ #: wpf-admin/options-tabs/posts.php:52 wpf-includes/wpf-phrases.php:30
1612
msgid "Allow Edit Own Topic for"
1613
msgstr ""
1614
1615
+ #: wpf-admin/options-tabs/posts.php:53 wpf-admin/options-tabs/posts.php:60
1616
+ #: wpf-admin/options-tabs/posts.php:71 wpf-admin/options-tabs/posts.php:78
1617
msgid "Set this option value 0 if you want to remove time limit."
1618
msgstr ""
1619
1620
+ #: wpf-admin/options-tabs/posts.php:59 wpf-includes/wpf-phrases.php:27
1621
msgid "Allow Delete Own Topic for"
1622
msgstr ""
1623
1624
+ #: wpf-admin/options-tabs/posts.php:65 wpf-includes/wpf-phrases.php:212
1625
msgid "Number of Posts per Page"
1626
msgstr ""
1627
1628
+ #: wpf-admin/options-tabs/posts.php:70 wpf-includes/wpf-phrases.php:29
1629
msgid "Allow Edit Own Post for"
1630
msgstr ""
1631
1632
+ #: wpf-admin/options-tabs/posts.php:77 wpf-includes/wpf-phrases.php:28
1633
msgid "Allow Delete Own post for"
1634
msgstr ""
1635
1636
+ #: wpf-admin/options-tabs/posts.php:85 wpf-includes/wpf-phrases.php:169
1637
msgid "Maximum upload file size"
1638
msgstr ""
1639
1640
+ #: wpf-admin/options-tabs/posts.php:86 wpf-includes/wpf-phrases.php:370
1641
msgid ""
1642
"You can not set this value more than \"upload_max_filesize\" and "
1643
"\"post_max_size\". If you want to increase server parameters please contact "
1644
"to your hosting service support."
1645
msgstr ""
1646
1647
+ #: wpf-admin/options-tabs/posts.php:89 wpf-includes/wpf-phrases.php:166
1648
msgid "MB"
1649
msgstr ""
1650
1651
+ #: wpf-admin/options-tabs/posts.php:92 wpf-includes/wpf-phrases.php:288
1652
msgid "Server \"upload_max_filesize\" is "
1653
msgstr ""
1654
1655
+ #: wpf-admin/options-tabs/posts.php:93 wpf-includes/wpf-phrases.php:287
1656
msgid "Server \"post_max_size\" is "
1657
msgstr ""
1658
1659
+ #: wpf-admin/options-tabs/posts.php:101
1660
msgid "Attachment click - message for non-permitted users"
1661
msgstr ""
1662
1663
+ #: wpf-admin/options-tabs/posts.php:102
1664
msgid ""
1665
"This message will be displayed when a non-permitted forum member clicks on "
1666
"attached file link in topic and posts."
2661
msgid " Discussion Board"
2662
msgstr ""
2663
2664
+ #: wpf-includes/class-posts.php:37
2665
msgid "You are not permitted to view this attachment"
2666
msgstr ""
2667
2677
msgid "Open link in a new tab"
2678
msgstr ""
2679
2680
+ #: wpf-includes/class-template.php:1457 wpf-includes/wpf-phrases.php:327
2681
msgid "Theme file not readable"
2682
msgstr ""
2683
2684
+ #: wpf-includes/functions-installation.php:671
2685
msgid "Start Profile Synchronization"
2686
msgstr ""
2687
2688
+ #: wpf-includes/functions-installation.php:671
2689
msgid "Continue Synchronization"
2690
msgstr ""
2691
2692
+ #: wpf-includes/functions-installation.php:674
2693
msgid ""
2694
"This process may take a few seconds or dozens of minutes, please be patient "
2695
"and don't close this page."
2696
msgstr ""
2697
2698
+ #: wpf-includes/functions-installation.php:675
2699
msgid ""
2700
"You can permanently disable this message in Dashboard > Forums > Features "
2701
"admin page."
2702
msgstr ""
2703
2704
+ #: wpf-includes/functions-installation.php:677
2705
msgid "wpForo Forum Installation | "
2706
msgstr ""
2707
2708
+ #: wpf-includes/functions-installation.php:678
2709
msgid ""
2710
"Forum users' profile data are not synchronized yet, this step is required! "
2711
"Please click the button below to complete installation."
2712
msgstr ""
2713
2714
+ #: wpf-includes/functions-installation.php:689
2715
msgid ""
2716
"This process may take a few seconds or dozens of minutes, please be patient "
2717
"and don't close this page. Database backup is not required. If you got 500 "
2719
"in MySQL server."
2720
msgstr ""
2721
2722
+ #: wpf-includes/functions-installation.php:690
2723
msgid "Updater Database"
2724
msgstr ""
2725
2726
+ #: wpf-includes/functions-installation.php:691
2727
msgid "wpForo - Update Database "
2728
msgstr ""
2729
2730
+ #: wpf-includes/functions-installation.php:692
2731
msgid "Please click the button below to complete wpForo update."
2732
msgstr ""
2733
2937
msgid "Search Forums..."
2938
msgstr ""
2939
2940
+ #: wpf-includes/integration/buddypress.php:78 wpf-includes/wpf-phrases.php:790
2941
msgid "Topics Started"
2942
msgstr ""
2943
2944
+ #: wpf-includes/integration/buddypress.php:89 wpf-includes/wpf-phrases.php:791
2945
msgid "Replies Created"
2946
msgstr ""
2947
2948
+ #: wpf-includes/integration/buddypress.php:100 wpf-includes/wpf-phrases.php:792
2949
msgid "Liked Posts"
2950
msgstr ""
2951
2980
msgid "You do not have permission to mark notifications for that user."
2981
msgstr ""
2982
2983
+ #: wpf-includes/integration/ultimate-member.php:64
2984
+ #: wpf-includes/integration/ultimate-member.php:374
2985
msgid "User leaves a reply to wpForo topic"
2986
msgstr ""
2987
2988
+ #: wpf-includes/integration/ultimate-member.php:66
2989
+ #: wpf-includes/integration/ultimate-member.php:376
2990
msgid "When a member replies to one of my forum topics"
2991
msgstr ""
2992
2993
+ #: wpf-includes/integration/ultimate-member.php:69
2994
+ #: wpf-includes/integration/ultimate-member.php:379
2995
msgid "User replied to wpForo post"
2996
msgstr ""
2997
2998
+ #: wpf-includes/integration/ultimate-member.php:71
2999
+ #: wpf-includes/integration/ultimate-member.php:381
3000
msgid "When a member replies to one of my post in forum topics"
3001
msgstr ""
3002
4918
msgid "Done!"
4919
msgstr ""
4920
4921
+ #: wpf-includes/wpf-phrases.php:671 wpf-includes/wpf-phrases.php:776
4922
msgid "You are not allowed to attach this file type"
4923
msgstr ""
4924
5171
"old URL of this topic will no longer be available."
5172
msgstr ""
5173
5174
+ #: wpf-includes/wpf-phrases.php:749
5175
+ #, php-format
5176
+ msgid ""
5177
+ "When you login first time using Facebook Login button, we collect your "
5178
+ "account %s information shared by Facebook, based on your privacy settings. "
5179
+ "We also get your email address to automatically create a forum account for "
5180
+ "you. Once your account is created, you'll be logged-in to this account and "
5181
+ "you'll receive a confirmation email."
5182
msgstr ""
5183
5184
#: wpf-includes/wpf-phrases.php:752
5185
+ msgid "No data submitted"
5186
msgstr ""
5187
5188
#: wpf-includes/wpf-phrases.php:753
5189
+ msgid "User profile fields not found"
5190
msgstr ""
5191
5192
#: wpf-includes/wpf-phrases.php:754
5193
+ msgid "field is required"
5194
+ msgstr ""
5195
+
5196
+ #: wpf-includes/wpf-phrases.php:755
5197
#, php-format
5198
msgid "field value must be at least %d"
5199
msgstr ""
5200
5201
+ #: wpf-includes/wpf-phrases.php:756
5202
#, php-format
5203
msgid "field value cannot be greater than %d"
5204
msgstr ""
5205
5206
+ #: wpf-includes/wpf-phrases.php:757
5207
#, php-format
5208
msgid "field length must be at least %d characters"
5209
msgstr ""
5210
5211
+ #: wpf-includes/wpf-phrases.php:758
5212
#, php-format
5213
msgid "field length can not be greater than %d characters"
5214
msgstr ""
5215
5216
+ #: wpf-includes/wpf-phrases.php:759
5217
msgid "field value is not a valid URL"
5218
msgstr ""
5219
5220
+ #: wpf-includes/wpf-phrases.php:760
5221
msgid "file type is not detected"
5222
msgstr ""
5223
5224
+ #: wpf-includes/wpf-phrases.php:761
5225
#, php-format
5226
msgid "file type %s is not allowed"
5227
msgstr ""
5228
5229
+ #: wpf-includes/wpf-phrases.php:762
5230
msgid "file is too large"
5231
msgstr ""
5232
5233
+ #: wpf-includes/wpf-phrases.php:763
5234
msgid "Success! Please check your mail for confirmation."
5235
msgstr ""
5236
5237
+ #: wpf-includes/wpf-phrases.php:764
5238
#, php-format
5239
msgid "Username length must be between %d characters and %d characters."
5240
msgstr ""
5241
5242
+ #: wpf-includes/wpf-phrases.php:765
5243
msgid "User registration is disabled."
5244
msgstr ""
5245
5246
+ #: wpf-includes/wpf-phrases.php:766
5247
msgid "Avatar image is too big maximum allowed size is 2MB"
5248
msgstr ""
5249
5250
+ #: wpf-includes/wpf-phrases.php:767
5251
msgid "One of the selected Usergroups cannot be set as Secondary"
5252
msgstr ""
5253
5254
+ #: wpf-includes/wpf-phrases.php:768
5255
msgid "The selected Usergroup is not found in allowed list"
5256
msgstr ""
5257
5258
+ #: wpf-includes/wpf-phrases.php:769
5259
msgid "The selected Usergroup cannot be set"
5260
msgstr ""
5261
5262
+ #: wpf-includes/wpf-phrases.php:770
5263
msgid "Admin and Moderator Usergroups are not permitted"
5264
msgstr ""
5265
5266
+ #: wpf-includes/wpf-phrases.php:771
5267
msgid "You have no permission to edit Usergroup field"
5268
msgstr ""
5269
5270
+ #: wpf-includes/wpf-phrases.php:772
5271
msgid "This nickname is already in use. Please insert another."
5272
msgstr ""
5273
5274
+ #: wpf-includes/wpf-phrases.php:773
5275
msgid "Nickname validation failed"
5276
msgstr ""
5277
5278
+ #: wpf-includes/wpf-phrases.php:774
5279
msgid "Numerical nicknames are not allowed. Please insert another."
5280
msgstr ""
5281
5282
+ #: wpf-includes/wpf-phrases.php:775
5283
#, php-format
5284
msgid "Maximum allowed file size is %s MB"
5285
msgstr ""
5286
5287
+ #: wpf-includes/wpf-phrases.php:777
5288
msgid "This email address is already registered. Please insert another"
5289
msgstr ""
5290
5291
+ #: wpf-includes/wpf-phrases.php:778
5292
#, php-format
5293
msgid "Allowed file types: %s"
5294
msgstr ""
5295
5296
+ #: wpf-includes/wpf-phrases.php:779
5297
msgid "Form name not found"
5298
msgstr ""
5299
5300
+ #: wpf-includes/wpf-phrases.php:780
5301
msgid "Form template not found"
5302
msgstr ""
5303
5304
+ #: wpf-includes/wpf-phrases.php:781
5305
msgid "Profile updated successfully"
5306
msgstr ""
5307
5308
+ #: wpf-includes/wpf-phrases.php:782
5309
msgid "User data update failed"
5310
msgstr ""
5311
5312
+ #: wpf-includes/wpf-phrases.php:783
5313
msgid "User profile update failed"
5314
msgstr ""
5315
5316
+ #: wpf-includes/wpf-phrases.php:784
5317
msgid "User custom field update failed"
5318
msgstr ""
5319
5320
+ #: wpf-includes/wpf-phrases.php:785
5321
msgid "Sorry, there was an error uploading attached file"
5322
msgstr ""
5323
5324
+ #: wpf-includes/wpf-phrases.php:786
5325
msgid "Edit Topic"
5326
msgstr ""
5327
5328
+ #: wpf-includes/wpf-phrases.php:787
5329
#, php-format
5330
msgid "This topic was modified %s by %s"
5331
msgstr ""
5332
5333
+ #: wpf-includes/wpf-phrases.php:788
5334
msgid "Edit Post"
5335
msgstr ""
5336
5337
+ #: wpf-includes/wpf-phrases.php:789
5338
#, php-format
5339
msgid "This post was modified %s by %s"
5340
msgstr ""
5341
5342
+ #: wpf-includes/wpf-phrases.php:793
5343
msgid "Topic link"
5344
msgstr ""
5345
5346
+ #: wpf-includes/wpf-phrases.php:794
5347
msgid "Forum Topics Started"
5348
msgstr ""
5349
5350
+ #: wpf-includes/wpf-phrases.php:795
5351
msgid "Forum Replies Created"
5352
msgstr ""
5353
5354
+ #: wpf-includes/wpf-phrases.php:796
5355
msgid "Liked Forum Posts"
5356
msgstr ""
5357
5358
+ #: wpf-includes/wpf-phrases.php:797
5359
msgid "Forum Subscriptions"
5360
msgstr ""
5361
wpforo.php CHANGED
@@ -5,14 +5,14 @@
5
* Description: WordPress Forum plugin. wpForo is a full-fledged forum solution for your community. Comes with multiple modern forum layouts.
6
* Author: gVectors Team (A. Chakhoyan, R. Hovhannisyan)
7
* Author URI: https://gvectors.com/
8
- * Version: 1.5.0
9
* Text Domain: wpforo
10
* Domain Path: /wpf-languages
11
*/
12
13
//Exit if accessed directly
14
if( !defined( 'ABSPATH' ) ) exit;
15
- if( !defined( 'WPFORO_VERSION' ) ) define('WPFORO_VERSION', '1.5.0');
16
17
function wpforo_load_plugin_textdomain() { load_plugin_textdomain( 'wpforo', FALSE, basename( dirname( __FILE__ ) ) . '/wpf-languages/' ); }
18
add_action( 'plugins_loaded', 'wpforo_load_plugin_textdomain' );
@@ -264,7 +264,7 @@ if( !class_exists( 'wpForo' ) ) {
264
'user-register-email-confirm' => 1,
265
'register-url' => 0,
266
'login-url' => 0,
267
- 'resetpass-url' => 0, //In most cases incompatible with security and antispam plugins
268
'replace-avatar' => 1,
269
'avatars' => 1,
270
'custom-avatars' => 1,
@@ -285,8 +285,8 @@ if( !class_exists( 'wpForo' ) ) {
285
'bp_notification' => 1,
286
'bp_forum_tab' => 1,
287
'um_profile' => 0,
288
- 'um_forum_tab' => 0,
289
- 'um_notification' => 0,
290
'user-synch' => 0,
291
'role-synch' => 1,
292
'output-buffer' => 1,
5
* Description: WordPress Forum plugin. wpForo is a full-fledged forum solution for your community. Comes with multiple modern forum layouts.
6
* Author: gVectors Team (A. Chakhoyan, R. Hovhannisyan)
7
* Author URI: https://gvectors.com/
8
+ * Version: 1.5.1
9
* Text Domain: wpforo
10
* Domain Path: /wpf-languages
11
*/
12
13
//Exit if accessed directly
14
if( !defined( 'ABSPATH' ) ) exit;
15
+ if( !defined( 'WPFORO_VERSION' ) ) define('WPFORO_VERSION', '1.5.1');
16
17
function wpforo_load_plugin_textdomain() { load_plugin_textdomain( 'wpforo', FALSE, basename( dirname( __FILE__ ) ) . '/wpf-languages/' ); }
18
add_action( 'plugins_loaded', 'wpforo_load_plugin_textdomain' );
264
'user-register-email-confirm' => 1,
265
'register-url' => 0,
266
'login-url' => 0,
267
+ 'resetpass-url' => 1, //In most cases incompatible with security and antispam plugins
268
'replace-avatar' => 1,
269
'avatars' => 1,
270
'custom-avatars' => 1,
285
'bp_notification' => 1,
286
'bp_forum_tab' => 1,
287
'um_profile' => 0,
288
+ 'um_forum_tab' => 1,
289
+ 'um_notification' => 1,
290
'user-synch' => 0,
291
'role-synch' => 1,
292
'output-buffer' => 1,