feat(phase2b): P2b.5 — Authority admin controls + new-stage panels (#182, v0.32.0)
Surfaces the master enable toggle (default OFF), per-category tier-map editor, citation threshold, and curate/seo/authority step panels + research-agent-count/editorial-max-rounds in Pipeline Settings. Image pipeline honors _prautoblogger_imagery_suppressed. Completes Phase 2b. QA APPROVE-WITH-P2 d1447340; CI green (phpcs+phpunit VPS-verified). 3 trivial P2 docs/cleanup follow-ups noted. Agent-Session: prab-phase2b-5-merge
This commit is contained in:
@@ -15,6 +15,9 @@ declare(strict_types=1);
|
||||
* M3 additions: passes preview/history nonces and version-list data per
|
||||
* prompt panel so the Template/Preview toggle and version history
|
||||
* accordion have everything they need server-side.
|
||||
* P2b.5 addition: build_option_field_values() has a special case for
|
||||
* prautoblogger_category_tiers_input — converts the stored serialised
|
||||
* array back to "slug: tier" lines for the textarea.
|
||||
* Who calls it: PRAutoBlogger_Pipeline_Settings_Page::render_page() after save.
|
||||
* Dependencies: PRAutoBlogger_Pipeline_Settings_Step_Map (step list),
|
||||
* PRAutoBlogger_Pipeline_Settings_Option_Fields (step option defs),
|
||||
@@ -79,12 +82,27 @@ class PRAutoBlogger_Pipeline_Settings_Renderer {
|
||||
/**
|
||||
* Build current option values for all fields in a context.
|
||||
*
|
||||
* Special case: prautoblogger_category_tiers_input is a virtual field whose
|
||||
* value is derived from the serialised prautoblogger_category_tiers array —
|
||||
* not a stored string option. The renderer converts the array back to
|
||||
* "slug: tier" textarea lines here so the template needs no extra logic.
|
||||
*
|
||||
* @param string $context Step context identifier.
|
||||
* @return array<int, array<string, mixed>>
|
||||
*/
|
||||
public function build_option_field_values( string $context ): array {
|
||||
$fields = PRAutoBlogger_Pipeline_Settings_Option_Fields::get_fields_for_context( $context );
|
||||
foreach ( $fields as &$field ) {
|
||||
if ( 'prautoblogger_category_tiers_input' === $field['id'] ) {
|
||||
// Convert the stored array back to "slug: tier" lines for the textarea.
|
||||
$tiers = get_option( 'prautoblogger_category_tiers', array() );
|
||||
$lines = array();
|
||||
foreach ( $tiers as $slug => $tier ) {
|
||||
$lines[] = esc_attr( $slug ) . ': ' . esc_attr( $tier );
|
||||
}
|
||||
$field['current'] = implode( "\n", $lines );
|
||||
continue;
|
||||
}
|
||||
$field['current'] = get_option( $field['id'], $field['default'] ?? '' );
|
||||
}
|
||||
unset( $field );
|
||||
|
||||
Reference in New Issue
Block a user