PHP Classes

File: templates/recent_updates.twig

Recommend this page to a friend!
  Packages of Matthew Asham   Binkterm PHP   templates/recent_updates.twig   Download  
File: templates/recent_updates.twig
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Binkterm PHP
Bulletin board system based on the Web
Author: By
Last change:
Date: 5 days ago
Size: 21,424 bytes
 

Contents

Class file image Download
<div class="update-item mb-3" data-version="1.8.1" data-date="2026-02-14"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>User Activity Tracking &amp; Statistics</h6> <p class="mb-1 text-muted">Added a general-purpose activity event log that tracks logins, messages, file transfers, door plays, and nodelist lookups. New admin Activity Statistics page surfaces usage analytics with period filters and per-category breakdowns.</p> </div> <small class="text-muted">v1.8.1</small> </div> </div> <div class="update-item mb-3" data-version="1.9.3" data-date="2026-02-06"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>NetRealm RPG WebDoor Game</h6> <p class="mb-1 text-muted">New turn-based RPG game: fight monsters, level up to 50, collect loot with rarity tiers, equip gear, shop for items, and battle other players in PvP combat. Includes leaderboards, daily turns, and credits integration.</p> </div> <small class="text-muted">v1.9.3</small> </div> </div> <div class="update-item mb-3" data-version="1.9.2" data-date="2026-02-04"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>User Signatures & Taglines</h6> <p class="mb-1 text-muted">Added per-user signatures (up to 4 lines) and sysop-managed taglines selectable when composing netmail and echomail messages.</p> </div> <small class="text-muted">v1.9.2</small> </div> </div> <div class="update-item mb-3" data-version="1.7.7" data-date="2026-02-04"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>File Area Rule Automation</h6> <p class="mb-1 text-muted">Added a configurable rule engine for file areas, including macro-driven scripts, action handling, and detailed rule execution logs.</p> </div> <small class="text-muted">v1.7.7</small> </div> </div> <div class="update-item mb-3" data-version="1.7.5" data-date="2026-02-02"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-warning me-2">{{ t('ui.recent_updates.badge_fix', {}, locale, ['common']) }}</span>Binkp File Confirmation and Packet Headers</h6> <p class="mb-1 text-muted">Fixed M_GOT confirmation handling to prevent early session termination when EOB arrives before all file confirmations. Implemented proper FSC-0048 Type 2+ packet header format with point support for better compatibility with standard FTN mailers.</p> </div> <small class="text-muted">v1.7.5</small> </div> </div> <div class="update-item mb-3" data-version="1.7.5" data-date="2026-02-01"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Threading Performance & Memory Optimization</h6> <p class="mb-1 text-muted">Refactored message threading to use reply_to_id foreign keys instead of parsing kludge_lines, significantly reducing memory usage and improving query performance. Fixed pagination in threaded views.</p> </div> <small class="text-muted">v1.7.5</small> </div> </div> <div class="update-item mb-3" data-version="1.7.3" data-date="2026-01-30"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-warning me-2">{{ t('ui.recent_updates.badge_fix', {}, locale, ['common']) }}</span>Dashboard Stats Zero Count Bug</h6> <p class="mb-1 text-muted">Fixed dashboard showing zero unread messages due to incorrect timestamp initialization for new users.</p> </div> <small class="text-muted">v1.7.3</small> </div> </div> <div class="update-item mb-3" data-version="1.7.2" data-date="2026-01-30"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Custom Template Editor</h6> <p class="mb-1 text-muted">Admins can now edit templates in templates/custom directly from the web UI.</p> </div> <small class="text-muted">v1.7.2</small> </div> </div> <div class="update-item mb-3" data-version="1.7.2" data-date="2026-01-30"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Sysop-Only Echo Areas</h6> <p class="mb-1 text-muted">Echoarea configuration now supports a sysop access flag to restrict areas to administrators only.</p> </div> <small class="text-muted">v1.7.2</small> </div> </div> <div class="update-item mb-3" data-version="1.7.1" data-date="2026-01-30"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Credits Migration Enhancement</h6> <p class="mb-1 text-muted">Updated credits migration to grant 300 starting credits to existing users, ensuring everyone begins with a balance when the credits system is enabled.</p> </div> <small class="text-muted">v1.7.2</small> </div> </div> <div class="update-item mb-3" data-version="1.7.1" data-date="2026-01-30"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Credits System</h6> <p class="mb-1 text-muted">Added a configurable credits system with daily login bonuses, balances, and transaction logging.</p> </div> <small class="text-muted">v1.7.1</small> </div> </div> <div class="update-item mb-3" data-version="1.7.1" data-date="2026-01-30"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Credits Economy Rules</h6> <p class="mb-1 text-muted">Netmail now costs 1 credit and echomail posts earn 3 credits, with updated daily and approval bonuses.</p> </div> <small class="text-muted">v1.7.1</small> </div> </div> <div class="update-item mb-3" data-version="1.7.1" data-date="2026-01-29"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Ads Manager</h6> <p class="mb-1 text-muted">Admins can now upload and delete ANSI ads via the new Advertisements page (stored in bbs_ads).</p> </div> <small class="text-muted">v1.7.1</small> </div> </div> <div class="update-item mb-3" data-version="1.7.1" data-date="2026-01-29"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Echoarea Browsing</h6> <p class="mb-1 text-muted">Subscriptions now include a "View Messages" link so users can read echoareas without subscribing.</p> </div> <small class="text-muted">v1.7.1</small> </div> </div> <div class="update-item mb-3" data-version="1.7.0" data-date="2026-01-29"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>New Settings Pages</h6> <p class="mb-1 text-muted">Introduced refreshed admin settings pages with display preferences, session controls, system profile, and BBS feature toggles.</p> </div> <small class="text-muted">v1.7.1</small> </div> </div> <div class="update-item mb-3" data-version="1.7.0" data-date="2026-01-29"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>House Rules Modal</h6> <p class="mb-1 text-muted">Added a House Rules link in the footer and registration flow.</p> </div> <small class="text-muted">v1.7.0</small> </div> </div> <div class="update-item mb-3" data-version="1.7.0" data-date="2026-01-29"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Voting Booth Polls</h6> <p class="mb-1 text-muted">Added a voting booth on the dashboard with multi-poll navigation and vote-to-see-results flow.</p> </div> <small class="text-muted">v1.7.0</small> </div> </div> <div class="update-item mb-3" data-version="1.7.0" data-date="2026-01-29"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Shoutbox Wall</h6> <p class="mb-1 text-muted">Added a shoutbox under System News with moderation tools and pagination for older shouts.</p> </div> <small class="text-muted">v1.7.0</small> </div> </div> <div class="update-item mb-3" data-version="1.7.0" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Admin Daemon & Scheduler Flow</h6> <p class="mb-1 text-muted">Added an admin daemon with shared-secret auth and updated the scheduler to run polling and packet processing through it.</p> </div> <small class="text-muted">v1.7.0</small> </div> </div> <div class="update-item mb-3" data-version="1.7.0" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>ARCmail Bundle Support</h6> <p class="mb-1 text-muted">Inbound processing now supports ARCmail day bundles like .we1 via external extractors (7-Zip recommended).</p> </div> <small class="text-muted">v1.7.0</small> </div> </div> <div class="update-item mb-3" data-version="1.7.0" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Daemon Operations & Logs</h6> <p class="mb-1 text-muted">Added daemon PID defaults, Windows startup script, and consolidated Binkp logs via the admin daemon.</p> </div> <small class="text-muted">v1.7.0</small> </div> </div> <div class="update-item mb-3" data-version="1.6.8" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Chat History Paging & Cleanup</h6> <p class="mb-1 text-muted">Chat now supports loading older messages and includes a cleanup script to trim history per room or DM.</p> </div> <small class="text-muted">v1.6.8</small> </div> </div> <div class="update-item mb-3" data-version="1.6.8" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Multi-User Chat & Messaging</h6> <p class="mb-1 text-muted">Added real-time chat with rooms, direct messages, moderation tools (kick/ban), and unread indicators across the Messaging menu.</p> </div> <small class="text-muted">v1.6.8</small> </div> </div> <div class="update-item mb-3" data-version="1.6.8" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Webdoors Platform</h6> <p class="mb-1 text-muted">Introduced the Webdoors platform for drop-in games and services, including terminal and game integrations.</p> </div> <small class="text-muted">v1.6.8</small> </div> </div> <div class="update-item mb-3" data-version="1.6.8" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>ANSI Color Decoding & Linkification</h6> <p class="mb-1 text-muted">Message views now decode ANSI color sequences and automatically linkify URLs for easier reading.</p> </div> <small class="text-muted">v1.6.8</small> </div> </div> <div class="update-item mb-3" data-version="1.6.8" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-warning me-2">{{ t('ui.recent_updates.badge_fix', {}, locale, ['common']) }}</span>Echomail UX & Parsing Fixes</h6> <p class="mb-1 text-muted">Resolved multiple echomail issues including swipe behavior in wide messages and improved address parsing edge cases.</p> </div> <small class="text-muted">v1.6.8</small> </div> </div> <div class="update-item mb-3" data-version="1.6.8" data-date="2026-01-28"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-info me-2">{{ t('ui.recent_updates.badge_update', {}, locale, ['common']) }}</span>BBS Platform Identity</h6> <p class="mb-1 text-muted">BinktermPHP is now positioned as a full BBS platform (PHP = Public Home Point ;)).</p> </div> <small class="text-muted">v1.6.8</small> </div> </div> <div class="update-item mb-3" data-version="1.6.7" data-date="2026-01-22"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Multi-Network Support</h6> <p class="mb-1 text-muted">Added support for multiple FTN networks (FidoNet, FSXNet, AgoraNet, etc.) simultaneously. Echoareas, nodelists, and uplinks are now domain-aware. Uplink configuration supports per-network routing with the new 'me', 'domain', and 'networks' fields.</p> </div> <small class="text-muted">v1.6.7</small> </div> </div> <div class="update-item mb-3" data-version="1.6.7" data-date="2026-01-22"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Nodelist URL Macros</h6> <p class="mb-1 text-muted">Nodelist downloader now supports URL macros for dynamic URLs. Use |DAY| for day of year, |YEAR|, |YY|, |MONTH|, and |DATE| to construct date-based URLs like https://example.com/NODELIST.Z|DAY|</p> </div> <small class="text-muted">v1.6.7</small> </div> </div> <div class="update-item mb-3" data-version="1.6.6" data-date="2026-01-21"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Multi-Level Quote Coloring</h6> <p class="mb-1 text-muted">Messages now display quoted text in different colors based on nesting depth. Supports standard quotes (>, >>) and FidoNet-style initials quotes (MA>, CN>>>). Colors adapt to each theme. Toggle in Settings under "Quote Display".</p> </div> <small class="text-muted">v1.6.6</small> </div> </div> <div class="update-item mb-3" data-version="1.6.5" data-date="2026-01-20"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Template Customization System</h6> <p class="mb-1 text-muted">Added comprehensive template override system allowing sysops to customize the interface without modifying core files. Custom templates in templates/custom/ automatically override default templates. Includes local routes support via routes/local-routes.php for adding custom pages and endpoints.</p> </div> <small class="text-muted">v1.6.5</small> </div> </div> <div class="update-item mb-3" data-version="1.6.5" data-date="2026-01-20"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-primary me-2">{{ t('ui.recent_updates.badge_feature', {}, locale, ['common']) }}</span>Dark Theme Support</h6> <p class="mb-1 text-muted">Added configurable stylesheet system with dark theme support. Sysops can now configure custom CSS to style the interface, including full dark mode themes. Bootstrap 5 variables are fully supported for easy theming.</p> </div> <small class="text-muted">v1.6.5</small> </div> </div> <div class="update-item mb-3" data-version="1.6.5" data-date="2026-01-20"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>CHRS UTF-8 Kludge for Outgoing Messages</h6> <p class="mb-1 text-muted">Outgoing messages now include the CHRS: UTF-8 4 kludge line, properly identifying message encoding to receiving systems. This improves international character handling and compatibility with other FidoNet software.</p> </div> <small class="text-muted">v1.6.5</small> </div> </div> <div class="update-item mb-3" data-version="1.6.5" data-date="2026-01-20"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Echomail Maintenance Enhancements</h6> <p class="mb-1 text-muted">Enhanced echomail maintenance utility with proper cascade deletion for related tables, VACUUM ANALYZE for storage reclamation, and timing display for operations. Fixes issues with maintenance script hanging on large datasets.</p> </div> <small class="text-muted">v1.6.5</small> </div> </div> <div class="update-item mb-3" data-version="1.8.5" data-date="2026-01-30"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Server-side Unread Indicators</h6> <p class="mb-1 text-muted">Unread state for chat, netmail, and echomail icons now persists in the database for consistent notifications across devices.</p> </div> <small class="text-muted">v1.8.5</small> </div> </div> <div class="update-item mb-3" data-version="1.7.7" data-date="2026-02-04"> <div class="d-flex justify-content-between align-items-start"> <div> <h6 class="mb-1"><span class="badge bg-success me-2">{{ t('ui.recent_updates.badge_improvement', {}, locale, ['common']) }}</span>Default Tagline Preference</h6> <p class="mb-1 text-muted">Users can now set a default tagline in Settings, and compose screens preselect it when available.</p> </div> <small class="text-muted">v1.7.7</small> </div> </div>