Plugin Domlang: Domaines par secteur de langue - comments Plugin Domlang: Domaines par secteur de langue 2017-11-21T14:02:57Z https://contrib.spip.net/Plugin-Domlang-Domaines-par-secteur-de-langue#comment494485 2017-11-21T14:02:57Z <p>Salut</p> <p>J'ai une solution qui me semble bancale. J'ai créé une balise <span class="coloration_code code"><code class="spip_spip code" data-clipboard-text="#SECTEUR_DOM"><span class="re1">#SECTEUR_DOM</span></code></span> qui prend le contexte de langue ou en argument la langue fournie et retourne l'id_rubrique associée.</p> <div class='precode'><pre dir='ltr' style='text-align: left;'class="php"><code><span class="co4">/** * Compile la balise `#SECTEUR_DOM` qui retourne le secteur associé à l'URL du site * * Peut transmettre une langue en premier paramètre * `#SECTEUR_LANG{en}` * * @balise * * @param Champ $p * Pile au niveau de la balise * @return Champ * Pile complétée par le code à générer */</span> <span class="kw2">function</span> balise_SECTEUR_DOM_dist<span class="br0">&#40;</span><span class="re0">$p</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$lang</span> <span class="sy0">=</span> interprete_argument_balise<span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">,</span> <span class="re0">$p</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="re0">$p</span><span class="sy0">-></span><span class="me1">code</span> <span class="sy0">=</span> <span class="st0">"domlang_get_secteur(<span class="es4">$lang</span>)"</span><span class="sy0">;</span> <span class="re0">$p</span><span class="sy0">-></span><span class="me1">code</span> <span class="sy0">=</span> <span class="st0">"spip_htmlspecialchars("</span> <span class="sy0">.</span> <span class="re0">$p</span><span class="sy0">-></span><span class="me1">code</span> <span class="sy0">.</span> <span class="st0">")"</span><span class="sy0">;</span> <span class="re0">$p</span><span class="sy0">-></span><span class="me1">interdire_scripts</span> <span class="sy0">=</span> <span class="kw4">false</span><span class="sy0">;</span> <span class="kw1">return</span> <span class="re0">$p</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co4">/** * Définit le secteur associé au domaine depuis lequel on arrive. * * Si on ne trouve pas de langu on conssidére la langue du domaine principal. * */</span> <span class="kw2">function</span> domlang_get_secteur<span class="br0">&#40;</span><span class="re0">$lang</span> <span class="sy0">=</span> <span class="kw4">null</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="re0">$lang</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$lang</span> <span class="sy0">=</span> <span class="re0">$GLOBALS</span><span class="br0">&#91;</span><span class="st_h">'spip_lang'</span><span class="br0">&#93;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="re0">$id_rubrique</span> <span class="sy0">=</span> sql_getfetsel<span class="br0">&#40;</span><span class="st_h">'id_rubrique'</span><span class="sy0">,</span><span class="st_h">'spip_rubriques'</span><span class="sy0">,</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st_h">'id_parent =0'</span><span class="sy0">,</span><span class="st_h">'lang ='</span><span class="sy0">.</span>sql_quote<span class="br0">&#40;</span><span class="re0">$lang</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw1">return</span> <span class="re0">$id_rubrique</span><span class="sy0">;</span> <span class="br0">&#125;</span></code></pre></div> <p>Ensuite dans une surcharge du squelette <code>rubriques_completes.html</code> de menu j'ai rajouté le test suivant</p> <div class='precode'><pre dir='ltr' style='text-align: left;'class="spip"><code><span class="re4">[</span><span class="re4">(</span><span class="re1">#GET</span><span class="re40">{id_rubrique}</span><span class="re50">|==</span><span class="re40">{0}</span><span class="re50">|oui</span><span class="re4">)</span> <span class="re1">#SET</span><span class="re40">{id_rubrique,<span class="re1">#SECTEUR_DOM</span>}</span><span class="re4">]</span></code></pre></div> <p>Je suppose qu'on peut rendre plus transparent ce comportement.</p> Plugin Domlang: Domaines par secteur de langue 2017-11-21T13:16:21Z https://contrib.spip.net/Plugin-Domlang-Domaines-par-secteur-de-langue#comment494484 2017-11-21T13:16:21Z <p>Salut</p> <p>Le plugin est nickel ça répond bien à un cas d'usage rencontré.</p> <p>Je n'ai pas encore regardé comment faire mais il serait intéressant de permettre la surcharge au niveau du plugin menu. Par exemple si on défini un élément de type arborescence ,le contexte du secteur n'est pas pris en compte.</p> Plugin Domlang: Domaines par secteur de langue 2017-09-22T15:26:56Z https://contrib.spip.net/Plugin-Domlang-Domaines-par-secteur-de-langue#comment493496 2017-09-22T15:26:56Z <p>Bonjour Loiseau2nuit</p> <p>Quelles sont les infos qu'il te manque pour le paramétrage?</p> <p>Pour les urls arbos, oui... C'est l'objet-même du plugin.</p> <p>Si tu n'as pas besoin d'urls arbo, tu peux gérer ton site multilingue (ou non) avec le <a href="https://contrib.spip.net/Plugin-Multidomaines">plugin multidomaines</a> qui permet d'associer un nom de domaine à un secteur.<br class='autobr' /> Le hic en multidomaines, c'est que quand tu utilises les urls arbo, tu as un niveau d'arborescence inutile...</p> <p>Exemple: <br class='autobr' /> Ton secteur 1 a pour titre “secteur FR” et est configuré en langue française. Tu lui associes le domaine “mondomaine.fr”.<br class='autobr' /> Ton secteur 2 a pour titre “secteur EN” et est configuré en langue anglaise. Tu lui associes le domaine “mydomain.com”.<br class='autobr' /> Avec multidomaines, tes urls ressembleront à: <br class='autobr' /> mydomain.com/secteur-EN/bla-bla<br class='autobr' /> Or: <br />- mydomain.com et mydomain.com/secteur-EN/ affichent le même contenu (celui de ton secteur 2) <br />- tu ajoutes un niveau de répertoire virtuel (ici /secteur-EN/) qui n'est pas pertinent</p> <p>C'est là que Domlang intervient en supprimant le premier niveau d'arborescence dans l'url.</p> <p>Bonne fin de journée!</p> Plugin Domlang: Domaines par secteur de langue 2017-09-17T21:02:09Z https://contrib.spip.net/Plugin-Domlang-Domaines-par-secteur-de-langue#comment493422 2017-09-17T21:02:09Z <p>#ClapClapClap :-)</p> <p>juste le passage sur les paramétrages d'url sont pas clairs (et les explications sur le formulaire lui même non plus d'ailleurs). <br class='autobr' /> Faut il impérativement passer en urls arbos ? pourquoi ?</p> <p>Merci ;)</p>