lastArtList et loop

re coucou

de plus en plus de gens développent des plugins qui rajoutent des champs, ça c'est cool.

pour aller chercher simplement la valeur d'un champ dans l'affichage des articles (template article/tags/archives/categories/home)
on peut utiliser
[== PHP ==]
$monchamp = $plxShow->plxMotor->plxRecord_arts->f('monchamp');

hors si l'on souhaite utiliser la fonction lastArtList, il est imposible d'aller les chercher sans passer par l'inclusion et réécriture de cette fonction :(

Peut-on imaginer une autre fonction "while/loop" mais qui filtre sur une catégorie en particulier à la manière de lastArtList ?
[== PHP ==]
while($plxShow->plxMotor->plxRecord_arts->loop($max=5,$cat_id=''))
avec
max : nombre d'articles maximum
cat_id : ids des catégories cible

qu'en pensez-vous ?

Réponses

  • dans lastArtList, il y a 2 crochets, cela ne te convient pas ?

    que souhaites tu faire plus précisément, appeler "lastArtList" en utilisant un champ spécial comme ça par exemple ?
    "<li><a href="#art_url">#art_title #champSpecial</a></li>"
    
  • oui, c'est pour afficher les champs créés par les plugins.

    D'ailleurs peut-on prévoir un plugin officiel, ou une méthode native pour créer/gérer des nouveaux champs ..?
  • tu peux le faire dans le crochet "plxShowLastArtListContent" avec ce genre de code :
    $row = str_replace('#champSpecial', $art['champSpecial'], $row);
    
  • PierrePierre Member
    J'ai une question sur la construction du format dans la fonction lastArtList(), je rencontre un obstacle qui n'en est peut-être pas un pour vous.

    Le besoin est d'inclure l'équivalent de la variable $plxShow->template() au beau milieu de la chaîne de $format à l'intérieur de la fonction lastArtList. Pour faire une histoire courte, j'ai besoin d'adresser un fichier php qui est dans le répertoire du thème, c'est mon fameux img.php dont je parle tout le temps.

    J'ai essayé avec des choses comme lastArtList('<img src=' . $plxShow->template() . 'img.php?src=#img_url" />') mais sans grand espoir, c'est évident que ce n'est pas la bonne façon.

    Vous voyez l'idée, il me faut le chemin vers le thème qui revient à chaque répétition de la boucle. Merci à l'avance pour votre aide.
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour Pierre

    Essaye ceci:
    lastArtList('<img src='.$plxMotor->urlRewrite($plxMotor->aConf['racine_themes'].$plxMotor->style).'/img.php?src=#img_url" />') 
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • PierrePierre Member
    mars 2017 modifié
    On dirait que ça fonctionne, merci. Bon sang, c'est pas mes essais à tâtons qui m'auraient amené à trouver cette ligne!

    Ça peut sembler anodin comme petit événement mais c'est un grand jour. Ça va simplifier énormémement l'utilisation de cImage dans les thèmes que je convertis. Non seulement le grand pas en avant qu'amène artThumbnail ne demande plus d'installer Vignette mais une autre instruction omniprésente dans mes thèmes pourra maintenant être retirée, celle d'installer cImage.

    Jusqu'à maintenant, je ne croyais pas possible de déplacer le petit utilitaire img.php et son répertoire cache dans le répertoire d'un thème, j'avais essayé de comprendre la configuration du fichier mais je me croyais forcé de le placer dans le répertoire racine de PluXml où il fonctionnait très bien. Cette modification devait être expliquée à quiconque télécharge un des thèmes avec des instructions de déplacer un fichier, créer un répertoire vide, etc. Pour les pressés qui ne faisaient qu'activer le thème sans lire les instructions, rien ne fonctionnait.

    Ainsi, fini les instructions avec mes thèmes venus d'ailleurs, on pourra passer de l'un à l'autre en l'installant tout simplement comme tous les autres thèmes.
  • SissoneSissone Member
    janvier 2017 modifié
    Bonjour,
    je deterre ce sujet et ce n'est pas bien.
    Le dernier morceau de code proposé par Stéphane fonctionne très bien dans un template, par exemple sur home.php, et on peut ainsi bénéficier du recadrage d'image par cimage.

    En revanche, je me casse le nez en insérant le même lastartlist sur une page statique : le code ne retourne rien, alors que src="#img_url" fonctionne. C'est normal, docteur ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    @Sissone: essaye avec ce code à mettre dans une page statique
    <?php
    $plxShow = plxShow::getInstance();
    $plxShow->lastArtList('<img src='.$plxShow->plxMotor->urlRewrite($plxShow->plxMotor->aConf['racine_themes'].$plxShow->plxMotor->style).'/img.php?src=#img_url" />');
    ?>
    

    Consultant PluXml

    Ancien responsable du projet (2010 à 2018)

  • Oups, je n'ai pas vu ta réponse !! Quelle honte.
    Je vais essayer, merci :)
Connectez-vous ou Inscrivez-vous pour répondre.