[Résolu] Récupérer le nom de la catégorie principale

More
14 years 4 months ago - 14 years 3 months ago #1426 by kim
Bonjour,

C'est une question délicate, pas simple, mais je crois, faisable...
Mais j'ai besoin d'aide, car mes essais m'ont pas été concluant.

Grosso modo, l'idée est de récupérer le nom des catégories, grâce au champs "Type".
On obtient alors le nom des différentes catégories (ex: categorie1 categorie2 categorie3)
La catégorie1 est la catégorie principale.
Si on tronque cette chaine de caractère après le premier espace.
On obtient: categorie1.
Bingo, le tour est joué...
En théorie, c'est beau.

Mais en pratique, j'affiche mes catégories avec ça:
Code:
<?php if (isset($items[$i]->positions['titraille'])) : ?> <div class="lineinfo line1"> <?php foreach ($items[$i]->positions['titraille'] as $field) : ?> <span class="element"> <?php if ($field->label) : ?> <span class="label field_<?php echo $field->name; ?>"><?php echo $field->label; ?></span> <?php endif; ?> <span class="value field_<?php echo $field->name; ?>"><?php echo $field->display ?></span> </span> <?php endforeach; ?> </div> <?php endif; ?>

Je tronque ma chaine de caractère avec ça:
Code:
<?php $chaine = "Le texte que vous vouler tronquer !"; $lg_max = 20; //nombre de caractère autoriser if (strlen($chaine) > $lg_max) { $chaine = substr($chaine, 0, $lg_max); $last_space = strrpos($chaine, " "); $chaine = substr($chaine, 0, $last_space)."..."; } ?> <?php echo $chaine ?>

Là, où je bloque: je n'arrive pas à faire passer le <?php echo $field->display ?> dans $chaine.
C'est un problème de programmation de base.
Alors, si y'a une bonne âme charitable qui peut m'aider, je lui claquerai une bise reconnaissante :)
Ou bien, me dire que je me plante complètement dans mon raisonnement (je ne lui en voudrais pas).
Last edit: 14 years 3 months ago by kim.

Please Log in or Create an account to join the conversation.

More
14 years 4 months ago #1508 by vistamedia
Hello Kim,
Ce que tu as fais s'appelle une fonction :)
Code:
<?php function cutMyString($chaine, $lg_max=20) { if (strlen($chaine) > $lg_max) { $chaine = substr($chaine, 0, $lg_max); $last_space = strrpos($chaine, " "); $chaine = substr($chaine, 0, $last_space)."..."; } return $chaine; } ?>

Maintenant pour l'utiliser, tu peux tout simplement faire
Code:
<?php echo cutMyString($field->display, 20); ?>

Manu.

FLEXIcontent lead developer.
www.vistamedia.fr web agency and custom development.
www.joomla.fr co-administrator.
Please no PM for support request, use the forum for that!!!

Please Log in or Create an account to join the conversation.

More
14 years 4 months ago #1522 by kim
J'ai bien essayer dans une fonction aussi, mais ca ne fonctionne pas...
En fait j'ai l'impression que $field->display ne passe pas dans la fonction. Ma home

Code:
<?php function cutMyString($chaine, $lg_max) { if (strlen($chaine) > $lg_max) { $chaine = substr($chaine, 0, $lg_max); $last_space = strrpos($chaine, " "); $chaine = substr($chaine, 0, $last_space)."..."; } return $chaine; } ?> <?php if (isset($items[$i]->positions['titraille'])) : ?> <div class="lineinfo line1"> <?php foreach ($items[$i]->positions['titraille'] as $field) : ?> <span class="element"> <?php if ($field->label) : ?> <span class="label field_<?php echo $field->name; ?>"><?php echo $field->label; ?></span> <?php endif; ?> <span class="value field_<?php echo $field->name; ?>"><?php echo $field->display; ?><?php echo cutMyString($field->display, 20); ?></span> </span> <?php endforeach; ?> </div> <?php endif; ?>

Please Log in or Create an account to join the conversation.

More
14 years 4 months ago #1586 by kim
Manu, helpppp...

Please Log in or Create an account to join the conversation.

More
14 years 4 months ago #1625 by vistamedia
Juste deux questions:
As-tu as vérifé si ta fonction marchait?
Est-ce que echo $field->display; t'affiche bien quelque chose?

FLEXIcontent lead developer.
www.vistamedia.fr web agency and custom development.
www.joomla.fr co-administrator.
Please no PM for support request, use the forum for that!!!

Please Log in or Create an account to join the conversation.

More
14 years 4 months ago #1631 by kim
Code:
<?php echo $field->display; ?><br> <?php echo cutMyString('ma chaine de caractere', 10); ?> <?php echo cutMyString($field->display, 3); ?>

Le première echo fontionnne, le 2e aussi, et pas le trois...

Please Log in or Create an account to join the conversation.

Moderators: vistamediajoomlacornerggppdk
Time to create page: 0.591 seconds
Save
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Essential
These cookies are needed to make the website work correctly. You can not disable them.
Display
Accept
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline