web-dev-qa-db-fra.com

Je voudrais ajouter une chaîne après 'script' à JHtml :: _ ('script', $ fichier, true, true);

Dans le fichier recaptcha.php du plugin Recaptcha sur Joomla 3.6, j'ai le code suivant:

case '2.0':
            $theme = $this->params->get('theme2', 'light');
            $file  = 'https://www.google.com/recaptcha/api.js?hl=' . JFactory::getLanguage()->getTag() . '&render=explicit';

            JHtml::_('script', $file, true, true);

            $document->addScriptDeclaration('jQuery(document).ready(function($) {$(window).load(function() {'
                . 'grecaptcha.render("' . $id . '", {sitekey: "' . $pubkey . '", theme: "' . $theme . '"});'
                . '});});'
            );
            break;

Qui crée la chaîne:

<script src="https://www.google.com/recaptcha/api.js?hl=en-US&amp;render=explicit" type="text/javascript"></script>

chargement du fichier api.js pour le recaptcha. Depuis que j'utilise Rocket Loader de Cloudflare, j'aimerais changer cela.

<script src="https://www.google.com/recaptcha/api.js?hl=en-US&amp;render=explicit" type="text/javascript"></script>

pour ça

<script data-cfasync="false" src="https://www.google.com/recaptcha/api.js?hl=en-US&amp;render=explicit" type="text/javascript"></script>

où après la

J'ai essayé d'utiliser une variable $ cloud = 'data-cfasync = "false"'; et en changeant JHtml :: ('script', $ fichier, vrai, vrai); en JHtml :: ('script', $ nuage, $ fichier, vrai, vrai); ou j'ai essayé JHtml :: script data-cfasync = "false" ($ file, true, true); ou JHtml :: ('script data-cfasync = "false"', $ fichier, true, true); ou JHtml :: ('script'. 'data-cfasync = "false"', $ file, true, true); Et rien n’a fonctionné ... Je sais que certains sont stupides, mais je ne suis pas un vrai programmeur, comme vous l’avez déjà compris. Comment puis je faire ça? Merci

3
its4yougr

Depuis Joomla 3.7, les arguments de JHtml ont été mis à jour tout en maintenant la compatibilité avec les versions antérieures.

Donc plutôt que de passer , true, true, vous devez passer un tableau d’options, puis un tableau d’attributs, comme ceci:

JHtml::_('script', $file, array('version' => 'auto'), array('data-cfasync' => false));

Vous pouvez consulter le code source ici: https://github.com/joomla/joomla-cms/blob/staging/libraries/src/HTML/HTMLHelper.php#L679

J'espère que cela t'aides

2
Lodder

OK, la réponse est venue d'ici https://stackoverflow.com/questions/52953066/i-would-like-to-add-a-string-after-script-at-jhtml-script-file-true- t où j'ai posté la même question. Dans Joomla version 3.4.8 que j'ai sur le site Web, la manière de mettre une chaîne à l'intérieur des balises est la suivante:

$script = '<script src="' . $file . '" data-cfasync="false"></script>';
$document = JFactory::getDocument();
$document->addCustomTag($script);

Je vous remercie beaucoup J'apprécie votre aide Best Regards George

0
its4yougr