Questioning Everything Propaganda

Home Tags
Login RSS
Initial Changelog

This codebase creates BookGram, a flat-file, PHP-based collaborative wiki or content management system themed after IBM OS/2 Warp 3.0.

It allows administrators and invited editors to create, edit, organize (in folders), and manage web pages using Markdown and basic HTML. Content is stored in .json (metadata) and .txt (revisions) files, eliminating the need for a database.

Key features include:

  • OS/2 Warp 3.0 aesthetic with a movable Launchpad menu.
  • File browser interface for navigating hierarchical content.
  • Version control for all page edits.
  • Permanent linking using unique page IDs (UUIDs).
  • User profiles with bios and photos.
  • Feature images for pages (usable as icons and in Open Graph tags).
  • File upload capability for images.
  • Admin panel for user management and site settings.
  • Search functionality.
  • RSS feed of recent pages.
  • Page hit and unique hit counting.
  • Responsive design for mobile devices.

BookGram Changelog


Version 2.06 (October 22, 2025)

  • UI: Abbreviated browser action buttons (Edit, Delete, Move, Rename) to single characters (E, D, M, R).
  • CSS: Adjusted padding, margins, and min-width on browser action buttons (.edit-button-small, .delete-button-small) for a tighter fit.

Version 2.05 (October 22, 2025)

  • Feature: Added printer-friendly output option for pages.
    • Created public/css/print.css to hide non-content elements and optimize styling for printing.
    • Added <link> for print.css in header.php.
    • Added a "Print" button to page.php using window.print().
    • Added CSS rules for .page-actions-bar and .print-button.
  • UI: Corrected Launchpad layout: Made the second divider vertical on desktop. Updated header.php HTML and style.css.
  • Bugfix: Corrected PHP constant typo (.SELF_FIRST to ::SELF_FIRST) in uuid_migrate.php.
  • Bugfix: Corrected slug truncation issue caused by rtrim() in functions.php (get_directory_contents and delete_folder_recursive). Replaced with substr().
  • Bugfix: Corrected permissions issue preventing editors from renaming/moving files by adjusting require_auth checks in index.php's admin-action route (later reverted in v2.05.1).
  • v2.05.1: Reverted permission changes in index.php; move, rename, delete actions are admin-only again. Updated browser.php to hide buttons based on admin role.

Version 2.04 (October 22, 2025)

  • Feature: Implemented static/permanent links using UUIDs.
    • Added UUID_INDEX_FILE constant and UUID management functions (generate_page_uuid, load_uuid_index, save_uuid_index, update_uuid_index) to functions.php.
    • Modified get_page_data, save_page_content, delete_page, delete_folder_recursive, rename_item, move_item to handle UUID assignment and index updates.
    • Added uuid: link parsing (preg_replace_callback) to page.php.
    • Added UUID display to page.php metadata.
    • Added optional uuid_migrate.php script.
    • Added optional fix_revisions.php script.
  • Feature: Added file/folder moving functionality.
    • Added move_item() function to functions.php.
    • Added move-item action to index.php.
    • Added "Mov" button and JavaScript moveItem() function to browser.php.

Version 2.03 (October 22, 2025)

  • Feature: Added Feature Image and Profile Photo uploads.
    • Added UPLOADS_DIR constant and handle_image_upload() function to functions.php.
    • Modified save_page_content and update_user_profile to accept image URLs.
    • Modified index.php (save and profile-save routes) to handle uploads and select final URL.
    • Added enctype and file input fields to edit.php and profile-edit.php.
    • Modified header.php OG image logic to prioritize feature/profile images.
    • Added .profile-photo-preview style to style.css.
  • UI/CSS: Implemented responsive design using @media queries in style.css.
    • Adjusted Launchpad, Footer, Windows, Browser items, Forms, and Profile layout for mobile.
    • Added viewport meta tag to header.php.
    • Refined mobile Launchpad into a fixed, single, scrollable row with OS/2 colors.
    • Ensured OS/2 theme colors/borders persist on mobile.

Version 2.02 (October 22, 2025)

  • Feature: Implemented file browser interface.
    • Replaced home.php with browser.php.
    • Modified functions.php: Added sanitize_path, path_to_flat_slug, get_directory_contents, create_folder, delete_folder_recursive, rename_item, search_pages. Updated page functions to use paths instead of slugs.
    • Modified index.php: Rewrote routing for path-based access, added browser actions (create folder, delete, rename), added /search route.
    • Created search.php template.
    • Updated edit.php to handle paths and slugs.
    • Updated page.php links.
    • Removed content management section from admin.php.
    • Added browser, search, and breadcrumb styles to style.css.
  • UI/CSS: Changed Launchpad to a movable, single-row layout with JavaScript (main.js) and localStorage persistence. Changed window title bars and Launchpad header to purple. Changed footer to a purple "Taskbar".
  • Bugfix: Removed duplicate USERS_FILE constant definition from auth.php.

Version 2.01 (October 22, 2025)

  • Feature: Added user profiles with bio, photo URL, and tagline (editable via /profile-edit).
    • Added profile-edit.php template.
    • Added profile-edit and profile-save routes to index.php.
    • Added update_user_profile() function to functions.php.
    • Updated profile.php to display new fields.
    • Added profile styles to style.css.
  • Feature: Implemented page revision viewing (?rev=timestamp).
  • Feature: Implemented admin deletion of pages and old revisions.
    • Added delete_page() and delete_revision() to functions.php.
    • Added delete actions to index.php.
    • Added revision links and admin delete buttons to page.php.
    • Added page deletion list to admin.php.
    • Added button/notice styles to style.css.
  • Bugfix: Corrected Parsedown.php internal method call error by replacing the file.
  • Bugfix: Corrected Open Graph image path to use absolute URLs in header.php.
  • Bugfix: Fixed CSRF validation failure on multiple form submits/back button by modifying validate_csrf_token() in auth.php.
  • Bugfix: Added missing login.php and 404.php templates.
  • Bugfix: Resolved file permission issues causing pages not to save (required creating content/revisions dirs and setting permissions).
  • Bugfix: Corrected relative path issue in load_template() in functions.php.
  • Bugfix: Corrected isset($page) warning in header.php by changing to !empty($page).

Version 2.00 (October 22, 2025)

  • Core: Initial codebase setup.
  • Features:
    • PHP-based, flat-file structure (JSON for metadata, TXT for revisions).
    • Basic routing (index.php front controller, .htaccess).
    • User authentication (setup.php, login/logout, roles: admin/editor, password hashing).
    • Page creation and editing with basic Markdown/HTML support (via Parsedown).
    • Version control (saving full revisions).
    • Homepage listing latest edits.
    • Admin panel for site settings and user invites/deletion.
    • Dynamic Open Graph tags.
    • Customizable footer.
    • CSRF protection.
  • Theming: OS/2 Warp 3.0 inspired CSS theme using Helvetica font.

Original Author: admin

Views: 80 (Unique: 74)

Page ID ( Copy Link): page_68f984ad3abea4.86635384-4d6ed2f930ffee78

Page History (3 revisions):