Files
igny8/igny8-ai-seo-wp-plugin/modules/components/actions-tpl.php
2025-11-11 21:16:37 +05:00

112 lines
5.1 KiB
PHP

<?php
/**
* ==========================
* 🔐 IGNY8 FILE RULE HEADER
* ==========================
* @file : actions-tpl.php
* @location : /modules/components/actions-tpl.php
* @type : Component
* @scope : Cross-Module
* @allowed : Action rendering, bulk operations
* @reusability : Shared
* @notes : Dynamic action component for all modules
*/
// Prevent direct access
if (!defined('ABSPATH')) {
exit;
}
// Render table actions function
function igny8_render_table_actions($table_id, $actions = []) {
// Set default actions if none provided
$actions = $actions ?: ['export_selected', 'delete_selected', 'export_all', 'import', 'add_new'];
// Check if AI mode is enabled
$ai_mode = igny8_get_ai_setting('planner_mode', 'manual') === 'ai';
// Start output buffering to capture HTML
ob_start();
?>
<!-- Table Actions -->
<div class="igny8-table-actions" data-table="<?php echo esc_attr($table_id); ?>">
<div class="left-actions">
<span id="<?php echo esc_attr($table_id); ?>_count" class="igny8-count-hidden">0 selected</span>
<?php if (in_array('export_selected', $actions)): ?>
<button id="<?php echo esc_attr($table_id); ?>_export_btn" class="igny8-btn igny8-btn-success" disabled>Export Selected</button>
<?php endif; ?>
<?php if (in_array('delete_selected', $actions)): ?>
<button id="<?php echo esc_attr($table_id); ?>_delete_btn" class="igny8-btn igny8-btn-danger" disabled>Delete Selected</button>
<?php endif; ?>
<!-- Publish Selected Button (for Drafts) -->
<?php if ($table_id === 'writer_drafts'): ?>
<button id="<?php echo esc_attr($table_id); ?>_generate_images_btn" class="igny8-btn igny8-btn-accent" disabled>
<span class="dashicons dashicons-format-image"></span> Generate Images
</button>
<button id="<?php echo esc_attr($table_id); ?>_publish_btn" class="igny8-btn igny8-btn-primary" disabled>
<span class="dashicons dashicons-yes-alt"></span> Publish Selected
</button>
<?php endif; ?>
<!-- AI Action Buttons (only visible in AI mode) -->
<?php if ($ai_mode): ?>
<?php if ($table_id === 'planner_keywords' && igny8_get_ai_setting('clustering', 'enabled') === 'enabled'): ?>
<button id="<?php echo esc_attr($table_id); ?>_ai_cluster_btn" class="igny8-btn igny8-btn-accent" disabled>
<span class="dashicons dashicons-admin-generic"></span> Auto Cluster
</button>
<?php endif; ?>
<?php if ($table_id === 'planner_clusters' && igny8_get_ai_setting('ideas', 'enabled') === 'enabled'): ?>
<button id="<?php echo esc_attr($table_id); ?>_ai_ideas_btn" class="igny8-btn igny8-btn-accent" disabled>
<span class="dashicons dashicons-lightbulb"></span> Generate Ideas
</button>
<?php endif; ?>
<?php endif; ?>
<!-- Queue to Writer Button (for Ideas) -->
<?php if ($table_id === 'planner_ideas'): ?>
<button id="<?php echo esc_attr($table_id); ?>_queue_writer_btn" class="igny8-btn igny8-btn-primary" disabled>
<span class="dashicons dashicons-edit"></span> Queue to Writer
</button>
<?php endif; ?>
<?php if ($table_id === 'writer_tasks' && igny8_get_ai_setting('writer_mode', 'manual') === 'ai' && igny8_get_ai_setting('content_generation', 'enabled') === 'enabled'): ?>
<button id="<?php echo esc_attr($table_id); ?>_generate_content_btn" class="igny8-btn igny8-btn-success" disabled>
<span class="dashicons dashicons-admin-generic"></span> Generate Content
</button>
<?php endif; ?>
</div>
<div class="right-actions">
<div class="igny8-ml-auto igny8-flex igny8-flex-gap-10 igny8-align-center">
<?php if (in_array('export_all', $actions)): ?>
<button id="<?php echo esc_attr($table_id); ?>_export_all_btn" class="igny8-btn igny8-btn-outline" onclick="igny8ShowExportModal('<?php echo esc_attr($table_id); ?>')">Export All</button>
<?php endif; ?>
<?php if (in_array('import', $actions)): ?>
<button id="<?php echo esc_attr($table_id); ?>_import_btn" class="igny8-btn igny8-btn-secondary">Import</button>
<?php endif; ?>
<?php if (in_array('add_new', $actions)): ?>
<button
class="igny8-btn igny8-btn-primary"
data-action="addRow"
data-table-id="<?php echo esc_attr($table_id); ?>"
>
Add New
</button>
<?php endif; ?>
</div>
</div>
</div>
<!-- Global notification system is handled by core.js -->
<?php
return ob_get_clean();
}
// Set default values
$table_id = $table_id ?? 'data_table';
$actions = $actions ?? ['export_selected', 'delete_selected', 'export_all', 'import', 'add_new'];
?>