Cet exemple présente une extension personnalisée au processus de substitution des balises
meta.
sub EMP_SubstituteCustomMetaTag {
my $metaTagParts_ref = shift; # a reference to an array
my $entityDefObj = shift;
my $isHTMLContent = shift;
my $isTest = shift;
# Cette routine fournit une extension personnalisée du processus de substitution des balises meta.
# Si aucune des balise meta intégrée n'est suffisante pour les administrateurs ClearQuest,
# cette extension permet aux administrateurs d'ajouter leurs propres balises meta. Découvrez
# la balise meta EXPRESSION avant, car elle vous permettra de répondre à de nombreux
# besoins. Souvenez-vous que vous pouvez appeler des fonctions définies dans ce schéma
# également. Ce point de personnalisation a été conçu pour une utilisation là où
# vous planifiez de tester la fonction ou de passer d'une sortie HTML à du texte brut
#
# Paramètres :
# metaTagParts_ref - Il s'agit d'une référence à une grappe des parties décodée de la balise meta telle que lue depuis le
# modèle fourni. L'élément 0 est le nom de la balise meta tandis que tous les autres
# éléments qui peuvent être présents voient leurs paramètres décodés à partir de l'entrée d'origine.
# L'entrée d'origine est fractionnée en "::" limites. La balise complète d'origine peut
# être reconstituée avec cette instruction
# $origMetaTag = join("::", @{$metaTagParts_ref});
# entityDefObj - Il s'agit de l'objet ClearQuest Entity Def pour le type d'enregistrement auquel appartient le modèle
# isHTMLContent - Il s'agit d'un indicateur booléen qui, lorsqu'il est défini sur 1, signifie que vous pouvez obtenir le résultat
# tel que formaté auparavant en HTML si vous le souhaitez. Dans le cas contraire, ce que vous renvoyez sera traité comme du texte brut.
# isTest - Il s'agit d'un indicateur booléen qui, lorsqu'il est défini sur 1, indique que vous devez renvoyer toute erreur que la balise développée peut
# générer MAIS PAS la valeur. Renvoyer une chaîne nulle en mode isTest signifie qu'il n'y a pas d'erreur.
# Cette fonction permet de valider l'utilisation d'une balise.
EMP_DebugOut("START - Add custom meta tags");
my $errorTags = ""; # Inclut tout texte d'erreur dans cette variable. Elle s'affichera dans la fenêtre de débogage de EmailPlusTemplate
my $fieldValue = ""; # Inclut le résultat de l'expansion MetaTag dans cette variable. Cette valeur sera comprise dans la notification EmailPlus
# Traitez les balises personnalisées
my $customTag = lc($metaTagParts_ref->[0]);
# Ajouter votre traitement ici
# ========================
# Remarquez que la balise meta est convertie en minuscules. Par ailleurs, toutes les valeurs littérales doivent apparaître en minuscules.
# Cela régit la situation lorsque le rédacteur de règles du modèle utilise des minuscules et des majuscules dans le nom des balises.
if ($customTag eq "nameoftemplate") {
# Voici un exemple de balise meta renvoyant le nom unique du modèle EmailPlusTemplate
# Dans le modèle EmailPlusTemplate, vous utiliseriez la balise meta #@NAMEOFTEMPLATE@#, qui n'est pas sensible à la casse
if ($session->HasValue("EMP::CONTEXT")) {
my $context = $session->GetNameValue("EMP::CONTEXT");
my($ruleName,$templateName) = split(/\|\|/,$context);
$fieldValue = $templateName;
# Le TemplateName unique comporte trois parties : RecordType TemplateKind TemplateName
}
else {
# Si la variable de session EMP::CONTEXT n'est pas définie, renvoie à un message d'erreur comme résultat
my $errmsg = 'TemplateName could not be established using the MetaTag: '.$metaTagParts_ref->[0];
# Utilisez la fonction EMP_MakeEmbeddedErrorMessage pour formater l'erreur si le format du corps du message est HTML
$fieldValue = EMP_MakeEmbeddedErrorMessage($errmsg,$isHTMLContent);
}
}
# ================================================
# Cette simulation est uniquement destinée à un test et peut-être effacée->
elsif ($customTag eq "dummy") {
$fieldValue = "Customized test tag ".localtime();
}
# <- END Cette simulation est uniquement destinée à un test et peut-être effacée
# ================================================
else {
# Catches Undefined tags
$errorTags .= "ERROR: Undefined MetaTag: ".$metaTagParts_ref->[0]."\n";
}
# Renvoie la valeur ou la chaîne d'erreur selon le mode
my $result = ""; # La valeur de retour
if ($isTest) {
# Toute erreur s'affichera dans la fenêtre de débogage de l'enregistrement EmailPlusTemplate
$result = $errorTags;
}
else {
# Voici ce qui sera inséré dans le message de notification EmailPlus
$result = $fieldValue;
}
EMP_DebugOut("END - result \= \<$result\>");
return $result;
}