PrĂ©sentation Comme je le signalais dans lâintroduction, on peut avoir besoin de fabriquer un petit systĂšme de navigation Ă lâintĂ©rieur dâun article, surtout si celui-ci est long est structurĂ© en chapitres. Un sommaire, ou table de matiĂšres, est la solution quâon utilise communĂ©ment, dans lâĂ©dition traditionnelle, pour aider le lecteur Ă accĂ©der rapidement aux contenus de lâouvrage qui lui semblent les plus pertinents. De la mĂȘme maniĂšre, en matiĂšre de publication internet, la mise en ligne des longs textes ne devrait pas Ă©chapper Ă cette judicieuse pratique. Les concepteurs de SPIP ont pensĂ© quâil serait parfois utile de pouvoir faire des liens internes dans les articles et dans le site, en fournissant les outils syntaxiques nĂ©cessaires pour faciliter cette tĂąche lors de la rĂ©daction dâun texte, notamment par lâinsertion des ancres nommĂ©es. Seulement, vous vous en doutez, fabriquer manuellement un sommaire nĂ©cessite un certain nombre de manipulations, qui peuvent ĂȘtre fort fastidieuses Ă la longue... et câest lĂ quâune solution automatisant cette opĂ©ration serait un moyen de dâĂ©conomiser du temps et quelques Ă©nervements en moins au passage -, dâoĂč lâidĂ©e de dĂ©velopper ce filtre... Bien sĂ»r, avant de me lancer dans cette rĂ©alisation, jâai un peu regardĂ© si dâautres solutions existaient dĂ©jĂ , et si elles convenaient Ă lâutilisation que jâimaginais... Jâai trouvĂ© alors deux contributions fort intĂ©ressantes - Sommaire dâun article, proposĂ©e par Noplay. - DĂ©couper un article en plusieurs pages et lui ajouter un sommaire, proposĂ©e Ă©galement par Noplay conjointement avec A. Perard. Alors, pour ĂȘtre honnĂȘte, je nâai testĂ© que la premiĂšre de ces deux contributions, et ça fonctionne plutĂŽt bien... mais, ayant une autre idĂ©e en tĂȘte, je me suis dis quâelle pouvait Ă©ventuellement intĂ©resser dâautres que moi. Mon idĂ©e Ă©tait de pouvoir rĂ©aliser le sommaire sous forme de tableau, car je trouvais que visuellement ça avait lâavantage de crĂ©er une rupture avec le reste du contenu ânormalâ dâun article, rendant lâaccĂšs au sommaire plus Ă©vident et immĂ©diat. De plus, je voulais que le sommaire ne soit gĂ©nĂ©rĂ© que si le rĂ©dacteur le souhaitait explicitement, de maniĂšre ponctuelle et non pas systĂ©matiquement, car certains articles, plus courts ou nâayant pas nĂ©cessairement besoin dâune table de matiĂšres, ne mĂ©ritent pas toujours dâavoir un sommaire de navigation. Enfin, toujours dans le but de faciliter la navigation au sein de lâarticle, je voulais que tous les intertitres reçoivent un lien de retour vers le sommaire de navigation. AprĂšs la version du filtre, dont vous pouvez consulter lâarticle qui lui est consacrĂ© Ă cette adresse, cette nouvelle version a Ă©tĂ© en grand partie réécrite, elle possĂšde dĂ©sormais un code plus robuste et elle dispose des nouvelles fonctionnalitĂ©s qui pourraient intĂ©resser certains utilisateurs. Pour la petite histoire, la conception de ce filtre entre dans le cadre plus gĂ©nĂ©ral du dĂ©veloppement du squelette MiniGriSpip, sur lequel je travaille encore afin de lâamĂ©liorer, tant au niveau du code que des fonctionnalitĂ©s proposĂ©s. Voici donc des informations sur les nouveautĂ©s apportĂ©es par cette version du filtre âSommaire Tableauâ, ainsi que les explications nĂ©cessaires pour son installation et utilisation, mĂȘme si dans lâensemble ça ne change pas trop de la version prĂ©cĂ©dente. Bonne dĂ©couverte et utilisation... nâhĂ©sitez pas Ă me faire part de vos remarques et suggestions dans le forum de cet article... - NouveautĂ©s Voici une petite liste des nouveautĂ©s de cette version, la plupart seront dĂ©taillĂ©es dans les chapitres suivants. - Il est dĂ©sormais possible de demander au filtre de numĂ©roter automatiquement les intertitres et les Ă©lĂ©ments du sommaire de navigation, ce qui Ă©vite de le faire manuellement. - Il est aussi possible maintenant de masquer, ponctuellement, les intertitres quâon ne dĂ©sire pas afficher. Il devient ainsi possible de crĂ©er un sommaire de navigation sans forcĂ©ment afficher les intertitres qui ont servi Ă sa fabrication, utile pour les longs articles non structurĂ©s en chapitres. - Un code en grand partie réécrit, plus robuste que le prĂ©cĂ©dent, avec un certain nombre de tests et vĂ©rifications qui assurent le bon fonctionnement du filtre. - Correction dâun certain nombre de bugs, la plupart trouvĂ©s et rapportĂ©s par âYann974â merci Ă lui - dans le forum de lâarticle de prĂ©sentation du squelette "MiniGriSpip sur SPIPâContrib, et dans le forum de lâarticle de la prĂ©cĂ©dente version de ce filtre. Parmi ces principales corrections, on peut signaler - Correction de lâintĂ©gration du filtre sans lâargument optionnel, qui est dĂ©sormais possible ; - Correction de lâaffichage des numĂ©ros placĂ©s au dĂ©but des intertitres, qui sâaffichent correctement maintenant ; - Correction de lâutilisation des crochets Ă lâintĂ©rieur des intertitres, ils sont bien traitĂ©s dĂ©sormais ; - Correction de la gestion des intertitres prĂ©sents dans les codes, ils sont maintenant tous ignorĂ©s, mĂȘme ceux identiques au texte ; - Correction du traitement des intertitres vides, ils sont dĂ©sormais tout simplement supprimĂ©s. Installation Ce filtre est fourni sous la forme dâun fichier nommĂ© â quâil faut dupliquer ou dĂ©placer dans votre dossier âsquelettesâ. Ce filtre sâinstalle comme la plupart des autres, Ă savoir, par lâune des mĂ©thodes suivantes - Si votre squelette dispose dâun fichier nommĂ© â Ă©ditez-le, puis insĂ©rez la ligne de code suivante en tĂȘte du fichier, juste aprĂšs la balise qui dĂ©bute le code Php , mais pas Ă lâintĂ©rieur du code dâune autre fonction existante. - Enfin, si votre squelette ne dispose pas dâun fichier nommĂ© â il suffit alors de renommer le fichier â en â IntĂ©gration Ce filtre est spĂ©cialement dĂ©diĂ© au traitement des textes des articles et brĂšves, mĂȘme si ces derniĂšres nâont pas besoin, en principe, dâavoir un sommaire, lâintĂ©gration demeure identique, consistant donc Ă placer le filtre Ă lâintĂ©rieur des boucles correspondantes sur la balise "TEXTE". Par exemple, dans une boucle "ARTICLES", il faut placer ce filtre sur la balise "TEXTE" de la maniĂšre suivante [TEXTE*somm_tablepropre] Important, veuillez respecter les contraintes dâintĂ©gration suivantes Notez, dans lâexemple dâintĂ©gration, la prĂ©sence dâun astĂ©risque "*" aprĂšs la balise "TEXTE", celui-ci est absolument nĂ©cessaire afin de pouvoir travailler sur le contenu brut de lâarticle, câest Ă dire, sans les mises en forme propres Ă Spip. De plus, vous remarquerez quâun autre filtre, nommĂ© "propre", se place juste aprĂšs le filtre "somm_table", ceci est Ă©galement absolument nĂ©cessaire afin que Spip puisse rĂ©tablir son propre formatage du contenu de lâarticle. Donc, pour rĂ©sumer, lâastĂ©risque inhibe le formatage de Spip, afin de pouvoir lancer les opĂ©rations du filtre sans dĂ©naturer le contenu des articles et brĂšves, et le filtre "propre" permet de rĂ©tablir les formatages par dĂ©faut de Spip. Enfin, si jamais vous avez dâautres filtres a utiliser sur la mĂȘme balise, comme par exemple le filtre qui sert Ă redimensionner les images contenues dans lâarticle, insĂ©rez alors de prĂ©fĂ©rence le filtre "somm_table" en premier, comme suit [TEXTE*somm_tableproprereduire_image{400,0}] Utilisation Voici comment utiliser ce filtre dans le texte des articles et brĂšves... Tout dâabord, il faut prĂ©ciser que ce filtre gĂ©nĂšre un sommaire de navigationuniquement si le rĂ©dacteur de lâarticle le demande explicitement, il nâest donc pas nĂ©cessaire dâenlever le filtre des boucles Spip pour inhiber son action. Pour demander au filtre de gĂ©nĂ©rer un sommaire de navigation, il suffit de crĂ©er un intertitre âSommaireâ dans le corps de lâarticle, de prĂ©fĂ©rence au dĂ©but du texte, dĂšs lors, le filtre dĂ©tectera sa prĂ©sence et analysera lâensemble du texte afin dâisoler tous les autres intertitres existants, ce qui lui servira pour fabriquer le sommaire de navigation, qui sâaffichera ensuite juste en dessous de lâintertitre âSommaireâ logique non ? -... Si vous ne souhaitez pas de sommaire de navigation, il suffit alors de ne pas crĂ©er dâintertitre âSommaireâ dans votre article... câest tout. Enfin, si vous avez quand-mĂȘme besoin dâinscrire un intertitre âSommaireâ dans votre article, mais sans vouloir pour autant gĂ©nĂ©rer un sommaire de navigation, vous nâavez quâĂ terminer lâintertitre avec une espace, comme ceci âSommaireâ, du coup le filtre ne produira aucun effet. Important, pour une utilisation basique, sans options particuliĂšres voir chapitre âOptionsâ ci-aprĂšs pour plus de dĂ©tails, lâintertitre âSommaireâ, qui dĂ©clenche la fabrication du sommaire de navigation, doit ĂȘtre Ă©crit tel quel peu importe la casse, sans ĂȘtre prĂ©cĂ©dĂ© ni suivi dâaucun autre caractĂšre ou numĂ©ro, sans quoi le filtre ne produira aucun effet. Affichage Deux diffĂ©rents affichages du sommaire de navigation sont disponibles tableau ou liste. - Sommaire Tableau Ce filtre propose donc, par dĂ©faut, la possibilitĂ© de gĂ©nĂ©rer un sommaire de navigation sous forme de tableau, juste en insĂ©rant un intertitre âSommaireâ dans le corps de votre article... Le rĂ©sultat sera comme celui de cette page par exemple, ou de cette capture dâĂ©cran tirĂ©e du site de dĂ©monstration du squelette MiniGriSpip Cliquez sur la vignette pour agrandir lâimage Cliquez sur la vignette pour lâaggrandir Ăvidemment, le sommaire de navigation que vous obtiendrez aura le mĂȘme aspect et formatage que les tableaux de votre squelette... nâhĂ©sitez pas alors Ă modifier les feuilles de style concernĂ©es afin dâadapter et amĂ©liorer leur affichage. - Sommaire Liste Si la prĂ©sentation sous forme de tableau ne convient pas vraiment au type de contenu traitĂ© dans votre site textes universitaires, philosophiques, littĂ©raires, religieux, etc., le filtre autorise Ă©galement de gĂ©nĂ©rer des sommaires de navigation sous forme de liste, plus discrets et peut-ĂȘtre dâavantage adaptĂ©s Ă lâesprit de votre site. Pour gĂ©nĂ©rer une liste Ă la place dâun tableau, il suffit de terminer lâintertitre du sommaire avec un trait dâunion tiret simple, comme ceci âSommaire-â, ce qui produira un sommaire de ce type - PrĂ©sentation - Installation - IntĂ©gration - Utilisation - etc. Important, comme prĂ©cisĂ© prĂ©cĂ©demment, pour une utilisation basique, sans options particuliĂšres voir chapitre âOptionsâ ci-aprĂšs pour plus de dĂ©tails, tout autre caractĂšre autour de lâintertitre, hormis le trait dâunion Ă la fin qui permet de gĂ©nĂ©rer le sommaire de navigation sous forme de liste, mĂȘme une simple espace, aurait pour effet dâinhiber la fabrication du sommaire de navigation, quelque soit le type choisi. Options Cette version du filtre propose deux nouvelles options de traitement dĂ©crites ci-aprĂšs. - NumĂ©rotation automatique Si vous souhaitez ajouter une numĂ©rotation sĂ©quentielle aux intertitres, et aux Ă©lĂ©ments correspondants dans le sommaire de navigation, vous pouvez demander au filtre de le faire automatiquement, en prĂ©cĂ©dent lâintertitre âSommaireâ dâun caractĂšre diĂšse ââ, comme ceci {{{Somaire}}} DĂšs lors, le filtre ajoutera automatiquement un numĂ©ro sĂ©quentiel, respectant lâordre dâapparition de chaque intertitre, devant les intertitres et devant les Ă©lĂ©ments correspondants du sommaire de navigation. Attention, la numĂ©ration se fait uniquement avec des chiffres numĂ©riques courants chiffres arabes, les numĂ©rotations avec des chiffres romains, avec des caractĂšres alphabĂ©tiques ou autres, ne sont pas supportĂ©es, vous devrez les inscrire manuellement si vous les dĂ©sirez. Important, comme pour les autres syntaxes supportĂ©es, tout autre caractĂšre autour de lâintertitre, mĂȘme une simple espace, aurait pour effet dâinhiber la fabrication du sommaire de navigation. - Masquage des intertitres Si vous souhaitez masquer un ou plusieurs intertitres, tout en les listant dans le sommaire de navigation, câest-Ă -dire, en assurant la navigation interne de lâarticle par lâinsertion automatique des ancres au sein du texte, vous pouvez le faire ponctuellement sur chaque intertitre que vous dĂ©sirez masquer en lâentourant des crochets, comme ceci {{{[Intertitre]}}} Tous les intertitres peuvent ainsi ĂȘtre masquĂ©s, mĂȘme celui du sommaire, mais, sauf ce dernier, lâensemble des intertitres seront listĂ©s dans le sommaire de navigation quelque soit leur Ă©tat, masquĂ©s ou affichĂ©s. Voici le code Ă utiliser pour masquer lâintertitre âSommaireâ, lorsquâon veut lâutiliser avec toutes les options actives numĂ©rotation automatique et affichage sous forme de liste {{{[Sommaire-]}}} Attention, si vous dĂ©sirez inscrire un intertitre entourĂ© des crochets, sans vouloir pour autant le masquer, il suffit dâajouter une espace autour des crochets, de cette maniĂšre le filtre ne masquera pas lâintertitres. Par ailleurs, si vos intertitres comportent un crochet ouvrant au dĂ©but ou un crochet fermant Ă la fin, pour assurer correctement leur affichage, vous devrez prĂ©cĂ©der le crochet ouvrant dâune espace en dĂ©but dâintertitre, et ajouter une espace aprĂšs le crochet fermant en fin dâintertitre. Enfin, si vous avez demandĂ© la numĂ©rotation automatique des intertitres, et quâen mĂȘme temps vous avez souhaitĂ© masquer certains dâentre eux, la sĂ©quence de numĂ©rotation suivra lâordre dâexistence des intertitres, quâils soient masquĂ©s ou pas. Autrement dit, si vous souhaitez masquer le deuxiĂšme intertitre de votre texte, la numĂ©rotation sera â1â pour le premier intertitre affichĂ©, et â3â pour le second intertitre affichĂ©, puisque le deuxiĂšme intertitre, mĂȘme sâil est masquĂ©, est tout de mĂȘme existant et listĂ© dans le sommaire de navigation de lâarticle. Important, comme pour les autres syntaxes supportĂ©es, tout autre caractĂšre autour de lâintertitre, mĂȘme une simple espace, aurait pour effet dâinhiber la fabrication du sommaire de navigation. Personnalisation Certains lâauront sans doute compris, ce filtre âSommaire Tableauâ, particuliĂšrement adaptĂ© pour des sites francophones, ou pour des articles rĂ©digĂ©s dans notre belle langue, nâaura aucun effet dans le cadre dâune utilisation avec une autre langue que le français... Et oui, Ă©tant donnĂ© que le terme par dĂ©faut, dĂ©clencheur de la fabrication du sommaire de navigation, est le mot âSommaireâ, il devient difficile, voire absurde, de contraindre les rĂ©dacteurs polyglottes Ă utiliser toujours ce mĂȘme mot dans tous leurs articles, quelque soit la langue utilisĂ©e... Pour pallier Ă cet inconvĂ©nient, le filtre propose une option permettant de lui indiquer prĂ©cisĂ©ment quel est le mot quâil doit considĂ©rer comme dĂ©clencheur de la fabrication du sommaire de navigation. Ainsi, il est possible, trĂšs simplement, de lâintĂ©grer dans un site multilingue, dĂšs lors quâon utilise des fichiers de localisation pour les textes recourants ou ceux de lâinterface du squelette. Voici alors la procĂ©dure Ă suivre pour pouvoir utiliser un autre mot que âSommaireâ, afin que le filtre soit toujours fonctionnel, quelque soit la langue utilisĂ©e. - Il faut commencer par Ă©diter le fichier de localisation nommĂ© â sâil nâexiste pas, il faudra le crĂ©er, et y ajouter une nouvelle dĂ©finition, comme ceci par exemple 'somm' => 'sommaire',. Il faut de prĂ©fĂ©rence Ă©crire le mot âsommaireâ tout en minuscules. - Puis, si votre site reçois des textes en anglais, il faut Ă©diter le fichier de localisation correspondant ou le crĂ©er Ă dĂ©faut, Ă savoir " puis y ajouter une nouvelle dĂ©finition, en respectant la clĂ© utilisĂ©e dans le fichier de localisation prĂ©cĂ©dent, Ă savoir 'somm', par exemple 'somm' => 'summary',. - Si votre site accepte Ă©galement des articles en espagnol, il faut alors Ă©diter le fichier de localisation correspondant, câest Ă dire " ou le crĂ©er Ă dĂ©faut, et y ajouter la dĂ©finition qui va bien, par exemple 'somm' => 'Ăndice',, attention toutefois aux accents et aux encodages textes utilisĂ©s Ascii, Unicode, etc.. Puis, ainsi de suite avec les autres langues pratiquĂ©es dans votre site. Maintenant, voici comment passer cette information au filtre, afin quâil adapte son traitement en consĂ©quence. Au moment de lâintĂ©gration du filtre, dans les codes Html de vos pages â et/ou â il faudra ajouter un argument au filtre, qui correspond exactement Ă la balise 'somm' des textes localisĂ©s de notre exemple prĂ©cĂ©dent, de la maniĂšre suivante [TEXTE*somm_table{}propre] VoilĂ , votre filtre âSommaire Tableauâ est prĂȘt Ă fabriquer des beaux sommaires navigables dans lâensemble de articles de votre site, quelque soit la langue utilisĂ©e, dĂšs lors que sa dĂ©finition existe dans un fichier de localisation correspondant. Bien sĂ»r, vous pouvez utiliser cette mĂ©thode pour changer dâintertitre dĂ©clencheur de la fabrication du sommaire de navigation, mĂȘme si votre site nâest pas multilingue, et au lieu dâutiliser le mot âSommaireâ par dĂ©faut, vous pourriez lui prĂ©fĂ©rer le terme âTable de matiĂšresâ, ou un autre, il suffit alors dâindiquer celui de votre choix dans lâargument du filtre, pour que celui-ci adapte son traitement en consĂ©quence... Attention, lâutilisation dâun intertitre dĂ©clencheur comportant des caractĂšres accentuĂ©s, peut poser certains problĂšmes si lâencodage du jeu des caractĂšres utilisĂ© nâest pas compatible. Le moteur de Spip fonctionne avec un encodage âUnicodeâ de type âUtf8â, je nâai pas pu tester pour lâinstant, mais je pense quâil faut respecter le mĂȘme encodage pour lâutilisation de intertitres dĂ©clencheurs avec des accents. Codes Voici le code intĂ©gral du filtre âSommaire Tableauâ, largement commentĂ© pour faciliter sa prise en main par les utilisateurs avertis. Important, pour Ă©viter un problĂšme dâaffichage du code ci-dessous, les balises âcodeâ et âcadreâ ont Ă©tĂ© lĂ©gĂšrement modifiĂ©s, par lâajout des espaces autour des textes, mais vous devrez effacer ces espaces pour que le code fonctionne correctement. Ces balises se trouvent dans les deux instructions juste aprĂšs le commentaire suivant // On isole les textes prĂ©sents dans les balises "cadre" et "code".. * +-+ */ function somm_table$texteOrig, $titreSommaire = '' { // Fonction pour creer un sommaire sous forme d'une liste ou d'un tableau Spip. // La fonction verifie l'existence d'un intertitre "Sommaire" par defaut, // ou le titre de sommaire fourni par l'tuilisateur pour des articles multilingues. // Si un intertitre sommaire existe, alors on analyse le texte fourni pour isoler // tous les intertitres afin de pouvoir fabriquer le sommaire, avec des liens // internes vers tous les intertitres et de liens de retour vers le sommaire. // Le sommaire ainsi cree sera place juste en dessous du titre "Sommaire". // Si l'utilisateur n'a pas fourni le titre sommaire a utiliser, // alors on utilise le titre par defaut en francais. if empty$titreSommaire { $titreSommMin = 'sommaire'; } else { $titreSommMin = strtolower$titreSommaire; }; // Test de l'existence d'un intertitre 'Sommaire' pour generer un tableau // ou 'Sommaire-' avec un trait d'union a la fin pour generer une liste. $test = preg_match'\{\{\{\[?\?'.$titreSommMin.'-?\]?}\}\}i', $texteOrig; // Si un des intertitres sommaire existe, alors on genere le sommaire. if $test { // On isole les textes presents dans les balises "cadre" et "code". preg_match_all'.*?is', $texteOrig, $listeCadre; preg_match_all'.*?is', $texteOrig, $listeCode; // On place les resultast, avec les balises, dans des variables. $listeCadreTexte = $listeCadre[0]; $listeCodeTexte = $listeCode[0]; // On modifie le format des balises intertitre dans les balises "cadre" pour ne pas les traiter. foreach $listeCadreTexte as $texteCadreOrig { $texteCadreNew = preg_replace'\{\{\{.*?\}\}\}i','$1-$2-$3',$texteCadreOrig; $texteOrig = str_replace$texteCadreOrig,$texteCadreNew,$texteOrig; }; // On modifie le format des balises intertitre dans les balises "code" pour ne pas les traiter. foreach $listeCodeTexte as $texteCodeOrig { $texteCodeNew = preg_replace'\{\{\{.*?\}\}\}i','$1-$2-$3',$texteCodeOrig; $texteOrig = str_replace$texteCodeOrig,$texteCodeNew,$texteOrig; }; // Recuperation des tous les intertitres presents dans le texte nettoye. preg_match_all'\{\{\{.*?\}\}\}i', $texteOrig, $listeOrig; // On place le resultat a utiliser dans une variable. $listeTitresOrig = $listeOrig[1]; // On verifie qu'il y reste des intertitres a traiter. if count$listeTitresOrig > 0 { // On verifie si le sommaire demande est sous forme de liste ou tableau. $testType = preg_match'\{\{\{\[?\?'.$titreSommMin.'-\]?\}\}\}i', $texteOrig; // On verifie si la numerotation automatique est demandee. $testNro = preg_match'\{\{\{\[?\'.$titreSommMin.'-?\]?\}\}\}i', $texteOrig; // On initialise les autres variables. $newSomm = ''; $esp = ' '; $nb = 1; // Boucle sur chaque element de la liste des intertitres originaux. foreach $listeTitresOrig as $titreOrig { $masquer = preg_match'^\[.*?\]$i', $titreOrig; // On test s'il faut masquer. $titreClean = rtrimtrim$titreOrig, '[','-]'; // On supprime les eventuels indesirables. $titreClean = ucfirst$titreClean; // On met la premiere lettre en majuscule. $titreMin = strtolower$titreClean; // On converti en minuscules. if $titreMin == $titreSommMin { // Si le titre considere est 'sommaire', alors on fabrique le debut du sommaire. $titreSommOrig = '{{{'.$titreOrig.'}}}'; // On insere l'ancre et l'intertitre, ou l'ancre seulement s'il faut masquer l'intertitre. if $masquer { $titreSommNew = '[somm'.$titreClean.'}}->inter'.$nb.']'."\n"; } else { // On fabrique le sommaire sous forme de tableau. $newSomm = $newSomm.'['.$esp.'{{'.$titreClean.'}}'.$esp.'->inter'.$nb.']'."\n"; }; // On insere l'ancre et l'intertitre, ou l'ancre seulement s'il faut masquer l'intertitre. if $masquer { $titreNew = '[inter'.$nb.''.$titreClean.'->somm]}}}'; } // On remplace les intertitres par d'autres avec une ancre et un lien vers le sommaire. $texteOrig = str_replace'{{{'.$titreOrig.'}}}', $titreNew, $texteOrig; $nb++; }; }; // On remplace l'intertitre "Sommaire" original par le nouveau sommaire. $texteOrig = str_replace$titreSommOrig, $titreSommNew.$newSomm, $texteOrig; }; // On remet les balises intertitres dans les balises "cadre" et "code" a leur format initial. $texteOrig = preg_replace'\{\{-\{.*?\}-\}\}i','{{{$1}}}',$texteOrig; // On efface tous les eventuels intertitres vides. $texteOrig = str_replace'{{{}}}', '', $texteOrig; }; // Retour du texte avec le sommaire ou le texte original a defaut. return $texteOrig; } ?>TĂ©lĂ©chargement Cliquez sur lâicĂŽne pour tĂ©lĂ©charger le filtre Filter âSommaire Tableauâ 4 Ko Avertissements Important, Ă©tant donnĂ© la mĂ©thode dâanalyse du texte et la technique de fabrication du sommaire de navigation, ce filtre sera inopĂ©rant sur les articles directement rĂ©digĂ©s en Html, en effet, seule la syntaxe typographique de Spip est supportĂ©e pour lâinstant, et vous devrez inscrire vos intertitres entourĂ©s de 3 accolades "{{{Intertitre}}}" pour que le filtre puisse fonctionner correctement. Il nâest pas prĂ©vu pour lâinstant une version gĂ©rant la syntaxe Html, mais si plusieurs utilisateurs se manifestent avec cette requĂȘte, je pourrais alors Ă©tudier la rĂ©alisation dâune version compatible Html. NâhĂ©sitez pas Ă formuler vos suggestions dans le forum de cet article, merci. Remerciements Tout dâabord, un Grand Merci Ă âYann974â, qui a eu le courage de jouer le dĂ©licat jeu du bĂȘta-testeur, apportant un bon nombre de remarques pertinentes et utiles qui ont servi au dĂ©veloppement de cette nouvelle version du filtre. Je remercie Ă©galement tous les participants et utilisateurs du squelette MiniGriSpip pour leurs interventions toujours constructives et pour lâaccueil quâils ont su rĂ©server Ă ce projet. Je voudrais remercier aussi aux diffĂ©rents participants des forums ainsi que PhpFrance pour leur aide inestimable. Enfin, un grand merci Ă la communautĂ© Spipienne pour leur esprit dâentraide permanent, et aux concepteur et dĂ©veloppeurs de ce magnifique outil de publication quâest Spip.
rĂ©fĂ©rencementtableau comparatif moteurs - tableau comparatif de la maniĂšre dont les principaux moteurs (et leurs spider ou crawler) utilisent les divers critĂšres permettant le rĂ©fĂ©rencement des pages Web, meta tag (balises mĂ©ta), url, balise alt, etc AltaVista, HotBot, Excite, Lycos, Infoseek, NorthernLight, VoilĂ , WebCrawlerMots flĂ©chĂ©s Mots croisĂ©s Mots mĂȘlĂ©s Mots codĂ©s Anagrammes Sudoku Nombres croisĂ©s RĂ©bus Mots flĂ©chĂ©s Mots croisĂ©s Mots mĂȘlĂ©s Mots codĂ©s Anagrammes Sudoku Nombres croisĂ©s RĂ©bus Vous trouverez ci-dessous des jeux de mots mĂȘlĂ©s Ă©galement appelĂ©s mots cachĂ©s ou mots mĂ©langĂ©s. AprĂšs avoir barrĂ© tous les mots de la liste, il vous restera Ă former un mot mystĂšre avec les lettres restantes dans la un jeu de lettres trĂšs pĂ©dagogique, et particuliĂšrement adaptĂ© Ă l'apprentissage du vocabulaire et de la lecture. Il est d'ailleurs trĂšs apprĂ©ciĂ© des enfants. En raison de la taille importante des lettres figurant dans ces grilles, les mots mĂȘlĂ©s sont aussi un jeu trĂšs adaptĂ© pour les personnes ĂągĂ©es ou pouvez librement imprimer chaque grille sur une seule page au format grilles sont gratuites dans un cadre de dĂ©tente et de loisirs privĂ©s, mais ne sont pas libres de droits. Si vous souhaitez les rediffuser dans un cadre plus large, dans la presse magazine par exemple, veuillez prendre contact avec nous. Grille Taille Force Auteur ThĂšme Solution 33 12x12 Force1 Paul DrĂ©val â afficher 32 15x15 Force1 Paul DrĂ©val â afficher 31 10Ă10 Force2 Adam Agningoran L'espace afficher 30 12x12 Force1 Paul DrĂ©val Le chocolat afficher 29 15x15 Force1 Paul DrĂ©val Science-fiction afficher 28 15x15 Force1 Paul DrĂ©val Insectes afficher 27 10Ă10 Force1 Paul DrĂ©val DĂ©veloppement durable afficher 26 15x15 Force1 Paul DrĂ©val â afficher 25 15x15 Force2 Paul DrĂ©val Football afficher 24 15x15 Force2 Paul DrĂ©val SpĂ©cial K afficher 23 15x15 Force1 Paul DrĂ©val Internet afficher 22 18x12 Force1 Paul DrĂ©val La CĂŽte d'Azur afficher 21 15x15 Force1 Paul DrĂ©val Harry Potter afficher 20 15x15 Force1 Paul DrĂ©val La construction afficher 19 15x15 Force1 Paul DrĂ©val Monstres et compagnie afficher 18 15x15 Force1 Paul DrĂ©val Automobile afficher 17 15x15 Force1 Paul DrĂ©val â afficher 16 12x12 Force1 Paul DrĂ©val L'espace afficher 15 12x12 Force1 Paul DrĂ©val NoĂ«l afficher 14 15x15 Force1 Paul DrĂ©val Animaux d'Afrique afficher 13 12x12 Force1 Paul DrĂ©val â afficher 12 15x15 Force1 Paul DrĂ©val La parfumerie afficher 11 15x15 Force1 Paul DrĂ©val Mots du Japon afficher 10 15x15 Force1 Paul DrĂ©val Ne perdez pas votre latin ! afficher 9 15x10 Force1 Paul DrĂ©val â afficher 8 15x10 Force1 Paul DrĂ©val â afficher 7 12x12 Force1 Paul DrĂ©val Au bord de la mer afficher 6 15x15 Force1 Paul DrĂ©val Capitales du monde afficher 5 10Ă10 Force1 Paul DrĂ©val Villes de Provence afficher 4 15x15 Force1 Paul DrĂ©val L'eau dans tous ses Ă©tats afficher 3 15x15 Force1 Paul DrĂ©val Ălections afficher 2 12x12 Force1 Paul DrĂ©val Fruits et lĂ©gumes afficher 1 16x16 Force1 Paul DrĂ©val La montagne afficher Nous utilisons des cookies sur notre site Web pour vous offrir l'expĂ©rience la plus pertinente en mĂ©morisant vos prĂ©fĂ©rences et en rĂ©pĂ©tant vos visites. En cliquant sur Tout accepter », vous consentez Ă l'utilisation de TOUS les cookies. Cependant, vous pouvez visiter les ParamĂštres des cookies » pour fournir un consentement contrĂŽlĂ©.
SĂRIE2 : FORMULES 7 Lors d'un dĂ©gagement par un gardien de but, si t est le temps Ă©coulĂ© en secondes depuis le tir, h(t) est la hauteur en mĂštres du ballon au dessus du sol. La fonction h est dĂ©finie par : x â 5x2 20x. a. Ă quelle hauteur est le ballon au bout d'une seconde ? Et au bout de deux secondes ? h(1) = 15, la hauteur au bout d'une seconde est PinterestExploreWhen autocomplete results are available use up and down arrows to review and enter to select. Touch device users, explore by touch or with swipe Pins 18wCollection by mauricette perracheSimilar ideas popular nowArtCanvas PaintingAbstract PaintingSeaside PaintingsSmall PaintingsLandscape PaintingsSea PaintingAbstract PaintingPainting TemplatesDecoupage BoxBeautiful Nature PicturesPaitingPins et voiliersPainting & DrawingCanvas PaintingAcrylic PaintingCanvas ArtPainting GalleryUmbrella PaintingUmbrella ArtWine And CanvasRain ArtCity PaintingPainting MediaModern PaintingAbstract Art PaintingCityscape ArtBuilding ArtNew York ArtA Level ArtJames Gregorytableaux peintureWatercolor PaintingsOil PaintingPictures To PaintArt PicturesWhite UmbrellaPainting PeoplePainting InspirationJour de vent... Sortons les ombrelles... Pour la sortie des Damoiselles... Gard aux jupes se soulevant... SP le đđŒâđđŒâđđŒâSilhouette ArtLimited Edition ArtArt Drawings SketchesBeauty Art DrawingsContemporary Art PaintingFlower PaintingArt Drawings BeautifulLine Art DrawingsArt Deco IdeasBride And Groom SilhouetteStreet Art BanksySkyline PaintingAbstract Landscape PaintingAbstract Canvas ArtContemporary PaintingsHouse PaintingOil Painting On CanvasCanvas Oil Painting AbstractPeacock PaintingAbstract AcrylicFloral PaintingCanvas CraftsLightInTheBoxtableaux peintureUrban Art PaintingArt Painting ImagesSimple Acrylic PaintingsAbstract Canvas PaintingArt Painting OilArt OilArt PaintingsAbstract SculptureArt Deco PaintingsPainting Art ProjectsArtwork PaintingDiy Watercolor PaintingArt Deco LadyChic ArtPeople ArtHair In The WindBlowin' In The WindAcrylic Painting CanvasArt PaintingClock WallpaperArt Drawings Sketches PencilBeauty ArtLine ArtAbstract Painting AcrylicWatercolor ArtCanvas Wall ArtAcrylic CanvasAbstract PaintingsAbstract CanvasOil PaintingsCanvas Art PrintsMediterranean ArtAcrylic PrintsCanvas PrintsRiver PaintingBuy Original ArtNaive ArtSketch BookSceneryL'atelier des couleursLL'atelier des couleurstableaux peintureAbstract Wall PaintingAbstract CityPainting CanvasesPainting CraftsGold Wallpaper BedroomTABLEAU PEINTURE New york usa littoral ville - City 1Mid Century CatMid Century Modern ArtCat DrawingRetro PaintingMcm ArtModern CatDanish ModernBlack Cat Art63 ideas painting cat mid centuryArt And IllustrationCat QuiltLes ArtsCrazy CatsBig CatsCat ArtModern ArtModern Styleâ D'Ici et D'Ailleurs âIllustration ArtIllustrationsImage ChatBug ArtPhoto ChatCat CardsGreeting CardsCat PaintingDe la nouveautĂ© dans les cartes - L'art et crĂ©ation spĂ©cialiste du cartonnage Sandra HosseiniAmazing Art PaintingArt Painting AcrylicFigure PaintingBeautiful PaintingsAbstract ArtAbstract Face ArtKunstjournal InspirationArt Journal InspirationWhimsical Art PaintingsOwl PaintingsPop ArtArt FantaisisteLandscape Paintings AcrylicAbstract LandscapeStone PaintingCow ArtArt For Art SakePainting LessonsAction PaintingNew York PaintingAcrylic Painting TechniquesCity ArtPeintre Wilfred Ă la galerie Autour d'un cadre - AUTOUR D'UN CADRE ...Landscape PrintsWatercolor LandscapePainting FramesLarry on Twitter wasserfarbenkunst - iettTableauxCSS - OpenWeb; CritĂšres accessiweb; GĂ©nĂ©rateur de tableaux accessibles; Haut. Le tableau sans tableau ! Warning: En attendant MSIE 8, cette option ne fonctionne pas encore avec Internet Explorer. GrĂące Ă la propriĂ©tĂ© display et l'attribut table-cell, on peut aussi simuler une prĂ©sentation tabulaire sans faire de tableau.iStockPhoto libre de droit de Jeux De Mot Texte Dans Un Cadre Noir Le Tableau Blanc banque d'images et plus d'images libres de droit de Affichage digitalTĂ©lĂ©chargez dĂšs aujourd'hui la photo Jeux De Mot Texte Dans Un Cadre Noir Le Tableau Blanc. Trouvez d'autres images libres de droits dans la collection d'iStock, qui contient des photos de Affichage digital facilement gm945869686$9,99iStockIn stockJeux de mot texte, dans un cadre noir, le tableau blanc. - Photo de Affichage digital libre de droitsDescriptionJeux de mot texte, dans un cadre noir, le tableau images de haute qualitĂ© pour tous vos projets$ avec un abonnement dâun mois10 images par moisTaille maximale 3984 x 2656 px 33,73 x 22,49 cm - 300 dpi - RVBRĂ©fĂ©rence de la photo 945869686Date de chargement 13 avril 2018Mots-clĂ©sAffichage digital Photos,Bonheur Photos,Bordure Photos,BĂąton de bois Photos,CompĂ©tition Photos,Concepts Photos,ContrĂŽle Photos,CrĂ©ation numĂ©rique Photos,Divertissement - Plaisir Photos,Enfant Photos,Gagner Photos,Gamepad Photos,Horizontal Photos,Industrie de la tĂ©lĂ©vision Photos,Industrie Ă©lectronique Photos,Infographie Photos,Internet Photos,Jeu Photos,Afficher toutFoire aux questionsQuâest-ce quâune licence libre de droits ?Les licences libres de droits vous permettent de ne payer quâune fois pour utiliser des images et des vidĂ©os protĂ©gĂ©es par un droit dâauteur dans des projets personnels ou commerciaux de maniĂšre continue, sans paiement supplĂ©mentaire Ă chaque nouvelle utilisation desdits contenus. Cela profite Ă tout le monde. Câest pourquoi tous les fichiers prĂ©sents sur iStock ne sont disponibles quâen version libre de droits, y compris toutes les images et vidĂ©os Affichage types de fichiers libres de droits sont disponibles sur iStock ?Les licences libres de droits reprĂ©sentent la meilleure option pour quiconque a besoin de faire un usage commercial de photos. Câest pourquoi tous les fichiers proposĂ©s sur iStock, quâil sâagisse dâune photo, dâune illustration ou dâune vidĂ©o, ne sont disponibles quâen version libre de utiliser les images et vidĂ©os libres de droits ?Des publicitĂ©s sur les rĂ©seaux sociaux aux panneaux dâaffichage, en passant par les prĂ©sentations PowerPoint et longs mĂ©trages, vous aurez la libertĂ© de modifier, redimensionner et personnaliser tous les fichiers sur iStock, y compris toutes les images et vidĂ©os Affichage digital, pour les adapter Ă vos projets. Ă lâexception des photos avec la mention RĂ©servĂ© Ă un usage Ă©ditorial » qui ne peuvent ĂȘtre utilisĂ©es que dans les projets Ă©ditoriaux et ne peuvent ĂȘtre modifiĂ©es, les possibilitĂ©s sont savoir plus sur les images libres de droits ou consulter la FAQ sur les photos.
Dansle cadre du dispositif plus de maĂźtres que de classes mis en place dans les Ă©coles de Tournus, les enseignants , la maĂźtresse plus et la conseillĂšre pĂ©dagogique ont Ă©laborĂ© diffĂ©rents outils dâapprentissage dans les domaines de la lecture et de lâĂ©criture. « SâentraĂźner Ă comprendre des consignes orales complexes au CP ».
> Un musĂ©e oĂč est exposĂ© des toiles + chaise noire > Zoom sur la barre dâadresse dâun navigateur avec http// » > Un tableau recto verso > Image blanche avec un quadrillage Solution Toile Format de la rĂ©ponse 5 lettres PrĂ©cisions Une toile est un tableau qui a Ă©tĂ© peint par un artiste. Câest aussi le nom donnĂ© Ă Internet. Jeu 4 Images 1 mot Editeur Lotum Prix Gratuit
Chùssisnus en bois en kit ou à la baguette. Particuliers ou professionnels : commandez vos chùssis nus complets en kit ou à la baguette et bénéficiez de tarifs avantageux. Notre boutique en ligne offre un large choix de formats permettant de composer à moindre coût des milliers de formats de 15 x 15 cm à 200 x 200 cm en deux épaisseurs : standard ou XXL (2 ou 4cm).mJ2TNU.