[résolu] #art_chapo ajouter un lien lire la suite
Pas de souci avec
<?php $plxShow->artChapo("Continuer la lecture..."); ?>
Mais je voudrai faire apparaitre ce même lien lorsque j'utilise
$plxShow->lastArtList (
'<li class="#art_status">
<a href="#art_url" title="#art_title">#art_title</a>
<img src="#img_url" title="#img_title"/>
<div>#art_chapo</div>
</li>',
1 , $id_cat);
0
Connectez-vous ou Inscrivez-vous pour répondre.

Réponses
Bonjour,
il te faut alors l'ajouter au format:
$plxShow->lastArtList ( '<li class="#art_status"> <a href="#art_url" title="#art_title">#art_title</a> <img src="#img_url" title="#img_title"/> <div>#art_chapo <p class="more"><a href="#art_url">'.L_ARTCHAPO.'</a></p></div> </li>', 1 , $id_cat);Remplacer la constante
'.L_ARTCHAPO.'par le texte que tu veut si le format lire la suite de titre de mon article ne te convient pascdt
Cordialement,
gcyrillus , simple membre du forum et utilisateur de PluXml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
Merci
Effectivement j'avais fait ça il y a très longtemps.. cette constante est à modifier dans core.php. Et donc à chaque mise à jour cette modif est supprimée. D'où mon oubli.
A-priori rajouter cette constante dans le dossier fr dans le dossier lang du theme n'est pas prise en compte.
Aprés test,
en l'affichant via
echo $plxShow->getLang('L_ARTCHAPO');ou$plxShow->lang('L_ARTCHAPO');cela fonctionne pour moi. La modif effectué depuis le fichier de langues du thème fonctionne.l'ajout d'une nouvelle constante dans le thème fonctionne aussi.
Une typo peut-être?
Cordialement,
gcyrillus , simple membre du forum et utilisateur de PluXml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
Super! C'est ok.
Petite question : j'ai choisi $plxShow->lang('L_ARTCHAPO');
Qu'est-ce qui ferait qu'il faudrait mieux utiliser echo $plxShow->getLang('L_ARTCHAPO'); mis à part l'utilisation de echo dans le code?
$plxShow->getLang()renvoi la valeur de la variable$plxShow->lang()renvoi enechola valeur de la variable (celle à utilisé dans ton cas)Pour un simple affichage directe, lang conviendras, si tu dois seulement récupérer la variable pour la traiter ou la tester dans un script, alors c'est getLang qu'il faut utiliser .
Le test etait un test sur les deux approches, ne sachant pas celle que tu utilisais ni dans quel contexte
detail des deux fonctions
/** * Méthode qui affiche une clé de traduction appelée à partir du thème * * @param key clé de traduction à afficher * @return string * @scope global * @author Stephane F **/ public function lang($key = '') { if (isset($this->lang[$key])) echo $this->lang[$key]; else echo $key; } /** * Méthode qui renvoie une clé de traduction appelée à partir du thème * * @param key clé de traduction à afficher * @return string * @scope global * @author Stephane F **/ public function getLang($key = '') { if (isset($this->lang[$key])) return $this->lang[$key]; else return $key; }cdt
Cordialement,
gcyrillus , simple membre du forum et utilisateur de PluXml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
Merci pour cette explication.
Petit bug que je viens de voir #art_chapo ne referme pas la balise p
<div> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labo </div>Est-ce cette ligne est correcte car si le bon contenu deL_ARTCHAPO est bien affiché, il ne l'est pas au bon endroit (intitulé du lien more) mais avant la classe fzeatured-content
<div class="featured-content"> #art_chapo <span class="more"><a href="#art_url">'.$plxShow->lang('L_ARTCHAPO').'</a></span> </div>Dans la fonction
lastArtList ()la chaine#art_chapoextrait par défaut les 100 premiers caractères comme un simple texte.pour modifié cette valeur et avoir tout le contenu du chapo tu peut modifier cette valeur en accollant à
art_chapoune autre valeur entre parenthése plus importante. Par exemple :#art_chapo(3200)ce qui est plus que suffisant pour le premier article de l'install.regex qui regarde si il y a une valeur à appliquer, sinon c'est 100
$pattern = '~#art_content\((\d+)\)~'; if(preg_match($pattern, $format, $matches)) { $lengthContent = $matches[1]; $format = preg_replace($pattern, '#art_content', $format); } else { $lengthContent = '100'; }et plus loin cette valeur est appliquée au formatage:
cdt
Ceci dit, la fonction truncate() dans plx.utils.php preserve en principe le html en refermant les paragraphes. (identique à priori dans la 5.8.9 et 5.8.10)
Utilises tu un plugin qui modifie ou complète la fonction lastArtList() ?
Cordialement,
gcyrillus , simple membre du forum et utilisateur de PluXml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
Bonjour,
Je n'utilise aucun plugin qui modifie la fonction.
Avec #art_chapo(5000) la balise fermante p est bien présente.
Si je remplace
<span class="more"><a href="#art_url">'.$plxShow->lang('L_ARTCHAPO').'</a></span>par
alors l'affichage est correct.
Cordialement
Effectivement, il semble y avoir un bug et la balise fermante semble perdue .
Premiere option sans toucher aux scripts de PluXml (sans contrôle) : ajouter la balise manquante dans l'appel de fonction en dernier paramêtre.(pour l'extraction de la traduction, c'est plutôt getLang()
)
<?php $plxShow->lastArtList ( '<div class="featured-content"> #art_chapo <span class="more"><a href="#art_url">'.$plxShow->getLang('L_ARTCHAPO').'</a></span> </div>', 1 , $id_cat, '</p>'); ?>Du coup la balise fermante sera systématiquement ajoutée!
autre option provisoire , qui à priori corrigerait le bug ( @bazooka est ce un bug?)
Modifié la fonction truncate dans le fichier class.plx.utils.php en remplaçant la ligne 1292
return $truncate;par
return $truncate.$line_matchings[1];Je ne suis pas certains d'où vient le défaut: bug ou une erreur d'appel ?
cdt
Cordialement,
gcyrillus , simple membre du forum et utilisateur de PluXml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
Super.
Je vais ouvir un autre fil, mais je bute sur la modification d'un template de menus de catégories que j'avais et que je veux adapter en affichant le dernier article (le code utilisé dans ce fil)
<div class="recent-posts-content"> <ul class="categories-list_grid-container"> <?php $menu = array('001', '002', '004'); // lister ici les catégories à afficher. ?> <?php foreach($menu as $id_cat): ?> <?php $plxShow->catList('', '<li id="menu_#cat_id" class="#cat_status"> <a href="#cat_url">#cat_name</a> <ul> Article le plus récent </ul> <span> <a href="#cat_url" title="Voir tous les articles de la catégorie #cat_name">Voir tous les articles</a> </span> </li>', $id_cat); ?> <?php endforeach; ?> </ul> </div>Article le plus récent serait remplacé par le code de ce fil. J'ai essayé differents codes, mais je dois mélanger dans les balises php et htm pour inserer le $plxShow->lastArtList (
@cpalo
Tu ne peut pas imbriquer ces deux fonctions.
Ce que tu peut faire c'est récupérer ce que te renvoi la fonction
lastArtList();dans une variable et injecter celle-ci dans la fonctioncatList();Exemple possible:
<div class="recent-posts-content"> <ul class="categories-list_grid-container"> <?php $menu = array('001', '002', '004'); // lister ici les catégories à afficher. ?> <?php foreach($menu as $id_cat): ?> <?php # on stocke l'affichage et on lance la fonction lastArtList() ob_start(); $plxShow->lastArtList ( '<li><div class="featured-content"> #art_chapo <span class="more"><a href="#art_url">'.L_ARTCHAPO.'</a></span> </div></li>', 1 , $id_cat); # on recupere l'affichage stocké dans une variable $listArts = ob_get_clean();// ce que tu veut inserer # reste à insérer la variable ou l'on veut qu'elle réapparaisse. $plxShow->catList('', '<li id="menu_#cat_id" class="#cat_status"> <a href="#cat_url">#cat_name</a> <ul> '. $listArts.' </ul> <span> <a href="#cat_url" title="Voir tous les articles de la catégorie #cat_name">Voir tous les articles</a> </span> </li>', $id_cat); ?> <?php endforeach; ?> </ul> </div>cdt
Cordialement,
gcyrillus , simple membre du forum et utilisateur de PluXml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
Cela fonctionne...; il me reste à mettre à jour le css pour que cela soit présentable avant de le mettre en ligne et le partager.
Ouf!!
Le dernier détail serait de remplacer le span "Voir tous les articles" par un script qui ne l'affiche que si il y a plus d'articles dans la catégorie que d'articles affichés.
Le script fonctionne mais comment l'inserer? comme dans ton code avec ob_get_clean() ?
J'avais utilisé tous ces scripts pour afficher des menus personnalisés dans la sidebar.
<?php $nb_item = 1; // nombre d'articles maxi affichés dans le menu $nb_ArtCat = $plxShow->plxMotor->nbArticles('(?:[0-9]|home|,)*(?:'.$id_cat.')(?:[0-9]|home|,)*', '[0-9]{3}', '', 'before'); if ($nb_item < $nb_ArtCat) { // si le nombre d'articles de la catégorie est supérieur à $nb_item, on affiche un lien "Voir tous les articles" $plxShow->catList ('','<span id="menu_#cat_id"><a href="#cat_url" title="Voir tous les articles de la catégorie #cat_name">Voir tous les articles</a></span>',$id_cat); } else {} ?>Je ne saisi pas trop ton extrait de code.
cependant, dans la boucle sur les catégories, tu peut extraire le nombre d'article. Il suffirait de tester cette valeur pour modifier une autre variable.
Voici une idée de base (pour un thème par défaut) edit maj du script
<!-- script affichant liens et résumés des articles de chaque catégorie dans le menu --> <h3> <?php $plxShow->lang('CATEGORIES'); ?> </h3> <ul class="cat-list unstyled-list"> <?php #configuration filtres $catFilter = array(); // lister ici les catégories à afficher par leur identifiant . exemple array('003', '002', '004'); $nbArts ='1'; // indiquez ici le nombre d'article max à afficher $length ='100'; // indiquez ici le nombre de lettre à afficher $more=$plxShow->getLang('L_ARTCHAPO'); // recupere la traduction du théme #initialisation script if(count($catFilter)>0) { foreach($catFilter as $cat => $v){ $mycats[]=$cat; } } else { // ou parcourez toutes les catégories $mycats = $plxShow->plxMotor->aCats; } foreach($mycats as $id_cat => $ar) { # raz variable $all=''; $listArts =''; # à t-on plus d'article dans la catégorie que $nbArts ? is Oui on réaffiche un lien vers la categories if($ar['articles'] > $nbArts) $all ='<p><a href="#cat_url" title="Voir tous les articles de la catégorie #cat_name">Voir tous les articles</a></p>'; #as t-on des articles a affiché dans cette catégoire? if($ar["articles"] !='0') { # on stocke l'affichage et on lance la fonction lastArtList() ob_start(); $listArts = $plxShow->lastArtList (PHP_EOL.' <li>#art_chapo('.$length.')<p class="more"><a href="#art_url">'.$more.'</a></p></li>'.PHP_EOL, intval($nbArts) , intval($id_cat)); # on recupere l'affichage stocké dans une variable $listArts = ob_get_clean();// ce que tu veut inserer } if($listArts!='') $listArts = ' <ul class="lastart-list"> '.$listArts.' </ul>'; # reste à insérer la variable ou l'on veut qu'elle réapparaisse dans l'arborescence des catégories. $plxShow->catList('','<li id="menu_#cat_id"><a href="#cat_url">#cat_name</a>'. $listArts. $all.'</li>'.PHP_EOL,intval($id_cat)); } ?> </ul>les chaine
Voir tous les articles de la catégorieetVoir tous les articlespeuvent aussi être extraite du fichier langue du thème si tu les configures.(edit re-maj du script avec raz des variable dans la boucle)
Cdt
Cordialement,
gcyrillus , simple membre du forum et utilisateur de PluXml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci