module_list( array(), array() ); } /** * Lists modules. * * ## OPTIONS * * [--format=] * : Output format. * --- * default: table * options: * - table * - json * - csv * --- * * ## EXAMPLES * * wp wpiseo module-list * * @subcommand module-list * * @param array $args Positional arguments. * @param array $assoc_args Named arguments. */ public function module_list( array $args, array $assoc_args ): void { $rows = array_map( static function ( array $module ): array { if ( ! $module['implemented'] ) { $status = 'planned (phase ' . $module['phase'] . ')'; } elseif ( $module['active'] ) { $status = 'active'; } elseif ( $module['enabled'] && ! $module['available'] ) { $status = 'unavailable'; } else { $status = $module['enabled'] ? 'enabled' : 'disabled'; } return array( 'id' => $module['id'], 'label' => $module['label'], 'status' => $status, 'required' => $module['required'] ? 'yes' : 'no', ); }, Plugin::instance()->modules()->describe() ); Utils\format_items( $assoc_args['format'] ?? 'table', $rows, array( 'id', 'label', 'status', 'required' ) ); } /** * Enables a module. * * ## OPTIONS * * * : Module ID. * * ## EXAMPLES * * wp wpiseo module-enable local * * @subcommand module-enable * * @param array $args Positional arguments. */ public function module_enable( array $args ): void { $this->toggle_module( $args[0], true ); } /** * Disables a module. * * ## OPTIONS * * * : Module ID. * * ## EXAMPLES * * wp wpiseo module-disable local * * @subcommand module-disable * * @param array $args Positional arguments. */ public function module_disable( array $args ): void { $this->toggle_module( $args[0], false ); } /** * Lists template variables. * * ## OPTIONS * * [--format=] * : Output format. * --- * default: table * options: * - table * - json * - csv * --- * * @subcommand variables * * @param array $args Positional arguments. * @param array $assoc_args Named arguments. */ public function variables( array $args, array $assoc_args ): void { $rows = array(); foreach ( Plugin::instance()->variables()->all() as $name => $variable ) { $rows[] = array( 'variable' => $variable['example'], 'label' => $variable['label'], 'description' => $variable['description'], ); } Utils\format_items( $assoc_args['format'] ?? 'table', $rows, array( 'variable', 'label', 'description' ) ); } /** * Renders a title/description template. * * ## OPTIONS * *