/** * REST API: WP_REST_Post_Types_Controller class * * @package WordPress * @subpackage REST_API * @since 4.7.0 */ /** * Core class to access post types via the REST API. * * @since 4.7.0 * * @see WP_REST_Controller */ class WP_REST_Post_Types_Controller extends WP_REST_Controller { /** * Constructor. * * @since 4.7.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'types'; } /** * Registers the routes for post types. * * @since 4.7.0 * * @see register_rest_route() */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_items' ), 'permission_callback' => array( $this, 'get_items_permissions_check' ), 'args' => $this->get_collection_params(), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P[\w-]+)', array( 'args' => array( 'type' => array( 'description' => __( 'An alphanumeric identifier for the post type.' ), 'type' => 'string', ), ), array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => '__return_true', 'args' => array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); } /** * Checks whether a given request has permission to read types. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return true|WP_Error True if the request has read access, WP_Error object otherwise. */ public function get_items_permissions_check( $request ) { if ( 'edit' === $request['context'] ) { $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( current_user_can( $type->cap->edit_posts ) ) { return true; } } return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; } /** * Retrieves all public post types. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_items( $request ) { if ( $request->is_method( 'HEAD' ) ) { // Return early as this handler doesn't add any response headers. return new WP_REST_Response( array() ); } $data = array(); $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); foreach ( $types as $type ) { if ( 'edit' === $request['context'] && ! current_user_can( $type->cap->edit_posts ) ) { continue; } $post_type = $this->prepare_item_for_response( $type, $request ); $data[ $type->name ] = $this->prepare_response_for_collection( $post_type ); } return rest_ensure_response( $data ); } /** * Retrieves a specific post type. * * @since 4.7.0 * * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure. */ public function get_item( $request ) { $obj = get_post_type_object( $request['type'] ); if ( empty( $obj ) ) { return new WP_Error( 'rest_type_invalid', __( 'Invalid post type.' ), array( 'status' => 404 ) ); } if ( empty( $obj->show_in_rest ) ) { return new WP_Error( 'rest_cannot_read_type', __( 'Cannot view post type.' ), array( 'status' => rest_authorization_required_code() ) ); } if ( 'edit' === $request['context'] && ! current_user_can( $obj->cap->edit_posts ) ) { return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) ); } $data = $this->prepare_item_for_response( $obj, $request ); return rest_ensure_response( $data ); } /** * Prepares a post type object for serialization. * * @since 4.7.0 * @since 5.9.0 Renamed `$post_type` to `$item` to match parent class for PHP 8 named parameter support. * * @param WP_Post_Type $item Post type object. * @param WP_REST_Request $request Full details about the request. * @return WP_REST_Response Response object. */ public function prepare_item_for_response( $item, $request ) { // Restores the more descriptive, specific name for use within this method. $post_type = $item; // Don't prepare the response body for HEAD requests. if ( $request->is_method( 'HEAD' ) ) { /** This filter is documented in wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php */ return apply_filters( 'rest_prepare_post_type', new WP_REST_Response( array() ), $post_type, $request ); } $taxonomies = wp_list_filter( get_object_taxonomies( $post_type->name, 'objects' ), array( 'show_in_rest' => true ) ); $taxonomies = wp_list_pluck( $taxonomies, 'name' ); $base = ! empty( $post_type->rest_base ) ? $post_type->rest_base : $post_type->name; $namespace = ! empty( $post_type->rest_namespace ) ? $post_type->rest_namespace : 'wp/v2'; $supports = get_all_post_type_supports( $post_type->name ); $fields = $this->get_fields_for_response( $request ); $data = array(); if ( rest_is_field_included( 'capabilities', $fields ) ) { $data['capabilities'] = $post_type->cap; } if ( rest_is_field_included( 'description', $fields ) ) { $data['description'] = $post_type->description; } if ( rest_is_field_included( 'hierarchical', $fields ) ) { $data['hierarchical'] = $post_type->hierarchical; } if ( rest_is_field_included( 'has_archive', $fields ) ) { $data['has_archive'] = $post_type->has_archive; } if ( rest_is_field_included( 'visibility', $fields ) ) { $data['visibility'] = array( 'show_in_nav_menus' => (bool) $post_type->show_in_nav_menus, 'show_ui' => (bool) $post_type->show_ui, ); } if ( rest_is_field_included( 'viewable', $fields ) ) { $data['viewable'] = is_post_type_viewable( $post_type ); } if ( rest_is_field_included( 'labels', $fields ) ) { $data['labels'] = $post_type->labels; } if ( rest_is_field_included( 'name', $fields ) ) { $data['name'] = $post_type->label; } if ( rest_is_field_included( 'slug', $fields ) ) { $data['slug'] = $post_type->name; } if ( rest_is_field_included( 'icon', $fields ) ) { $data['icon'] = $post_type->menu_icon; } if ( rest_is_field_included( 'supports', $fields ) ) { $data['supports'] = $supports; } if ( rest_is_field_included( 'taxonomies', $fields ) ) { $data['taxonomies'] = array_values( $taxonomies ); } if ( rest_is_field_included( 'rest_base', $fields ) ) { $data['rest_base'] = $base; } if ( rest_is_field_included( 'rest_namespace', $fields ) ) { $data['rest_namespace'] = $namespace; } if ( rest_is_field_included( 'template', $fields ) ) { $data['template'] = $post_type->template ?? array(); } if ( rest_is_field_included( 'template_lock', $fields ) ) { $data['template_lock'] = ! empty( $post_type->template_lock ) ? $post_type->template_lock : false; } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); // Wrap the data in a response object. $response = rest_ensure_response( $data ); if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) { $response->add_links( $this->prepare_links( $post_type ) ); } /** * Filters a post type returned from the REST API. * * Allows modification of the post type data right before it is returned. * * @since 4.7.0 * * @param WP_REST_Response $response The response object. * @param WP_Post_Type $post_type The original post type object. * @param WP_REST_Request $request Request used to generate the response. */ return apply_filters( 'rest_prepare_post_type', $response, $post_type, $request ); } /** * Prepares links for the request. * * @since 6.1.0 * * @param WP_Post_Type $post_type The post type. * @return array Links for the given post type. */ protected function prepare_links( $post_type ) { return array( 'collection' => array( 'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ), ), 'https://api.w.org/items' => array( 'href' => rest_url( rest_get_route_for_post_type_items( $post_type->name ) ), ), ); } /** * Retrieves the post type's schema, conforming to JSON Schema. * * @since 4.7.0 * @since 4.8.0 The `supports` property was added. * @since 5.9.0 The `visibility` and `rest_namespace` properties were added. * @since 6.1.0 The `icon` property was added. * * @return array Item schema data. */ public function get_item_schema() { if ( $this->schema ) { return $this->add_additional_fields_schema( $this->schema ); } $schema = array( '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'type', 'type' => 'object', 'properties' => array( 'capabilities' => array( 'description' => __( 'All capabilities used by the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'description' => array( 'description' => __( 'A human-readable description of the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'hierarchical' => array( 'description' => __( 'Whether or not the post type should have children.' ), 'type' => 'boolean', 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'viewable' => array( 'description' => __( 'Whether or not the post type can be viewed.' ), 'type' => 'boolean', 'context' => array( 'edit' ), 'readonly' => true, ), 'labels' => array( 'description' => __( 'Human-readable labels for the post type for various contexts.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'name' => array( 'description' => __( 'The title for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'slug' => array( 'description' => __( 'An alphanumeric identifier for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'supports' => array( 'description' => __( 'All features, supported by the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, ), 'has_archive' => array( 'description' => __( 'If the value is a string, the value will be used as the archive slug. If the value is false the post type has no archive.' ), 'type' => array( 'string', 'boolean' ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'taxonomies' => array( 'description' => __( 'Taxonomies associated with post type.' ), 'type' => 'array', 'items' => array( 'type' => 'string', ), 'context' => array( 'view', 'edit' ), 'readonly' => true, ), 'rest_base' => array( 'description' => __( 'REST base route for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'rest_namespace' => array( 'description' => __( 'REST route\'s namespace for the post type.' ), 'type' => 'string', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'visibility' => array( 'description' => __( 'The visibility settings for the post type.' ), 'type' => 'object', 'context' => array( 'edit' ), 'readonly' => true, 'properties' => array( 'show_ui' => array( 'description' => __( 'Whether to generate a default UI for managing this post type.' ), 'type' => 'boolean', ), 'show_in_nav_menus' => array( 'description' => __( 'Whether to make the post type available for selection in navigation menus.' ), 'type' => 'boolean', ), ), ), 'icon' => array( 'description' => __( 'The icon for the post type.' ), 'type' => array( 'string', 'null' ), 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ), 'template' => array( 'type' => array( 'array' ), 'description' => __( 'The block template associated with the post type.' ), 'readonly' => true, 'context' => array( 'view', 'edit', 'embed' ), ), 'template_lock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ), 'description' => __( 'The template_lock associated with the post type, or false if none.' ), 'readonly' => true, 'context' => array( 'view', 'edit', 'embed' ), ), ), ); $this->schema = $schema; return $this->add_additional_fields_schema( $this->schema ); } /** * Retrieves the query params for collections. * * @since 4.7.0 * * @return array Collection parameters. */ public function get_collection_params() { return array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), ); } } Comment la culture numérique transforme notre rapport à l’art et à l’expression créative – Chambers Of Vikramaditya

Comment la culture numérique transforme notre rapport à l’art et à l’expression créative

Introduction : de la perception du jeu à celle de l’art numérique

Depuis l’avènement de la culture numérique, notre manière d’appréhender la créativité et l’expression artistique a connu une révolution profonde. Les nouvelles technologies ont bouleversé les frontières traditionnelles entre le jeu, la création et l’art, en introduisant des formes d’interaction inédites qui redéfinissent notre rapport à l’œuvre et à l’expérience esthétique. Initialement perçu comme un simple divertissement ou un loisir, le numérique s’est aujourd’hui imposé comme un vecteur majeur de transformation de l’art contemporain, permettant une démocratisation sans précédent de la création. Pour mieux comprendre cette mutation, il est essentiel de revenir sur la façon dont la culture numérique influence nos perceptions, en particulier dans le contexte francophone où ces évolutions prennent une ampleur considérable.

Table des matières

L’émergence de nouvelles formes artistiques à l’ère numérique

L’intégration du numérique dans le champ artistique a permis l’émergence de formes innovantes, telles que l’art digital, la réalité augmentée, ou encore la vidéo interactive. Ces nouvelles expressions ne remplacent pas nécessairement les formes traditionnelles, mais en constituent une extension, élargissant la palette créative des artistes. Par exemple, en France, des artistes comme Joanie Lemercier ou Romain Tardy exploitent la projection numérique pour créer des installations immersives qui transcendent la simple œuvre d’art en une expérience sensorielle totale. La démocratisation des outils numériques, tels que les logiciels de modélisation ou de création sonore, a permis à un public plus large de participer à la production artistique, rendant la création accessible à tous, et non plus réservée à une élite.

Les plateformes en ligne jouent également un rôle crucial dans la diffusion et la valorisation de ces œuvres numériques. Des sites comme Behance ou ArtStation offrent aux artistes francophones un espace d’exposition global, facilitant la rencontre entre créateurs et publics du monde entier. Cette circulation mondiale favorise un dialogue interculturel riche, où chaque culture peut nourrir et s’enrichir des autres à travers des œuvres numériques partagées instantanément. La capacité à diffuser rapidement et à recueillir des réactions immédiates a transformé la manière dont l’art est perçu, valorisé et critique dans notre société contemporaine.

La participation et l’interactivité comme moteurs de l’expression créative

L’un des apports majeurs du numérique dans le domaine artistique réside dans la possibilité pour le public de devenir acteur de l’œuvre. La co-création, par exemple, est devenue une pratique courante dans les projets collaboratifs en France et francophonie, où artistes et spectateurs contribuent conjointement à façonner l’œuvre finale. Les plateformes numériques encouragent cette participation active, transformant le spectateur en un véritable partenaire créatif.

« L’interactivité permet de briser la frontière entre l’artiste et le spectateur, créant un espace où l’engagement devient expérience. » — Analyse de la révolution numérique dans l’art contemporain.

Les expériences immersives, telles que celles proposées par des expositions en réalité virtuelle ou augmentée, offrent de nouvelles dimensions à la perception artistique. Par exemple, en France, des institutions comme le Centre Pompidou mettent en avant des œuvres interactives où le public peut manipuler virtuellement des éléments artistiques, redéfinissant ainsi la relation à l’œuvre et à l’espace d’exposition. Ces innovations rendent l’art plus accessible, plus dynamique, et surtout plus participatif, favorisant un lien émotionnel plus profond avec le public.

La dématérialisation et ses implications pour l’expérience esthétique

La transformation de l’objet d’art traditionnel en une expérience numérique ou virtuelle soulève des questions fondamentales sur la nature même de l’art. La dématérialisation permet la création d’œuvres éphémères, accessibles à tout moment et en tout lieu, comme les installations numériques ou les œuvres interactives en ligne. Cependant, cette fluidité soulève également la problématique de l’authenticité : comment garantir la valeur d’une œuvre lorsqu’elle n’est plus tangible ? En France, des artistes et institutions expérimentent avec des œuvres éphémères ou virtuelles, cherchant à établir de nouvelles formes de possession et de reconnaissance artistique.

De plus, la conservation de l’art numérique devient un enjeu majeur. Contrairement aux œuvres physiques, les œuvres virtuelles nécessitent des formats et des plateformes spécifiques pour leur pérennité. La question de leur archivage, de leur restauration ou de leur accès à long terme reste encore en pleine discussion, notamment dans le contexte français où la préservation du patrimoine numérique devient une priorité pour diverses institutions culturelles.

La culture numérique comme vecteur d’ouverture interculturelle dans l’art

Les plateformes numériques facilitent la circulation mondiale des œuvres et des idées, permettant à des artistes issus de cultures diverses de partager leur vision avec un public international. En France, cette dynamique a permis la diffusion d’artistes issus de l’Afrique, du Moyen-Orient ou d’Asie, enrichissant ainsi le dialogue interculturel. La diversité des expressions culturelles s’amplifie et se transforme grâce aux outils numériques, qui deviennent de véritables ponts entre différentes traditions artistiques.

Ce dialogue interculturel favorise l’émergence de nouvelles formes hybrides, où l’art traditionnel rencontre les techniques modernes. Par exemple, des artistes comme Kader Attia ou Yto Barrada intègrent souvent dans leurs œuvres des éléments issus de diverses cultures, diffusés et discutés via les réseaux sociaux ou les plateformes collaboratives, contribuant à une compréhension mutuelle plus profonde dans un monde globalisé.

L’impact des nouvelles technologies sur la perception de l’art et de la créativité

L’intelligence artificielle, par exemple, permet de générer automatiquement des œuvres d’art ou d’assister les artistes dans leur processus créatif. En France, des laboratoires comme L’Atelier des Lumières exploitent l’IA pour créer des projections artistiques à couper le souffle, où la machine devient une partenaire plutôt qu’un simple outil. Ces innovations soulignent une évolution vers une créativité hybride, où l’humain et la machine collaborent pour produire des œuvres inédites.

La réalité augmentée et la réalité virtuelle offrent également des expériences immersives qui modifient notre rapport à l’art. Des expositions comme « Réalité Virtuelle et Art » au Musée d’Orsay illustrent comment ces technologies peuvent rendre l’art plus accessible et engageant, tout en posant des questions sur l’authenticité et la paternité des œuvres. La perception de l’artiste en tant qu’auteur s’en trouve ainsi profondément modifiée, suscitant des débats éthiques et philosophiques que la communauté artistique française examine activement.

La frontière entre jeu, créativité et art dans l’univers numérique

L’univers numérique brouille la ligne entre jeu, créativité et art, en proposant une ludicisation de l’expression artistique. Des jeux vidéo comme « Gris » ou « Monument Valley » illustrent cette tendance, où l’expérience ludique devient une forme d’art à part entière. La valorisation du processus créatif, souvent plus que le résultat final, encourage une démarche où l’expérimentation et la découverte sont valorisées autant que la production achevée.

« La créativité dans l’univers numérique devient un jeu sans fin, où chaque outil devient un partenaire d’exploration. » — Analyse du rapport entre jeu et art dans la culture digitale.

Les outils numériques favorisent une approche ludique de la création, où l’on expérimente sans peur de l’échec, et où le processus même devient une source d’inspiration. Cela transforme la perception de l’art, qui n’est plus seulement un résultat à contempler, mais une expérience en constante évolution, un jeu permanent avec les possibilités offertes par la technologie.

Conclusion : vers une nouvelle conception de l’art à l’ère numérique

En résumé, la culture numérique a profondément bouleversé notre rapport à l’art et à l’expression créative. Elle a permis l’émergence de formes inédites, favorisé la participation active du public, et ouvert de nouveaux horizons interculturels. Par ailleurs, les technologies comme l’intelligence artificielle ou la réalité virtuelle redéfinissent la paternité, l’authenticité et la conservation des œuvres. Face à ces évolutions, il devient crucial d’adopter une posture réflexive, afin de saisir pleinement les enjeux et opportunités offertes par cette mutation. La continuité entre jeu, créativité et art, dans un espace numérique toujours en mouvement, nous invite à repenser nos perceptions et à envisager l’avenir artistique avec curiosité et responsabilité.

Leave a Comment

Your email address will not be published. Required fields are marked *