= ( $attributes['minutes'] ?? 0 ); $elements = $this->transform_duration_to_string( $days, $hours, $minutes ); $elements_length = \count( $elements ); switch ( $elements_length ) { case 1: return $elements[0]; case 2: return \sprintf( /* translators: %s expands to a unit of time (e.g. 1 day). */ \__( '%1$s and %2$s', 'wordpress-seo' ), ...$elements ); case 3: return \sprintf( /* translators: %s expands to a unit of time (e.g. 1 day). */ \__( '%1$s, %2$s and %3$s', 'wordpress-seo' ), ...$elements ); default: return ''; } } /** * Presents the duration text of the How-To block in the site language. * * @param array $attributes The attributes. * @param string $content The content. * * @return string The content with the duration text in the site language. */ public function present_duration_text( $attributes, $content ) { $duration = $this->build_duration_string( $attributes ); // 'Time needed:' is the default duration text that will be shown if a user doesn't add one. $duration_text = \__( 'Time needed:', 'wordpress-seo' ); if ( isset( $attributes['durationText'] ) && $attributes['durationText'] !== '' ) { $duration_text = $attributes['durationText']; } return \preg_replace( '/(

)(.*<\/span>)(.[^\/p>]*)(<\/p>)/', '

' . $duration_text . ' ' . $duration . '

', $content, 1 ); } /** * Optimizes images in the How-To blocks. * * @param array $attributes The attributes. * @param string $content The content. * * @return string The content with images optimized. */ public function optimize_how_to_images( $attributes, $content ) { if ( ! isset( $attributes['steps'] ) ) { return $content; } $content = $this->present_duration_text( $attributes, $content ); return $this->optimize_images( $attributes['steps'], 'text', $content ); } /** * Optimizes images in structured data blocks. * * @param array $elements The list of elements from the block attributes. * @param string $key The key in the data to iterate over. * @param string $content The content. * * @return string The content with images optimized. */ private function optimize_images( $elements, $key, $content ) { global $post; if ( ! $post ) { return $content; } $this->add_images_from_attributes_to_used_cache( $post->ID, $elements, $key ); // Then replace all images with optimized versions in the content. $content = \preg_replace_callback( '/]+>/', function ( $matches ) { \preg_match( '/src="([^"]+)"/', $matches[0], $src_matches ); if ( ! $src_matches || ! isset( $src_matches[1] ) ) { return $matches[0]; } $attachment_id = $this->attachment_src_to_id( $src_matches[1] ); if ( $attachment_id === 0 ) { return $matches[0]; } $image_size = 'full'; $image_style = [ 'style' => 'max-width: 100%; height: auto;' ]; \preg_match( '/style="[^"]*width:\s*(\d+)px[^"]*"/', $matches[0], $style_matches ); if ( $style_matches && isset( $style_matches[1] ) ) { $width = (int) $style_matches[1]; $meta_data = \wp_get_attachment_metadata( $attachment_id ); if ( isset( $meta_data['height'] ) && isset( $meta_data['width'] ) && $meta_data['height'] > 0 && $meta_data['width'] > 0 ) { $aspect_ratio = ( $meta_data['height'] / $meta_data['width'] ); $height = ( $width * $aspect_ratio ); $image_size = [ $width, $height ]; } $image_style = ''; } /** * Filter: 'wpseo_structured_data_blocks_image_size' - Allows adjusting the image size in structured data blocks. * * @since 18.2 * * @param string|int[] $image_size The image size. Accepts any registered image size name, or an array of width and height values in pixels (in that order). * @param int $attachment_id The id of the attachment. * @param string $attachment_src The attachment src. */ $image_size = \apply_filters( 'wpseo_structured_data_blocks_image_size', $image_size, $attachment_id, $src_matches[1] ); $image_html = \wp_get_attachment_image( $attachment_id, $image_size, false, $image_style ); if ( empty( $image_html ) ) { return $matches[0]; } return $image_html; }, $content ); if ( ! $this->registered_shutdown_function ) { \register_shutdown_function( [ $this, 'maybe_save_used_caches' ] ); $this->registered_shutdown_function = true; } return $content; } /** * If the caches of structured data block images have been changed, saves them. * * @return void */ public function maybe_save_used_caches() { foreach ( $this->used_caches as $post_id => $used_cache ) { if ( isset( $this->caches[ $post_id ] ) && $used_cache === $this->caches[ $post_id ] ) { continue; } \update_post_meta( $post_id, 'yoast-structured-data-blocks-images-cache', $used_cache ); } } /** * Converts an attachment src to an attachment ID. * * @param string $src The attachment src. * * @return int The attachment ID. 0 if none was found. */ private function attachment_src_to_id( $src ) { global $post; if ( isset( $this->used_caches[ $post->ID ][ $src ] ) ) { return $this->used_caches[ $post->ID ][ $src ]; } $cache = $this->get_cache_for_post( $post->ID ); if ( isset( $cache[ $src ] ) ) { $this->used_caches[ $post->ID ][ $src ] = $cache[ $src ]; return $cache[ $src ]; } $this->used_caches[ $post->ID ][ $src ] = $this->image_helper->get_attachment_by_url( $src ); return $this->used_caches[ $post->ID ][ $src ]; } /** * Returns the cache from postmeta for a given post. * * @param int $post_id The post ID. * * @return array The images cache. */ private function get_cache_for_post( $post_id ) { if ( isset( $this->caches[ $post_id ] ) ) { return $this->caches[ $post_id ]; } $cache = \get_post_meta( $post_id, 'yoast-structured-data-blocks-images-cache', true ); if ( ! $cache ) { $cache = []; } $this->caches[ $post_id ] = $cache; return $cache; } /** * Adds any images that have their ID in the block attributes to the cache. * * @param int $post_id The post ID. * @param array $elements The elements. * @param string $key The key in the elements we should loop over. * * @return void */ private function add_images_from_attributes_to_used_cache( $post_id, $elements, $key ) { // First grab all image IDs from the attributes. $images = []; foreach ( $elements as $element ) { if ( ! isset( $element[ $key ] ) ) { continue; } if ( isset( $element[ $key ] ) && \is_array( $element[ $key ] ) ) { foreach ( $element[ $key ] as $part ) { if ( ! \is_array( $part ) || ! isset( $part['type'] ) || $part['type'] !== 'img' ) { continue; } if ( ! isset( $part['key'] ) || ! isset( $part['props']['src'] ) ) { continue; } $images[ $part['props']['src'] ] = (int) $part['key']; } } } if ( isset( $this->used_caches[ $post_id ] ) ) { $this->used_caches[ $post_id ] = \array_merge( $this->used_caches[ $post_id ], $images ); } else { $this->used_caches[ $post_id ] = $images; } } /* DEPRECATED METHODS */ /** * Enqueue Gutenberg block assets for backend editor. * * @deprecated 22.7 * @codeCoverageIgnore * * @return void */ public function enqueue_block_editor_assets() { \_deprecated_function( __METHOD__, 'Yoast SEO 22.7' ); } } Festival Leeré 2021: c’est parti pour la deuxième édition - Infos Culture du Faso
jeu 21 novembre 2024

Suivez-nous sur les réseaux sociaux

spot_img

Festival Leeré 2021: c’est parti pour la deuxième édition

Le lancement officiel de la deuxième édition du festival Leeré a eu lieu ce jeudi 11 novembre 2021. Placée sous le thème <<Unité et réconciliation nationale>>, la présente édition se tient du 11 au 14 novembre en face de l’hôtel de Ville de Zabré.

Pendant 96h, Zabré vibrera aux rythmes du deuxième rendez-vous annuel du Festival Leeré. En effet, le festival Leeré vise à impulser une culture dynamique dans le secteur de l’événementiel au Burkina Faso et également de participer au processus de développement de la commune de Zabré. Il s’inscrit dans l’optique de soutenir les paysans dans les actions culturelles et d’accompagner des projets et des pratiques dédiées à l’industrie culturelle burkinabè.

Durant, quatre jours d’affilées, les filles et fils de la commune vont assisté entre autres à un concours de course cycliste des personnes handicapées, des bases musicales seront dispensés aux jeunes qui vont pouvoir lire sur une portée musicale, un dépistage gratuit de glycémie et de tension à l’endroit des paysans. Ensuite des artistes biens connu viendrons tenir en haleine les festivaliers. Ce sont notamment, Mariah Bissongo, Ismo Vitalo, Awa Boussim, Kayawoto et bien d’autres. Le Samedi 13 novembre, une émission cocktail sera enregistrée à Zabré.

Selon Caleb Zinsonni alias Kezy, artiste-musicien et promoteur du festival, pour qu’un pays où une commune puisse se développer, il faut l’unité des fils et filles du pays. C’est ce qui justifie le choix du thème de l’édition <<unité et réconciliation nationale>>. Dans ce sens, dit il, il faut qu’on laisse les petites querelles, les différents et que chacun mette de l’eau dans son vin. Pour lui, l’objectif recherché, c’est d’abord réunir les fils et filles de Zabré autour d’un festival pour communier et conjuguer le même verbe et que la commune soit animée. Par ailleurs, il a invité les habitants à s’approprier le festival car il accorde plus de visibilité à la commune et fait vivre des moments agréables à travers la musique live.

Issouf Kiendrebéogo, commençant de profession, explique les raisons de sa présence.  »Je suis venu pour prendre part à ce festival parce qu’il réunit autant de personnes. Je vends du Faso Dan Fani parce que c’est un produit local accessible à tous. Nous félicitons les orgasiteurs puis nous demandons qu’il y ait plus d’innovation l’an prochain ». Même son de cloche pour Michel Abdouahou, Tradi-praticien béninois.  »Nous sommes plus Spécialisés dans la pharmacopée et nous sommes là pour porter notre contribution au rayonnement du festival. Nous disons merci aux acteurs culturels qui ont organisé ce festival. Mais avant tout, j’ai un message à passer. Il faut qu’ils travaillent à se perfectionner dans les années à venir parce que nous avons exposé à l’extérieur du village dudit festival », a-t-il indiqué.

A noter qu’un service de santé s’est invité à ce festival pour un dépistage gratuit du Diabète et de la tension artérielle. Les membres dudit service ont fait savoir que lorsque les résultats d’un patient avèrent des taux élevés de sucre, ils le suggère de revenir faire un autre contrôle le lendemain avant d’aller se faire prendre en charge.

En rappel le festival continue jusqu’au 14 Novembre 2021.

André YAMEOGO (Stagiaire)

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Publicité

spot_img

Publicité

spot_img

Publicité

spot_img

Publicité

spot_img

Plus d'articles

Soutien à l’effort de paix : des jeunes burkinabè font un don à l’endroit des VDP

Le Centre National de Formation des Volontaires pour la...

Concert d’Elka 33 au CENASA: le regard est désormais fixé sur Koudougou

Entre prière et ambiance ElKA 33 a réalisé un...

Festival International Pulaaku : les lampions s’éteignent sur la 6e édition

Les portes de la 6e édition du festival international...

Vous ne pouvez pas copier le contenu de cette page