Skip to content
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
070d51e
Add global helper class for content sanitization
theaminulai Nov 27, 2025
97f681a
Merge branch 'development' into new-optimaize-process
theaminulai Nov 28, 2025
28c4137
Add a feature
theaminulai Jan 15, 2026
d71d94b
Merge branch 'development' into new-optimaize-process
theaminulai Jan 15, 2026
2114a22
Merge branch 'development' into new-optimaize-process
theaminulai Jan 16, 2026
a873fef
Improve autoloader namespace handling and robustness
theaminulai Jan 23, 2026
d329f50
Add support section and dashboard skeleton loader
theaminulai Jan 24, 2026
7647d09
Update changelog and add react-content-loader dependency
theaminulai Jan 24, 2026
6eec8bb
Refactor plugin init to use pageflash_init hook
theaminulai Jan 24, 2026
22c712c
Add IcoMoon font files and heartbeat stub
theaminulai Jan 24, 2026
d9a9554
Add developer and user documentation for PageFlash
theaminulai Jan 24, 2026
f6ec1ed
Refactor admin menu icon and remove frontend asset loading
theaminulai Jan 24, 2026
fb75dc6
Add feature registry and manager base classes
theaminulai Jan 24, 2026
37192c3
Update namespace and package in DisableDashicons
theaminulai Jan 24, 2026
03cfd8e
Update namespace and enhance embed disabling
theaminulai Jan 24, 2026
7688aaa
Update DisableEmojis.php
theaminulai Jan 24, 2026
b19877b
Update DisableHeartbeat.php
theaminulai Jan 24, 2026
9c70190
Enhance REST API restriction logic and add exceptions
theaminulai Jan 24, 2026
c212b99
Update namespace and enhance XML-RPC disabling
theaminulai Jan 24, 2026
1749286
Refactor General manager to use BootManager and static registration
theaminulai Jan 24, 2026
74c90e0
Update namespace and package in HideWPVersion
theaminulai Jan 24, 2026
2b38d3a
Update namespace and package in RemoveJQueryMigrate
theaminulai Jan 24, 2026
9373b01
Add class to remove REST API links from frontend
theaminulai Jan 24, 2026
cc0403b
Refactor Landmark class and extend LandmarkList options
theaminulai Jan 24, 2026
274ad8d
Add instant.page and improve Quicklink integration
theaminulai Jan 24, 2026
8c90e91
Remove debug logging from REST API link removal
theaminulai Jan 24, 2026
af93f16
Sanitize admin page parameter in Heartbeat exception
theaminulai Jan 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 11 additions & 21 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,16 @@
# Changelog
## x.y.z - 2026-01-16
- fix: resolve all issues ([#120](https://github.com/theaminuli/pageflash/pull/120)) @theaminuli
- GitHub action check ([#122](https://github.com/theaminuli/pageflash/pull/122)) @theaminuli
- Refactor namespaces to include 'TheAminul' prefix and add function naming guidelines ([#119](https://github.com/theaminuli/pageflash/pull/119)) @theaminuli
- Add or Update Instructions for Agents and Tools ([#118](https://github.com/theaminuli/pageflash/pull/118)) @theaminuli
- Refactor code style and add Stylelint config ([#116](https://github.com/theaminuli/pageflash/pull/116)) @theaminuli
- Fix autoloader function prefix: rename exoole_autoloader to pageflash_autoloader and format issue ([#115](https://github.com/theaminuli/pageflash/pull/115)) @Copilot
- Remove emoji from user engagement text in README ([#114](https://github.com/theaminuli/pageflash/pull/114)) @theaminuli
- Update PR workflow trigger and permissions ([#113](https://github.com/theaminuli/pageflash/pull/113)) @theaminuli
- Revise API and architecture documentation for clarity ([#111](https://github.com/theaminuli/pageflash/pull/111)) @theaminuli
- Add global helper class for content sanitization ([#104](https://github.com/theaminuli/pageflash/pull/104)) @theaminuli
- Refactor Landmark API to use slugs and add new features #72 ([#103](https://github.com/theaminuli/pageflash/pull/103)) @theaminuli
- Remove Helper.php global helper class (#97) ([#97](https://github.com/theaminuli/pageflash/pull/97)) @theaminuli
- Update CSS filter and clean up Compatibility (#96) ([#96](https://github.com/theaminuli/pageflash/pull/96)) @theaminuli
- Add workflow to auto-format PR titles ([#95](https://github.com/theaminuli/pageflash/pull/95)) @theaminuli
- Put PR reference number at front of changelog entries @Copilot [#91](https://github.com/theaminuli/pageflash/pull/91)
- Enhance PR template with clearer guidance for What, Why, How, and Testing sections ([#87](https://github.com/theaminuli/pageflash/pull/87)) @Copilot
- Update changelog formatting and readme entries ([#84](https://github.com/theaminuli/pageflash/pull/84)) @theaminuli
- Add GitHub Actions workflow for automated PR descriptions and Copilot review ([#83](https://github.com/theaminuli/pageflash/pull/83)) @Copilot
- Remove automatic readme.txt updates and add x.y.z version for changelog with file tracking ([#80](https://github.com/theaminuli/pageflash/pull/80)) @Copilot
- Update license, add react-router, and init compatibility ([#76](https://github.com/theaminuli/pageflash/pull/76)) @theaminuli
- Add PR reference tracking to changelog workflow ([#75](https://github.com/theaminuli/pageflash/pull/75)) @Copilot
- Added: InstantPage integration to enhance the Preloading module performance.
- Added: Introduced admin dashboard for better user experience.
- Added: Disabled frontend Dashicons for non-logged-in users.
- Added: Disabled WordPress oEmbed for improved page load performance.
- Added: Disabled WordPress emojis to improve load time.
- Added: Removed WordPress version info for better security.
- Added: Disabled jquery-migrate.min.js to improve performance.
- Added: Disabled XML-RPC to reduce unnecessary requests.
- Added: Disabled WordPress REST API for non-authenticated users.
- Added: Removed REST API link tag and header from the frontend.
- Added: Disabled WordPress Heartbeat globally or in selected areas.

## 1.2.0 - 2025-05-14
- chore: Add initial configuration files
Expand Down
Binary file added assets/icomoon/fonts/icomoon.eot
Binary file not shown.
11 changes: 11 additions & 0 deletions assets/icomoon/fonts/icomoon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icomoon/fonts/icomoon.ttf
Binary file not shown.
Binary file added assets/icomoon/fonts/icomoon.woff
Binary file not shown.
8 changes: 8 additions & 0 deletions assets/libs/heartbeat/heartbeat.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* Disabled Heartbeat Stub
* This is an empty stub to prevent heartbeat functionality
*/
(function($) {
'use strict';
// Intentionally empty - heartbeat is disabled
})(jQuery);
47 changes: 34 additions & 13 deletions autoload.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,64 +8,85 @@
*/
function pageflash_get_namespace_map() {
return array(
'TheAminul\\PageFlash' => PAGEFLASH_DIR . '/includes/',
'TheAminul\\PageFlash\\' => trailingslashit( PAGEFLASH_DIR ) . 'includes/',
);
}

/**
* Resolves a fully-qualified class name into a file path if exists.
* (Loop separated from autoloader)
* Resolves a fully-qualified class name into a file path if it exists.
*
* @since 1.0.0
* @param string $class_name Fully qualified class name.
* @return string|false Return file path or false if not found.
* @return string|false File path or false if not found.
*/
function pageflash_locate_class_file( $class_name ) {

if ( ! defined( 'PAGEFLASH_DIR' ) ) {
return false;
}

$namespace_map = pageflash_get_namespace_map();

foreach ( $namespace_map as $namespace => $base_dir ) {

if ( strpos( $class_name, $namespace ) === 0 ) {
if ( strpos( $class_name, $namespace ) !== 0 ) {
continue;
}

$relative_class = substr( $class_name, strlen( $namespace ) );
$file = $base_dir . str_replace( '\\', '/', $relative_class ) . '.php';
$relative_class = substr( $class_name, strlen( $namespace ) );
$file = $base_dir . str_replace( '\\', '/', $relative_class ) . '.php';

return file_exists( $file ) ? $file : false;
}
return file_exists( $file ) ? $file : false;
}

return false;
}

/**
* Autoloader — now only calls the resolver + loads file.
* Autoloader.
*
* @since 1.0.0
* @param string $class_name The class name being instantiated.
* @return void
*/
function pageflash_autoloader( $class_name ) {

// Only handle PageFlash namespace
if ( strpos( $class_name, 'TheAminul\\PageFlash\\' ) !== 0 ) {
return;
}

$file = pageflash_locate_class_file( $class_name );

if ( $file ) {
require_once $file;
return;
}

// Debug only in development mode
if ( defined( 'PAGEFLASH_ENV' ) && PAGEFLASH_ENV === 'development' && WP_DEBUG ) {
// Log ONLY missing PageFlash classes (dev only)
if (
defined( 'PAGEFLASH_ENV' ) &&
PAGEFLASH_ENV === 'development' &&
defined( 'WP_DEBUG' ) &&
WP_DEBUG
) {
error_log( "[PageFlash Autoload] Class not found: {$class_name}" ); // phpcs:ignore
}
}


/**
* Registers autoloader so classes load automatically.
* Registers the autoloader.
*
* @since 1.0.0
* @return void
*/
function pageflash_register_autoloader() {

if ( ! defined( 'PAGEFLASH_DIR' ) ) {
return;
}

spl_autoload_register( 'pageflash_autoloader' );
}

Expand Down
20 changes: 20 additions & 0 deletions dev-docs/DOCS-WRITE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
## exmpleple documentation creation task
Copy link

Copilot AI Jan 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent spelling: "exmpleple" should be "example". This appears to be a typo in the heading of the documentation file.

Suggested change
## exmpleple documentation creation task
## example documentation creation task

Copilot uses AI. Check for mistakes.


The user wants me to create documentation files in a doc folder based on:

1. The official websites: https://getquick.link/ and https://instant.page/
2. The implementation in their PageFlash plugin
They want:

- Separate file for each feature (Quicklink and InstantPage)
- User/customer documentation
- Description of how to use it
- Benefits of using it
- Hook reference at the bottom
I need to:

1. Fetch the content from those websites to understand what these libraries do
2. Create documentation files based on the implementation
3. Create a doc folder structure
Let me first fetch the webpages to understand these features better, then create the documentation files.
Loading
Loading