refactoring the block to handle url object instead of publication Id and select control

This commit is contained in:
Antoine M 2023-11-15 12:04:46 +01:00
parent e9018bc8a3
commit 085ffdadad
25 changed files with 252 additions and 583 deletions

View File

@ -9,6 +9,9 @@
"supports": { "supports": {
"html": false "html": false
}, },
"parent": [
"homegrade-content-blocks/chapitrage-thematique"
],
"editorScript": "file:./index.js", "editorScript": "file:./index.js",
"editorStyle": "file:./index.css", "editorStyle": "file:./index.css",
"style": "file:./style-index.css", "style": "file:./style-index.css",

View File

@ -1 +1 @@
<?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-primitives'), 'version' => '25c608c1f4d639f2da3a'); <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives'), 'version' => 'cb985ddea71248ae9768');

View File

@ -5,4 +5,9 @@
/*!******************************************************************************************************************************************************************************************************************************************************!*\ /*!******************************************************************************************************************************************************************************************************************************************************!*\
!*** 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/lien-chapitre/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/lien-chapitre/editor.scss ***!
\******************************************************************************************************************************************************************************************************************************************************/ \******************************************************************************************************************************************************************************************************************************************************/
.related-conseil-panel-body .block-editor-link-control__search-item,
.related-conseil-panel-body .block-editor-link-control__search-input-wrapper {
max-width: 80%;
}
/*# sourceMappingURL=index.css.map*/

View File

@ -0,0 +1 @@
{"version":3,"file":"chapitre-thematique/index.css","mappings":";;;;;;;AACC;;EAEC;AAAF,C","sources":["webpack://multiblocks/./src/lien-chapitre/editor.scss"],"sourcesContent":[".related-conseil-panel-body {\r\n\t.block-editor-link-control__search-item,\r\n\t.block-editor-link-control__search-input-wrapper {\r\n\t\tmax-width: 80%;\r\n\t}\r\n}\r\n"],"names":[],"sourceRoot":""}

View File

@ -267,152 +267,6 @@ function save({
/***/ }), /***/ }),
/***/ "./src/lien-chapitre/OptionsSelectControl.js":
/*!***************************************************!*\
!*** ./src/lien-chapitre/OptionsSelectControl.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ OptionsSelectControl)
/* 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__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/html-entities */ "@wordpress/html-entities");
/* harmony import */ var _wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__);
function OptionsSelectControl({
setAttributes,
chapterLinkRelatedPostId
}) {
var _ref;
let [relatedQuestionPages, setRelatedQuestionPages] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
let [childTermsIdArray, setChildTermsIdArray] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const lang = getAdminLanguageFromCookie("wp-wpml_current_language");
function getAdminLanguageFromCookie(c_name) {
var c_value = document.cookie,
c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1) c_start = c_value.indexOf(c_name + "=");
if (c_start == -1) {
c_value = null;
} else {
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1) {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start, c_end));
}
return c_value;
}
function handleRelatedPostChange(postId) {
setAttributes({
chapterLinkRelatedPostId: Number(postId)
});
}
function buildTaxChildrenIdArray(childrenArray) {
return childrenArray.map(item => item.id);
}
function buildSelectOptions(relatedPossiblePages) {
let options = [];
if (relatedPossiblePages) {
options.push({
value: 0,
label: "Sélectionnez une page"
});
relatedPossiblePages.forEach(page => {
options.push({
value: page.id,
label: (0,_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__.decodeEntities)(page.title.rendered)
});
});
} else {
options.push({
value: 0,
label: "Pas encore de questions..."
});
}
return options;
}
// GET TAXONOMIES INOFRMATION
let postTaxonomies = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => select("core/editor").getCurrentPostAttribute("thematiques"));
// GET THE CURRENT TAXONOMY AND FIND THE PARENT OBJECT
let postMainTaxonomy = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => select("core").getEntityRecord("taxonomy", "thematiques", postTaxonomies[0]), [postTaxonomies]);
let postParentTaxonomy = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (postMainTaxonomy && postMainTaxonomy.parent) {
return select("core").getEntityRecord("taxonomy", "thematiques", postMainTaxonomy.parent);
}
return null;
}, [postMainTaxonomy]);
let currentGeneralThematique = (_ref = postParentTaxonomy !== null && postParentTaxonomy !== void 0 ? postParentTaxonomy : postMainTaxonomy) !== null && _ref !== void 0 ? _ref : null;
// GET THE PARENT TAX CHILDREN
let childTerms = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (currentGeneralThematique) {
return select("core").getEntityRecords("taxonomy", "thematiques", {
parent: currentGeneralThematique.id
});
}
return null;
});
// BUILD AN ARRAY OF CHILDREN TAXONOMIES ID AND PUT IT IN THE STATE
(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (childTerms) {
setChildTermsIdArray(buildTaxChildrenIdArray(childTerms));
}
}, [childTerms]);
// GET OPTIONS FOR RELATED POSSIBLE PAGES ACCORDING TO CURRENT TAXONOMY CHILDREN ID ARRAY
const relatedPossiblePages = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (childTermsIdArray) {
let query = {
status: "publish",
per_page: -1,
lang: lang,
thematiques: childTermsIdArray
};
return select("core").getEntityRecords("postType", "conseils", query);
}
return null;
});
(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (relatedPossiblePages) {
setRelatedQuestionPages(buildSelectOptions(relatedPossiblePages));
}
}, [relatedPossiblePages]);
let panelTitle = postParentTaxonomy ? "Conseils " + postParentTaxonomy.name : postMainTaxonomy ? "Conseils " + postMainTaxonomy.name : null;
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, {
title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Conseils Relié", "homegrade-blocks__texte-fonctionnel")
}, relatedQuestionPages && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ComboboxControl, {
label: panelTitle,
onChange: e => handleRelatedPostChange(e),
options: relatedQuestionPages,
value: chapterLinkRelatedPostId
})));
}
/***/ }),
/***/ "./src/lien-chapitre/edit.js": /***/ "./src/lien-chapitre/edit.js":
/*!***********************************!*\ /*!***********************************!*\
!*** ./src/lien-chapitre/edit.js ***! !*** ./src/lien-chapitre/edit.js ***!
@ -433,7 +287,8 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _img_arrow_right_circle_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../img/arrow-right-circle.svg */ "./src/img/arrow-right-circle.svg"); /* harmony import */ var _img_arrow_right_circle_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../img/arrow-right-circle.svg */ "./src/img/arrow-right-circle.svg");
/* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss"); /* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss");
/* harmony import */ var _OptionsSelectControl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./OptionsSelectControl */ "./src/lien-chapitre/OptionsSelectControl.js"); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_6__);
@ -449,17 +304,8 @@ function Edit({
let { let {
chapterLinkTitle, chapterLinkTitle,
chapterLinkDescription, chapterLinkDescription,
chapterLinkRelatedPostId, chapterLinkRelatedPost
chapterLinkRelatedPostUrl
} = attributes; } = attributes;
let currentRelatedPostConseil = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select("core").getEntityRecord("postType", "conseils", chapterLinkRelatedPostId));
if (currentRelatedPostConseil && currentRelatedPostConseil.link !== chapterLinkRelatedPostUrl) {
console.log(chapterLinkRelatedPostUrl);
console.log(currentRelatedPostConseil.link);
setAttributes({
chapterLinkRelatedPostUrl: currentRelatedPostConseil.link
});
}
function onChangeChapterLinkTitle(chapterLinkTitle) { function onChangeChapterLinkTitle(chapterLinkTitle) {
setAttributes({ setAttributes({
chapterLinkTitle chapterLinkTitle
@ -470,10 +316,19 @@ function Edit({
chapterLinkDescription chapterLinkDescription
}); });
} }
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_OptionsSelectControl__WEBPACK_IMPORTED_MODULE_6__["default"], { function handleRelatedPostChange(chapterLinkRelatedPost) {
chapterLinkRelatedPostId: chapterLinkRelatedPostId, console.log(chapterLinkRelatedPost);
setAttributes: setAttributes setAttributes({
}), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { chapterLinkRelatedPost
});
}
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_6__.PanelBody, {
className: "related-conseil-panel-body",
title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Page de lien de ce Chapitre ", "homegrade-blocks__texte-fonctionnel")
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.__experimentalLinkControl, {
value: chapterLinkRelatedPost,
onChange: handleRelatedPostChange
}))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)({ ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)({
className: `homegrade-blocks-lien-chapitre` className: `homegrade-blocks-lien-chapitre`
}) })
@ -489,9 +344,8 @@ function Edit({
placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Descriptif du chapitre", "homegrade-blocks"), placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Descriptif du chapitre", "homegrade-blocks"),
value: chapterLinkDescription, value: chapterLinkDescription,
onChange: onChangeChapterLinkDescription onChange: onChangeChapterLinkDescription
}), chapterLinkRelatedPostUrl && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", { }), chapterLinkRelatedPost && chapterLinkRelatedPost.url && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
className: "homegrade-blocks-lien-chapitre__cta", className: "homegrade-blocks-lien-chapitre__cta"
href: chapterLinkRelatedPostUrl
}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "cta_arrow_button" class: "cta_arrow_button"
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", { }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
@ -573,7 +427,7 @@ function save({
let { let {
chapterLinkTitle, chapterLinkTitle,
chapterLinkDescription, chapterLinkDescription,
chapterLinkRelatedPostUrl chapterLinkRelatedPost
} = attributes; } = attributes;
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
..._wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({ ..._wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({
@ -587,9 +441,11 @@ function save({
tagName: "p", tagName: "p",
value: chapterLinkDescription, value: chapterLinkDescription,
className: "homegrade-blocks-lien-chapitre__description" className: "homegrade-blocks-lien-chapitre__description"
}), chapterLinkRelatedPostUrl && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", { }), chapterLinkRelatedPost && chapterLinkRelatedPost.url && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
className: "homegrade-blocks-lien-chapitre__cta", className: "homegrade-blocks-lien-chapitre__cta",
href: chapterLinkRelatedPostUrl href: chapterLinkRelatedPost.url,
target: chapterLinkRelatedPost.opensInNewTab ? "_blank" : "_self",
rel: "noopener"
}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "cta_arrow_button" class: "cta_arrow_button"
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", { }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
@ -739,16 +595,6 @@ module.exports = window["wp"]["element"];
/***/ }), /***/ }),
/***/ "@wordpress/html-entities":
/*!**************************************!*\
!*** external ["wp","htmlEntities"] ***!
\**************************************/
/***/ ((module) => {
module.exports = window["wp"]["htmlEntities"];
/***/ }),
/***/ "@wordpress/i18n": /***/ "@wordpress/i18n":
/*!******************************!*\ /*!******************************!*\
!*** external ["wp","i18n"] ***! !*** external ["wp","i18n"] ***!
@ -775,7 +621,7 @@ module.exports = window["wp"]["primitives"];
\********************************************/ \********************************************/
/***/ ((module) => { /***/ ((module) => {
module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/chapitre-thematique","version":"0.1.0","title":"Chapitre Thématiques ","category":"homegrade-blocks","description":"Point de légende pour titrer ou décrire un point de légende spécifique sur un Schéma ","supports":{"html":false},"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterTitle":{"type":"string","default":""},"chapterDescription":{"type":"string","default":""},"chapterImageUrl":{"type":"string"},"chapterImageId":{"type":"number"},"chapterImageAlt":{"type":"string","source":"attribute","selector":"img","attribute":"alt","default":""}}}'); module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/chapitre-thematique","version":"0.1.0","title":"Chapitre Thématiques ","category":"homegrade-blocks","description":"Point de légende pour titrer ou décrire un point de légende spécifique sur un Schéma ","supports":{"html":false},"parent":["homegrade-content-blocks/chapitrage-thematique"],"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterTitle":{"type":"string","default":""},"chapterDescription":{"type":"string","default":""},"chapterImageUrl":{"type":"string"},"chapterImageId":{"type":"number"},"chapterImageAlt":{"type":"string","source":"attribute","selector":"img","attribute":"alt","default":""}}}');
/***/ }), /***/ }),
@ -785,7 +631,7 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json
\**************************************/ \**************************************/
/***/ ((module) => { /***/ ((module) => {
module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/lien-chapitre","version":"0.1.0","title":"Lien de chapitre","category":"homegrade-blocks","description":"Pour insérer des liens dans un chapitre thématique","supports":{"html":false},"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterLinkTitle":{"type":"string","default":""},"chapterLinkDescription":{"type":"string","default":""},"chapterLinkRelatedPostId":{"type":"number"},"chapterLinkRelatedPostUrl":{"type":"string"}}}'); module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/lien-chapitre","version":"0.1.0","title":"Lien de chapitre","category":"homegrade-blocks","description":"Pour insérer des liens dans un chapitre thématique","supports":{"html":false},"parent":["homegrade-content-blocks/chapitre-thematique"],"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterLinkTitle":{"type":"string","default":""},"chapterLinkDescription":{"type":"string","default":""},"chapterLinkRelatedPost":{"type":"object"},"chapterLinkRelatedPostId":{"type":"number"},"chapterLinkRelatedPostUrl":{"type":"string"}}}');
/***/ }) /***/ })

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
<?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-primitives'), 'version' => 'ee236c6516355db4ccde'); <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives'), 'version' => 'de42c5df0d0ae3be548c');

View File

@ -9,4 +9,9 @@
/*!******************************************************************************************************************************************************************************************************************************************************!*\ /*!******************************************************************************************************************************************************************************************************************************************************!*\
!*** 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/lien-chapitre/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/lien-chapitre/editor.scss ***!
\******************************************************************************************************************************************************************************************************************************************************/ \******************************************************************************************************************************************************************************************************************************************************/
.related-conseil-panel-body .block-editor-link-control__search-item,
.related-conseil-panel-body .block-editor-link-control__search-input-wrapper {
max-width: 80%;
}
/*# sourceMappingURL=index.css.map*/

View File

@ -0,0 +1 @@
{"version":3,"file":"index.css","mappings":";;;;;;;;;;;AACC;;EAEC;AAAF,C","sources":["webpack://multiblocks/./src/lien-chapitre/editor.scss"],"sourcesContent":[".related-conseil-panel-body {\r\n\t.block-editor-link-control__search-item,\r\n\t.block-editor-link-control__search-input-wrapper {\r\n\t\tmax-width: 80%;\r\n\t}\r\n}\r\n"],"names":[],"sourceRoot":""}

View File

@ -306,7 +306,13 @@ function Edit({
className: `homegrade-blocks-chapitrage-thematique` className: `homegrade-blocks-chapitrage-thematique`
}) })
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.InnerBlocks, { }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_4__.InnerBlocks, {
allowedBlocks: ["homegrade-content-blocks/chapitre-thematique"] allowedBlocks: ["homegrade-content-blocks/chapitre-thematique"],
template: [["homegrade-content-blocks/chapitre-thematique", {
chapterTitle: "Titre de votre chapitre"
}, [["homegrade-content-blocks/lien-chapitre", {
chapterLinkTitle: "Lien chapitre 1 ",
chapterLinkDescription: "Un description de cette page specifique"
}]]]]
}))); })));
} }
@ -393,152 +399,6 @@ __webpack_require__.r(__webpack_exports__);
/***/ }), /***/ }),
/***/ "./src/lien-chapitre/OptionsSelectControl.js":
/*!***************************************************!*\
!*** ./src/lien-chapitre/OptionsSelectControl.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ OptionsSelectControl)
/* 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__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/html-entities */ "@wordpress/html-entities");
/* harmony import */ var _wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__);
function OptionsSelectControl({
setAttributes,
chapterLinkRelatedPostId
}) {
var _ref;
let [relatedQuestionPages, setRelatedQuestionPages] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
let [childTermsIdArray, setChildTermsIdArray] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const lang = getAdminLanguageFromCookie("wp-wpml_current_language");
function getAdminLanguageFromCookie(c_name) {
var c_value = document.cookie,
c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1) c_start = c_value.indexOf(c_name + "=");
if (c_start == -1) {
c_value = null;
} else {
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1) {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start, c_end));
}
return c_value;
}
function handleRelatedPostChange(postId) {
setAttributes({
chapterLinkRelatedPostId: Number(postId)
});
}
function buildTaxChildrenIdArray(childrenArray) {
return childrenArray.map(item => item.id);
}
function buildSelectOptions(relatedPossiblePages) {
let options = [];
if (relatedPossiblePages) {
options.push({
value: 0,
label: "Sélectionnez une page"
});
relatedPossiblePages.forEach(page => {
options.push({
value: page.id,
label: (0,_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__.decodeEntities)(page.title.rendered)
});
});
} else {
options.push({
value: 0,
label: "Pas encore de questions..."
});
}
return options;
}
// GET TAXONOMIES INOFRMATION
let postTaxonomies = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => select("core/editor").getCurrentPostAttribute("thematiques"));
// GET THE CURRENT TAXONOMY AND FIND THE PARENT OBJECT
let postMainTaxonomy = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => select("core").getEntityRecord("taxonomy", "thematiques", postTaxonomies[0]), [postTaxonomies]);
let postParentTaxonomy = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (postMainTaxonomy && postMainTaxonomy.parent) {
return select("core").getEntityRecord("taxonomy", "thematiques", postMainTaxonomy.parent);
}
return null;
}, [postMainTaxonomy]);
let currentGeneralThematique = (_ref = postParentTaxonomy !== null && postParentTaxonomy !== void 0 ? postParentTaxonomy : postMainTaxonomy) !== null && _ref !== void 0 ? _ref : null;
// GET THE PARENT TAX CHILDREN
let childTerms = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (currentGeneralThematique) {
return select("core").getEntityRecords("taxonomy", "thematiques", {
parent: currentGeneralThematique.id
});
}
return null;
});
// BUILD AN ARRAY OF CHILDREN TAXONOMIES ID AND PUT IT IN THE STATE
(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (childTerms) {
setChildTermsIdArray(buildTaxChildrenIdArray(childTerms));
}
}, [childTerms]);
// GET OPTIONS FOR RELATED POSSIBLE PAGES ACCORDING TO CURRENT TAXONOMY CHILDREN ID ARRAY
const relatedPossiblePages = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (childTermsIdArray) {
let query = {
status: "publish",
per_page: -1,
lang: lang,
thematiques: childTermsIdArray
};
return select("core").getEntityRecords("postType", "conseils", query);
}
return null;
});
(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (relatedPossiblePages) {
setRelatedQuestionPages(buildSelectOptions(relatedPossiblePages));
}
}, [relatedPossiblePages]);
let panelTitle = postParentTaxonomy ? "Conseils " + postParentTaxonomy.name : postMainTaxonomy ? "Conseils " + postMainTaxonomy.name : null;
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, {
title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Conseils Relié", "homegrade-blocks__texte-fonctionnel")
}, relatedQuestionPages && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ComboboxControl, {
label: panelTitle,
onChange: e => handleRelatedPostChange(e),
options: relatedQuestionPages,
value: chapterLinkRelatedPostId
})));
}
/***/ }),
/***/ "./src/lien-chapitre/edit.js": /***/ "./src/lien-chapitre/edit.js":
/*!***********************************!*\ /*!***********************************!*\
!*** ./src/lien-chapitre/edit.js ***! !*** ./src/lien-chapitre/edit.js ***!
@ -559,7 +419,8 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _img_arrow_right_circle_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../img/arrow-right-circle.svg */ "./src/img/arrow-right-circle.svg"); /* harmony import */ var _img_arrow_right_circle_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../img/arrow-right-circle.svg */ "./src/img/arrow-right-circle.svg");
/* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss"); /* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss");
/* harmony import */ var _OptionsSelectControl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./OptionsSelectControl */ "./src/lien-chapitre/OptionsSelectControl.js"); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_6__);
@ -575,17 +436,8 @@ function Edit({
let { let {
chapterLinkTitle, chapterLinkTitle,
chapterLinkDescription, chapterLinkDescription,
chapterLinkRelatedPostId, chapterLinkRelatedPost
chapterLinkRelatedPostUrl
} = attributes; } = attributes;
let currentRelatedPostConseil = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select("core").getEntityRecord("postType", "conseils", chapterLinkRelatedPostId));
if (currentRelatedPostConseil && currentRelatedPostConseil.link !== chapterLinkRelatedPostUrl) {
console.log(chapterLinkRelatedPostUrl);
console.log(currentRelatedPostConseil.link);
setAttributes({
chapterLinkRelatedPostUrl: currentRelatedPostConseil.link
});
}
function onChangeChapterLinkTitle(chapterLinkTitle) { function onChangeChapterLinkTitle(chapterLinkTitle) {
setAttributes({ setAttributes({
chapterLinkTitle chapterLinkTitle
@ -596,10 +448,19 @@ function Edit({
chapterLinkDescription chapterLinkDescription
}); });
} }
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_OptionsSelectControl__WEBPACK_IMPORTED_MODULE_6__["default"], { function handleRelatedPostChange(chapterLinkRelatedPost) {
chapterLinkRelatedPostId: chapterLinkRelatedPostId, console.log(chapterLinkRelatedPost);
setAttributes: setAttributes setAttributes({
}), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { chapterLinkRelatedPost
});
}
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_6__.PanelBody, {
className: "related-conseil-panel-body",
title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Page de lien de ce Chapitre ", "homegrade-blocks__texte-fonctionnel")
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.__experimentalLinkControl, {
value: chapterLinkRelatedPost,
onChange: handleRelatedPostChange
}))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)({ ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)({
className: `homegrade-blocks-lien-chapitre` className: `homegrade-blocks-lien-chapitre`
}) })
@ -615,9 +476,8 @@ function Edit({
placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Descriptif du chapitre", "homegrade-blocks"), placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Descriptif du chapitre", "homegrade-blocks"),
value: chapterLinkDescription, value: chapterLinkDescription,
onChange: onChangeChapterLinkDescription onChange: onChangeChapterLinkDescription
}), chapterLinkRelatedPostUrl && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", { }), chapterLinkRelatedPost && chapterLinkRelatedPost.url && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
className: "homegrade-blocks-lien-chapitre__cta", className: "homegrade-blocks-lien-chapitre__cta"
href: chapterLinkRelatedPostUrl
}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "cta_arrow_button" class: "cta_arrow_button"
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", { }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
@ -699,7 +559,7 @@ function save({
let { let {
chapterLinkTitle, chapterLinkTitle,
chapterLinkDescription, chapterLinkDescription,
chapterLinkRelatedPostUrl chapterLinkRelatedPost
} = attributes; } = attributes;
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
..._wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({ ..._wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({
@ -713,9 +573,11 @@ function save({
tagName: "p", tagName: "p",
value: chapterLinkDescription, value: chapterLinkDescription,
className: "homegrade-blocks-lien-chapitre__description" className: "homegrade-blocks-lien-chapitre__description"
}), chapterLinkRelatedPostUrl && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", { }), chapterLinkRelatedPost && chapterLinkRelatedPost.url && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
className: "homegrade-blocks-lien-chapitre__cta", className: "homegrade-blocks-lien-chapitre__cta",
href: chapterLinkRelatedPostUrl href: chapterLinkRelatedPost.url,
target: chapterLinkRelatedPost.opensInNewTab ? "_blank" : "_self",
rel: "noopener"
}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "cta_arrow_button" class: "cta_arrow_button"
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", { }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
@ -917,16 +779,6 @@ module.exports = window["wp"]["element"];
/***/ }), /***/ }),
/***/ "@wordpress/html-entities":
/*!**************************************!*\
!*** external ["wp","htmlEntities"] ***!
\**************************************/
/***/ ((module) => {
module.exports = window["wp"]["htmlEntities"];
/***/ }),
/***/ "@wordpress/i18n": /***/ "@wordpress/i18n":
/*!******************************!*\ /*!******************************!*\
!*** external ["wp","i18n"] ***! !*** external ["wp","i18n"] ***!
@ -963,7 +815,7 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json
\********************************************/ \********************************************/
/***/ ((module) => { /***/ ((module) => {
module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/chapitre-thematique","version":"0.1.0","title":"Chapitre Thématiques ","category":"homegrade-blocks","description":"Point de légende pour titrer ou décrire un point de légende spécifique sur un Schéma ","supports":{"html":false},"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterTitle":{"type":"string","default":""},"chapterDescription":{"type":"string","default":""},"chapterImageUrl":{"type":"string"},"chapterImageId":{"type":"number"},"chapterImageAlt":{"type":"string","source":"attribute","selector":"img","attribute":"alt","default":""}}}'); module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/chapitre-thematique","version":"0.1.0","title":"Chapitre Thématiques ","category":"homegrade-blocks","description":"Point de légende pour titrer ou décrire un point de légende spécifique sur un Schéma ","supports":{"html":false},"parent":["homegrade-content-blocks/chapitrage-thematique"],"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterTitle":{"type":"string","default":""},"chapterDescription":{"type":"string","default":""},"chapterImageUrl":{"type":"string"},"chapterImageId":{"type":"number"},"chapterImageAlt":{"type":"string","source":"attribute","selector":"img","attribute":"alt","default":""}}}');
/***/ }), /***/ }),
@ -973,7 +825,7 @@ module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json
\**************************************/ \**************************************/
/***/ ((module) => { /***/ ((module) => {
module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/lien-chapitre","version":"0.1.0","title":"Lien de chapitre","category":"homegrade-blocks","description":"Pour insérer des liens dans un chapitre thématique","supports":{"html":false},"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterLinkTitle":{"type":"string","default":""},"chapterLinkDescription":{"type":"string","default":""},"chapterLinkRelatedPostId":{"type":"number"},"chapterLinkRelatedPostUrl":{"type":"string"}}}'); module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/lien-chapitre","version":"0.1.0","title":"Lien de chapitre","category":"homegrade-blocks","description":"Pour insérer des liens dans un chapitre thématique","supports":{"html":false},"parent":["homegrade-content-blocks/chapitre-thematique"],"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterLinkTitle":{"type":"string","default":""},"chapterLinkDescription":{"type":"string","default":""},"chapterLinkRelatedPost":{"type":"object"},"chapterLinkRelatedPostId":{"type":"number"},"chapterLinkRelatedPostUrl":{"type":"string"}}}');
/***/ }) /***/ })

File diff suppressed because one or more lines are too long

View File

@ -9,6 +9,9 @@
"supports": { "supports": {
"html": false "html": false
}, },
"parent": [
"homegrade-content-blocks/chapitre-thematique"
],
"editorScript": "file:./index.js", "editorScript": "file:./index.js",
"editorStyle": "file:./index.css", "editorStyle": "file:./index.css",
"style": "file:./style-index.css", "style": "file:./style-index.css",
@ -21,6 +24,9 @@
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"chapterLinkRelatedPost": {
"type": "object"
},
"chapterLinkRelatedPostId": { "chapterLinkRelatedPostId": {
"type": "number" "type": "number"
}, },

View File

@ -1 +1 @@
<?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => 'b819972aa3fa1522c5df'); <?php return array('dependencies' => array('react', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '7bfff374a553acf463b4');

View File

@ -1,4 +1,9 @@
/*!******************************************************************************************************************************************************************************************************************************************************!*\ /*!******************************************************************************************************************************************************************************************************************************************************!*\
!*** 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/lien-chapitre/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/lien-chapitre/editor.scss ***!
\******************************************************************************************************************************************************************************************************************************************************/ \******************************************************************************************************************************************************************************************************************************************************/
.related-conseil-panel-body .block-editor-link-control__search-item,
.related-conseil-panel-body .block-editor-link-control__search-input-wrapper {
max-width: 80%;
}
/*# sourceMappingURL=index.css.map*/

View File

@ -0,0 +1 @@
{"version":3,"file":"lien-chapitre/index.css","mappings":";;;AACC;;EAEC;AAAF,C","sources":["webpack://multiblocks/./src/lien-chapitre/editor.scss"],"sourcesContent":[".related-conseil-panel-body {\r\n\t.block-editor-link-control__search-item,\r\n\t.block-editor-link-control__search-input-wrapper {\r\n\t\tmax-width: 80%;\r\n\t}\r\n}\r\n"],"names":[],"sourceRoot":""}

View File

@ -56,152 +56,6 @@ var SvgArrowRightCircle = function SvgArrowRightCircle(props) {
/***/ }), /***/ }),
/***/ "./src/lien-chapitre/OptionsSelectControl.js":
/*!***************************************************!*\
!*** ./src/lien-chapitre/OptionsSelectControl.js ***!
\***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ OptionsSelectControl)
/* 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__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/html-entities */ "@wordpress/html-entities");
/* harmony import */ var _wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__);
function OptionsSelectControl({
setAttributes,
chapterLinkRelatedPostId
}) {
var _ref;
let [relatedQuestionPages, setRelatedQuestionPages] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
let [childTermsIdArray, setChildTermsIdArray] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const lang = getAdminLanguageFromCookie("wp-wpml_current_language");
function getAdminLanguageFromCookie(c_name) {
var c_value = document.cookie,
c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1) c_start = c_value.indexOf(c_name + "=");
if (c_start == -1) {
c_value = null;
} else {
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1) {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start, c_end));
}
return c_value;
}
function handleRelatedPostChange(postId) {
setAttributes({
chapterLinkRelatedPostId: Number(postId)
});
}
function buildTaxChildrenIdArray(childrenArray) {
return childrenArray.map(item => item.id);
}
function buildSelectOptions(relatedPossiblePages) {
let options = [];
if (relatedPossiblePages) {
options.push({
value: 0,
label: "Sélectionnez une page"
});
relatedPossiblePages.forEach(page => {
options.push({
value: page.id,
label: (0,_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_6__.decodeEntities)(page.title.rendered)
});
});
} else {
options.push({
value: 0,
label: "Pas encore de questions..."
});
}
return options;
}
// GET TAXONOMIES INOFRMATION
let postTaxonomies = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => select("core/editor").getCurrentPostAttribute("thematiques"));
// GET THE CURRENT TAXONOMY AND FIND THE PARENT OBJECT
let postMainTaxonomy = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => select("core").getEntityRecord("taxonomy", "thematiques", postTaxonomies[0]), [postTaxonomies]);
let postParentTaxonomy = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (postMainTaxonomy && postMainTaxonomy.parent) {
return select("core").getEntityRecord("taxonomy", "thematiques", postMainTaxonomy.parent);
}
return null;
}, [postMainTaxonomy]);
let currentGeneralThematique = (_ref = postParentTaxonomy !== null && postParentTaxonomy !== void 0 ? postParentTaxonomy : postMainTaxonomy) !== null && _ref !== void 0 ? _ref : null;
// GET THE PARENT TAX CHILDREN
let childTerms = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (currentGeneralThematique) {
return select("core").getEntityRecords("taxonomy", "thematiques", {
parent: currentGeneralThematique.id
});
}
return null;
});
// BUILD AN ARRAY OF CHILDREN TAXONOMIES ID AND PUT IT IN THE STATE
(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (childTerms) {
setChildTermsIdArray(buildTaxChildrenIdArray(childTerms));
}
}, [childTerms]);
// GET OPTIONS FOR RELATED POSSIBLE PAGES ACCORDING TO CURRENT TAXONOMY CHILDREN ID ARRAY
const relatedPossiblePages = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
if (childTermsIdArray) {
let query = {
status: "publish",
per_page: -1,
lang: lang,
thematiques: childTermsIdArray
};
return select("core").getEntityRecords("postType", "conseils", query);
}
return null;
});
(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (relatedPossiblePages) {
setRelatedQuestionPages(buildSelectOptions(relatedPossiblePages));
}
}, [relatedPossiblePages]);
let panelTitle = postParentTaxonomy ? "Conseils " + postParentTaxonomy.name : postMainTaxonomy ? "Conseils " + postMainTaxonomy.name : null;
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, {
title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Conseils Relié", "homegrade-blocks__texte-fonctionnel")
}, relatedQuestionPages && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ComboboxControl, {
label: panelTitle,
onChange: e => handleRelatedPostChange(e),
options: relatedQuestionPages,
value: chapterLinkRelatedPostId
})));
}
/***/ }),
/***/ "./src/lien-chapitre/edit.js": /***/ "./src/lien-chapitre/edit.js":
/*!***********************************!*\ /*!***********************************!*\
!*** ./src/lien-chapitre/edit.js ***! !*** ./src/lien-chapitre/edit.js ***!
@ -222,7 +76,8 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _img_arrow_right_circle_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../img/arrow-right-circle.svg */ "./src/img/arrow-right-circle.svg"); /* harmony import */ var _img_arrow_right_circle_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../img/arrow-right-circle.svg */ "./src/img/arrow-right-circle.svg");
/* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss"); /* harmony import */ var _editor_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor.scss */ "./src/lien-chapitre/editor.scss");
/* harmony import */ var _OptionsSelectControl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./OptionsSelectControl */ "./src/lien-chapitre/OptionsSelectControl.js"); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_6__);
@ -238,17 +93,8 @@ function Edit({
let { let {
chapterLinkTitle, chapterLinkTitle,
chapterLinkDescription, chapterLinkDescription,
chapterLinkRelatedPostId, chapterLinkRelatedPost
chapterLinkRelatedPostUrl
} = attributes; } = attributes;
let currentRelatedPostConseil = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select("core").getEntityRecord("postType", "conseils", chapterLinkRelatedPostId));
if (currentRelatedPostConseil && currentRelatedPostConseil.link !== chapterLinkRelatedPostUrl) {
console.log(chapterLinkRelatedPostUrl);
console.log(currentRelatedPostConseil.link);
setAttributes({
chapterLinkRelatedPostUrl: currentRelatedPostConseil.link
});
}
function onChangeChapterLinkTitle(chapterLinkTitle) { function onChangeChapterLinkTitle(chapterLinkTitle) {
setAttributes({ setAttributes({
chapterLinkTitle chapterLinkTitle
@ -259,10 +105,19 @@ function Edit({
chapterLinkDescription chapterLinkDescription
}); });
} }
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_OptionsSelectControl__WEBPACK_IMPORTED_MODULE_6__["default"], { function handleRelatedPostChange(chapterLinkRelatedPost) {
chapterLinkRelatedPostId: chapterLinkRelatedPostId, console.log(chapterLinkRelatedPost);
setAttributes: setAttributes setAttributes({
}), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { chapterLinkRelatedPost
});
}
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_6__.PanelBody, {
className: "related-conseil-panel-body",
title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Page de lien de ce Chapitre ", "homegrade-blocks__texte-fonctionnel")
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.__experimentalLinkControl, {
value: chapterLinkRelatedPost,
onChange: handleRelatedPostChange
}))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)({ ...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.useBlockProps)({
className: `homegrade-blocks-lien-chapitre` className: `homegrade-blocks-lien-chapitre`
}) })
@ -278,9 +133,8 @@ function Edit({
placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Descriptif du chapitre", "homegrade-blocks"), placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Descriptif du chapitre", "homegrade-blocks"),
value: chapterLinkDescription, value: chapterLinkDescription,
onChange: onChangeChapterLinkDescription onChange: onChangeChapterLinkDescription
}), chapterLinkRelatedPostUrl && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", { }), chapterLinkRelatedPost && chapterLinkRelatedPost.url && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
className: "homegrade-blocks-lien-chapitre__cta", className: "homegrade-blocks-lien-chapitre__cta"
href: chapterLinkRelatedPostUrl
}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "cta_arrow_button" class: "cta_arrow_button"
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", { }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
@ -362,7 +216,7 @@ function save({
let { let {
chapterLinkTitle, chapterLinkTitle,
chapterLinkDescription, chapterLinkDescription,
chapterLinkRelatedPostUrl chapterLinkRelatedPost
} = attributes; } = attributes;
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
..._wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({ ..._wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({
@ -376,9 +230,11 @@ function save({
tagName: "p", tagName: "p",
value: chapterLinkDescription, value: chapterLinkDescription,
className: "homegrade-blocks-lien-chapitre__description" className: "homegrade-blocks-lien-chapitre__description"
}), chapterLinkRelatedPostUrl && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", { }), chapterLinkRelatedPost && chapterLinkRelatedPost.url && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
className: "homegrade-blocks-lien-chapitre__cta", className: "homegrade-blocks-lien-chapitre__cta",
href: chapterLinkRelatedPostUrl href: chapterLinkRelatedPost.url,
target: chapterLinkRelatedPost.opensInNewTab ? "_blank" : "_self",
rel: "noopener"
}, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { }, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("En savoir plus", "homegrade-blocks"), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "cta_arrow_button" class: "cta_arrow_button"
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", { }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
@ -473,16 +329,6 @@ module.exports = window["wp"]["element"];
/***/ }), /***/ }),
/***/ "@wordpress/html-entities":
/*!**************************************!*\
!*** external ["wp","htmlEntities"] ***!
\**************************************/
/***/ ((module) => {
module.exports = window["wp"]["htmlEntities"];
/***/ }),
/***/ "@wordpress/i18n": /***/ "@wordpress/i18n":
/*!******************************!*\ /*!******************************!*\
!*** external ["wp","i18n"] ***! !*** external ["wp","i18n"] ***!
@ -499,7 +345,7 @@ module.exports = window["wp"]["i18n"];
\**************************************/ \**************************************/
/***/ ((module) => { /***/ ((module) => {
module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/lien-chapitre","version":"0.1.0","title":"Lien de chapitre","category":"homegrade-blocks","description":"Pour insérer des liens dans un chapitre thématique","supports":{"html":false},"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterLinkTitle":{"type":"string","default":""},"chapterLinkDescription":{"type":"string","default":""},"chapterLinkRelatedPostId":{"type":"number"},"chapterLinkRelatedPostUrl":{"type":"string"}}}'); module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/lien-chapitre","version":"0.1.0","title":"Lien de chapitre","category":"homegrade-blocks","description":"Pour insérer des liens dans un chapitre thématique","supports":{"html":false},"parent":["homegrade-content-blocks/chapitre-thematique"],"editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","attributes":{"chapterLinkTitle":{"type":"string","default":""},"chapterLinkDescription":{"type":"string","default":""},"chapterLinkRelatedPost":{"type":"object"},"chapterLinkRelatedPostId":{"type":"number"},"chapterLinkRelatedPostUrl":{"type":"string"}}}');
/***/ }) /***/ })

File diff suppressed because one or more lines are too long

View File

@ -9,6 +9,9 @@
"supports": { "supports": {
"html": false "html": false
}, },
"parent": [
"homegrade-content-blocks/chapitrage-thematique"
],
"editorScript": "file:./index.js", "editorScript": "file:./index.js",
"editorStyle": "file:./index.css", "editorStyle": "file:./index.css",
"style": "file:./style-index.css", "style": "file:./style-index.css",

View File

@ -21,6 +21,21 @@ export default function Edit({
> >
<InnerBlocks <InnerBlocks
allowedBlocks={["homegrade-content-blocks/chapitre-thematique"]} allowedBlocks={["homegrade-content-blocks/chapitre-thematique"]}
template={[
[
"homegrade-content-blocks/chapitre-thematique",
{ chapterTitle: "Titre de votre chapitre" },
[
[
"homegrade-content-blocks/lien-chapitre",
{
chapterLinkTitle: "Lien chapitre 1 ",
chapterLinkDescription: "Un description de cette page specifique",
},
],
],
],
]}
/> />
</section> </section>
</> </>

View File

@ -0,0 +1,61 @@
import { __ } from "@wordpress/i18n";
import {
InspectorControls,
__experimentalLinkControl as LinkControl,
} from "@wordpress/block-editor";
import {
PanelBody,
ComboboxControl,
__experimentalToggleGroupControl as ToggleGroupControl,
__experimentalToggleGroupControlOption as ToggleGroupControlOption,
} from "@wordpress/components";
import "./editor.scss";
import { useSelect } from "@wordpress/data";
import { useEffect, useState } from "@wordpress/element";
import { decodeEntities } from "@wordpress/html-entities";
export default function OptionsSelectControl({
setAttributes,
chapterLinkRelatedPostId,
chapterLinkRelatedPost,
}) {
let [relatedQuestionPages, setRelatedQuestionPages] = useState(null);
let [childTermsIdArray, setChildTermsIdArray] = useState(null);
const lang = getAdminLanguageFromCookie("wp-wpml_current_language");
function getAdminLanguageFromCookie(c_name) {
var c_value = document.cookie,
c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1) c_start = c_value.indexOf(c_name + "=");
if (c_start == -1) {
c_value = null;
} else {
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1) {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start, c_end));
}
return c_value;
}
function handleRelatedPostChange(chapterLinkRelatedPost) {
setAttributes({ chapterLinkRelatedPost });
}
return (
<InspectorControls>
<PanelBody
className="related-conseil-panel-body"
title={__("Page de lien de ce Chapitre ", "homegrade-blocks__texte-fonctionnel")}
>
<LinkControl
value={chapterLinkRelatedPost}
onChange={handleRelatedPostChange}
/>
</PanelBody>
</InspectorControls>
);
}

View File

@ -9,6 +9,9 @@
"supports": { "supports": {
"html": false "html": false
}, },
"parent": [
"homegrade-content-blocks/chapitre-thematique"
],
"editorScript": "file:./index.js", "editorScript": "file:./index.js",
"editorStyle": "file:./index.css", "editorStyle": "file:./index.css",
"style": "file:./style-index.css", "style": "file:./style-index.css",
@ -21,6 +24,9 @@
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"chapterLinkRelatedPost": {
"type": "object"
},
"chapterLinkRelatedPostId": { "chapterLinkRelatedPostId": {
"type": "number" "type": "number"
}, },

View File

@ -1,36 +1,19 @@
import { __ } from "@wordpress/i18n"; import { __ } from "@wordpress/i18n";
import { useSelect } from "@wordpress/data"; import { useSelect } from "@wordpress/data";
import { useBlockProps, RichText } from "@wordpress/block-editor"; import {
useBlockProps,
RichText,
InspectorControls,
__experimentalLinkControl as LinkControl,
} from "@wordpress/block-editor";
import arrow from "../img/arrow-right-circle.svg"; import arrow from "../img/arrow-right-circle.svg";
import "./editor.scss"; import "./editor.scss";
import OptionsSelectControl from "./OptionsSelectControl";
import { PanelBody } from "@wordpress/components";
export default function Edit({ attributes, setAttributes, ...props }) { export default function Edit({ attributes, setAttributes, ...props }) {
let { let { chapterLinkTitle, chapterLinkDescription, chapterLinkRelatedPost } =
chapterLinkTitle, attributes;
chapterLinkDescription,
chapterLinkRelatedPostId,
chapterLinkRelatedPostUrl,
} = attributes;
let currentRelatedPostConseil = useSelect((select) =>
select("core").getEntityRecord(
"postType",
"conseils",
chapterLinkRelatedPostId
)
);
if (
currentRelatedPostConseil &&
currentRelatedPostConseil.link !== chapterLinkRelatedPostUrl
) {
console.log(chapterLinkRelatedPostUrl);
console.log(currentRelatedPostConseil.link);
setAttributes({
chapterLinkRelatedPostUrl: currentRelatedPostConseil.link,
});
}
function onChangeChapterLinkTitle(chapterLinkTitle) { function onChangeChapterLinkTitle(chapterLinkTitle) {
setAttributes({ chapterLinkTitle }); setAttributes({ chapterLinkTitle });
@ -38,12 +21,28 @@ export default function Edit({ attributes, setAttributes, ...props }) {
function onChangeChapterLinkDescription(chapterLinkDescription) { function onChangeChapterLinkDescription(chapterLinkDescription) {
setAttributes({ chapterLinkDescription }); setAttributes({ chapterLinkDescription });
} }
function onRelatedPostChange(chapterLinkRelatedPost) {
console.log(chapterLinkRelatedPost);
setAttributes({ chapterLinkRelatedPost });
}
return ( return (
<> <>
<OptionsSelectControl <InspectorControls>
chapterLinkRelatedPostId={chapterLinkRelatedPostId} <PanelBody
setAttributes={setAttributes} className="related-conseil-panel-body"
title={__(
"Page de lien de ce Chapitre ",
"homegrade-blocks__texte-fonctionnel"
)}
>
<LinkControl
value={chapterLinkRelatedPost}
onChange={onRelatedPostChange}
/> />
</PanelBody>
</InspectorControls>
<div <div
{...useBlockProps({ {...useBlockProps({
className: `homegrade-blocks-lien-chapitre`, className: `homegrade-blocks-lien-chapitre`,
@ -52,20 +51,26 @@ export default function Edit({ attributes, setAttributes, ...props }) {
<RichText <RichText
tagName="h4" tagName="h4"
className="homegrade-blocks-lien-chapitre__title" className="homegrade-blocks-lien-chapitre__title"
placeholder={__("Titre du chapitre", "homegrade-blocks")} placeholder={__(
"Titre du chapitre",
"homegrade-blocks__texte-fonctionnel"
)}
value={chapterLinkTitle} value={chapterLinkTitle}
onChange={onChangeChapterLinkTitle} onChange={onChangeChapterLinkTitle}
/> />
<RichText <RichText
tagName="p" tagName="p"
className="homegrade-blocks-lien-chapitre__description" className="homegrade-blocks-lien-chapitre__description"
placeholder={__("Descriptif du chapitre", "homegrade-blocks")} placeholder={__(
"Descriptif du chapitre",
"homegrade-blocks__texte-fonctionnel"
)}
value={chapterLinkDescription} value={chapterLinkDescription}
onChange={onChangeChapterLinkDescription} onChange={onChangeChapterLinkDescription}
/> />
{chapterLinkRelatedPostUrl && ( {chapterLinkRelatedPost && chapterLinkRelatedPost.url && (
<a className="homegrade-blocks-lien-chapitre__cta" href={chapterLinkRelatedPostUrl}> <a className="homegrade-blocks-lien-chapitre__cta">
{__("En savoir plus", "homegrade-blocks")} {__("En savoir plus", "homegrade-blocks__texte-fonctionnel")}
<div class="cta_arrow_button"> <div class="cta_arrow_button">
<img src={arrow} alt="" /> <img src={arrow} alt="" />
</div> </div>

View File

@ -1 +1,7 @@
// THE STYLE IS HANDLED IN PARENT CHAPITRAGE THEMATIQUE BLOCK .related-conseil-panel-body {
.block-editor-link-control__search-actions,
.block-editor-link-control__search-item,
.block-editor-link-control__search-input-wrapper {
max-width: 80%;
}
}

View File

@ -3,7 +3,7 @@ import { __ } from "@wordpress/i18n";
import arrow from "../img/arrow-right-circle.svg"; import arrow from "../img/arrow-right-circle.svg";
export default function save({ attributes }) { export default function save({ attributes }) {
let { chapterLinkTitle, chapterLinkDescription, chapterLinkRelatedPostUrl } = let { chapterLinkTitle, chapterLinkDescription, chapterLinkRelatedPost } =
attributes; attributes;
return ( return (
@ -23,10 +23,12 @@ export default function save({ attributes }) {
className="homegrade-blocks-lien-chapitre__description" className="homegrade-blocks-lien-chapitre__description"
/> />
{chapterLinkRelatedPostUrl && ( {chapterLinkRelatedPost && chapterLinkRelatedPost.url && (
<a <a
className="homegrade-blocks-lien-chapitre__cta" className="homegrade-blocks-lien-chapitre__cta"
href={chapterLinkRelatedPostUrl} href={chapterLinkRelatedPost.url}
target={chapterLinkRelatedPost.opensInNewTab ? "_blank" : "_self"}
rel={chapterLinkRelatedPost.opensInNewTab ? "noopener" : ""}
> >
{__("En savoir plus", "homegrade-blocks")} {__("En savoir plus", "homegrade-blocks")}
<div class="cta_arrow_button"> <div class="cta_arrow_button">