Adopt reusable CI standard + 300-line splits (#167)

ci: adopt estate reusable CI + split 300-line violations (v0.22.0)

Squash merge of PR #167 (claude/adopt-ci-20260616)
Head: dc5145cd92

Agent-Session: deploy-operator-2026-06-16
This commit is contained in:
peptiderepo
2026-06-16 22:01:45 +07:00
committed by GitHub
parent d770e8a86a
commit 110c681c57
25 changed files with 1059 additions and 1026 deletions

View File

@@ -72,10 +72,11 @@ $base_url = admin_url( 'admin.php?page=prautoblogger-ideas' );
<tbody>
<?php foreach ( $rows as $row ) : ?>
<?php
$meta = json_decode( $row['metadata_json'] ?? '{}', true ) ?: [];
$decoded = json_decode( $row['metadata_json'] ?? '{}', true );
$meta = is_array( $decoded ) ? $decoded : array();
$suggested = $meta['suggested_title'] ?? '';
$key_points = $meta['key_points'] ?? [];
$keywords = $meta['target_keywords'] ?? [];
$key_points = $meta['key_points'] ?? array();
$keywords = $meta['target_keywords'] ?? array();
$score_pct = round( (float) $row['relevance_score'] * 100 );
$type_label = ucfirst( $row['analysis_type'] ?? 'unknown' );
$type_class = 'prab-type-' . sanitize_html_class( $row['analysis_type'] );
@@ -164,14 +165,18 @@ $base_url = admin_url( 'admin.php?page=prautoblogger-ideas' );
<?php if ( $total_pages > 1 ) : ?>
<div class="prautoblogger-pagination" style="margin-top: 12px;">
<?php
echo wp_kses_post( paginate_links( [
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'current' => $paged,
'total' => $total_pages,
'prev_text' => '&laquo;',
'next_text' => '&raquo;',
] ) );
echo wp_kses_post(
paginate_links(
array(
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'current' => $paged,
'total' => $total_pages,
'prev_text' => '&laquo;',
'next_text' => '&raquo;',
)
)
);
?>
</div>
<?php endif; ?>

View File

@@ -18,13 +18,13 @@ if ( ! defined( 'ABSPATH' ) ) {
}
$base_url = admin_url( 'admin.php?page=prautoblogger-logs' );
$level_counts = [
$level_counts = array(
'all' => __( 'All', 'prautoblogger' ),
'error' => __( 'Errors', 'prautoblogger' ),
'warning' => __( 'Warnings', 'prautoblogger' ),
'info' => __( 'Info', 'prautoblogger' ),
'debug' => __( 'Debug', 'prautoblogger' ),
];
);
?>
<div class="wrap ab-wrap">
<div class="ab-header">
@@ -46,7 +46,20 @@ $level_counts = [
<div class="ab-log-filters">
<div class="ab-log-level-tabs">
<?php foreach ( $level_counts as $lv => $lv_label ) : ?>
<a href="<?php echo esc_url( add_query_arg( [ 'level' => $lv, 's' => $search, 'paged' => 1 ], $base_url ) ); ?>"
<a href="
<?php
echo esc_url(
add_query_arg(
array(
'level' => $lv,
's' => $search,
'paged' => 1,
),
$base_url
)
);
?>
"
class="ab-log-level-tab <?php echo $level === $lv ? 'ab-log-level-active' : ''; ?>">
<?php echo esc_html( $lv_label ); ?>
</a>
@@ -119,14 +132,18 @@ $level_counts = [
<?php if ( $total_pages > 1 ) : ?>
<div class="ab-log-pagination">
<?php
echo wp_kses_post( paginate_links( [
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'current' => $paged,
'total' => $total_pages,
'prev_text' => '&laquo;',
'next_text' => '&raquo;',
] ) );
echo wp_kses_post(
paginate_links(
array(
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'current' => $paged,
'total' => $total_pages,
'prev_text' => '&laquo;',
'next_text' => '&raquo;',
)
)
);
?>
</div>
<?php endif; ?>

View File

@@ -11,7 +11,7 @@ if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$meta = [
$meta = array(
'topic' => get_post_meta( $post->ID, '_prautoblogger_topic', true ),
'type' => get_post_meta( $post->ID, '_prautoblogger_article_type', true ),
'model' => get_post_meta( $post->ID, '_prautoblogger_model_used', true ),
@@ -22,24 +22,24 @@ $meta = [
'seo_score' => get_post_meta( $post->ID, '_prautoblogger_seo_score', true ),
'generated_at' => get_post_meta( $post->ID, '_prautoblogger_generated_at', true ),
'keywords' => get_post_meta( $post->ID, '_prautoblogger_target_keywords', true ),
];
);
?>
<div class="prautoblogger-metabox">
<p>
<strong><?php esc_html_e( 'Generated:', 'prautoblogger' ); ?></strong>
<?php echo esc_html( $meta['generated_at'] ?: __( 'Unknown', 'prautoblogger' ) ); ?>
<?php echo esc_html( $meta['generated_at'] ? $meta['generated_at'] : __( 'Unknown', 'prautoblogger' ) ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Topic:', 'prautoblogger' ); ?></strong>
<?php echo esc_html( $meta['topic'] ?: '—' ); ?>
<?php echo esc_html( $meta['topic'] ? $meta['topic'] : '—' ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Type:', 'prautoblogger' ); ?></strong>
<?php echo esc_html( ucfirst( $meta['type'] ?: 'article' ) ); ?>
<?php echo esc_html( ucfirst( $meta['type'] ? $meta['type'] : 'article' ) ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Model:', 'prautoblogger' ); ?></strong>
<?php echo esc_html( $meta['model'] ?: '—' ); ?>
<?php echo esc_html( $meta['model'] ? $meta['model'] : '—' ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Pipeline:', 'prautoblogger' ); ?></strong>
@@ -47,8 +47,8 @@ $meta = [
</p>
<p>
<strong><?php esc_html_e( 'Editor Verdict:', 'prautoblogger' ); ?></strong>
<span class="prautoblogger-verdict-<?php echo esc_attr( $meta['verdict'] ?: 'unknown' ); ?>">
<?php echo esc_html( ucfirst( $meta['verdict'] ?: __( 'Unknown', 'prautoblogger' ) ) ); ?>
<span class="prautoblogger-verdict-<?php echo esc_attr( $meta['verdict'] ? $meta['verdict'] : 'unknown' ); ?>">
<?php echo esc_html( ucfirst( $meta['verdict'] ? $meta['verdict'] : __( 'Unknown', 'prautoblogger' ) ) ); ?>
</span>
</p>
<?php if ( $meta['quality_score'] ) : ?>
@@ -69,7 +69,7 @@ $meta = [
<?php if ( $meta['keywords'] ) : ?>
<p>
<strong><?php esc_html_e( 'Keywords:', 'prautoblogger' ); ?></strong>
<?php echo esc_html( implode( ', ', json_decode( $meta['keywords'], true ) ?: [] ) ); ?>
<?php echo esc_html( implode( ', ', ( json_decode( $meta['keywords'], true ) ? json_decode( $meta['keywords'], true ) : array() ) ) ); ?>
</p>
<?php endif; ?>
</div>

View File

@@ -141,7 +141,7 @@ $bulk_type = isset( $_GET['prautoblogger_bulk_type'] ) ? sanitize_text_field( wp
$quality_score = get_post_meta( $post_id, '_prautoblogger_quality_score', true );
$generated_at = get_post_meta( $post_id, '_prautoblogger_generated_at', true );
$editor_notes = get_post_meta( $post_id, '_prautoblogger_editor_notes', true );
$verdict_class = 'prautoblogger-verdict-' . sanitize_html_class( $verdict ?: 'pending' );
$verdict_class = 'prautoblogger-verdict-' . sanitize_html_class( $verdict ? $verdict : 'pending' );
?>
<tr data-post-id="<?php echo esc_attr( (string) $post_id ); ?>">
<td class="check-column">
@@ -158,9 +158,9 @@ $bulk_type = isset( $_GET['prautoblogger_bulk_type'] ) ? sanitize_text_field( wp
<div class="prautoblogger-editor-notes"><?php echo esc_html( $editor_notes ); ?></div>
<?php endif; ?>
</td>
<td><?php echo esc_html( $topic ?: '—' ); ?></td>
<td><?php echo esc_html( ucfirst( $article_type ?: 'article' ) ); ?></td>
<td><span class="<?php echo esc_attr( $verdict_class ); ?>"><?php echo esc_html( ucfirst( $verdict ?: 'pending' ) ); ?></span></td>
<td><?php echo esc_html( $topic ? $topic : '—' ); ?></td>
<td><?php echo esc_html( ucfirst( $article_type ? $article_type : 'article' ) ); ?></td>
<td><span class="<?php echo esc_attr( $verdict_class ); ?>"><?php echo esc_html( ucfirst( $verdict ? $verdict : 'pending' ) ); ?></span></td>
<td><?php echo '' !== $quality_score ? esc_html( $quality_score . '/10' ) : '—'; ?></td>
<td><?php echo $generated_at ? esc_html( wp_date( 'M j, g:i A', strtotime( $generated_at ) ) ) : '—'; ?></td>
<td class="prautoblogger-queue-actions">