Pārlūkot izejas kodu

make scriptTag parameter a string for flexibility and clarity

El RIDO 2 gadi atpakaļ
vecāks
revīzija
d27e7e8ee3
4 mainītis faili ar 30 papildinājumiem un 30 dzēšanām
  1. 3 3
      lib/View.php
  2. 12 12
      tpl/bootstrap.php
  3. 13 13
      tpl/bootstrap5.php
  4. 2 2
      tpl/page.php

+ 3 - 3
lib/View.php

@@ -63,15 +63,15 @@ class View
      *
      * @access private
      * @param  string $file
-     * @param  bool   $async should it execute ASAP or only after HTML got parsed
+     * @param  string $attributes additional attributes to add into the script tag
      */
-    private function _scriptTag($file, $async = true)
+    private function _scriptTag($file, $attributes = '')
     {
         $sri = array_key_exists($file, $this->_variables['SRI']) ?
             ' integrity="' . $this->_variables['SRI'][$file] . '"' : '';
         $suffix = preg_match('#\d.js$#', $file) == 0 ?
             '?' . rawurlencode($this->_variables['VERSION']) : '';
-        echo '<script ', $async ? 'async' : 'defer',
+        echo '<script ', $attributes,
             ' type="text/javascript" data-cfasync="false" src="', $file,
             $suffix, '"', $sri, ' crossorigin="anonymous"></script>', PHP_EOL;
     }

+ 12 - 12
tpl/bootstrap.php

@@ -42,38 +42,38 @@ if ($SYNTAXHIGHLIGHTING) :
 endif;
 ?>
 		<noscript><link type="text/css" rel="stylesheet" href="css/noscript.css" /></noscript>
-		<?php $this->_scriptTag('js/jquery-3.7.1.js', false); ?>
+		<?php $this->_scriptTag('js/jquery-3.7.1.js', 'async'); ?>
 <?php
 if ($QRCODE) :
 ?>
-		<?php $this->_scriptTag('js/kjua-0.9.0.js'); ?>
+		<?php $this->_scriptTag('js/kjua-0.9.0.js', 'async'); ?>
 <?php
 endif;
 if ($ZEROBINCOMPATIBILITY) :
 ?>
-		<?php $this->_scriptTag('js/base64-1.7.js'); ?>
+		<?php $this->_scriptTag('js/base64-1.7.js', 'async'); ?>
 <?php
 endif;
 ?>
-		<?php $this->_scriptTag('js/zlib-1.3.1.js'); ?>
-		<?php $this->_scriptTag('js/base-x-4.0.0.js'); ?>
-		<?php $this->_scriptTag('js/rawinflate-0.3.js'); ?>
-		<?php $this->_scriptTag('js/bootstrap-3.4.1.js', false); ?>
+		<?php $this->_scriptTag('js/zlib-1.3.1.js', 'async'); ?>
+		<?php $this->_scriptTag('js/base-x-4.0.0.js', 'async'); ?>
+		<?php $this->_scriptTag('js/rawinflate-0.3.js', 'async'); ?>
+		<?php $this->_scriptTag('js/bootstrap-3.4.1.js', 'defer'); ?>
 <?php
 if ($SYNTAXHIGHLIGHTING) :
 ?>
-		<?php $this->_scriptTag('js/prettify.js'); ?>
+		<?php $this->_scriptTag('js/prettify.js', 'async'); ?>
 <?php
 endif;
 if ($MARKDOWN) :
 ?>
-		<?php $this->_scriptTag('js/showdown-2.1.0.js'); ?>
+		<?php $this->_scriptTag('js/showdown-2.1.0.js', 'async'); ?>
 <?php
 endif;
 ?>
-		<?php $this->_scriptTag('js/purify-3.1.3.js'); ?>
-		<?php $this->_scriptTag('js/legacy.js'); ?>
-		<?php $this->_scriptTag('js/privatebin.js', false); ?>
+		<?php $this->_scriptTag('js/purify-3.1.3.js', 'async'); ?>
+		<?php $this->_scriptTag('js/legacy.js', 'async'); ?>
+		<?php $this->_scriptTag('js/privatebin.js', 'defer'); ?>
 		<!-- icon -->
 		<link rel="apple-touch-icon" href="<?php echo I18n::encode($BASEPATH); ?>img/apple-touch-icon.png" sizes="180x180" />
 		<link rel="icon" type="image/png" href="img/favicon-32x32.png" sizes="32x32" />

+ 13 - 13
tpl/bootstrap5.php

@@ -25,39 +25,39 @@ if ($SYNTAXHIGHLIGHTING) :
 endif;
 ?>
 		<noscript><link type="text/css" rel="stylesheet" href="css/noscript.css" /></noscript>
-		<?php $this->_scriptTag('js/jquery-3.7.1.js', false); ?>
+		<?php $this->_scriptTag('js/jquery-3.7.1.js', 'defer'); ?>
 <?php
 if ($QRCODE) :
 ?>
-		<?php $this->_scriptTag('js/kjua-0.9.0.js'); ?>
+		<?php $this->_scriptTag('js/kjua-0.9.0.js', 'async'); ?>
 <?php
 endif;
 if ($ZEROBINCOMPATIBILITY) :
 ?>
-		<?php $this->_scriptTag('js/base64-1.7.js'); ?>
+		<?php $this->_scriptTag('js/base64-1.7.js', 'async'); ?>
 <?php
 endif;
 ?>
-		<?php $this->_scriptTag('js/zlib-1.3.1.js'); ?>
-		<?php $this->_scriptTag('js/base-x-4.0.0.js'); ?>
-		<?php $this->_scriptTag('js/rawinflate-0.3.js'); ?>
-		<?php $this->_scriptTag('js/bootstrap-5.3.3.js'); ?>
-		<?php $this->_scriptTag('js/dark-mode-switch.js'); ?>
+		<?php $this->_scriptTag('js/zlib-1.3.1.js', 'async'); ?>
+		<?php $this->_scriptTag('js/base-x-4.0.0.js', 'async'); ?>
+		<?php $this->_scriptTag('js/rawinflate-0.3.js', 'async'); ?>
+		<?php $this->_scriptTag('js/bootstrap-5.3.3.js', 'async'); ?>
+		<?php $this->_scriptTag('js/dark-mode-switch.js', 'async'); ?>
 <?php
 if ($SYNTAXHIGHLIGHTING) :
 ?>
-		<?php $this->_scriptTag('js/prettify.js'); ?>
+		<?php $this->_scriptTag('js/prettify.js', 'async'); ?>
 <?php
 endif;
 if ($MARKDOWN) :
 ?>
-		<?php $this->_scriptTag('js/showdown-2.1.0.js'); ?>
+		<?php $this->_scriptTag('js/showdown-2.1.0.js', 'async'); ?>
 <?php
 endif;
 ?>
-		<?php $this->_scriptTag('js/purify-3.1.3.js'); ?>
-		<?php $this->_scriptTag('js/legacy.js'); ?>
-		<?php $this->_scriptTag('js/privatebin.js', false); ?>
+		<?php $this->_scriptTag('js/purify-3.1.3.js', 'async'); ?>
+		<?php $this->_scriptTag('js/legacy.js', 'async'); ?>
+		<?php $this->_scriptTag('js/privatebin.js', 'defer'); ?>
 		<!-- icon -->
 		<link rel="apple-touch-icon" href="<?php echo I18n::encode($BASEPATH); ?>img/apple-touch-icon.png" sizes="180x180" />
 		<link rel="icon" type="image/png" href="img/favicon-32x32.png" sizes="32x32" />

+ 2 - 2
tpl/page.php

@@ -21,7 +21,7 @@ if ($SYNTAXHIGHLIGHTING):
     endif;
 endif;
 ?>
-		<?php $this->_scriptTag('js/jquery-3.7.1.js', false); ?>
+		<?php $this->_scriptTag('js/jquery-3.7.1.js', 'defer'); ?>
 <?php
 if ($QRCODE):
 ?>
@@ -51,7 +51,7 @@ endif;
 ?>
 		<?php $this->_scriptTag('js/purify-3.1.3.js'); ?>
 		<?php $this->_scriptTag('js/legacy.js'); ?>
-		<?php $this->_scriptTag('js/privatebin.js', false); ?>
+		<?php $this->_scriptTag('js/privatebin.js', 'defer'); ?>
 		<!-- icon -->
 		<link rel="apple-touch-icon" href="img/apple-touch-icon.png?<?php echo rawurlencode($VERSION); ?>" sizes="180x180" />
 		<link rel="icon" type="image/png" href="img/favicon-32x32.png?<?php echo rawurlencode($VERSION); ?>" sizes="32x32" />