Une grande quantité de jetons ralentit tout - jetons d'espace réservé

8

l'un de vous avait-il eu un problème avec une trop grande quantité de jetons? En raison du peu de types de contenu (~ 8) avec un tas de champs (~ 5-10 chacun), le module Token génère une table trop grande avec des jetons de remplacement. C'est pourquoi j'ai dû augmenter la mémoire disponible de settings.php pour éviter drupal d'une erreur php. J'ai défini 512 Mo pour qu'il génère maintenant la table de sortie, mais il est si lent qu'il gèle Chrome.

Cela se produit lorsque j'ai cet aperçu des jetons disponibles. Il peut donc être trouvé dans Pathauto ou Custom Breadcrumbs.

Voici à quoi cela ressemble dans l'aperçu HTML de Google Chrome:

capture d'écran

wtk
la source
voici à quoi cela ressemble dans l'aperçu html de Chrome: img687.imageshack.us/img687/589/zrzutekranu20110916o153.png ... peu de modules, peu de types de contenu, peu de champs .. et cela multiplie la taille de sortie finale.
wtk
Ok, j'ai trouvé le coupable. C'était à cause du module Token Entity (il génère des jetons pour des choses qui ne sont normalement pas disponibles).
wtk
Je devrais et je le ferais sinon une règle stupide qu'en tant que nouvel utilisateur enregistré, je n'aurais pas pu le faire aussi rapidement:] Maintenant, je publierai la solution.
wtk

Réponses:

6

Vous pouvez trouver des solutions à un tel problème sur les références de nœuds + les jetons d'entité créent une table HTML d'interface utilisateur d'arborescence de jetons ÉNORME .

L'utilisation du module Token tweaks est également utile. J'ai essayé et ça marche bien.

Fournit des ajustements pour les jetons (principalement pour améliorer les performances)

  • Désactivez les types de jetons ou des jetons spécifiques.
  • Modifiez la limite de profondeur par défaut pour l'interface utilisateur de l'arborescence des jetons.
wtk
la source
1

Token Tweaks a fonctionné pour moi, mais si vous avez un dédain général pour l'ajout de modules, vous pouvez essayer les correctifs de Prevent récursifs .

Vous pouvez également changer TOKEN_MAX_DEPTHen token.module. Pour moi, changer la valeur a 1conduit à un temps de chargement de 1 seconde. 2fait 5,23 secondes. 3ou plus à peu près planté le navigateur. Vous voudrez toujours probablement apporter un correctif de la modification dans ce cas et / ou conserver une sauvegarde du token.modulefichier, ou faire de Hacked une partie de votre processus de mise à jour du module.

cdmo
la source
1

Vous pouvez arrêter le token_helprendu dans Drupal 7.

Si vous n'avez pas besoin de jetons sur un formulaire donné et que trop de champs sur trop de types de contenu entraînent des problèmes de performances, vous pouvez remplacer la fonction de thème pour la liste des jetons disponibles et la remplacer par un lien vers la même page avec un ensemble de variables où vous souhaitez voir les jetons.

Par défaut, il ne rendra pas les jetons, mais si vous souhaitez afficher une page avec les jetons, vous pouvez:

function nys_utils_theme_registry_alter(&$vars) {
  $vars['token_tree']['function'] = 'nys_utils_theme_token_tree';   
}

function nys_utils_theme_token_tree($variables) {
  if(isset($_GET['show_tokens']) && $_GET['show_tokens'] == 1) {
    return theme_token_tree($variables);
  } else {
     return l('show tokens',$_GET['q'], array('query' => array('show_tokens' => '1'))); 
  }
}
oknate
la source