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: 82 (Unique: 75)
Page ID (
Copy Link):
page_68f984ad3abea4.86635384-4d6ed2f930ffee78 Copied!
Page History (3 revisions):