Files
igny8/igny8-wp-plugin-for-reference-olny/modules/writer/writer.php
2025-11-09 10:27:02 +00:00

661 lines
36 KiB
PHP

<?php
/**
* ==========================
* 🔐 IGNY8 FILE RULE HEADER
* ==========================
* @file : writer.php
* @location : /modules/writer/writer.php
* @type : Admin Page
* @scope : Module Only
* @allowed : Writer module logic, subpage routing, step data functions
* @reusability : Single Use
* @notes : Main writer page with subpage routing and step data functions
*/
if (!defined('ABSPATH')) exit;
// Component render functions are loaded centrally via global-layout.php
/**
* Get step data for Writer workflow guide
*
* @return array Array of step data with status and counts
*/
function igny8_get_writer_step_data() {
global $wpdb;
// Get counts for each step
$queued_tasks = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status IN ('pending', 'queued', 'new')");
$draft_tasks = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status IN ('draft', 'in_progress', 'review')");
$published_tasks = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status = 'completed'");
$total_tasks = $queued_tasks + $draft_tasks + $published_tasks;
return [
'view_tasks' => [
'queued' => $queued_tasks,
'total' => $total_tasks,
'status' => $total_tasks > 0 ? 'completed' : 'pending'
],
'generate_drafts' => [
'queued' => $queued_tasks,
'status' => $queued_tasks > 0 ? 'current' : ($draft_tasks > 0 ? 'completed' : 'pending')
],
'review_drafts' => [
'drafts' => $draft_tasks,
'status' => $draft_tasks > 0 ? 'current' : ($published_tasks > 0 ? 'completed' : 'pending')
],
'publish' => [
'published' => $published_tasks,
'drafts' => $draft_tasks,
'status' => $published_tasks > 0 ? 'completed' : ($draft_tasks > 0 ? 'current' : 'pending')
]
];
}
// Handle URL parameters for subpages
$subpage = $_GET['sm'] ?? 'home';
$GLOBALS['current_submodule'] = $subpage;
$GLOBALS['current_module'] = 'writer';
// Start output buffering
ob_start();
switch ($subpage) {
case 'tasks':
include plugin_dir_path(__FILE__) . 'tasks.php';
break;
case 'drafts':
include plugin_dir_path(__FILE__) . 'drafts.php';
break;
case 'published':
include plugin_dir_path(__FILE__) . 'published.php';
break;
case 'home':
default:
// Home dashboard content
// Load KPI data for dashboard calculations
if (!defined('IGNY8_INCLUDE_CONFIG')) {
define('IGNY8_INCLUDE_CONFIG', true);
}
$kpi_config = $GLOBALS['igny8_kpi_config'] ?? []; // Loaded globally in igny8.php
$kpi_data = igny8_get_kpi_data_safe('writer_home', $kpi_config['writer_home'] ?? []);
// Calculate dashboard metrics - Updated queries for correct status
global $wpdb;
// Queued tasks - tasks that are pending/not started
$queued_tasks = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status IN ('pending', 'queued', 'new')");
// Draft tasks - content generated and saved as draft, awaiting review/publish
$draft_tasks = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status IN ('draft', 'in_progress', 'review')");
// Published tasks - status is 'completed' in tasks table
$published_tasks = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status = 'completed'");
$total_tasks = $queued_tasks + $draft_tasks + $published_tasks;
// Calculate percentages for progress bars
$queued_pct = $total_tasks > 0 ? round(($queued_tasks / $total_tasks) * 100) : 0;
$draft_pct = $total_tasks > 0 ? round(($draft_tasks / $total_tasks) * 100) : 0;
$published_pct = $total_tasks > 0 ? round(($published_tasks / $total_tasks) * 100) : 0;
// Home page content
?>
<div class="igny8-module-home">
<!-- Writing Status Cards -->
<div class="igny8-dashboard-section">
<div class="igny8-grid-3 igny8-status-cards">
<!-- Queued Tasks Card -->
<div class="igny8-card igny8-status-card igny8-clickable-card igny8-status-blue" onclick="window.location.href='<?php echo admin_url('admin.php?page=igny8-writer&sm=tasks'); ?>'">
<div class="igny8-card-body">
<div class="igny8-status-metric">
<span class="igny8-status-count"><?php echo number_format($queued_tasks); ?></span>
<span class="igny8-status-label">Tasks Queued</span>
<span class="igny8-status-desc">awaiting writing start</span>
</div>
<div class="igny8-status-icon">
<span class="dashicons dashicons-clipboard igny8-dashboard-icon-sm"></span>
</div>
</div>
</div>
<!-- Drafts Card -->
<div class="igny8-card igny8-status-card igny8-clickable-card igny8-status-amber" onclick="window.location.href='<?php echo admin_url('admin.php?page=igny8-writer&sm=drafts'); ?>'">
<div class="igny8-card-body">
<div class="igny8-status-metric">
<span class="igny8-status-count"><?php echo number_format($draft_tasks); ?></span>
<span class="igny8-status-label">Drafts</span>
<span class="igny8-status-desc">currently being written</span>
</div>
<div class="igny8-status-icon">
<span class="dashicons dashicons-edit-page igny8-dashboard-icon-sm"></span>
</div>
</div>
</div>
<!-- Published Card -->
<div class="igny8-card igny8-status-card igny8-clickable-card igny8-status-green" onclick="window.location.href='<?php echo admin_url('admin.php?page=igny8-writer&sm=published'); ?>'">
<div class="igny8-card-body">
<div class="igny8-status-metric">
<span class="igny8-status-count"><?php echo number_format($published_tasks); ?></span>
<span class="igny8-status-label">Published</span>
<span class="igny8-status-desc">live on your site</span>
</div>
<div class="igny8-status-icon">
<span class="dashicons dashicons-yes-alt igny8-dashboard-icon-sm"></span>
</div>
</div>
</div>
</div>
</div>
<!-- Workflow Status & AI Settings -->
<!-- Writer Workflow Steps -->
<div class="igny8-dashboard-section">
<div class="igny8-standard-header">
<div class="igny8-card-header-content">
<div class="igny8-card-title-text">
<h3>Writer Workflow Steps</h3>
<p class="igny8-card-subtitle">Track your content creation progress</p>
</div>
<div class="igny8-card-icon">
<span class="dashicons dashicons-edit-page igny8-dashboard-icon-lg igny8-dashboard-icon-blue"></span>
</div>
</div>
</div>
<div class="igny8-grid igny8-grid-4">
<?php
// Step-by-Step UX Guide
$step_data = igny8_get_writer_step_data();
?>
<div class="igny8-card igny8-step-card <?php echo $step_data['view_tasks']['status']; ?>">
<div class="igny8-card-body">
<div class="igny8-step-header">
<div class="igny8-step-number">1</div>
<div class="igny8-step-title">View Queued Tasks</div>
</div>
<div class="igny8-step-status">
<span class="igny8-step-status-icon"><?php echo $step_data['view_tasks']['status'] === 'completed' ? '✅' : '⏳'; ?></span>
<span class="igny8-step-status-text"><?php echo $step_data['view_tasks']['status'] === 'completed' ? 'Available' : 'No Tasks'; ?></span>
</div>
<div class="igny8-step-data">
<?php if ($step_data['view_tasks']['total'] > 0): ?>
<?php echo $step_data['view_tasks']['queued']; ?> tasks queued
<?php else: ?>
No tasks available
<?php endif; ?>
</div>
<?php if ($step_data['view_tasks']['status'] === 'completed'): ?>
<div class="igny8-step-action">
<a href="?page=igny8-writer&sm=tasks" class="igny8-btn igny8-btn-primary igny8-btn-sm">View Tasks</a>
</div>
<?php endif; ?>
</div>
</div>
<div class="igny8-card igny8-step-card <?php echo $step_data['generate_drafts']['status']; ?>">
<div class="igny8-card-body">
<div class="igny8-step-header">
<div class="igny8-step-number">2</div>
<div class="igny8-step-title">Generate Drafts (AI)</div>
</div>
<div class="igny8-step-status">
<span class="igny8-step-status-icon"><?php echo $step_data['generate_drafts']['status'] === 'completed' ? '✅' : ($step_data['generate_drafts']['status'] === 'current' ? '⏳' : '⏳'); ?></span>
<span class="igny8-step-status-text"><?php echo $step_data['generate_drafts']['status'] === 'completed' ? 'Completed' : ($step_data['generate_drafts']['status'] === 'current' ? 'Ready' : 'Pending'); ?></span>
</div>
<div class="igny8-step-data">
<?php if ($step_data['generate_drafts']['queued'] > 0): ?>
<?php echo $step_data['generate_drafts']['queued']; ?> tasks ready for AI
<?php elseif ($step_data['view_tasks']['total'] > 0): ?>
All tasks processed
<?php else: ?>
No tasks to process
<?php endif; ?>
</div>
<?php if ($step_data['generate_drafts']['status'] === 'current'): ?>
<div class="igny8-step-action">
<a href="?page=igny8-writer&sm=tasks" class="igny8-btn igny8-btn-primary igny8-btn-sm">Generate Now</a>
</div>
<?php endif; ?>
</div>
</div>
<div class="igny8-card igny8-step-card <?php echo $step_data['review_drafts']['status']; ?>">
<div class="igny8-card-body">
<div class="igny8-step-header">
<div class="igny8-step-number">3</div>
<div class="igny8-step-title">Review Drafts</div>
</div>
<div class="igny8-step-status">
<span class="igny8-step-status-icon"><?php echo $step_data['review_drafts']['status'] === 'completed' ? '✅' : ($step_data['review_drafts']['status'] === 'current' ? '⏳' : '⏳'); ?></span>
<span class="igny8-step-status-text"><?php echo $step_data['review_drafts']['status'] === 'completed' ? 'Completed' : ($step_data['review_drafts']['status'] === 'current' ? 'Ready' : 'Pending'); ?></span>
</div>
<div class="igny8-step-data">
<?php if ($step_data['review_drafts']['drafts'] > 0): ?>
<?php echo $step_data['review_drafts']['drafts']; ?> drafts to review
<?php elseif ($step_data['view_tasks']['total'] > 0): ?>
All drafts reviewed
<?php else: ?>
No drafts to review
<?php endif; ?>
</div>
<?php if ($step_data['review_drafts']['status'] === 'current'): ?>
<div class="igny8-step-action">
<a href="?page=igny8-writer&sm=drafts" class="igny8-btn igny8-btn-primary igny8-btn-sm">Review Now</a>
</div>
<?php endif; ?>
</div>
</div>
<div class="igny8-card igny8-step-card <?php echo $step_data['publish']['status']; ?>">
<div class="igny8-card-body">
<div class="igny8-step-header">
<div class="igny8-step-number">4</div>
<div class="igny8-step-title">Publish Content</div>
</div>
<div class="igny8-step-status">
<span class="igny8-step-status-icon"><?php echo $step_data['publish']['status'] === 'completed' ? '✅' : ($step_data['publish']['status'] === 'current' ? '⏳' : '⏳'); ?></span>
<span class="igny8-step-status-text"><?php echo $step_data['publish']['status'] === 'completed' ? 'Completed' : ($step_data['publish']['status'] === 'current' ? 'Ready' : 'Pending'); ?></span>
</div>
<div class="igny8-step-data">
<?php if ($step_data['publish']['drafts'] > 0): ?>
<?php echo $step_data['publish']['drafts']; ?> drafts ready to publish
<?php elseif ($step_data['publish']['published'] > 0): ?>
<?php echo $step_data['publish']['published']; ?> content published
<?php else: ?>
No content to publish
<?php endif; ?>
</div>
<?php if ($step_data['publish']['status'] === 'current'): ?>
<div class="igny8-step-action">
<a href="?page=igny8-writer&sm=drafts" class="igny8-btn igny8-btn-primary igny8-btn-sm">Publish Now</a>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<div class="igny8-flex-row">
<div class="igny8-card">
<div class="igny8-flex-row">
<div class="igny8-card-header-content">
<div class="igny8-card-title-text">
<h3>Workflow Status & AI Settings</h3>
<p class="igny8-card-subtitle igny8-centered">Workflow Status & AI Settings</p>
</div>
<form id="igny8-ai-integration-form">
<div class="igny8-flex-row">
<div class="igny8-form-group">
<div class="igny8-mode-toggle-row">
<div class="igny8-mode-toggle-label">
<span class="igny8-mode-label">Manual</span>
<label class="igny8-toggle">
<input type="checkbox" name="igny8_writer_mode" value="ai" <?php checked(igny8_get_ai_setting('writer_mode', 'manual'), 'ai'); ?>>
<span class="igny8-toggle-slider"></span>
</label>
<span class="igny8-mode-label">AI Mode</span>
</div>
</div>
</div>
<div class="igny8-form-actions">
<button type="button" id="igny8-save-writer-ai-settings" class="igny8-btn igny8-btn-success">Save AI Integration Settings</button>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="igny8-card">
<div class="igny8-flex-row">
<div class="igny8-card-header-content">
<div class="igny8-card-title-text">
<h3>Workflow Status & AI Settings</h3>
<p class="igny8-card-subtitle igny8-centered">Workflow Status & AI Settings</p>
</div>
<form id="igny8-new-content-form">
<div class="igny8-flex-row">
<div class="igny8-form-group">
<div class="igny8-radio-group">
<label class="igny8-radio-label">
<input type="radio" name="new_content_action" value="draft" <?php checked(get_option('igny8_new_content_action', 'draft'), 'draft'); ?>>
<span class="igny8-radio-text">Save as Draft</span>
</label>
<label class="igny8-radio-label">
<input type="radio" name="new_content_action" value="publish" <?php checked(get_option('igny8_new_content_action', 'draft'), 'publish'); ?>>
<span class="igny8-radio-text">Publish Directly</span>
</label>
</div>
</div>
<div class="igny8-form-actions">
<button type="button" id="igny8-save-content-decision" class="igny8-btn igny8-btn-success">Save Content Decision</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="igny8-grid-3 igny8-equal-height">
<!-- Content Published by Type -->
<div class="igny8-dashboard-section igny8-analytics-card">
<div class="igny8-card">
<div class="igny8-card-header igny8-standard-header">
<div class="igny8-card-header-content">
<div class="igny8-card-title-text">
<h3>Content Published by Type</h3>
<p class="igny8-card-subtitle igny8-centered">Content distribution analysis</p>
</div>
<div class="igny8-card-icon">
<span class="dashicons dashicons-category igny8-dashboard-icon-lg igny8-dashboard-icon-blue"></span>
</div>
</div>
<div class="igny8-card-metric">
<?php
global $wpdb;
$total_published = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status = 'completed'");
echo '<span class="igny8-metric-value">' . number_format($total_published) . '</span>';
echo '<span class="igny8-metric-label">Total Published</span>';
?>
</div>
</div>
<div class="igny8-card-body">
<?php
$content_by_type = $wpdb->get_results("
SELECT content_type, COUNT(*) as count
FROM {$wpdb->prefix}igny8_tasks
WHERE status = 'completed'
GROUP BY content_type
ORDER BY count DESC
");
if ($content_by_type):
?>
<div class="igny8-analytics-list">
<?php
$color_classes = ['igny8-progress-blue', 'igny8-progress-green', 'igny8-progress-amber', 'igny8-progress-purple'];
$color_index = 0;
foreach ($content_by_type as $type):
$type_display = ucfirst(str_replace('_', ' ', $type->content_type));
$percentage = $total_published > 0 ? round(($type->count / $total_published) * 100) : 0;
$color_class = $color_classes[$color_index % 4];
$color_index++;
?>
<div class="igny8-analytics-item">
<div class="igny8-item-info">
<div class="igny8-item-label"><?php echo esc_html($type_display); ?></div>
<div class="igny8-item-value"><?php echo number_format($type->count); ?></div>
</div>
<div class="igny8-item-progress">
<div class="igny8-progress-track">
<div class="igny8-progress-fill <?php echo $color_class; ?>" style="width: <?php echo $percentage; ?>%"></div>
</div>
<span class="igny8-progress-percent"><?php echo $percentage; ?>%</span>
</div>
</div>
<?php endforeach; ?>
</div>
<?php else: ?>
<div class="igny8-empty-analytics">
<span class="dashicons dashicons-info igny8-dashboard-icon-dim"></span>
<p>No published content found yet</p>
<a href="<?php echo admin_url('admin.php?page=igny8-writer&sm=tasks'); ?>" class="igny8-btn igny8-btn-outline igny8-btn-sm">View Tasks</a>
</div>
<?php endif; ?>
</div>
</div>
</div>
<!-- Publishing Activity -->
<div class="igny8-dashboard-section igny8-analytics-card">
<div class="igny8-card">
<div class="igny8-card-header igny8-standard-header">
<div class="igny8-card-header-content">
<div class="igny8-card-title-text">
<h3>Publishing Activity</h3>
<p class="igny8-card-subtitle igny8-centered">Content publishing timeline</p>
</div>
<div class="igny8-card-icon">
<span class="dashicons dashicons-chart-line igny8-dashboard-icon-lg igny8-dashboard-icon-green"></span>
</div>
</div>
<div class="igny8-card-metric">
<?php
$recent_7_days = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status = 'completed' AND updated_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)");
echo '<span class="igny8-metric-value">' . number_format($recent_7_days) . '</span>';
echo '<span class="igny8-metric-label">This Week</span>';
?>
</div>
</div>
<div class="igny8-card-body">
<?php
$yesterday_count = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status = 'completed' AND DATE(updated_at) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)");
$last_7_days = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status = 'completed' AND updated_at >= DATE_SUB(NOW(), INTERVAL 7 DAY)");
$last_20_days = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status = 'completed' AND updated_at >= DATE_SUB(NOW(), INTERVAL 20 DAY)");
$all_time = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}igny8_tasks WHERE status = 'completed'");
?>
<div class="igny8-analytics-list">
<div class="igny8-analytics-item">
<div class="igny8-item-info">
<div class="igny8-item-label">Yesterday</div>
<div class="igny8-item-value"><?php echo number_format($yesterday_count); ?></div>
</div>
<div class="igny8-item-progress">
<div class="igny8-progress-track">
<div class="igny8-progress-fill igny8-progress-blue" style="width: <?php echo $all_time > 0 ? round(($yesterday_count / $all_time) * 100) : 0; ?>%"></div>
</div>
<span class="igny8-progress-percent"><?php echo $all_time > 0 ? round(($yesterday_count / $all_time) * 100) : 0; ?>%</span>
</div>
</div>
<div class="igny8-analytics-item">
<div class="igny8-item-info">
<div class="igny8-item-label">Last 7 Days</div>
<div class="igny8-item-value"><?php echo number_format($last_7_days); ?></div>
</div>
<div class="igny8-item-progress">
<div class="igny8-progress-track">
<div class="igny8-progress-fill igny8-progress-green" style="width: <?php echo $all_time > 0 ? round(($last_7_days / $all_time) * 100) : 0; ?>%"></div>
</div>
<span class="igny8-progress-percent"><?php echo $all_time > 0 ? round(($last_7_days / $all_time) * 100) : 0; ?>%</span>
</div>
</div>
<div class="igny8-analytics-item">
<div class="igny8-item-info">
<div class="igny8-item-label">Last 20 Days</div>
<div class="igny8-item-value"><?php echo number_format($last_20_days); ?></div>
</div>
<div class="igny8-item-progress">
<div class="igny8-progress-track">
<div class="igny8-progress-fill igny8-progress-amber" style="width: <?php echo $all_time > 0 ? round(($last_20_days / $all_time) * 100) : 0; ?>%"></div>
</div>
<span class="igny8-progress-percent"><?php echo $all_time > 0 ? round(($last_20_days / $all_time) * 100) : 0; ?>%</span>
</div>
</div>
<div class="igny8-analytics-item igny8-analytics-total">
<div class="igny8-item-info">
<div class="igny8-item-label">All Time</div>
<div class="igny8-item-value"><?php echo number_format($all_time); ?></div>
</div>
<div class="igny8-item-progress">
<div class="igny8-progress-track">
<div class="igny8-progress-fill igny8-progress-purple" style="width: 100%"></div>
</div>
<span class="igny8-progress-percent">100%</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Content Workflow Summary -->
<div class="igny8-dashboard-section">
<div class="igny8-card">
<div class="igny8-card-header igny8-standard-header">
<div class="igny8-card-header-content">
<div class="igny8-card-title-text">
<h3>Content Workflow Summary</h3>
<p class="igny8-card-subtitle igny8-centered">Content distribution analysis</p>
</div>
<div class="igny8-card-icon">
<span class="dashicons dashicons-chart-line igny8-dashboard-icon-lg igny8-dashboard-icon-blue"></span>
</div>
</div>
</div>
<div class="igny8-card-body">
<div class="igny8-progress-item">
<div class="igny8-progress-header">
<span class="igny8-progress-label">Queued Tasks</span>
<span class="igny8-progress-percent"><?php echo $queued_pct; ?>%</span>
</div>
<div class="igny8-progress-bar">
<div class="igny8-progress-fill igny8-progress-blue" style="width: <?php echo $queued_pct; ?>%"></div>
</div>
<div class="igny8-progress-details"><?php echo number_format($queued_tasks); ?> tasks waiting to start</div>
</div>
<div class="igny8-progress-item">
<div class="igny8-progress-header">
<span class="igny8-progress-label">Draft / Review</span>
<span class="igny8-progress-percent"><?php echo $draft_pct; ?>%</span>
</div>
<div class="igny8-progress-bar">
<div class="igny8-progress-fill igny8-progress-amber" style="width: <?php echo $draft_pct; ?>%"></div>
</div>
<div class="igny8-progress-details"><?php echo number_format($draft_tasks); ?> drafts awaiting review and publish</div>
</div>
<div class="igny8-progress-item">
<div class="igny8-progress-header">
<span class="igny8-progress-label">Published</span>
<span class="igny8-progress-percent"><?php echo $published_pct; ?>%</span>
</div>
<div class="igny8-progress-bar">
<div class="igny8-progress-fill igny8-progress-green" style="width: <?php echo $published_pct; ?>%"></div>
</div>
<div class="igny8-progress-details"><?php echo number_format($published_tasks); ?> tasks completed and published</div>
</div>
</div>
</div>
</div>
</div>
<div class="igny8-grid-2">
<!-- AI Integration Settings Card -->
<!-- Pending Actions Panel -->
<div class="igny8-dashboard-section">
<div class="igny8-card">
<div class="igny8-card-header igny8-standard-header">
<div class="igny8-card-header-content">
<div class="igny8-card-title-text">
<h3>Pending Actions</h3>
<p class="igny8-card-subtitle igny8-centered">Action items requiring attention</p>
</div>
<div class="igny8-card-icon">
<span class="dashicons dashicons-clock igny8-dashboard-icon-lg igny8-dashboard-icon-amber"></span>
</div>
</div>
</div>
<div class="igny8-card-body">
<div class="igny8-next-actions">
<?php if ($queued_tasks > 0): ?>
<div class="igny8-action-item">
<span class="igny8-action-text"><?php echo number_format($queued_tasks); ?> tasks not yet started</span>
<a href="<?php echo admin_url('admin.php?page=igny8-writer&sm=tasks'); ?>" class="igny8-btn igny8-btn-text">Start Writing</a>
</div>
<?php endif; ?>
<?php if ($draft_tasks > 0): ?>
<div class="igny8-action-item">
<span class="igny8-action-text"><?php echo number_format($draft_tasks); ?> drafts awaiting review and publish</span>
<a href="<?php echo admin_url('admin.php?page=igny8-writer&sm=drafts'); ?>" class="igny8-btn igny8-btn-text">Review Drafts</a>
</div>
<?php endif; ?>
<?php if ($published_tasks > 0): ?>
<div class="igny8-action-item">
<span class="igny8-action-text"><?php echo number_format($published_tasks); ?> posts ready to publish</span>
<a href="<?php echo admin_url('admin.php?page=igny8-writer&sm=published'); ?>" class="igny8-btn igny8-btn-text">View Published</a>
</div>
<?php endif; ?>
<?php if ($total_tasks === 0): ?>
<div class="igny8-action-item igny8-action-complete">
<span class="igny8-action-text">All caught up! Consider adding new content ideas.</span>
<a href="<?php echo admin_url('admin.php?page=igny8-planner'); ?>" class="igny8-btn igny8-btn-text">Plan New Content</a>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
<?php
// Home page - add dashboard functionality
// Only load CRON key if this page needs CRON functionality
$cron_key = igny8_needs_cron_functionality() ? igny8_get_or_generate_cron_key() : null;
// Debug logging (remove in production)
// if (defined('WP_DEBUG') && WP_DEBUG) {
// error_log('Igny8 Writer: cronKey being passed to JS: ' . $cron_key);
// }
wp_localize_script('igny8-admin-js', 'IGNY8_PAGE', [
'module' => 'writer',
'submodule' => 'home',
'ajaxUrl' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('igny8_writer_settings'),
'cronKey' => $cron_key
]);
break;
}
// Capture page content
$igny8_page_content = ob_get_clean();
// Include global layout
include_once plugin_dir_path(__FILE__) . '../../core/global-layout.php';