diff --git a/lib/WiFiManager/include/WiFiManagerHandlers.h b/lib/WiFiManager/include/WiFiManagerHandlers.h index e955c61..790c3db 100644 --- a/lib/WiFiManager/include/WiFiManagerHandlers.h +++ b/lib/WiFiManager/include/WiFiManagerHandlers.h @@ -78,6 +78,7 @@ class WiFiManagerHandlers { String getHTTPHead(String title, String classes = ""); String getHTTPEnd(); String getMenuOut(); + String getMenuOut(String* outOpt); String getScanItemOut(); String getParamOut(); String getStaticOut(); diff --git a/lib/WiFiManager/include/WiFiManagerServer.h b/lib/WiFiManager/include/WiFiManagerServer.h index 5983b54..d77bd22 100644 --- a/lib/WiFiManager/include/WiFiManagerServer.h +++ b/lib/WiFiManager/include/WiFiManagerServer.h @@ -19,6 +19,9 @@ #include #include +// DFTE (template engine) +#include + // Forward declarations class WiFiManager; @@ -46,8 +49,21 @@ const char R_updatedone[] PROGMEM = "/u"; class WiFiManagerServer { public: + // Singleton access + static WiFiManagerServer* instance(); + WiFiManagerServer(WiFiManager* wm); + // Template engine setup and access + void setupTemplateEngine(); + PlaceholderRegistry* getPlaceholderRegistry() { return _tplRegistry.get(); } + + // Static zero-arg getters for DFTE RAM placeholders + static const char* tplGetPageTitle(); + static const char* tplGetSubtitle(); + static const char* tplGetMenu(); + static const char* tplGetStatus(); + // Create server instance void createServer(uint16_t port); @@ -74,6 +90,12 @@ class WiFiManagerServer { std::unique_ptr _handlers; std::unique_ptr server; std::unique_ptr dnsServer; + + // Shared DFTE placeholder registry + std::unique_ptr _tplRegistry; + + // Singleton instance + static WiFiManagerServer* s_instance; }; // Include WiFiManagerHandlers.h after class definition to provide full definition diff --git a/lib/WiFiManager/include/templates/Root.h b/lib/WiFiManager/include/templates/Root.h new file mode 100644 index 0000000..5a2b198 --- /dev/null +++ b/lib/WiFiManager/include/templates/Root.h @@ -0,0 +1,38 @@ +/** + * Root.h + * Whole-document root template for WiFiManager using DFTE placeholders + */ + +#ifndef _WM_ROOT_TEMPLATE_H_ +#define _WM_ROOT_TEMPLATE_H_ + +#include + +// Whole document template: +// - Injects %SCRIPTS% and %STYLES% (these already include