<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Code-Rhapsodie feed</title>
    <subtitle type="html">Atom feed for last blogposts</subtitle>
    <id>https://www.code-rhapsodie.fr/</id>
            <updated>2026-04-27T14:02:16+02:00</updated>
    
    <link rel="self" type="application/atom+xml" href="https://www.code-rhapsodie.fr/en/feed/all"/>

            <link rel="next" href="https://www.code-rhapsodie.fr/en/feed/all/2"/>
    <link rel="last" href="https://www.code-rhapsodie.fr/en/feed/all/8"/>

    <generator uri="https://www.code-rhapsodie.fr/" version="">Code-Rhapsodie</generator>
    <link href="https://www.code-rhapsodie.fr/" />

            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/reprise-de-la-maintenance-du-provider-apple-pour-php-league-oauth2-client</id>
            <title><![CDATA[Reprise de la maintenance du provider Apple pour PHP League OAuth2 Client]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/reprise-de-la-maintenance-du-provider-apple-pour-php-league-oauth2-client" />
            <updated>2026-04-27T14:02:16+02:00</updated>
            <published>2026-04-27T14:02:15+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/php" label="PHP" />
                        <author>
                <name>Jean-Baptiste N.</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <h2>&#127823; On sauve le package oauth2-apple !</h2><p>Vous utilisez l'authentification Apple dans vos projets PHP ? Alors vous connaissez s&ucirc;rement le package de <a href="https://github.com/patrickbussmann" target="_blank">Patrick Bussmann</a>. Malheureusement, celui-ci n'est plus maintenu depuis un moment, laissant les d&eacute;veloppeurs face &agrave; des enjeux de compatibilit&eacute; et de s&eacute;curit&eacute;.</p><p>Chez Code Rhapsodie, nous croyons fermement &agrave; la force de l'Open Source. Plut&ocirc;t que de laisser cet outil s'&eacute;teindre, nous avons d&eacute;cid&eacute; de prendre nos responsabilit&eacute;s.</p><h2>&#128640; Ce qui change aujourd'hui</h2><p>Nous avons officiellement <a href="https://github.com/code-rhapsodie/oauth2-apple" target="_blank">fork&eacute; le projet</a> pour lui donner un second souffle !</p><p>Maintenance active : Suivi des issues et des pull requests.</p><p>Mises &agrave; jour de s&eacute;curit&eacute; : Un code surveill&eacute; et mis &agrave; jour r&eacute;guli&egrave;rement.</p><p>Compatibilit&eacute; : Alignement avec les derni&egrave;res versions de PHP et des d&eacute;pendances de l'&eacute;cosyst&egrave;me OAuth2.</p><h2>&#128230; Comment l'utiliser ?</h2><p>Rien de plus simple, le nouveau point d'entr&eacute;e est d&eacute;sormais disponible sur Packagist. Pour migrer, il vous suffit de mettre &agrave; jour votre composer.json :</p><p><span class="ezstyle-inline_code">composer require coderhapsodie/oauth2-apple</span>

</p><p>Un grand merci &agrave; Patrick Bussmann pour le travail initial. Nous sommes ravis de pouvoir continuer &agrave; faire vivre cette ressource pour la communaut&eacute;.</p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/nouvelle-fonctionnalite-de-suggestion-de-mots-cles-au-connecteur-gemini-pour-ibexa</id>
            <title><![CDATA[Nouvelle fonctionnalité de suggestion de mots-clés au connecteur Gemini pour Ibexa]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/nouvelle-fonctionnalite-de-suggestion-de-mots-cles-au-connecteur-gemini-pour-ibexa" />
            <updated>2026-04-27T14:02:15+02:00</updated>
            <published>2026-04-27T14:02:14+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/gemini" label="Gemini" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/tags" label="Tags" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ibexa" label="Ibexa" />
                        <author>
                <name>Equipe Code Rhapsodie</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <p>La suggestion de mots-cl&eacute;s de Taxonomy est disponible dans Ibexa DXP avec le pack de mise &agrave; jour LTS et le LLM OpenAI. Pour plus d'information sur cette fonctionnalit&eacute; :</p><ul><li><a href="https://doc.ibexa.co/en/latest/content_management/taxonomy/taxonomy/#extending-taxonomy-suggestions" target="_blank">la documentation technique des IA Actions</a></li><li><a href="https://doc.ibexa.co/en/latest/content_management/taxonomy/taxonomy/#extending-taxonomy-suggestions" target="_blank">la suggestion de Taxonomy</a></li></ul><p>Cette fonctionnalit&eacute; et maintenant disponible avec <a href="https://github.com/code-rhapsodie/connector-gemini" target="_blank">notre connecteur Gemini</a>. En un click, vous disposez d'une suggestion de mots-cl&eacute;s propos&eacute;s par l'IA qui s'appuie sur une liste de champs de votre contenu (ici Titre, Introduction et Corps de texte).</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/4/0/8/0/10804-2-fre-FR/b14c97317abc-IA-TAGS-Suggestion.png" alt="" height="1426" width="1726" />
    </figure>


</div>
        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/0/1/8/0/10810-1-fre-FR/1dc068ef3764-tags-suggestion.png" alt="tags suggestion.png" height="542" width="2266" />
    </figure>


</div>
<h2>Installation</h2><p><a href="https://github.com/code-rhapsodie/connector-gemini" target="_blank">T&eacute;l&eacute;chargez le bundle Gemini Connector</a> et l'installer dans votre projet.</p><p>Depuis l'interface d'administration d'Ibexa, rendez-vous dans Administration / AI actions, ajouter une action IA "Suggest taxonomy" :</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/2/2/8/0/10822-1-fre-FR/06e15a9d7cb6-add-new-action.png" alt="add-new action.png" height="518" width="945" />
    </figure>


</div>
<p>Compl&eacute;ter la configuration en s&eacute;lectionnant un type de contenu, ici Article, et les zones de saisie &agrave; s&eacute;lectionner (title, intro, body) et le ou les champs taxonomy que l'on veut cibler :</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/6/1/8/0/10816-1-fre-FR/68473dd3a5b9-ai-action-suggest.png" alt="ai-action-suggest.png" height="1454" width="1171" />
    </figure>


</div>
<p>Et voil&agrave;, &agrave; vous de jouer !</p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/split-a-large-sql-file-into-smaller-ones-for-easier-import</id>
            <title><![CDATA[Split a large SQL file into smaller ones for easier import]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/split-a-large-sql-file-into-smaller-ones-for-easier-import" />
            <updated>2026-04-27T14:02:13+02:00</updated>
            <published>2026-04-27T14:02:12+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/sql" label="sql" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ibexa/linux" label="linux" />
                        <author>
                <name>Olivier PORTIER</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <h2>Project context</h2><p>The project is installed on a Debian Linux VM (Virtual Box), and we need to debug a problem from an SQL file containing anonymised production data. The SQL file is several gigabytes in size.</p><p>Despite multiple attempts to import &ndash; whether via PHPStorm from your host machine, via command line from the host, or directly within the VM via its terminal &ndash; the result is always the same: the VM freezes, the import fails during the process, forcing you to start all over again.</p><h2>Workaround</h2><p>The best solution is to split the file into several smaller SQL files. We can then import the files to complete the data model from the table that crashed. This way, each file can be re-imported until the import is complete.</p><p>Thanks to <em>Kedar Vaijanapurkar</em> who developed a script for manipulating mysqldump files: <a href="https://github.com/kedarvj/mysqldumpsplitter/" target="_blank">https://github.com/kedarvj/mysqldumpsplitter/</a></p><h2>MySQLDumpSplitter</h2><p>Setup the script on your computer<span class="ezstyle-inline_code">https://github.com/kedarvj/mysqldumpsplitter/blob/master/mysqldumpsplitter.sh</span>

et and add execution rights :</p><pre>$ chmod +x mysqldumpsplitter.sh </pre><p>List all tables in SQL file:</p><pre>$ ./mysqldumpsplitter.sh --source my_huge_sql_file.sql --desc</pre><p>Export the biggest table that crash your import:</p><pre>$ ./mysqldumpsplitter.sh --source my_huge_sql_file.sql --extract REGEXP --match_str 'TABLE_NAME'</pre><p>We get a <span class="ezstyle-inline_code">out/</span>

 folder with a file <span class="ezstyle-inline_code">TABLE_NAME.sql.gz</span>

.</p><h2>Import a gzip file in MySQL</h2><p>To import a .gz file, use gunzip with the following commande:</p><pre>$ gunzip ./out/TABLE_NAME.sql.gz | mysql -h localhost -u &lt;db_user&gt; --password=&lt;db_password&gt; &lt;DBNAME&gt;</pre><p>Unfortunately, we do not have much information on the progress of this import.</p><h2>Progress bar</h2><p>We need a progress bar to see how the import is going:</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/4/6/7/0/10764-1-fre-FR/e39db5b09fc3-progressebar.png" alt="progressebar.png" height="112" width="1076" />
    </figure>


</div>
<h2>Install the progress bar</h2><pre>sudo apt install pv</pre><h2>Use pv</h2><pre>$ pv ./out/TABLE_NAME.sql.gz | gunzip | mysql -h localhost -u &lt;db_user&gt; --password=&lt;db_password&gt; &lt;DBNAME&gt;</pre><h2>Export multiple tables</h2><p>Exporting and importing work perfectly for a single table. Here's how to export multiple tables:</p><pre>$ ./mysqldumpsplitter.sh --source my_huge_sql_file.sql --extract REGEXP --match_str '(TABLE_NAME_1|TABLE_NAME_2|TABLE_NAME_3|TABLE_NAME_4|TABLE_NAME_5|TABLE_NAME_6|TABLE_NAME_7|TABLE_NAME_8)' </pre><h2>Bulk import script</h2><p>We are not going to execute one command per table, so we will develop a small script to import all the files in the<span class="ezstyle-inline_code">out/</span>

folder</p><p>&nbsp;</p><pre>
   <code class="language-plaintext">

#!/bin/bash
for i in ./out/*.sql.gz
do
&nbsp; echo &quot;Importing: $i&quot;
&nbsp; pv $i | gunzip | mysql -h localhost -u &lt;db_user&gt; --password=&lt;db_password&gt; &lt;DBNAME&gt;
&nbsp; wait
done&nbsp; 
   </code>
</pre>

<p>Execution of a progressive import that runs smoothly:</p><pre>$ chmod +x import-sql-gz.sh
$ ./import-sql-gz.sh</pre><p>Debugging of the project can begin!</p><p>Please contact us for any debugging requests for your solutions or for the implementation of your project. <a href="/contact">Do not hesitate to get in touch</a>.<br>&nbsp;</p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/sylius-vs-shopware-quelle-architecture-choisir-pour-votre-futur-e-commerce</id>
            <title><![CDATA[Sylius vs Shopware : Quelle architecture choisir pour votre futur e-commerce ?]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/sylius-vs-shopware-quelle-architecture-choisir-pour-votre-futur-e-commerce" />
            <updated>2026-01-23T11:19:48+01:00</updated>
            <published>2026-01-23T11:17:00+01:00</published>
                        <author>
                <name>Jean-Baptiste N.</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <p>Dans l'&eacute;cosyst&egrave;me PHP, il y a de nombreux outils pour r&eacute;aliser un site e-commerce. Voyons deux d'entre eux : <a href="https://sylius.com/fr/" target="_blank"><strong>Sylius</strong></a> et <a href="https://www.shopware.com/en/" target="_blank"><strong>Shopware</strong></a>. Bien qu'ils partagent le m&ecirc;me socle technologique, leurs philosophies divergent radicalement.</p><p>Le choix de l'un ou de l'autre n'est pas qu'une question de fonctionnalit&eacute;s, c'est une d&eacute;cision strat&eacute;gique qui impactera votre flexibilit&eacute; m&eacute;tier et vos co&ucirc;ts de maintenance &agrave; long terme. D&eacute;cryptage.</p><h2>1. Deux philosophies, deux approches du e-commerce</h2><h3>Sylius : Le "Framework" de la sur-mesure</h3><p>Sylius n'est pas une solution "cl&eacute;s en main" au sens traditionnel. C&rsquo;est un framework sp&eacute;cialis&eacute;. &Agrave; l'installation, vous disposez des briques essentielles, mais la plateforme est pens&eacute;e pour &ecirc;tre model&eacute;e par une &eacute;quipe de d&eacute;veloppement. C'est l'outil de pr&eacute;dilection pour les projets o&ugrave; le m&eacute;tier doit dicter le fonctionnement de l'outil, et non l'inverse.</p><h3>Shopware : Le "Produit" orient&eacute; &eacute;cosyst&egrave;me</h3><p>Shopware propose une approche plus packag&eacute;e. Tr&egrave;s orient&eacute; vers les plugins et les applications, il tend de plus en plus vers un mod&egrave;le <strong>SaaS (Software as a Service)</strong>. C'est une solution robuste qui permet de lancer des fonctionnalit&eacute;s rapidement gr&acirc;ce &agrave; son marketplace, tout en offrant une version auto-h&eacute;berg&eacute;e pour plus de contr&ocirc;le.</p><h2>2. L'extension du syst&egrave;me : SaaS vs Self-Hosted</h2><p>Le choix de l'architecture d'extension est le point de rupture entre les deux outils :</p><p><strong>L'approche Shopware (Vision SaaS) :</strong> Via son mod&egrave;le d'applications, Shopware d&eacute;porte la logique m&eacute;tier vers des services tiers via des <strong>Webhooks</strong> et des <strong>API</strong>. C&rsquo;est id&eacute;al pour la scalabilit&eacute;, mais cela limite la personnalisation au p&eacute;rim&egrave;tre des points d'extension pr&eacute;vus par l'&eacute;diteur.</p><p><strong>L'approche Sylius (Vision Framework) :</strong> Ici, le "SaaS" pur est plus complexe &agrave; mettre en &oelig;uvre car Sylius mise sur la souplesse. La personnalisation se fait au c&oelig;ur du code, offrant une libert&eacute; totale.</p><blockquote><p><strong>Le saviez-vous ?</strong> Si vous h&eacute;bergez vous-m&ecirc;me Shopware, vous pouvez utiliser des <strong>Plugins</strong> (similaires aux Bundles Symfony). Attention toutefois: multiplier les plugins tiers peut complexifier vos futures mises &agrave; jour, une probl&eacute;matique que les d&eacute;veloppeurs Symfony ont bien connue avec l'&egrave;re des "tout bundles" de Symfony 2.</p></blockquote><h2>3. Comparatif Technique : Sous le capot</h2><p>Bien que les deux utilisent Symfony, leur gestion des donn&eacute;es et de l'interface diff&egrave;re :</p><table class="table"><thead><tr><th><strong>Caract&eacute;ristique</strong></th><th><strong>Sylius</strong></th><th><strong>Shopware</strong></th></tr></thead><tbody><tr><td><strong>Gestion des donn&eacute;es</strong></td><td>Doctrine ORM (standard Symfony)</td><td>Couche d'abstraction propri&eacute;taire (DAL)</td></tr><tr><td><strong>Modification DB</strong></td><td>Surcharge de mod&egrave;les (souple)</td><td>Configuration &amp; tables d&eacute;di&eacute;es (rigide)</td></tr><tr><td><strong>Frontend</strong></td><td>Personnalisation totale "from scratch"</td><td>Syst&egrave;me de th&egrave;mes bas&eacute; sur l'h&eacute;ritage</td></tr><tr><td><strong>Recherche</strong></td><td>&Agrave; ajouter (<a href="https://www.elastic.co/fr/elasticsearch" target="_blank">Elasticsearch</a>, <a href="https://www.algolia.com/fr" target="_blank">Algolia</a>...)</td><td>Native (Elasticsearch/<a href="https://opensearch.org/" target="_blank">OpenSearch</a> requis)</td></tr></tbody></table><p><strong>Le point critique :</strong> Dans Shopware, la recherche est int&eacute;gr&eacute;e nativement, ce qui acc&eacute;l&egrave;re le "Time to Market". Dans Sylius, cette brique doit &ecirc;tre construite ou int&eacute;gr&eacute;e via un plugin, ce qui demande plus d'effort initial mais permet de choisir une solution parfaitement calibr&eacute;e (comme <a href="https://www.meilisearch.com/" target="_blank">Meilisearch</a> ou Algolia).</p><h2>4. Comment faire le bon choix ?</h2><p>Le choix final d&eacute;pend de votre &eacute;quipe et de votre vision strat&eacute;gique :</p><p><strong>Optez pour le SaaS (Shopware Cloud)</strong> si vous souhaitez d&eacute;l&eacute;guer la maintenance technique et adapter vos processus m&eacute;tier aux outils existants.</p><p><strong>Optez pour l'Auto-h&eacute;berg&eacute; (Sylius ou Shopware Self-hosted)</strong> si vous avez des besoins m&eacute;tier sp&eacute;cifiques, des flux de donn&eacute;es complexes ou une volont&eacute; de ma&icirc;triser votre infrastructure de A &agrave; Z.</p><h2>Pourquoi vous faire accompagner ?</h2><p>Peu importe l'outil choisi, la r&eacute;ussite de votre projet d&eacute;pend de la qualit&eacute; de l'impl&eacute;mentation. Une application e-commerce mal con&ccedil;ue devient rapidement une dette technique co&ucirc;teuse.</p><p><strong>Notre expertise technique &agrave; votre service :</strong></p><p>Que vous penchiez pour la souplesse absolue de <strong>Sylius</strong> ou la puissance de l'&eacute;cosyst&egrave;me <strong>Shopware</strong>, nous vous accompagnons dans :</p><ul><li>Le choix de l'architecture adapt&eacute;e &agrave; votre volume de ventes.</li><li>Le d&eacute;veloppement de fonctionnalit&eacute;s m&eacute;tier sp&eacute;cifiques.</li><li>La maintenance &eacute;volutive et l'optimisation des performances.</li></ul><p>Vous avez un projet e-commerce et vous h&eacute;sitez encore sur la technologie ? <a href="#section-contact">Contactez nos experts pour un audit technique</a></p><p>&nbsp;</p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/ibexa-announces-the-release-of-a-new-lts-version-with-contributions-from-code-rhapsodie</id>
            <title><![CDATA[Ibexa announces the release of a new LTS version with contributions from Code Rhapsodie]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/ibexa-announces-the-release-of-a-new-lts-version-with-contributions-from-code-rhapsodie" />
            <updated>2026-04-27T14:01:47+02:00</updated>
            <published>2026-04-27T14:01:46+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/symfony" label="Symfony" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ibexa" label="Ibexa" />
                        <author>
                <name>Code Rhapsodie team</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <p>On 10 December 2025, Ibexa published <a href="https://developers.ibexa.co/security-advisories/ibexa-sa-2025-005-password-change-and-xss-vulnerabilities-in-back-office" target="_blank">a security advisory and subsequently released new versions of <strong>Ibexa DXP v4.6.26 and v5.0.4</strong></a>.</p><p>As part of an Ibexa 5 project, we identified a security flaw when changing a user's password.</p><p>We reported this flaw to the publisher Ibexa through our client's support portal. Ibexa fixed it and included it in the new version 5.0.4. Thank you to Ibexa for the mention &#128079;</p><p><strong>Don't wait to start an Ibexa 5 project to benefit from Symfony 7 and PHP 8.3</strong> and above. Despite a few anomalies that we are identifying as we go along, version 5 is very stable and perfectly suited to starting your DXP project.</p><p>&nbsp;</p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/connecteur-mistral-pour-les-actions-ia-d-ibexa</id>
            <title><![CDATA[Connecteur Mistral pour les actions IA d'Ibexa]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/connecteur-mistral-pour-les-actions-ia-d-ibexa" />
            <updated>2026-04-27T14:01:48+02:00</updated>
            <published>2026-04-27T14:01:47+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ia" label="IA" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/mistral" label="Mistral" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ibexa" label="Ibexa" />
                        <author>
                <name>L&#039;équipe de Code Rhapsodie</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <p>Le connecteur Mistral pour Ibexa est compatible avec Ibexa v4.6 et n&eacute;cessite<a href="https://doc.ibexa.co/en/latest/release_notes/ibexa_dxp_v4.6/#ibexa-dxp-v4613" target="_blank"> la LTS Update AI Actions</a>. Pour commencer &agrave; utiliser les actions IA, il est n&eacute;cessaire d'installer <a href="https://doc.ibexa.co/en/latest/ai_actions/install_ai_actions/" target="_blank" title="Voir les actions d'installation requises dans la documentation officielle">les paquets requis et de proc&eacute;der &agrave; la configuration initiale des AI Actions</a>.</p><p>Dans un second temps vous devrez suivre la documentation d'installation disponible dans <a href="https://github.com/code-rhapsodie/connector-mistral/blob/master/README.md" target="_blank" title="README du connecteur Mistral">le README du connecteur Mistral pour AI actions.</a></p><p>Pour configurer votre clef d'API Mistral, rendez-vous sur <a href="https://docs.mistral.ai/getting-started/quickstart" target="_blank">la documentation Mistral Ai pour les d&eacute;veloppeurs</a>.</p><p><br>N'oubliez pas d'<strong>importer les migrations </strong>apr&egrave;s l'installation et l'activation du connecteur. Ces migrations vous mettent &agrave; disposition des actions par d&eacute;faut telles que :</p><ul><li>r&eacute;sumer un texte (summarize),</li><li>reformuler un texte (rewrite),</li><li>raccourcir un texte (shorten).</li></ul><h3>R&eacute;sumer, raccourcir, reformuler ... traduire</h3><p>Dans les blocs de texte riches, vous disposez aussi d'un bouton d'action IA. S&eacute;lectionnez un paragraphe ou une portion de texte et choisissez l'action qui sera ex&eacute;cut&eacute;e par Mistral AI.</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/7/3/4/0/10437-1-fre-FR/5045678e90ac-mistralaidemo.png" alt="mistralaidemo.png" height="1434" width="2274" />
    </figure>


</div>
<p>Vous aurez le choix de remplacer le texte ou de l'ajouter dessous et ainsi remanier votre texte comme bon vous semble.</p><h3>Pour en savoir plus</h3><p>Pour aller plus loin et pourquoi pas d&eacute;velopper votre propre connecteur IA, prenez connaissance de <a href="https://doc.ibexa.co/en/latest/ai_actions/ai_actions/" target="_blank" title="Ibexa AI Actions documentation">la documentation officielle l'Ibexa AI Actions</a>.</p><p>Votre aide est pr&eacute;cieuse, si vous aimez notre connecteur, parlez-en sur les r&eacute;seaux sociaux ou <a href="https://github.com/code-rhapsodie/connector-mistral" target="_blank" title="D&eacute;velopper sur GitHub du Connecteur Mistral">participer au co-d&eacute;veloppement sur Github</a>.</p><p>&nbsp;</p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/is-the-naming-of-ibexa-dxp-page-builder-zones-suitable-for-contributors</id>
            <title><![CDATA[Is the naming of Ibexa DXP Page Builder zones suitable for contributors?]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/is-the-naming-of-ibexa-dxp-page-builder-zones-suitable-for-contributors" />
            <updated>2026-04-27T14:01:44+02:00</updated>
            <published>2026-04-27T14:01:43+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ibexa" label="Ibexa" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/page-builder" label="Page Builder" />
                        <author>
                <name>Olivier Portier</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <h2>Zones in Ibexa Page Builder</h2><p>Within the Ibexa DXP Page Builder, you define the layout of your pages by declaring content zones. Blocks are then dragged and dropped into these zones to construct the page progressively, block by block.</p><p>Here's an example of a zone configuration within an Ibexa YAML file:</p><pre>        dlayout_three_rows_two_columns:
            identifier: 'layout_three_rows_two_columns'
            name: 'Three rows, two columns'
            description: 'Three rows, two columns'
            thumbnail: '/bundles/ibexadashboard/img/layouts/three_rows_two_columns.svg'
            template: '@ibexadesign/dashboard/builder/layouts/three_rows_two_columns.html.twig'
            zones:
                top:
                    name: 'top'
                middle_left:
                    name: 'middle-left'
                middle_right:
                    name: 'middle-right'
                bottom:
                    name: 'bottom'</pre><p>The '<em><strong>top</strong></em>' zone name is '<strong>top</strong>' but this name won't appear anywhere in the Page Builder's edit interface; it will be identified as <strong>Drop zone 1</strong>:</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/9/2/3/0/10329-1-fre-FR/b99bb96173cd-dashboard-edition-zones.png" alt="dashboard-edition-zones.png" height="756" width="2244" />
    </figure>


</div>
<p>The same principle applies in the <strong>Structure view</strong> (which is very useful to move blocks from one zone to another). Zones are identified as <strong>Drop zone 1</strong>, <strong>Drop zone 2</strong>, <strong>Drop zone 3</strong>, and so on...:</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/_aliases/reference/5/3/3/0/10335-1-fre-FR/69e3d7a075dd-treemenu.png" alt="treemenu.png" height="600" width="492" />
    </figure>


</div>
<p>What's the point of assigning a specific name in the configuration if that name isn't used anywhere?</p><h2>How is the zone name displayed?</h2><p>The zone names are displayed in JavaScript by the following scripts:</p><ul><li>ibexa/page-builder/src/bundle/ui-dev/src/modules/page-builder/page.builder.js</li><li>ibexa/page-builder/src/bundle/ui-dev/src/modules/page-builder/components/structure/structure.tree.js</li></ul><pre>const hasFieldset = zone.querySelector('fieldset') !== null;

if (!hasFieldset) {
  const dropZoneLabel = Translator.trans(
    /*@Desc("Drop zone %number%")*/ 'structure.drop.zone',
    {
        number: index + 1,
    },
    'ibexa_page_builder',
  );
  const fieldset = document.createElement('fieldset');
  const legend = document.createElement('legend');</pre><p>It's tricky translating text strings when the labels change depending on the area. Within the <em>page.builder.js</em> script, it appears that if a <span class="ezstyle-inline_code">&lt;fieldset&gt;</span>

 element already exists in the DOM for a given area, it isn't recreated.</p><p>Without getting into overly complex development or kernel hacks, we should be able to add this HTML block to our layout template to properly name our areas,</p><h2>Ensuring intuitive zone names</h2><p>Consequently, we've added the <span class="ezstyle-inline_code">&lt;fieldset&gt;</span>

 and <span class="ezstyle-inline_code">&lt;legend&gt;</span>

elements, with the zone name configured in our YAML file, to our <span class="ezstyle-inline_code">three_rows_two_columns.html.twig</span>

 template.</p><pre>&lt;div class="ibexa-db-zones"&gt;
    &lt;div class="ibexa-db-zones__row"&gt;
        &lt;div class="ibexa-db-zones__zone" data-ibexa-zone-id="{{ zones[0].id }}"&gt;
             &lt;fieldset class="m-page-builder__fieldset"&gt;
                &lt;legend class="m-page-builder__legend"
                        style="background-color: white; padding: 3px; border-radius: 5px; border: 1px dashed #4191ff;"
                &gt;
                  {{ zones[0].name }}
                &lt;/legend&gt;
             &lt;/fieldset&gt;
    
            {% if zones[0].blocks %}
    ...
             
            {% endif %}
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ibexa-db-zones__row ibexa-db-zones__row--double"&gt;
        &lt;div class="ibexa-db-zones__zone" data-ibexa-zone-id="{{ zones[1].id }}"&gt;
            &lt;fieldset class="m-page-builder__fieldset"&gt;
                &lt;legend class="m-page-builder__legend"
                        style="background-color: white; padding: 3px; border-radius: 5px; border: 1px dashed #4191ff;"
                &gt;
                  {{ zones[0].name }}
                &lt;/legend&gt;
            &lt;/fieldset&gt;            
            {% if zones[1].blocks %}

   ...

            {% endif %}
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div</pre>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/1/4/3/0/10341-1-fre-FR/a79b7d0d650c-zone-renames.png" alt="zone-renames.png" height="876" width="3006" />
    </figure>


</div>
<p>The preview areas now offer clearer, more informative feedback, which is particularly helpful when dealing with complex editorial management scenarios, such as the following example:</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/7/4/3/0/10347-1-fre-FR/82f8b28b1f0e-zones-custom-ibexa-stackable.png" alt="zones-custom-ibexa-stackable.png" height="1126" width="3010" />
    </figure>


</div>
<p>Without explicit zone names, the editorial team can't distinguish between a Cover zone, a zone with <a href="https://tailwindcss.com/plus/ui-blocks/application-ui/application-shells/stacked" target="_blank" title="Tailwind stackable blocks"><em>stackable blocks</em></a> (which we'll discuss in a future article), or a adaptable zone where blocks display one after the other.</p><p>Any ideas on how to promote this functionality, which really <strong>should</strong> be native in Ibexa DXP within the <em>Structure view</em>? I'm calling on the Ibexa team to bring us this small improvement with Ibexa 5.</p><p>&nbsp;</p><p><em><strong>Update of 16th of october</strong></em></p><p>We continued development and created a hack to get all the areas with the desired name. Voil&agrave;!</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/9/8/4/0/10489-3-fre-FR/328760eda8b0-zones-custom-ibexa-stackable-finale.png" alt="" height="1126" width="3010" />
    </figure>


</div>
<p>If you would like to know more, please do not hesitate to <a href="https://www.code-rhapsodie.fr/en/contact">contact us.</a></p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/connecteur-google-gemini-pour-les-actions-ia-d-ibexa</id>
            <title><![CDATA[Connecteur Google Gemini pour les actions IA d'Ibexa]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/connecteur-google-gemini-pour-les-actions-ia-d-ibexa" />
            <updated>2026-04-27T14:01:34+02:00</updated>
            <published>2026-04-27T14:01:34+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ia" label="IA" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/gemini" label="Gemini" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ibexa" label="Ibexa" />
                        <author>
                <name>L&#039;équipe de Code Rhapsodie</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <p>Le connecteur Google Gemini pour Ibexa est compatible avec Ibexa v4.6 et n&eacute;cessite<a href="https://doc.ibexa.co/en/latest/release_notes/ibexa_dxp_v4.6/#ibexa-dxp-v4613" target="_blank"> la LTS Update AI Actions</a>. Pour commencer &agrave; utiliser les actions IA, il est n&eacute;cessaire d'installer <a href="https://doc.ibexa.co/en/latest/ai_actions/install_ai_actions/" target="_blank" title="Voir les actions d'installation requises dans la documentation officielle">les paquets requis et de proc&eacute;der &agrave; la configuration initiale des AI Actions</a>.</p><p>Dans un second temps vous devrez suivre la documentation d'installation disponible dans <a href="https://github.com/code-rhapsodie/connector-gemini/blob/master/README.md" target="_blank" title="README du connecteur Gemini">le README du connecteur Gemini pour AI actions.</a></p><p>Pour configurer votre clef d'API Gemini, rendez-vous sur <a href="https://ai.google.dev/gemini-api/docs/api-key?hl=fr" target="_blank">la documentation Google Ai pour les d&eacute;veloppeurs</a>.</p><p><br>N'oubliez pas d'<strong>importer les migrations </strong>apr&egrave;s l'installation et l'activation du connecteur. Ces migrations vous mettent &agrave; disposition des actions par d&eacute;faut telles que :</p><ul><li>r&eacute;sumer un texte (summarize),</li><li>reformuler un texte (rewrite),</li><li>raccourcir un texte (shorten),</li><li>g&eacute;n&eacute;rer un texte alternatif pertinents pour les images associ&eacute;es (generate alt text on images).</li></ul>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/8/4/0/0/10048-1-fre-FR/64148a5f3e2c-Ibexa-DXP-06-10-2025_12_54_PM.png" alt="Vue d&#039;une interface utilisateur web affichant une liste d&#039;actions d&#039;IA, notamment &quot;R&eacute;&eacute;crire dans un style amical&quot; et &quot;R&eacute;sumer&quot;." height="2440" width="3024" />
    </figure>


</div>
<p>Cette image qui illustre mon article a &eacute;t&eacute; int&eacute;gr&eacute;e &agrave; la m&eacute;diath&egrave;que sans texte alternatif.</p><h3>G&eacute;n&eacute;rer un texte alternatif &agrave; une image</h3><p>Voici comment je vais pouvoir g&eacute;n&eacute;rer un texte alternatif pertinent en quelques clics.</p><p>J'identifier mon image depuis l'onglet Relations de mon article :</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/3/5/0/0/10053-1-fre-FR/e8ee9213f2db-relations.png" alt="relations.png" height="1068" width="1728" />
    </figure>


</div>
<p>J'acc&egrave;de &agrave; mon image pour la modifier. Un bouton IA apparait sur les champs qui disposent d'actions IA, c'est le cas du texte alternatif (<em>Alternative text</em>):</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/8/6/0/0/10068-4-eng-GB/b0f36a4b84c3-english-relation-ai.png" alt="Ibexa &quot;AI actions&quot; section screenshot. Shows action lists, search, filter and new action creation with refine text and generate alt text." height="1308" width="2442" />
    </figure>


</div>
<p>Il est possible de <strong>remplacer</strong> le contenu du champs par la proposition de Gemini, de <strong>retenter</strong> une nouvelle fois ou de <strong>stoper</strong> sans effectuer de changement.</p><p>Un contenu en anglais utilisera l'action en langue anglaise, ainsi la r&eacute;ponse de Gemini sera bien dans la langue de votre contenu.</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/3/7/0/0/10073-1-fre-FR/330a939b5a38-english-relation-ai.png" alt="english-relation-ai.png" height="1308" width="2442" />
    </figure>


</div>
<h3>&nbsp;</h3><h3>R&eacute;sumer, raccourcir, reformuler ... traduire</h3><p>Dans les blocs de texte riches, vous disposez aussi d'un bouton d'action IA. S&eacute;lectionnez un paragraphe ou une portion de texte et choisissez l'action qui sera ex&eacute;cut&eacute;e par Gemini.</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/0/2/1/0/10120-1-fre-FR/492db75735b7-richtext.png" alt="richtext.png" height="774" width="1858" />
    </figure>


</div>
<p>Vous aurez le choix de remplacer le texte ou de l'ajouter dessous et ainsi remanier votre texte comme bon vous semble.</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/5/2/1/0/10125-1-fre-FR/a27299d51b7b-richtextai2.png" alt="richtextai2.png" height="1068" width="1772" />
    </figure>


</div>
<h3>Pour en savoir plus</h3><p>Pour aller plus loin et pourquoi pas d&eacute;velopper votre propre connecteur IA, prenez connaissance de <a href="https://doc.ibexa.co/en/latest/ai_actions/ai_actions/" target="_blank" title="Ibexa AI Actions documentation">la documentation officielle l'Ibexa AI Actions</a>.</p><p>Votre aide est pr&eacute;cieuse, si vous aimez notre connecteur, parlez-en sur les r&eacute;seaux sociaux ou <a href="https://github.com/code-rhapsodie/connector-gemini" target="_blank" title="D&eacute;velopper sur GitHub du Connecteur Gemini">participer au co-d&eacute;veloppement sur Github</a>.</p><p>&nbsp;</p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/notre-equipe-est-certifiee-a-100-ibexa</id>
            <title><![CDATA[Notre équipe est certifiée à 100% Ibexa]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/notre-equipe-est-certifiee-a-100-ibexa" />
            <updated>2026-04-27T14:01:25+02:00</updated>
            <published>2026-04-27T14:01:24+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/formation" label="Formation" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/certification" label="Certification" />
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ibexa" label="Ibexa" />
                        <author>
                <name>L&#039;équipe Code Rhapsodie</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <p><em>Experts Ibexa de longue date, forts de nombreux projets r&eacute;ussis sur Ibexa, eZ Publish et eZ Platform, Code Rhapsodie est partenaire Ibexa depuis 2023. Les certifications Ibexa sont essentielles pour nous et nos clients. D&eacute;livr&eacute;es par l'&eacute;diteur, elles attestent de notre ma&icirc;trise approfondie de la solution et renforcent la confiance que nos clients nous accordent.</em></p><p>Ibexa propose une plateforme de formation et de certification tr&egrave;s riche et permet &agrave; votre &eacute;quipe de se former &agrave; son rythme. Chaque collaborateur trouvera la formation &agrave; sa mesure :</p><h3>Avant-vente, commercial, directeur de projet : Certification Sales</h3><p>Cette formation vous fera d&eacute;couvrir la plateforme Ibexa, ses grandes fonctionnalit&eacute;s, les diff&eacute;rentes d&eacute;clinaisons d'Ibexa du Headless &agrave; Commerce, les solutions de l'&eacute;cosyst&egrave;me Qntm (Raptor CDP, Actito, Qualifio, Quable...), Ibexa Cloud la plateforme cl&eacute;s en mains avec Platform.sh, les engagements d'Ibexa en avant vente. C'est la bo&icirc;te &agrave; outils essentielle de vos &eacute;quipes de vente.</p>        
<div  class="align-center ibexa-embed-type-image">
    
    
    <figure         class="ibexa_image-field" >
                            <img src="https://www.code-rhapsodie.fr/var/coderhapsodie/storage/images/_aliases/medium/3/6/7/9/9763-1-fre-FR/2a95608beac8-OLIVIER.jpg" alt="Illustration d&#039;un homme souriant, portant des lunettes et une barbe. Il a les cheveux bruns et une chemise blanche." height="200" width="200" />
    </figure>


</div>
<p style="text-align:center;"><a href="https://calendly.com/contact-code-rhapsodie/30min" target="_blank" title="RDV de 30min avec Olivier">Rencontrez Olivier</a>, <strong>Expert Ibexa et certifi&eacute; Sales</strong>.</p><h3>Equipe &eacute;ditoriale et &eacute;quipe projet : Certification Content Editor</h3><p>La formation compl&egrave;te de vos utilisateurs, contributeurs et &eacute;quipe projet est indispensable avant le lancement de votre projet. Ce module de formation couvre l'ensemble des fonctionnalit&eacute;s de l'interface d'administration d'Ibexa. Les contributeurs pratiquent avec des d&eacute;mos interactives, ce qui facilite l'apprentissage et la prise en mains.</p><p>La certification compl&egrave;te la formation en posant les bonnes questions pour valider les acquis essentiels &agrave; un bon r&eacute;dacteur de contenu.</p><h3>Direction de projet, chef de projet, webmestre : Certification Security</h3><p>Maitriser Ibexa c'est aussi maitriser son mod&egrave;le de donn&eacute;es, la gestion des utilisateurs, des r&ocirc;les et des droits d'acc&egrave;s. La s&eacute;curit&eacute; d'une plateforme Ibexa est &agrave; la charge du partenaire int&eacute;grateur mais aussi du client et de ses utilisateurs. Il est essentiel de bien comprendre ces concepts et garantir une s&eacute;curit&eacute; optimale tout au long de votre projet. Cette formation certifiante est l&agrave; pour &ccedil;a.</p><h3>D&eacute;veloppeurs et lead d&eacute;veloppeurs&nbsp;</h3><p>Un partenaire Ibexa se doit d'avoir un minimum de d&eacute;veloppeurs certifi&eacute;s. Code Rhapsodie compte :</p><ul><li><strong>100% </strong>de ses consultants et d&eacute;veloppeurs certifi&eacute;s<strong> Ibexa Developer,</strong></li><li><strong>75% </strong>certifi&eacute;s<strong> Ibexa Advanced Developer.</strong></li></ul><p><strong>Notre signature : Expertise, Conformit&eacute; et Qualit&eacute;&nbsp;</strong></p><p>Mais nous ne nous arr&eacute;tons pas seulement &agrave; Ibexa, notre &eacute;quipe se forme aux solutions Qntm dont Raptor CDP, Qualifio, Quable et bien entendu Platform.sh partenaire d'Ibexa et de Code Rhapsodie pour l'h&eacute;bergement de nos projets dans <a href="https://platform.sh/regions/france/#:~:text=Cloud%20souverain%20fran%C3%A7ais%2C%20ou%20Clouds%20publics%20localis%C3%A9s%20en%20Europe" target="_blank" title="Cloud souverain fran&ccedil;ais, ou Clouds publics localis&eacute;s en Europe">le cloud souverain europ&eacute;en</a>.</p><p>Que vous soyez utilisateur, client ou partenaire Ibexa, <a href="https://www.code-rhapsodie.fr/en/contact">contactez-nous</a> sans h&eacute;siter pour d&eacute;couvrir nos services et d&eacute;velopper vos comp&eacute;tences sur Ibexa et obtenir la certification qui validera votre expertise !</p>

    </div>

]]>
            </content>
        </entry>
            <entry>
            <id>https://www.code-rhapsodie.fr/en/blog/profitez-d-une-certification-gratuite-lors-de-l-ibexa-summit-2025</id>
            <title><![CDATA[Profitez d'une certification gratuite lors de l'Ibexa Summit 2025]]></title>
            <link rel="alternate" type="text/html"
                  href="https://www.code-rhapsodie.fr/en/blog/profitez-d-une-certification-gratuite-lors-de-l-ibexa-summit-2025" />
            <updated>2026-04-27T14:01:23+02:00</updated>
            <published>2026-04-27T14:01:22+02:00</published>
                            <category term="https://www.code-rhapsodie.fr/en/tags/technos/ibexa" label="Ibexa" />
                        <author>
                <name>Code Rhapsodie</name>
            </author>
            <content type="html">
                <![CDATA[        <div         class="ibexa_richtext-field" >
        <p>Profitez d'une certification gratuite lors de l'Ibexa Summit 2025&nbsp;! Le 31&nbsp;janvier, profitez de cette opportunit&eacute; exclusive d'am&eacute;liorer et valider vos comp&eacute;tences en &eacute;tant certifi&eacute; Ibexa :<br>&#10004;&#65039; Certification &eacute;ditoriale - Parfaite pour les sp&eacute;cialistes du marketing et les r&eacute;dacteurs.<br>&#10004;&#65039; Certification technique - Con&ccedil;ue pour les d&eacute;veloppeurs et les passionn&eacute;s de technologie.</p><p><a href="https://www.ibexa.co/events/ibexa-summit-2025" target="_blank">Venez donc nombreux &agrave; la conf&eacute;rence Ibexa Summit 2025 !</a></p>

    </div>

]]>
            </content>
        </entry>
    </feed>
