Ajouter un 2eme champ DATE pour les MAJ

24

Réponses

  • Bon, je vais modifier ça.
  • Voici la modification demandée.


    Dans la configuration, il est demandé de choisir entre un enregistrement automatique des mises à jour et un enregistrement manuel. Lorsque l'enregistrement est manuel, la date de mise à jour peut être supprimée.
  • août 2012 modifié
    je viens de tester et j'ai cette erreur :
    Parse error: syntax error, unexpected $end, expecting '(' in /SAPINrisien/themes/skeleton/home.php(37) : eval()'d code on line 1
    

    après avoir mis ce code :
    <?php eval($plxShow->callHook('loopOnMaj', 3)); ?>
    
  • Jerry WhamJerry Wham Member
    août 2012 modifié
    Il ne faut pas mettre eval(); mais directement :
    <?php $a = $plxShow->callHook('loopOnMaj', 3); ?>
    

    La variable $a (nom arbitraire que tu peux changer) est un array. Regardes l'aide du plugin pour les index disponibles.


    Edit : je m'aperçois que je me suis planté dans mon fichier d'aide. Je vais le modifier.

    Edit 2 : voilà c'est modifié. Désolé pour le désagrément.
  • merci, le plugin fonctionne (en dehors de la home pour ce que je veux faire) mais j'ai encore un problème sur ma page d'accueil. Si un des 8 articles en avant a une mise à jour alors il apparait dans mon bloc MAJ (en fait j'affiche les articles MAJ en dessous de ces 8 articles , à gauche du bouton "plus d'articles") sinon rien n'apparaît alors que j'ai 3 anciens articles mis à jour.

    Tu vois ce que je veux dire ?

    En revanche l'info s'affiche parfaitement en mode article et catégorie
  • Jerry WhamJerry Wham Member
    août 2012 modifié
    Quel est le code que tu utilises sur ta page home, à l'endroit où devraient s'afficher les articles mis à jour ?
    Si tu as juste recopié le code donné plus haut, c'est normal que rien ne s'affiche car tu ne fais que récupérer les articles dans un tableau.

    Je ne sais pas quels sont les champs que tu veux afficher mais si tu veux mettre le titre par exemple, avec un lien, tu peux faire ainsi :
    <?php 
    $a = $plxShow->callHook('loopOnMaj', 3);
    foreach ($a as $article) {
          echo '<h1><a href="'.$plxMotor->urlRewrite($article['url']).'">'.$article['title'].'</a></h1>';
    }
    ?>
    


    A mettre en dehors de la boucle while de plxRecord_arts.
  • j'avais mis :
    <?php 
    					$artMaj = $plxShow->callHook('loopOnMaj', 3);
    					foreach($artMaj as $art) {
    						echo $art['title'].'<br/>';
    					}
    				?>
    

    mais je viens de le changer pour le tien. et cela ne change rien. Il est en dehors de : <?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
  • Jerry WhamJerry Wham Member
    août 2012 modifié
    Vérifie le fichier 000.maj.xml dans le dossier articles.
    Contient-il des balises articles ?

    Si elles n'y sont pas, c'est que les dates de mises à jour n'ont pas été enregistrées.


    PS : Je viens de regarder ton site et les liens sont bien là (en fait il n'y en a qu'un mais vérifie si tous les articles que tu souhaites mettre à jour ont bien une date de mise à jour enregistrée) !!!

    PS2 : il n'y en a plus. Tu dois tester je suppose...
  • voila le contenu de 000.maj.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <document>
    	<article number="0288">
    		<maj>201207282000</maj>
    	</article>
    	<article number="0296">
    		<maj>201206162000</maj>
    	</article>
    	<article number="0281">
    		<maj>201204022000</maj>
    	</article>
    </document>
    

    il y a donc 3 articles. Les liens sont biens présents dans les pages articles et catégories. Pour ce qui est de la home, mon bloc n'affiche des MAJ que si un des 8 articles de la home a reçu une MAJ. Or je voudrais que ce bloc affiche les 3 derniers articles (de tout le fichier 000.maj.xml) même si ils ne font pas parti des 8 de la home.

    C'est pourquoi je dis qu'il y a un problème. Actuellement ce bloc devrait afficher 3 liens.
  • Ok, je comprends mieux. En fait, sur la home, plxml n'affiche que les articles qui sont dans la catégorie "page d'accueil".

    Si tu mets tes articles mis à jour dans la catégorie page d'accueil, ils s'afficheront.

    Mais ce n'est pas ce que tu attends. Il faudrait que, quelle que soit la catégorie, dès qu'il y a une mise à jour l'article s'affiche, c'est bien ça ?
  • "Mais ce n'est pas ce que tu attends. Il faudrait que, quelle que soit la catégorie, dès qu'il y a une mise à jour l'article s'affiche, c'est bien ça ?" absolument.

    En revanche je n'utilise pas la catégorie "Page d'accueil" mais un listing de 8 articles (dans les paramètres de pluxml) et cette boucle :

    <?php while($plxShow->plxMotor->plxRecord_arts->loop()): ?>
  • Jerry WhamJerry Wham Member
    août 2012 modifié
    Voici la correction.

    La fonction loopOnMaj a été modifiée de telle sorte que tous les articles mis à jour puissent apparaitre sur la page d'accueil, quelle que soit la catégorie qui leur est attribuée.


    Un nouvel index a été ajouté qui est url_rewrite. On écrira donc :
    <?php 
    $a = $plxShow->callHook('loopOnMaj', 3);
    foreach ($a as $article) {
          echo '<h1><a href="'.$plxMotor->urlRewrite($article['url_rewrite']).'">'.$article['title'].'</a></h1>';
    }
    ?>
    

    pour afficher le titre avec son url des 3 derniers articles mis à jour.


    Les autres index sont toujours disponibles.

    Enjoy :p
  • EXCELLENT. tu es un king. merci beaucoup pour tout le temps passé et pour la mention dans ton plugin.
  • Jerry WhamJerry Wham Member
    août 2012 modifié
    You're welcome. Si tu trouves des bugs, n'hésite pas à revenir en parler ici.

    PS : je regarde ton site (très bon au passage) et sur les articles mis à jour, tu indiques deux fois la date de mis à jour, par exemple :

    1er concours photo, je me lance - [MAJ]

    16 juin 2012 / Mise à jour le 16 juin 2012 - 3 commentaires - Ecrire un commentaire

    Ne faudrait-il pas lire
    1er concours photo, je me lance - [MAJ]

    10 juin 2012/ Mise à jour le 16 juin 2012 - 3 commentaires - Ecrire un commentaire
  • c'est lorsque j'ai mis à jour ta version 1.4, je ne suis pas allé modifier les paramètres. Voila que c'est fait du coup. Merci pour ton retour.

    Je reviendrai si je croise des bugs.

    D'ailleurs, comment penses tu que je peux ajouter cette info de date de MAJ dans le plugin allarchive (http://www.sapinrisien.fr/?allarchive) afin de mettre la date de maj ou l'info (MAJ) en bout de ligne ?

    merci
  • Jerry WhamJerry Wham Member
    août 2012 modifié
    Il faudrait modifier les fonctions getArticles et Display du fichier class.plx.archives.php.

    Mais je ne sais pas si c'est judicieux car une mise à jour de ce fichier écrasera tout.

    Si Stéphane pouvait nous éclairer à ce sujet, ça ne serait pas de refus.

    Je vais y réfléchir de mon côté pour éviter ça au maximum.

    PS : modifie ligne 429 du fichier maj.php, "./" par PLX_ROOT (après parseArticle), s'il te plait. Ca sera plus propre.
    Et ligne 430, tout le preg_replace par intval($art). J'ai fait ça un peu vite. J'aurais dû réfléchir un peu plus avant de poster :-°
  • ok merci pour ces précisions.

    attendons de voir ce qu'en pense Stéphane.
  • hello, je reviens vers toi car je découvre un problème. je viens d'ajouter une MAJ sur un article, ce qui m'en fait 4 maintenant comme tu peux le voir dans le xml suivant :
    <?xml version='1.0' encoding='UTF-8'?>
    <document>
    	<article number="0288">
    		<maj>201207282000</maj>
    	</article>
    	<article number="0296">
    		<maj>201206162000</maj>
    	</article>
    	<article number="0281">
    		<maj>201204022000</maj>
    	</article>
    	<article number="0303">
    		<maj>201208070950</maj>
    	</article>
    </document>
    

    et pourtant mon bloc MAJ en home affiche toujours les 3 mêmes articles que précédemment or il devrait afficher par date décroissante de MAJ les 3 dernières modifications.

    Peux tu y faire quelque chose ?
  • Je viens de corriger la fonction loopOnMaj.

    Merci pour le retour.


    Pour ce qui est des archives, je continue de chercher mais je ne vois pas trop comment faire...
  • tout marche nickel.

    attendons de voir si Stéphane se manifeste.
  • Jerry WhamJerry Wham Member
    août 2012 modifié
    Bon, j'ai trouvé quelque chose qui limite un peu la casse. Seul le fichier static.allarchive.php est à modifier. Il faudra faire attention s'il y a une mise à jour.


    Ce qui serait bien, serait de pouvoir choisir le fichier à utiliser (d'en avoir un par défaut mais de pouvoir dans la page de config en choisir un autre). Si Stéphane nous entends...


    En attendant, voici ce que je te propose :
    <?php
    include(dirname(__FILE__).'/class.plx.archives.php');
    $plxMotor = plxMotor::getInstance();
    $plxPlugin = $plxMotor->plxPlugins->aPlugins['maj']['instance'];
    $maj = $plxPlugin->getMaj(PLX_ROOT.$plxPlugin->getParam('maj'));
    $plxArchives = new plxArchives();
    $plxArchives->getArticles();
    ob_start();
    $plxArchives->Display();
    $arts = ob_get_clean();
    unset($plxArchives);
    preg_match_all('!<li>(.+)</li>!U',$arts,$li);
    if (preg_match_all('!article([0-9]{1,4})!',$arts,$capture)) {
    	foreach ($capture[1] as $key => $value) {
    		$id = str_pad($value,4,'0',STR_PAD_LEFT);
    		if (array_key_exists($id, $maj)) {
    			$arts = str_replace($li[0][$key], substr($li[0][$key],0,-5).' (MAJ le '.plxDate::formatDate($maj[$id]['maj'],'#num_day/#month/#num_year(4)').')</li>', $arts);
    		}
    	}
    }
    echo $arts;
    ?>
    
  • ça marche du tonnerre. Tu es une machine.

    Merci c'est top.
  • SapinTremblant a écrit:
    ça marche du tonnerre. Tu es une machine.

    Merci c'est top.
    Oui à ce propos, je cherche Sarah CONNOR :)
  • ça fait un bail que je l'ai vu mais te dire où elle est maintenant !!!!

    j'ai donc mis ça sur ma home
    <?php 
    						$a = $plxShow->callHook('loopOnMaj', 3);
    						foreach ($a as $article) {
    							  echo '<li><a href="'.$plxMotor->urlRewrite($article['url_rewrite']).'">'.$article['title'].'</a> <span class="maj-mention"><em>(MAJ le '.$article['maj'].')</em></span></li>';
    						}
    					?>
    

    mais peux tu m'aider pour afficher les dates proprement stp (regarde ma home, les date sont en iso c'est pas top). Merci par avance
  • Essaie plutôt ça :
    <?php 
       $a = $plxShow->callHook('loopOnMaj', 3);
       foreach ($a as $article) {
    	echo '<li><a href="'.$plxMotor->urlRewrite($article['url_rewrite']).'">'.$article['title'].'</a> <span class="maj-mention"><em>(MAJ le '.plxDate::formatDate($article['maj'],'#num_day/#month/#num_year (4)').')</em></span></li>';
       }
    ?>
    
  • merci beaucoup, il me semble avoir essayé ce code avant de te demander mais j'avais visiblement fait une erreur.

    Voila, tout est parfait.
  • Bonjour

    Est-ce que ce plugin est compatible avec pluxml 5.3?
  • Il est au moins compatible avec la 5.2. Tu peux le trouver sur github. Je t'avouerai que je n'ai pas testé. Mais je pense que ça devrait fonctionner.
  • cpalocpalo Member
    février 2014 modifié
    Bonjour

    j'ai configuré pour que la date de maj ne remplace pas la date de création et que ce ne soit pas automatique à chaque enregistrement.

    J'ai rajouté dans le header de l'article:
    [== PHP ==]
    <p>
          <?php eval($plxShow->callHook('artDateMaj', 'Mise à jour le #num_day #month #num_year(4)')); ?>
     </p>
    

    Rien ne s'affiche mais en fait lorsque j'édite l'article et que je saisis la date de maj, celle-ci disparait lorsque je fais enregistrer.

    Cordialement
  • Il y a une option dans le plugin pour ce comportement. Soit il affiche la date de mise à jour, soit il écrase la date initiale d'enregistrement... voir la configuration
Connectez-vous ou Inscrivez-vous pour répondre.