= ( $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' ); } } Programme DigiFemmes: les bénéficiaires s’ouvrent au monde extérieur - JusteInfos- Information générale
topheader

Programme DigiFemmes: les bénéficiaires s’ouvrent au monde extérieur

162
S'inscrire à la newsletter

- Advertisement -

Listen to this article

Le Programme DigiFemmes a, depuis ce samedi 29 avril 2023, ouvert deux (2) jours de journées portes ouvertes au sein de son siège dénommé ‘‘Campus DigiFemmes’’ sis à la Riviera Bonoumin. Selon Nadine Zoro épouse N’Guettia, directrice du Programme DigiFemmes, ces journées portes ouvertes répondent à plusieurs objectifs.

« Ces journées portes ouvertes répondent à ce besoin de permettre aux apprenantes du Programme de rentrer en contact avec la communauté générale et de permettre à cette communauté générale de voir ce que nous faisons avec ce programme. C’est aussi l’occasion pour les femmes entrepreneures qui font partie du Programme DigiFemmes d’avoir une foire et d’exposer leurs produits. C’est un moment convivial de rencontre. C’est un moment de visite de campus DigiFemmes. C’est aussi un moment de prise de contact et de compréhension améliorée du Programme DigiFemmes », a indiqué la directrice Nadine Zoro.

Lire aussi: https://fr.news.yahoo.com/maroc-foot-incidents-lors-dun-011249048.html

Pendant ces deux jours de journées portes ouvertes, il est prévu, à en croire la directrice du Programme DigiFemmes, une foire qui permettra à 50 entrepreneures dudit programme d’exposer leurs produits. « Que ce soit les entrepreneures qui sont dans la composante DigiFemmes Entrepreneure ou DigiFemmes Académy, ou même de DigiFemmes Start, elles seront là pour présenter leurs produits.

Nadine Zoro, épouse N’Guettia, directrice du Programme DigiFemmes a donné les raisons de l’ouverture du campus DigiFemmes au grand public.

En plus de ça, on aura des sessions de questions-réponses où tous les managers au programme seront présents pour répondre à toutes les questions de la communauté sur le Programme et pourront aussi ajouter les personnes qu’il faut dans les composantes qui sont concernées », a tenu à préciser Mme N’Guettia.

Pour cette deuxième occasion de journées portes ouvertes sur l’extérieur, le Programme DigiFemme attend plus de 300 visiteurs durant ces deux jours (29 et 30 avril 2023), a déclaré la directrice. Plusieurs exposantes interrogées, ont dit les bienfaits des différents programmes de DigiFemmes dont elles sont bénéficiaires. Selon elles cela a ajouté une plu value à leur différente initiative.

En terme d’appel, Nadine Zoro épouse N’Guettia a fait une invitation. « Je voudrais dire à toutes les personnes qui ne connaissent pas le Programme DigiFemmes que c’est une aubaine pour les femmes. Et aujourd’hui, les communautés doivent saisir cette opportunité de bénéficier de plusieurs formations gratuites en tout ce qui est compétence digitale.

Et le Digital c’est aujourd’hui, le Digital ce n’est pas demain. Et les femmes ne peuvent pas rester en marge de cette marche digitale dans laquelle le monde s’en va. Donc si vous avez besoin de formation en terme de Digital, gratuitement, n’hésitez pas à entrer en contact avec nous à travers nos différentes pages. Si vous êtes une organisation qui accompagne les femmes entrepreneures ou les jeunes filles, n’hésitez pas à entrer en contact avec nous à travers nos différentes pages pour un partenariat pour qu’on puisse faire bénéficier notre plateforme de formation.

Et finalement, je voudrais dire que les bailleurs de ce Programme, que sont Millenium Challenge Corporation (MCC), l’USAID, MICROSOFT en plus de l’ENSEA, accompagnent ce Programme, parce qu’ils ont foi en ce programme en ce que le Digital c’est le futur. Parce que ça ne peut pas se faire sans les femmes. Donc n’hésitez pas. Ayez confiance en nous. Et c’est un programme sur 3 ans qui va venir bouleverser l’écosystème entrepreneurial ivoirien », a-t-elle lancé.

Il faut noter que les exposants, bénéficiaires des Programmes Start, Academy et Entrepreneure animent des stands pour présenter leurs savoir-faire aux visiteurs durant ces deux jours de journées portes ouvertes.

Il est bon de savoir que le Programme DigiFemmes est une initiative du Millennium Challenge Corporation (MCC) et de l’USAID en partenariat avec Microsoft et l’ENSEA. Cette initiative vise à améliorer la capacité des femmes entrepreneures ivoiriennes à diriger et à développer des entreprises prospères en tirant parti des compétences numériques et de l’analyse et compréhension de données.

D’une durée de 3 ans et d’un montant financé de USD 3 Millions, le Programme DigiFemmes est indépendant mais complémentaire au programme Compact d’une valeur de USD 536 Million du Millennium Challenge Corporation (MCC) et du Millennium Challenge Account (MCA) également en cours en Côte d’Ivoire.

Lire aussi: https://justeinfos.net/femua-15-le-maire-djibo-youssouf-sonne-la-mobilisation-a-bouake/

Au dire de la directrice, Nadine Zoro épouse N’Guettia, ce Programme a débuté son implémentation en juin 2022 et a débuté son travail en arrière-plan depuis avril 2022.

Benoît Kadjo

- Advertisement -

- Advertisement -

- Advertisement -

- Advertisement -

arzh-CNenfrdeptruessw