From 28f87f689e6face229f01db986e2d35e378cd8f4 Mon Sep 17 00:00:00 2001
From: Marcus Quinn
Date: Mon, 24 Mar 2025 21:30:03 +0000
Subject: [PATCH] Add About tab with markdown support
---
admin/css/wp-allstars-admin.css | 54 ++++++++++++
admin/data/about.php | 47 ++++++++++
admin/includes/class-about-manager.php | 114 +++++++++++++++++++++++++
admin/includes/class-admin-manager.php | 7 ++
wp-allstars-plugin.php | 6 +-
5 files changed, 227 insertions(+), 1 deletion(-)
create mode 100644 admin/data/about.php
create mode 100644 admin/includes/class-about-manager.php
diff --git a/admin/css/wp-allstars-admin.css b/admin/css/wp-allstars-admin.css
index 2be9cf3..34423e2 100644
--- a/admin/css/wp-allstars-admin.css
+++ b/admin/css/wp-allstars-admin.css
@@ -847,4 +847,58 @@ input:checked + .wp-toggle-slider:before {
.wpa-pro-plugin .button {
width: 100%;
}
+}
+
+/* Markdown Content Styles for About Tab */
+.wp-allstars-markdown-content {
+ line-height: 1.6;
+ color: #333;
+}
+
+.wp-allstars-markdown-content h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+ border-bottom: 1px solid #eaecef;
+ padding-bottom: 0.3em;
+}
+
+.wp-allstars-markdown-content h2 {
+ font-size: 1.5em;
+ margin: 0.83em 0;
+ border-bottom: 1px solid #eaecef;
+ padding-bottom: 0.3em;
+}
+
+.wp-allstars-markdown-content h3 {
+ font-size: 1.25em;
+ margin: 1em 0;
+}
+
+.wp-allstars-markdown-content ul {
+ padding-left: 2em;
+ margin: 1em 0;
+}
+
+.wp-allstars-markdown-content li {
+ margin: 0.5em 0;
+}
+
+.wp-allstars-markdown-content a {
+ color: #0073aa;
+ text-decoration: none;
+}
+
+.wp-allstars-markdown-content a:hover {
+ color: #00a0d2;
+ text-decoration: underline;
+}
+
+.wp-allstars-markdown-content p {
+ margin: 1em 0;
+}
+
+/* About Tab Panel */
+#about .wpa-pro-plugin {
+ max-width: 800px;
+ margin: 0 auto;
}
\ No newline at end of file
diff --git a/admin/data/about.php b/admin/data/about.php
new file mode 100644
index 0000000..c6bacdc
--- /dev/null
+++ b/admin/data/about.php
@@ -0,0 +1,47 @@
+ 'About WP ALLSTARS',
+ 'content' => <<
+
+ $1', $markdown);
+ $markdown = preg_replace('/^## (.*?)$/m', '$1
', $markdown);
+ $markdown = preg_replace('/^# (.*?)$/m', '$1
', $markdown);
+
+ // Bold and Italic
+ $markdown = preg_replace('/\*\*(.*?)\*\*/s', '$1', $markdown);
+ $markdown = preg_replace('/\*(.*?)\*/s', '$1', $markdown);
+
+ // Lists
+ $markdown = preg_replace('/^\* (.*?)$/m', '$1', $markdown);
+ $markdown = preg_replace('/(.*?<\/li>\n)+/s', '', $markdown);
+
+ // Links
+ $markdown = preg_replace('/\[(.*?)\]\((.*?)\)/s', '$1', $markdown);
+
+ // Paragraphs
+ $markdown = preg_replace('/^(?!<[a-z]).+$/m', '$0
', $markdown);
+
+ // Fix multiple paragraph tags
+ $markdown = str_replace('', '
', $markdown);
+ $markdown = str_replace('
', '', $markdown);
+
+ // Fix lists within paragraphs
+ $markdown = str_replace('', '', $markdown);
+ $markdown = str_replace('
', '
', $markdown);
+
+ return $markdown;
+ }
+}
+
+// Initialize the class
+WP_Allstars_About_Manager::init();
diff --git a/admin/includes/class-admin-manager.php b/admin/includes/class-admin-manager.php
index 73077e8..4c1a011 100644
--- a/admin/includes/class-admin-manager.php
+++ b/admin/includes/class-admin-manager.php
@@ -250,6 +250,9 @@ class WP_Allstars_Admin_Manager {
+
+
+
@@ -287,6 +290,10 @@ class WP_Allstars_Admin_Manager {
case 'tools':
WP_Allstars_Tools_Manager::display_tab_content();
break;
+
+ case 'about':
+ WP_Allstars_About_Manager::display_tab_content();
+ break;
}
?>
diff --git a/wp-allstars-plugin.php b/wp-allstars-plugin.php
index 79c0bb8..76b47b1 100644
--- a/wp-allstars-plugin.php
+++ b/wp-allstars-plugin.php
@@ -59,12 +59,16 @@ if (is_admin()) {
require_once plugin_dir_path(__FILE__) . 'admin/includes/class-pro-plugins-manager.php';
require_once plugin_dir_path(__FILE__) . 'admin/includes/class-plugin-manager.php';
require_once plugin_dir_path(__FILE__) . 'admin/includes/class-free-plugins-manager.php';
+ require_once plugin_dir_path(__FILE__) . 'admin/includes/class-about-manager.php';
// Initialize the admin manager
add_action('plugins_loaded', array('WP_Allstars_Admin_Manager', 'init'));
- // Legacy files (for backward compatibility)
+ // Data files
require_once plugin_dir_path(__FILE__) . 'admin/data/pro-plugins.php';
+ require_once plugin_dir_path(__FILE__) . 'admin/data/about.php';
+
+ // Legacy files (for backward compatibility)
require_once plugin_dir_path(__FILE__) . 'admin/settings.php';
}