Version Description
| 11.06.2017 =
wpForo v1.3.1 Release Summary
- Tested with WordPress 4.8
- Fixed Bug: 404 page header issue
- Fixed Bug: Usergroup style and space issue
- Fixed Bug: Admin bar displaying issue. Only for logged-in users
- Fixed Bug: Moderator access to topic/post Moderation admin page
- Fixed Bug: Bad quality of user avatars on topic list of Simplified Layout
- Fixed Bug: Cache issue with private/unapproved topics and posts
- Fixed Bug: Small bug with delete all cache process
- Fixed Bug: Undefined index: HTTP_REFERER in /functions.php on line 233
- Fixed Bug: Issue with Edit and Delete button for new reg users if topic/post is unapproved
- New Addon: wpForo - Blog Cross Posting
IMPORTANT:
- If you have a copy of wpForo template files in your WP theme /wpforo/ folder please update those. wpForo 1.3.0 requirs new template files.
- If you're updating from beta, 1.0.x or 1.1.x versions, please navigate to Dashboard > Forums > Tools admin page and check the "Possible Spam Attachments" section. We detected massive spam file uploading cases in non-protected forums. Spammers delete topics and posts but uploaded spam files are still in your file system, most of those PDF files. Please delete all suspected PDF files listed in this section. More Info...
- To load your customized colors please refresh forum front-end page twice.
- If you have a Cache Plugin, please delete all caches after wpForo update.
- If you use CDN and found some issue please purge it.
Download this release
Release Info
Developer | Tomdever |
Plugin | wpForo Forum |
Version | 1.3.1 |
Comparing to | |
See all releases |
Code changes from version 1.3.0 to 1.3.1
- readme.txt +79 -77
- wpf-admin/moderation.php +1 -1
- wpf-admin/tools-tabs/antispam.php +6 -5
- wpf-admin/tools.php +6 -11
- wpf-admin/xml/english.xml +4 -0
- wpf-assets/addons/ad-manager/header-off.png +0 -0
- wpf-assets/addons/cross/header-off.png +0 -0
- wpf-assets/addons/cross/header.png +0 -0
- wpf-includes/class-forums.php +14 -8
- wpf-includes/class-members.php +66 -3
- wpf-includes/class-posts.php +79 -22
- wpf-includes/class-template.php +10 -4
- wpf-includes/class-topics.php +76 -24
- wpf-includes/functions-installation.php +14 -5
- wpf-includes/functions-template.php +87 -41
- wpf-includes/functions.php +21 -11
- wpf-includes/install-sql.php +30 -4
- wpf-includes/wpf-actions.php +3 -16
- wpf-includes/wpf-hooks.php +8 -13
- wpf-includes/wpf-phrases.php +6 -0
- wpf-languages/wpforo.pot +112 -96
- wpf-themes/classic/layouts/1/forum.php +2 -2
- wpf-themes/classic/layouts/1/post.php +2 -2
- wpf-themes/classic/layouts/1/topic.php +6 -6
- wpf-themes/classic/layouts/2/forum.php +12 -4
- wpf-themes/classic/layouts/2/post.php +2 -2
- wpf-themes/classic/layouts/2/topic.php +5 -5
- wpf-themes/classic/layouts/3/forum.php +2 -2
- wpf-themes/classic/layouts/3/post.php +4 -5
- wpf-themes/classic/layouts/3/topic.php +4 -4
- wpf-themes/classic/members.php +1 -1
- wpf-themes/classic/search.php +1 -1
- wpf-themes/classic/style-rtl.css +7 -0
- wpf-themes/classic/style.css +6 -0
- wpforo.php +11 -10
readme.txt
CHANGED
@@ -2,73 +2,57 @@
|
|
2 |
Contributors: gVectors Team
|
3 |
Tags: forums, forum, community, discussion, bulletin board, question and answers, qa
|
4 |
Requires at least: 4.1
|
5 |
-
Tested up to: 4.
|
6 |
-
Stable tag: 1.3.
|
7 |
License: GPLv2 or later
|
8 |
-
License URI:
|
9 |
|
10 |
Forums wpForo is a new generation of forum plugins. It's full-fledged forum solution for your community. Comes with multiple modern forum layouts.
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
-
|
15 |
|
16 |
-
Community and Demo: [
|
17 |
-
Documentation: [
|
18 |
|
19 |
|
20 |
= Forums can be displayed with three different layouts =
|
21 |
|
22 |
-
1. [**Extended Layout:**](
|
23 |
Classic forum layout with an unique feature to show one level deeper information. You can see latest topics of each forum on Forum List and latest posts of each topic on Topic List.
|
24 |
-
2. [**Simplified Layout:**](
|
25 |
Light, modern and beautiful forum layout with topic and post author avatars on forum and topic lists.
|
26 |
-
3. [**Question and Answer Layout:**](
|
27 |
Complete Question & Answers discussion board for professional support and for communities similar to Stack Overflow. Perfect platform for users to ask and answer questions, and, through membership and active participation, to vote up or down.
|
28 |
|
29 |
-
= Available Translations =
|
30 |
-
|
31 |
-
* | Czech (cs_CZ) by Glados (The Witcher)
|
32 |
-
* | German (de_DE) by Markus Herrmann
|
33 |
-
* | Spanish (es_ES) Poncho Camacho
|
34 |
-
* | Spanish (Mexico) (es_MX) Poncho Camacho
|
35 |
-
* | Swedish (sv_SE) by Mathias Persson
|
36 |
-
* | Persian (fa_IR) by wpforo.ir
|
37 |
-
* | Hebrew (he_IL) Gal Zilberman
|
38 |
-
* | Japanese (JA_ja) by Seg Way
|
39 |
-
* | Korean (ko_KO) by Jeehwan Song
|
40 |
-
* | Dutch (nl_NL) Ger Metselaar i.o.v. Parma multimedia BV
|
41 |
-
* | Russian (ru_RU) by Dmitry Butkevich
|
42 |
-
* | Polish (pl_PL) by Bogusław Górecki
|
43 |
-
* | French (fr_FR) by Julien Coopmann | Florent Lanternier | Youri Le Cottier
|
44 |
-
|
45 |
= wpForo Addons =
|
46 |
|
47 |
-
* | [wpForo - Embeds](
|
48 |
-
* | [wpForo - Ads Manager](
|
49 |
-
* | [wpForo - Advanced Attachments](
|
50 |
-
* | [wpForo - Private Messages](
|
|
|
51 |
|
52 |
= WPFORO FEATURES =
|
53 |
|
54 |
-
* |
|
55 |
-
* |
|
56 |
-
* |
|
57 |
-
* |
|
58 |
-
* |
|
59 |
-
* |
|
60 |
-
* |
|
61 |
-
* |
|
62 |
-
* |
|
63 |
-
* |
|
64 |
-
* |
|
65 |
-
* |
|
66 |
-
* |
|
67 |
-
* |
|
68 |
-
* |
|
69 |
-
* |
|
70 |
-
* |
|
71 |
-
* | **EASY TO MIGRATE** | You can download [Go2wpForo](http://wpforo.com/community/migrate-to-wpforo-from-other-forum-plugins/migrate-to-wpforo-go2wpforo-tool/) free migration tool from our [support forum](http://wpforo.com/community/migrate-to-wpforo-from-other-forum-plugins/migrate-to-wpforo-go2wpforo-tool/). This tool allows you migrate from different WordPress forum plugins to wpForo.
|
72 |
|
73 |
|
74 |
= Currently we're working on =
|
@@ -76,7 +60,7 @@ Complete Question & Answers discussion board for professional support and for co
|
|
76 |
* Guest Posting...
|
77 |
* Read/Unread topics and posts...
|
78 |
* Social Network Sharing Buttons...
|
79 |
-
* [Go2wpForo](
|
80 |
|
81 |
|
82 |
== Installation ==
|
@@ -84,7 +68,7 @@ Complete Question & Answers discussion board for professional support and for co
|
|
84 |
1. Install the plugin through the WordPress plugins screen directly or upload the plugin files to the `/wp-content/plugins/wpforo` directory
|
85 |
2. Activate the plugin through the 'Plugins' screen in WordPress
|
86 |
3. If you have more than 100 users wpForo will ask you synchronize users and create user profile. You just need to click on [Create Profile Data] button in wpForo message box after the plugin activation.
|
87 |
-
4. Getting Started Doc
|
88 |
|
89 |
|
90 |
== Frequently Asked Questions ==
|
@@ -95,30 +79,30 @@ Complete Question & Answers discussion board for professional support and for co
|
|
95 |
1. **Forum Page:** wpForo creates a page with `/community/` slug. If this slug is used you'll have `/community-2/` or `/community-3/` slug. You can find the correct one in Forums > Settings > General Tab. Make sure you use WordPress permalinks. wpForo doesn't work with default `?p=1` URL structure.
|
96 |
|
97 |
2. **Change Forum Page:**
|
98 |
-
|
99 |
|
100 |
3. **Forum Menu:**
|
101 |
-
|
102 |
|
103 |
4. **Forum Sidebar and Widgets:**
|
104 |
-
|
105 |
|
106 |
-
5. **Forum Management:**
|
107 |
|
108 |
6. **Forum Style & Colors:**
|
109 |
-
|
110 |
|
111 |
7. **Login and Registration** In Forums > Settings > Features admin page you can force WP to use wpForo Login and Register pages or keep default WordPress pages. For custom Login/Register/Lostpassword Pages please navigate to Members Tab and use "Custom Authorization URLs" option.
|
112 |
|
113 |
8. **Forum is loaded on website top:** In this case you should navigate to Forums > Settings > Features admin page and check "Enable Output Buffer" option.
|
114 |
|
115 |
9. **Forums don't show up on the main page** Please read this FAQ topic:
|
116 |
-
|
117 |
|
118 |
10. **wpForo Shortcodes**
|
119 |
-
|
120 |
|
121 |
-
wpForo Support Forum: <
|
122 |
|
123 |
== Screenshots ==
|
124 |
|
@@ -142,9 +126,35 @@ wpForo Support Forum: <http://wpforo.com/community/>
|
|
142 |
|
143 |
== Changelog ==
|
144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
= 1.3.0 | 23.05.2017 =
|
146 |
|
147 |
-
[wpForo v1.3.0 Release Summary](
|
148 |
|
149 |
* Added: Two step installation if there are more than 100 users
|
150 |
* Added: wpForo Built-in Cache System
|
@@ -170,7 +180,7 @@ wpForo Support Forum: <http://wpforo.com/community/>
|
|
170 |
* Added: New options in Settings > Members to display Usergroup under Avatar
|
171 |
* Added: Options to Disable Object Cache, Memory Cache, HTML Cache.
|
172 |
* Added: Delete All Caches button (Dashboard > Forums > Dashboard)
|
173 |
-
* New Addon: [wpForo Ads Manager](
|
174 |
* Fixed Bug: Visible unapproved replies in approved topic
|
175 |
* Fixed Bug: Subscribers get email when topic is approved but post is not.
|
176 |
* Fixed Bug: Illegal string offset 'userid' in /wpf-hooks.php on line 1281
|
@@ -183,17 +193,9 @@ wpForo Support Forum: <http://wpforo.com/community/>
|
|
183 |
* Fixed Bug: Many small bugs
|
184 |
|
185 |
|
186 |
-
IMPORTANT:
|
187 |
-
|
188 |
-
- If you have a copy of wpForo template files in your WP theme /wpforo/ folder please update those. wpForo 1.3.0 requirs new template files.
|
189 |
-
- If you're updating from beta, 1.0.x or 1.1.x versions, please navigate to Dashboard > Forums > Tools admin page and check the "Possible Spam Attachments" section. We detected massive spam file uploading cases in non-protected forums. Spammers delete topics and posts but uploaded spam files are still in your file system, most of those PDF files. Please delete all suspected PDF files listed in this section. [More Info](http://wpforo.com/community/wpforo-announcements/wpforo-1-2-0-is-released/)...
|
190 |
-
- To load your customized colors please refresh forum front-end page twice.
|
191 |
-
- If you have a Cache Plugin, please delete all caches after wpForo update.
|
192 |
-
- If you use CDN and found some issue please purge it.
|
193 |
-
|
194 |
= 1.2.0 | 08.03.2017 =
|
195 |
|
196 |
-
[wpForo v1.2.0 Release Summary](
|
197 |
|
198 |
* Added: wpForo Spam Control - New User
|
199 |
* Added: New Dashboard subMenu - Forums > Tools > Antispam
|
@@ -217,7 +219,7 @@ IMPORTANT:
|
|
217 |
|
218 |
= 1.1.2 | 26.02.2017 =
|
219 |
|
220 |
-
[wpForo v1.1.2 Release Summary](
|
221 |
|
222 |
* Added: New topic type - Private
|
223 |
* Added: Checkbox option on Topic editor: Private Topics
|
@@ -232,7 +234,7 @@ IMPORTANT:
|
|
232 |
* Added Access: "Can view private topic" (Admin, Moderator and Topic Creator)
|
233 |
* Performance: Huge SQL optimization and built-in caching system
|
234 |
* SEO Optimization: added rel="nofollow" to links with GET variables
|
235 |
-
* New Addon: [wpForo - Private Messages](
|
236 |
* New Addon: wpForo - Ads Manager (comming next week...)
|
237 |
* Fixed Bug: Menu problem on IE / Edge
|
238 |
* Fixed Bug: SubForums problem. Title and topics atatched to wrong forum
|
@@ -262,7 +264,7 @@ IMPORTANT:
|
|
262 |
* Fixed Bug: Unnecessary email with Password Reset link on user registration
|
263 |
* Fixed Bug: RTL Issue with widget avatars
|
264 |
* Fixed Bug: Disable banning yourself
|
265 |
-
* [More info...](
|
266 |
|
267 |
|
268 |
= 1.1.0 | 04.12.2016 =
|
@@ -281,8 +283,8 @@ IMPORTANT:
|
|
281 |
* Added: Option to notify forum admins when a new post is created
|
282 |
* Added: Option to make post editor subscription checkboxe checked by default
|
283 |
* Added: wpForo Addons admin page
|
284 |
-
* New Addon: [wpForo - Embeds](
|
285 |
-
* New Addon: [wpForo - Advanced Attachments](
|
286 |
* Added: Nicename field in Profile > Accounts page to allow users change and hide usernames in profile URL.
|
287 |
* Added: Option to change message when non-permitted visitor/user tries to view attachments
|
288 |
* Added: Option to make some posts/pages available when "Turn WordPress to wpForo" option is enabled.
|
@@ -296,7 +298,7 @@ IMPORTANT:
|
|
296 |
* Fixed Bug: Warning: Missing argument 2 for wpforo_update_last_login_date()
|
297 |
* Optimization: Forum, topic and post loading speed and memory optimization
|
298 |
* Security: improving post and topic creation security, two more level of checking processes before inserting data in database.
|
299 |
-
* [More info...](
|
300 |
|
301 |
= 1.0.2 | 10.09.2016 =
|
302 |
|
@@ -315,7 +317,7 @@ IMPORTANT:
|
|
315 |
* Security: Own and other user Usergroup secure management
|
316 |
* Security: Edit profile issues, multi-level control
|
317 |
* Security: Custom avatar uploading file control
|
318 |
-
* Added: Using wpForo on home page. [Insturction here.](
|
319 |
* Added: Use wpForo without shortcode and page. Set any slug for forum Base URL.
|
320 |
* Added: Option to turn WordPress to wpForo (Disable WordPress on front-end)
|
321 |
* Added: Dynamic recent topic icons on forum list
|
@@ -339,9 +341,9 @@ IMPORTANT:
|
|
339 |
* Fixed Bug: Foum SEO title. Warning: Missing argument 2 for wpforo_hide_title()
|
340 |
* Fixed Bug: Fatal error on forum search when Debug Mode is enabled
|
341 |
* Shortcode: Changed [wpforo-index] to [wpforo]
|
342 |
-
* Shortcode: wpForo new shortcodes. [More info.](
|
343 |
* SEO Optimization: Duplicated meta data on Member Profile pages
|
344 |
-
* [More info...](
|
345 |
|
346 |
|
347 |
= Beta-6 | 06.08.2016 =
|
2 |
Contributors: gVectors Team
|
3 |
Tags: forums, forum, community, discussion, bulletin board, question and answers, qa
|
4 |
Requires at least: 4.1
|
5 |
+
Tested up to: 4.8
|
6 |
+
Stable tag: 1.3.1
|
7 |
License: GPLv2 or later
|
8 |
+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
Forums wpForo is a new generation of forum plugins. It's full-fledged forum solution for your community. Comes with multiple modern forum layouts.
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
wpForo is a new generation of WordPress forum plugins made by [gVectors Team](https://gvectors.com/). Everything you need to run an efficient and professional community. Powerful and beautiful bulletin board with unique features.
|
15 |
|
16 |
+
Community and Demo: [https://wpforo.com/community/](https://wpforo.com/community/)
|
17 |
+
Documentation: [https://wpforo.com/documentation/](https://wpforo.com/documentation/)
|
18 |
|
19 |
|
20 |
= Forums can be displayed with three different layouts =
|
21 |
|
22 |
+
1. [**Extended Layout:**](https://wpforo.com/docs/categories-and-forums/forum-layouts/extended-layout/)
|
23 |
Classic forum layout with an unique feature to show one level deeper information. You can see latest topics of each forum on Forum List and latest posts of each topic on Topic List.
|
24 |
+
2. [**Simplified Layout:**](https://wpforo.com/docs/categories-and-forums/forum-layouts/simplified-layout/)
|
25 |
Light, modern and beautiful forum layout with topic and post author avatars on forum and topic lists.
|
26 |
+
3. [**Question and Answer Layout:**](https://wpforo.com/docs/categories-and-forums/forum-layouts/question-answer-layout/)
|
27 |
Complete Question & Answers discussion board for professional support and for communities similar to Stack Overflow. Perfect platform for users to ask and answer questions, and, through membership and active participation, to vote up or down.
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
= wpForo Addons =
|
30 |
|
31 |
+
* | [wpForo - Embeds](https://gvectors.com/product/wpforo-embeds/)
|
32 |
+
* | [wpForo - Ads Manager](https://gvectors.com/product/wpforo-ad-manager/)
|
33 |
+
* | [wpForo - Advanced Attachments](https://gvectors.com/product/wpforo-advanced-attachments/)
|
34 |
+
* | [wpForo - Private Messages](https://gvectors.com/product/wpforo-private-messages/)
|
35 |
+
* | [wpForo - Blog Cross Posting](https://gvectors.com/product/wpforo-cross-posting/)
|
36 |
|
37 |
= WPFORO FEATURES =
|
38 |
|
39 |
+
* | You can use wpForo for small and extremely large communities.
|
40 |
+
* | The "Extended", "Simplified" and "Question & Answer" layouts fit almost all type of discussions needs.
|
41 |
+
* | Super responsive on all kind of devices. Adapted on all screen sizes.
|
42 |
+
* | Built-in SEO functions.
|
43 |
+
* | Built-in Cache System.
|
44 |
+
* | Built-in Antispam system and integrated with Akismet.
|
45 |
+
* | Allows create and customized forum theme and keep it in active WordPress theme folder.
|
46 |
+
* | Beautiful, modern and informative user profile system.
|
47 |
+
* | User rating system based on number of posts. Nice Badges and Member Rating Titles per reputation level.
|
48 |
+
* | Built-in forum/topic subscription with double opt-in subscription confirmation function.
|
49 |
+
* | Drag and Drop forum management system. Easy to set Parent-Child relationship and forum list order.
|
50 |
+
* | All necessary moderation tools on each topic and post to make easy forum moderation.
|
51 |
+
* | Styles with different colors, dozens of settings, options, switches to manage and integrate forum with your theme look and feel.
|
52 |
+
* | Built-in, powerful Usergroup system. Allows to create a new, manage and delete.
|
53 |
+
* | Forum Accesses: "Read Only", "Standard Access", "Moderation Access", "Full Access", etc.. to manage Usergroup accesses for each forum.
|
54 |
+
* | wpForo has its own Phrase System, which allows you to translate all phrases through Dashboard. And it supports WordPress .MO/.PO translation files.
|
55 |
+
* | You can download [Go2wpForo](https://wpforo.com/community/migrate-to-wpforo-from-other-forum-plugins/migrate-to-wpforo-go2wpforo-tool/) free migration tool from our [support forum](https://wpforo.com/community/migrate-to-wpforo-from-other-forum-plugins/migrate-to-wpforo-go2wpforo-tool/). This tool allows you migrate from different WordPress forum plugins to wpForo.
|
|
|
56 |
|
57 |
|
58 |
= Currently we're working on =
|
60 |
* Guest Posting...
|
61 |
* Read/Unread topics and posts...
|
62 |
* Social Network Sharing Buttons...
|
63 |
+
* [Go2wpForo](https://wpforo.com/community/migrate-to-wpforo-from-other-forum-plugins/migrate-to-wpforo-go2wpforo-tool/) Migration Tool...
|
64 |
|
65 |
|
66 |
== Installation ==
|
68 |
1. Install the plugin through the WordPress plugins screen directly or upload the plugin files to the `/wp-content/plugins/wpforo` directory
|
69 |
2. Activate the plugin through the 'Plugins' screen in WordPress
|
70 |
3. If you have more than 100 users wpForo will ask you synchronize users and create user profile. You just need to click on [Create Profile Data] button in wpForo message box after the plugin activation.
|
71 |
+
4. Getting Started Doc https://wpforo.com/docs/root/getting-started/
|
72 |
|
73 |
|
74 |
== Frequently Asked Questions ==
|
79 |
1. **Forum Page:** wpForo creates a page with `/community/` slug. If this slug is used you'll have `/community-2/` or `/community-3/` slug. You can find the correct one in Forums > Settings > General Tab. Make sure you use WordPress permalinks. wpForo doesn't work with default `?p=1` URL structure.
|
80 |
|
81 |
2. **Change Forum Page:**
|
82 |
+
https://wpforo.com/docs/root/getting-started/forum-page/change-forum-page/
|
83 |
|
84 |
3. **Forum Menu:**
|
85 |
+
https://wpforo.com/docs/root/getting-started/forum-menu/
|
86 |
|
87 |
4. **Forum Sidebar and Widgets:**
|
88 |
+
https://wpforo.com/docs/root/getting-started/forum-sidebar-and-widgets/
|
89 |
|
90 |
+
5. **Forum Management:** https://wpforo.com/docs/root/categories-and-forums/forum-manager/
|
91 |
|
92 |
6. **Forum Style & Colors:**
|
93 |
+
https://wpforo.com/docs/root/wpforo-settings/style-settings/
|
94 |
|
95 |
7. **Login and Registration** In Forums > Settings > Features admin page you can force WP to use wpForo Login and Register pages or keep default WordPress pages. For custom Login/Register/Lostpassword Pages please navigate to Members Tab and use "Custom Authorization URLs" option.
|
96 |
|
97 |
8. **Forum is loaded on website top:** In this case you should navigate to Forums > Settings > Features admin page and check "Enable Output Buffer" option.
|
98 |
|
99 |
9. **Forums don't show up on the main page** Please read this FAQ topic:
|
100 |
+
https://wpforo.com/community/faq/forums-dont-show-up-on-the-main-page/
|
101 |
|
102 |
10. **wpForo Shortcodes**
|
103 |
+
https://wpforo.com/community/faq/wpforo-shortcodes/
|
104 |
|
105 |
+
wpForo Support Forum: <https://wpforo.com/community/>
|
106 |
|
107 |
== Screenshots ==
|
108 |
|
126 |
|
127 |
== Changelog ==
|
128 |
|
129 |
+
= 1.3.1 | 11.06.2017 =
|
130 |
+
|
131 |
+
[wpForo v1.3.1 Release Summary](https://wpforo.com/community/wpforo-announcements/wpforo-1-3-1-is-released/)
|
132 |
+
|
133 |
+
* Tested with WordPress 4.8
|
134 |
+
* Fixed Bug: 404 page header issue
|
135 |
+
* Fixed Bug: Usergroup style and space issue
|
136 |
+
* Fixed Bug: Admin bar displaying issue. Only for logged-in users
|
137 |
+
* Fixed Bug: Moderator access to topic/post Moderation admin page
|
138 |
+
* Fixed Bug: Bad quality of user avatars on topic list of Simplified Layout
|
139 |
+
* Fixed Bug: Cache issue with private/unapproved topics and posts
|
140 |
+
* Fixed Bug: Small bug with delete all cache process
|
141 |
+
* Fixed Bug: Undefined index: HTTP_REFERER in /functions.php on line 233
|
142 |
+
* Fixed Bug: Issue with Edit and Delete button for new reg users if topic/post is unapproved
|
143 |
+
* New Addon: [wpForo - Blog Cross Posting](https://gvectors.com/product/wpforo-cross-posting/)
|
144 |
+
|
145 |
+
|
146 |
+
IMPORTANT:
|
147 |
+
|
148 |
+
- If you have a copy of wpForo template files in your WP theme /wpforo/ folder please update those. wpForo 1.3.0 requirs new template files.
|
149 |
+
- If you're updating from beta, 1.0.x or 1.1.x versions, please navigate to Dashboard > Forums > Tools admin page and check the "Possible Spam Attachments" section. We detected massive spam file uploading cases in non-protected forums. Spammers delete topics and posts but uploaded spam files are still in your file system, most of those PDF files. Please delete all suspected PDF files listed in this section. [More Info](https://wpforo.com/community/wpforo-announcements/wpforo-1-2-0-is-released/)...
|
150 |
+
- To load your customized colors please refresh forum front-end page twice.
|
151 |
+
- If you have a Cache Plugin, please delete all caches after wpForo update.
|
152 |
+
- If you use CDN and found some issue please purge it.
|
153 |
+
|
154 |
+
|
155 |
= 1.3.0 | 23.05.2017 =
|
156 |
|
157 |
+
[wpForo v1.3.0 Release Summary](https://wpforo.com/community/wpforo-announcements/wpforo-1-3-0-is-released/)
|
158 |
|
159 |
* Added: Two step installation if there are more than 100 users
|
160 |
* Added: wpForo Built-in Cache System
|
180 |
* Added: New options in Settings > Members to display Usergroup under Avatar
|
181 |
* Added: Options to Disable Object Cache, Memory Cache, HTML Cache.
|
182 |
* Added: Delete All Caches button (Dashboard > Forums > Dashboard)
|
183 |
+
* New Addon: [wpForo Ads Manager](https://gvectors.com/product/wpforo-ad-manager/)
|
184 |
* Fixed Bug: Visible unapproved replies in approved topic
|
185 |
* Fixed Bug: Subscribers get email when topic is approved but post is not.
|
186 |
* Fixed Bug: Illegal string offset 'userid' in /wpf-hooks.php on line 1281
|
193 |
* Fixed Bug: Many small bugs
|
194 |
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
= 1.2.0 | 08.03.2017 =
|
197 |
|
198 |
+
[wpForo v1.2.0 Release Summary](https://wpforo.com/community/wpforo-announcements/wpforo-1-2-0-is-released/)
|
199 |
|
200 |
* Added: wpForo Spam Control - New User
|
201 |
* Added: New Dashboard subMenu - Forums > Tools > Antispam
|
219 |
|
220 |
= 1.1.2 | 26.02.2017 =
|
221 |
|
222 |
+
[wpForo v1.1.2 Release Summary](https://wpforo.com/community/wpforo-announcements/wpforo-1-1-2-is-released/)
|
223 |
|
224 |
* Added: New topic type - Private
|
225 |
* Added: Checkbox option on Topic editor: Private Topics
|
234 |
* Added Access: "Can view private topic" (Admin, Moderator and Topic Creator)
|
235 |
* Performance: Huge SQL optimization and built-in caching system
|
236 |
* SEO Optimization: added rel="nofollow" to links with GET variables
|
237 |
+
* New Addon: [wpForo - Private Messages](https://gvectors.com/product/wpforo-private-messages/)
|
238 |
* New Addon: wpForo - Ads Manager (comming next week...)
|
239 |
* Fixed Bug: Menu problem on IE / Edge
|
240 |
* Fixed Bug: SubForums problem. Title and topics atatched to wrong forum
|
264 |
* Fixed Bug: Unnecessary email with Password Reset link on user registration
|
265 |
* Fixed Bug: RTL Issue with widget avatars
|
266 |
* Fixed Bug: Disable banning yourself
|
267 |
+
* [More info...](https://wpforo.com/community/wpforo-announcements/wpforo-1-1-1-is-released/)
|
268 |
|
269 |
|
270 |
= 1.1.0 | 04.12.2016 =
|
283 |
* Added: Option to notify forum admins when a new post is created
|
284 |
* Added: Option to make post editor subscription checkboxe checked by default
|
285 |
* Added: wpForo Addons admin page
|
286 |
+
* New Addon: [wpForo - Embeds](https://gvectors.com/product/wpforo-embeds/)
|
287 |
+
* New Addon: [wpForo - Advanced Attachments](https://gvectors.com/product/wpforo-advanced-attachments/)
|
288 |
* Added: Nicename field in Profile > Accounts page to allow users change and hide usernames in profile URL.
|
289 |
* Added: Option to change message when non-permitted visitor/user tries to view attachments
|
290 |
* Added: Option to make some posts/pages available when "Turn WordPress to wpForo" option is enabled.
|
298 |
* Fixed Bug: Warning: Missing argument 2 for wpforo_update_last_login_date()
|
299 |
* Optimization: Forum, topic and post loading speed and memory optimization
|
300 |
* Security: improving post and topic creation security, two more level of checking processes before inserting data in database.
|
301 |
+
* [More info...](https://wpforo.com/community/wpforo-announcements/wpforo-1-1-0-is-released/)
|
302 |
|
303 |
= 1.0.2 | 10.09.2016 =
|
304 |
|
317 |
* Security: Own and other user Usergroup secure management
|
318 |
* Security: Edit profile issues, multi-level control
|
319 |
* Security: Custom avatar uploading file control
|
320 |
+
* Added: Using wpForo on home page. [Insturction here.](https://wpforo.com/community/faq/how-to-load-forum-on-home-page/)
|
321 |
* Added: Use wpForo without shortcode and page. Set any slug for forum Base URL.
|
322 |
* Added: Option to turn WordPress to wpForo (Disable WordPress on front-end)
|
323 |
* Added: Dynamic recent topic icons on forum list
|
341 |
* Fixed Bug: Foum SEO title. Warning: Missing argument 2 for wpforo_hide_title()
|
342 |
* Fixed Bug: Fatal error on forum search when Debug Mode is enabled
|
343 |
* Shortcode: Changed [wpforo-index] to [wpforo]
|
344 |
+
* Shortcode: wpForo new shortcodes. [More info.](https://wpforo.com/community/faq/wpforo-shortcodes/)
|
345 |
* SEO Optimization: Duplicated meta data on Member Profile pages
|
346 |
+
* [More info...](https://wpforo.com/community/wpforo-announcements/wpforo-1-0-0-is-released/)
|
347 |
|
348 |
|
349 |
= Beta-6 | 06.08.2016 =
|
wpf-admin/moderation.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
// Exit if accessed directly
|
3 |
if( !defined( 'ABSPATH' ) ) exit;
|
4 |
-
if(
|
5 |
?>
|
6 |
|
7 |
<div id="wpf-admin-wrap" class="wrap" style="margin-top: 0px">
|
1 |
<?php
|
2 |
// Exit if accessed directly
|
3 |
if( !defined( 'ABSPATH' ) ) exit;
|
4 |
+
if( !$wpforo->perm->usergroup_can('aum') ) exit;
|
5 |
?>
|
6 |
|
7 |
<div id="wpf-admin-wrap" class="wrap" style="margin-top: 0px">
|
wpf-admin/tools-tabs/antispam.php
CHANGED
@@ -117,11 +117,12 @@
|
|
117 |
if(is_dir($default_attachments_dir)):
|
118 |
if ($handle = opendir($default_attachments_dir)):
|
119 |
while (false !== ($filename = readdir($handle))):
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
|
|
125 |
if( $level == 2 ) $color = 'style="color:#EE9900;"';
|
126 |
if( $level == 3 ) $color = 'style="color:#FF0000;"';
|
127 |
if( $level == 4 ) $color = 'style="color:#BB0000;"';
|
117 |
if(is_dir($default_attachments_dir)):
|
118 |
if ($handle = opendir($default_attachments_dir)):
|
119 |
while (false !== ($filename = readdir($handle))):
|
120 |
+
if( $filename == '.' || $filename == '..') continue;
|
121 |
+
|
122 |
+
$level = 0; $color ='';
|
123 |
+
$file = $default_attachments_dir . '/' . $filename;
|
124 |
+
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
|
125 |
+
if( !$level = $wpforo->moderation->spam_file($filename) ) continue;
|
126 |
if( $level == 2 ) $color = 'style="color:#EE9900;"';
|
127 |
if( $level == 3 ) $color = 'style="color:#FF0000;"';
|
128 |
if( $level == 4 ) $color = 'style="color:#BB0000;"';
|
wpf-admin/tools.php
CHANGED
@@ -17,21 +17,16 @@
|
|
17 |
wpforo_admin_tools_tabs( $tabs, ( isset($_GET['tab']) ? $_GET['tab'] : 'antispam' ) );
|
18 |
?>
|
19 |
<div class="wpf-info-bar" style="padding:1% 2%;">
|
20 |
-
<?php
|
21 |
-
|
|
|
22 |
switch($_GET['tab']){
|
23 |
-
case 'antispam':
|
24 |
-
include( 'tools-tabs/antispam.php' );
|
25 |
-
break;
|
26 |
case 'cleanup':
|
27 |
-
|
28 |
break;
|
29 |
-
default:
|
30 |
-
include_once( 'tools-tabs/antispam.php' );
|
31 |
}
|
32 |
-
}else{
|
33 |
-
include_once( 'tools-tabs/antispam.php' );
|
34 |
}
|
35 |
-
|
|
|
36 |
</div>
|
37 |
</div>
|
17 |
wpforo_admin_tools_tabs( $tabs, ( isset($_GET['tab']) ? $_GET['tab'] : 'antispam' ) );
|
18 |
?>
|
19 |
<div class="wpf-info-bar" style="padding:1% 2%;">
|
20 |
+
<?php
|
21 |
+
$includefile = 'tools-tabs/antispam.php';
|
22 |
+
if(!empty($_GET['tab'])){
|
23 |
switch($_GET['tab']){
|
|
|
|
|
|
|
24 |
case 'cleanup':
|
25 |
+
$includefile = 'tools-tabs/cleanup.php';
|
26 |
break;
|
|
|
|
|
27 |
}
|
|
|
|
|
28 |
}
|
29 |
+
include_once($includefile);
|
30 |
+
?>
|
31 |
</div>
|
32 |
</div>
|
wpf-admin/xml/english.xml
CHANGED
@@ -380,4 +380,8 @@
|
|
380 |
<phrase name="Post is empty"><![CDATA[Post is empty]]></phrase>
|
381 |
<phrase name="removed link"><![CDATA[removed link]]></phrase>
|
382 |
<phrase name="Submit"><![CDATA[Submit]]></phrase>
|
|
|
|
|
|
|
|
|
383 |
</language>
|
380 |
<phrase name="Post is empty"><![CDATA[Post is empty]]></phrase>
|
381 |
<phrase name="removed link"><![CDATA[removed link]]></phrase>
|
382 |
<phrase name="Submit"><![CDATA[Submit]]></phrase>
|
383 |
+
<phrase name="Usergroup"><![CDATA[Usergroup]]></phrase>
|
384 |
+
<phrase name="Rating Title"><![CDATA[Rating Title]]></phrase>
|
385 |
+
<phrase name="User Title"><![CDATA[User Title]]></phrase>
|
386 |
+
<phrase name="Anonymous"><![CDATA[Anonymous]]></phrase>
|
387 |
</language>
|
wpf-assets/addons/ad-manager/header-off.png
CHANGED
Binary file
|
wpf-assets/addons/cross/header-off.png
ADDED
Binary file
|
wpf-assets/addons/cross/header.png
ADDED
Binary file
|
wpf-includes/class-forums.php
CHANGED
@@ -92,9 +92,11 @@ class wpForoForum{
|
|
92 |
array('%s','%s','%s','%d','%s','%d','%d','%s','%s','%s','%d','%d','%d','%d')
|
93 |
)
|
94 |
){
|
|
|
95 |
$this->delete_tree_cache();
|
|
|
96 |
$this->wpforo->notice->add('Your forum successfully added', 'success');
|
97 |
-
return $
|
98 |
}
|
99 |
|
100 |
$this->wpforo->notice->add('Can\'t add forum', 'error');
|
@@ -174,6 +176,7 @@ class wpForoForum{
|
|
174 |
$this->wpforo->db->query($sql);
|
175 |
}
|
176 |
$this->delete_tree_cache();
|
|
|
177 |
$this->wpforo->notice->add('Forum successfully updated', 'success');
|
178 |
return $forumid;
|
179 |
}
|
@@ -198,13 +201,14 @@ class wpForoForum{
|
|
198 |
// START delete topic posts include first post
|
199 |
if( $topicids = $this->wpforo->db->get_col( "SELECT `topicid` FROM ".$this->wpforo->db->prefix."wpforo_topics WHERE `forumid` IN(". esc_sql($forumids) .")" ) ){
|
200 |
foreach($topicids as $topicid){
|
201 |
-
$this->wpforo->topic->delete($topicid);
|
202 |
}
|
203 |
}
|
204 |
// END delete topic posts include first post
|
205 |
|
206 |
if($this->wpforo->db->query( "DELETE FROM ".$this->wpforo->db->prefix."wpforo_forums WHERE `forumid` IN(". esc_sql($forumids) .")" )){
|
207 |
$this->delete_tree_cache();
|
|
|
208 |
$this->wpforo->notice->add('Your forum successfully deleted', 'success');
|
209 |
return TRUE;
|
210 |
}
|
@@ -254,6 +258,7 @@ class wpForoForum{
|
|
254 |
|
255 |
if($this->wpforo->db->delete( $this->wpforo->db->prefix.'wpforo_forums', array( 'forumid' => $forumid ), array( '%d' ) )){
|
256 |
$this->delete_tree_cache();
|
|
|
257 |
$this->wpforo->notice->add('Forum is successfully merged', 'success');
|
258 |
return TRUE;
|
259 |
}
|
@@ -291,6 +296,7 @@ class wpForoForum{
|
|
291 |
SET `last_topicid` = ".intval($last_topicid).", `last_postid` = ".intval($last_postid).",
|
292 |
`last_userid` = ".intval($last_userid).", `last_post_date` = '".esc_sql($last_post_date)."'
|
293 |
WHERE `forumid` = ".intval($forumid) );
|
|
|
294 |
}
|
295 |
|
296 |
public function rebuild_stats($forumid){
|
@@ -304,8 +310,10 @@ class wpForoForum{
|
|
304 |
array('forumid' => $forumid),
|
305 |
array('%d', '%d'),
|
306 |
array('%d')
|
307 |
-
) )
|
308 |
-
|
|
|
|
|
309 |
return false;
|
310 |
}
|
311 |
|
@@ -396,10 +404,6 @@ class wpForoForum{
|
|
396 |
$args = wpforo_parse_args( $args, $default );
|
397 |
if(is_array($args) && !empty($args)){
|
398 |
|
399 |
-
if( $cache ){
|
400 |
-
$object_key = md5( serialize($args) . $this->wpforo->current_user_groupid ); $object_cache = $this->wpforo->cache->get( $object_key ); if(!empty($object_cache)){$items_count = $object_cache['items_count']; return $object_cache['items'];}
|
401 |
-
}
|
402 |
-
|
403 |
extract($args, EXTR_OVERWRITE);
|
404 |
|
405 |
$include = wpforo_parse_args( $include );
|
@@ -440,6 +444,8 @@ class wpForoForum{
|
|
440 |
}
|
441 |
}
|
442 |
|
|
|
|
|
443 |
$forums = $this->wpforo->db->get_results($sql, ARRAY_A);
|
444 |
$forums = apply_filters('wpforo_get_topics', $forums);
|
445 |
|
92 |
array('%s','%s','%s','%d','%s','%d','%d','%s','%s','%s','%d','%d','%d','%d')
|
93 |
)
|
94 |
){
|
95 |
+
$forumid = $this->wpforo->db->insert_id;
|
96 |
$this->delete_tree_cache();
|
97 |
+
wpforo_clean_cache($forumid, 'forum');
|
98 |
$this->wpforo->notice->add('Your forum successfully added', 'success');
|
99 |
+
return $forumid;
|
100 |
}
|
101 |
|
102 |
$this->wpforo->notice->add('Can\'t add forum', 'error');
|
176 |
$this->wpforo->db->query($sql);
|
177 |
}
|
178 |
$this->delete_tree_cache();
|
179 |
+
wpforo_clean_cache($forumid, 'forum');
|
180 |
$this->wpforo->notice->add('Forum successfully updated', 'success');
|
181 |
return $forumid;
|
182 |
}
|
201 |
// START delete topic posts include first post
|
202 |
if( $topicids = $this->wpforo->db->get_col( "SELECT `topicid` FROM ".$this->wpforo->db->prefix."wpforo_topics WHERE `forumid` IN(". esc_sql($forumids) .")" ) ){
|
203 |
foreach($topicids as $topicid){
|
204 |
+
$this->wpforo->topic->delete($topicid, false);
|
205 |
}
|
206 |
}
|
207 |
// END delete topic posts include first post
|
208 |
|
209 |
if($this->wpforo->db->query( "DELETE FROM ".$this->wpforo->db->prefix."wpforo_forums WHERE `forumid` IN(". esc_sql($forumids) .")" )){
|
210 |
$this->delete_tree_cache();
|
211 |
+
wpforo_clean_cache();
|
212 |
$this->wpforo->notice->add('Your forum successfully deleted', 'success');
|
213 |
return TRUE;
|
214 |
}
|
258 |
|
259 |
if($this->wpforo->db->delete( $this->wpforo->db->prefix.'wpforo_forums', array( 'forumid' => $forumid ), array( '%d' ) )){
|
260 |
$this->delete_tree_cache();
|
261 |
+
wpforo_clean_cache(0, 'forum');
|
262 |
$this->wpforo->notice->add('Forum is successfully merged', 'success');
|
263 |
return TRUE;
|
264 |
}
|
296 |
SET `last_topicid` = ".intval($last_topicid).", `last_postid` = ".intval($last_postid).",
|
297 |
`last_userid` = ".intval($last_userid).", `last_post_date` = '".esc_sql($last_post_date)."'
|
298 |
WHERE `forumid` = ".intval($forumid) );
|
299 |
+
wpforo_clean_cache(0, 'forum');
|
300 |
}
|
301 |
|
302 |
public function rebuild_stats($forumid){
|
310 |
array('forumid' => $forumid),
|
311 |
array('%d', '%d'),
|
312 |
array('%d')
|
313 |
+
) ) {
|
314 |
+
wpforo_clean_cache(0, 'forum');
|
315 |
+
return true;
|
316 |
+
}
|
317 |
return false;
|
318 |
}
|
319 |
|
404 |
$args = wpforo_parse_args( $args, $default );
|
405 |
if(is_array($args) && !empty($args)){
|
406 |
|
|
|
|
|
|
|
|
|
407 |
extract($args, EXTR_OVERWRITE);
|
408 |
|
409 |
$include = wpforo_parse_args( $include );
|
444 |
}
|
445 |
}
|
446 |
|
447 |
+
if( $cache ){ $object_key = md5( $sql . $this->wpforo->current_user_groupid ); $object_cache = $this->wpforo->cache->get( $object_key ); if(!empty($object_cache)){$items_count = $object_cache['items_count']; return $object_cache['items'];}}
|
448 |
+
|
449 |
$forums = $this->wpforo->db->get_results($sql, ARRAY_A);
|
450 |
$forums = apply_filters('wpforo_get_topics', $forums);
|
451 |
|
wpf-includes/class-members.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
class wpForoMember{
|
7 |
|
8 |
private $wpforo;
|
9 |
-
static $cache = array( 'users' => array(), 'user' => array() );
|
10 |
|
11 |
function __construct( $wpForo ){
|
12 |
if(!isset($this->wpforo)) $this->wpforo = $wpForo;
|
@@ -626,7 +626,7 @@ class wpForoMember{
|
|
626 |
}
|
627 |
|
628 |
if( $topicids = $this->wpforo->db->get_col( $this->wpforo->db->prepare( "SELECT topicid FROM {$this->wpforo->db->prefix}wpforo_topics WHERE userid = %d", $userid ) ) ){
|
629 |
-
foreach( $topicids as $topicid ) $this->wpforo->topic->delete($topicid);
|
630 |
}
|
631 |
}else{
|
632 |
$this->wpforo->db->update( $this->wpforo->db->prefix."wpforo_topics", array('userid' => $reassign), array('userid' => $userid) );
|
@@ -680,6 +680,7 @@ class wpForoMember{
|
|
680 |
$this->wpforo->db->prefix.'wpforo_profiles', array( 'userid' => $userid ), array( '%d' )
|
681 |
)
|
682 |
){
|
|
|
683 |
$this->clear_db_cache();
|
684 |
$this->wpforo->notice->add('User successfully deleted from wpforo', 'success');
|
685 |
return TRUE;
|
@@ -1194,11 +1195,73 @@ class wpForoMember{
|
|
1194 |
}
|
1195 |
}
|
1196 |
|
1197 |
-
function banned_count(){
|
1198 |
$count = $this->wpforo->db->get_var("SELECT count(*) FROM `".$this->wpforo->db->prefix."wpforo_profiles` WHERE `status` = 'banned' " );
|
1199 |
return $count;
|
1200 |
}
|
1201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1202 |
}
|
1203 |
|
1204 |
?>
|
6 |
class wpForoMember{
|
7 |
|
8 |
private $wpforo;
|
9 |
+
static $cache = array( 'users' => array(), 'user' => array(), 'guest' => array() );
|
10 |
|
11 |
function __construct( $wpForo ){
|
12 |
if(!isset($this->wpforo)) $this->wpforo = $wpForo;
|
626 |
}
|
627 |
|
628 |
if( $topicids = $this->wpforo->db->get_col( $this->wpforo->db->prepare( "SELECT topicid FROM {$this->wpforo->db->prefix}wpforo_topics WHERE userid = %d", $userid ) ) ){
|
629 |
+
foreach( $topicids as $topicid ) $this->wpforo->topic->delete($topicid, false);
|
630 |
}
|
631 |
}else{
|
632 |
$this->wpforo->db->update( $this->wpforo->db->prefix."wpforo_topics", array('userid' => $reassign), array('userid' => $userid) );
|
680 |
$this->wpforo->db->prefix.'wpforo_profiles', array( 'userid' => $userid ), array( '%d' )
|
681 |
)
|
682 |
){
|
683 |
+
wpforo_clean_cache();
|
684 |
$this->clear_db_cache();
|
685 |
$this->wpforo->notice->add('User successfully deleted from wpforo', 'success');
|
686 |
return TRUE;
|
1195 |
}
|
1196 |
}
|
1197 |
|
1198 |
+
public function banned_count(){
|
1199 |
$count = $this->wpforo->db->get_var("SELECT count(*) FROM `".$this->wpforo->db->prefix."wpforo_profiles` WHERE `status` = 'banned' " );
|
1200 |
return $count;
|
1201 |
}
|
1202 |
|
1203 |
+
public function get_guest( $args = array() ){
|
1204 |
+
|
1205 |
+
$cache = $this->wpforo->cache->on('memory_cashe');
|
1206 |
+
|
1207 |
+
if( !isset($args['name']) || $args['name'] == '' ) $args['name'] = wpforo_phrase('Anonymous', false);
|
1208 |
+
if( !isset($args['email']) || $args['email'] == '' ) $args['email'] = 'anonymous@example.com';
|
1209 |
+
|
1210 |
+
$args['name'] = strip_tags($args['name']);
|
1211 |
+
$args['email'] = strip_tags($args['email']);
|
1212 |
+
$args['posts'] = 0;
|
1213 |
+
$args['user_registered'] = 0;
|
1214 |
+
|
1215 |
+
if(isset($args['email'])){
|
1216 |
+
if( $cache && isset(self::$cache['guest'][$args['email']]) ){
|
1217 |
+
return self::$cache['guest'][$args['email']];
|
1218 |
+
}
|
1219 |
+
}
|
1220 |
+
|
1221 |
+
if( $args['email'] ){
|
1222 |
+
$post_args = array( 'email' => $args['email'], 'orderby' => 'created', 'order' => 'ASC' );
|
1223 |
+
$posts = $this->wpforo->post->get_posts( $post_args );
|
1224 |
+
if( !empty($posts) ){
|
1225 |
+
$args['posts'] = count($posts);
|
1226 |
+
if( isset($posts[0]['created']) || $posts[0]['created'] ) $args['user_registered'] = $posts[0]['created'];
|
1227 |
+
}
|
1228 |
+
}
|
1229 |
+
|
1230 |
+
$member = array( 'ID' => 0,
|
1231 |
+
'userid' => 0,
|
1232 |
+
'user_login' => $args['name'],
|
1233 |
+
'user_pass' => '',
|
1234 |
+
'user_nicename' => sanitize_text_field($args['name']),
|
1235 |
+
'user_email' => $args['email'],
|
1236 |
+
'user_url' => '',
|
1237 |
+
'user_registered' => $args['user_registered'],
|
1238 |
+
'user_activation_key' => '',
|
1239 |
+
'user_status' => 0,
|
1240 |
+
'display_name' => $args['name'],
|
1241 |
+
'title' => '',
|
1242 |
+
'username' => $args['name'],
|
1243 |
+
'groupid' => 4,
|
1244 |
+
'posts' => $args['posts'], 'questions' => 0, 'answers' => 0, 'comments' => 0, 'site' => '', 'icq' => '', 'aim' => '', 'yahoo' => '', 'msn' => '', 'facebook' => '', 'twitter' => '', 'gtalk' => '', 'skype' => '', 'avatar' => '', 'signature' => '', 'about' => '', 'occupation' => '', 'location' => '', 'last_login' => '', 'rank' => 0, 'like' => 0,
|
1245 |
+
'status' => 'active',
|
1246 |
+
'timezone' => '',
|
1247 |
+
'name' => $args['name'],
|
1248 |
+
'cans' => '',
|
1249 |
+
'description' => '',
|
1250 |
+
'groupname' => wpforo_phrase('Guest', false),
|
1251 |
+
'profile_url' => '',
|
1252 |
+
'stat' => array( 'points' => 0, 'rating' => 0, 'rating_procent' => 0, 'color' => '', 'badge' => '', 'posts' => $args['posts'], 'topics' => 0, 'questions' => 0, 'answers' => 0, 'question_comments' => 0, 'likes' => 0, 'liked' => 0, 'title' => '' ),
|
1253 |
+
);
|
1254 |
+
|
1255 |
+
if( $cache && $args['email'] ){
|
1256 |
+
return self::$cache['guest'][$args['email']] = $member;
|
1257 |
+
}else{
|
1258 |
+
return $member;
|
1259 |
+
}
|
1260 |
+
|
1261 |
+
}
|
1262 |
+
|
1263 |
+
|
1264 |
+
|
1265 |
}
|
1266 |
|
1267 |
?>
|
wpf-includes/class-posts.php
CHANGED
@@ -17,9 +17,15 @@ class wpForoPost{
|
|
17 |
|
18 |
public function add( $args = array() ){
|
19 |
|
|
|
|
|
|
|
20 |
if( empty($args) && empty($_REQUEST['post']) ){ $this->wpforo->notice->add('Reply request error', 'error'); return FALSE; }
|
21 |
if( empty($args) && !empty($_REQUEST['post']) ){ $args = $_REQUEST['post']; $args['body'] = $_REQUEST['postbody']; }
|
22 |
if( !isset($args['body']) || !$args['body'] ){ $this->wpforo->notice->add('Post is empty', 'error'); return FALSE; }
|
|
|
|
|
|
|
23 |
|
24 |
extract($args, EXTR_OVERWRITE);
|
25 |
|
@@ -32,7 +38,7 @@ class wpForoPost{
|
|
32 |
return FALSE;
|
33 |
}
|
34 |
|
35 |
-
if( !$this->wpforo->perm->forum_can('cr', $topic['forumid']) ){
|
36 |
$this->wpforo->notice->add('You haven\'t permission to create post into this forum', 'error');
|
37 |
return FALSE;
|
38 |
}
|
@@ -61,6 +67,8 @@ class wpForoPost{
|
|
61 |
if(isset($userid)) $userid = intval($userid);
|
62 |
if(isset($body)) $body = wpforo_kses(trim($body), 'post');
|
63 |
if(isset($status)) $status = intval($status);
|
|
|
|
|
64 |
|
65 |
do_action( 'wpforo_before_add_post', $post );
|
66 |
|
@@ -77,8 +85,10 @@ class wpForoPost{
|
|
77 |
'created' => $created,
|
78 |
'modified' => $created,
|
79 |
'status' => (isset($status) ? $status : 0),
|
|
|
|
|
80 |
),
|
81 |
-
array('%d','%d','%d','%d','%s','%s','%s','%s',
|
82 |
)
|
83 |
){
|
84 |
$postid = $this->wpforo->db->insert_id;
|
@@ -102,6 +112,7 @@ class wpForoPost{
|
|
102 |
|
103 |
do_action( 'wpforo_after_add_post', $post, $topic );
|
104 |
|
|
|
105 |
$this->wpforo->member->reset($userid);
|
106 |
$this->wpforo->notice->add('You successfully replied', 'success');
|
107 |
return $postid;
|
@@ -113,6 +124,9 @@ class wpForoPost{
|
|
113 |
|
114 |
public function edit( $args = array() ){
|
115 |
|
|
|
|
|
|
|
116 |
if( empty($args) && (!isset($_REQUEST['post']) || empty($_REQUEST['post'])) ) return FALSE;
|
117 |
if( empty($args) && !empty($_REQUEST['post']) ){ $args = $_REQUEST['post']; $args['body'] = $_REQUEST['postbody']; }
|
118 |
|
@@ -127,16 +141,22 @@ class wpForoPost{
|
|
127 |
|
128 |
$args['userid'] = $post['userid'];
|
129 |
$args['status'] = $post['status'];
|
|
|
|
|
130 |
|
131 |
$args = apply_filters('wpforo_edit_post_data_filter', $args);
|
132 |
if(empty($args)) return FALSE;
|
133 |
|
134 |
extract($args, EXTR_OVERWRITE);
|
135 |
|
136 |
-
|
137 |
-
|
138 |
-
$this->wpforo->
|
139 |
-
|
|
|
|
|
|
|
|
|
140 |
}
|
141 |
|
142 |
$title = (isset($title) ? wpforo_text( trim($title), 250, false ) : '');
|
@@ -151,22 +171,33 @@ class wpForoPost{
|
|
151 |
if(isset($userid)) $userid = intval($userid);
|
152 |
if(isset($body)) $body = wpforo_kses(trim($body), 'post');
|
153 |
if(isset($status)) $status = intval($status);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
|
155 |
if( FALSE !== $this->wpforo->db->update(
|
156 |
$this->wpforo->db->prefix."wpforo_posts",
|
157 |
array(
|
158 |
-
'title' =>
|
159 |
-
'body' =>
|
160 |
'modified' => current_time( 'mysql', 1 ),
|
161 |
-
'status' =>
|
|
|
|
|
162 |
),
|
163 |
array('postid' => $postid),
|
164 |
-
array('%s','%s','%s','%d'),
|
165 |
array('%d')
|
166 |
)
|
167 |
){
|
168 |
-
do_action( 'wpforo_after_edit_post', array( 'postid' => $postid, 'topicid' => $topicid, 'title' => $title, 'body' => $body, 'status' => $status ) );
|
169 |
|
|
|
170 |
$this->wpforo->notice->add('This post successfully edited', 'success');
|
171 |
return $postid;
|
172 |
}
|
@@ -186,7 +217,7 @@ class wpForoPost{
|
|
186 |
* @return bool
|
187 |
*/
|
188 |
|
189 |
-
function delete($postid){
|
190 |
$postid = intval($postid);
|
191 |
|
192 |
if( !$post = $this->get_post($postid) ) return true;
|
@@ -241,6 +272,7 @@ class wpForoPost{
|
|
241 |
do_action('wpforo_after_delete_post', $post);
|
242 |
|
243 |
if( $post['is_first_post'] ) return $this->wpforo->topic->delete($post['topicid']);
|
|
|
244 |
return TRUE;
|
245 |
}
|
246 |
|
@@ -314,7 +346,8 @@ class wpForoPost{
|
|
314 |
'order' => 'ASC', // ASC DESC
|
315 |
'offset' => NULL, // this use when you give row_count
|
316 |
'row_count' => NULL, // 4 or 1 ...
|
317 |
-
'status' => NULL,
|
|
|
318 |
|
319 |
'check_private' => FALSE
|
320 |
);
|
@@ -323,10 +356,6 @@ class wpForoPost{
|
|
323 |
|
324 |
if(is_array($args) && !empty($args)){
|
325 |
|
326 |
-
if( $cache ){
|
327 |
-
$object_key = md5( serialize($args) . $this->wpforo->current_user_groupid ); $object_cache = $this->wpforo->cache->get($object_key); if(!empty($object_cache)){$items_count = $object_cache['items_count']; return $object_cache['items'];}
|
328 |
-
}
|
329 |
-
|
330 |
extract($args, EXTR_OVERWRITE);
|
331 |
|
332 |
if( $row_count === 0 ) return array();
|
@@ -344,6 +373,7 @@ class wpForoPost{
|
|
344 |
if($parentid != -1) $wheres[] = $table_as_prefix . "`parentid` = " . intval($parentid);
|
345 |
if(!is_null($userid)) $wheres[] = $table_as_prefix . "`userid` = " . intval($userid);
|
346 |
if(!is_null($status)) $wheres[] = $table_as_prefix . "`status` = " . intval($status);
|
|
|
347 |
|
348 |
if( isset($forumid) && $forumid ){
|
349 |
if( $this->wpforo->perm->forum_can('au', $forumid) ){
|
@@ -387,6 +417,8 @@ class wpForoPost{
|
|
387 |
}
|
388 |
}
|
389 |
|
|
|
|
|
390 |
$posts = $this->wpforo->db->get_results($sql, ARRAY_A);
|
391 |
$posts = apply_filters('wpforo_get_posts', $posts);
|
392 |
|
@@ -416,6 +448,29 @@ class wpForoPost{
|
|
416 |
}
|
417 |
}
|
418 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
419 |
|
420 |
function search( $args = array(), &$items_count = 0 ){
|
421 |
if(!is_array($args)) $args = array('needle' => $args);
|
@@ -651,7 +706,7 @@ class wpForoPost{
|
|
651 |
*
|
652 |
* @return string $url
|
653 |
*/
|
654 |
-
function get_post_url( $arg ){
|
655 |
|
656 |
$position = array();
|
657 |
|
@@ -659,19 +714,21 @@ class wpForoPost{
|
|
659 |
$postid = intval($arg);
|
660 |
$post = $this->get_post($postid);
|
661 |
}
|
662 |
-
|
663 |
$post = $arg;
|
664 |
$postid = $post['postid'];
|
665 |
}
|
666 |
-
|
|
|
667 |
$url = $this->get_forumslug_byid($postid) . '/' . $this->get_topicslug_byid($postid);
|
668 |
if( $post['topicid'] ){
|
669 |
if( !$position ) $position = $this->wpforo->db->get_var("SELECT COUNT(`postid`) FROM `".$this->wpforo->db->prefix."wpforo_posts` WHERE `topicid` = ".intval($post['topicid'])." AND `postid` <= " . ($post['parentid'] ? intval($post['parentid']) : intval($postid) ) . " ORDER BY `postid`");
|
670 |
-
if( $position <= $this->wpforo->post_options['posts_per_page'] ) return wpforo_home_url($url) . "#post-" . intval($postid);
|
671 |
$paged = ceil( $position/$this->wpforo->post_options['posts_per_page'] );
|
672 |
-
return wpforo_home_url( $url . "/paged/"
|
673 |
}
|
674 |
}
|
|
|
675 |
return wpforo_home_url();
|
676 |
}
|
677 |
|
17 |
|
18 |
public function add( $args = array() ){
|
19 |
|
20 |
+
//This variable will be based on according CAN of guest usergroup once Guest Posing is ready
|
21 |
+
$guestposting = false;
|
22 |
+
|
23 |
if( empty($args) && empty($_REQUEST['post']) ){ $this->wpforo->notice->add('Reply request error', 'error'); return FALSE; }
|
24 |
if( empty($args) && !empty($_REQUEST['post']) ){ $args = $_REQUEST['post']; $args['body'] = $_REQUEST['postbody']; }
|
25 |
if( !isset($args['body']) || !$args['body'] ){ $this->wpforo->notice->add('Post is empty', 'error'); return FALSE; }
|
26 |
+
$args['name'] = (isset($args['name']) ? $args['name'] : '' );
|
27 |
+
$args['email'] = (isset($args['email']) ? $args['email'] : '' );
|
28 |
+
if( isset($args['userid']) && $args['userid'] == 0 && $args['name'] && $args['email'] ) $guestposting = true;
|
29 |
|
30 |
extract($args, EXTR_OVERWRITE);
|
31 |
|
38 |
return FALSE;
|
39 |
}
|
40 |
|
41 |
+
if( !$guestposting && !$this->wpforo->perm->forum_can('cr', $topic['forumid']) ){
|
42 |
$this->wpforo->notice->add('You haven\'t permission to create post into this forum', 'error');
|
43 |
return FALSE;
|
44 |
}
|
67 |
if(isset($userid)) $userid = intval($userid);
|
68 |
if(isset($body)) $body = wpforo_kses(trim($body), 'post');
|
69 |
if(isset($status)) $status = intval($status);
|
70 |
+
if(isset($name)) $name = strip_tags(trim($name));
|
71 |
+
if(isset($email)) $email = strip_tags(trim($email));
|
72 |
|
73 |
do_action( 'wpforo_before_add_post', $post );
|
74 |
|
85 |
'created' => $created,
|
86 |
'modified' => $created,
|
87 |
'status' => (isset($status) ? $status : 0),
|
88 |
+
'name' => $name,
|
89 |
+
'email' => $email
|
90 |
),
|
91 |
+
array('%d','%d','%d','%d','%s','%s','%s','%s','%d','%s','%s')
|
92 |
)
|
93 |
){
|
94 |
$postid = $this->wpforo->db->insert_id;
|
112 |
|
113 |
do_action( 'wpforo_after_add_post', $post, $topic );
|
114 |
|
115 |
+
wpforo_clean_cache($postid, 'post');
|
116 |
$this->wpforo->member->reset($userid);
|
117 |
$this->wpforo->notice->add('You successfully replied', 'success');
|
118 |
return $postid;
|
124 |
|
125 |
public function edit( $args = array() ){
|
126 |
|
127 |
+
//This variable will be based on according CAN of guest usergroup once Guest Posing is ready
|
128 |
+
$guestposting = false;
|
129 |
+
|
130 |
if( empty($args) && (!isset($_REQUEST['post']) || empty($_REQUEST['post'])) ) return FALSE;
|
131 |
if( empty($args) && !empty($_REQUEST['post']) ){ $args = $_REQUEST['post']; $args['body'] = $_REQUEST['postbody']; }
|
132 |
|
141 |
|
142 |
$args['userid'] = $post['userid'];
|
143 |
$args['status'] = $post['status'];
|
144 |
+
|
145 |
+
if( isset($args['userid']) && $args['userid'] == 0 && isset($args['name']) && isset($args['email']) ) $guestposting = true;
|
146 |
|
147 |
$args = apply_filters('wpforo_edit_post_data_filter', $args);
|
148 |
if(empty($args)) return FALSE;
|
149 |
|
150 |
extract($args, EXTR_OVERWRITE);
|
151 |
|
152 |
+
if( !$guestposting ){
|
153 |
+
$diff = current_time( 'timestamp', 1 ) - strtotime($post['created']);
|
154 |
+
if( !($this->wpforo->perm->forum_can('er', $post['forumid']) ||
|
155 |
+
($this->wpforo->current_userid == $post['userid'] && $this->wpforo->perm->forum_can('eor', $post['forumid']) &&
|
156 |
+
$diff < $this->wpforo->post_options['eor_durr'])) ){
|
157 |
+
$this->wpforo->notice->add('You haven\'t permission to edit post from this forum', 'error');
|
158 |
+
return FALSE;
|
159 |
+
}
|
160 |
}
|
161 |
|
162 |
$title = (isset($title) ? wpforo_text( trim($title), 250, false ) : '');
|
171 |
if(isset($userid)) $userid = intval($userid);
|
172 |
if(isset($body)) $body = wpforo_kses(trim($body), 'post');
|
173 |
if(isset($status)) $status = intval($status);
|
174 |
+
if(isset($name)) $name = strip_tags(trim($name));
|
175 |
+
if(isset($email)) $email = strip_tags(trim($email));
|
176 |
+
|
177 |
+
$title = ( isset($title) ? stripslashes($title) : stripslashes($post['title']) );
|
178 |
+
$body = ( (isset($body) && $body) ? stripslashes($body) : stripslashes($post['body']) );
|
179 |
+
$status = ( isset($status) ? $status : intval($post['status']) );
|
180 |
+
$name = ( isset($name) ? stripslashes($name) : stripslashes($post['name']) );
|
181 |
+
$email = ( isset($email) ? stripslashes($email) : stripslashes($post['email']) );
|
182 |
|
183 |
if( FALSE !== $this->wpforo->db->update(
|
184 |
$this->wpforo->db->prefix."wpforo_posts",
|
185 |
array(
|
186 |
+
'title' => $title,
|
187 |
+
'body' => $body,
|
188 |
'modified' => current_time( 'mysql', 1 ),
|
189 |
+
'status' => $status,
|
190 |
+
'name' => $name,
|
191 |
+
'email' => $email,
|
192 |
),
|
193 |
array('postid' => $postid),
|
194 |
+
array('%s','%s','%s','%d','%s','%s'),
|
195 |
array('%d')
|
196 |
)
|
197 |
){
|
198 |
+
do_action( 'wpforo_after_edit_post', array( 'postid' => $postid, 'topicid' => $topicid, 'title' => $title, 'body' => $body, 'status' => $status, 'name' => $name, 'email' => $email) );
|
199 |
|
200 |
+
wpforo_clean_cache($postid, 'post');
|
201 |
$this->wpforo->notice->add('This post successfully edited', 'success');
|
202 |
return $postid;
|
203 |
}
|
217 |
* @return bool
|
218 |
*/
|
219 |
|
220 |
+
function delete($postid, $delete_cache = true){
|
221 |
$postid = intval($postid);
|
222 |
|
223 |
if( !$post = $this->get_post($postid) ) return true;
|
272 |
do_action('wpforo_after_delete_post', $post);
|
273 |
|
274 |
if( $post['is_first_post'] ) return $this->wpforo->topic->delete($post['topicid']);
|
275 |
+
if( $delete_cache ) wpforo_clean_cache(0, 'post');
|
276 |
return TRUE;
|
277 |
}
|
278 |
|
346 |
'order' => 'ASC', // ASC DESC
|
347 |
'offset' => NULL, // this use when you give row_count
|
348 |
'row_count' => NULL, // 4 or 1 ...
|
349 |
+
'status' => NULL, // 0 or 1 ...
|
350 |
+
'email' => NULL, // example@example.com ...
|
351 |
|
352 |
'check_private' => FALSE
|
353 |
);
|
356 |
|
357 |
if(is_array($args) && !empty($args)){
|
358 |
|
|
|
|
|
|
|
|
|
359 |
extract($args, EXTR_OVERWRITE);
|
360 |
|
361 |
if( $row_count === 0 ) return array();
|
373 |
if($parentid != -1) $wheres[] = $table_as_prefix . "`parentid` = " . intval($parentid);
|
374 |
if(!is_null($userid)) $wheres[] = $table_as_prefix . "`userid` = " . intval($userid);
|
375 |
if(!is_null($status)) $wheres[] = $table_as_prefix . "`status` = " . intval($status);
|
376 |
+
if(!is_null($email)) $wheres[] = $table_as_prefix . "`email` = '" . esc_sql($email) . "' ";
|
377 |
|
378 |
if( isset($forumid) && $forumid ){
|
379 |
if( $this->wpforo->perm->forum_can('au', $forumid) ){
|
417 |
}
|
418 |
}
|
419 |
|
420 |
+
if( $cache ){ $object_key = md5( $sql . $this->wpforo->current_user_groupid ); $object_cache = $this->wpforo->cache->get($object_key); if(!empty($object_cache)){ $items_count = $object_cache['items_count']; return $object_cache['items']; }}
|
421 |
+
|
422 |
$posts = $this->wpforo->db->get_results($sql, ARRAY_A);
|
423 |
$posts = apply_filters('wpforo_get_posts', $posts);
|
424 |
|
448 |
}
|
449 |
}
|
450 |
|
451 |
+
function get_posts_filtered( $args = array() ){
|
452 |
+
$posts = array();
|
453 |
+
$posts = $this->get_posts( $args );
|
454 |
+
if( !empty($posts) ){
|
455 |
+
foreach($posts as $key => $post){
|
456 |
+
if( isset($post['forumid']) && !$this->wpforo->perm->forum_can('vf', $post['forumid']) ){
|
457 |
+
unset($posts[$key]);
|
458 |
+
}
|
459 |
+
if( isset($posts[$key]) && isset($post['forumid']) && isset($post['private']) && $post['private'] && !wpforo_is_owner($post['userid']) ){
|
460 |
+
if( !$this->wpforo->perm->forum_can('vp', $post['forumid']) ){
|
461 |
+
unset($posts[$key]);
|
462 |
+
}
|
463 |
+
}
|
464 |
+
if( isset($posts[$key]) && isset($post['forumid']) && isset($post['status']) && $post['status'] && !wpforo_is_owner($post['userid']) ){
|
465 |
+
if( !$this->wpforo->perm->forum_can('au', $post['forumid']) ){
|
466 |
+
unset($posts[$key]);
|
467 |
+
}
|
468 |
+
}
|
469 |
+
}
|
470 |
+
}
|
471 |
+
return $posts;
|
472 |
+
}
|
473 |
+
|
474 |
|
475 |
function search( $args = array(), &$items_count = 0 ){
|
476 |
if(!is_array($args)) $args = array('needle' => $args);
|
706 |
*
|
707 |
* @return string $url
|
708 |
*/
|
709 |
+
function get_post_url( $arg, $absolute = true ){
|
710 |
|
711 |
$position = array();
|
712 |
|
714 |
$postid = intval($arg);
|
715 |
$post = $this->get_post($postid);
|
716 |
}
|
717 |
+
elseif( !empty($arg) && isset($arg['postid']) ){
|
718 |
$post = $arg;
|
719 |
$postid = $post['postid'];
|
720 |
}
|
721 |
+
|
722 |
+
if( is_array($post) && !empty($post) && $postid ){
|
723 |
$url = $this->get_forumslug_byid($postid) . '/' . $this->get_topicslug_byid($postid);
|
724 |
if( $post['topicid'] ){
|
725 |
if( !$position ) $position = $this->wpforo->db->get_var("SELECT COUNT(`postid`) FROM `".$this->wpforo->db->prefix."wpforo_posts` WHERE `topicid` = ".intval($post['topicid'])." AND `postid` <= " . ($post['parentid'] ? intval($post['parentid']) : intval($postid) ) . " ORDER BY `postid`");
|
726 |
+
if( $position <= $this->wpforo->post_options['posts_per_page'] ) return wpforo_home_url($url, false, $absolute ) . "#post-" . intval($postid);
|
727 |
$paged = ceil( $position/$this->wpforo->post_options['posts_per_page'] );
|
728 |
+
return wpforo_home_url( $url . "/paged/" . $paged, false, $absolute ) ."#post-" . intval($postid);
|
729 |
}
|
730 |
}
|
731 |
+
|
732 |
return wpforo_home_url();
|
733 |
}
|
734 |
|
wpf-includes/class-template.php
CHANGED
@@ -261,8 +261,8 @@ class wpForoTemplate{
|
|
261 |
|
262 |
$post = wpforo_post($postid);
|
263 |
|
264 |
-
$l_count = $
|
265 |
-
$l_usernames = $
|
266 |
$return = '';
|
267 |
|
268 |
if( $l_count ){
|
@@ -396,7 +396,10 @@ class wpForoTemplate{
|
|
396 |
break;
|
397 |
case 'edit':
|
398 |
if($is_closed) break;
|
399 |
-
if(
|
|
|
|
|
|
|
400 |
$diff = current_time( 'timestamp', 1 ) - strtotime($post['created']);
|
401 |
if( $this->wpforo->perm->forum_can( ($is_topic ? 'et' : 'er'), $forumid ) || ($this->wpforo->current_userid == $post['userid'] && $this->wpforo->perm->forum_can( ($is_topic ? 'eot' : 'eor' ), $forumid ) && $diff < $this->wpforo->post_options[($is_topic ? 'eot' : 'eor' ).'_durr'] ) ) {
|
402 |
$a = ( $is_topic ) ? 'wpfedittopicpid' : '';
|
@@ -406,7 +409,10 @@ class wpForoTemplate{
|
|
406 |
}
|
407 |
break;
|
408 |
case 'delete':
|
409 |
-
if(
|
|
|
|
|
|
|
410 |
$diff = current_time( 'timestamp', 1 ) - strtotime($post['created']);
|
411 |
if( $this->wpforo->perm->forum_can( ($is_topic ? 'dt' : 'dr' ), $forumid ) || ($this->wpforo->current_userid == $post['userid'] && $this->wpforo->perm->forum_can( ($is_topic ? 'dot' : 'dor' ), $forumid ) && $diff < $this->wpforo->post_options[($is_topic ? 'dot' : 'dor' ).'_durr']) ){
|
412 |
$a = ( $is_topic ) ? 'wpftopicdelete' : 'wpfreplydelete';
|
261 |
|
262 |
$post = wpforo_post($postid);
|
263 |
|
264 |
+
$l_count = wpforo_post($postid, 'likes_count');
|
265 |
+
$l_usernames = wpforo_post($postid, 'likers_usernames');
|
266 |
$return = '';
|
267 |
|
268 |
if( $l_count ){
|
396 |
break;
|
397 |
case 'edit':
|
398 |
if($is_closed) break;
|
399 |
+
if( $this->wpforo->member->current_user_is_new() && $post['status'] ){
|
400 |
+
//New registered user's unapproved topic/post | No Edit button.
|
401 |
+
}
|
402 |
+
else{
|
403 |
$diff = current_time( 'timestamp', 1 ) - strtotime($post['created']);
|
404 |
if( $this->wpforo->perm->forum_can( ($is_topic ? 'et' : 'er'), $forumid ) || ($this->wpforo->current_userid == $post['userid'] && $this->wpforo->perm->forum_can( ($is_topic ? 'eot' : 'eor' ), $forumid ) && $diff < $this->wpforo->post_options[($is_topic ? 'eot' : 'eor' ).'_durr'] ) ) {
|
405 |
$a = ( $is_topic ) ? 'wpfedittopicpid' : '';
|
409 |
}
|
410 |
break;
|
411 |
case 'delete':
|
412 |
+
if( $this->wpforo->member->current_user_is_new() && $post['status'] ){
|
413 |
+
//New registered user's unapproved topic/post | No Delete button.
|
414 |
+
}
|
415 |
+
else{
|
416 |
$diff = current_time( 'timestamp', 1 ) - strtotime($post['created']);
|
417 |
if( $this->wpforo->perm->forum_can( ($is_topic ? 'dt' : 'dr' ), $forumid ) || ($this->wpforo->current_userid == $post['userid'] && $this->wpforo->perm->forum_can( ($is_topic ? 'dot' : 'dor' ), $forumid ) && $diff < $this->wpforo->post_options[($is_topic ? 'dot' : 'dor' ).'_durr']) ){
|
418 |
$a = ( $is_topic ) ? 'wpftopicdelete' : 'wpfreplydelete';
|
wpf-includes/class-topics.php
CHANGED
@@ -58,6 +58,8 @@ class wpForoTopic{
|
|
58 |
$args['slug'] = $this->unique_slug($args['slug']);
|
59 |
$args['created'] = (isset($args['created']) ? sanitize_text_field($args['created']) : current_time( 'mysql', 1 ) );
|
60 |
$args['userid'] = (isset($args['userid']) ? intval($args['userid']) : $this->wpforo->current_userid );
|
|
|
|
|
61 |
|
62 |
$args = apply_filters('wpforo_add_topic_data_filter', $args);
|
63 |
|
@@ -75,6 +77,8 @@ class wpForoTopic{
|
|
75 |
if(isset($private)) $private = intval($private);
|
76 |
if(isset($meta_key)) $meta_key = sanitize_text_field($meta_key);
|
77 |
if(isset($meta_desc)) $meta_desc = sanitize_text_field($meta_desc);
|
|
|
|
|
78 |
if(isset($body)) $body = wpforo_kses(trim($body), 'post');
|
79 |
$meta_key = (isset($meta_key) ? $meta_key : '');
|
80 |
$meta_desc = (isset($meta_desc) ? $meta_desc : '');
|
@@ -100,9 +104,11 @@ class wpForoTopic{
|
|
100 |
'posts' => 1,
|
101 |
'meta_key' => $meta_key,
|
102 |
'meta_desc' => $meta_desc,
|
103 |
-
'has_attach'=> $has_attach
|
|
|
|
|
104 |
),
|
105 |
-
array('%s','%s','%d','%d','%d','%d','%d','%s','%s','%d','%d','%d','%s','%s','%d')
|
106 |
)
|
107 |
){
|
108 |
$topicid = $this->wpforo->db->insert_id;
|
@@ -119,8 +125,10 @@ class wpForoTopic{
|
|
119 |
'modified' => $created,
|
120 |
'is_first_post' => 1,
|
121 |
'status' => (isset($status) ? $status : 0),
|
|
|
|
|
122 |
),
|
123 |
-
array('%d','%d','%d','%s','%s','%s','%s','%d','%d')
|
124 |
)
|
125 |
){
|
126 |
$first_postid = $this->wpforo->db->insert_id;
|
@@ -144,6 +152,7 @@ class wpForoTopic{
|
|
144 |
|
145 |
do_action( 'wpforo_after_add_topic', $args );
|
146 |
|
|
|
147 |
$this->wpforo->member->reset($userid);
|
148 |
$this->wpforo->notice->add('Your topic successfully added', 'success');
|
149 |
return $topicid;
|
@@ -189,6 +198,8 @@ class wpForoTopic{
|
|
189 |
if(isset($meta_key)) $meta_key = sanitize_text_field($meta_key);
|
190 |
if(isset($meta_desc)) $meta_desc = sanitize_text_field($meta_desc);
|
191 |
if(isset($has_attach)) $has_attach = intval($has_attach);
|
|
|
|
|
192 |
if(isset($body)) $body = wpforo_kses(trim($body), 'post');
|
193 |
|
194 |
|
@@ -210,17 +221,28 @@ class wpForoTopic{
|
|
210 |
return FALSE;
|
211 |
}
|
212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
$t_update = $this->wpforo->db->update(
|
214 |
$this->wpforo->db->prefix."wpforo_topics",
|
215 |
array(
|
216 |
-
'title' =>
|
217 |
-
'type' =>
|
218 |
-
'status' =>
|
219 |
-
'private' =>
|
220 |
-
'has_attach'=>
|
|
|
|
|
221 |
),
|
222 |
array( 'topicid' => intval($topicid) ),
|
223 |
-
array( '%s','%d','%d','%d','%d' ),
|
224 |
array( '%d' )
|
225 |
);
|
226 |
|
@@ -235,23 +257,28 @@ class wpForoTopic{
|
|
235 |
return FALSE;
|
236 |
}
|
237 |
|
|
|
|
|
238 |
$p_update = $this->wpforo->db->update(
|
239 |
$this->wpforo->db->prefix."wpforo_posts",
|
240 |
array(
|
241 |
-
'title' =>
|
242 |
-
'body' =>
|
243 |
'modified' => current_time( 'mysql', 1 ),
|
244 |
-
'status' =>
|
|
|
|
|
245 |
),
|
246 |
array( 'postid' => intval($topic['first_postid']) ),
|
247 |
-
array( '%s',
|
248 |
array( '%d' )
|
249 |
);
|
250 |
|
251 |
if($t_update !== FALSE && $p_update !== FALSE){
|
252 |
|
253 |
-
do_action( 'wpforo_after_edit_topic', array( 'postid' => $topic['first_postid'], 'topicid' => $topicid, 'title' => $title, 'body' => $body, 'status' => $status ) );
|
254 |
|
|
|
255 |
$this->wpforo->notice->add('Topic successfully updated', 'success');
|
256 |
return $topicid;
|
257 |
}
|
@@ -304,7 +331,7 @@ class wpForoTopic{
|
|
304 |
*
|
305 |
* @return bool
|
306 |
*/
|
307 |
-
function delete($topicid = 0){
|
308 |
$topicid = intval($topicid);
|
309 |
if(!$topicid && isset( $_REQUEST['id'] ) ) $topicid = intval($_REQUEST['id']);
|
310 |
|
@@ -336,9 +363,9 @@ class wpForoTopic{
|
|
336 |
)){
|
337 |
foreach ($postids as $postid) {
|
338 |
if( $postid == $topic['first_postid'] ){
|
339 |
-
return $this->wpforo->post->delete($postid);
|
340 |
}else{
|
341 |
-
$this->wpforo->post->delete($postid);
|
342 |
}
|
343 |
}
|
344 |
}
|
@@ -359,12 +386,14 @@ class wpForoTopic{
|
|
359 |
SET $questions
|
360 |
WHERE `userid` = " . intval($topic['userid'])
|
361 |
);
|
|
|
|
|
|
|
|
|
362 |
$this->wpforo->member->reset($topic['userid']);
|
363 |
$this->wpforo->forum->rebuild_last_infos($forumid);
|
|
|
364 |
$this->wpforo->notice->add('This topic successfully deleted', 'success');
|
365 |
-
|
366 |
-
do_action( 'wpforo_after_delete_topic', $topic );
|
367 |
-
|
368 |
return TRUE;
|
369 |
}
|
370 |
}
|
@@ -495,10 +524,6 @@ class wpForoTopic{
|
|
495 |
$args = wpforo_parse_args( $args, $default );
|
496 |
if(is_array($args) && !empty($args)){
|
497 |
|
498 |
-
if( $cache ){
|
499 |
-
$object_key = md5( serialize($args) . $this->wpforo->current_user_groupid ); $object_cache = $this->wpforo->cache->get( $object_key ); if( !empty($object_cache) ){$items_count = $object_cache['items_count']; return $object_cache['items']; }
|
500 |
-
}
|
501 |
-
|
502 |
extract($args, EXTR_OVERWRITE);
|
503 |
|
504 |
if( $row_count === 0 ) return array();
|
@@ -564,6 +589,8 @@ class wpForoTopic{
|
|
564 |
}
|
565 |
}
|
566 |
|
|
|
|
|
567 |
$topics = $this->wpforo->db->get_results($sql, ARRAY_A);
|
568 |
$topics = apply_filters('wpforo_get_topics', $topics);
|
569 |
|
@@ -592,6 +619,30 @@ class wpForoTopic{
|
|
592 |
return $topics;
|
593 |
}
|
594 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
595 |
/**
|
596 |
*
|
597 |
* Search in your chosen column and return array with needles
|
@@ -720,6 +771,7 @@ class wpForoTopic{
|
|
720 |
|
721 |
$this->wpforo->forum->rebuild_last_infos($topic['forumid']);
|
722 |
|
|
|
723 |
$this->wpforo->notice->add('Topic successfully moved', 'success');
|
724 |
return $topicid;
|
725 |
}
|
58 |
$args['slug'] = $this->unique_slug($args['slug']);
|
59 |
$args['created'] = (isset($args['created']) ? sanitize_text_field($args['created']) : current_time( 'mysql', 1 ) );
|
60 |
$args['userid'] = (isset($args['userid']) ? intval($args['userid']) : $this->wpforo->current_userid );
|
61 |
+
$args['name'] = (isset($args['name']) ? $args['name'] : '' );
|
62 |
+
$args['email'] = (isset($args['email']) ? $args['email'] : '' );
|
63 |
|
64 |
$args = apply_filters('wpforo_add_topic_data_filter', $args);
|
65 |
|
77 |
if(isset($private)) $private = intval($private);
|
78 |
if(isset($meta_key)) $meta_key = sanitize_text_field($meta_key);
|
79 |
if(isset($meta_desc)) $meta_desc = sanitize_text_field($meta_desc);
|
80 |
+
if(isset($name)) $name = strip_tags(trim($name));
|
81 |
+
if(isset($email)) $email = strip_tags(trim($email));
|
82 |
if(isset($body)) $body = wpforo_kses(trim($body), 'post');
|
83 |
$meta_key = (isset($meta_key) ? $meta_key : '');
|
84 |
$meta_desc = (isset($meta_desc) ? $meta_desc : '');
|
104 |
'posts' => 1,
|
105 |
'meta_key' => $meta_key,
|
106 |
'meta_desc' => $meta_desc,
|
107 |
+
'has_attach'=> $has_attach,
|
108 |
+
'name' => $name,
|
109 |
+
'email' => $email
|
110 |
),
|
111 |
+
array('%s','%s','%d','%d','%d','%d','%d','%s','%s','%d','%d','%d','%s','%s','%d','%s','%s')
|
112 |
)
|
113 |
){
|
114 |
$topicid = $this->wpforo->db->insert_id;
|
125 |
'modified' => $created,
|
126 |
'is_first_post' => 1,
|
127 |
'status' => (isset($status) ? $status : 0),
|
128 |
+
'name' => $name,
|
129 |
+
'email' => $email
|
130 |
),
|
131 |
+
array('%d','%d','%d','%s','%s','%s','%s','%d','%d','%s','%s')
|
132 |
)
|
133 |
){
|
134 |
$first_postid = $this->wpforo->db->insert_id;
|
152 |
|
153 |
do_action( 'wpforo_after_add_topic', $args );
|
154 |
|
155 |
+
wpforo_clean_cache($topicid, 'topic');
|
156 |
$this->wpforo->member->reset($userid);
|
157 |
$this->wpforo->notice->add('Your topic successfully added', 'success');
|
158 |
return $topicid;
|
198 |
if(isset($meta_key)) $meta_key = sanitize_text_field($meta_key);
|
199 |
if(isset($meta_desc)) $meta_desc = sanitize_text_field($meta_desc);
|
200 |
if(isset($has_attach)) $has_attach = intval($has_attach);
|
201 |
+
if(isset($name)) $name = strip_tags(trim($name));
|
202 |
+
if(isset($email)) $email = strip_tags(trim($email));
|
203 |
if(isset($body)) $body = wpforo_kses(trim($body), 'post');
|
204 |
|
205 |
|
221 |
return FALSE;
|
222 |
}
|
223 |
|
224 |
+
|
225 |
+
$title = ( isset($title) ? stripslashes($title) : stripslashes($topic['title']) );
|
226 |
+
$type = ( isset($type) ? $type : intval($topic['type']) );
|
227 |
+
$status = ( isset($status) ? $status : intval($topic['status']) );
|
228 |
+
$private = ( isset($private) ? $private : intval($topic['private']) );
|
229 |
+
$has_attach = ( isset($body) ? (strpos($body, '[attach]') !== FALSE ? 1 : 0) : $topic['has_attach'] );
|
230 |
+
$name = ( isset($name) ? stripslashes($name) : stripslashes($topic['name']) );
|
231 |
+
$email = ( isset($email) ? stripslashes($email) : stripslashes($topic['email']) );
|
232 |
+
|
233 |
$t_update = $this->wpforo->db->update(
|
234 |
$this->wpforo->db->prefix."wpforo_topics",
|
235 |
array(
|
236 |
+
'title' => $title,
|
237 |
+
'type' => $type,
|
238 |
+
'status' => $status,
|
239 |
+
'private' => $private,
|
240 |
+
'has_attach'=> $has_attach,
|
241 |
+
'name' => $name,
|
242 |
+
'email' => $email
|
243 |
),
|
244 |
array( 'topicid' => intval($topicid) ),
|
245 |
+
array( '%s','%d','%d','%d','%d','%s','%s' ),
|
246 |
array( '%d' )
|
247 |
);
|
248 |
|
257 |
return FALSE;
|
258 |
}
|
259 |
|
260 |
+
$body = ( (isset($body) && $body) ? stripslashes($body) : stripslashes($post['body']) );
|
261 |
+
|
262 |
$p_update = $this->wpforo->db->update(
|
263 |
$this->wpforo->db->prefix."wpforo_posts",
|
264 |
array(
|
265 |
+
'title' => $title,
|
266 |
+
'body' => $body,
|
267 |
'modified' => current_time( 'mysql', 1 ),
|
268 |
+
'status' => $status,
|
269 |
+
'name' => $name,
|
270 |
+
'email' => $email,
|
271 |
),
|
272 |
array( 'postid' => intval($topic['first_postid']) ),
|
273 |
+
array( '%s','%s','%s','%d','%s','%s' ),
|
274 |
array( '%d' )
|
275 |
);
|
276 |
|
277 |
if($t_update !== FALSE && $p_update !== FALSE){
|
278 |
|
279 |
+
do_action( 'wpforo_after_edit_topic', array( 'postid' => $topic['first_postid'], 'topicid' => $topicid, 'title' => $title, 'body' => $body, 'status' => $status, 'name' => $name, 'email' => $email ) );
|
280 |
|
281 |
+
wpforo_clean_cache($topicid, 'topic');
|
282 |
$this->wpforo->notice->add('Topic successfully updated', 'success');
|
283 |
return $topicid;
|
284 |
}
|
331 |
*
|
332 |
* @return bool
|
333 |
*/
|
334 |
+
function delete($topicid = 0, $delete_cache = true ){
|
335 |
$topicid = intval($topicid);
|
336 |
if(!$topicid && isset( $_REQUEST['id'] ) ) $topicid = intval($_REQUEST['id']);
|
337 |
|
363 |
)){
|
364 |
foreach ($postids as $postid) {
|
365 |
if( $postid == $topic['first_postid'] ){
|
366 |
+
return $this->wpforo->post->delete($postid, false);
|
367 |
}else{
|
368 |
+
$this->wpforo->post->delete($postid, false);
|
369 |
}
|
370 |
}
|
371 |
}
|
386 |
SET $questions
|
387 |
WHERE `userid` = " . intval($topic['userid'])
|
388 |
);
|
389 |
+
|
390 |
+
do_action( 'wpforo_after_delete_topic', $topic );
|
391 |
+
|
392 |
+
if( $delete_cache ) wpforo_clean_cache(0, 'topic');
|
393 |
$this->wpforo->member->reset($topic['userid']);
|
394 |
$this->wpforo->forum->rebuild_last_infos($forumid);
|
395 |
+
|
396 |
$this->wpforo->notice->add('This topic successfully deleted', 'success');
|
|
|
|
|
|
|
397 |
return TRUE;
|
398 |
}
|
399 |
}
|
524 |
$args = wpforo_parse_args( $args, $default );
|
525 |
if(is_array($args) && !empty($args)){
|
526 |
|
|
|
|
|
|
|
|
|
527 |
extract($args, EXTR_OVERWRITE);
|
528 |
|
529 |
if( $row_count === 0 ) return array();
|
589 |
}
|
590 |
}
|
591 |
|
592 |
+
if( $cache ){ $object_key = md5( $sql . $this->wpforo->current_user_groupid ); $object_cache = $this->wpforo->cache->get( $object_key ); if( !empty($object_cache) ){ $items_count = $object_cache['items_count']; return $object_cache['items']; }}
|
593 |
+
|
594 |
$topics = $this->wpforo->db->get_results($sql, ARRAY_A);
|
595 |
$topics = apply_filters('wpforo_get_topics', $topics);
|
596 |
|
619 |
return $topics;
|
620 |
}
|
621 |
}
|
622 |
+
|
623 |
+
function get_topics_filtered( $args = array() ){
|
624 |
+
$topics = array();
|
625 |
+
$topics = $this->get_topics( $args );
|
626 |
+
if( !empty($topics) ){
|
627 |
+
foreach($topics as $key => $topic){
|
628 |
+
if( !$this->wpforo->perm->forum_can('vf', $topic['forumid']) ){
|
629 |
+
unset($topics[$key]);
|
630 |
+
}
|
631 |
+
if( isset($topics[$key]) && isset($topic['private']) && $topic['private'] && !wpforo_is_owner($topic['userid']) ){
|
632 |
+
if( !$this->wpforo->perm->forum_can('vp', $topic['forumid']) ){
|
633 |
+
unset($topics[$key]);
|
634 |
+
}
|
635 |
+
}
|
636 |
+
if( isset($topics[$key]) && isset($topic['status']) && $topic['status'] && !wpforo_is_owner($topic['userid']) ){
|
637 |
+
if( !$this->wpforo->perm->forum_can('au', $topic['forumid']) ){
|
638 |
+
unset($topics[$key]);
|
639 |
+
}
|
640 |
+
}
|
641 |
+
}
|
642 |
+
}
|
643 |
+
return $topics;
|
644 |
+
}
|
645 |
+
|
646 |
/**
|
647 |
*
|
648 |
* Search in your chosen column and return array with needles
|
771 |
|
772 |
$this->wpforo->forum->rebuild_last_infos($topic['forumid']);
|
773 |
|
774 |
+
wpforo_clean_cache( $topicid, 'topic');
|
775 |
$this->wpforo->notice->add('Topic successfully moved', 'success');
|
776 |
return $topicid;
|
777 |
}
|
wpf-includes/functions-installation.php
CHANGED
@@ -156,7 +156,7 @@ function wpforo_activation(){
|
|
156 |
'lost_password_url' => '',
|
157 |
'rating_title_ug' => array ( 1 => '0', 5 => '1', 4 => '1', 2 => '0', 3 => '1' ),
|
158 |
'rating_badge_ug' => array ( 1 => '1', 5 => '1', 4 => '1', 2 => '1', 3 => '1' ),
|
159 |
-
'title_usergroup' => array ( 1 => '1', 5 => '1', 4 => '
|
160 |
);
|
161 |
$exlude = array('rating_title_ug', 'rating_badge_ug');
|
162 |
wpforo_update_options( 'wpforo_member_options', $wpforo_member, $exlude);
|
@@ -673,19 +673,28 @@ function wpforo_activation(){
|
|
673 |
@$wpdb->query( $sql );
|
674 |
$sql = "ALTER TABLE `".$wpdb->prefix."wpforo_topics` ADD INDEX `forumid_status` ( `forumid`, `status`);";
|
675 |
@$wpdb->query( $sql );
|
676 |
-
}
|
677 |
-
$args = array( 'table' => $wpdb->prefix . 'wpforo_posts', 'col' => 'status', 'check' => 'col_exists' );
|
678 |
-
if( !wpforo_db_check( $args ) ){
|
679 |
$sql = "ALTER TABLE `".$wpdb->prefix."wpforo_posts` ADD `status` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX `status` (`status`);";
|
680 |
@$wpdb->query( $sql );
|
681 |
$sql = "ALTER TABLE `".$wpdb->prefix."wpforo_posts` ADD INDEX `topicid_status` ( `topicid`, `status`);";
|
682 |
@$wpdb->query( $sql );
|
683 |
}
|
684 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
685 |
#################################################################
|
686 |
// UPDATE VERSION - END /////////////////////////////////////////
|
687 |
update_option('wpforo_version', WPFORO_VERSION);
|
688 |
$wpforo->notice->clear();
|
|
|
689 |
}
|
690 |
|
691 |
|
156 |
'lost_password_url' => '',
|
157 |
'rating_title_ug' => array ( 1 => '0', 5 => '1', 4 => '1', 2 => '0', 3 => '1' ),
|
158 |
'rating_badge_ug' => array ( 1 => '1', 5 => '1', 4 => '1', 2 => '1', 3 => '1' ),
|
159 |
+
'title_usergroup' => array ( 1 => '1', 5 => '1', 4 => '1', 2 => '1', 3 => '0' ),
|
160 |
);
|
161 |
$exlude = array('rating_title_ug', 'rating_badge_ug');
|
162 |
wpforo_update_options( 'wpforo_member_options', $wpforo_member, $exlude);
|
673 |
@$wpdb->query( $sql );
|
674 |
$sql = "ALTER TABLE `".$wpdb->prefix."wpforo_topics` ADD INDEX `forumid_status` ( `forumid`, `status`);";
|
675 |
@$wpdb->query( $sql );
|
|
|
|
|
|
|
676 |
$sql = "ALTER TABLE `".$wpdb->prefix."wpforo_posts` ADD `status` TINYINT(1) NOT NULL DEFAULT '0', ADD INDEX `status` (`status`);";
|
677 |
@$wpdb->query( $sql );
|
678 |
$sql = "ALTER TABLE `".$wpdb->prefix."wpforo_posts` ADD INDEX `topicid_status` ( `topicid`, `status`);";
|
679 |
@$wpdb->query( $sql );
|
680 |
}
|
681 |
+
// ADD `name` and `email` field in TOPIC TABLE ///////////////////////////
|
682 |
+
$args = array( 'table' => $wpdb->prefix . 'wpforo_topics', 'col' => 'name', 'check' => 'col_exists' );
|
683 |
+
if( !wpforo_db_check( $args ) ){
|
684 |
+
$sql = "ALTER TABLE `" . $wpdb->prefix . "wpforo_topics` ADD `name` VARCHAR(50) NOT NULL AFTER `status`, ADD `email` VARCHAR(50) NOT NULL AFTER `name`";
|
685 |
+
@$wpdb->query( $sql );
|
686 |
+
$sql = "ALTER TABLE `" . $wpdb->prefix . "wpforo_posts` ADD `name` VARCHAR(50) NOT NULL AFTER `status`, ADD `email` VARCHAR(50) NOT NULL AFTER `name`";
|
687 |
+
@$wpdb->query( $sql );
|
688 |
+
$sql = "ALTER TABLE `" . $wpdb->prefix . "wpforo_topics` ADD KEY `email` (`email`)";
|
689 |
+
@$wpdb->query( $sql );
|
690 |
+
$sql = "ALTER TABLE `" . $wpdb->prefix . "wpforo_posts` ADD KEY `email` (`email`)";
|
691 |
+
@$wpdb->query( $sql );
|
692 |
+
}
|
693 |
#################################################################
|
694 |
// UPDATE VERSION - END /////////////////////////////////////////
|
695 |
update_option('wpforo_version', WPFORO_VERSION);
|
696 |
$wpforo->notice->clear();
|
697 |
+
wpforo_clean_cache();
|
698 |
}
|
699 |
|
700 |
|
wpf-includes/functions-template.php
CHANGED
@@ -407,11 +407,11 @@ class wpForo_Widget_recent_topics extends WP_Widget {
|
|
407 |
'order' => 'DESC', // ASC DESC
|
408 |
'row_count' => $instance['count'] // 4 or 1 ...
|
409 |
);
|
410 |
-
$topics = $wpforo->topic->
|
411 |
echo '<div class="wpforo-widget-content"><ul>';
|
412 |
foreach( $topics as $topic ){
|
413 |
$topic_url = wpforo_topic($topic['topicid'], 'url');
|
414 |
-
$member =
|
415 |
?>
|
416 |
<li>
|
417 |
<div class="wpforo-list-item">
|
@@ -422,7 +422,7 @@ class wpForo_Widget_recent_topics extends WP_Widget {
|
|
422 |
<?php endif; ?>
|
423 |
<div class="wpforo-list-item-right" <?php if( !$instance['display_avatar'] ): ?> style="width:100%"<?php endif; ?>>
|
424 |
<p class="posttitle"><a href="<?php echo esc_url($topic_url) ?>"><?php echo esc_html($topic['title']) ?></a></p>
|
425 |
-
<p class="postuser"><?php wpforo_phrase('by') ?>
|
426 |
</div>
|
427 |
<div class="wpf-clear"></div>
|
428 |
</div>
|
@@ -483,11 +483,11 @@ class wpForo_Widget_recent_replies extends WP_Widget {
|
|
483 |
'row_count' => $instance['count'],
|
484 |
'check_private' => true
|
485 |
);
|
486 |
-
$recent_posts = $wpforo->post->
|
487 |
echo '<div class="wpforo-widget-content"><ul>';
|
488 |
foreach( $recent_posts as $post ){
|
489 |
$post_url = wpforo_post( $post['postid'], 'url' );
|
490 |
-
$member =
|
491 |
?>
|
492 |
<li>
|
493 |
<div class="wpforo-list-item">
|
@@ -499,7 +499,7 @@ class wpForo_Widget_recent_replies extends WP_Widget {
|
|
499 |
<div class="wpforo-list-item-right" <?php if( !$instance['display_avatar'] ): ?> style="width:100%"<?php endif; ?>>
|
500 |
<p class="posttitle"><a href="<?php echo esc_url($post_url) ?>"><?php echo esc_html($post['title']) ?></a></p>
|
501 |
<p class="posttext"><?php echo esc_html(wpforo_text($post['body'], 55)); ?></p>
|
502 |
-
<p class="postuser"><?php wpforo_phrase('by') ?>
|
503 |
</div>
|
504 |
<div class="wpf-clear"></div>
|
505 |
</div>
|
@@ -668,17 +668,21 @@ function wpforo_member_title( $member = array(), $echo = true, $usergroup = true
|
|
668 |
$rating_title_ug_enabled = ( isset($wpforo->member_options['rating_title_ug'][$member['groupid']]) && $wpforo->member_options['rating_title_ug'][$member['groupid']] ) ? true : false ;
|
669 |
$usergroup_title_ug_enabled = ( isset($wpforo->member_options['title_usergroup'][$member['groupid']]) && $wpforo->member_options['title_usergroup'][$member['groupid']] ) ? true : false ;
|
670 |
|
671 |
-
if( wpforo_feature('rating_title', $wpforo) && $rating_title_ug_enabled
|
672 |
-
$title[] = esc_html($member['stat']['title']);
|
673 |
}
|
674 |
if( empty($title) ){
|
675 |
-
$title[] = wpforo_phrase($member['title']);
|
676 |
}
|
677 |
if( $usergroup_title_ug_enabled ){
|
678 |
-
$
|
|
|
|
|
|
|
|
|
679 |
}
|
680 |
if( !empty($title) ){
|
681 |
-
$title_html =
|
682 |
$title_html = apply_filters('wpforo_member_title', $title_html, $member);
|
683 |
if( $echo ) {
|
684 |
echo $title_html;
|
@@ -692,7 +696,7 @@ function wpforo_member_title( $member = array(), $echo = true, $usergroup = true
|
|
692 |
function wpforo_member_badge( $member = array(), $sep = '', $type = 'full' ){
|
693 |
global $wpforo;
|
694 |
$rating_badge_ug_enabled = ( isset($wpforo->member_options['rating_badge_ug'][$member['groupid']]) && $wpforo->member_options['rating_badge_ug'][$member['groupid']] ) ? true : false ;
|
695 |
-
if( wpforo_feature('rating', $wpforo) && $rating_badge_ug_enabled ): ?>
|
696 |
<div class="author-rating-<?php echo esc_attr($type) ?>" style="color:<?php echo esc_attr($member['stat']['color']) ?>" title="<?php wpforo_phrase('Member Rating Badge') ?>">
|
697 |
<?php echo $wpforo->member->rating_badge($member['stat']['rating'], $type); ?>
|
698 |
</div><?php if($sep): ?><span class="author-rating-sep"><?php echo esc_html($sep); ?></span><?php endif; ?>
|
@@ -720,11 +724,12 @@ function wpforo_page_class( $classes ) {
|
|
720 |
function wpforo_post( $postid, $var = 'item', $echo = false ){
|
721 |
|
722 |
global $wpforo;
|
723 |
-
$post = array();
|
724 |
if( !$postid ) return $post;
|
725 |
$cache = $wpforo->cache->on('object_cashe');
|
726 |
-
if( $cache )
|
727 |
-
|
|
|
728 |
if( empty($post) ){
|
729 |
if( !$cache && $var == 'url' ){
|
730 |
$post['url'] = $wpforo->post->get_post_url($postid);
|
@@ -743,17 +748,19 @@ function wpforo_post( $postid, $var = 'item', $echo = false ){
|
|
743 |
}
|
744 |
else{
|
745 |
$post = $wpforo->post->get_post($postid);
|
746 |
-
|
747 |
-
|
748 |
-
$
|
749 |
-
|
750 |
-
|
751 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
752 |
}
|
753 |
-
if(!empty($post)){
|
754 |
-
$cache_item = array( $postid => $post );
|
755 |
-
$wpforo->cache->create('item', $cache_item, 'post');
|
756 |
-
}
|
757 |
}
|
758 |
}
|
759 |
|
@@ -772,7 +779,7 @@ function wpforo_post( $postid, $var = 'item', $echo = false ){
|
|
772 |
function wpforo_topic( $topicid, $var = 'item', $echo = false ){
|
773 |
|
774 |
global $wpforo;
|
775 |
-
$topic = array();
|
776 |
if( !$topicid ) return $topic;
|
777 |
$cache = $wpforo->cache->on('object_cashe');
|
778 |
if( $cache ) $topic = $wpforo->cache->get_item( $topicid, 'topic' );
|
@@ -786,12 +793,14 @@ function wpforo_topic( $topicid, $var = 'item', $echo = false ){
|
|
786 |
}
|
787 |
else{
|
788 |
$topic = $wpforo->topic->get_topic($topicid);
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
|
|
|
|
795 |
}
|
796 |
}
|
797 |
|
@@ -812,7 +821,7 @@ function wpforo_forum( $forumid, $var = 'item', $echo = false ){
|
|
812 |
|
813 |
global $wpforo;
|
814 |
$data = array();
|
815 |
-
$forum = array();
|
816 |
$cache = $wpforo->cache->on('object_cashe');
|
817 |
if( !$forumid ) return $forum;
|
818 |
if( $cache ) $forum = $wpforo->cache->get_item( $forumid, 'forum' );
|
@@ -831,14 +840,16 @@ function wpforo_forum( $forumid, $var = 'item', $echo = false ){
|
|
831 |
}
|
832 |
else{
|
833 |
$forum = $wpforo->forum->get_forum($forumid);
|
834 |
-
if( $
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
|
|
|
|
842 |
}
|
843 |
}
|
844 |
}
|
@@ -855,4 +866,39 @@ function wpforo_forum( $forumid, $var = 'item', $echo = false ){
|
|
855 |
}
|
856 |
}
|
857 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
858 |
?>
|
407 |
'order' => 'DESC', // ASC DESC
|
408 |
'row_count' => $instance['count'] // 4 or 1 ...
|
409 |
);
|
410 |
+
$topics = $wpforo->topic->get_topics_filtered($topic_args);
|
411 |
echo '<div class="wpforo-widget-content"><ul>';
|
412 |
foreach( $topics as $topic ){
|
413 |
$topic_url = wpforo_topic($topic['topicid'], 'url');
|
414 |
+
$member = wpforo_member($topic);
|
415 |
?>
|
416 |
<li>
|
417 |
<div class="wpforo-list-item">
|
422 |
<?php endif; ?>
|
423 |
<div class="wpforo-list-item-right" <?php if( !$instance['display_avatar'] ): ?> style="width:100%"<?php endif; ?>>
|
424 |
<p class="posttitle"><a href="<?php echo esc_url($topic_url) ?>"><?php echo esc_html($topic['title']) ?></a></p>
|
425 |
+
<p class="postuser"><?php wpforo_phrase('by') ?> <?php wpforo_member_link($member) ?>, <span style="white-space:nowrap;"><?php esc_html(wpforo_date($topic['created'])) ?></span></p>
|
426 |
</div>
|
427 |
<div class="wpf-clear"></div>
|
428 |
</div>
|
483 |
'row_count' => $instance['count'],
|
484 |
'check_private' => true
|
485 |
);
|
486 |
+
$recent_posts = $wpforo->post->get_posts_filtered($posts_args);
|
487 |
echo '<div class="wpforo-widget-content"><ul>';
|
488 |
foreach( $recent_posts as $post ){
|
489 |
$post_url = wpforo_post( $post['postid'], 'url' );
|
490 |
+
$member = wpforo_member( $post );
|
491 |
?>
|
492 |
<li>
|
493 |
<div class="wpforo-list-item">
|
499 |
<div class="wpforo-list-item-right" <?php if( !$instance['display_avatar'] ): ?> style="width:100%"<?php endif; ?>>
|
500 |
<p class="posttitle"><a href="<?php echo esc_url($post_url) ?>"><?php echo esc_html($post['title']) ?></a></p>
|
501 |
<p class="posttext"><?php echo esc_html(wpforo_text($post['body'], 55)); ?></p>
|
502 |
+
<p class="postuser"><?php wpforo_phrase('by') ?> <?php wpforo_member_link($member) ?>, <?php esc_html(wpforo_date($post['created'])) ?></p>
|
503 |
</div>
|
504 |
<div class="wpf-clear"></div>
|
505 |
</div>
|
668 |
$rating_title_ug_enabled = ( isset($wpforo->member_options['rating_title_ug'][$member['groupid']]) && $wpforo->member_options['rating_title_ug'][$member['groupid']] ) ? true : false ;
|
669 |
$usergroup_title_ug_enabled = ( isset($wpforo->member_options['title_usergroup'][$member['groupid']]) && $wpforo->member_options['title_usergroup'][$member['groupid']] ) ? true : false ;
|
670 |
|
671 |
+
if( wpforo_feature('rating_title', $wpforo) && $rating_title_ug_enabled && isset($member['stat']['title']) ){
|
672 |
+
$title[] = '<span class="wpf-member-title wpfrt" title="' . wpforo_phrase('Rating Title', false) . '">' . esc_html($member['stat']['title']) . '</span>';
|
673 |
}
|
674 |
if( empty($title) ){
|
675 |
+
$title[] = '<span class="wpf-member-title wpfct" title="' . wpforo_phrase('User Title', false) . '">' . wpforo_phrase($member['title'], false) . '</span>';
|
676 |
}
|
677 |
if( $usergroup_title_ug_enabled ){
|
678 |
+
$class = '';
|
679 |
+
if( $member['groupid'] == 1 ) $class = ' wpfbg-6 wpfcl-3';
|
680 |
+
if( $member['groupid'] == 2 ) $class = ' wpfbg-5 wpfcl-3';
|
681 |
+
if( $member['groupid'] == 4 ) $class = ' wpfbg-2 wpfcl-3';
|
682 |
+
$title[] = '<span class="wpf-member-title wpfut wpfug-' . intval($member['groupid']) . $class . '" title="' . wpforo_phrase('Usergroup', false) . '">' . esc_html($member['groupname']) . '</span>';
|
683 |
}
|
684 |
if( !empty($title) ){
|
685 |
+
$title_html = implode(' ', $title);
|
686 |
$title_html = apply_filters('wpforo_member_title', $title_html, $member);
|
687 |
if( $echo ) {
|
688 |
echo $title_html;
|
696 |
function wpforo_member_badge( $member = array(), $sep = '', $type = 'full' ){
|
697 |
global $wpforo;
|
698 |
$rating_badge_ug_enabled = ( isset($wpforo->member_options['rating_badge_ug'][$member['groupid']]) && $wpforo->member_options['rating_badge_ug'][$member['groupid']] ) ? true : false ;
|
699 |
+
if( wpforo_feature('rating', $wpforo) && $rating_badge_ug_enabled && isset($member['stat']['rating']) ): ?>
|
700 |
<div class="author-rating-<?php echo esc_attr($type) ?>" style="color:<?php echo esc_attr($member['stat']['color']) ?>" title="<?php wpforo_phrase('Member Rating Badge') ?>">
|
701 |
<?php echo $wpforo->member->rating_badge($member['stat']['rating'], $type); ?>
|
702 |
</div><?php if($sep): ?><span class="author-rating-sep"><?php echo esc_html($sep); ?></span><?php endif; ?>
|
724 |
function wpforo_post( $postid, $var = 'item', $echo = false ){
|
725 |
|
726 |
global $wpforo;
|
727 |
+
$post = ( $var == 'item' ) ? array() : '';
|
728 |
if( !$postid ) return $post;
|
729 |
$cache = $wpforo->cache->on('object_cashe');
|
730 |
+
if( $cache ){
|
731 |
+
$post = $wpforo->cache->get_item( $postid, 'post' );
|
732 |
+
}
|
733 |
if( empty($post) ){
|
734 |
if( !$cache && $var == 'url' ){
|
735 |
$post['url'] = $wpforo->post->get_post_url($postid);
|
748 |
}
|
749 |
else{
|
750 |
$post = $wpforo->post->get_post($postid);
|
751 |
+
if( !empty($post) ){
|
752 |
+
$post['url'] = $wpforo->post->get_post_url($post);
|
753 |
+
if( $cache ){
|
754 |
+
$post['is_answered'] = $wpforo->post->is_answered($postid);
|
755 |
+
$post['votes_sum'] = $wpforo->post->get_post_votes_sum($postid);
|
756 |
+
$post['likes_count'] = $wpforo->post->get_post_likes_count($postid);
|
757 |
+
$post['likers_usernames'] = $wpforo->post->get_likers_usernames($postid);
|
758 |
+
}
|
759 |
+
if(!empty($post)){
|
760 |
+
$cache_item = array( $postid => $post );
|
761 |
+
$wpforo->cache->create('item', $cache_item, 'post');
|
762 |
+
}
|
763 |
}
|
|
|
|
|
|
|
|
|
764 |
}
|
765 |
}
|
766 |
|
779 |
function wpforo_topic( $topicid, $var = 'item', $echo = false ){
|
780 |
|
781 |
global $wpforo;
|
782 |
+
$topic = ( $var == 'item' ) ? array() : '';
|
783 |
if( !$topicid ) return $topic;
|
784 |
$cache = $wpforo->cache->on('object_cashe');
|
785 |
if( $cache ) $topic = $wpforo->cache->get_item( $topicid, 'topic' );
|
793 |
}
|
794 |
else{
|
795 |
$topic = $wpforo->topic->get_topic($topicid);
|
796 |
+
if( !empty($topic) ){
|
797 |
+
$topic['url'] = $wpforo->topic->get_topic_url($topic);
|
798 |
+
$topic['is_answer'] = $wpforo->topic->is_solved( $topic['topicid'] );
|
799 |
+
if(!empty($topic)){
|
800 |
+
$cache_item = array( $topicid => $topic );
|
801 |
+
$wpforo->cache->create('item', $cache_item, 'topic');
|
802 |
+
}
|
803 |
+
}
|
804 |
}
|
805 |
}
|
806 |
|
821 |
|
822 |
global $wpforo;
|
823 |
$data = array();
|
824 |
+
$forum = ( $var == 'item' ) ? array() : '';
|
825 |
$cache = $wpforo->cache->on('object_cashe');
|
826 |
if( !$forumid ) return $forum;
|
827 |
if( $cache ) $forum = $wpforo->cache->get_item( $forumid, 'forum' );
|
840 |
}
|
841 |
else{
|
842 |
$forum = $wpforo->forum->get_forum($forumid);
|
843 |
+
if( !empty($forum) ){
|
844 |
+
if( $cache ){
|
845 |
+
$wpforo->forum->get_childs($forum['forumid'], $data);
|
846 |
+
$forum['childs'] = $data;
|
847 |
+
$forum['counts'] = $wpforo->forum->get_counts( $data );
|
848 |
+
}
|
849 |
+
if(!empty($forum)){
|
850 |
+
$cache_item = array( $forumid => $forum );
|
851 |
+
$wpforo->cache->create('item', $cache_item, 'forum');
|
852 |
+
}
|
853 |
}
|
854 |
}
|
855 |
}
|
866 |
}
|
867 |
}
|
868 |
|
869 |
+
function wpforo_member( $object, $var = 'item', $echo = false ){
|
870 |
+
|
871 |
+
global $wpforo;
|
872 |
+
$member = array();
|
873 |
+
if( empty( $object ) ) return $member;
|
874 |
+
|
875 |
+
if( is_array( $object ) && isset($object['userid']) && $object['userid'] == 0 ){
|
876 |
+
$member = $wpforo->member->get_guest( $object );
|
877 |
+
}
|
878 |
+
else{
|
879 |
+
$userid = ( is_array( $object ) && isset($object['userid']) ) ? intval($object['userid']) : intval($object);
|
880 |
+
$member = $wpforo->member->get_member( $userid );
|
881 |
+
}
|
882 |
+
|
883 |
+
if( $var != 'item' && $var ){
|
884 |
+
$member = ( isset($member[$var]) ) ? $member[$var] : '';
|
885 |
+
}
|
886 |
+
|
887 |
+
if( $echo ){
|
888 |
+
echo $member;
|
889 |
+
}
|
890 |
+
else{
|
891 |
+
return $member;
|
892 |
+
}
|
893 |
+
}
|
894 |
+
|
895 |
+
function wpforo_member_link( $member, $prefix = '', $length = 30, $class = '', $echo = true ){
|
896 |
+
$display_name = ( isset($member['display_name']) && $member['display_name'] ) ? $member['display_name'] : wpforo_phrase('Anonymous', false);
|
897 |
+
if( isset($member['profile_url']) && $member['profile_url'] ){
|
898 |
+
?><a href="<?php echo esc_url($member['profile_url']) ?>"><?php if( strpos($prefix, '%s') !== FALSE ): ?><?php echo sprintf( wpforo_phrase($prefix, FALSE), esc_html(wpforo_text($display_name, $length, FALSE)) ); ?><?php else: ?><?php if( $prefix ){ echo wpforo_phrase( $prefix, false) . ' '; } ?><?php if( $length ){ echo esc_html(wpforo_text($display_name, $length, false)); } else { echo esc_html($display_name); } ?><?php endif; ?></a><?php
|
899 |
+
}
|
900 |
+
else{
|
901 |
+
?><?php if( strpos($prefix, '%s') !== FALSE ): ?><?php echo sprintf( wpforo_phrase($prefix, FALSE), esc_html(wpforo_text($display_name, $length, FALSE)) ); ?><?php else: ?><?php if( $prefix ){ echo wpforo_phrase( $prefix, false) . ' '; } ?><?php if( $length ){ echo esc_html(wpforo_text($display_name, $length, false)); } else { echo esc_html($display_name); } ?><?php endif; ?><?php
|
902 |
+
}
|
903 |
+
}
|
904 |
?>
|
wpf-includes/functions.php
CHANGED
@@ -23,7 +23,7 @@ function wpforo_verify_form( $mode = 'full' ){
|
|
23 |
}
|
24 |
}
|
25 |
|
26 |
-
function wpforo_home_url($str = '', $echo = false){
|
27 |
global $wpforo;
|
28 |
|
29 |
if( strpos($str, 'http') === 0 ){
|
@@ -33,19 +33,23 @@ function wpforo_home_url($str = '', $echo = false){
|
|
33 |
$str = preg_replace('#^'.preg_quote( rtrim($base_url, '/\\') ).'/?#isu', '', $str, 1);
|
34 |
}
|
35 |
$str = trim(WPFORO_BASE_PERMASTRUCT, '/\\') . '/' . trim($str, '/\\');
|
36 |
-
|
37 |
-
$url = $wpforo->user_trailingslashit( home_url($str) );
|
38 |
|
39 |
-
|
|
|
|
|
40 |
$maybe_home_url = trim( preg_replace('#/?index\.php/?(\?.*)?$#isu', '', $url), '/\\' );
|
41 |
$home_url = trim( home_url(), '/\\' );
|
42 |
if( $maybe_home_url == $home_url ){
|
43 |
$url = preg_replace('#index\.php/?#isu', '', $url, 1);
|
44 |
$url = $wpforo->user_trailingslashit($url);
|
45 |
}
|
46 |
-
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
49 |
echo $url;
|
50 |
}
|
51 |
|
@@ -230,12 +234,14 @@ if(!function_exists('is_serialized')){
|
|
230 |
|
231 |
|
232 |
function wpforo_get_request_uri($with_port = FALSE, $get_referer_when_ajax = TRUE){
|
233 |
-
if( $get_referer_when_ajax && wpforo_is_ajax() )
|
234 |
-
|
|
|
|
|
235 |
$sp = strtolower($_SERVER["SERVER_PROTOCOL"]);
|
236 |
$protocol = substr($sp, 0, strpos($sp, "/")) . $s;
|
237 |
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
|
238 |
-
return $protocol . "://" . $_SERVER['
|
239 |
}
|
240 |
|
241 |
|
@@ -656,7 +662,11 @@ function wpforo_create_form_table($varname, $primary_key, $fields = array(), $se
|
|
656 |
<?php if($field == 'forumid') : ?>
|
657 |
<?php $data = $wpforo->forum->get_forum($item[$field]); echo esc_html($data['title']); ?>
|
658 |
<?php elseif($field == 'userid') : ?>
|
659 |
-
<?php
|
|
|
|
|
|
|
|
|
660 |
<?php elseif($field == 'groupid') : ?>
|
661 |
<?php $data = $wpforo->usergroup->get_usergroup($item[$field]); echo esc_html($data['name']); ?>
|
662 |
<?php elseif($field == 'rank') : ?>
|
23 |
}
|
24 |
}
|
25 |
|
26 |
+
function wpforo_home_url($str = '', $echo = false, $absolute = true){
|
27 |
global $wpforo;
|
28 |
|
29 |
if( strpos($str, 'http') === 0 ){
|
33 |
$str = preg_replace('#^'.preg_quote( rtrim($base_url, '/\\') ).'/?#isu', '', $str, 1);
|
34 |
}
|
35 |
$str = trim(WPFORO_BASE_PERMASTRUCT, '/\\') . '/' . trim($str, '/\\');
|
|
|
|
|
36 |
|
37 |
+
if( $absolute ){
|
38 |
+
$url = $wpforo->user_trailingslashit( home_url($str) );
|
39 |
+
//-START- check is url maybe wordpress home
|
40 |
$maybe_home_url = trim( preg_replace('#/?index\.php/?(\?.*)?$#isu', '', $url), '/\\' );
|
41 |
$home_url = trim( home_url(), '/\\' );
|
42 |
if( $maybe_home_url == $home_url ){
|
43 |
$url = preg_replace('#index\.php/?#isu', '', $url, 1);
|
44 |
$url = $wpforo->user_trailingslashit($url);
|
45 |
}
|
46 |
+
//-END- check is url maybe wordpress home
|
47 |
+
}
|
48 |
+
else{
|
49 |
+
echo $url = $wpforo->user_trailingslashit( $str );
|
50 |
+
}
|
51 |
+
|
52 |
+
if(!$echo) return $url;
|
53 |
echo $url;
|
54 |
}
|
55 |
|
234 |
|
235 |
|
236 |
function wpforo_get_request_uri($with_port = FALSE, $get_referer_when_ajax = TRUE){
|
237 |
+
if( $get_referer_when_ajax && wpforo_is_ajax() ){
|
238 |
+
if( isset($_SERVER['HTTP_REFERER']) ){ return $_SERVER['HTTP_REFERER']; }
|
239 |
+
}
|
240 |
+
$s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";
|
241 |
$sp = strtolower($_SERVER["SERVER_PROTOCOL"]);
|
242 |
$protocol = substr($sp, 0, strpos($sp, "/")) . $s;
|
243 |
$port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
|
244 |
+
return $protocol . "://" . $_SERVER['HTTP_HOST'] . ($with_port ? $port : '') . $_SERVER['REQUEST_URI'];
|
245 |
}
|
246 |
|
247 |
|
662 |
<?php if($field == 'forumid') : ?>
|
663 |
<?php $data = $wpforo->forum->get_forum($item[$field]); echo esc_html($data['title']); ?>
|
664 |
<?php elseif($field == 'userid') : ?>
|
665 |
+
<?php if(isset($item['name'])): ?>
|
666 |
+
<?php $data = wpforo_member($item); echo esc_html(wpforo_make_dname($data['display_name'], $data['user_nicename'])); ?>
|
667 |
+
<?php else: ?>
|
668 |
+
<?php $data = $wpforo->member->get_member($item[$field]); echo esc_html(wpforo_make_dname($data['display_name'], $data['user_nicename'])); ?>
|
669 |
+
<?php endif; ?>
|
670 |
<?php elseif($field == 'groupid') : ?>
|
671 |
<?php $data = $wpforo->usergroup->get_usergroup($item[$field]); echo esc_html($data['name']); ?>
|
672 |
<?php elseif($field == 'rank') : ?>
|
wpf-includes/install-sql.php
CHANGED
@@ -52,9 +52,15 @@
|
|
52 |
`closed` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
53 |
`has_attach` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
54 |
`private` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
|
|
|
55 |
PRIMARY KEY (`topicid`),
|
56 |
UNIQUE KEY `UNIQUE SLUG` (`slug`(191)),
|
57 |
FULLTEXT KEY `title` (`title`),
|
|
|
|
|
|
|
58 |
KEY `own_private` (`userid`,`private`)
|
59 |
) ENGINE=$engine $charset_collate;",
|
60 |
"CREATE TABLE IF NOT EXISTS `{$wpforo->db->prefix}wpforo_posts`(
|
@@ -71,10 +77,15 @@
|
|
71 |
`votes` INT NOT NULL DEFAULT 0,
|
72 |
`is_answer` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
73 |
`is_first_post` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
|
|
|
|
|
|
74 |
PRIMARY KEY (`postid`),
|
75 |
FULLTEXT KEY `title`(`title`(191)),
|
76 |
FULLTEXT KEY `body` (`body`),
|
77 |
-
FULLTEXT KEY `title_plus_body` (`title`,`body`)
|
|
|
|
|
78 |
) ENGINE=$engine $charset_collate;",
|
79 |
"CREATE TABLE IF NOT EXISTS `{$wpforo->db->prefix}wpforo_profiles` (
|
80 |
`userid` INT UNSIGNED NOT NULL,
|
@@ -145,7 +156,7 @@
|
|
145 |
`vid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
146 |
`userid` INT UNSIGNED NOT NULL,
|
147 |
`topicid` INT UNSIGNED NOT NULL,
|
148 |
-
`created`
|
149 |
PRIMARY KEY (`vid`),
|
150 |
KEY `user_topic` (`userid`,`topicid`)
|
151 |
) ENGINE=$engine $charset_collate;",
|
@@ -169,15 +180,30 @@
|
|
169 |
"CREATE TABLE IF NOT EXISTS `{$wpforo->db->prefix}wpforo_subscribes` (
|
170 |
`subid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
171 |
`itemid` BIGINT UNSIGNED NOT NULL,
|
172 |
-
`type`
|
173 |
`confirmkey` varchar(32) NOT NULL,
|
174 |
`userid` BIGINT UNSIGNED NOT NULL,
|
175 |
-
`active`
|
176 |
PRIMARY KEY (`subid`),
|
177 |
UNIQUE KEY `itemid` (`itemid`,`type`,`userid`),
|
178 |
UNIQUE KEY `confirmkey` (`confirmkey`),
|
179 |
KEY `itemid_2` (`itemid`),
|
180 |
KEY `userid` (`userid`)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
) ENGINE=$engine $charset_collate;"
|
182 |
);
|
183 |
|
52 |
`closed` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
53 |
`has_attach` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
54 |
`private` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
55 |
+
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
56 |
+
`name` VARCHAR(50) NOT NULL DEFAULT '',
|
57 |
+
`email` VARCHAR(50) NOT NULL DEFAULT '',
|
58 |
PRIMARY KEY (`topicid`),
|
59 |
UNIQUE KEY `UNIQUE SLUG` (`slug`(191)),
|
60 |
FULLTEXT KEY `title` (`title`),
|
61 |
+
KEY `status` (`status`),
|
62 |
+
KEY `email` (`email`),
|
63 |
+
KEY `is_private` (`private`),
|
64 |
KEY `own_private` (`userid`,`private`)
|
65 |
) ENGINE=$engine $charset_collate;",
|
66 |
"CREATE TABLE IF NOT EXISTS `{$wpforo->db->prefix}wpforo_posts`(
|
77 |
`votes` INT NOT NULL DEFAULT 0,
|
78 |
`is_answer` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
79 |
`is_first_post` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
80 |
+
`status` tinyint(1) UNSIGNED NOT NULL DEFAULT 0,
|
81 |
+
`name` VARCHAR(50) NOT NULL DEFAULT '',
|
82 |
+
`email` VARCHAR(50) NOT NULL DEFAULT '',
|
83 |
PRIMARY KEY (`postid`),
|
84 |
FULLTEXT KEY `title`(`title`(191)),
|
85 |
FULLTEXT KEY `body` (`body`),
|
86 |
+
FULLTEXT KEY `title_plus_body` (`title`,`body`),
|
87 |
+
KEY `status` (`status`),
|
88 |
+
KEY `email` (`email`)
|
89 |
) ENGINE=$engine $charset_collate;",
|
90 |
"CREATE TABLE IF NOT EXISTS `{$wpforo->db->prefix}wpforo_profiles` (
|
91 |
`userid` INT UNSIGNED NOT NULL,
|
156 |
`vid` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
157 |
`userid` INT UNSIGNED NOT NULL,
|
158 |
`topicid` INT UNSIGNED NOT NULL,
|
159 |
+
`created` INT UNSIGNED NOT NULL,
|
160 |
PRIMARY KEY (`vid`),
|
161 |
KEY `user_topic` (`userid`,`topicid`)
|
162 |
) ENGINE=$engine $charset_collate;",
|
180 |
"CREATE TABLE IF NOT EXISTS `{$wpforo->db->prefix}wpforo_subscribes` (
|
181 |
`subid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
182 |
`itemid` BIGINT UNSIGNED NOT NULL,
|
183 |
+
`type` VARCHAR(5) NOT NULL,
|
184 |
`confirmkey` varchar(32) NOT NULL,
|
185 |
`userid` BIGINT UNSIGNED NOT NULL,
|
186 |
+
`active` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
|
187 |
PRIMARY KEY (`subid`),
|
188 |
UNIQUE KEY `itemid` (`itemid`,`type`,`userid`),
|
189 |
UNIQUE KEY `confirmkey` (`confirmkey`),
|
190 |
KEY `itemid_2` (`itemid`),
|
191 |
KEY `userid` (`userid`)
|
192 |
+
) ENGINE=$engine $charset_collate;",
|
193 |
+
"CREATE TABLE IF NOT EXISTS `{$wpforo->db->prefix}wpforo_visits` (
|
194 |
+
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
195 |
+
`userid` BIGINT UNSIGNED NOT NULL,
|
196 |
+
`name` VARCHAR(60) NOT NULL,
|
197 |
+
`ip` VARCHAR(60) NOT NULL,
|
198 |
+
`time` INT UNSIGNED NOT NULL,
|
199 |
+
`forumid` INT UNSIGNED NOT NULL,
|
200 |
+
`topicid` BIGINT UNSIGNED NOT NULL,
|
201 |
+
PRIMARY KEY (`id`),
|
202 |
+
KEY `userid` (`userid`),
|
203 |
+
KEY `forumid` (`forumid`),
|
204 |
+
KEY `topicid` (`topicid`),
|
205 |
+
KEY `time` (`time`),
|
206 |
+
KEY `ip` (`ip`)
|
207 |
) ENGINE=$engine $charset_collate;"
|
208 |
);
|
209 |
|
wpf-includes/wpf-actions.php
CHANGED
@@ -97,14 +97,12 @@ function wpforo_actions(){
|
|
97 |
if( $_REQUEST['topic']['action'] == 'add' ){
|
98 |
wpforo_verify_form();
|
99 |
if( $topicid = $wpforo->topic->add() ){
|
100 |
-
wpforo_clean_cache( $topicid, 'topic' );
|
101 |
wp_redirect( $wpforo->topic->get_topic_url($topicid) );
|
102 |
exit();
|
103 |
}
|
104 |
}elseif( $_REQUEST['topic']['action'] == 'edit' ){
|
105 |
wpforo_verify_form();
|
106 |
if( $topicid = $wpforo->topic->edit() ){
|
107 |
-
wpforo_clean_cache( $topicid, 'topic' );
|
108 |
wp_redirect( $wpforo->topic->get_topic_url($topicid) );
|
109 |
exit();
|
110 |
}
|
@@ -118,14 +116,12 @@ function wpforo_actions(){
|
|
118 |
if($_REQUEST['post']['action'] == 'add'){
|
119 |
wpforo_verify_form();
|
120 |
if( $postid = $wpforo->post->add() ){
|
121 |
-
wpforo_clean_cache( $postid, 'post' );
|
122 |
wp_redirect( $wpforo->post->get_post_url( $postid ) );
|
123 |
exit();
|
124 |
}
|
125 |
}elseif($_REQUEST['post']['action'] == 'edit'){
|
126 |
wpforo_verify_form();
|
127 |
if( $postid = $wpforo->post->edit() ){
|
128 |
-
wpforo_clean_cache( $postid, 'post' );
|
129 |
wp_redirect( $wpforo->post->get_post_url( $postid ) );
|
130 |
exit();
|
131 |
}
|
@@ -137,7 +133,6 @@ function wpforo_actions(){
|
|
137 |
$move_topicid = intval($_POST['movetopicid']);
|
138 |
$move_forumid = intval($_POST['topic']['forumid']);
|
139 |
$wpforo->topic->move( $move_topicid, $move_forumid );
|
140 |
-
wpforo_clean_cache( $move_topicid, 'topic');
|
141 |
wp_redirect( wpforo_get_request_uri() );
|
142 |
exit();
|
143 |
}
|
@@ -406,13 +401,10 @@ function wpforo_actions(){
|
|
406 |
check_admin_referer( 'wpforo-forum-addedit' );
|
407 |
if( $_GET['action'] == 'add' ){
|
408 |
if( $forumid = $wpforo->forum->add() ){
|
409 |
-
wpforo_clean_cache($forumid, 'forum');
|
410 |
wp_redirect( admin_url( 'admin.php?page=wpforo-forums' ) );
|
411 |
exit();
|
412 |
}
|
413 |
}elseif( $_GET['action'] == 'edit' && isset($_GET['id']) ){
|
414 |
-
$forumid = intval($_GET['id']);
|
415 |
-
wpforo_clean_cache($forumid, 'forum');
|
416 |
$forumid = $wpforo->forum->edit();
|
417 |
}
|
418 |
if( isset($forumid) && $forumid ){
|
@@ -430,7 +422,6 @@ function wpforo_actions(){
|
|
430 |
}elseif( intval($_REQUEST['forum']['delete']) == 0 ){
|
431 |
$wpforo->forum->merge();
|
432 |
}
|
433 |
-
wpforo_clean_cache(0, 'forum');
|
434 |
wp_redirect( admin_url( 'admin.php?page=wpforo-forums' ) );
|
435 |
exit();
|
436 |
}
|
@@ -478,7 +469,6 @@ function wpforo_actions(){
|
|
478 |
!check_admin_referer( 'wpforo_admin_table_action_delete' );
|
479 |
}
|
480 |
foreach ($pids as $pid) $wpforo->post->delete($pid);
|
481 |
-
wpforo_clean_cache(0, 'post');
|
482 |
wp_redirect(admin_url('admin.php?page=wpforo-moderations'));
|
483 |
exit();
|
484 |
} elseif ($u_action == 'approve') {
|
@@ -723,7 +713,7 @@ function wpforo_actions(){
|
|
723 |
$topic['topicurl'] = $wpforo->topic->get_topic_url($topicid);
|
724 |
$posts = $wpforo->post->get_posts( array( 'topicid' => $topicid, 'row_count' => 10, 'orderby' => 'created', 'order' => 'DESC', 'check_private' => true ) );
|
725 |
foreach($posts as $key => $post){
|
726 |
-
$member =
|
727 |
$posts[$key]['description'] = wpforo_text( trim(strip_tags($post['body'])), 190, false );
|
728 |
$posts[$key]['content'] = trim($post['body']);
|
729 |
$posts[$key]['posturl'] = $wpforo->post->get_post_url( $post['postid'] );
|
@@ -735,7 +725,7 @@ function wpforo_actions(){
|
|
735 |
$topics = $wpforo->topic->get_topics( array( 'forumid' => $forumid, 'row_count' => 10, 'orderby' => 'created', 'order' => 'DESC' ) );
|
736 |
foreach($topics as $key => $topic){
|
737 |
$post = $wpforo->post->get_post($topic['first_postid']);
|
738 |
-
$member =
|
739 |
$topics[$key]['description'] = wpforo_text( trim(strip_tags($post['body'])), 190, false );
|
740 |
$topics[$key]['content'] = trim($post['body']);
|
741 |
$topics[$key]['topicurl'] = $wpforo->topic->get_topic_url($topic['topicid']);
|
@@ -827,7 +817,4 @@ function wpforo_actions(){
|
|
827 |
|
828 |
do_action( 'wpforo_actions_end' );
|
829 |
|
830 |
-
}
|
831 |
-
|
832 |
-
|
833 |
-
?>
|
97 |
if( $_REQUEST['topic']['action'] == 'add' ){
|
98 |
wpforo_verify_form();
|
99 |
if( $topicid = $wpforo->topic->add() ){
|
|
|
100 |
wp_redirect( $wpforo->topic->get_topic_url($topicid) );
|
101 |
exit();
|
102 |
}
|
103 |
}elseif( $_REQUEST['topic']['action'] == 'edit' ){
|
104 |
wpforo_verify_form();
|
105 |
if( $topicid = $wpforo->topic->edit() ){
|
|
|
106 |
wp_redirect( $wpforo->topic->get_topic_url($topicid) );
|
107 |
exit();
|
108 |
}
|
116 |
if($_REQUEST['post']['action'] == 'add'){
|
117 |
wpforo_verify_form();
|
118 |
if( $postid = $wpforo->post->add() ){
|
|
|
119 |
wp_redirect( $wpforo->post->get_post_url( $postid ) );
|
120 |
exit();
|
121 |
}
|
122 |
}elseif($_REQUEST['post']['action'] == 'edit'){
|
123 |
wpforo_verify_form();
|
124 |
if( $postid = $wpforo->post->edit() ){
|
|
|
125 |
wp_redirect( $wpforo->post->get_post_url( $postid ) );
|
126 |
exit();
|
127 |
}
|
133 |
$move_topicid = intval($_POST['movetopicid']);
|
134 |
$move_forumid = intval($_POST['topic']['forumid']);
|
135 |
$wpforo->topic->move( $move_topicid, $move_forumid );
|
|
|
136 |
wp_redirect( wpforo_get_request_uri() );
|
137 |
exit();
|
138 |
}
|
401 |
check_admin_referer( 'wpforo-forum-addedit' );
|
402 |
if( $_GET['action'] == 'add' ){
|
403 |
if( $forumid = $wpforo->forum->add() ){
|
|
|
404 |
wp_redirect( admin_url( 'admin.php?page=wpforo-forums' ) );
|
405 |
exit();
|
406 |
}
|
407 |
}elseif( $_GET['action'] == 'edit' && isset($_GET['id']) ){
|
|
|
|
|
408 |
$forumid = $wpforo->forum->edit();
|
409 |
}
|
410 |
if( isset($forumid) && $forumid ){
|
422 |
}elseif( intval($_REQUEST['forum']['delete']) == 0 ){
|
423 |
$wpforo->forum->merge();
|
424 |
}
|
|
|
425 |
wp_redirect( admin_url( 'admin.php?page=wpforo-forums' ) );
|
426 |
exit();
|
427 |
}
|
469 |
!check_admin_referer( 'wpforo_admin_table_action_delete' );
|
470 |
}
|
471 |
foreach ($pids as $pid) $wpforo->post->delete($pid);
|
|
|
472 |
wp_redirect(admin_url('admin.php?page=wpforo-moderations'));
|
473 |
exit();
|
474 |
} elseif ($u_action == 'approve') {
|
713 |
$topic['topicurl'] = $wpforo->topic->get_topic_url($topicid);
|
714 |
$posts = $wpforo->post->get_posts( array( 'topicid' => $topicid, 'row_count' => 10, 'orderby' => 'created', 'order' => 'DESC', 'check_private' => true ) );
|
715 |
foreach($posts as $key => $post){
|
716 |
+
$member = wpforo_member( $post );
|
717 |
$posts[$key]['description'] = wpforo_text( trim(strip_tags($post['body'])), 190, false );
|
718 |
$posts[$key]['content'] = trim($post['body']);
|
719 |
$posts[$key]['posturl'] = $wpforo->post->get_post_url( $post['postid'] );
|
725 |
$topics = $wpforo->topic->get_topics( array( 'forumid' => $forumid, 'row_count' => 10, 'orderby' => 'created', 'order' => 'DESC' ) );
|
726 |
foreach($topics as $key => $topic){
|
727 |
$post = $wpforo->post->get_post($topic['first_postid']);
|
728 |
+
$member = wpforo_member($topic);
|
729 |
$topics[$key]['description'] = wpforo_text( trim(strip_tags($post['body'])), 190, false );
|
730 |
$topics[$key]['content'] = trim($post['body']);
|
731 |
$topics[$key]['topicurl'] = $wpforo->topic->get_topic_url($topic['topicid']);
|
817 |
|
818 |
do_action( 'wpforo_actions_end' );
|
819 |
|
820 |
+
}
|
|
|
|
|
|
wpf-includes/wpf-hooks.php
CHANGED
@@ -32,7 +32,7 @@ function wpforo_notice_show(){
|
|
32 |
add_action( 'wpforo_top_hook', 'wpforo_notice_show', 10, 0 );
|
33 |
|
34 |
function wpforo_user_admin_bar(){
|
35 |
-
if( !is_super_admin() ) show_admin_bar(wpforo_feature('user-admin-bar'));
|
36 |
}
|
37 |
add_action('init', 'wpforo_user_admin_bar');
|
38 |
|
@@ -163,7 +163,6 @@ function wpforo_load( $atts ){
|
|
163 |
$output = ob_get_clean();
|
164 |
$wpforo->cache->html($output);
|
165 |
return $output;
|
166 |
-
|
167 |
}
|
168 |
else{
|
169 |
wpforo_init_template();
|
@@ -183,14 +182,10 @@ function wpforo_set_header_status(){
|
|
183 |
if( is_wpforo_page() ){
|
184 |
global $wp_query, $wpforo;
|
185 |
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
status_header( 200 );
|
191 |
-
$wp_query->is_404 = FALSE;
|
192 |
-
}
|
193 |
-
}
|
194 |
}
|
195 |
|
196 |
function wpforo_do_rewrite(){
|
@@ -556,7 +551,7 @@ function wpf_quote(){
|
|
556 |
global $wpforo;
|
557 |
|
558 |
$post = $wpforo->db->get_row('SELECT `userid`, `body` FROM '.$wpforo->db->prefix.'wpforo_posts WHERE postid =' . intval($_POST['postid']), ARRAY_A);
|
559 |
-
$poster =
|
560 |
echo '<blockquote><div class="wpforo-post-quote-author"><strong>' . wpforo_phrase('Posted by', FALSE) . ': ' . ( $poster['display_name'] ? esc_textarea($poster['display_name']) : esc_textarea($poster['user_login']) ) . '</strong></div>' . wpautop($post['body']) . '</blockquote><br />';
|
561 |
exit();
|
562 |
}
|
@@ -1321,7 +1316,7 @@ function wpforo_forum_subscribers_mail_sender( $topic ){
|
|
1321 |
}
|
1322 |
}
|
1323 |
|
1324 |
-
$owner =
|
1325 |
|
1326 |
if($owner['user_email'] == $member['user_email']) continue;
|
1327 |
|
@@ -1392,7 +1387,7 @@ function wpforo_topic_subscribers_mail_sender( $post ){
|
|
1392 |
$unsubscribe_link = '#';
|
1393 |
}
|
1394 |
|
1395 |
-
$owner =
|
1396 |
if($owner['user_email'] == $member['user_email']) continue;
|
1397 |
|
1398 |
if( isset($topic['forumid']) && $topic['forumid'] && isset($subscriber['userid']) ){
|
32 |
add_action( 'wpforo_top_hook', 'wpforo_notice_show', 10, 0 );
|
33 |
|
34 |
function wpforo_user_admin_bar(){
|
35 |
+
if( !is_super_admin() && is_user_logged_in() ) show_admin_bar( wpforo_feature('user-admin-bar') );
|
36 |
}
|
37 |
add_action('init', 'wpforo_user_admin_bar');
|
38 |
|
163 |
$output = ob_get_clean();
|
164 |
$wpforo->cache->html($output);
|
165 |
return $output;
|
|
|
166 |
}
|
167 |
else{
|
168 |
wpforo_init_template();
|
182 |
if( is_wpforo_page() ){
|
183 |
global $wp_query, $wpforo;
|
184 |
|
185 |
+
$status = ( $wpforo->current_object['is_404'] ? 404 : 200 );
|
186 |
+
status_header( $status );
|
187 |
+
$wp_query->is_404 = FALSE;
|
188 |
+
}
|
|
|
|
|
|
|
|
|
189 |
}
|
190 |
|
191 |
function wpforo_do_rewrite(){
|
551 |
global $wpforo;
|
552 |
|
553 |
$post = $wpforo->db->get_row('SELECT `userid`, `body` FROM '.$wpforo->db->prefix.'wpforo_posts WHERE postid =' . intval($_POST['postid']), ARRAY_A);
|
554 |
+
$poster = wpforo_member( $post );
|
555 |
echo '<blockquote><div class="wpforo-post-quote-author"><strong>' . wpforo_phrase('Posted by', FALSE) . ': ' . ( $poster['display_name'] ? esc_textarea($poster['display_name']) : esc_textarea($poster['user_login']) ) . '</strong></div>' . wpautop($post['body']) . '</blockquote><br />';
|
556 |
exit();
|
557 |
}
|
1316 |
}
|
1317 |
}
|
1318 |
|
1319 |
+
$owner = wpforo_member( $topic );
|
1320 |
|
1321 |
if($owner['user_email'] == $member['user_email']) continue;
|
1322 |
|
1387 |
$unsubscribe_link = '#';
|
1388 |
}
|
1389 |
|
1390 |
+
$owner = wpforo_member( $post );
|
1391 |
if($owner['user_email'] == $member['user_email']) continue;
|
1392 |
|
1393 |
if( isset($topic['forumid']) && $topic['forumid'] && isset($subscriber['userid']) ){
|
wpf-includes/wpf-phrases.php
CHANGED
@@ -670,4 +670,10 @@ $wpforo_phrases = array(
|
|
670 |
'Post is empty' => __('Post is empty', 'wpforo'),
|
671 |
'removed link' => __('removed link', 'wpforo'),
|
672 |
'Submit' => __('Submit', 'wpforo'),
|
|
|
|
|
|
|
|
|
|
|
|
|
673 |
);
|
670 |
'Post is empty' => __('Post is empty', 'wpforo'),
|
671 |
'removed link' => __('removed link', 'wpforo'),
|
672 |
'Submit' => __('Submit', 'wpforo'),
|
673 |
+
|
674 |
+
// 1.3.0 //
|
675 |
+
'Usergroup' => __('Usergroup', 'wpforo'),
|
676 |
+
'Rating Title' => __('Rating Title', 'wpforo'),
|
677 |
+
'User Title' => __('User Title', 'wpforo'),
|
678 |
+
'Anonymous' => __('Anonymous', 'wpforo'),
|
679 |
);
|
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: 2017-
|
9 |
"PO-Revision-Date: 2016-06-28 21:09+0400\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
@@ -67,46 +67,46 @@ msgstr ""
|
|
67 |
|
68 |
#: wpf-admin/admin.php:26 wpf-admin/admin.php:28 wpf-admin/dashboard.php:138
|
69 |
#: wpf-admin/options-tabs/styles.php:16 wpf-admin/options.php:15
|
70 |
-
#: wpf-includes/wpf-hooks.php:
|
71 |
msgid "Forums"
|
72 |
msgstr ""
|
73 |
|
74 |
#: wpf-admin/admin.php:29 wpf-includes/wpf-hooks.php:22
|
75 |
-
#: wpf-includes/wpf-hooks.php:
|
76 |
msgid "Settings"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: wpf-admin/admin.php:30 wpf-includes/wpf-hooks.php:
|
80 |
msgid "Tools"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: wpf-admin/admin.php:31 wpf-includes/wpf-hooks.php:
|
84 |
msgid "Moderation"
|
85 |
msgstr ""
|
86 |
|
87 |
#: wpf-admin/admin.php:32 wpf-admin/dashboard.php:150 wpf-admin/member.php:10
|
88 |
-
#: wpf-admin/options.php:18 wpf-includes/wpf-hooks.php:
|
89 |
#: wpf-includes/wpf-phrases.php:178
|
90 |
msgid "Members"
|
91 |
msgstr ""
|
92 |
|
93 |
#: wpf-admin/admin.php:33 wpf-admin/usergroup.php:8
|
94 |
-
#: wpf-includes/wpf-hooks.php:
|
95 |
msgid "Usergroups"
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: wpf-admin/admin.php:34 wpf-includes/wpf-hooks.php:
|
99 |
#: wpf-includes/wpf-phrases.php:600
|
100 |
msgid "Phrases"
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: wpf-admin/admin.php:35 wpf-includes/wpf-hooks.php:
|
104 |
#: wpf-includes/wpf-phrases.php:601
|
105 |
msgid "Themes"
|
106 |
msgstr ""
|
107 |
|
108 |
#: wpf-admin/admin.php:36 wpf-admin/options.php:23
|
109 |
-
#: wpf-includes/wpf-hooks.php:
|
110 |
msgid "Addons"
|
111 |
msgstr ""
|
112 |
|
@@ -172,11 +172,11 @@ msgid "Board Statistic"
|
|
172 |
msgstr ""
|
173 |
|
174 |
#: wpf-admin/dashboard.php:142 wpf-admin/options-tabs/styles.php:22
|
175 |
-
#: wpf-includes/class-forums.php:
|
176 |
msgid "Topics"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: wpf-admin/dashboard.php:146 wpf-includes/class-forums.php:
|
180 |
#: wpf-includes/wpf-phrases.php:233
|
181 |
msgid "Posts"
|
182 |
msgstr ""
|
@@ -240,7 +240,7 @@ msgstr ""
|
|
240 |
msgid "Delete User Cache"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: wpf-admin/forum.php:13 wpf-includes/functions.php:
|
244 |
#: wpf-includes/wpf-phrases.php:302
|
245 |
msgid "Show on screen"
|
246 |
msgstr ""
|
@@ -270,7 +270,7 @@ msgstr ""
|
|
270 |
msgid "Number of Columns"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: wpf-admin/forum.php:32 wpf-includes/functions.php:
|
274 |
#: wpf-includes/wpf-phrases.php:275
|
275 |
msgid "Screen Options"
|
276 |
msgstr ""
|
@@ -355,14 +355,14 @@ msgid "Are you sure you want to delete this forum?"
|
|
355 |
msgstr ""
|
356 |
|
357 |
#: wpf-admin/forum.php:153 wpf-admin/themes.php:73
|
358 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
359 |
-
#: wpf-admin/usergroup.php:133 wpf-includes/wpf-hooks.php:
|
360 |
#: wpf-includes/wpf-phrases.php:66
|
361 |
msgid "Delete"
|
362 |
msgstr ""
|
363 |
|
364 |
#: wpf-admin/forum.php:154 wpf-admin/usergroup.php:39
|
365 |
-
#: wpf-includes/class-forums.php:
|
366 |
msgid "View"
|
367 |
msgstr ""
|
368 |
|
@@ -458,8 +458,8 @@ msgstr ""
|
|
458 |
msgid "Admin"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: wpf-admin/options-tabs/accesses.php:32 wpf-includes/class-forums.php:
|
462 |
-
#: wpf-includes/functions.php:
|
463 |
msgid "edit"
|
464 |
msgstr ""
|
465 |
|
@@ -469,8 +469,8 @@ msgid ""
|
|
469 |
"to this access will lost all forum permissions."
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: wpf-admin/options-tabs/accesses.php:34 wpf-includes/class-forums.php:
|
473 |
-
#: wpf-includes/functions.php:
|
474 |
#: wpf-includes/wpf-phrases.php:381
|
475 |
msgid "delete"
|
476 |
msgstr ""
|
@@ -585,8 +585,8 @@ msgstr ""
|
|
585 |
|
586 |
#: wpf-admin/options-tabs/emails.php:99 wpf-admin/options-tabs/features.php:71
|
587 |
#: wpf-admin/options-tabs/forums.php:16 wpf-admin/options-tabs/general.php:82
|
588 |
-
#: wpf-admin/options-tabs/members.php:
|
589 |
-
#: wpf-admin/options-tabs/styles.php:93 wpf-admin/tools-tabs/antispam.php:
|
590 |
#: wpf-admin/tools-tabs/cleanup.php:49 wpf-includes/wpf-phrases.php:345
|
591 |
msgid "Update Options"
|
592 |
msgstr ""
|
@@ -1264,57 +1264,57 @@ msgstr ""
|
|
1264 |
msgid "Directory"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1268 |
msgid "Delete this file"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1272 |
msgid "Are you sure you want to permanently delete this file?"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1276 |
msgid "Click to delete Blue marked files"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1280 |
msgid ""
|
1281 |
"Are you sure you want to delete all BLUE marked files listed here. Please "
|
1282 |
"download Wordpress /wp-content/uploads/wpforo/ folder to your local computer "
|
1283 |
"before deleting files, this is not undoable."
|
1284 |
msgstr ""
|
1285 |
|
1286 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1287 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1288 |
msgid "Delete All"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1292 |
msgid "Click to delete Orange marked files"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1296 |
msgid ""
|
1297 |
"Are you sure you want to delete all ORANGE marked files listed here. Please "
|
1298 |
"download Wordpress /wp-content/uploads/wpforo/ folder to your local computer "
|
1299 |
"before deleting files, this is not undoable."
|
1300 |
msgstr ""
|
1301 |
|
1302 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1303 |
msgid "Click to delete Red marked files"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1307 |
msgid ""
|
1308 |
"Are you sure you want to delete all RED marked files listed here. Please "
|
1309 |
"download Wordpress /wp-content/uploads/wpforo/ folder to your local computer "
|
1310 |
"before deleting files, this is not undoable."
|
1311 |
msgstr ""
|
1312 |
|
1313 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1314 |
msgid "Click to delete Dark Red marked files"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
-
#: wpf-admin/tools-tabs/antispam.php:
|
1318 |
msgid ""
|
1319 |
"Are you sure you want to delete all DARK RED marked files listed here. "
|
1320 |
"Please download Wordpress /wp-content/uploads/wpforo/ folder to your local "
|
@@ -1415,11 +1415,11 @@ msgstr ""
|
|
1415 |
msgid "Users will be join this usergroup"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
-
#: wpf-includes/class-forums.php:
|
1419 |
msgid "Add a new SubForum"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
-
#: wpf-includes/class-forums.php:
|
1423 |
msgid "Add a new Forum in this Category"
|
1424 |
msgstr ""
|
1425 |
|
@@ -1457,19 +1457,19 @@ msgid ""
|
|
1457 |
"another one."
|
1458 |
msgstr ""
|
1459 |
|
1460 |
-
#: wpf-includes/class-members.php:
|
1461 |
msgid "What should be done with wpForo content owned by this user?"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
-
#: wpf-includes/class-members.php:
|
1465 |
msgid "What should be done with wpForo content owned by these users?"
|
1466 |
msgstr ""
|
1467 |
|
1468 |
-
#: wpf-includes/class-members.php:
|
1469 |
msgid "Delete all wpForo content."
|
1470 |
msgstr ""
|
1471 |
|
1472 |
-
#: wpf-includes/class-members.php:
|
1473 |
msgid "Attribute all content to:"
|
1474 |
msgstr ""
|
1475 |
|
@@ -1526,7 +1526,7 @@ msgstr ""
|
|
1526 |
msgid "Open link in a new tab"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
-
#: wpf-includes/class-template.php:
|
1530 |
msgid "Theme file not readable"
|
1531 |
msgstr ""
|
1532 |
|
@@ -1542,31 +1542,31 @@ msgstr ""
|
|
1542 |
msgid "You are not permitted to view this attachment"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
-
#: wpf-includes/functions-installation.php:
|
1546 |
msgid "Start Profile Synchronization"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
-
#: wpf-includes/functions-installation.php:
|
1550 |
msgid "Continue Synchronization"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
-
#: wpf-includes/functions-installation.php:
|
1554 |
msgid ""
|
1555 |
"This process may take a few seconds or dozens of minutes, please be patient "
|
1556 |
"and don't close this page."
|
1557 |
msgstr ""
|
1558 |
|
1559 |
-
#: wpf-includes/functions-installation.php:
|
1560 |
msgid ""
|
1561 |
"You can permanently disable this message in Dashboard > Forums > Features "
|
1562 |
"admin page."
|
1563 |
msgstr ""
|
1564 |
|
1565 |
-
#: wpf-includes/functions-installation.php:
|
1566 |
msgid "wpForo Forum Installation | "
|
1567 |
msgstr ""
|
1568 |
|
1569 |
-
#: wpf-includes/functions-installation.php:
|
1570 |
msgid ""
|
1571 |
"Forum users' profile data are not synchronized yet, this step is required! "
|
1572 |
"Please click the button below to complete installation."
|
@@ -1610,138 +1610,138 @@ msgstr ""
|
|
1610 |
msgid "Display with Avatars"
|
1611 |
msgstr ""
|
1612 |
|
1613 |
-
#: wpf-includes/functions.php:
|
1614 |
msgid "Unapproved"
|
1615 |
msgstr ""
|
1616 |
|
1617 |
-
#: wpf-includes/functions.php:
|
1618 |
msgid "Published"
|
1619 |
msgstr ""
|
1620 |
|
1621 |
-
#: wpf-includes/functions.php:
|
1622 |
msgid "Active"
|
1623 |
msgstr ""
|
1624 |
|
1625 |
-
#: wpf-includes/functions.php:
|
1626 |
msgid "Banned"
|
1627 |
msgstr ""
|
1628 |
|
1629 |
-
#: wpf-includes/functions.php:
|
1630 |
#: wpf-includes/wpf-phrases.php:50
|
1631 |
msgid "Bulk Actions"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
-
#: wpf-includes/functions.php:
|
1635 |
#: wpf-includes/wpf-phrases.php:36
|
1636 |
msgid "Apply"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
-
#: wpf-includes/functions.php:
|
1640 |
msgid "Show all forums"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
-
#: wpf-includes/functions.php:
|
1644 |
msgid "filter by group"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
-
#: wpf-includes/functions.php:
|
1648 |
msgid "filter by status"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: wpf-includes/functions.php:
|
1652 |
msgid "filter by package"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: wpf-includes/functions.php:
|
1656 |
msgid "filter by user"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
-
#: wpf-includes/functions.php:
|
1660 |
#: wpf-includes/wpf-phrases.php:386
|
1661 |
msgid "item"
|
1662 |
msgstr ""
|
1663 |
|
1664 |
-
#: wpf-includes/functions.php:
|
1665 |
#: wpf-includes/wpf-phrases.php:285
|
1666 |
msgid "Select All"
|
1667 |
msgstr ""
|
1668 |
|
1669 |
-
#: wpf-includes/functions.php:
|
1670 |
msgid "Type"
|
1671 |
msgstr ""
|
1672 |
|
1673 |
-
#: wpf-includes/functions.php:
|
1674 |
msgid "edit user"
|
1675 |
msgstr ""
|
1676 |
|
1677 |
-
#: wpf-includes/functions.php:
|
1678 |
msgid "edit profile"
|
1679 |
msgstr ""
|
1680 |
|
1681 |
-
#: wpf-includes/functions.php:
|
1682 |
msgid "unban user"
|
1683 |
msgstr ""
|
1684 |
|
1685 |
-
#: wpf-includes/functions.php:
|
1686 |
msgid "ban user"
|
1687 |
msgstr ""
|
1688 |
|
1689 |
-
#: wpf-includes/functions.php:
|
1690 |
msgid "Are you sure, you want to unban this user?"
|
1691 |
msgstr ""
|
1692 |
|
1693 |
-
#: wpf-includes/functions.php:
|
1694 |
msgid "Are you sure, you want to ban this user?"
|
1695 |
msgstr ""
|
1696 |
|
1697 |
-
#: wpf-includes/functions.php:
|
1698 |
#: wpf-includes/wpf-phrases.php:67
|
1699 |
msgid "Delete this item"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
-
#: wpf-includes/functions.php:
|
1703 |
#: wpf-includes/wpf-phrases.php:41
|
1704 |
msgid "Are you sure you whant to DELETE this item?"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: wpf-includes/functions.php:
|
1708 |
msgid "unapprove this item"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: wpf-includes/functions.php:
|
1712 |
msgid "Approve this item"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: wpf-includes/functions.php:
|
1716 |
msgid "unapprove"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: wpf-includes/functions.php:
|
1720 |
msgid "approve"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: wpf-includes/functions.php:
|
1724 |
#: wpf-includes/wpf-phrases.php:405
|
1725 |
msgid "view"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
-
#: wpf-includes/functions.php:
|
1729 |
msgid "Topic"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
-
#: wpf-includes/functions.php:
|
1733 |
msgid "Post"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
-
#: wpf-includes/functions.php:
|
1737 |
msgid "No items found"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
-
#: wpf-includes/functions.php:
|
1741 |
msgid "Items"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
-
#: wpf-includes/functions.php:
|
1745 |
#, php-format
|
1746 |
msgid "Could not write file %s"
|
1747 |
msgstr ""
|
@@ -1760,69 +1760,69 @@ msgstr ""
|
|
1760 |
msgid "Uninstall"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: wpf-includes/wpf-hooks.php:
|
1764 |
msgid "Move"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: wpf-includes/wpf-hooks.php:
|
1768 |
msgid "Clear"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: wpf-includes/wpf-hooks.php:
|
1772 |
msgid "Default"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#: wpf-includes/wpf-hooks.php:
|
1776 |
msgid "Select Color"
|
1777 |
msgstr ""
|
1778 |
|
1779 |
-
#: wpf-includes/wpf-hooks.php:
|
1780 |
msgid ""
|
1781 |
"IMPORTANT: wpForo can't work with default permalink, please change permalink "
|
1782 |
"structure"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
-
#: wpf-includes/wpf-hooks.php:
|
1786 |
msgid "wpForo Usergroup"
|
1787 |
msgstr ""
|
1788 |
|
1789 |
-
#: wpf-includes/wpf-hooks.php:
|
1790 |
msgid "wpForo User Timezone"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
-
#: wpf-includes/wpf-hooks.php:
|
1794 |
msgid "Please Moderate: "
|
1795 |
msgstr ""
|
1796 |
|
1797 |
-
#: wpf-includes/wpf-hooks.php:
|
1798 |
msgid ""
|
1799 |
"This topic is currently unapproved. You can approve topics in Dashboard "
|
1800 |
"» Forums » Moderation admin page."
|
1801 |
msgstr ""
|
1802 |
|
1803 |
-
#: wpf-includes/wpf-hooks.php:
|
1804 |
msgid ""
|
1805 |
"This post is currently unapproved. You can approve posts in Dashboard "
|
1806 |
"» Forums » Moderation admin page."
|
1807 |
msgstr ""
|
1808 |
|
1809 |
-
#: wpf-includes/wpf-hooks.php:
|
1810 |
msgid "New Forum"
|
1811 |
msgstr ""
|
1812 |
|
1813 |
-
#: wpf-includes/wpf-hooks.php:
|
1814 |
msgid "New User Group"
|
1815 |
msgstr ""
|
1816 |
|
1817 |
-
#: wpf-includes/wpf-hooks.php:
|
1818 |
msgid "New Phrase"
|
1819 |
msgstr ""
|
1820 |
|
1821 |
-
#: wpf-includes/wpf-hooks.php:
|
1822 |
msgid "Community"
|
1823 |
msgstr ""
|
1824 |
|
1825 |
-
#: wpf-includes/wpf-hooks.php:
|
1826 |
msgid "New UserGroup"
|
1827 |
msgstr ""
|
1828 |
|
@@ -3641,6 +3641,22 @@ msgstr ""
|
|
3641 |
msgid "Submit"
|
3642 |
msgstr ""
|
3643 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3644 |
#: wpforo.php:401
|
3645 |
msgid ""
|
3646 |
"Provides a safe way to communicate directly with other members. Messages are "
|
@@ -3666,7 +3682,7 @@ msgid ""
|
|
3666 |
msgstr ""
|
3667 |
|
3668 |
#. Plugin Name of the plugin/theme
|
3669 |
-
msgid "
|
3670 |
msgstr ""
|
3671 |
|
3672 |
#. Plugin URI of the plugin/theme
|
5 |
msgstr ""
|
6 |
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
7 |
"Project-Id-Version: Forum - wpForo\n"
|
8 |
+
"POT-Creation-Date: 2017-06-09 17:34+0400\n"
|
9 |
"PO-Revision-Date: 2016-06-28 21:09+0400\n"
|
10 |
"Last-Translator: \n"
|
11 |
"Language-Team: \n"
|
67 |
|
68 |
#: wpf-admin/admin.php:26 wpf-admin/admin.php:28 wpf-admin/dashboard.php:138
|
69 |
#: wpf-admin/options-tabs/styles.php:16 wpf-admin/options.php:15
|
70 |
+
#: wpf-includes/wpf-hooks.php:1638 wpf-includes/wpf-phrases.php:123
|
71 |
msgid "Forums"
|
72 |
msgstr ""
|
73 |
|
74 |
#: wpf-admin/admin.php:29 wpf-includes/wpf-hooks.php:22
|
75 |
+
#: wpf-includes/wpf-hooks.php:1654
|
76 |
msgid "Settings"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: wpf-admin/admin.php:30 wpf-includes/wpf-hooks.php:1663
|
80 |
msgid "Tools"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: wpf-admin/admin.php:31 wpf-includes/wpf-hooks.php:1672
|
84 |
msgid "Moderation"
|
85 |
msgstr ""
|
86 |
|
87 |
#: wpf-admin/admin.php:32 wpf-admin/dashboard.php:150 wpf-admin/member.php:10
|
88 |
+
#: wpf-admin/options.php:18 wpf-includes/wpf-hooks.php:1681
|
89 |
#: wpf-includes/wpf-phrases.php:178
|
90 |
msgid "Members"
|
91 |
msgstr ""
|
92 |
|
93 |
#: wpf-admin/admin.php:33 wpf-admin/usergroup.php:8
|
94 |
+
#: wpf-includes/wpf-hooks.php:1690
|
95 |
msgid "Usergroups"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: wpf-admin/admin.php:34 wpf-includes/wpf-hooks.php:1706
|
99 |
#: wpf-includes/wpf-phrases.php:600
|
100 |
msgid "Phrases"
|
101 |
msgstr ""
|
102 |
|
103 |
+
#: wpf-admin/admin.php:35 wpf-includes/wpf-hooks.php:1722
|
104 |
#: wpf-includes/wpf-phrases.php:601
|
105 |
msgid "Themes"
|
106 |
msgstr ""
|
107 |
|
108 |
#: wpf-admin/admin.php:36 wpf-admin/options.php:23
|
109 |
+
#: wpf-includes/wpf-hooks.php:1731 wpf-includes/wpf-phrases.php:25
|
110 |
msgid "Addons"
|
111 |
msgstr ""
|
112 |
|
172 |
msgstr ""
|
173 |
|
174 |
#: wpf-admin/dashboard.php:142 wpf-admin/options-tabs/styles.php:22
|
175 |
+
#: wpf-includes/class-forums.php:606 wpf-includes/wpf-phrases.php:339
|
176 |
msgid "Topics"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: wpf-admin/dashboard.php:146 wpf-includes/class-forums.php:606
|
180 |
#: wpf-includes/wpf-phrases.php:233
|
181 |
msgid "Posts"
|
182 |
msgstr ""
|
240 |
msgid "Delete User Cache"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: wpf-admin/forum.php:13 wpf-includes/functions.php:769
|
244 |
#: wpf-includes/wpf-phrases.php:302
|
245 |
msgid "Show on screen"
|
246 |
msgstr ""
|
270 |
msgid "Number of Columns"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: wpf-admin/forum.php:32 wpf-includes/functions.php:783
|
274 |
#: wpf-includes/wpf-phrases.php:275
|
275 |
msgid "Screen Options"
|
276 |
msgstr ""
|
355 |
msgstr ""
|
356 |
|
357 |
#: wpf-admin/forum.php:153 wpf-admin/themes.php:73
|
358 |
+
#: wpf-admin/tools-tabs/antispam.php:139 wpf-admin/usergroup.php:37
|
359 |
+
#: wpf-admin/usergroup.php:133 wpf-includes/wpf-hooks.php:1057
|
360 |
#: wpf-includes/wpf-phrases.php:66
|
361 |
msgid "Delete"
|
362 |
msgstr ""
|
363 |
|
364 |
#: wpf-admin/forum.php:154 wpf-admin/usergroup.php:39
|
365 |
+
#: wpf-includes/class-forums.php:612 wpf-includes/wpf-phrases.php:356
|
366 |
msgid "View"
|
367 |
msgstr ""
|
368 |
|
458 |
msgid "Admin"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: wpf-admin/options-tabs/accesses.php:32 wpf-includes/class-forums.php:608
|
462 |
+
#: wpf-includes/functions.php:601 wpf-includes/wpf-phrases.php:382
|
463 |
msgid "edit"
|
464 |
msgstr ""
|
465 |
|
469 |
"to this access will lost all forum permissions."
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: wpf-admin/options-tabs/accesses.php:34 wpf-includes/class-forums.php:610
|
473 |
+
#: wpf-includes/functions.php:619 wpf-includes/functions.php:629
|
474 |
#: wpf-includes/wpf-phrases.php:381
|
475 |
msgid "delete"
|
476 |
msgstr ""
|
585 |
|
586 |
#: wpf-admin/options-tabs/emails.php:99 wpf-admin/options-tabs/features.php:71
|
587 |
#: wpf-admin/options-tabs/forums.php:16 wpf-admin/options-tabs/general.php:82
|
588 |
+
#: wpf-admin/options-tabs/members.php:128 wpf-admin/options-tabs/posts.php:67
|
589 |
+
#: wpf-admin/options-tabs/styles.php:93 wpf-admin/tools-tabs/antispam.php:180
|
590 |
#: wpf-admin/tools-tabs/cleanup.php:49 wpf-includes/wpf-phrases.php:345
|
591 |
msgid "Update Options"
|
592 |
msgstr ""
|
1264 |
msgid "Directory"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
+
#: wpf-admin/tools-tabs/antispam.php:139
|
1268 |
msgid "Delete this file"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
+
#: wpf-admin/tools-tabs/antispam.php:139
|
1272 |
msgid "Are you sure you want to permanently delete this file?"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
+
#: wpf-admin/tools-tabs/antispam.php:150
|
1276 |
msgid "Click to delete Blue marked files"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
+
#: wpf-admin/tools-tabs/antispam.php:151
|
1280 |
msgid ""
|
1281 |
"Are you sure you want to delete all BLUE marked files listed here. Please "
|
1282 |
"download Wordpress /wp-content/uploads/wpforo/ folder to your local computer "
|
1283 |
"before deleting files, this is not undoable."
|
1284 |
msgstr ""
|
1285 |
|
1286 |
+
#: wpf-admin/tools-tabs/antispam.php:152 wpf-admin/tools-tabs/antispam.php:158
|
1287 |
+
#: wpf-admin/tools-tabs/antispam.php:164 wpf-admin/tools-tabs/antispam.php:170
|
1288 |
msgid "Delete All"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
+
#: wpf-admin/tools-tabs/antispam.php:155
|
1292 |
msgid "Click to delete Orange marked files"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
+
#: wpf-admin/tools-tabs/antispam.php:157
|
1296 |
msgid ""
|
1297 |
"Are you sure you want to delete all ORANGE marked files listed here. Please "
|
1298 |
"download Wordpress /wp-content/uploads/wpforo/ folder to your local computer "
|
1299 |
"before deleting files, this is not undoable."
|
1300 |
msgstr ""
|
1301 |
|
1302 |
+
#: wpf-admin/tools-tabs/antispam.php:161
|
1303 |
msgid "Click to delete Red marked files"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
+
#: wpf-admin/tools-tabs/antispam.php:163
|
1307 |
msgid ""
|
1308 |
"Are you sure you want to delete all RED marked files listed here. Please "
|
1309 |
"download Wordpress /wp-content/uploads/wpforo/ folder to your local computer "
|
1310 |
"before deleting files, this is not undoable."
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: wpf-admin/tools-tabs/antispam.php:167
|
1314 |
msgid "Click to delete Dark Red marked files"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
+
#: wpf-admin/tools-tabs/antispam.php:169
|
1318 |
msgid ""
|
1319 |
"Are you sure you want to delete all DARK RED marked files listed here. "
|
1320 |
"Please download Wordpress /wp-content/uploads/wpforo/ folder to your local "
|
1415 |
msgid "Users will be join this usergroup"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
+
#: wpf-includes/class-forums.php:607
|
1419 |
msgid "Add a new SubForum"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
+
#: wpf-includes/class-forums.php:607
|
1423 |
msgid "Add a new Forum in this Category"
|
1424 |
msgstr ""
|
1425 |
|
1457 |
"another one."
|
1458 |
msgstr ""
|
1459 |
|
1460 |
+
#: wpf-includes/class-members.php:1129
|
1461 |
msgid "What should be done with wpForo content owned by this user?"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
+
#: wpf-includes/class-members.php:1131
|
1465 |
msgid "What should be done with wpForo content owned by these users?"
|
1466 |
msgstr ""
|
1467 |
|
1468 |
+
#: wpf-includes/class-members.php:1135
|
1469 |
msgid "Delete all wpForo content."
|
1470 |
msgstr ""
|
1471 |
|
1472 |
+
#: wpf-includes/class-members.php:1137
|
1473 |
msgid "Attribute all content to:"
|
1474 |
msgstr ""
|
1475 |
|
1526 |
msgid "Open link in a new tab"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: wpf-includes/class-template.php:1091 wpf-includes/wpf-phrases.php:328
|
1530 |
msgid "Theme file not readable"
|
1531 |
msgstr ""
|
1532 |
|
1542 |
msgid "You are not permitted to view this attachment"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
+
#: wpf-includes/functions-installation.php:815
|
1546 |
msgid "Start Profile Synchronization"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
+
#: wpf-includes/functions-installation.php:815
|
1550 |
msgid "Continue Synchronization"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
+
#: wpf-includes/functions-installation.php:818
|
1554 |
msgid ""
|
1555 |
"This process may take a few seconds or dozens of minutes, please be patient "
|
1556 |
"and don't close this page."
|
1557 |
msgstr ""
|
1558 |
|
1559 |
+
#: wpf-includes/functions-installation.php:819
|
1560 |
msgid ""
|
1561 |
"You can permanently disable this message in Dashboard > Forums > Features "
|
1562 |
"admin page."
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: wpf-includes/functions-installation.php:821
|
1566 |
msgid "wpForo Forum Installation | "
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: wpf-includes/functions-installation.php:822
|
1570 |
msgid ""
|
1571 |
"Forum users' profile data are not synchronized yet, this step is required! "
|
1572 |
"Please click the button below to complete installation."
|
1610 |
msgid "Display with Avatars"
|
1611 |
msgstr ""
|
1612 |
|
1613 |
+
#: wpf-includes/functions.php:366
|
1614 |
msgid "Unapproved"
|
1615 |
msgstr ""
|
1616 |
|
1617 |
+
#: wpf-includes/functions.php:367
|
1618 |
msgid "Published"
|
1619 |
msgstr ""
|
1620 |
|
1621 |
+
#: wpf-includes/functions.php:376 wpf-includes/wpf-phrases.php:594
|
1622 |
msgid "Active"
|
1623 |
msgstr ""
|
1624 |
|
1625 |
+
#: wpf-includes/functions.php:377
|
1626 |
msgid "Banned"
|
1627 |
msgstr ""
|
1628 |
|
1629 |
+
#: wpf-includes/functions.php:390 wpf-includes/functions.php:688
|
1630 |
#: wpf-includes/wpf-phrases.php:50
|
1631 |
msgid "Bulk Actions"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
+
#: wpf-includes/functions.php:395 wpf-includes/functions.php:774
|
1635 |
#: wpf-includes/wpf-phrases.php:36
|
1636 |
msgid "Apply"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
+
#: wpf-includes/functions.php:404 wpf-includes/wpf-phrases.php:301
|
1640 |
msgid "Show all forums"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
+
#: wpf-includes/functions.php:417 wpf-includes/wpf-phrases.php:351
|
1644 |
msgid "filter by group"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
+
#: wpf-includes/functions.php:429
|
1648 |
msgid "filter by status"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
+
#: wpf-includes/functions.php:445
|
1652 |
msgid "filter by package"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
+
#: wpf-includes/functions.php:474
|
1656 |
msgid "filter by user"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
+
#: wpf-includes/functions.php:494 wpf-includes/functions.php:696
|
1660 |
#: wpf-includes/wpf-phrases.php:386
|
1661 |
msgid "item"
|
1662 |
msgstr ""
|
1663 |
|
1664 |
+
#: wpf-includes/functions.php:527 wpf-includes/functions.php:543
|
1665 |
#: wpf-includes/wpf-phrases.php:285
|
1666 |
msgid "Select All"
|
1667 |
msgstr ""
|
1668 |
|
1669 |
+
#: wpf-includes/functions.php:532 wpf-includes/functions.php:548
|
1670 |
msgid "Type"
|
1671 |
msgstr ""
|
1672 |
|
1673 |
+
#: wpf-includes/functions.php:605 wpf-includes/wpf-phrases.php:384
|
1674 |
msgid "edit user"
|
1675 |
msgstr ""
|
1676 |
|
1677 |
+
#: wpf-includes/functions.php:609 wpf-includes/wpf-phrases.php:383
|
1678 |
msgid "edit profile"
|
1679 |
msgstr ""
|
1680 |
|
1681 |
+
#: wpf-includes/functions.php:614
|
1682 |
msgid "unban user"
|
1683 |
msgstr ""
|
1684 |
|
1685 |
+
#: wpf-includes/functions.php:614
|
1686 |
msgid "ban user"
|
1687 |
msgstr ""
|
1688 |
|
1689 |
+
#: wpf-includes/functions.php:614
|
1690 |
msgid "Are you sure, you want to unban this user?"
|
1691 |
msgstr ""
|
1692 |
|
1693 |
+
#: wpf-includes/functions.php:614
|
1694 |
msgid "Are you sure, you want to ban this user?"
|
1695 |
msgstr ""
|
1696 |
|
1697 |
+
#: wpf-includes/functions.php:619 wpf-includes/functions.php:629
|
1698 |
#: wpf-includes/wpf-phrases.php:67
|
1699 |
msgid "Delete this item"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
+
#: wpf-includes/functions.php:619 wpf-includes/functions.php:629
|
1703 |
#: wpf-includes/wpf-phrases.php:41
|
1704 |
msgid "Are you sure you whant to DELETE this item?"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
+
#: wpf-includes/functions.php:624
|
1708 |
msgid "unapprove this item"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
+
#: wpf-includes/functions.php:624
|
1712 |
msgid "Approve this item"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
+
#: wpf-includes/functions.php:624
|
1716 |
msgid "unapprove"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
+
#: wpf-includes/functions.php:624
|
1720 |
msgid "approve"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: wpf-includes/functions.php:646 wpf-includes/functions.php:647
|
1724 |
#: wpf-includes/wpf-phrases.php:405
|
1725 |
msgid "view"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
+
#: wpf-includes/functions.php:667
|
1729 |
msgid "Topic"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
+
#: wpf-includes/functions.php:667
|
1733 |
msgid "Post"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
+
#: wpf-includes/functions.php:680 wpf-includes/wpf-phrases.php:201
|
1737 |
msgid "No items found"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
#: wpf-includes/functions.php:773 wpf-includes/wpf-phrases.php:141
|
1741 |
msgid "Items"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
+
#: wpf-includes/functions.php:1067
|
1745 |
#, php-format
|
1746 |
msgid "Could not write file %s"
|
1747 |
msgstr ""
|
1760 |
msgid "Uninstall"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
+
#: wpf-includes/wpf-hooks.php:1056 wpf-includes/wpf-phrases.php:188
|
1764 |
msgid "Move"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
+
#: wpf-includes/wpf-hooks.php:1091
|
1768 |
msgid "Clear"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
+
#: wpf-includes/wpf-hooks.php:1091
|
1772 |
msgid "Default"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
+
#: wpf-includes/wpf-hooks.php:1091
|
1776 |
msgid "Select Color"
|
1777 |
msgstr ""
|
1778 |
|
1779 |
+
#: wpf-includes/wpf-hooks.php:1114
|
1780 |
msgid ""
|
1781 |
"IMPORTANT: wpForo can't work with default permalink, please change permalink "
|
1782 |
"structure"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: wpf-includes/wpf-hooks.php:1135 wpf-includes/wpf-phrases.php:413
|
1786 |
msgid "wpForo Usergroup"
|
1787 |
msgstr ""
|
1788 |
|
1789 |
+
#: wpf-includes/wpf-hooks.php:1143 wpf-includes/wpf-phrases.php:412
|
1790 |
msgid "wpForo User Timezone"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
+
#: wpf-includes/wpf-hooks.php:1332 wpf-includes/wpf-hooks.php:1421
|
1794 |
msgid "Please Moderate: "
|
1795 |
msgstr ""
|
1796 |
|
1797 |
+
#: wpf-includes/wpf-hooks.php:1333
|
1798 |
msgid ""
|
1799 |
"This topic is currently unapproved. You can approve topics in Dashboard "
|
1800 |
"» Forums » Moderation admin page."
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: wpf-includes/wpf-hooks.php:1422
|
1804 |
msgid ""
|
1805 |
"This post is currently unapproved. You can approve posts in Dashboard "
|
1806 |
"» Forums » Moderation admin page."
|
1807 |
msgstr ""
|
1808 |
|
1809 |
+
#: wpf-includes/wpf-hooks.php:1599 wpf-includes/wpf-hooks.php:1645
|
1810 |
msgid "New Forum"
|
1811 |
msgstr ""
|
1812 |
|
1813 |
+
#: wpf-includes/wpf-hooks.php:1607
|
1814 |
msgid "New User Group"
|
1815 |
msgstr ""
|
1816 |
|
1817 |
+
#: wpf-includes/wpf-hooks.php:1615 wpf-includes/wpf-hooks.php:1713
|
1818 |
msgid "New Phrase"
|
1819 |
msgstr ""
|
1820 |
|
1821 |
+
#: wpf-includes/wpf-hooks.php:1630
|
1822 |
msgid "Community"
|
1823 |
msgstr ""
|
1824 |
|
1825 |
+
#: wpf-includes/wpf-hooks.php:1697
|
1826 |
msgid "New UserGroup"
|
1827 |
msgstr ""
|
1828 |
|
3641 |
msgid "Submit"
|
3642 |
msgstr ""
|
3643 |
|
3644 |
+
#: wpf-includes/wpf-phrases.php:675
|
3645 |
+
msgid "Usergroup"
|
3646 |
+
msgstr ""
|
3647 |
+
|
3648 |
+
#: wpf-includes/wpf-phrases.php:676
|
3649 |
+
msgid "Rating Title"
|
3650 |
+
msgstr ""
|
3651 |
+
|
3652 |
+
#: wpf-includes/wpf-phrases.php:677
|
3653 |
+
msgid "User Title"
|
3654 |
+
msgstr ""
|
3655 |
+
|
3656 |
+
#: wpf-includes/wpf-phrases.php:678
|
3657 |
+
msgid "Anonymous"
|
3658 |
+
msgstr ""
|
3659 |
+
|
3660 |
#: wpforo.php:401
|
3661 |
msgid ""
|
3662 |
"Provides a safe way to communicate directly with other members. Messages are "
|
3682 |
msgstr ""
|
3683 |
|
3684 |
#. Plugin Name of the plugin/theme
|
3685 |
+
msgid "Forums - wpForo"
|
3686 |
msgstr ""
|
3687 |
|
3688 |
#. Plugin URI of the plugin/theme
|
wpf-themes/classic/layouts/1/forum.php
CHANGED
@@ -86,11 +86,11 @@
|
|
86 |
<ul>
|
87 |
<?php foreach($topics as $topic) : ?>
|
88 |
<?php $last_post = wpforo_post($topic['last_post']) ?>
|
89 |
-
<?php $member =
|
90 |
<li>
|
91 |
<div class="wpforo-last-topic-title" title="<?php $icon_title = $wpforo->tpl->icon('topic', $topic, false, 'title'); if( $icon_title ) echo esc_html($icon_title) ?>"><i class="fa <?php $wpforo->tpl->icon('topic', $topic); ?> wpfcl-0"></i>
|
92 |
<a href="<?php echo esc_url($last_post['url']) ?>"><?php echo esc_html(wpforo_text($topic['title'], 45, false)) ?></a></div>
|
93 |
-
<div class="wpforo-last-topic-user" title="<?php echo esc_attr($member['display_name']) ?>"
|
94 |
<div class="wpforo-last-topic-date"><?php wpforo_date($topic['modified']); ?></div>
|
95 |
<br class="wpf-clear" />
|
96 |
</li>
|
86 |
<ul>
|
87 |
<?php foreach($topics as $topic) : ?>
|
88 |
<?php $last_post = wpforo_post($topic['last_post']) ?>
|
89 |
+
<?php $member = wpforo_member($last_post); ?>
|
90 |
<li>
|
91 |
<div class="wpforo-last-topic-title" title="<?php $icon_title = $wpforo->tpl->icon('topic', $topic, false, 'title'); if( $icon_title ) echo esc_html($icon_title) ?>"><i class="fa <?php $wpforo->tpl->icon('topic', $topic); ?> wpfcl-0"></i>
|
92 |
<a href="<?php echo esc_url($last_post['url']) ?>"><?php echo esc_html(wpforo_text($topic['title'], 45, false)) ?></a></div>
|
93 |
+
<div class="wpforo-last-topic-user" title="<?php echo esc_attr($member['display_name']) ?>"><?php wpforo_member_link($member, 'by', 9); ?></div>
|
94 |
<div class="wpforo-last-topic-date"><?php wpforo_date($topic['modified']); ?></div>
|
95 |
<br class="wpf-clear" />
|
96 |
</li>
|
wpf-themes/classic/layouts/1/post.php
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
|
14 |
foreach($posts as $key => $post) : ?>
|
15 |
|
16 |
-
<?php $member =
|
17 |
<div id="post-<?php echo intval($post['postid']) ?>" class="post-wrap">
|
18 |
<div class="wpforo-post wpfcl-1">
|
19 |
<div class="wpf-left">
|
@@ -21,7 +21,7 @@
|
|
21 |
<div class="author-avatar"><?php echo $wpforo->member->avatar( $member, 'alt="'.esc_attr($member['display_name']).'"', 80, true ) ?></div>
|
22 |
<?php endif ?>
|
23 |
<div class="author-data">
|
24 |
-
<div class="author-name"><span><?php $wpforo->member->show_online_indicator($member['userid']) ?></span> 
|
25 |
<div class="author-title">
|
26 |
<?php wpforo_member_title($member) ?>
|
27 |
</div>
|
13 |
|
14 |
foreach($posts as $key => $post) : ?>
|
15 |
|
16 |
+
<?php $member = wpforo_member($post); ?>
|
17 |
<div id="post-<?php echo intval($post['postid']) ?>" class="post-wrap">
|
18 |
<div class="wpforo-post wpfcl-1">
|
19 |
<div class="wpf-left">
|
21 |
<div class="author-avatar"><?php echo $wpforo->member->avatar( $member, 'alt="'.esc_attr($member['display_name']).'"', 80, true ) ?></div>
|
22 |
<?php endif ?>
|
23 |
<div class="author-data">
|
24 |
+
<div class="author-name"><span><?php $wpforo->member->show_online_indicator($member['userid']) ?></span> <?php wpforo_member_link($member); ?></div>
|
25 |
<div class="author-title">
|
26 |
<?php wpforo_member_title($member) ?>
|
27 |
</div>
|
wpf-themes/classic/layouts/1/topic.php
CHANGED
@@ -14,15 +14,15 @@
|
|
14 |
<?php foreach($topics as $key => $topic) : ?>
|
15 |
|
16 |
<?php
|
17 |
-
$member =
|
18 |
if(isset($topic['last_post']) && $topic['last_post'] != 0){
|
19 |
$last_post = wpforo_post($topic['last_post']);
|
20 |
-
$last_poster = (
|
21 |
}
|
22 |
if(isset($topic['first_postid']) && $topic['first_postid'] != 0){
|
23 |
$first_post = wpforo_post($topic['first_postid']);
|
24 |
$intro_posts = $wpforo->post_options['layout_extended_intro_posts_count']; if( $intro_posts < 1 ){ $intro_posts = NULL; } else { $intro_posts = ($intro_posts > 1) ? ($intro_posts - 1) : $intro_posts = 0; }
|
25 |
-
$first_poster = (
|
26 |
$posts = $wpforo->post->get_posts( array('topicid' => $topic['topicid'], 'exclude' => $topic['first_postid'], 'order' => 'DESC', 'row_count' => $intro_posts) );
|
27 |
$posts = array_reverse($posts);
|
28 |
}
|
@@ -58,16 +58,16 @@
|
|
58 |
<ul>
|
59 |
<li>
|
60 |
<div class="wpforo-last-post-title"><i class="fa fa-comments fa-flip-horizontal fa-0x wpfcl-0"></i> <a href="<?php echo esc_url($first_post['url']) ?>"><?php echo esc_html( wpforo_text($first_post['body'], 50, false)) ?></a></div>
|
61 |
-
<div class="wpforo-last-post-user"
|
62 |
<div class="wpforo-last-post-date"><?php wpforo_date($first_post['created']); ?></div>
|
63 |
<br class="wpf-clear">
|
64 |
</li>
|
65 |
<?php if(!empty($posts) && is_array($posts)) : ?>
|
66 |
<?php foreach($posts as $post) : ?>
|
67 |
-
<?php $poster =
|
68 |
<li>
|
69 |
<div class="wpforo-last-post-title"><i class="fa fa-reply fa-rotate-180 fa-0x wpfcl-0"></i> <a href="<?php echo esc_url( wpforo_post($post['postid'], 'url') ); ?>" title="<?php wpforo_phrase('REPLY:') ?> <?php echo esc_html( wpforo_text($post['body'], 100, false)) ?>"><?php echo (( $post_body = esc_html(wpforo_text($post['body'], 50, FALSE)) ) ? $post_body : esc_html($post['title'])) ?></a></div>
|
70 |
-
<div class="wpforo-last-post-user"
|
71 |
<div class="wpforo-last-post-date"><?php wpforo_date($post['created']); ?></div>
|
72 |
<br class="wpf-clear">
|
73 |
</li>
|
14 |
<?php foreach($topics as $key => $topic) : ?>
|
15 |
|
16 |
<?php
|
17 |
+
$member = wpforo_member($topic);
|
18 |
if(isset($topic['last_post']) && $topic['last_post'] != 0){
|
19 |
$last_post = wpforo_post($topic['last_post']);
|
20 |
+
$last_poster = wpforo_member($last_post);
|
21 |
}
|
22 |
if(isset($topic['first_postid']) && $topic['first_postid'] != 0){
|
23 |
$first_post = wpforo_post($topic['first_postid']);
|
24 |
$intro_posts = $wpforo->post_options['layout_extended_intro_posts_count']; if( $intro_posts < 1 ){ $intro_posts = NULL; } else { $intro_posts = ($intro_posts > 1) ? ($intro_posts - 1) : $intro_posts = 0; }
|
25 |
+
$first_poster = wpforo_member($first_post);
|
26 |
$posts = $wpforo->post->get_posts( array('topicid' => $topic['topicid'], 'exclude' => $topic['first_postid'], 'order' => 'DESC', 'row_count' => $intro_posts) );
|
27 |
$posts = array_reverse($posts);
|
28 |
}
|
58 |
<ul>
|
59 |
<li>
|
60 |
<div class="wpforo-last-post-title"><i class="fa fa-comments fa-flip-horizontal fa-0x wpfcl-0"></i> <a href="<?php echo esc_url($first_post['url']) ?>"><?php echo esc_html( wpforo_text($first_post['body'], 50, false)) ?></a></div>
|
61 |
+
<div class="wpforo-last-post-user"><?php wpforo_member_link($first_poster, 'by %s', 9); ?></div>
|
62 |
<div class="wpforo-last-post-date"><?php wpforo_date($first_post['created']); ?></div>
|
63 |
<br class="wpf-clear">
|
64 |
</li>
|
65 |
<?php if(!empty($posts) && is_array($posts)) : ?>
|
66 |
<?php foreach($posts as $post) : ?>
|
67 |
+
<?php $poster = wpforo_member($post); ?>
|
68 |
<li>
|
69 |
<div class="wpforo-last-post-title"><i class="fa fa-reply fa-rotate-180 fa-0x wpfcl-0"></i> <a href="<?php echo esc_url( wpforo_post($post['postid'], 'url') ); ?>" title="<?php wpforo_phrase('REPLY:') ?> <?php echo esc_html( wpforo_text($post['body'], 100, false)) ?>"><?php echo (( $post_body = esc_html(wpforo_text($post['body'], 50, FALSE)) ) ? $post_body : esc_html($post['title'])) ?></a></div>
|
70 |
+
<div class="wpforo-last-post-user"><?php wpforo_member_link($poster, 'by %s', 9); ?></div>
|
71 |
<div class="wpforo-last-post-date"><?php wpforo_date($post['created']); ?></div>
|
72 |
<br class="wpf-clear">
|
73 |
</li>
|
wpf-themes/classic/layouts/2/forum.php
CHANGED
@@ -66,16 +66,24 @@
|
|
66 |
|
67 |
</div><!-- wpforo-forum-info -->
|
68 |
|
69 |
-
<?php if($forum['
|
70 |
-
<?php $member = $wpforo->member->get_member($forum['last_userid']) ?>
|
71 |
<?php $last_post = wpforo_post($forum['last_postid']) ?>
|
72 |
<?php $last_post_topic = wpforo_topic($last_post['topicid']) ?>
|
|
|
73 |
<div class="wpforo-last-post">
|
74 |
<p class="wpforo-last-post-title"><a href="<?php echo esc_url($last_post['url']) ?>"><?php wpforo_text($last_post_topic['title'], 30); ?></a></p>
|
75 |
-
<p class="wpforo-last-post-info"><?php
|
76 |
</div>
|
77 |
<?php if( wpforo_feature('avatars', $wpforo) ): ?>
|
78 |
-
<div class="wpforo-last-post-avatar"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
<?php endif; ?>
|
80 |
<br class="wpf-clear" />
|
81 |
<?php else: ?>
|
66 |
|
67 |
</div><!-- wpforo-forum-info -->
|
68 |
|
69 |
+
<?php if($forum['last_postid'] != 0) : ?>
|
|
|
70 |
<?php $last_post = wpforo_post($forum['last_postid']) ?>
|
71 |
<?php $last_post_topic = wpforo_topic($last_post['topicid']) ?>
|
72 |
+
<?php $member = wpforo_member($last_post) ?>
|
73 |
<div class="wpforo-last-post">
|
74 |
<p class="wpforo-last-post-title"><a href="<?php echo esc_url($last_post['url']) ?>"><?php wpforo_text($last_post_topic['title'], 30); ?></a></p>
|
75 |
+
<p class="wpforo-last-post-info"><?php wpforo_member_link($member, 'by'); ?>, <?php wpforo_date($forum['last_post_date']) ?></p>
|
76 |
</div>
|
77 |
<?php if( wpforo_feature('avatars', $wpforo) ): ?>
|
78 |
+
<div class="wpforo-last-post-avatar">
|
79 |
+
<?php if( isset($member['profile_url']) && $member['profile_url'] ): ?>
|
80 |
+
<a href="<?php echo esc_url($member['profile_url']) ?>">
|
81 |
+
<?php echo $wpforo->member->get_avatar($forum['last_userid'], 'alt="'.esc_attr($member['display_name']).'" title="'.esc_attr($member['display_name']).'"', 40) ?>
|
82 |
+
</a>
|
83 |
+
<?php else: ?>
|
84 |
+
<?php echo $wpforo->member->get_avatar($forum['last_userid'], 'alt="'.esc_attr($member['display_name']).'" title="'.esc_attr($member['display_name']).'"', 40) ?>
|
85 |
+
<?php endif; ?>
|
86 |
+
</div>
|
87 |
<?php endif; ?>
|
88 |
<br class="wpf-clear" />
|
89 |
<?php else: ?>
|
wpf-themes/classic/layouts/2/post.php
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
|
14 |
<?php foreach($posts as $key => $post) : ?>
|
15 |
|
16 |
-
<?php $member =
|
17 |
<div id="post-<?php echo intval($post['postid']) ?>" class="post-wrap">
|
18 |
<div class="wpforo-post wpfcl-1">
|
19 |
<div class="wpf-left">
|
@@ -21,7 +21,7 @@
|
|
21 |
<div class="author-avatar"><?php echo $wpforo->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"', 110, true) ?></div>
|
22 |
<?php endif; ?>
|
23 |
<div class="author-data">
|
24 |
-
<div class="author-name"><span><?php $wpforo->member->show_online_indicator($member['userid']) ?></span> 
|
25 |
<div class="wpf-member-profile-buttons">
|
26 |
<?php $wpforo->tpl->member_buttons($member) ?>
|
27 |
</div>
|
13 |
|
14 |
<?php foreach($posts as $key => $post) : ?>
|
15 |
|
16 |
+
<?php $member = wpforo_member($post); ?>
|
17 |
<div id="post-<?php echo intval($post['postid']) ?>" class="post-wrap">
|
18 |
<div class="wpforo-post wpfcl-1">
|
19 |
<div class="wpf-left">
|
21 |
<div class="author-avatar"><?php echo $wpforo->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"', 110, true) ?></div>
|
22 |
<?php endif; ?>
|
23 |
<div class="author-data">
|
24 |
+
<div class="author-name"><span><?php $wpforo->member->show_online_indicator($member['userid']) ?></span> <?php wpforo_member_link($member); ?></div>
|
25 |
<div class="wpf-member-profile-buttons">
|
26 |
<?php $wpforo->tpl->member_buttons($member) ?>
|
27 |
</div>
|
wpf-themes/classic/layouts/2/topic.php
CHANGED
@@ -16,10 +16,10 @@
|
|
16 |
<?php foreach($topics as $key => $topic) : ?>
|
17 |
|
18 |
<?php
|
19 |
-
$member =
|
20 |
if(isset($topic['last_post']) && $topic['last_post'] != 0){
|
21 |
$last_post = wpforo_post($topic['last_post']);
|
22 |
-
$last_poster = (
|
23 |
}
|
24 |
$classes = $wpforo->tpl->icon('topic', $topic, false);
|
25 |
$class = explode( ' ', $classes); $class = ( isset($class[0]) ) ? 'wpf-' . str_replace('fa-', '', $class[0]) : '';
|
@@ -28,15 +28,15 @@
|
|
28 |
<div class="topic-wrap <?php echo $class ?>">
|
29 |
<div class="wpforo-topic">
|
30 |
<?php if( wpforo_feature('avatars', $wpforo) ): ?>
|
31 |
-
<div class="wpforo-topic-avatar"><?php echo $wpforo->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"',
|
32 |
<?php endif; ?>
|
33 |
<div class="wpforo-topic-info">
|
34 |
<p class="wpforo-topic-title"><a href="<?php echo esc_url( wpforo_topic($topic['topicid'], 'url') ) ?>"><i class="fa fa-1x <?php echo $classes ?>" title="<?php $icon_title = $wpforo->tpl->icon('topic', $topic, false, 'title'); if( $icon_title ) echo esc_html($icon_title) ?>"></i> <?php echo esc_html($topic['title']) ?></a></p>
|
35 |
-
<p class="wpforo-topic-start-info wpfcl-2"
|
36 |
<div class="wpforo-topic-badges"><?php wpforo_hook('wpforo_topic_info_end', $topic); ?></div>
|
37 |
</div>
|
38 |
<?php if(isset($topic['last_post']) && $topic['last_post'] != 0) : ?>
|
39 |
-
<div class="wpforo-topic-stat-lastpost"><span><?php
|
40 |
<?php else: ?>
|
41 |
<div class="wpforo-topic-stat-lastpost"></span><?php wpforo_phrase('Replies not found') ?></div>
|
42 |
<?php endif; ?>
|
16 |
<?php foreach($topics as $key => $topic) : ?>
|
17 |
|
18 |
<?php
|
19 |
+
$member = wpforo_member($topic);
|
20 |
if(isset($topic['last_post']) && $topic['last_post'] != 0){
|
21 |
$last_post = wpforo_post($topic['last_post']);
|
22 |
+
$last_poster = wpforo_member($last_post);
|
23 |
}
|
24 |
$classes = $wpforo->tpl->icon('topic', $topic, false);
|
25 |
$class = explode( ' ', $classes); $class = ( isset($class[0]) ) ? 'wpf-' . str_replace('fa-', '', $class[0]) : '';
|
28 |
<div class="topic-wrap <?php echo $class ?>">
|
29 |
<div class="wpforo-topic">
|
30 |
<?php if( wpforo_feature('avatars', $wpforo) ): ?>
|
31 |
+
<div class="wpforo-topic-avatar"><?php echo $wpforo->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"', 48, true) ?></div>
|
32 |
<?php endif; ?>
|
33 |
<div class="wpforo-topic-info">
|
34 |
<p class="wpforo-topic-title"><a href="<?php echo esc_url( wpforo_topic($topic['topicid'], 'url') ) ?>"><i class="fa fa-1x <?php echo $classes ?>" title="<?php $icon_title = $wpforo->tpl->icon('topic', $topic, false, 'title'); if( $icon_title ) echo esc_html($icon_title) ?>"></i> <?php echo esc_html($topic['title']) ?></a></p>
|
35 |
+
<p class="wpforo-topic-start-info wpfcl-2"><?php wpforo_member_link($member); ?>, <?php wpforo_date($topic['created']); ?></p>
|
36 |
<div class="wpforo-topic-badges"><?php wpforo_hook('wpforo_topic_info_end', $topic); ?></div>
|
37 |
</div>
|
38 |
<?php if(isset($topic['last_post']) && $topic['last_post'] != 0) : ?>
|
39 |
+
<div class="wpforo-topic-stat-lastpost"><span><?php wpforo_member_link($last_poster, 'by'); ?> <a href="<?php echo esc_url($last_post['url']) ?>" title="<?php wpforo_phrase('View the latest post') ?>"><i class="fa fa-chevron-right fa-sx wpfcl-a"></i></a></span><br> <?php wpforo_date($last_post['created']); ?></div>
|
40 |
<?php else: ?>
|
41 |
<div class="wpforo-topic-stat-lastpost"></span><?php wpforo_phrase('Replies not found') ?></div>
|
42 |
<?php endif; ?>
|
wpf-themes/classic/layouts/3/forum.php
CHANGED
@@ -91,7 +91,7 @@
|
|
91 |
<div class="wpforo-last-topics-list">
|
92 |
<ul>
|
93 |
<?php foreach($topics as $topic) : ?>
|
94 |
-
<?php $member =
|
95 |
<li>
|
96 |
<div class="wpforo-last-topic wpfcl-2">
|
97 |
<div class="votes"><div class="count <?php echo $topic['votes'] == 0 ? "wpfcl-6" : "wpfbg-4 wpfcl-3" ?>"><?php echo intval($topic['votes']) ?></div><div class="wpforo-label <?php echo $topic['votes'] == 0 ? "wpfcl-6" : "wpfbg-4 wpfcl-3" ?>"><?php wpforo_phrase('Votes') ?></div></div>
|
@@ -100,7 +100,7 @@
|
|
100 |
</div>
|
101 |
<div class="wpforo-last-topic-title">
|
102 |
<a href="<?php echo esc_url( wpforo_topic($topic['topicid'], 'url') ) ?>"><?php echo esc_html($topic['title']) ?></a><br />
|
103 |
-
<span class="wpforo-last-topic-info wpfcl-2"><?php
|
104 |
</div>
|
105 |
<div class="wpforo-last-topic-posts wpfcl-2"><div class="count"><?php echo intval($topic['posts']) ?></div><div class="wpforo-label"><?php wpforo_phrase('replies') ?></div></div>
|
106 |
</li>
|
91 |
<div class="wpforo-last-topics-list">
|
92 |
<ul>
|
93 |
<?php foreach($topics as $topic) : ?>
|
94 |
+
<?php $member = wpforo_member($topic); ?>
|
95 |
<li>
|
96 |
<div class="wpforo-last-topic wpfcl-2">
|
97 |
<div class="votes"><div class="count <?php echo $topic['votes'] == 0 ? "wpfcl-6" : "wpfbg-4 wpfcl-3" ?>"><?php echo intval($topic['votes']) ?></div><div class="wpforo-label <?php echo $topic['votes'] == 0 ? "wpfcl-6" : "wpfbg-4 wpfcl-3" ?>"><?php wpforo_phrase('Votes') ?></div></div>
|
100 |
</div>
|
101 |
<div class="wpforo-last-topic-title">
|
102 |
<a href="<?php echo esc_url( wpforo_topic($topic['topicid'], 'url') ) ?>"><?php echo esc_html($topic['title']) ?></a><br />
|
103 |
+
<span class="wpforo-last-topic-info wpfcl-2"><?php wpforo_member_link($member, 'by'); ?>, <?php wpforo_date($topic['modified']); ?></span>
|
104 |
</div>
|
105 |
<div class="wpforo-last-topic-posts wpfcl-2"><div class="count"><?php echo intval($topic['posts']) ?></div><div class="wpforo-label"><?php wpforo_phrase('replies') ?></div></div>
|
106 |
</li>
|
wpf-themes/classic/layouts/3/post.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
<?php foreach($posts as $key => $post ) : $is_topic = ( $key ? FALSE : TRUE ); ?>
|
13 |
|
14 |
<?php if($post['parentid'] == 0): ?>
|
15 |
-
<?php $member =
|
16 |
<div id="post-<?php echo intval($post['postid']) ?>" class="post-wrap <?php if( !$post['is_first_post'] ) echo 'wpf-answer-wrap' ?>">
|
17 |
<div class="wpforo-post wpfcl-1">
|
18 |
<div class="wpf-left">
|
@@ -81,7 +81,7 @@
|
|
81 |
<div class="wpforo-box-l3a-left"><?php echo $wpforo->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"', 96, true) ?></div>
|
82 |
<?php else: $rsz = 'style="margin-left:10px;"'; endif; ?>
|
83 |
<div class="wpforo-box-l3a-right" <?php echo $rsz; //This is a HTML content// ?>>
|
84 |
-
<span class="author-name"
|
85 |
<span class="author-title">
|
86 |
<?php wpforo_member_title($member) ?>
|
87 |
</span><br />
|
@@ -116,7 +116,7 @@
|
|
116 |
$comments = $wpforo->post->get_posts( array( 'parentid' => $post['postid'] ) );
|
117 |
if(is_array($comments) && !empty($comments)):
|
118 |
foreach($comments as $comment) : ?>
|
119 |
-
<?php $comment_member =
|
120 |
<div id="post-<?php echo intval($comment['postid']) ?>" class="comment-wrap">
|
121 |
<div class="wpforo-comment wpfcl-1">
|
122 |
<div class="wpf-left">
|
@@ -126,8 +126,7 @@
|
|
126 |
<div class="wpforo-comment-content">
|
127 |
<?php echo wpforo_content_filter( wpforo_kses($comment['body'], 'post') ) ?>
|
128 |
<div class="wpforo-comment-footer">
|
129 |
-
<span class="wpfcl-0" style="white-space:nowrap"><?php
|
130 |
-
<?php echo esc_html($comment_member['display_name']) ?></a>
|
131 |
<?php wpforo_date($comment['created']); ?></span>
|
132 |
<?php do_action( 'wpforo_tpl_post_loop_after_content', $comment, $comment_member ) ?>
|
133 |
<?php wpforo_post_edited($comment); ?>
|
12 |
<?php foreach($posts as $key => $post ) : $is_topic = ( $key ? FALSE : TRUE ); ?>
|
13 |
|
14 |
<?php if($post['parentid'] == 0): ?>
|
15 |
+
<?php $member = wpforo_member($post); ?>
|
16 |
<div id="post-<?php echo intval($post['postid']) ?>" class="post-wrap <?php if( !$post['is_first_post'] ) echo 'wpf-answer-wrap' ?>">
|
17 |
<div class="wpforo-post wpfcl-1">
|
18 |
<div class="wpf-left">
|
81 |
<div class="wpforo-box-l3a-left"><?php echo $wpforo->member->avatar($member, 'alt="'.esc_attr($member['display_name']).'"', 96, true) ?></div>
|
82 |
<?php else: $rsz = 'style="margin-left:10px;"'; endif; ?>
|
83 |
<div class="wpforo-box-l3a-right" <?php echo $rsz; //This is a HTML content// ?>>
|
84 |
+
<span class="author-name"><?php wpforo_member_link($member); ?></span> <span><?php $wpforo->member->show_online_indicator($member['userid']) ?></span><br />
|
85 |
<span class="author-title">
|
86 |
<?php wpforo_member_title($member) ?>
|
87 |
</span><br />
|
116 |
$comments = $wpforo->post->get_posts( array( 'parentid' => $post['postid'] ) );
|
117 |
if(is_array($comments) && !empty($comments)):
|
118 |
foreach($comments as $comment) : ?>
|
119 |
+
<?php $comment_member = wpforo_member($comment); ?>
|
120 |
<div id="post-<?php echo intval($comment['postid']) ?>" class="comment-wrap">
|
121 |
<div class="wpforo-comment wpfcl-1">
|
122 |
<div class="wpf-left">
|
126 |
<div class="wpforo-comment-content">
|
127 |
<?php echo wpforo_content_filter( wpforo_kses($comment['body'], 'post') ) ?>
|
128 |
<div class="wpforo-comment-footer">
|
129 |
+
<span class="wpfcl-0" style="white-space:nowrap"><?php wpforo_member_link($comment_member, 'by'); ?>
|
|
|
130 |
<?php wpforo_date($comment['created']); ?></span>
|
131 |
<?php do_action( 'wpforo_tpl_post_loop_after_content', $comment, $comment_member ) ?>
|
132 |
<?php wpforo_post_edited($comment); ?>
|
wpf-themes/classic/layouts/3/topic.php
CHANGED
@@ -13,10 +13,10 @@
|
|
13 |
<?php foreach($topics as $key => $topic) : ?>
|
14 |
|
15 |
<?php
|
16 |
-
$member =
|
17 |
if(isset($topic['last_post']) && $topic['last_post']){
|
18 |
$last_post = wpforo_post($topic['last_post']);
|
19 |
-
$last_poster = (
|
20 |
}
|
21 |
$topic_url = wpforo_topic($topic['topicid'], 'url');
|
22 |
$classes = $wpforo->tpl->icon('topic', $topic, false);
|
@@ -29,7 +29,7 @@
|
|
29 |
<?php endif; ?>
|
30 |
<div class="wpforo-topic-info">
|
31 |
<p class="wpforo-topic-title"><a href="<?php echo esc_url($topic_url) ?>"><i class="fa fa-1x <?php echo $classes ?>" title="<?php $icon_title = $wpforo->tpl->icon('topic', $topic, false, 'title'); if( $icon_title ) echo esc_html($icon_title) ?>"></i> <?php wpforo_text($topic['title'], 70); ?></a></p>
|
32 |
-
<p class="wpforo-topic-start-info wpfcl-2"
|
33 |
<div class="wpforo-topic-badges"><?php wpforo_hook('wpforo_topic_info_end', $topic); ?></div>
|
34 |
</div>
|
35 |
<div class="wpforo-topic-status wpfcl-2">
|
@@ -38,7 +38,7 @@
|
|
38 |
<div class="views"><div class="count"><?php echo intval($topic['views']) ?></div><div class="wpforo-label"><?php wpforo_phrase('Views') ?></div></div>
|
39 |
</div>
|
40 |
<?php if(isset($topic['last_post']) && $topic['last_post']) : ?>
|
41 |
-
<div class="wpforo-topic-stat-lastpost"><span style="white-space:nowrap"><?php wpforo_phrase('by') ?> 
|
42 |
<?php else: ?>
|
43 |
<div class="wpforo-topic-stat-lastpost"><?php wpforo_phrase('Replies not found') ?></div>
|
44 |
<?php endif; ?>
|
13 |
<?php foreach($topics as $key => $topic) : ?>
|
14 |
|
15 |
<?php
|
16 |
+
$member = wpforo_member($topic);
|
17 |
if(isset($topic['last_post']) && $topic['last_post']){
|
18 |
$last_post = wpforo_post($topic['last_post']);
|
19 |
+
$last_poster = wpforo_member($last_post);
|
20 |
}
|
21 |
$topic_url = wpforo_topic($topic['topicid'], 'url');
|
22 |
$classes = $wpforo->tpl->icon('topic', $topic, false);
|
29 |
<?php endif; ?>
|
30 |
<div class="wpforo-topic-info">
|
31 |
<p class="wpforo-topic-title"><a href="<?php echo esc_url($topic_url) ?>"><i class="fa fa-1x <?php echo $classes ?>" title="<?php $icon_title = $wpforo->tpl->icon('topic', $topic, false, 'title'); if( $icon_title ) echo esc_html($icon_title) ?>"></i> <?php wpforo_text($topic['title'], 70); ?></a></p>
|
32 |
+
<p class="wpforo-topic-start-info wpfcl-2"><?php wpforo_member_link($member); ?>, <?php wpforo_date($topic['created']); ?></p>
|
33 |
<div class="wpforo-topic-badges"><?php wpforo_hook('wpforo_topic_info_end', $topic); ?></div>
|
34 |
</div>
|
35 |
<div class="wpforo-topic-status wpfcl-2">
|
38 |
<div class="views"><div class="count"><?php echo intval($topic['views']) ?></div><div class="wpforo-label"><?php wpforo_phrase('Views') ?></div></div>
|
39 |
</div>
|
40 |
<?php if(isset($topic['last_post']) && $topic['last_post']) : ?>
|
41 |
+
<div class="wpforo-topic-stat-lastpost"><span style="white-space:nowrap"><?php wpforo_phrase('by') ?> <?php wpforo_member_link($last_poster, '', 9); ?> <a href="<?php echo esc_url($last_post['url']) ?>" title="<?php wpforo_phrase('View the latest post') ?>"><i class="fa fa-chevron-right fa-sx wpfcl-a"></i></a></span><br> <?php wpforo_date($last_post['created']); ?></div>
|
42 |
<?php else: ?>
|
43 |
<div class="wpforo-topic-stat-lastpost"><?php wpforo_phrase('Replies not found') ?></div>
|
44 |
<?php endif; ?>
|
wpf-themes/classic/members.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
<h2 id="wpforo-title"><?php wpforo_phrase('Forum Members') ?></h2>
|
6 |
<div class="wpforo-members-wrap">
|
7 |
<?php if( $wpforo->perm->usergroup_can('vmem') ): ?>
|
8 |
-
<div class="wpforo-members-search">
|
9 |
<form action="<?php echo wpforo_home_url('members') ?>" method="get">
|
10 |
<?php wpforo_make_hidden_fields_from_url( wpforo_home_url('members') ) ?>
|
11 |
<input placeholder="<?php wpforo_phrase('Insert member name or email') ?>" required="TRUE" type="text" name="wpfms" class="wpf-member-search-field wpfw-40" value="<?php echo esc_attr($wpfms) ?>" />
|
5 |
<h2 id="wpforo-title"><?php wpforo_phrase('Forum Members') ?></h2>
|
6 |
<div class="wpforo-members-wrap">
|
7 |
<?php if( $wpforo->perm->usergroup_can('vmem') ): ?>
|
8 |
+
<div class="wpforo-members-search">
|
9 |
<form action="<?php echo wpforo_home_url('members') ?>" method="get">
|
10 |
<?php wpforo_make_hidden_fields_from_url( wpforo_home_url('members') ) ?>
|
11 |
<input placeholder="<?php wpforo_phrase('Insert member name or email') ?>" required="TRUE" type="text" name="wpfms" class="wpf-member-search-field wpfw-40" value="<?php echo esc_attr($wpfms) ?>" />
|
wpf-themes/classic/search.php
CHANGED
@@ -105,7 +105,7 @@
|
|
105 |
<td class="wpf-spost-title"><a href="<?php echo esc_url($wpforo->post->get_post_url($postid)) ?>" title="<?php wpforo_phrase('View entire post') ?>"><?php echo esc_html($title) ?> <i class="fa fa-chevron-right" style="font-weight:100; font-size:11px;"></i></a></td>
|
106 |
<td class="wpf-spost-result wpfcl-5"><?php echo ( isset($matches) ? round($matches) : '' ) ?> <?php wpforo_phrase('relevance') ?></td>
|
107 |
<td class="wpf-spost-date"><?php wpforo_date($created); ?></td>
|
108 |
-
<td class="wpf-spost-user"><?php $user =
|
109 |
<td class="wpf-spost-forum"><?php $forum = $wpforo->forum->get_forum($forumid); echo esc_html($forum['title']); ?></td>
|
110 |
</tr>
|
111 |
<tr class="wpf-ptr">
|
105 |
<td class="wpf-spost-title"><a href="<?php echo esc_url($wpforo->post->get_post_url($postid)) ?>" title="<?php wpforo_phrase('View entire post') ?>"><?php echo esc_html($title) ?> <i class="fa fa-chevron-right" style="font-weight:100; font-size:11px;"></i></a></td>
|
106 |
<td class="wpf-spost-result wpfcl-5"><?php echo ( isset($matches) ? round($matches) : '' ) ?> <?php wpforo_phrase('relevance') ?></td>
|
107 |
<td class="wpf-spost-date"><?php wpforo_date($created); ?></td>
|
108 |
+
<td class="wpf-spost-user"><?php $user = wpforo_member($post); echo ( $user['display_name'] ? esc_html($user['display_name']) : esc_html(urldecode($user['user_nicename'])) ); ?></td>
|
109 |
<td class="wpf-spost-forum"><?php $forum = $wpforo->forum->get_forum($forumid); echo esc_html($forum['title']); ?></td>
|
110 |
</tr>
|
111 |
<tr class="wpf-ptr">
|
wpf-themes/classic/style-rtl.css
CHANGED
@@ -165,6 +165,9 @@ RTL Style of Classic Theme
|
|
165 |
#wpforo-wrap .wpforo-post .wpf-mod-message{display:inline-block; float:right; text-align:right;}
|
166 |
#wpforo-wrap .wpforo-post .wpf-left .author-title span{display:block}
|
167 |
#wpforo-wrap .wpforo-post-content .wpf-video, #wpforo-wrap .wpforo-post-content .wpf-video iframe{max-width: 98%;}
|
|
|
|
|
|
|
168 |
|
169 |
/****************************************************/
|
170 |
/********* wpForo Layout 1 (Extended Layout) ********/
|
@@ -412,6 +415,8 @@ RTL Style of Classic Theme
|
|
412 |
#wpforo-wrap .wpfl-3 .wpf-positive{font-size:28px; cursor: pointer;}
|
413 |
#wpforo-wrap .wpfl-3 .wpf-negative{font-size:28px; cursor: pointer;}
|
414 |
#wpforo-wrap .wpfl-3 .wpf-vote-number{font-size:28px; line-height:30px;}
|
|
|
|
|
415 |
|
416 |
/******************************************************/
|
417 |
/********************* PROFILE ************************/
|
@@ -468,6 +473,8 @@ RTL Style of Classic Theme
|
|
468 |
#wpforo-wrap .wpforo-profile-wrap .wpf-username{font-weight:bold; font-size:15px;}
|
469 |
#wpforo-wrap .wpforo-profile-wrap input[type="file"].wpf-custom-avatar{ width:40%; vertical-align:baseline; margin-right:10px; }
|
470 |
#wpforo-wrap .wpforo-profile-wrap img.wpf-custom-avatar-img{ vertical-align:bottom; max-height:40px; max-width:100px; border:1px solid #ccc; padding:2px; margin-top:5px; }
|
|
|
|
|
471 |
|
472 |
/******************************************************/
|
473 |
/******************** ACTIVITY ************************/
|
165 |
#wpforo-wrap .wpforo-post .wpf-mod-message{display:inline-block; float:right; text-align:right;}
|
166 |
#wpforo-wrap .wpforo-post .wpf-left .author-title span{display:block}
|
167 |
#wpforo-wrap .wpforo-post-content .wpf-video, #wpforo-wrap .wpforo-post-content .wpf-video iframe{max-width: 98%;}
|
168 |
+
#wpforo-wrap .wpf-member-title{ display:block; cursor:default; }
|
169 |
+
#wpforo-wrap .wpf-member-title.wpfut{ display:inline-block!important; font-size:11px; line-height:15px; padding:2px 15px; margin:5px auto; border:1px solid #dddddd;}
|
170 |
+
|
171 |
|
172 |
/****************************************************/
|
173 |
/********* wpForo Layout 1 (Extended Layout) ********/
|
415 |
#wpforo-wrap .wpfl-3 .wpf-positive{font-size:28px; cursor: pointer;}
|
416 |
#wpforo-wrap .wpfl-3 .wpf-negative{font-size:28px; cursor: pointer;}
|
417 |
#wpforo-wrap .wpfl-3 .wpf-vote-number{font-size:28px; line-height:30px;}
|
418 |
+
#wpforo-wrap .wpfl-3 .wpf-member-title {cursor: default;display: inline;}
|
419 |
+
#wpforo-wrap .wpfl-3 .wpf-member-title.wpfut {margin: 0 0 3px;}
|
420 |
|
421 |
/******************************************************/
|
422 |
/********************* PROFILE ************************/
|
473 |
#wpforo-wrap .wpforo-profile-wrap .wpf-username{font-weight:bold; font-size:15px;}
|
474 |
#wpforo-wrap .wpforo-profile-wrap input[type="file"].wpf-custom-avatar{ width:40%; vertical-align:baseline; margin-right:10px; }
|
475 |
#wpforo-wrap .wpforo-profile-wrap img.wpf-custom-avatar-img{ vertical-align:bottom; max-height:40px; max-width:100px; border:1px solid #ccc; padding:2px; margin-top:5px; }
|
476 |
+
#wpforo-wrap .wpforo-profile-wrap .wpf-member-title{display: inline-block;}
|
477 |
+
#wpforo-wrap .wpforo-profile-wrap span.wpf-member-title.wpfut{ display:none!important; }
|
478 |
|
479 |
/******************************************************/
|
480 |
/******************** ACTIVITY ************************/
|
wpf-themes/classic/style.css
CHANGED
@@ -171,6 +171,8 @@ Author: gVectors Team
|
|
171 |
#wpforo-wrap .wpforo-post .wpf-mod-message{display:inline-block; float:left; text-align:left;}
|
172 |
#wpforo-wrap .wpforo-post .wpf-left .author-title span{display:block}
|
173 |
#wpforo-wrap .wpforo-post-content .wpf-video, #wpforo-wrap .wpforo-post-content .wpf-video iframe{max-width: 98%;}
|
|
|
|
|
174 |
|
175 |
/****************************************************/
|
176 |
/********* wpForo Layout 1 (Extended Layout) ********/
|
@@ -418,6 +420,8 @@ Author: gVectors Team
|
|
418 |
#wpforo-wrap .wpfl-3 .wpf-positive{font-size:28px; cursor: pointer;}
|
419 |
#wpforo-wrap .wpfl-3 .wpf-negative{font-size:28px; cursor: pointer;}
|
420 |
#wpforo-wrap .wpfl-3 .wpf-vote-number{font-size:28px; line-height:30px;}
|
|
|
|
|
421 |
|
422 |
/******************************************************/
|
423 |
/********************* PROFILE ************************/
|
@@ -474,6 +478,8 @@ Author: gVectors Team
|
|
474 |
#wpforo-wrap .wpforo-profile-wrap .wpf-username{font-weight:bold; font-size:15px;}
|
475 |
#wpforo-wrap .wpforo-profile-wrap input[type="file"].wpf-custom-avatar{ width:40%; vertical-align:baseline; margin-left:10px; }
|
476 |
#wpforo-wrap .wpforo-profile-wrap img.wpf-custom-avatar-img{ vertical-align:bottom; max-height:40px; max-width:100px; border:1px solid #ccc; padding:2px; margin-top:5px; }
|
|
|
|
|
477 |
|
478 |
/******************************************************/
|
479 |
/******************** ACTIVITY ************************/
|
171 |
#wpforo-wrap .wpforo-post .wpf-mod-message{display:inline-block; float:left; text-align:left;}
|
172 |
#wpforo-wrap .wpforo-post .wpf-left .author-title span{display:block}
|
173 |
#wpforo-wrap .wpforo-post-content .wpf-video, #wpforo-wrap .wpforo-post-content .wpf-video iframe{max-width: 98%;}
|
174 |
+
#wpforo-wrap .wpf-member-title{ display:block; cursor:default; }
|
175 |
+
#wpforo-wrap .wpf-member-title.wpfut{ display:inline-block!important; font-size:11px; line-height:15px; padding:2px 15px; margin:5px auto; border:1px solid #dddddd;}
|
176 |
|
177 |
/****************************************************/
|
178 |
/********* wpForo Layout 1 (Extended Layout) ********/
|
420 |
#wpforo-wrap .wpfl-3 .wpf-positive{font-size:28px; cursor: pointer;}
|
421 |
#wpforo-wrap .wpfl-3 .wpf-negative{font-size:28px; cursor: pointer;}
|
422 |
#wpforo-wrap .wpfl-3 .wpf-vote-number{font-size:28px; line-height:30px;}
|
423 |
+
#wpforo-wrap .wpfl-3 .wpf-member-title {cursor: default;display: inline;}
|
424 |
+
#wpforo-wrap .wpfl-3 .wpf-member-title.wpfut {margin: 0 0 3px;}
|
425 |
|
426 |
/******************************************************/
|
427 |
/********************* PROFILE ************************/
|
478 |
#wpforo-wrap .wpforo-profile-wrap .wpf-username{font-weight:bold; font-size:15px;}
|
479 |
#wpforo-wrap .wpforo-profile-wrap input[type="file"].wpf-custom-avatar{ width:40%; vertical-align:baseline; margin-left:10px; }
|
480 |
#wpforo-wrap .wpforo-profile-wrap img.wpf-custom-avatar-img{ vertical-align:bottom; max-height:40px; max-width:100px; border:1px solid #ccc; padding:2px; margin-top:5px; }
|
481 |
+
#wpforo-wrap .wpforo-profile-wrap .wpf-member-title{display: inline-block;}
|
482 |
+
#wpforo-wrap .wpforo-profile-wrap .wpf-member-title.wpfut{ display:none!important; }
|
483 |
|
484 |
/******************************************************/
|
485 |
/******************** ACTIVITY ************************/
|
wpforo.php
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
* Plugin Name: Forums - wpForo
|
4 |
-
* Plugin URI:
|
5 |
* Description: Forums wpForo is a new generation of forum plugins. It's full-fledged forum solution for your community. Comes with multiple modern forum layouts.
|
6 |
* Author: gVectors Team (A. Chakhoyan, R. Hovhannisyan)
|
7 |
-
* Author URI:
|
8 |
-
* Version: 1.3.
|
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.3.
|
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' );
|
@@ -63,8 +63,8 @@ if( !class_exists( 'wpForo' ) ) {
|
|
63 |
|
64 |
public function __construct(){
|
65 |
$this->options();
|
66 |
-
|
67 |
-
|
68 |
|
69 |
public function init(){
|
70 |
$this->cache->init();
|
@@ -398,10 +398,11 @@ if( !class_exists( 'wpForo' ) ) {
|
|
398 |
|
399 |
//ADDONS/////////////////////////////////////////////////////
|
400 |
$wpforo->addons = array(
|
401 |
-
'pm' => array('version' => '1.0.0', 'requires' => '1.1.2', 'class' => 'wpForoPMs', 'title' => 'Private Messages', 'thumb' => WPFORO_URL . '/wpf-assets/addons/' . 'pm' . '/header.png', 'desc' => __('Provides a safe way to communicate directly with other members. Messages are private and can only be viewed by conversation participants.', 'wpforo'), 'url' => '
|
402 |
-
'
|
403 |
-
'
|
404 |
-
'
|
|
|
405 |
);
|
406 |
$wp_version = get_bloginfo('version'); if (version_compare($wp_version, '4.2.0', '>=')) { add_action('wp_ajax_dismiss_wpforo_addon_note', array($wpforo->notice, 'dismissAddonNote')); add_action('admin_notices', array($wpforo->notice, 'addonNote'));}
|
407 |
/////////////////////////////////////////////////////////////
|
1 |
<?php
|
2 |
/*
|
3 |
* Plugin Name: Forums - wpForo
|
4 |
+
* Plugin URI: https://wpforo.com
|
5 |
* Description: Forums wpForo is a new generation of forum plugins. It's 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.3.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.3.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' );
|
63 |
|
64 |
public function __construct(){
|
65 |
$this->options();
|
66 |
+
$this->setup();
|
67 |
+
}
|
68 |
|
69 |
public function init(){
|
70 |
$this->cache->init();
|
398 |
|
399 |
//ADDONS/////////////////////////////////////////////////////
|
400 |
$wpforo->addons = array(
|
401 |
+
'pm' => array('version' => '1.0.0', 'requires' => '1.1.2', 'class' => 'wpForoPMs', 'title' => 'Private Messages', 'thumb' => WPFORO_URL . '/wpf-assets/addons/' . 'pm' . '/header.png', 'desc' => __('Provides a safe way to communicate directly with other members. Messages are private and can only be viewed by conversation participants.', 'wpforo'), 'url' => 'https://gvectors.com/product/wpforo-private-messages/'),
|
402 |
+
'cross' => array('version' => '1.0.0', 'requires' => '1.3.1', 'class' => 'wpForoCrossPosting', 'title' => '"Forum - Blog" Cross Posting', 'thumb' => WPFORO_URL . '/wpf-assets/addons/' . 'cross' . '/header.png', 'desc' => __('Blog to Forum and Forum to Blog content synchronization. Blog posts with Forum topics and Blog comments with Forum replies.', 'wpforo'), 'url' => 'https://gvectors.com/product/wpforo-cross-posting/'),
|
403 |
+
'attachments' => array('version' => '1.0.0', 'requires' => '1.1.0', 'class' => 'wpForoAttachments', 'title' => 'Advanced Attachments', 'thumb' => WPFORO_URL . '/wpf-assets/addons/' . 'attachments' . '/header.png', 'desc' => __('Adds an advanced file attachment system to forum topics and posts. AJAX powered media uploading and displaying system with user specific library.', 'wpforo'), 'url' => 'https://gvectors.com/product/wpforo-advanced-attachments/'),
|
404 |
+
'embeds' => array('version' => '1.0.2', 'requires' => '1.1.0', 'class' => 'wpForoEmbeds', 'title' => 'Embeds', 'thumb' => WPFORO_URL . '/wpf-assets/addons/' . 'embeds' . '/header.png', 'desc' => __('Allows to embed hundreds of video, social network, audio and photo content providers in forum topics and posts.', 'wpforo'), 'url' => 'https://gvectors.com/product/wpforo-embeds/'),
|
405 |
+
'ad-manager' => array('version' => '1.0.0', 'requires' => '1.2.0', 'class' => 'wpForoAD', 'title' => 'Ads Manager', 'thumb' => WPFORO_URL . '/wpf-assets/addons/' . 'ad-manager' . '/header.png', 'desc' => __('Ads Manager is a powerful yet simple advertisement management system, that allows you to add adverting banners between forums, topics and posts.', 'wpforo'), 'url' => 'https://gvectors.com/product/wpforo-ad-manager/'),
|
406 |
);
|
407 |
$wp_version = get_bloginfo('version'); if (version_compare($wp_version, '4.2.0', '>=')) { add_action('wp_ajax_dismiss_wpforo_addon_note', array($wpforo->notice, 'dismissAddonNote')); add_action('admin_notices', array($wpforo->notice, 'addonNote'));}
|
408 |
/////////////////////////////////////////////////////////////
|