extending the features

This commit is contained in:
Antoine M 2023-11-07 16:46:00 +01:00
parent c1d35db27f
commit a14ce1610c
10 changed files with 238 additions and 59 deletions

View File

@ -1 +1 @@
<?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-element', 'wp-i18n'), 'version' => '2ecb98f6010eb68b78e2');
<?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-element', 'wp-i18n'), 'version' => '2b391ceb1f168117419f');

View File

@ -1,6 +1,6 @@
/*!****************************************************************************************************************************************************************************************************************************************************!*\
!*** css ../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/editor.scss ***!
\****************************************************************************************************************************************************************************************************************************************************/
/*!****************************************************************************************************************************************************************************************************************************************!*\
!*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/editor.scss ***!
\****************************************************************************************************************************************************************************************************************************************/
/**
* The following styles get applied inside the editor only.
*

View File

@ -1,4 +1,4 @@
/******/ (() => { // webpackBootstrap
/******/ (function() { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
@ -6,11 +6,11 @@
/*!*********************!*\
!*** ./src/edit.js ***!
\*********************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ Edit)
/* harmony export */ "default": function() { return /* binding */ Edit; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
@ -27,15 +27,17 @@ __webpack_require__.r(__webpack_exports__);
function Edit() {
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("section", {
...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.useBlockProps)({
className: `homegrade-blocks-starter`
className: `homegrade-blocks-kit-presse`
})
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InnerBlocks, {
allowedBlocks: ["homegrade-content-blocks/section-titling"],
allowedBlocks: ["homegrade-content-blocks/section-titling", "core/paragraph"],
template: [["homegrade-content-blocks/section-titling", {
sectionTitle: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Kit presse", "homegrade")
}]],
}], ["core/paragraph"]],
templateLock: true
}));
}), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", {
className: "temp_guidance_sentence"
}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Les éléments déposés dans le kit press s'afficheront ici", "homegrade-blocks__text-backoffice")));
}
/***/ }),
@ -44,7 +46,7 @@ function Edit() {
/*!**********************!*\
!*** ./src/index.js ***!
\**********************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
@ -84,11 +86,11 @@ __webpack_require__.r(__webpack_exports__);
/*!*********************!*\
!*** ./src/save.js ***!
\*********************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ save)
/* harmony export */ "default": function() { return /* binding */ save; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
@ -108,7 +110,7 @@ function save({
/*!*************************!*\
!*** ./src/editor.scss ***!
\*************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin
@ -120,7 +122,7 @@ __webpack_require__.r(__webpack_exports__);
/*!************************!*\
!*** ./src/style.scss ***!
\************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
__webpack_require__.r(__webpack_exports__);
// extracted by mini-css-extract-plugin
@ -132,7 +134,7 @@ __webpack_require__.r(__webpack_exports__);
/*!*************************************!*\
!*** external ["wp","blockEditor"] ***!
\*************************************/
/***/ ((module) => {
/***/ (function(module) {
module.exports = window["wp"]["blockEditor"];
@ -142,7 +144,7 @@ module.exports = window["wp"]["blockEditor"];
/*!********************************!*\
!*** external ["wp","blocks"] ***!
\********************************/
/***/ ((module) => {
/***/ (function(module) {
module.exports = window["wp"]["blocks"];
@ -152,7 +154,7 @@ module.exports = window["wp"]["blocks"];
/*!*********************************!*\
!*** external ["wp","element"] ***!
\*********************************/
/***/ ((module) => {
/***/ (function(module) {
module.exports = window["wp"]["element"];
@ -162,7 +164,7 @@ module.exports = window["wp"]["element"];
/*!******************************!*\
!*** external ["wp","i18n"] ***!
\******************************/
/***/ ((module) => {
/***/ (function(module) {
module.exports = window["wp"]["i18n"];
@ -172,7 +174,7 @@ module.exports = window["wp"]["i18n"];
/*!************************!*\
!*** ./src/block.json ***!
\************************/
/***/ ((module) => {
/***/ (function(module) {
module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/kit-presse","version":"0.1.0","title":"Kit Presse","category":"homegrade-blocks","icon":"smiley","description":"Un bloc pour afficher les éléments du kit presse","supports":{"html":false},"textdomain":"test","editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","render":"file:./render.php"}');
@ -209,9 +211,9 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json
/******/
/************************************************************************/
/******/ /* webpack/runtime/chunk loaded */
/******/ (() => {
/******/ !function() {
/******/ var deferred = [];
/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
/******/ __webpack_require__.O = function(result, chunkIds, fn, priority) {
/******/ if(chunkIds) {
/******/ priority = priority || 0;
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
@ -225,7 +227,7 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json
/******/ var priority = deferred[i][2];
/******/ var fulfilled = true;
/******/ for (var j = 0; j < chunkIds.length; j++) {
/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {
/******/ chunkIds.splice(j--, 1);
/******/ } else {
/******/ fulfilled = false;
@ -240,50 +242,50 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json
/******/ }
/******/ return result;
/******/ };
/******/ })();
/******/ }();
/******/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ !function() {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ function() { return module['default']; } :
/******/ function() { return module; };
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/ }();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ !function() {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ __webpack_require__.d = function(exports, definition) {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/ }();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/ !function() {
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
/******/ }();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ !function() {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/ }();
/******/
/******/ /* webpack/runtime/jsonp chunk loading */
/******/ (() => {
/******/ !function() {
/******/ // no baseURI
/******/
/******/ // object to store loaded and loading chunks
@ -304,17 +306,17 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json
/******/
/******/ // no HMR manifest
/******/
/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
/******/ __webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };
/******/
/******/ // install a JSONP callback for chunk loading
/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
/******/ var webpackJsonpCallback = function(parentChunkLoadingFunction, data) {
/******/ var chunkIds = data[0];
/******/ var moreModules = data[1];
/******/ var runtime = data[2];
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0;
/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
/******/ if(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {
/******/ for(moduleId in moreModules) {
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
@ -336,14 +338,14 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json
/******/ var chunkLoadingGlobal = self["webpackChunktest"] = self["webpackChunktest"] || [];
/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
/******/ })();
/******/ }();
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["./style-index"], () => (__webpack_require__("./src/index.js")))
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["./style-index"], function() { return __webpack_require__("./src/index.js"); })
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
/******/
/******/ })()

File diff suppressed because one or more lines are too long

View File

@ -2,13 +2,61 @@
$press_kit_datas = get_field('press_kit_datas', 'option');
if (!function_exists('getRessourceIcon')) {
function getRessourceIcon($ressource_type)
{
switch ($ressource_type) {
case 'image/jpeg':
return plugin_dir_url(__DIR__) . "src/img/homegrade_image.svg";
case 'application/pdf':
return plugin_dir_url(__DIR__) . "src/img/homegrade_fiches.svg";
default:
return plugin_dir_url(__DIR__) . "src/img/homegrade_fiches.svg";
}
}
}
?>
<section <?php echo get_block_wrapper_attributes(); ?>>
<section <?php echo get_block_wrapper_attributes(["class" => "homegrade-blocks-kit-presse"]); ?>>
<?php echo $content; ?>
<?php foreach ($press_kit_datas as $data) : ?>
<p><?php echo $data['title'] ?></p>
<?php endforeach; ?>
<ul class="homegrade-blocks-kit-presse__press-grid-datas">
<div class="table_head">
<p><?php echo __("Fichier", "homegrade-blocks__texte-fonctionnel") ?></p>
<p><?php echo __("Format", "homegrade-blocks__texte-fonctionnel") ?></p>
<p><?php echo __("Mise à jour", "homegrade-blocks__texte-fonctionnel") ?></p>
</div>
<?php foreach ($press_kit_datas as $data) : ?>
<?php
$ressourceType = $data['mime_type'];
$ressourceIcon = getRessourceIcon($ressourceType);
setlocale(LC_TIME, 'fr_FR');
$timestamp = strtotime($data['modified']);
$formatted_date = strftime("%B %Y", $timestamp);
// echo '<pre>';
// print_r($data);
// echo '</pre>';
?>
<li class="homegrade-blocks-kit-presse__press-ressource">
<div class="homegrade-blocks-kit-presse__ressource-icon">
<img src="<?php echo $ressourceIcon ?>" alt="">
</div>
<p class="homegrade-blocks-kit-presse__ressource-title"><?php echo $data['title'] ?></p>
<p class="homegrade-blocks-kit-presse__ressource-type"><?php echo $data['subtype'] ?></p>
<p class="homegrade-blocks-kit-presse__ressource-date"><?php echo $formatted_date ?></p>
<a class="homegrade-blocks-kit-presse__ressource-download cta cta--secondary cta--button" href=""><?php echo __('Télécharger') ?></a>
</li>
<?php endforeach; ?>
</ul>
</section>

View File

@ -1,6 +1,6 @@
/*!***************************************************************************************************************************************************************************************************************************************************!*\
!*** css ../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/style.scss ***!
\***************************************************************************************************************************************************************************************************************************************************/
/*!***************************************************************************************************************************************************************************************************************************************!*\
!*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/style.scss ***!
\***************************************************************************************************************************************************************************************************************************************/
/**
* The following styles get applied both on the front of your site
* and in the editor.

View File

@ -7,19 +7,29 @@ export default function Edit() {
return (
<section
{...useBlockProps({
className: `homegrade-blocks-starter`,
className: `homegrade-blocks-kit-presse`,
})}
>
<InnerBlocks
allowedBlocks={["homegrade-content-blocks/section-titling"]}
allowedBlocks={[
"homegrade-content-blocks/section-titling",
"core/paragraph",
]}
template={[
[
"homegrade-content-blocks/section-titling",
{ sectionTitle: __("Kit presse", "homegrade") },
],
["core/paragraph"],
]}
templateLock={true}
/>
<p className="temp_guidance_sentence">
{__(
"Les éléments déposés dans le kit press s'afficheront ici",
"homegrade-blocks__text-backoffice"
)}
</p>
</section>
);
}

View File

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="fiches" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 35.23 43.15">
<defs>
<style>
.cls-1, .cls-2 {
stroke-width: 0px;
}
.cls-1, .cls-3, .cls-4 {
fill: none;
}
.cls-2 {
fill: url(#Dégradé_sans_nom_5);
}
.cls-3, .cls-4 {
stroke: #000;
stroke-linecap: round;
stroke-width: 2px;
}
.cls-4 {
stroke-linejoin: round;
}
</style>
<linearGradient id="Dégradé_sans_nom_5" data-name="Dégradé sans nom 5" x1="-1662.48" y1="-15.41" x2="-1660.8" y2="-17.17" gradientTransform="translate(16763.7 -47.81) scale(10.08 -3.91)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#f3281d"/>
<stop offset="1" stop-color="#fe766f"/>
</linearGradient>
</defs>
<g id="Groupe_4723" data-name="Groupe 4723">
<g id="Rectangle_1361" data-name="Rectangle 1361">
<rect class="cls-1" y="5.55" width="29.14" height="37.6"/>
<rect class="cls-4" x="1.68" y="7.23" width="25.78" height="34.24"/>
</g>
<rect id="Rectangle_1362" data-name="Rectangle 1362" class="cls-2" x="6.09" y="11.98" width="16.97" height="6.58"/>
<line id="Ligne_3477" data-name="Ligne 3477" class="cls-3" x1="7.03" y1="22.94" x2="22.11" y2="22.94"/>
<line id="Ligne_3478" data-name="Ligne 3478" class="cls-3" x1="7.03" y1="28.26" x2="22.11" y2="28.26"/>
<line id="Ligne_3479" data-name="Ligne 3479" class="cls-3" x1="7.03" y1="33.58" x2="22.11" y2="33.58"/>
<path id="Tracé_20354" data-name="Tracé 20354" class="cls-4" d="m7.02,3.54V1h27.2v37.5h-3.02"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="image" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 35.24 35.24">
<defs>
<style>
.cls-1 {
fill: url(#Dégradé_sans_nom_5);
stroke-width: 0px;
}
.cls-2 {
fill: none;
stroke: #000;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2px;
}
</style>
<linearGradient id="Dégradé_sans_nom_5" data-name="Dégradé sans nom 5" x1="-2760.13" y1="75.52" x2="-2759.14" y2="74.47" gradientTransform="translate(23623.33 653.57) scale(8.56 -8.56)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#f3281d"/>
<stop offset="1" stop-color="#fe766f"/>
</linearGradient>
</defs>
<g id="Icon_feather-image" data-name="Icon feather-image">
<path id="Tracé_24544" data-name="Tracé 24544" class="cls-2" d="m4.69,1h25.85c2.04,0,3.69,1.65,3.69,3.69h0v25.85c0,2.04-1.65,3.69-3.69,3.69H4.69c-2.04,0-3.69-1.65-3.69-3.69h0V4.69c0-2.04,1.65-3.69,3.69-3.69Z"/>
<path id="Tracé_24545" data-name="Tracé 24545" class="cls-1" d="m15.45,11.18c0,2.36-1.92,4.28-4.28,4.28s-4.28-1.92-4.28-4.28,1.91-4.28,4.28-4.28c2.36,0,4.28,1.91,4.28,4.28h0Z"/>
<path id="Tracé_24546" data-name="Tracé 24546" class="cls-2" d="m34.24,23.16l-9.23-9.23L4.69,34.24"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -2,13 +2,61 @@
$press_kit_datas = get_field('press_kit_datas', 'option');
if (!function_exists('getRessourceIcon')) {
function getRessourceIcon($ressource_type)
{
switch ($ressource_type) {
case 'image/jpeg':
return plugin_dir_url(__DIR__) . "src/img/homegrade_image.svg";
case 'application/pdf':
return plugin_dir_url(__DIR__) . "src/img/homegrade_fiches.svg";
default:
return plugin_dir_url(__DIR__) . "src/img/homegrade_fiches.svg";
}
}
}
?>
<section <?php echo get_block_wrapper_attributes(); ?>>
<section <?php echo get_block_wrapper_attributes(["class" => "homegrade-blocks-kit-presse"]); ?>>
<?php echo $content; ?>
<?php foreach ($press_kit_datas as $data) : ?>
<p><?php echo $data['title'] ?></p>
<?php endforeach; ?>
<ul class="homegrade-blocks-kit-presse__press-grid-datas">
<div class="table_head">
<p><?php echo __("Fichier", "homegrade-blocks__texte-fonctionnel") ?></p>
<p><?php echo __("Format", "homegrade-blocks__texte-fonctionnel") ?></p>
<p><?php echo __("Mise à jour", "homegrade-blocks__texte-fonctionnel") ?></p>
</div>
<?php foreach ($press_kit_datas as $data) : ?>
<?php
$ressourceType = $data['mime_type'];
$ressourceIcon = getRessourceIcon($ressourceType);
setlocale(LC_TIME, 'fr_FR');
$timestamp = strtotime($data['modified']);
$formatted_date = strftime("%B %Y", $timestamp);
// echo '<pre>';
// print_r($data);
// echo '</pre>';
?>
<li class="homegrade-blocks-kit-presse__press-ressource">
<div class="homegrade-blocks-kit-presse__ressource-icon">
<img src="<?php echo $ressourceIcon ?>" alt="">
</div>
<p class="homegrade-blocks-kit-presse__ressource-title"><?php echo $data['title'] ?></p>
<p class="homegrade-blocks-kit-presse__ressource-type"><?php echo $data['subtype'] ?></p>
<p class="homegrade-blocks-kit-presse__ressource-date"><?php echo $formatted_date ?></p>
<a class="homegrade-blocks-kit-presse__ressource-download cta cta--secondary cta--button" href=""><?php echo __('Télécharger') ?></a>
</li>
<?php endforeach; ?>
</ul>
</section>