Page Contents

TextHelper

class TextHelper(View $view, array $settings = array())

TextHelper possède des méthodes pour rendre le texte plus utilisable et sympa dans vos vues. Il aide à activer les liens, à formater les URLs, à créer des extraits de texte autour des mots ou des phrases choisies, mettant en évidence des mots clés dans des blocs de texte et tronquer élégamment de longues étendues de texte.

Modifié dans la version 2.1: Plusieurs des méthodes de TextHelper ont été déplacées dans la classe String pour permettre une utilisation plus facile de la couche View. Dans une vue, ces méthodes sont accessibles avec la classe TextHelper et vous pouvez l’appeler comme vous appelleriez une méthode normale de helper: $this->Text->method($args);.

TextHelper::autoLinkEmails(string $text, array $options=array())
Paramètres:
  • $text (string) – Le texte à convertir.
  • $options (array) – Un tableau d” attributs HTML pour générer les liens.

Ajoute les liens aux adresses email bien formées dans $text, selon toute les options définies dans $options (regardez HtmlHelper::link()).

$myText = 'Pour plus d'informations sur nos pâtes et desserts fameux,
    contactez info@example.com';
$linkedText = $this->Text->autoLinkEmails($myText);

Sortie:

Pour plus d'informations sur nos pâtes et desserts fameux,
contactez <a href="mailto:info@example.com">info@example.com</a>

Modifié dans la version 2.1: Dans 2.1, cette méthode échappe automatiquement ces inputs. Utilisez l’option escape pour la désactiver si nécessaire.

TextHelper::autoLinkUrls(string $text, array $options=array())
Paramètres:
  • $text (string) – Le texte à convertir.
  • $options (array) – Un tableau d” attributs HTML pour la génération de liens.

De même que dans autoLinkEmails(), seule cette méthode cherche les chaînes de caractère qui commence par https, http, ftp, ou nntp et les liens de manière appropriée.

Modifié dans la version 2.1: Dans 2.1, cette méthode échappe automatiquement son input. Utilisez l’option escape pour la désactiver si nécessaire.

Paramètres:
  • $text (string) – Le texte à lier automatiquement.
  • $htmlOptions (array) – Un tableau d” attributs HTML pour générer les liens.

Exécute la fonctionnalité dans les deux autoLinkUrls() et autoLinkEmails() sur le $text fourni. Tous les URLs et emails sont liés de manière appropriée donnée par $htmlOptions fourni.

Modifié dans la version 2.1: Dans 2.1, cette méthode échappe automatiquement son input. Utilisez l’option escape pour la désactiver si nécessaire.

TextHelper::autoParagraph(string $text)
Paramètres:
  • $text (string) – Le texte à convertir.

Ajoute <p> autour du texte où la double ligne retourne et <br> où une simple ligne retourne, sont trouvés.

$myText = 'For more information
regarding our world-famous pastries and desserts.

contact info@example.com';
$formattedText = $this->Text->autoParagraph($myText);

Output:

<p>Pour plus d\'information<br />
selon nos célèbres pâtes et desserts.</p>
<p>contact info@example.com</p>

Nouveau dans la version 2.4.

TextHelper::highlight(string $haystack, string $needle, array $options = array())
Paramètres:
  • $haystack (string) – La chaîne de caractères à rechercher.
  • $needle (string) – La chaîne à trouver.
  • $options (array) – Un tableau d’options, voir ci-dessous.

Mettre en avant $needle dans $haystack en utilisant la chaîne spécifique $options['format'] ou une chaîne par défaut.

Options:

  • “format” - chaîne la partie de html avec laquelle la phrase sera mise en exergue.
  • “html” - bool Si true, va ignorer tous les tags HTML, s’assurant que seul le bon texte est mise en avant.

Exemple:

// appelé avec TextHelper
echo $this->Text->highlight(
    $lastSentence,
    'using',
    array('format' => '<span class="highlight">\1</span>')
);

// appelé avec CakeText
App::uses('CakeText', 'Utility');
echo CakeText::highlight(
    $lastSentence,
    'using',
    array('format' => '<span class="highlight">\1</span>')
);

Sortie:

Highlights $needle in $haystack <span class="highlight">using</span>
the $options['format'] string specified  or a default string.

Enlève le $text fourni de tout lien HTML.

TextHelper::truncate(string $text, int $length=100, array $options)
Paramètres:
  • $text (string) – Le texte à tronquer.
  • $length (int) – La longueur en caractères pour laquelle le texte doit être tronqué.
  • $options (array) – Un tableau d’options à utiliser.

Si $text est plus long que $length, cette méthode le tronque à la longueur $length et ajoute un suffixe 'ellipsis', si défini. Si 'exact' est passé à false, le truchement va se faire au premier espace après le point où $length a dépassé. Si 'html' est passé à true, les balises html seront respectées et ne seront pas coupées.

$options est utilisé pour passer tous les paramètres supplémentaires, et a les clés suivantes possibles par défaut, celles-ci étant toutes optionnelles:

array(
    'ellipsis' => '...',
    'exact' => true,
    'html' => false
)

Exemple:

// appelé avec TextHelper
echo $this->Text->truncate(
    'The killer crept forward and tripped on the rug.',
    22,
    array(
        'ellipsis' => '...',
        'exact' => false
    )
);

// appelé avec CakeText
App::uses('CakeText', 'Utility');
echo CakeText::truncate(
    'The killer crept forward and tripped on the rug.',
    22,
    array(
        'ellipsis' => '...',
        'exact' => false
    )
);

Sortie:

The killer crept...

Modifié dans la version 2.3: ending a été remplacé par ellipsis. ending est toujours utilisé dans 2.2.1.

TextHelper::tail(string $text, int $length=100, array $options)
Paramètres:
  • $text (string) – The text à tronquer.
  • $length (int) – La longueur en caractères pour laquelle le texte doit être tronqué.
  • $options (array) – Un tableau d’options à utiliser.

Si $text est plus long que $length, cette méthode retire une sous-chaîne initiale avec la longueur de la différence et ajoute un préfixe 'ellipsis', si il est défini. Si 'exact' est passé à false, le truchement va se faire au premier espace avant le moment où le truchement aurait été fait.

$options est utilisé pour passer tous les paramètres supplémentaires, et a les clés possibles suivantes par défaut, toutes sont optionnelles:

array(
    'ellipsis' => '...',
    'exact' => true
)

Nouveau dans la version 2.3.

Exemple:

$sampleText = 'I packed my bag and in it I put a PSP, a PS3, a TV, ' .
    'a C# program that can divide by zero, death metal t-shirts'

// appelé avec TextHelper
echo $this->Text->tail(
    $sampleText,
    70,
    array(
        'ellipsis' => '...',
        'exact' => false
    )
);

// appelé avec CakeText
App::uses('CakeText', 'Utility');
echo CakeText::tail(
    $sampleText,
    70,
    array(
        'ellipsis' => '...',
        'exact' => false
    )
);

Sortie:

...a TV, a C# program that can divide by zero, death metal t-shirts
TextHelper::excerpt(string $haystack, string $needle, integer $radius=100, string $ending="...")
Paramètres:
  • $haystack (string) – La chaîne à chercher.
  • $needle (string) – La chaîne to excerpt around.
  • $radius (int) – Le nombre de caractères de chaque côté de $needle que vous souhaitez inclure.
  • $ending (string) – Le Texte à ajouter/préfixer au début ou à la fin du résultat.

Extrait un excerpt de $haystack surrounding the $needle avec un nombre de caractères de chaque côté déterminé par $radius, et prefix/suffix with $ending. Cette méthode est spécialement pratique pour les résultats recherchés. La chaîne requêtée ou les mots clés peuvent être montrés dans le document résultant.

// appelé avec TextHelper
echo $this->Text->excerpt($lastParagraph, 'method', 50, '...');

// appelé avec CakeText
App::uses('CakeText', 'Utility');
echo CakeText::excerpt($lastParagraph, 'method', 50, '...');

Sortie:

... par $radius, et prefix/suffix avec $ending. Cette méthode est
spécialement pratique pour les résultats de recherche. La requête...
TextHelper::toList(array $list, $and='and')
Paramètres:
  • $list (array) – Tableau d’éléments à combiner dans une list sentence.
  • $and (string) – Le mot utilisé pour le dernier join.

Crée une liste séparée avec des virgules, où les deux derniers items sont joins avec “and”.

// appelé avec TextHelper
echo $this->Text->toList($colors);

// appelé avec CakeText
App::uses('CakeText', 'Utility');
echo CakeText::toList($colors);

Sortie:

red, orange, yellow, green, blue, indigo et violet