); // This is needed as it's not supported in oEmbed discovery wp_oembed_add_provider( '|^https?://v\.wordpress\.com/([a-zA-Z\d]{8})(.+)?$|i', 'https://public-api.wordpress.com/oembed/?for=' . $host, true ); // phpcs:ignore WordPress.WP.CapitalPDangit.MisspelledInText add_filter( 'embed_oembed_html', array( __CLASS__, 'video_enqueue_bridge_when_oembed_present' ), 10, 4 ); } /** * Enqueues VideoPress token bridge when a VideoPress oembed is present on the current page. * * @param string|false $cache The cached HTML result, stored in post meta. * @param string $url The attempted embed URL. * @param array $attr An array of shortcode attributes. * @param int $post_ID Post ID. * * @return string|false */ public static function video_enqueue_bridge_when_oembed_present( $cache, $url, $attr, $post_ID = null ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable if ( Utils::is_videopress_url( $url ) ) { Jwt_Token_Bridge::enqueue_jwt_token_bridge(); } return $cache; } /** * Register all VideoPress blocks * * @return void */ public static function register_videopress_blocks() { // Register VideoPress Video block. self::register_videopress_video_block(); } /** * VideoPress video block render method * * @param array $block_attributes - Block attributes. * @param string $content - Current block markup. * @param WP_Block $block - Current block. * * @return string Block markup. */ public static function render_videopress_video_block( $block_attributes, $content, $block ) { global $wp_embed; // CSS classes $align = isset( $block_attributes['align'] ) ? $block_attributes['align'] : null; $align_class = $align ? ' align' . $align : ''; $custom_class = isset( $block_attributes['className'] ) ? ' ' . $block_attributes['className'] : ''; $classes = 'wp-block-jetpack-videopress jetpack-videopress-player' . $custom_class . $align_class; // Inline style $style = ''; $max_width = isset( $block_attributes['maxWidth'] ) ? $block_attributes['maxWidth'] : null; if ( $max_width && $max_width !== '100%' ) { $style = sprintf( 'max-width: %s;', $max_width ); $classes .= ' wp-block-jetpack-videopress--has-max-width'; } /* *
element * Caption is stored into the block attributes, * but also it was stored into the
element, * meaning that it could be stored in two different places. */ $figcaption = ''; // Caption from block attributes $caption = isset( $block_attributes['caption'] ) ? $block_attributes['caption'] : null; /* * If the caption is not stored into the block attributes, * try to get it from the
element. */ if ( $caption === null ) { preg_match( '/
(.*?)<\/figcaption>/', $content, $matches ); $caption = isset( $matches[1] ) ? $matches[1] : null; } // If we have a caption, create the
element. if ( $caption !== null ) { $figcaption = sprintf( '
%s
', wp_kses_post( $caption ) ); } // Custom anchor from block content $id_attribute = ''; // Try to get the custom anchor from the block attributes. if ( isset( $block_attributes['anchor'] ) && $block_attributes['anchor'] ) { $id_attribute = sprintf( 'id="%s"', esc_attr( $block_attributes['anchor'] ) ); } elseif ( preg_match( '/]*id="([^"]+)"/', $content, $matches ) ) { // Othwerwise, try to get the custom anchor from the
element. $id_attribute = sprintf( 'id="%s"', $matches[1] ); } // Preview On Hover data $is_poh_enabled = isset( $block_attributes['posterData']['previewOnHover'] ) && $block_attributes['posterData']['previewOnHover']; $autoplay = isset( $block_attributes['autoplay'] ) ? $block_attributes['autoplay'] : false; $controls = isset( $block_attributes['controls'] ) ? $block_attributes['controls'] : false; $poster = isset( $block_attributes['posterData']['url'] ) ? $block_attributes['posterData']['url'] : null; $preview_on_hover = ''; if ( $is_poh_enabled ) { $preview_on_hover = array( 'previewAtTime' => $block_attributes['posterData']['previewAtTime'], 'previewLoopDuration' => $block_attributes['posterData']['previewLoopDuration'], 'autoplay' => $autoplay, 'showControls' => $controls, ); // Create inlione style in case video has a custom poster. $inline_style = ''; if ( $poster ) { $inline_style = sprintf( 'style="background-image: url(%s); background-size: cover; background-position: center center;"', esc_attr( $poster ) ); } // Expose the preview on hover data to the client. $preview_on_hover = sprintf( '
', $inline_style, wp_json_encode( $preview_on_hover, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ) ); // Set `autoplay` and `muted` attributes to the video element. $block_attributes['autoplay'] = true; $block_attributes['muted'] = true; } $figure_template = '
%4$s %5$s %6$s
'; // VideoPress URL $guid = isset( $block_attributes['guid'] ) ? $block_attributes['guid'] : null; $videopress_url = Utils::get_video_press_url( $guid, $block_attributes ); $video_wrapper = ''; $video_wrapper_classes = 'jetpack-videopress-player__wrapper'; if ( $videopress_url ) { $videopress_url = wp_kses_post( $videopress_url ); $oembed_html = apply_filters( 'video_embed_html', $wp_embed->shortcode( array(), $videopress_url ) ); $video_wrapper = sprintf( '
%s %s
', $video_wrapper_classes, $preview_on_hover, $oembed_html ); } // Get premium content from block context $premium_block_plan_id = isset( $block->context['premium-content/planId'] ) ? intval( $block->context['premium-content/planId'] ) : 0; $is_premium_content_child = isset( $block->context['isPremiumContentChild'] ) ? (bool) $block->context['isPremiumContentChild'] : false; $maybe_premium_script = ''; if ( $is_premium_content_child ) { Access_Control::instance()->set_guid_subscription( $guid, $premium_block_plan_id ); $escaped_guid = wp_json_encode( $guid, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); $script_content = "if ( ! window.__guidsToPlanIds ) { window.__guidsToPlanIds = {}; }; window.__guidsToPlanIds[$escaped_guid] = $premium_block_plan_id;"; $maybe_premium_script = ''; } // $id_attribute, $video_wrapper, $figcaption properly escaped earlier on the code return sprintf( $figure_template, esc_attr( $classes ), esc_attr( $style ), $id_attribute, $video_wrapper, $figcaption, $maybe_premium_script ); } /** * Register the VideoPress block editor block, * AKA "VideoPress Block v6". * * @return void */ public static function register_videopress_video_block() { /* * If only Jetpack is active, and if the VideoPress module is not active, * we can register the block just to display a placeholder to turn on the module. * That invitation is only useful for admins though. */ if ( Status::is_jetpack_plugin_without_videopress_module_active() && ! Status::is_standalone_plugin_active() && ! current_user_can( 'jetpack_activate_modules' ) ) { return; } $videopress_video_metadata_file = __DIR__ . '/../build/block-editor/blocks/video/block.json'; $videopress_video_metadata_file_exists = file_exists( $videopress_video_metadata_file ); if ( ! $videopress_video_metadata_file_exists ) { return; } $videopress_video_metadata = json_decode( // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents file_get_contents( $videopress_video_metadata_file ) ); // Pick the block name straight from the block metadata .json file. $videopress_video_block_name = $videopress_video_metadata->name; // Is the block already registered? $is_block_registered = \WP_Block_Type_Registry::get_instance()->is_registered( $videopress_video_block_name ); // Do not register if the block is already registered. if ( $is_block_registered ) { return; } $registration = register_block_type( $videopress_video_metadata_file, array( 'render_callback' => array( __CLASS__, 'render_videopress_video_block' ), 'uses_context' => array( 'premium-content/planId', 'isPremiumContentChild', 'selectedPlanId' ), ) ); // Do not enqueue scripts if the block could not be registered. if ( empty( $registration ) || empty( $registration->editor_script_handles ) ) { return; } // Extensions use Connection_Initial_State::render_script with script handle as parameter. if ( is_array( $registration->editor_script_handles ) ) { $script_handle = $registration->editor_script_handles[0]; } else { $script_handle = $registration->editor_script_handles; } // Register and enqueue scripts used by the VideoPress video block. Block_Editor_Extensions::init( $script_handle ); } /** * Enqueue the VideoPress Iframe API script * when the URL of oEmbed HTML is a VideoPress URL. * * @param string|false $cache The cached HTML result, stored in post meta. * @param string $url The attempted embed URL. * @param array $attr An array of shortcode attributes. * @param int $post_ID Post ID. * * @return string|false */ public static function enqueue_videopress_iframe_api_script( $cache, $url, $attr, $post_ID ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable if ( Utils::is_videopress_url( $url ) ) { // Enqueue the VideoPress IFrame API in the front-end. wp_enqueue_script( self::JETPACK_VIDEOPRESS_IFRAME_API_HANDLER, 'https://s0.wp.com/wp-content/plugins/video/assets/js/videojs/videopress-iframe-api.js', array(), gmdate( 'YW' ), false ); } return $cache; } } ); // This is needed as it's not supported in oEmbed discovery wp_oembed_add_provider( '|^https?://v\.wordpress\.com/([a-zA-Z\d]{8})(.+)?$|i', 'https://public-api.wordpress.com/oembed/?for=' . $host, true ); // phpcs:ignore WordPress.WP.CapitalPDangit.MisspelledInText add_filter( 'embed_oembed_html', array( __CLASS__, 'video_enqueue_bridge_when_oembed_present' ), 10, 4 ); } /** * Enqueues VideoPress token bridge when a VideoPress oembed is present on the current page. * * @param string|false $cache The cached HTML result, stored in post meta. * @param string $url The attempted embed URL. * @param array $attr An array of shortcode attributes. * @param int $post_ID Post ID. * * @return string|false */ public static function video_enqueue_bridge_when_oembed_present( $cache, $url, $attr, $post_ID = null ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable if ( Utils::is_videopress_url( $url ) ) { Jwt_Token_Bridge::enqueue_jwt_token_bridge(); } return $cache; } /** * Register all VideoPress blocks * * @return void */ public static function register_videopress_blocks() { // Register VideoPress Video block. self::register_videopress_video_block(); } /** * VideoPress video block render method * * @param array $block_attributes - Block attributes. * @param string $content - Current block markup. * @param WP_Block $block - Current block. * * @return string Block markup. */ public static function render_videopress_video_block( $block_attributes, $content, $block ) { global $wp_embed; // CSS classes $align = isset( $block_attributes['align'] ) ? $block_attributes['align'] : null; $align_class = $align ? ' align' . $align : ''; $custom_class = isset( $block_attributes['className'] ) ? ' ' . $block_attributes['className'] : ''; $classes = 'wp-block-jetpack-videopress jetpack-videopress-player' . $custom_class . $align_class; // Inline style $style = ''; $max_width = isset( $block_attributes['maxWidth'] ) ? $block_attributes['maxWidth'] : null; if ( $max_width && $max_width !== '100%' ) { $style = sprintf( 'max-width: %s;', $max_width ); $classes .= ' wp-block-jetpack-videopress--has-max-width'; } /* *
element * Caption is stored into the block attributes, * but also it was stored into the
element, * meaning that it could be stored in two different places. */ $figcaption = ''; // Caption from block attributes $caption = isset( $block_attributes['caption'] ) ? $block_attributes['caption'] : null; /* * If the caption is not stored into the block attributes, * try to get it from the
element. */ if ( $caption === null ) { preg_match( '/
(.*?)<\/figcaption>/', $content, $matches ); $caption = isset( $matches[1] ) ? $matches[1] : null; } // If we have a caption, create the
element. if ( $caption !== null ) { $figcaption = sprintf( '
%s
', wp_kses_post( $caption ) ); } // Custom anchor from block content $id_attribute = ''; // Try to get the custom anchor from the block attributes. if ( isset( $block_attributes['anchor'] ) && $block_attributes['anchor'] ) { $id_attribute = sprintf( 'id="%s"', esc_attr( $block_attributes['anchor'] ) ); } elseif ( preg_match( '/]*id="([^"]+)"/', $content, $matches ) ) { // Othwerwise, try to get the custom anchor from the
element. $id_attribute = sprintf( 'id="%s"', $matches[1] ); } // Preview On Hover data $is_poh_enabled = isset( $block_attributes['posterData']['previewOnHover'] ) && $block_attributes['posterData']['previewOnHover']; $autoplay = isset( $block_attributes['autoplay'] ) ? $block_attributes['autoplay'] : false; $controls = isset( $block_attributes['controls'] ) ? $block_attributes['controls'] : false; $poster = isset( $block_attributes['posterData']['url'] ) ? $block_attributes['posterData']['url'] : null; $preview_on_hover = ''; if ( $is_poh_enabled ) { $preview_on_hover = array( 'previewAtTime' => $block_attributes['posterData']['previewAtTime'], 'previewLoopDuration' => $block_attributes['posterData']['previewLoopDuration'], 'autoplay' => $autoplay, 'showControls' => $controls, ); // Create inlione style in case video has a custom poster. $inline_style = ''; if ( $poster ) { $inline_style = sprintf( 'style="background-image: url(%s); background-size: cover; background-position: center center;"', esc_attr( $poster ) ); } // Expose the preview on hover data to the client. $preview_on_hover = sprintf( '
', $inline_style, wp_json_encode( $preview_on_hover, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ) ); // Set `autoplay` and `muted` attributes to the video element. $block_attributes['autoplay'] = true; $block_attributes['muted'] = true; } $figure_template = '
%4$s %5$s %6$s
'; // VideoPress URL $guid = isset( $block_attributes['guid'] ) ? $block_attributes['guid'] : null; $videopress_url = Utils::get_video_press_url( $guid, $block_attributes ); $video_wrapper = ''; $video_wrapper_classes = 'jetpack-videopress-player__wrapper'; if ( $videopress_url ) { $videopress_url = wp_kses_post( $videopress_url ); $oembed_html = apply_filters( 'video_embed_html', $wp_embed->shortcode( array(), $videopress_url ) ); $video_wrapper = sprintf( '
%s %s
', $video_wrapper_classes, $preview_on_hover, $oembed_html ); } // Get premium content from block context $premium_block_plan_id = isset( $block->context['premium-content/planId'] ) ? intval( $block->context['premium-content/planId'] ) : 0; $is_premium_content_child = isset( $block->context['isPremiumContentChild'] ) ? (bool) $block->context['isPremiumContentChild'] : false; $maybe_premium_script = ''; if ( $is_premium_content_child ) { Access_Control::instance()->set_guid_subscription( $guid, $premium_block_plan_id ); $escaped_guid = wp_json_encode( $guid, JSON_UNESCAPED_SLASHES | JSON_HEX_TAG | JSON_HEX_AMP ); $script_content = "if ( ! window.__guidsToPlanIds ) { window.__guidsToPlanIds = {}; }; window.__guidsToPlanIds[$escaped_guid] = $premium_block_plan_id;"; $maybe_premium_script = ''; } // $id_attribute, $video_wrapper, $figcaption properly escaped earlier on the code return sprintf( $figure_template, esc_attr( $classes ), esc_attr( $style ), $id_attribute, $video_wrapper, $figcaption, $maybe_premium_script ); } /** * Register the VideoPress block editor block, * AKA "VideoPress Block v6". * * @return void */ public static function register_videopress_video_block() { /* * If only Jetpack is active, and if the VideoPress module is not active, * we can register the block just to display a placeholder to turn on the module. * That invitation is only useful for admins though. */ if ( Status::is_jetpack_plugin_without_videopress_module_active() && ! Status::is_standalone_plugin_active() && ! current_user_can( 'jetpack_activate_modules' ) ) { return; } $videopress_video_metadata_file = __DIR__ . '/../build/block-editor/blocks/video/block.json'; $videopress_video_metadata_file_exists = file_exists( $videopress_video_metadata_file ); if ( ! $videopress_video_metadata_file_exists ) { return; } $videopress_video_metadata = json_decode( // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents file_get_contents( $videopress_video_metadata_file ) ); // Pick the block name straight from the block metadata .json file. $videopress_video_block_name = $videopress_video_metadata->name; // Is the block already registered? $is_block_registered = \WP_Block_Type_Registry::get_instance()->is_registered( $videopress_video_block_name ); // Do not register if the block is already registered. if ( $is_block_registered ) { return; } $registration = register_block_type( $videopress_video_metadata_file, array( 'render_callback' => array( __CLASS__, 'render_videopress_video_block' ), 'uses_context' => array( 'premium-content/planId', 'isPremiumContentChild', 'selectedPlanId' ), ) ); // Do not enqueue scripts if the block could not be registered. if ( empty( $registration ) || empty( $registration->editor_script_handles ) ) { return; } // Extensions use Connection_Initial_State::render_script with script handle as parameter. if ( is_array( $registration->editor_script_handles ) ) { $script_handle = $registration->editor_script_handles[0]; } else { $script_handle = $registration->editor_script_handles; } // Register and enqueue scripts used by the VideoPress video block. Block_Editor_Extensions::init( $script_handle ); } /** * Enqueue the VideoPress Iframe API script * when the URL of oEmbed HTML is a VideoPress URL. * * @param string|false $cache The cached HTML result, stored in post meta. * @param string $url The attempted embed URL. * @param array $attr An array of shortcode attributes. * @param int $post_ID Post ID. * * @return string|false */ public static function enqueue_videopress_iframe_api_script( $cache, $url, $attr, $post_ID ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable if ( Utils::is_videopress_url( $url ) ) { // Enqueue the VideoPress IFrame API in the front-end. wp_enqueue_script( self::JETPACK_VIDEOPRESS_IFRAME_API_HANDLER, 'https://s0.wp.com/wp-content/plugins/video/assets/js/videojs/videopress-iframe-api.js', array(), gmdate( 'YW' ), false ); } return $cache; } } COMMÉMORATION DU CENTENAIRE DE L’ASSASSINAT DE AMADOU LOUIS MBARRICK FALL DIT BATTLING SIKI, LES 13, 14 ET 15 DÉCEMBRE 2025 À SAINT-LOUIS – Sen Humanité

COMMÉMORATION DU CENTENAIRE DE L’ASSASSINAT DE AMADOU LOUIS MBARRICK FALL DIT BATTLING SIKI, LES 13, 14 ET 15 DÉCEMBRE 2025 À SAINT-LOUIS

COLLOQUE INTERNATIONAL DE SAINT-LOUIS DU SÉNÉGAL, LES 13 ET 14 DÉCEMBRE 2025 : FAIRE DÉCOUVRIR ET PROMOUVOIR LE PARCOURS DE AMADOU LOUIS MBARRICK FALL BATTLING UNE EXIGENCE MÉMORIELLE

APPEL À COMMUNICATION

CONTEXTE ET JUSTIFICATION

Les combats culturels, qui ont accompagné la dynamique des luttes d’émancipation politique des peuples opprimés, avaient mis au cœur de leur préoccupation la question identitaire. Cette problématique, tout en gardant aujourd’hui encore toute sa fraîcheur, est renforcée par la question mémorielle.

De la mobilisation pour la récupération du patrimoine pillé par les Occidentaux jusqu’au projet de commémoration des 80 ans du massacre à Thiaroye, des Tirailleurs sénégalais, se dessine un mouvement qui se présente comme un moment fort de déconstruction de l’histoire coloniale.

Dans cet esprit, s’insère le projet, initié et coordonné par l’ancienne Secrétaire de direction à la retraite, Madame Dia, née Marième Fal dite Soda, à partir de Washington où elle réside. Petite-fille du célèbre boxeur, son objectif est de créer les conditions afin de revisiter le véritable parcours du champion du monde de la boxe, Amadou Louis MBarrick Fall, dont 2025 marquera le centenaire de son assassinat.

L’objectif est d’inviter tous ceux et toutes celles, qui sont préoccupés de la vérité historique, à mutualiser les moyens intellectuels et financiers pour, à la fois, faire découvrir et promouvoir le parcours atypique d’un Sénégalais dont l’exemplarité des prouesses sportives mérite d’être amplement partagée avec tous, notamment avec la jeunesse en quête douloureuse de repères.

L’acte inaugural de ce projet a été l’organisation de journées commémoratives les 15 et 16 décembre 2022, puis les 15 et 16 décembre 2023. Ces manifestations, toutes organisées à Saint-Louis, ont correspondu aux 97è et 98 é anniversaires de l’assassinat de Amadou Louis Mbarrick Fall dit Battling Siki.

La commémoration du 99 è anniversaire de son assassinat a eu lieu les 14 et 15 décembre 2024. Cette édition a donné l’opportunité aux Professeurs Boubacar Diop dit Buuba, Maguèye Kassé, Ndiouga Benga, tous de l’UCAD (Université Cheikh Anta Diop) de dégager des pistes de réflexion à partir de cette thématique : Faire découvrir et promouvoir le parcours d’Amadou Louis Mbarrick Fall dit Battling SIKI : une exigence mémorielle.

La richesse de ce panel, modéré par Alpha Amadou SY et la pertinence des questions qui y ont été soulevées ont conforté Mme Dia, Marième Soda Fall et toute l’assistance, dans son idée d’organiser, en plus du Gala de boxe, des activités religieuses et culturelles, un colloque international à l’occasion du centenaire de l’assassinat du vaillant champion du monde de boxe. Ce banquet se veut un cadre et un moment d’échanges fructueux sur la vie et le parcours de Amadou Louis Mbarrick Fall, Battling Siki.

OBJECTIFS SPÉCIFIQUES

– Faire découvrir la vie et le parcours de Amadou Louis Mbarrick Fall dit Battling Siki ;

– Sauvegarder, valoriser et promouvoir la vie et le parcours de Amadou Louis Mbarrick Fall dit Battling Siki ;

– Mettre à contribution la vie et le parcours de Amadou Louis Mbarrick Fall dit Battling Siki pour le développement de la Culture, du sport et du tourisme ;

– Approfondit la dimension panafricaine de son combat ;

– Renforcer la dimension internationale de son combat ;

– Mettre en exergue la portée éducative, artistique et culturelle des sports.

RÉSULTATS ATTENDUS

– Visibilité sur la vie et le parcours de Amadou Louis Mbarrick Fall dit Battling Siki sont connus ;

– La vie et le parcours de Amadou Louis Mbarrick Fall dit Battling Siki sont sauvegardés, valorisés et promus ;

– La vie et le parcours de Amadou Louis Mbarrick Fall dit Battling Siki sont mis à contribution pour le développement socioculturel et la promotion du sport et du tourisme dans ses lieux de pérégrination.;

– La dimension panafricaine de son combat est approfondie ;

– La dimension internationale de son combat est mise en relief ;

– La portée éducative, artistique et culturelle des sports est mise en exergue.

LE COMITÉ D’ORGANISATION DU COLLOQUE

Président du Comité d’Organisation du Colloque : Alpha Amadou Sy, philosophe/écrivain ;

Président du Comité scientifique : Boubacar Diop dit Buuba, Professeur en histoire ancienne à l’UCAD ;

Membres : Maguèye Kassé, Professeur des universités au Département de Langues et Civilisations germaniques, à l’UCAD, Mody Diop, Communicateur et auteur, Fatima Fall Niang, Conservatrice de musée et Référente de l’UNESCO pour la patrimoine, Annie Coly, Professeure de lettres et auteure, Amadou Hamidou Diallo, Professeur de philosophie à l’UFR SEPS de l’Université Gaston Berger (UGB) de Saint-Louis, Alioune Samb, Conservateur de Musée, Ndiouga Benga, Professeur d’histoire à l’UCAD, Babacar Fall, Professeur d’histoire à l’UCAD, Malamine Diouf Bibliothécaire et auteur, Professeur Abdoul Sow, Directeur du CRDS.

 

Les appels à communication seront reçus jusqu’au 10 septembre 2025. Les textes ne dépasseront pas 5 pages avec taille de police 12, Times New Roman. Les auteurs dont les contributions seront retenues en seront informés, au plus tard, le 30 septembre 2025. En plus de la qualité des textes, les invitations seront en fonction des ressources financières du Comité d’Organisation du Centenaire.

Le président de la Commission scientifique

Alpha Amadou SY

 

0 0 votes
Évaluation de l'article
guest

0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Partager sur:

Articles récents

IMG-20260204-WA0107
ebasketsenegal-850x491-2
IMG-20260202-WA0164
IMG-20260203-WA0161
20250607_235926
1b9efa_c7d9188c5d1e44c6a1fde2ea424e36c2mv2
Lycee-Djignabo
Mouhamad Al Amine Lo ministre chargé du suivi, de l'évaluation des projets
Découvrir

Dans la même rubrique

IMG-20260204-WA0107
Démantèlement d’un réseau de fraude au sein d'une représentation diplomatique : le Commissariat du Plateau frappe fort
En savoir +
ebasketsenegal-850x491-2
Éliminatoires Coupe du Monde FIBA Qatar 2027: Dakar abritera la fenêtre qualificative en fin février
En savoir +
IMG-20260202-WA0164
Abattage clandestin: la police interpellé un individu à Liberté VI
En savoir +
IMG-20260203-WA0161
Le Premier ministre visite la police nationale
En savoir +

Les plus lus

20250607_235926
1b9efa_c7d9188c5d1e44c6a1fde2ea424e36c2mv2
Lycee-Djignabo
Mouhamad Al Amine Lo ministre chargé du suivi, de l'évaluation des projets
Sen Humanité - L'information humanitaire et des droits humains au quotidien - Tous droits réservés.
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x