'object', 'properties' => (object) array(), ); } public function output_schema() { return array( 'type' => 'object', 'properties' => array( 'count' => array( 'type' => 'integer' ), 'sources' => array( 'type' => 'array' ), ), ); } public function execute( $input ) { $extensions = ExtensionFactory::get_instance()->get_all(); $modules = Modules::get_instance(); $result = array(); if ( is_array( $extensions ) ) { foreach ( $extensions as $key => $ext ) { if ( ! is_object( $ext ) ) { continue; } $module = isset( $ext->module ) ? $ext->module : ''; $result[] = array( 'id' => isset( $ext->id ) ? $ext->id : (string) $key, 'title' => isset( $ext->title ) ? $ext->title : '', 'type' => isset( $ext->types ) ? $ext->types : '', 'is_pro' => ! empty( $ext->is_pro ), 'module' => $module, 'module_enabled' => $module ? (bool) $modules->is_enabled( $module ) : true, ); } } return array( 'count' => count( $result ), 'sources' => $result, ); } }