[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (Système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.

Sujets : 24108 Sujets résolus :  39 %

61 visiteurs en ce moment


Accueil > Forums de discussion >  Création de squelettes > Comment trier alphabétiquement des articles sans tenir compte de certaines (...)

Comment trier alphabétiquement des articles sans tenir compte de certaines informations ou mots ?

par eplan - 16 mai 2016 13:41 - Réponse(s) : 12

Bonjour,

J’ai besoin d’aide concernant l’écriture d’une boucle. Je ne trouve pas en effet de documentation concernant mon besoin.

Il s’agit de trier alphabétiquement des titres d’articles en ne tenant pas compte d’informations contenues dans des balises rédigées au sein de ces titres.

Soit un titre rédigé de la manière suivante avec des blabla présentés en exposant :

  1. 0001. 1111<bp>blabla1</bp>. XXXX<bp>blabla2</bp>. XXXX<bp>blabla3</bp>.

0001. est un préfixe numéroté qui ne sera pas affiché
1111 une suite de chiffres à afficher
blabla est un texte avec des balises particulières créées pour les besoins du site

Comment puis-je trier alphabétiquement les articles d’une rubrique sans tenir compte des informations entre les balises :

  1. <bp>blabla</bp>

 ?

Votre aide me serait précieuse.
Je pense qu’il me faut passer par Php et une expression régulière mais je ne maitrise pas ce langage

En vous remerciant par avance

Eric


  • Travaillant sur mon sujet, il me faudrait employer une expression du genre :

    Mais je ne souhaite pas effacer des données lors de l’affichage des résultats mais effacer des données pour effectuer un tri alphabétique plus pertinent.
    Genre un critère :

    1. {par titre|replace {<bp\>[a-zA-Z0-9]\<bp\>,' '}}

    Mais cela ne fonctionne pas.
    C’est dommage !


  • Bonjour,
    Je reviens vers vous car je patine sur mon problème et pour que ce dernier soit mieux perçu je vais tenter d’être plus explicite.

    J’ai un millier d’articles.
    Tous les titres des articles sont ou seront rédigés concrètement de la manière suivante :

    [ca. 1485-1487]GW ou [1487]USTC ou [ca. 1487-1490]ISTC/Lind94 ou [ca. 1490]REFLEX🌑 Vocabulaires fami­lia­ris et com­pen­dio || sus ex sũma ianuen­sis/ vul­ga­ri­ter catholi- || con dicta / et hugui­cione ac papia pre­ser­tim || excerp­tus / circa scrip­turã sacrã q̃pri­mum || atqz grã­ma­ti­ca­li­ter insistẽs : feli­ci­ter ĩcipit ||USTC🌑 Vocabularius fami­lia­ris et com­pen­dio­sus🌑 [Rouen] : Guillaume Le Talleur[ ] !?🌑

    Des hypothèses de dates d’édition concernant un ouvrage suivies pour chaque date des sources. Idem pour les titres puis l’impression.
    Ps : ici pour l’exemple j’utilise la balise sup et non la balise bp mentionnée plus haut.
    Les éléments en exposant sont utiles. Par contre, petit souci, ils interfèrent dans un tri alphabétique des titres des articles.

    Exemple après un tri par titre :

    (1492)BnF/GW/ISTC/USTC🌑 Jouenneaux, Guy🌑 blabla

    (1492)BnF/GW/ISTC🌑 Catholicon abbreuia­­tum || ...🌑 blabla

    (1492)GW/ISTC🌑 Jouenneaux, Guy🌑 blabla

    voir aussi en direct sur le site

    Dans cet exemple, l’occurrence n°2 devrait se trouver en première position. Dès lors — et c’est ici que j’ai besoin de votre aide car j’apprends en amateur à maitriser SPIP 3.1.1 [22913] pour un site perso —, comment puis-je soustraire d’un tri alphabétique un texte minuscule/majuscule séparés par des slashs et contenu dans des balises et ce d’autant que cette balises se répètent dans le titre ???

    Je sais ce doit être une bonne question
     ;-p
    En vous remerciant par avance

    Eric


  • Bonjour,

    On pourrait envisager, entre autres solutions, de passer par un fichier json tampon.

    Soit un squelette json.html placé à la racine de squelettes :

    1. #HTTP_HEADER{Content-Type: application/json; charset=#CHARSET}
    2. #CACHE{3600*7*24}
    3. [(#INCLURE{fond=json/[(#ENV{objet})],env})]

    Télécharger

    Puis un inclure json/catalogue_biblio.html, pour l’exemple :

    1. [<!--(#REM)
    2.  
    3. 1) les regex
    4.  
    5.  -->][
    6. (#SET{regex_sup, \<sup\>[a-zA-Z0-9]\<sup\>})
    7. ][
    8. (#SET{regex_foo, fo(o)*})
    9. ][<!--(#REM)
    10.  
    11. 2) la boucle de traitements
    12.  
    13.   -->]<B_bibli>[
    14. <BOUCLE_bibli(ARTICLES){id_rubrique = XX}{","}>{
    15. ["id": (#ID_ARTICLE|json_encode)][,
    16. "rang": (#TITRE|recuperer_numero|json_encode)][,
    17. "titre": (#TITRE|json_encode)][,
    18. "titre_alt": (#TITRE|supprimer_numero|replace{[(#GET{regex_sup})],' '}|json_encode)][,
    19. "sup": (#TITRE|match{[(#GET{regex_sup})]}|supprimer_tags|json_encode)]
    20. }</BOUCLE_bibli>
    21. ]</B_bibli>

    Télécharger

    L’idée est de pouvoir recomposer / ajouter des champs distincts sans modifier le titre originel.

    On peut imaginer plusieurs expressions régulières ou filtres maison à appliquer sur le titre en fonction du résultat souhaité.

    Le json est accessible à l’adresse :

    Il est important de s’assurer qu’il est correctement formé.

    Et la boucle finale pour afficher les résultats, avec notamment l’option de tri alphabétique :

    1. <BOUCLE_catalogue(DATA)
    2. {source json, [(#URL_PAGE{json}|parametre_url{objet,catalogue_biblio,&})] }
    3. {par titre_alt}>
    4. #ID - #TITRE - #TITRE_ALT - #SUP <br/>
    5. </BOUCLE_catalogue>

    Télécharger

    Je n’ai pas testé le code moi-même alors il peut contenir des erreurs. Toutefois le principe est là. À vous de peaufiner les éléments et traitements dans le json suivant vos besoins.


  • Bonjour,
    Merci beaucoup de toutes ces informations et de t’être penché sur le sujet. Je vais faire des essais ce soir et je publierai les résultats.


  • Bonjour,
    J’ai suivi vos informations.
    Le fichier json semble être une bonne solution. Par contre je bloque sur l’expression régulière et sa réitération. Après traitement de la boucle des résultats, des slashs entre balises ne sont pas supprimés
    Je vous donne pour partie mes essais.

    L’inclure json/catalogue_biblio.html

    1. [<!--(#REM) 1) les regex -->]
    2. #SET{regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[/])+'}
    3. #SET{regex_bp2, 'BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    4.  
    5.  
    6. [<!--(#REM) 2) la boucle de traitements -->]
    7.  
    8. <B_bibli>
    9.  
    10. <h10>Liste des notices de l'inventaire principal</h10>
    11. </br>
    12. <BOUCLE_bibli(ARTICLES){id_rubrique=28} {par titre} >
    13. [(#TITRE
    14. |replace{#GET{regex_bp1, ''}}
    15. |replace{#GET{regex_bp2, ''}}
    16. )]</br>
    17. </BOUCLE_bibli>
    18.  
    19. </B_bibli>
    20.  
    21. [<!--(#REM) exemple testé)
    22. 1500. [1500]<bp>BnF/ISTC/USTC</bp> ou [1518]<bp>Lind94/MAT</bp><cn>&#127761;</cn>
    23. blabla<bp>USTC</bp><cn>&#127761;</cn>
    24. blabla<bp>MAT</bp> blabla<bp>USTC</bp> blabla<bp>GW/ISTC/Lind94/MAT/USTC</bp><cn>&#127761;</cn>
    25. blabla<bp>Lind94</bp> blabla<cn>&#127761;</cn> -->]
    26.  
    27. [<!--(#REM)
    28. Les balises ne peuvent être soustraites dans l'expression suivante
    29. #SET{regex_bp1, '<bp>[A-Z][a-zA-Z0-9]{1,5}<\/bp>'}
    30. L'expression recherchera dans ce cas tous les mots commençant par une majuscule ayant 1 à 5 caractères ensuite
    31. -->]
    32.  
    33. [<!--(#REM) Le slash à soustraire
    34. L'expression suivante match le premier slash mais pas les suivants
    35. {regex_bp1, '[A-Z][a-zA-Z0-9]{1,5}[\/]|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    36. Il reste dans les résultats des slahs à supprimer !!!
    37. Le résultat est par contre concluant sur notepad+ -->]
    38.  
    39. [<!--(#REM) suite L'expression
    40. {regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'
    41. match aussi le premier slash mais pas les suivants !!!
    42. Le résultat est par contre concluant sur notepad+ -->]
    43.  
    44. [<!--(#REM)
    45. La division en deux set de l'expression :
    46. #SET{regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+'}
    47. #SET{regex_bp2, 'BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    48. match aussi le premier slash mais pas les suivants !!!
    49. Le résultat est par contre concluant sur notepad+ -->]

    Télécharger

    La boucle DATA (peu développée)

    1. <B_catalogue>
    2. <div class="menu menu_articles">
    3. <BOUCLE_catalogue(DATA) {source json, [(#URL_PAGE{json}|parametre_url{objet,catalogue_biblio,&})] } {par titre_alt}>
    4. [(#TITRE)]
    5. [(#TITRE_ALT)]
    6. </BOUCLE_catalogue>
    7. </div>
    8. </B_catalogue>
    9. <//B_catalogue>
    10. <hr>
    11. </br>

    Télécharger

    Cordialement

    Eric


  • Bonjour,
    Ma réponse semble s’être perdue.
    Je recommence.

    Json semble être une bonne solution.
    J’ai suivi vos informations. J’obtiens de la boucle Data un résultat probant. Par contre si j’arrive à supprimer tout le texte contenu entre les balises bp et le premier Slah contenu entre celles-ci, il me reste des slahs que je n’arrive pas à supprimer sans que je sache si mon expression régulière soit en cause ou ma boucle.

    Le détail :
    L’inclure json/catalogue_biblio.html

    1. [<!--(#REM) 1) les regex -->]
    2. #SET{regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[/])+'}
    3. #SET{regex_bp2, 'BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    4.  
    5.  
    6. [<!--(#REM) 2) la boucle de traitements -->]
    7.  
    8. <B_bibli>
    9.  
    10. <h10>Liste des notices de l'inventaire principal</h10>
    11. </br>
    12. <BOUCLE_bibli(ARTICLES){id_rubrique=28} {par titre} >
    13. [(#TITRE
    14. |replace{#GET{regex_bp1, ''}}
    15. |replace{#GET{regex_bp2, ''}}
    16. )]</br>
    17. </BOUCLE_bibli>
    18.  
    19. </B_bibli>
    20.  
    21. [<!--(#REM) exemple testé)
    22. 1500. [1500]<bp>BnF/ISTC/USTC</bp> ou [1518]<bp>Lind94/MAT</bp><cn>&#127761;</cn>
    23. blabla<bp>USTC</bp><cn>&#127761;</cn>
    24. blabla<bp>MAT</bp> blabla<bp>USTC</bp> blabla<bp>GW/ISTC/Lind94/MAT/USTC</bp><cn>&#127761;</cn>
    25. blabla<bp>Lind94</bp> blabla<cn>&#127761;</cn> -->]
    26.  
    27. [<!--(#REM)
    28. Les balises ne peuvent être soustraites dans l'expression suivante
    29. #SET{regex_bp1, '<bp>[A-Z][a-zA-Z0-9]{1,5}<\/bp>'}
    30. L'expression recherchera dans ce cas tous les mots commençant par une majuscule ayant 1 à 5 caractères ensuite
    31. -->]
    32.  
    33. [<!--(#REM) Le slash à soustraire
    34. L'expression suivante match le premier slash mais pas les suivants
    35. {regex_bp1, '[A-Z][a-zA-Z0-9]{1,5}[\/]|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    36. Il reste dans les résultats des slahs à supprimer !!!
    37. Le résultat est par contre concluant sur notepad+ -->]
    38.  
    39. [<!--(#REM) suite L'expression
    40. {regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'
    41. match aussi le premier slash mais pas les suivants !!!
    42. Le résultat est par contre concluant sur notepad+ -->]
    43.  
    44. [<!--(#REM)
    45. La division en deux set de l'expression :
    46. #SET{regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+'}
    47. #SET{regex_bp2, 'BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    48. match aussi le premier slash mais pas les suivants !!!
    49. Le résultat est par contre concluant sur notepad+ -->]

    Télécharger

    La boucle Data (peu développée)

    1. <B_catalogue>
    2. <div class="menu menu_articles">
    3. <BOUCLE_catalogue(DATA) {source json, [(#URL_PAGE{json}|parametre_url{objet,catalogue_biblio,&})] } {par titre_alt}>
    4. [(#TITRE)]
    5. [(#TITRE_ALT)]
    6. </BOUCLE_catalogue>
    7. </div>
    8. </B_catalogue>
    9.  
    10. <//B_catalogue>
    11. <hr>
    12. </br>

    Télécharger

    Cordialement
    Eric


  • Bah tu peutoujours utiliser un syntaxe SQL dans {par}...
    inutile de faire compliqué...

    1. {par SUBSTRING(titre,4)}

    ça va supprimer les 4 premieres lettre de titre pour le ORDER BY..

    Normalement ça doit le faire.

    J’écris ça de tête... il faut approfondir selon les besoins.


  • Bonjour,

    J’ai tenté placido de poster deux messages jeudi soir. Ils ne sont pas passés. Je ne connaissais pas json. Et j’apprends actuellement sa mise en place. Un squelette json.html a été créé comme indiqué puis un inclure json/catalogue_biblio.html en créant un répertoire json dans le répertoire inclure.
    L’écriture de cet inclure pose problème.
    Voici mon fichier

    1. [<!--(#REM) 1) les regex -->]
    2. #SET{regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    3.  
    4.  
    5. [<!--(#REM) 2) la boucle de traitements -->]
    6.  
    7. <B_bibli>
    8.  
    9. <h10>Liste des notices</h10>
    10. </br>
    11. <BOUCLE_bibli(ARTICLES){id_rubrique=28} {par titre} >
    12. ["titre": (#TITRE|replace{#GET{regex_bp1, ''}})]</br>
    13. ["id": (#ID_ARTICLE|json_encode)]
    14. </br>
    15. </br>
    16. </BOUCLE_bibli>
    17. <//BOUCLE_bibli>
    18. </B_bibli>

    Télécharger

    Dans ton exemple à quoi sert l’expression suivante ?

    1. [
    2. (#SET{regex_foo, fo(o)*})
    3. ]

    Télécharger

    Je l’ai ici supprimé

    Ensuite, il ne semble pas possible d’écrire
    "titre" : (#TITRE

    En effet, en activant le code suivant dans une boucle rubrique

    1. [(#REM) Articles de la rubrique ]
    2. <INCLURE{fond=inclure/json/catalogue_biblio, id_rubrique}>
    3. <B_catalogue>
    4. <div class="menu menu_articles">
    5. <BOUCLE_catalogue(DATA) {source json, [(#URL_PAGE{json}|parametre_url{objet,catalogue_biblio,&})] } {par titre}>
    6. [(#TITRE)]
    7. </BOUCLE_catalogue>
    8. </div>
    9. </B_catalogue>
    10. <//B_catalogue>
    11. <hr>
    12. </br>

    Télécharger

    l’expression "titre" : (#TITRE
    Je rencontre de sérieux problème d’affichage : Un problème avec les slahs conduit à placer les titres pour parties en exposant

    Et qui plus est, le json à l’adresse suivante monsite.fr/ ?page=json&objet=catalogue_biblio ne se charge pas.

    Si vous le voulez bien, reprenons les choses dans l’ordre.
    Il me faut d’abord enlever un segment de caractères dans un titre.
    A partir de l’exemple suivant

    1500. [1500]<bp>BnF/ISTC/USTC</bp> ou [1518]<bp>Lind94/MAT</bp><cn>&#127761;</cn>
    blabla<bp>USTC</bp><cn>&#127761;</cn>
    blabla<bp>MAT</bp> blabla<bp>USTC</bp> blabla<bp>GW/ISTC/Lind94/MAT/USTC</bp><cn>&#127761;</cn>
    blabla<bp>Lind94</bp> blabla<cn>&#127761;</cn> -->]

    L’écriture de l’expression régulière pose problème

    L'expression suivante match le premier slash mais pas les suivants
    {regex_bp1, '[A-Z][a-zA-Z0-9]{1,5}[\/]|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    Il reste dans les résultats des slahs à supprimer !!!
    Le résultat est par contre concluant sur notepad+ -->]
    {regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'
    supprime aussi le premier slash mais pas les suivants !!!
    Le résultat est par contre concluant sur notepad+

    Et la division en deux set de l’expression :

    #SET{regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+'}
    #SET{regex_bp2, 'BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    supprime aussi le premier slash mais pas les suivants !!

    Voilà où j’en suis.

    Une syntaxe SQL dans par serait un bonheur mais SUBSTRING ne me semble pas la bonne fonction.

    Bien à vous

    Eric


  • Bonjour,

    J’ai tenté placido de poster deux messages jeudi soir. Ils ne sont pas passés. Je ne connaissais pas json. Et j’apprends actuellement sa mise en place. Un squelette json.html a été créé comme indiqué puis un inclure json/catalogue_biblio.html en créant un répertoire json dans le répertoire inclure.
    L’écriture de cet inclure pose problème.
    Voici mon fichier

    [<!--(#REM) 1) les regex  -->]
    #SET{regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}


    [<!--(#REM) 2) la boucle de traitements  -->]

    <B_bibli>

    <h10>Liste des notices</h10>
    </br>
    <BOUCLE_bibli(ARTICLES){id_rubrique=28} {par titre} >
    ["titre": (#TITRE|replace{#GET{regex_bp1, ''}})]</br>
    ["id": (#ID_ARTICLE|json_encode)]
    </br>
    </br>
    </BOUCLE_bibli>
    <//BOUCLE_bibli>
    </B_bibli>

    Dans ton exemple à quoi sert l’expression suivante ?

    [
    (#SET{regex_foo, fo(o)*})
    ]

    Je l’ai ici supprimé

    Ensuite, il ne semble pas possible d’écrire
    ["titre": (#TITRE|json_encode)]

    En effet, en activant le code suivant dans une boucle rubrique

    [(#REM) Articles de la rubrique ]
    <INCLURE{fond=inclure/json/catalogue_biblio, id_rubrique}>                       
    <B_catalogue>
    <div class="menu menu_articles">                       
    <BOUCLE_catalogue(DATA) {source json, [(#URL_PAGE{json}|parametre_url{objet,catalogue_biblio,&})] } {par titre}>       
    [(#TITRE)]       
    </BOUCLE_catalogue>
    </div>
    </B_catalogue>
    <//B_catalogue>
    <hr>
    </br>

    Je rencontre de sérieux problème d’affichage avec l’expression ["titre": (#TITRE|json_encode)]. Un problème avec les slahs conduit à placer les titres pour parties en exposant

    Et qui plus est, le json à l’adresse suivante monsite.fr/ ?page=json&objet=catalogue_biblio ne se charge pas.

    Si vous le voulez bien, reprenons les choses dans l’ordre.
    Il me faut d’abord enlever un segment de caractères dans un titre.
    A partir de l’exemple suivant

    1500. [1500]<bp>BnF/ISTC/USTC</bp> ou [1518]<bp>Lind94/MAT</bp><cn>&#127761;</cn>
    blabla<bp>USTC</bp><cn>&#127761;</cn>
    blabla<bp>MAT</bp> blabla<bp>USTC</bp> blabla<bp>GW/ISTC/Lind94/MAT/USTC</bp><cn>&#127761;</cn>
    blabla<bp>Lind94</bp> blabla<cn>&#127761;</cn> -->]

    L’écriture de l’expression régulière pose problème

    L'expression suivante match le premier slash mais pas les suivants
    {regex_bp1, '[A-Z][a-zA-Z0-9]{1,5}[\/]|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    Il reste dans les résultats des slahs à supprimer !!!
    Le résultat est par contre concluant sur notepad+ -->]
    {regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'
    supprime aussi le premier slash mais pas les suivants !!!
    Le résultat est par contre concluant sur notepad+

    Et la division en deux set de l’expression :

    #SET{regex_bp1, '([A-Z][a-zA-Z0-9]{1,5}[\/])+'}
    #SET{regex_bp2, 'BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC'}
    supprime aussi le premier slash mais pas les suivants !!

    Voilà où j’en suis.

    Une syntaxe SQL dans par serait un bonheur mais SUBSTRING ne me semble pas la bonne fonction.

    Bien à vous

    Eric


  • L’expression régulière
    [A-Z][a-zA-Z0-9]{1,5}[/]|BHVP|BL|BMaz|BnF|BrBK|Cdéf|GW|HLC|ISTC|JULOC|Lind94|LMMA|MAT|REFLEX|USTC

    a été testée sur http://regexr.com/

    sur la base de l’exemple suivant

    1500. [1500]<bp>BnF/ISTC/USTC</bp> ou [1518]<bp>Lind94/MAT</bp><cn>&#127761;</cn>
    blabla<bp>USTC</bp><cn>&#127761;</cn>
    blabla<bp>MAT</bp> blabla<bp>USTC</bp> blabla<bp>GW/ISTC/Lind94/MAT/USTC</bp><cn>&#127761;</cn>
    blabla<bp>Lind94</bp> blabla<cn>&#127761;</cn>

    Cette expression supprime tout ce qu’il faut supprimer. Ce que j’attends d’elle.
    Mais intégrée à spip cela ne fonctionne pas.
    Le problème serait le même si le slash était remplacé par un point par exemple. Des points ne seraient pas supprimés. Le slash n’est donc pas en cause.

    Est-ce que mon problème ne trouverait pas sa solution en modifiant
    /spip/ecrire/inc/filtres.php on line 4271-4298 ?


  • Le JSON est un mode de formatage de données (initialement pour javascript), à l’instar de ce que peut être le xml, mais en plus léger.

    Toutefois il convient de respecter la syntaxe, notamment la distribution des [ ] {} :  , " sinon rien ne marchera. Pas de balisage html ici, il faut donc enlever les <br/>. Se fier aux exemples.

    L’idée était de recomposer une sorte de catalogue d’articles avec plusieurs champs dérivés du #TITRE initial complexe en tachant de capturer les éléments voulus via des expressions régulières. Cela peut demander un peu de temps, mais on peut avancer à tâtons avec un retour visuel dans le JSON, ce qui me parait plus simple qu’un debug SQL, compte tenu de la complexité et de la diversité des expressions.

    [(#SET{regex_foo, fo(o)*})] était là pour l’exemple, en effet.

    Pour les regex, ce site peut aider https://regex101.com/.


  • Merci placido. Je me replonge dans le json en respectant l’écriture et j’essaie de trouver par ailleurs une solution pour mon expression régulière

    Cordialement




Répondre à la question

« Comment trier alphabétiquement des articles sans tenir compte de certaines informations ou mots ? »

Mots-clés

Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :


Installation, mise à jour

Utilisation de l’espace privé

Administration, gestion, configuration du site

Créer ses squelettes

Qui êtes-vous ?

  • creer ou bien modifier son article côté public via un modèle

    par Laëtitia
    22 juillet 18:16

    Résolu - Réponse(s) : 4

    Je remarque une chose, si il y a 1 document dans le portfolio du rédacteur il peut en charger d’autres sur sa page publique, mais c’est quand il n’y en a pas encore que le chargement ne se fait pas (...)

  • afficher valeurs par ordre croissant

    par Didine
    20 juillet 08:47

    Pas de réponse

    Bonjour, j’utilise le plugin champs supplémentaires. Je récupère dans une liste le contenu de certains champs pour faire un formulaire de tri. Tout fonctionne correctement, cependant dans le select (...)

  • pb spip/spipr et test robots google

    par Didine
    19 juillet 20:07

    Résolu - Réponse(s) : 7

    Bonjour, je suis désolée mais le problème est de retour sur ce site alors que ça fonctionnait après notre échange. Le problème se pose sur plusieurs sites SPIP... peut-être est-ce dû aux modifications (...)

  • Probleme avec mediabox spip3.1.6

    par b_b
    18 juillet 15:28

    Réponse(s) : 6

    Voilà pourquoi je demandais un lien à chti47 :) Sans quoi on va tous passer du temps à jouer aux devinettes, alors que ça pourrait être réglé en 5 minutes (ce qui ferait gagner du temps aux personnes (...)

  • Appeler squelette

    par Mickael
    17 juillet 19:26

    Résolu - Réponse(s) : 2

    Ok, effectivement j’ai des articles qui ont perdu leur affectation :s, du coup je me retrouve avec une rubrique vide... Merci beaucoup

  • Update de la table auteurs

    par Luc
    17 juillet 11:25

    Réponse(s) : 3

    Merci, mais en fait je n’ai aucun problème à afficher les auteurs connectés en récupérant les infos de la table auteurs ; ce que je cherche, c’est faire en sorte que les auteurs connectés updatent la (...)

  • Galerie d'image lightbox slider adaptable

    par Jhessy
    12 juillet 09:57

    Réponse(s) : 2

    Bonjour Philivert, Je sais que le portfolio le fait déjà mais je dois faire cela de cette manière la car c’est dans le cahier des charges de mon stage. Et comme mon problème (en générale) c’est (...)

  • plugin SAISIES & messages d'erreur

    par Keny972
    7 juillet 14:57

    Pas de réponse

    Bonjour, J’utilise en local le plugin SAISIES pour gérer un formulaire de création d’objet éditorial. Je cherche comment ajouter à un champ SAISIES une span message_erreur ? Pas le message (...)

  • INCLUDE et cache

    par Erka
    6 juillet 18:23

    Résolu - Réponse(s) : 4

    Problème résolu : https://www.mail-archive.com/spip@rezo.net/msg72338.html

  • Problème recuperation site en ligne en local

    par Pathé
    6 juillet 17:07

    Résolu - Réponse(s) : 13

    Problème résolu merci !

  • Messages : 29323
  • 8200 43 %
  • Poser une nouvelle question