=== Forum Press Zone ===
Contributors: presszone-developers
Tags: forum, community, discussion, discussion-board, bulletin board
Requires at least: 6.0
Tested up to: 6.9
Stable tag: 1.0.0
Requires PHP: 8.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

The professional community platform for your audience. Build a fast discussion hub that grows with your community.

== Description ==

**Forum Press Zone** is a fast and reliable community platform that transforms your site into a thriving discussion hub. Built with a custom database architecture, it provides a snappy experience for users and is designed to handle growth smoothly.

= 🚀 Why Forum Press Zone? =

Most community solutions store data in a way that can become slow over time. Forum Press Zone uses purpose-built database tables with optimized indexes to deliver consistent performance as your community grows.

= 🏆 Key Advantages Over Other Forum Plugins =

**Performance That Scales**
- Custom InnoDB tables with optimized indexes for O(1) metadata access
- Native Redis and Memcached integration for object caching
- Lazy-loaded assets—only load what each page needs
- Zero jQuery dependencies on frontend
- Fast page loads even as your community grows

**Modern User Experience**
- Clean, mobile-responsive design out of the box
- Dark mode toggle for users who prefer it
- Smooth animations and transitions
- Notifications for new replies and mentions
- Intuitive WYSIWYG editor with drag-and-drop attachments

**Complete Feature Set**
- Everything you need built-in—no addon purchases required
- Private messaging, polls, reactions, ranks—all included
- Fully translatable with RTL support
- WPML compatible for multilingual communities

**Developer Friendly**
- Clean PHP 8.1+ namespaced codebase
- Full REST API for headless integrations
- Hookable architecture for custom extensions
- GPL licensed—fork, modify, contribute

---

= 💬 DISCUSSION FEATURES =

**Nested Conversations (Reddit-Style)**
Threaded replies let discussions branch naturally. Users can reply directly to any comment, creating intuitive conversation trees that are easy to follow. Configure nesting depth from 1-20 levels.

**Rich Text Editor**
Full TinyMCE integration with:
- Bold, italic, underline, strikethrough formatting
- Bullet and numbered lists
- Blockquotes with multi-level nesting
- Code blocks with syntax highlighting
- Emoji picker with quick reactions (👍 ❤️ 😄 🎉 🔥 👏)
- Link insertion and URL auto-detection
- Optional: Switch between WYSIWYG and plain textarea

**Smart Quoting**
Select any text in a post and click "Quote" to insert it in your reply. Quotes preserve attribution and support multi-level nesting. Configure maximum quote depth to prevent quote pyramids.

**oEmbed Support**
Paste YouTube, Vimeo, Twitter, or other supported URLs on their own line and they automatically become rich embeds. Videos play inline, tweets show full formatting.

---

= ⭐ ENGAGEMENT FEATURES =

**Three Reputation Systems**
Choose what fits your community:
1. **Upvotes & Downvotes** – Classic Reddit-style voting with karma tracking
2. **Upvotes Only** – Simple like-based system (no negativity)
3. **Emoji Reactions** – Express emotions with Like, Love, Haha, Wow, Sad, Angry

Each reaction type has configurable point values affecting user reputation. Set daily vote limits to prevent abuse.

**Interactive Polls**
Create polls when starting threads:
- Multiple choice or single selection
- Optional close date for time-limited voting
- Results visible after voting or when poll closes
- Vote counts and percentages displayed

**@Mentions**
Type @ followed by a username to mention them. Mentioned users receive notifications and can click to jump directly to the post.

**User Ranks & Badges**
Automatic rank progression based on post count:
- 🌱 Newbie (0+ posts)
- 👤 Member (10+ posts)
- ⭐ Regular (50+ posts)
- 🌟 Active Member (100+ posts)
- 💫 Senior Member (250+ posts)
- 🏆 Veteran (500+ posts)
- 👑 Legend (1000+ posts)

Staff get special badges: ⚡ Admin, 🛡️ Super Moderator, ⚖️ Moderator. Custom rank icons can be assigned to individual users.

**Thread Subscriptions**
Users can watch threads to receive notifications when new replies are posted. Email notifications can be sent instantly, as daily digests, or weekly summaries based on user preference.

---

= 📨 PRIVATE MESSAGING =

**Conversation-Based Inbox**
Modern messaging interface inspired by email clients:
- Threaded conversations, not individual messages
- Unread badges with real-time polling
- Star important conversations
- Search message history
- Multi-participant group conversations

**Privacy Controls**
- Users can disable PMs in their account settings
- Muted users cannot send messages
- Blocked conversations stay hidden

---

= 📎 FILE ATTACHMENTS =

**Drag-and-Drop Uploads**
Drag files directly onto the editor or click to browse. Multiple files can be uploaded simultaneously.

**Smart File Handling**
- **Images**: JPG, PNG, GIF, WebP with inline preview
- **Documents**: PDF, TXT with download links
- **Archives**: ZIP, RAR, 7Z, TAR, GZ with file icons

**Security & Limits**
- MIME type validation (not just extension checking)
- Configurable size limits per category (images, documents, archives)
- Maximum attachment size setting in admin
- Files stored outside web root (optional)

---

= 🛡️ MODERATION SUITE =

**Report System**
Users can report posts with categorized reasons:
- Spam
- Harassment
- Off-topic
- Inappropriate content
- Other (with text explanation)

Reports appear in the admin moderation queue with context and quick actions.

**Warning System**
Issue formal warnings to users that:
- Stack up (3 warnings = automatic action)
- Include private notes for moderator reference
- Track warning history per user
- Can trigger automatic mutes or bans

**Mute System**
Mute disruptive users:
- Prevents posting but allows reading
- Temporary (1 hour to 1 year) or permanent
- User sees a "You are muted" message when trying to post

**Ban System**
Full ban management:
- Temporary or permanent bans
- IP-based bans to prevent alt accounts
- Ban reason stored and shown to user
- Automatic email notification to banned user
- Ban history with moderator actions logged

**User Lookup**
Search any user to see:
- Account overview (join date, post count, reputation)
- Warning history
- Ban history
- Recent posts
- Quick action buttons (warn, mute, ban)

---

= 👥 STAFF & PERMISSIONS =

**Role Hierarchy**
- **Administrators**: Full forum control
- **Super Moderators**: Moderate all forums globally
- **Forum Moderators**: Moderate assigned forums only

**Granular Permission Matrix**
Tri-state permissions (Allow / Inherit / Never) for each user role:
- View forum
- View thread
- Create thread
- Reply to thread
- Edit own post
- Delete own post
- Upload attachments
- React to posts
- Use signature
- Send private messages

**Per-Forum Permissions**
Override global permissions for specific forums. Create:
- Members-only areas
- Read-only archives
- Staff discussion boards
- VIP sections

---

= 🎨 DESIGN & THEMING =

**Built-in Theme Customization**
No CSS knowledge required:
- Primary color picker
- Surface and background gradients
- Text color controls (primary, secondary, muted)
- Role colors (Admin, Super Mod, Moderator)

**Dark Mode**
Enable dark mode toggle for users:
- Separate color palette for dark mode
- User preference saved across sessions
- Respects system preference (prefers-color-scheme)

**Custom CSS**
Add your own styles for complete control. CSS is injected after theme styles for easy overrides.

**Mobile Responsive**
Every element tested on phones and tablets:
- Touch-friendly tap targets
- Collapsible navigation
- Swipe gestures for actions
- Optimized font sizes

---

= 🔧 ADMIN DASHBOARD =

**Single-Page Application**
The admin interface is a lightning-fast SPA built with vanilla JavaScript:
- No page reloads between sections
- Instant search and filtering
- Smooth animations
- Minimal footprint (no React/Vue overhead)

**Dashboard Overview**
At-a-glance statistics:
- Total posts, threads, users
- Posts today/this week
- Pending reports count
- Active users graph

**Forum Manager**
Visual forum organization:
- Drag-and-drop ordering
- Nested categories
- Quick edit inline
- Assign moderators per forum

**Settings Organized by Category**
- **General**: Board title, URL slugs, posts per page, sorting
- **Reputation**: Choose voting system, set limits
- **Emails**: Customize templates with placeholders
- **Staff**: Manage super moderators
- **Spam**: reCAPTCHA, word filters, link restrictions
- **Cache**: Redis/Memcached configuration

**Tools**
- Rebuild post counts
- Clear caches
- Export/import settings
- Database maintenance

---

= 🔒 SECURITY FEATURES =

**reCAPTCHA v3 Integration**
Invisible bot protection on:
- Registration
- New threads
- Replies
- Private messages

Score-based detection blocks automated spam without annoying real users.

**Anti-Spam Measures**
- Configurable cooldowns between posts
- Word filter with comma-separated banned words
- Option to block external links in posts
- Option to block URLs in user profiles

**Rate Limiting**
- Topic cooldown (seconds between new threads)
- Reply cooldown (seconds between replies)
- Daily vote limit

**Core Security**
- All queries use $wpdb->prepare() (SQL injection protection)
- All outputs escaped with esc_html(), esc_attr(), esc_url()
- Nonce verification on all forms and AJAX
- Capability checks on all operations
- ABSPATH checks on all PHP files

---

= ⚡ PERFORMANCE FEATURES =

**Custom Database Schema**
Purpose-built tables for forum data:
- `nodes` – Categories and forums tree structure
- `threads` – Thread metadata with optimized indexes
- `posts` – Content with parent-child relationships
- `users_extended` – Custom profiles and reputation
- `conversations` – Private messaging backbone
- `subscriptions` – Thread watching
- `polls` – Voting data

**Object Caching**
Native integration with:
- **Redis** – Configure host, port, password, database index
- **Memcached** – Configure host and port
- **Object Cache** – Automatic fallback

Cache status visible in admin with one-click clear.

**Lazy Loading**
Assets loaded only when needed:
- CSS split by page type (index, thread list, single thread, inbox)
- JavaScript deferred and loaded in footer
- Images lazy-loaded with native loading="lazy"

---

= 🌍 INTERNATIONALIZATION =

**Fully Translatable**
Every string wrapped in translation functions. Includes:
- Gettext .pot template
- Translations for 10 languages
- RTL stylesheet support

**WPML Compatible**
- Proper text domain registration
- Language switcher support
- wpml-config.xml included

**Included Translations**
- Arabic (العربية)
- Chinese (中文)
- French (Français)
- German (Deutsch)
- Hebrew (עברית)
- Hindi (हिन्दी)
- Japanese (日本語)
- Dutch (Nederlands)
- Russian (Русский)
- Spanish (Español)

---

= 📧 EMAIL NOTIFICATIONS =

**Customizable Templates**
Edit email content for:
- Subscription notifications (new replies)
- Daily digest summaries
- Ban notifications

**Available Placeholders**
- {username} – Recipient's name
- {site_name} – Your site name
- {forum_url} – Forum homepage URL
- {thread_title} – Thread name (subscriptions)
- {thread_url} – Direct thread link (subscriptions)
- {author_name} – Who posted (subscriptions)
- {reason} – Ban reason (bans)
- {expires} – Ban expiry (bans)
- {digest_content} – Activity summary (digests)

---

= 📱 USER ACCOUNT FEATURES =

**Profile Customization**
- Avatar upload (or Gravatar fallback)
- Display name
- Website URL (if allowed)
- Location
- Bio/About me
- Signature (displayed under posts)

**Account Settings**
- Email notification preferences
- PM preferences (allow/block)
- Dark mode preference
- Timezone selection

**Activity History**
- View all your posts
- View your thread subscriptions
- See your reputation history

---

= 🎯 PERFECT FOR =

- **News sites** wanting reader discussions
- **Gaming communities** needing clan forums
- **Educational platforms** with student Q&A
- **Support forums** for products and services
- **Membership sites** adding community features
- **Enterprise intranets** needing internal discussion
- **Hobbyist communities** around any topic
- **Any site** outgrowing basic comments

---

= 📋 COMPLETE FEATURE CHECKLIST =

**Forums & Structure**
✅ Unlimited forums and categories
✅ Nested category hierarchy (unlimited depth)
✅ Per-forum permissions
✅ Per-forum moderators
✅ Drag-and-drop ordering
✅ SEO-friendly URLs

**Discussions**
✅ Threaded/nested replies (Reddit-style)
✅ WYSIWYG rich text editor
✅ Plain textarea fallback option
✅ Quote with attribution
✅ oEmbed for videos/tweets
✅ Configurable posts per page
✅ Multiple sort options (newest, oldest, most active)

**Engagement**
✅ Upvotes & downvotes
✅ Emoji reactions (6 types)
✅ Interactive polls
✅ @Mentions with notifications
✅ User ranks (7 levels + staff)
✅ Reputation/karma tracking
✅ Thread subscriptions

**Messaging**
✅ Private messaging system
✅ Conversation threads
✅ Group conversations
✅ Unread badges
✅ Star/archive conversations
✅ Message search

**Attachments**
✅ Drag-and-drop upload
✅ Image preview
✅ Document/archive support
✅ MIME type validation
✅ Size limits per type

**Moderation**
✅ Report system with queue
✅ Warning system with escalation
✅ Mute system (temp/perm)
✅ Ban system (temp/perm)
✅ IP bans
✅ User lookup tool
✅ Activity logging

**Permissions**
✅ User role integration
✅ Tri-state permission matrix
✅ Per-forum overrides
✅ Moderator hierarchy (Super Mod, Forum Mod)
✅ Guest viewing options

**Theming**
✅ Color picker customization
✅ Dark mode toggle
✅ Role-colored usernames
✅ Custom CSS support
✅ Mobile responsive
✅ RTL support

**Performance**
✅ Custom SQL schema
✅ Redis support
✅ Memcached support
✅ Lazy-loaded assets
✅ Object caching
✅ Optimized queries

**Security**
✅ reCAPTCHA v3
✅ Word filter
✅ Rate limiting
✅ SQL injection protection
✅ XSS protection
✅ CSRF protection
✅ Nonce verification

**Emails**
✅ Subscription notifications
✅ Daily/weekly digests
✅ Ban notifications
✅ Customizable templates
✅ Placeholder support

**Internationalization**
✅ Fully translatable
✅ 10 languages included
✅ WPML compatible
✅ RTL support

**Admin**
✅ Single-page dashboard
✅ Real-time statistics
✅ Visual forum manager
✅ User moderation tools
✅ Cache management
✅ Database tools

---

== External services ==

This plugin can connect to the following third-party services. All of them are **opt-in** and disabled by default. No data leaves your site unless you explicitly enable a feature.

= Google reCAPTCHA (optional anti-spam) =

When the reCAPTCHA anti-spam option is enabled in **Forum Press Zone → Settings → Spam**, the plugin verifies form submissions by sending the reCAPTCHA response token, the visitor's IP address, and your secret key to Google's verification API.

- Endpoint: `https://www.google.com/recaptcha/api/siteverify`
- Data sent: reCAPTCHA token, secret key, remote IP
- When sent: on every guest/user form submission while reCAPTCHA is enabled
- Provider: Google LLC
- Terms: [https://policies.google.com/terms](https://policies.google.com/terms)
- Privacy: [https://policies.google.com/privacy](https://policies.google.com/privacy)

= IndexNow (optional search-engine indexing) =

When IndexNow is enabled in **Forum Press Zone → Settings → IndexNow**, the plugin notifies participating search engines (Bing, Yandex, etc.) when new threads or posts are published, so they can index your content faster.

- Endpoint: `https://api.indexnow.org/indexnow`
- Data sent: the public URL of the new thread/post and your IndexNow verification key
- When sent: when a thread or post is created/updated, while IndexNow is enabled
- Provider: IndexNow (Microsoft Bing, Yandex, and partners)
- Terms: [https://www.indexnow.org/terms](https://www.indexnow.org/terms)
- Privacy: [https://www.indexnow.org/faq](https://www.indexnow.org/faq)

= oEmbed (user-triggered media embedding) =

When users paste a URL from a supported provider (YouTube, Vimeo, Twitter/X, etc.) on its own line in a post, the plugin calls WordPress's built-in oEmbed system to fetch the embed HTML from that provider's API endpoint.

- Endpoint: Varies by provider (e.g., `https://www.youtube.com/oembed`, `https://vimeo.com/api/oembed.json`)
- Data sent: The public URL of the content being embedded
- When sent: When a post containing a recognised embed URL is saved or previewed
- Provider: The respective media provider (Google/YouTube, Vimeo, Twitter/X, etc.)
- Note: This uses WordPress core's `wp_oembed_get()` function. See [WordPress oEmbed documentation](https://wordpress.org/documentation/article/embeds/) for the full provider list.

The plugin does **not** phone home, transmit analytics, or share user data with the plugin author.

---

== Installation ==

= Automatic Installation =

1. Go to **Plugins > Add New** in your admin panel
2. Search for "Forum Press Zone"
3. Click **Install Now**, then **Activate**
4. Navigate to **Forum Zone** in your admin menu to configure

= Manual Installation =

1. Download the plugin zip file
2. Go to **Plugins > Add New > Upload Plugin**
3. Choose the zip file and click **Install Now**
4. Activate the plugin
5. Go to **Forum Zone > Settings** to configure your forum

= After Activation =

1. **Set your forum title** under Forum Zone > Settings > General
2. **Create your first category** under Forum Zone > Forums
3. **Add forums** within your category
4. **Configure permissions** under Forum Zone > Permissions
5. Visit your forum at `yoursite.com/forums` (or your custom slug)

= Server Requirements =

- PHP 8.1 or higher (strict typing enabled)
- MySQL 5.7+ or MariaDB 10.3+
- Version 6.0 or higher
- `mbstring` PHP extension (recommended)
- Redis or Memcached (optional, for enhanced caching)

== Frequently Asked Questions ==

= How is this different from bbPress? =

Forum Press Zone uses a completely custom database architecture instead of standard post types. This means:
- **Faster queries** – Purpose-built tables with optimized indexes
- **Better scaling** – Handles millions of posts without slowdown
- **Richer features** – Nested replies, reactions, polls, messaging built-in
- **Modern admin** – Single-page app interface for management

= Can I migrate from bbPress or another forum? =

We're developing migration tools for popular forum plugins. Check our website for the latest migration guides and tools.

= Does it work with my theme? =

Forum Press Zone includes its own responsive templates that work independently of your theme. You can also override templates in your theme for full customization.

= How do I customize the appearance? =

Go to **Forum Zone > Design** to access the visual theme customizer. You can change colors, enable dark mode, set role colors, and add custom CSS—no coding required.

= Is it translation ready? =

Yes! Forum Press Zone is fully translatable and includes translations for 10 languages. WPML and other multilingual plugins are fully supported. RTL languages work out of the box.

= Can users upload files? =

Yes. Admins can configure allowed file types, maximum sizes, and storage limits. Images, documents, and archives are supported with MIME type validation.

= How do I enable spam protection? =

Go to **Forum Zone > Settings > Spam** and enter your Google reCAPTCHA v3 site key and secret. The plugin automatically protects posting, registration, and messaging.

= Does it support user ranks? =

Yes! Users automatically earn ranks based on post count (Newbie → Legend). Staff get special badges. Admins can assign custom rank icons to individual users.

= Can I restrict forums to certain users? =

Absolutely. Use the Permission Matrix to control what each user role can do. Create per-forum overrides for private forums, read-only archives, or staff-only areas.

= Is there email notification support? =

Yes. Users can subscribe to threads and receive notifications. Emails can be sent instantly, as daily digests, or weekly summaries. All templates are customizable.

= Does it cache properly? =

Forum Press Zone integrates with platform object caching. If you're using Redis or Memcached, the plugin automatically uses it. Configuration is available in Settings > Cache.

= How do I set up moderators? =

**Super Moderators** (global) are assigned in Settings > Staff. **Forum Moderators** are assigned per-forum in the Forum Manager. Both have moderation powers but different scopes.

= Can users disable private messages? =

Yes. Users can toggle PM availability in their account settings. Muted users also cannot send messages.

= Is there a REST API? =

Yes. Forum Press Zone exposes REST endpoints for all major operations, enabling headless integrations and custom applications.

== Screenshots ==

1. **Forum Index** – Clean, modern forum listing with category organization and post counts
2. **Thread View** – Nested replies with reactions, quotes, user ranks, and inline reply
3. **Private Messenger** – Conversation-based messaging with unread indicators and search
4. **Admin Dashboard** – At-a-glance stats, pending reports, and quick actions
5. **Forum Manager** – Drag-and-drop forum organization with moderator assignment
6. **Moderation Queue** – Review reports, issue warnings, and manage bans
7. **Permission Matrix** – Visual tri-state permission control by role
8. **Design Settings** – Color pickers, dark mode, and live preview
9. **User Profile** – Customizable profiles with activity history and settings
10. **Mobile View** – Fully responsive design with touch-friendly interactions

== Changelog ==

= 1.0.0 =
* Initial release.
* Professional community platform with threaded replies.
* Custom database tables for high performance.
* Integrated private messaging, polls, and reactions.
* Advanced moderation suite and permission matrix.
* Built-in dark mode and theme customization.

== Upgrade Notice ==

= 1.0.0 =
Initial release of Forum Press Zone.

== Additional Info ==

= Support =

For support questions, please open an issue on [GitHub](https://github.com/presszone/forum-press-zone).

= Contributing =

Forum Press Zone is open source! Contributions are welcome on [GitHub](https://github.com/presszone/forum-press-zone).
