aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--admin/themes/default/template/admin.tpl25
-rw-r--r--admin/themes/default/template/cat_list.tpl54
-rw-r--r--admin/themes/default/template/element_set_global.tpl41
-rw-r--r--admin/themes/default/template/element_set_ranks.tpl42
-rw-r--r--admin/themes/default/template/element_set_unit.tpl51
-rw-r--r--admin/themes/default/template/footer.tpl26
-rw-r--r--admin/themes/default/template/header.tpl7
-rw-r--r--admin/themes/default/template/history.tpl10
-rw-r--r--admin/themes/default/template/include/autosize.inc.tpl21
-rw-r--r--admin/themes/default/template/include/datepicker.inc.tpl17
-rw-r--r--admin/themes/default/template/include/dbselect.inc.tpl40
-rw-r--r--admin/themes/default/template/include/resize.inc.tpl12
-rw-r--r--admin/themes/default/template/intro.tpl17
-rw-r--r--admin/themes/default/template/languages_new.tpl15
-rw-r--r--admin/themes/default/template/menubar.tpl58
-rw-r--r--admin/themes/default/template/photos_add_direct.tpl10
-rw-r--r--admin/themes/default/template/picture_modify.tpl42
-rw-r--r--admin/themes/default/template/plugins_new.tpl37
-rw-r--r--admin/themes/default/template/plugins_update.tpl16
-rw-r--r--admin/themes/default/template/popuphelp.tpl2
-rw-r--r--include/template.class.php198
-rw-r--r--profile.php2
-rw-r--r--themes/default/template/header.tpl2
-rw-r--r--themes/default/template/include/autosize.inc.tpl21
-rw-r--r--themes/default/template/include/resize.inc.tpl9
25 files changed, 395 insertions, 380 deletions
diff --git a/admin/themes/default/template/admin.tpl b/admin/themes/default/template/admin.tpl
index 1e2b2f88e..bd6636323 100644
--- a/admin/themes/default/template/admin.tpl
+++ b/admin/themes/default/template/admin.tpl
@@ -1,17 +1,15 @@
-{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }
-{known_script id="jquery.ui.accordion" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.accordion.packed.js" }
-{known_script id="jquery.tipTip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.tipTip.minified.js" }
-
-<script type="text/javascript">
-jQuery().ready(function(){ldelim}
- jQuery('#menubar').accordion({ldelim}
- header: "dt.rdion",
- event: "click",
- autoHeight: false,
- active: {$ACTIVE_MENU}
- });
+{combine_script id='jquery.ui' load='header' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js' }
+{combine_script id='jquery.ui.accordion' load='header' require='jquery.ui' path='themes/default/js/ui/packed/ui.accordion.packed.js' }
+{footer_script require='jquery.ui.accordion'}
+jQuery(document).ready(function(){ldelim}
+ jQuery('#menubar').accordion({ldelim}
+ header: "dt.rdion",
+ event: "click",
+ autoHeight: false,
+ active: {$ACTIVE_MENU}
+ });
});
-</script>
+{/footer_script}
<div id="menubar">
<div id="adminHome"><a href="{$U_ADMIN}">{'Administration Home'|@translate}</a></div>
@@ -104,6 +102,7 @@ jQuery().ready(function(){ldelim}
{$TABSHEET}
{/if}
{if isset($U_HELP)}
+ {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
<ul class="HelpActions">
<li><a href="{$U_HELP}" onclick="popuphelp(this.href); return false;" title="{'Help'|@translate}"><img src="{$ROOT_URL}{$themeconf.admin_icon_dir}/help.png" class="button" alt="(?)"></a></li>
</ul>
diff --git a/admin/themes/default/template/cat_list.tpl b/admin/themes/default/template/cat_list.tpl
index 8e8655a2e..a23b29ca5 100644
--- a/admin/themes/default/template/cat_list.tpl
+++ b/admin/themes/default/template/cat_list.tpl
@@ -1,32 +1,30 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }
-{known_script id="jquery.ui.sortable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.sortable.packed.js" }
+{combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js' }
+{combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/packed/ui.sortable.packed.js' }
+{footer_script require='jquery.ui.sortable'}
+jQuery(document).ready(function(){ldelim}
+ jQuery(".catPos").hide();
+ jQuery(".drag_button").show();
+ jQuery(".categoryLi").css("cursor","move");
+ jQuery(".categoryUl").sortable({ldelim}
+ axis: "y",
+ opacity: 0.8
+ });
+ jQuery("#categoryOrdering").submit(function(){ldelim}
+ ar = jQuery('.categoryUl').sortable('toArray');
+ for(i=0;i<ar.length;i++) {ldelim}
+ cat = ar[i].split('cat_');
+ document.getElementsByName('catOrd[' + cat[1] + ']')[0].value = i;
+ }
+ });
-<script type="text/javascript">
- jQuery().ready(function(){ldelim}
- jQuery(".catPos").hide();
- jQuery(".drag_button").show();
- jQuery(".categoryLi").css("cursor","move");
- jQuery(".categoryUl").sortable({ldelim}
- axis: "y",
- opacity: 0.8
- });
- jQuery("#categoryOrdering").submit(function(){ldelim}
- ar = jQuery('.categoryUl').sortable('toArray');
- for(i=0;i<ar.length;i++) {ldelim}
- cat = ar[i].split('cat_');
- document.getElementsByName('catOrd[' + cat[1] + ']')[0].value = i;
- }
- });
-
- jQuery("input[name=order_type]").click(function () {ldelim}
- jQuery("#automatic_order_params").hide();
- if (jQuery("input[name=order_type]:checked").val() == "automatic") {ldelim}
- jQuery("#automatic_order_params").show();
- }
- });
- });
-</script>
+ jQuery("input[name=order_type]").click(function () {ldelim}
+ jQuery("#automatic_order_params").hide();
+ if (jQuery("input[name=order_type]:checked").val() == "automatic") {ldelim}
+ jQuery("#automatic_order_params").show();
+ }
+ });
+});
+{/footer_script}
<h2>{'Album list management'|@translate}</h2>
diff --git a/admin/themes/default/template/element_set_global.tpl b/admin/themes/default/template/element_set_global.tpl
index 73ec42f88..24cea87ed 100644
--- a/admin/themes/default/template/element_set_global.tpl
+++ b/admin/themes/default/template/element_set_global.tpl
@@ -1,29 +1,26 @@
{include file='include/tag_selection.inc.tpl'}
{include file='include/datepicker.inc.tpl'}
-{literal}
-<script type="text/javascript">
- pwg_initialization_datepicker("#date_creation_day", "#date_creation_month", "#date_creation_year", "#date_creation_linked_date", "#date_creation_action_set");
+{footer_script}{literal}
+ pwg_initialization_datepicker("#date_creation_day", "#date_creation_month", "#date_creation_year", "#date_creation_linked_date", "#date_creation_action_set");
</script>
-{/literal}
-
-{known_script id="jquery.fcbkcomplete" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.fcbkcomplete.js"}
-{literal}
-<script type="text/javascript">
- $(document).ready(function() {
- $("#tags").fcbkcomplete({
- json_url: "admin.php?fckb_tags=1",
- cache: false,
- filter_case: false,
- filter_hide: true,
- firstselected: true,
- filter_selected: true,
- maxitems: 100,
- newel: true
- });
- });
-</script>
-{/literal}
+{/literal}{/footer_script}
+
+{combine_script id='jquery.fcbkcomplete' load='async' require='jquery' path='themes/default/js/plugins/jquery.fcbkcomplete.js'}
+{footer_script require='jquery.fcbkcomplete'}{literal}
+jQuery(document).ready(function() {
+ jQuery("#tags").fcbkcomplete({
+ json_url: "admin.php?fckb_tags=1",
+ cache: false,
+ filter_case: false,
+ filter_hide: true,
+ firstselected: true,
+ filter_selected: true,
+ maxitems: 100,
+ newel: true
+ });
+});
+{/literal}{/footer_script}
<h2>{'Batch management'|@translate}</h2>
diff --git a/admin/themes/default/template/element_set_ranks.tpl b/admin/themes/default/template/element_set_ranks.tpl
index 8fe143eec..12dfce448 100644
--- a/admin/themes/default/template/element_set_ranks.tpl
+++ b/admin/themes/default/template/element_set_ranks.tpl
@@ -1,28 +1,20 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }
-{known_script id="jquery.ui.sortable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.sortable.packed.js" }
-{html_head}
-{literal}
-<script type="text/javascript">
- $(function() {
- $('ul.thumbnails')
- .sortable(
- { revert: true,
- opacity: 0.7,
- handle: $('.rank-of-image').add('.rank-of-image img'),
- update: function() {
- $(this).find('li').each(function(i) {
- $(this).find("input[name^=rank_of_image]")
- .each(function() { $(this).attr('value', (i+1)*10)});
- });
- $('#image_order_rank').attr('checked', true);
- }
- });
- });
-
-</script>
-{/literal}
-{/html_head}
+{combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js' }
+{combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/packed/ui.sortable.packed.js' }
+{footer_script require='jquery.ui.sortable'}{literal}
+jQuery(document).ready(function() {
+ jQuery('ul.thumbnails').sortable( {
+ revert: true, opacity: 0.7,
+ handle: $('.rank-of-image').add('.rank-of-image img'),
+ update: function() {
+ $(this).find('li').each(function(i) {
+ $(this).find("input[name^=rank_of_image]")
+ .each(function() { $(this).attr('value', (i+1)*10)});
+ });
+ $('#image_order_rank').attr('checked', true);
+ }
+ });
+});
+{/literal}{/footer_script}
<h2>{'Manage image ranks'|@translate}</h2>
diff --git a/admin/themes/default/template/element_set_unit.tpl b/admin/themes/default/template/element_set_unit.tpl
index 9f71751e4..21b521b1e 100644
--- a/admin/themes/default/template/element_set_unit.tpl
+++ b/admin/themes/default/template/element_set_unit.tpl
@@ -2,34 +2,31 @@
{include file='include/autosize.inc.tpl'}
{include file='include/datepicker.inc.tpl'}
-{known_script id="jquery.fcbkcomplete" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.fcbkcomplete.js"}
-{html_head}
-<script type="text/javascript">
- var tag_boxes_selector = "";
+{combine_script id='jquery.fcbkcomplete' load='async' require='jquery' path='themes/default/js/plugins/jquery.fcbkcomplete.js'}
+{footer_script require='jquery.fcbkcomplete'}
+var tag_boxes_selector = "";
{foreach from=$elements item=element name=element}
- {if $smarty.foreach.element.first}
- var prefix = "";
- {else}
- prefix = ", ";
- {/if}
- tag_boxes_selector = tag_boxes_selector + prefix + "#tags-" + {$element.ID};
+{if $smarty.foreach.element.first}
+var prefix = "";
+{else}
+prefix = ", ";
+{/if}
+ tag_boxes_selector = tag_boxes_selector + prefix + "#tags-" + {$element.ID};
{/foreach}
{literal}
- $(document).ready(function() {
- $(tag_boxes_selector).fcbkcomplete({
- json_url: "admin.php?fckb_tags=1",
- cache: false,
- filter_case: false,
- filter_hide: true,
- firstselected: true,
- filter_selected: true,
- maxitems: 100,
- newel: true
- });
- });
-</script>
-{/literal}
-{/html_head}
+jQuery(document).ready(function() {
+ $(tag_boxes_selector).fcbkcomplete({
+ json_url: "admin.php?fckb_tags=1",
+ cache: false,
+ filter_case: false,
+ filter_hide: true,
+ firstselected: true,
+ filter_selected: true,
+ maxitems: 100,
+ newel: true
+ });
+});
+{/literal}{/footer_script}
<h2>{'Batch management'|@translate}</h2>
@@ -96,9 +93,9 @@
maxlength="4"
value="{$element.DATE_CREATION_YEAR}">
<input id="date_creation_linked_date-{$element.ID}" name="date_creation_linked_date-{$element.ID}" type="hidden" size="10" disabled="disabled">
- <script type="text/javascript">
+ {footer_script}
pwg_initialization_datepicker("#date_creation_day-{$element.ID}", "#date_creation_month-{$element.ID}", "#date_creation_year-{$element.ID}", "#date_creation_linked_date-{$element.ID}", "#date_creation_action_set-{$element.ID}");
- </script>
+ {/footer_script}
</td>
</tr>
<tr>
diff --git a/admin/themes/default/template/footer.tpl b/admin/themes/default/template/footer.tpl
index 16491a724..ac608bef9 100644
--- a/admin/themes/default/template/footer.tpl
+++ b/admin/themes/default/template/footer.tpl
@@ -42,17 +42,25 @@
</div> <!-- footer -->
</div> <!-- the_page -->
+
+{combine_script id='jquery.tipTip' load='async' path='themes/default/js/plugins/jquery.tipTip.minified.js'}
+{footer_script require='jquery.tipTip'}
+jQuery(document).ready(function() {ldelim}
+ jQuery('#pwgHead A, #footer A, .themeActions A, .themeActions SPAN, .languageActions A, .languageActions SPAN').tipTip({ldelim}
+ 'delay' : 0,
+ 'fadeIn' : 200,
+ 'fadeOut' : 200,
+ });
+});
+{/footer_script}
+
+<!-- BEGIN get_combined_scripts -->
+{get_combined_scripts load='footer'}
+<!-- END get_combined_scripts -->
+
{literal}
<script type='text/javascript'>
- $(function() {
- $('#pwgHead A, #footer A, .themeActions A, .themeActions SPAN, .languageActions A, .languageActions SPAN').tipTip({
- 'delay' : 0,
- 'fadeIn' : 200,
- 'fadeOut' : 200,
- });
- });
-
- $(document).ready(function() {
+ jQuery(document).ready(function() {
$("a.externalLink").click(function() {
window.open($(this).attr("href"));
return false;
diff --git a/admin/themes/default/template/header.tpl b/admin/themes/default/template/header.tpl
index 566d12941..b2ef91944 100644
--- a/admin/themes/default/template/header.tpl
+++ b/admin/themes/default/template/header.tpl
@@ -21,9 +21,12 @@
{if !empty($theme.local_head)}{include file=$theme.local_head load_css=$theme.load_css}{/if}
{/foreach}
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js" now=1} {*jQuery is always available by default*}
+<!-- BEGIN get_combined_scripts -->
+{get_combined_scripts load='header'}
+<!-- END get_combined_scripts -->
+
+{combine_script id='jquery' path='themes/default/js/jquery.packed.js}
-<script type="text/javascript" src="{$ROOT_URL}themes/default/js/scripts.js"></script>
<!--[if lt IE 7]>
<script type="text/javascript" src="{$ROOT_URL}themes/default/js/pngfix.js"></script>
<![endif]-->
diff --git a/admin/themes/default/template/history.tpl b/admin/themes/default/template/history.tpl
index bca98b75e..f869e9222 100644
--- a/admin/themes/default/template/history.tpl
+++ b/admin/themes/default/template/history.tpl
@@ -1,12 +1,10 @@
{include file='include/datepicker.inc.tpl'}
-{literal}
-<script type="text/javascript">
- pwg_initialization_datepicker("#start_day", "#start_month", "#start_year", "#start_linked_date", null, null, "#end_linked_date");
- pwg_initialization_datepicker("#end_day", "#end_month", "#end_year", "#end_linked_date", null, "#start_linked_date", null);
-</script>
-{/literal}
+{footer_script}{literal}
+ pwg_initialization_datepicker("#start_day", "#start_month", "#start_year", "#start_linked_date", null, null, "#end_linked_date");
+ pwg_initialization_datepicker("#end_day", "#end_month", "#end_year", "#end_linked_date", null, "#start_linked_date", null);
+{/literal}{/footer_script}
<div class="titrePage">
<h2>{'History'|@translate} {$TABSHEET_TITLE}</h2>
diff --git a/admin/themes/default/template/include/autosize.inc.tpl b/admin/themes/default/template/include/autosize.inc.tpl
index 8f5c78c70..ea18e6d3a 100644
--- a/admin/themes/default/template/include/autosize.inc.tpl
+++ b/admin/themes/default/template/include/autosize.inc.tpl
@@ -1,13 +1,10 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.autogrow" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.autogrow-textarea.js"}
-
+{combine_script id='jquery' load='async' path='themes/default/js/jquery.packed.js'}
+{combine_script id='jquery.autogrow' load='async' require='jquery' path='themes/default/js/plugins/jquery.autogrow-textarea.js'}
{* Auto size and auto grow textarea *}
-{literal}
-<script type="text/javascript">
- jQuery().ready(function(){
- jQuery('textarea').css('overflow-y', 'hidden');
- // Auto size and auto grow for all text area
- jQuery('textarea').autogrow();
- });
-</script>
-{/literal}
+{footer_script require='jquery.autogrow'}{literal}
+jQuery(document).ready(function(){
+ jQuery('textarea').css('overflow-y', 'hidden');
+ // Auto size and auto grow for all text area
+ jQuery('textarea').autogrow();
+});
+{/literal}{/footer_script} \ No newline at end of file
diff --git a/admin/themes/default/template/include/datepicker.inc.tpl b/admin/themes/default/template/include/datepicker.inc.tpl
index d85706903..8470c8fa3 100644
--- a/admin/themes/default/template/include/datepicker.inc.tpl
+++ b/admin/themes/default/template/include/datepicker.inc.tpl
@@ -1,24 +1,23 @@
-
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
-{known_script id="jquery.ui.datepicker" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.datepicker.packed.js"}
-{known_script id="datepicker.js" src=$ROOT_URL|@cat:"themes/default/js/datepicker.js"}
+{combine_script id='jquery' load='footer' path='themes/default/js/jquery.packed.js'}
+{combine_script id='jquery.ui' load='footer' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js'}
+{combine_script id='jquery.ui.datepicker' load='footer' require='jquery.ui' path='themes/default/js/ui/packed/ui.datepicker.packed.js'}
+{combine_script id='datepicker.js' load='footer' require='jquery.ui.datepicker' path='themes/default/js/datepicker.js'}
{assign var="datepicker_language" value="themes/default/js/ui/i18n/ui.datepicker-"|@cat:$lang_info.code|@cat:".js"}
{if "PHPWG_ROOT_PATH"|@constant|@cat:$datepicker_language|@file_exists}
-{known_script id="jquery.ui.datepicker-$lang_info.code" src=$ROOT_URL|@cat:$datepicker_language}
+{combine_script id="jquery.ui.datepicker-$lang_info.code" path=$datepicker_language}
{/if}
{html_head}
<link rel="stylesheet" type="text/css" href="{$ROOT_URL}themes/default/js/ui/theme/ui.datepicker.css">
{/html_head}
-<script type="text/javascript">
+{footer_script}
function pwg_initialization_datepicker(day, month, year, linked_date, checked_on_change, min_linked_date, max_linked_date)
{ldelim}
return pwg_common_initialization_datepicker(
"{$ROOT_URL}{$themeconf.admin_icon_dir}/datepicker.png",
day, month, year, linked_date, checked_on_change, min_linked_date, max_linked_date);
-}
-</script>
+};
+{/footer_script}
diff --git a/admin/themes/default/template/include/dbselect.inc.tpl b/admin/themes/default/template/include/dbselect.inc.tpl
index 009452c1e..297cff01a 100644
--- a/admin/themes/default/template/include/dbselect.inc.tpl
+++ b/admin/themes/default/template/include/dbselect.inc.tpl
@@ -1,22 +1,18 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
-{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
-
-{* Resize possible *}
-{literal}
-<script type="text/javascript">
- jQuery().ready(function(){
- // Resize possible for double select list
- jQuery(".doubleSelect select.categoryList").resizable({
- handles: "w,e",
- animate: true,
- animateDuration: "slow",
- animateEasing: "swing",
- preventDefault: true,
- preserveCursor: true,
- autoHide: true,
- ghost: true
- });
- });
-</script>
-{/literal}
+{combine_script id='jquery' load='async' path='themes/default/js/jquery.packed.js'}
+{combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js' }
+{combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/packed/ui.resizable.packed.js' }
+{footer_script require='jquery.ui.resizable'}{literal}
+jQuery(document).ready(function(){
+ // Resize possible for double select list
+ jQuery(".doubleSelect select.categoryList").resizable({
+ handles: "w,e",
+ animate: true,
+ animateDuration: "slow",
+ animateEasing: "swing",
+ preventDefault: true,
+ preserveCursor: true,
+ autoHide: true,
+ ghost: true
+ });
+});
+{/literal}{/footer_script} \ No newline at end of file
diff --git a/admin/themes/default/template/include/resize.inc.tpl b/admin/themes/default/template/include/resize.inc.tpl
index 30a637563..b7076a752 100644
--- a/admin/themes/default/template/include/resize.inc.tpl
+++ b/admin/themes/default/template/include/resize.inc.tpl
@@ -1,10 +1,9 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
-{known_script id="jquery.ui.resizable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.resizable.packed.js"}
+{combine_script id='jquery' load='async' path='themes/default/js/jquery.packed.js'}
+{combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js'}
+{combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/packed/ui.resizable.packed.js'}
{* Resize possible *}
-{literal}
-<script type="text/javascript">
+{footer_script require='jquery.ui.resizable'}{literal}
jQuery().ready(function(){
// Resize possible for list
jQuery(".categoryList").resizable({
@@ -18,5 +17,4 @@
ghost: true
});
});
-</script>
-{/literal}
+{/literal}{/footer_script}
diff --git a/admin/themes/default/template/intro.tpl b/admin/themes/default/template/intro.tpl
index a45e581a0..b3dbfbbac 100644
--- a/admin/themes/default/template/intro.tpl
+++ b/admin/themes/default/template/intro.tpl
@@ -1,15 +1,14 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
+{combine_script id='jquery.cluetip' load='async' require='jquery' path='themes/default/js/plugins/jquery.cluetip.packed.js'}
-<script type="text/javascript">
+{footer_script require='jquery.cluetip'}
jQuery().ready(function(){ldelim}
- jQuery('.cluetip').cluetip({ldelim}
- width: 300,
- splitTitle: '|',
- positionBy: 'bottomTop'
- });
+ jQuery('.cluetip').cluetip({ldelim}
+ width: 300,
+ splitTitle: '|',
+ positionBy: 'bottomTop'
+ });
});
-</script>
+{/footer_script}
<h2>{'Piwigo administration'|@translate}</h2>
<dl style="padding-top: 30px;">
diff --git a/admin/themes/default/template/languages_new.tpl b/admin/themes/default/template/languages_new.tpl
index 9b66e1724..2e9db5f91 100644
--- a/admin/themes/default/template/languages_new.tpl
+++ b/admin/themes/default/template/languages_new.tpl
@@ -1,14 +1,13 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
+{combine_script id='jquery.cluetip' load='async' require='jquery' path='themes/default/js/plugins/jquery.cluetip.packed.js'}
-<script type="text/javascript">
+{footer_script require='jquery.cluetip'}
jQuery().ready(function(){ldelim}
- jQuery('.cluetip').cluetip({ldelim}
- width: 300,
- splitTitle: '|'
- });
+ jQuery('.cluetip').cluetip({ldelim}
+ width: 300,
+ splitTitle: '|'
+ });
});
-</script>
+{/footer_script}
<div class="titrePage">
<h2>{'Add New Language'|@translate}</h2>
diff --git a/admin/themes/default/template/menubar.tpl b/admin/themes/default/template/menubar.tpl
index 751d5de83..8886a505b 100644
--- a/admin/themes/default/template/menubar.tpl
+++ b/admin/themes/default/template/menubar.tpl
@@ -1,33 +1,31 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }
-{known_script id="jquery.ui.sortable" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.sortable.packed.js" }
-
-<script type="text/javascript">
- jQuery().ready(function(){ldelim}
- jQuery(".menuPos").hide();
- jQuery(".drag_button").show();
- jQuery(".menuLi").css("cursor","move");
- jQuery(".menuUl").sortable({ldelim}
- axis: "y",
- opacity: 0.8
- });
- jQuery("input[name^='hide_']").click(function() {ldelim}
- men = this.name.split('hide_');
- if (this.checked) {ldelim}
- jQuery("#menu_"+men[1]).addClass('menuLi_hidden');
- } else {ldelim}
- jQuery("#menu_"+men[1]).removeClass('menuLi_hidden');
- }
- });
- jQuery("#menuOrdering").submit(function(){ldelim}
- ar = jQuery('.menuUl').sortable('toArray');
- for(i=0;i<ar.length;i++) {ldelim}
- men = ar[i].split('menu_');
- document.getElementsByName('pos_' + men[1])[0].value = i+1;
- }
- });
- });
-</script>
+{combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js' }
+{combine_script id='jquery.ui.sortable' load='async' require='jquery.ui' path='themes/default/js/ui/packed/ui.sortable.packed.js' }
+{footer_script require='jquery.ui.sortable'}
+jQuery(document).ready(function(){ldelim}
+ jQuery(".menuPos").hide();
+ jQuery(".drag_button").show();
+ jQuery(".menuLi").css("cursor","move");
+ jQuery(".menuUl").sortable({ldelim}
+ axis: "y",
+ opacity: 0.8
+ });
+ jQuery("input[name^='hide_']").click(function() {ldelim}
+ men = this.name.split('hide_');
+ if (this.checked) {ldelim}
+ jQuery("#menu_"+men[1]).addClass('menuLi_hidden');
+ } else {ldelim}
+ jQuery("#menu_"+men[1]).removeClass('menuLi_hidden');
+ }
+ });
+ jQuery("#menuOrdering").submit(function(){ldelim}
+ ar = jQuery('.menuUl').sortable('toArray');
+ for(i=0;i<ar.length;i++) {ldelim}
+ men = ar[i].split('menu_');
+ document.getElementsByName('pos_' + men[1])[0].value = i+1;
+ }
+ });
+});
+{/footer_script}
<div class="titrePage">
<h2>{'Menu Management'|translate}</h2>
diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl
index f737c540c..e16cb4f2c 100644
--- a/admin/themes/default/template/photos_add_direct.tpl
+++ b/admin/themes/default/template/photos_add_direct.tpl
@@ -1,16 +1,14 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.jgrowl" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.jgrowl_minimized.js"}
+{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js' }
{if $upload_mode eq 'multiple'}
<script type="text/javascript" src="{$uploadify_path}/swfobject.js"></script>
-<script type="text/javascript" src="{$uploadify_path}/jquery.uploadify.v2.1.0.min.js"></script>
+{combine_script id='jquery.uploadify' load='footer' require='jquery' path='admin/include/uploadify/jquery.uploadify.v2.1.0.min.js' }
{/if}
{html_head}
<link rel="stylesheet" type="text/css" href="{$ROOT_URL}admin/themes/default/uploadify.jGrowl.css">
{/html_head}
-{literal}
-<script type="text/javascript">
+{footer_script}{literal}
jQuery(document).ready(function(){
function checkUploadStart() {
var nbErrors = 0;
@@ -225,7 +223,7 @@ var sizeLimit = {$upload_max_filesize};
{/literal}
{/if}
});
-</script>
+{/footer_script}
<div class="titrePage">
<h2>{'Upload Photos'|@translate}</h2>
diff --git a/admin/themes/default/template/picture_modify.tpl b/admin/themes/default/template/picture_modify.tpl
index 3d5ba4bab..ec0b14266 100644
--- a/admin/themes/default/template/picture_modify.tpl
+++ b/admin/themes/default/template/picture_modify.tpl
@@ -2,29 +2,25 @@
{include file='include/dbselect.inc.tpl'}
{include file='include/datepicker.inc.tpl'}
-{known_script id="jquery.fcbkcomplete" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.fcbkcomplete.js"}
-{literal}
-<script type="text/javascript">
- $(document).ready(function() {
- $("#tags").fcbkcomplete({
- json_url: "admin.php?fckb_tags=1",
- cache: false,
- filter_case: false,
- filter_hide: true,
- firstselected: true,
- filter_selected: true,
- maxitems: 100,
- newel: true
- });
- });
-</script>
-{/literal}
-
-{literal}
-<script type="text/javascript">
- pwg_initialization_datepicker("#date_creation_day", "#date_creation_month", "#date_creation_year", "#date_creation_linked_date", "#date_creation_action_set");
-</script>
-{/literal}
+{combine_script id='jquery.fcbkcomplete' load='async' require='jquery' path='themes/default/js/plugins/jquery.fcbkcomplete.js'}
+{footer_script require='jquery.fcbkcomplete'}{literal}
+jQuery(document).ready(function() {
+ jQuery("#tags").fcbkcomplete({
+ json_url: "admin.php?fckb_tags=1",
+ cache: false,
+ filter_case: false,
+ filter_hide: true,
+ firstselected: true,
+ filter_selected: true,
+ maxitems: 100,
+ newel: true
+ });
+});
+{/literal}{/footer_script}
+
+{footer_script}
+pwg_initialization_datepicker("#date_creation_day", "#date_creation_month", "#date_creation_year", "#date_creation_linked_date", "#date_creation_action_set");
+{/footer_script}
<h2>{'Modify informations about a picture'|@translate}</h2>
diff --git a/admin/themes/default/template/plugins_new.tpl b/admin/themes/default/template/plugins_new.tpl
index e2ed85359..6546cdc38 100644
--- a/admin/themes/default/template/plugins_new.tpl
+++ b/admin/themes/default/template/plugins_new.tpl
@@ -1,25 +1,24 @@
-{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js" }
-{known_script id="jquery.ui.effects" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/effects.core.packed.js" }
-{known_script id="jquery.ui.blind" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/effects.blind.packed.js" }
+{combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js' }
+{combine_script id='jquery.ui.effects' load='async' require='jquery.ui' path='themes/default/js/ui/packed/effects.core.packed.js' }
+{combine_script id='jquery.ui.effects.blind' load='async' require='jquery.ui.effects' path='themes/default/js/ui/packed/effects.blind.packed.js' }
-<script type="text/javascript">
-jQuery().ready(function(){ldelim}
- jQuery("td[id^='desc_']").click(function() {ldelim}
- id = this.id.split('_');
- nb_lines = jQuery("#bigdesc_"+id[1]).html().split('<br>').length;
+{footer_script require='jquery.ui.effects.blind'}
+jQuery(document).ready(function(){ldelim}
+ jQuery("td[id^='desc_']").click(function() {ldelim}
+ id = this.id.split('_');
+ nb_lines = jQuery("#bigdesc_"+id[1]).html().split('<br>').length;
- $("#smalldesc_"+id[1]).toggle('blind', 1);
- if ($(this).hasClass('bigdesc')) {ldelim}
- $("#bigdesc_"+id[1]).toggle('blind', 1);
- $(this).removeClass('bigdesc');
- } else {ldelim}
- $("#bigdesc_"+id[1]).toggle('blind', 50 + (nb_lines * 30));
- $(this).addClass('bigdesc');
- }
- return false;
- });
+ jQuery("#smalldesc_"+id[1]).toggle('blind', 1);
+ if (jQuery(this).hasClass('bigdesc')) {ldelim}
+ jQuery("#bigdesc_"+id[1]).toggle('blind', 1);
+ } else {ldelim}
+ jQuery("#bigdesc_"+id[1]).toggle('blind', 50 + (nb_lines * 30));
+ }
+ jQuery(this).toggleClass('bigdesc');
+ return false;
+ });
});
-</script>
+{/footer_script}
<div class="titrePage">
<span class="sort">
diff --git a/admin/themes/default/template/plugins_update.tpl b/admin/themes/default/template/plugins_update.tpl
index 14d5aabb9..2304db112 100644
--- a/admin/themes/default/template/plugins_update.tpl
+++ b/admin/themes/default/template/plugins_update.tpl
@@ -1,14 +1,12 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.cluetip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.cluetip.packed.js"}
-
-<script type="text/javascript">
+{combine_script id='jquery.cluetip' load='async' require='jquery' path='themes/default/js/plugins/jquery.cluetip.packed.js'}
+{footer_script require='jquery.cluetip'}
jQuery().ready(function(){ldelim}
- jQuery('.cluetip').cluetip({ldelim}
- width: 300,
- splitTitle: '|'
- });
+ jQuery('.cluetip').cluetip({ldelim}
+ width: 300,
+ splitTitle: '|'
+ });
});
-</script>
+{/footer_script}
<div class="titrePage">
<h2>{'Plugins'|@translate}</h2>
diff --git a/admin/themes/default/template/popuphelp.tpl b/admin/themes/default/template/popuphelp.tpl
index 718617baf..950e3ca0e 100644
--- a/admin/themes/default/template/popuphelp.tpl
+++ b/admin/themes/default/template/popuphelp.tpl
@@ -1,5 +1,3 @@
-{known_script id="jquery.tipTip" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.tipTip.minified.js" }
-
<div id="content" class="content">
{$HELP_CONTENT}
</div> <!-- content -->
diff --git a/include/template.class.php b/include/template.class.php
index dcfc2d527..c1bdc67fa 100644
--- a/include/template.class.php
+++ b/include/template.class.php
@@ -45,11 +45,10 @@ class Template {
const COMBINED_SCRIPTS_TAG = '<!-- COMBINED_SCRIPTS -->';
var $scriptLoader;
- var $html_footer_raw_script = array();
const COMBINED_CSS_TAG = '<!-- COMBINED_CSS -->';
var $css_by_priority = array();
-
+
function Template($root = ".", $theme= "", $path = "template")
{
global $conf, $lang_info;
@@ -79,7 +78,7 @@ class Template {
conf_update_param('local_data_dir_checked', 'true');
}
}
-
+
$compile_dir = $conf['local_data_dir'].'/templates_c';
mkgetdir( $compile_dir );
@@ -187,6 +186,7 @@ class Template {
$this->smarty->clear_compiled_tpl();
$this->smarty->compile_id = $save_compile_id;
file_put_contents($this->smarty->compile_dir.'/index.htm', 'Not allowed!');
+ FileCombiner::clear_combined_files();
}
function get_themeconf($val)
@@ -407,7 +407,7 @@ class Template {
$this->output = substr_replace( $this->output, "\n".implode( "\n", $content ), $pos, strlen(self::COMBINED_SCRIPTS_TAG) );
} //else maybe error or warning ?
}
-
+
if(!empty($this->css_by_priority))
{
ksort($this->css_by_priority);
@@ -528,7 +528,7 @@ class Template {
$this->block_html_head(null, $content, $smarty, $repeat);
}
}
-
+
function func_combine_script($params, &$smarty)
{
if (!isset($params['id']))
@@ -546,9 +546,9 @@ class Template {
default: $smarty->trigger_error("combine_script: invalid 'load' parameter", E_USER_ERROR);
}
}
- $this->scriptLoader->add( $params['id'], $load,
- empty($params['require']) ? array() : explode( ',', $params['require'] ),
- @$params['path'],
+ $this->scriptLoader->add( $params['id'], $load,
+ empty($params['require']) ? array() : explode( ',', $params['require'] ),
+ @$params['path'],
isset($params['version']) ? $params['version'] : 0 );
}
@@ -561,7 +561,7 @@ class Template {
}
$load = $params['load']=='header' ? 0 : 1;
$content = array();
-
+
if ($load==0)
{
return self::COMBINED_SCRIPTS_TAG;
@@ -578,10 +578,10 @@ class Template {
. Template::make_script_src($script)
.'"></script>';
}
- if (count($this->html_footer_raw_script))
+ if (count($this->scriptLoader->inline_scripts))
{
$content[]= '<script type="text/javascript">';
- $content = array_merge($content, $this->html_footer_raw_script);
+ $content = array_merge($content, $this->scriptLoader->inline_scripts);
$content[]= '</script>';
}
@@ -628,10 +628,10 @@ class Template {
$content = trim($content);
if ( !empty($content) )
{ // second call
- $this->html_footer_raw_script[] = $content;
+ $this->scriptLoader->add_inline( $content, @$params['require'] );
}
}
-
+
function func_combine_css($params, &$smarty)
{
!empty($params['path']) || fatal_error('combine_css missing path');
@@ -841,6 +841,11 @@ final class Script
if (!empty($path))
$this->path = $path;
}
+
+ function is_remote()
+ {
+ return url_is_remote( $this->path );
+ }
}
@@ -849,7 +854,11 @@ and later on by combining them in a unique file respecting at the same time depe
class ScriptLoader
{
private $registered_scripts;
+ public $inline_scripts;
+
private $did_head;
+ private $head_done_scripts;
+
private static $known_paths = array(
'core.scripts' => 'themes/default/js/scripts.js',
'jquery' => 'themes/default/js/jquery.min.js',
@@ -864,9 +873,24 @@ class ScriptLoader
function clear()
{
$this->registered_scripts = array();
+ $this->inline_scripts = array();
+ $this->head_done_scripts = array();
$this->did_head = false;
}
+ function add_inline($code, $require)
+ {
+ if(!empty($require))
+ {
+ if(!isset($this->registered_scripts[$require]))
+ fatal_error("inline script not found require $require");
+ $s = $this->registered_scripts[$require];
+ if($s->load_mode==2)
+ $s->load_mode=1; // until now the implementation does not allow executing inline script depending on another async script
+ }
+ $this->inline_scripts[] = $code;
+ }
+
function add($id, $load_mode, $require, $path, $version=0)
{
if ($this->did_head && $load_mode==0 )
@@ -899,50 +923,9 @@ class ScriptLoader
return $this->did_head;
}
- private static function fill_well_known($id, $script)
- {
- if ( empty($script->path) && isset(self::$known_paths[$id]))
- {
- $script->path = self::$known_paths[$id];
- }
- if ( strncmp($id, 'jquery.', 7)==0 )
- {
- if ( !in_array('jquery', $script->precedents ) )
- $script->precedents[] = 'jquery';
- if ( strncmp($id, 'jquery.ui.', 10)==0 && !in_array('jquery.ui', $script->precedents ) )
- $script->precedents[] = 'jquery.ui';
- }
- }
-
function get_head_scripts()
{
- do
- {
- $changed = false;
- foreach( $this->registered_scripts as $id => $script)
- {
- $load = $script->load_mode;
- if ($load==0)
- continue;
- if ($load==2)
- $load=1; // we are async -> a predecessor cannot be async because the script execution order is not guaranteed
- foreach( $script->precedents as $precedent)
- {
- if ( !isset($this->registered_scripts[$precedent] ) )
- {
- trigger_error("Script $id requires undefined script $precedent", E_USER_WARNING);
- continue;
- }
- if ( $this->registered_scripts[$precedent]->load_mode > $load )
- {
- $this->registered_scripts[$precedent]->load_mode = $load;
- $changed = true;
- }
- }
- }
- }
- while ($changed);
-
+ self::check_load_dep($this->registered_scripts);
foreach( array_keys($this->registered_scripts) as $id )
{
$this->compute_script_topological_order($id);
@@ -950,40 +933,94 @@ class ScriptLoader
uasort($this->registered_scripts, array('ScriptLoader', 'cmp_by_mode_and_order'));
- $result = array();
foreach( $this->registered_scripts as $id => $script)
{
if ($script->load_mode > 0)
break;
if ( !empty($script->path) )
- $result[$id] = $script;
+ $this->head_done_scripts[$id] = $script;
else
trigger_error("Script $id has an undefined path", E_USER_WARNING);
}
$this->did_head = true;
- return $result;
+ return $this->head_done_scripts;
}
function get_footer_scripts()
{
if (!$this->did_head)
{
- trigger_error("Attempt to write footer scripts without header scripts", E_USER_WARNING);
+ trigger_error("Attempt to write footer scripts without header scripts", E_USER_ERROR );
}
- $result = array( array(), array() );
+
+ $todo = array();
foreach( $this->registered_scripts as $id => $script)
{
- if ($script->load_mode > 0)
+ if (!isset($this->head_done_scripts[$id]))
+ {
+ $todo[$id] = $script;
+ }
+ }
+ foreach( array_keys($todo) as $id )
+ {
+ $this->compute_script_topological_order($id);
+ }
+
+ uasort($todo, array('ScriptLoader', 'cmp_by_mode_and_order'));
+
+
+ $result = array( array(), array() );
+ foreach( $todo as $id => $script)
+ {
+ $result[$script->load_mode-1][$id] = $script;
+ }
+ return $result;
+ }
+
+ private static function check_load_dep($scripts)
+ {
+ do
+ {
+ $changed = false;
+ foreach( $scripts as $id => $script)
{
- if ( !empty( $script->path ) )
+ $load = $script->load_mode;
+ if ($load==0)
+ continue;
+ foreach( $script->precedents as $precedent)
{
- $result[$script->load_mode-1][$id] = $script;
+ if ( !isset($scripts[$precedent] ) )
+ continue;
+ if ( $scripts[$precedent]->load_mode > $load )
+ {
+ $scripts[$precedent]->load_mode = $load;
+ $changed = true;
+ }
+ if ($load==2 && $scripts[$precedent]->load_mode==2 && $script->is_remote() )
+ {// we are async -> a predecessor cannot be async unlesss it can be merged; otherwise script execution order is not guaranteed
+ $scripts[$precedent]->load_mode = 1;
+ $changed = true;
+ }
}
- else
- trigger_error("Script $id has an undefined path", E_USER_WARNING);
}
}
- return $result;
+ while ($changed);
+ }
+
+
+ private static function fill_well_known($id, $script)
+ {
+ if ( empty($script->path) && isset(self::$known_paths[$id]))
+ {
+ $script->path = self::$known_paths[$id];
+ }
+ if ( strncmp($id, 'jquery.', 7)==0 )
+ {
+ if ( !in_array('jquery', $script->precedents ) )
+ $script->precedents[] = 'jquery';
+ if ( strncmp($id, 'jquery.ui.', 10)==0 && !in_array('jquery.ui', $script->precedents ) )
+ $script->precedents[] = 'jquery.ui';
+ }
}
private function compute_script_topological_order($script_id)
@@ -1008,9 +1045,16 @@ class ScriptLoader
private static function cmp_by_mode_and_order($s1, $s2)
{
$ret = $s1->load_mode - $s2->load_mode;
- if (!$ret)
- $ret = $s1->extra['order'] - $s2->extra['order'];
- return $ret;
+ if ($ret) return $ret;
+
+ $ret = $s1->extra['order'] - $s2->extra['order'];
+ if ($ret) return $ret;
+
+ if ($s1->extra['order']==0 and ($s1->is_remote() xor $s2->is_remote()) )
+ {
+ return $s1->is_remote() ? -1 : 1;
+ }
+ return strcmp($s1->id,$s2->id);
}
}
@@ -1027,6 +1071,17 @@ final class FileCombiner
{
$this->type = $type;
}
+
+ static function clear_combined_files()
+ {
+ $dir = opendir(PHPWG_ROOT_PATH.self::OUT_SUB_DIR);
+ while ($file = readdir($dir))
+ {
+ if ( get_extension($file)=='js' || get_extension($file)=='css')
+ unlink(PHPWG_ROOT_PATH.self::OUT_SUB_DIR.$file);
+ }
+ closedir($dir);
+ }
function add($file, $version)
{
@@ -1077,8 +1132,7 @@ final class FileCombiner
}
$output = '';
- if ($conf['debug_template'])
- $output .= "/*".join("\n", $this->files)."*/\n";
+ $output .= "/* ".count($this->files)."\n".join("\n", $this->files)."*/\n";
foreach ($this->files as $input_file)
{
$output .= "/* BEGIN $input_file */\n";
@@ -1132,4 +1186,4 @@ final class FileCombiner
}
}
-?>
+?> \ No newline at end of file
diff --git a/profile.php b/profile.php
index 547fc8ba1..160b649fd 100644
--- a/profile.php
+++ b/profile.php
@@ -84,7 +84,7 @@ SELECT '.implode(',', $fields).'
}
$template->set_filename('profile', 'profile.tpl');
trigger_action('loc_end_profile');
- $template->parse('profile');
+ $template->pparse('profile');
include(PHPWG_ROOT_PATH.'include/page_tail.php');
}
diff --git a/themes/default/template/header.tpl b/themes/default/template/header.tpl
index 45152d206..5dc51f97b 100644
--- a/themes/default/template/header.tpl
+++ b/themes/default/template/header.tpl
@@ -30,9 +30,7 @@
{if isset($last.U_IMG) }<link rel="last" title="{'Last'|@translate}" href="{$last.U_IMG}" >{/if}
{if isset($U_UP) }<link rel="up" title="{'Thumbnails'|@translate}" href="{$U_UP}" >{/if}
-
{get_combined_css}
-
{foreach from=$themes item=theme}
{if $theme.load_css}
{combine_css path="themes/`$theme.id`/theme.css" order=-10}
diff --git a/themes/default/template/include/autosize.inc.tpl b/themes/default/template/include/autosize.inc.tpl
index 8f5c78c70..ea18e6d3a 100644
--- a/themes/default/template/include/autosize.inc.tpl
+++ b/themes/default/template/include/autosize.inc.tpl
@@ -1,13 +1,10 @@
-{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
-{known_script id="jquery.autogrow" src=$ROOT_URL|@cat:"themes/default/js/plugins/jquery.autogrow-textarea.js"}
-
+{combine_script id='jquery' load='async' path='themes/default/js/jquery.packed.js'}
+{combine_script id='jquery.autogrow' load='async' require='jquery' path='themes/default/js/plugins/jquery.autogrow-textarea.js'}
{* Auto size and auto grow textarea *}
-{literal}
-<script type="text/javascript">
- jQuery().ready(function(){
- jQuery('textarea').css('overflow-y', 'hidden');
- // Auto size and auto grow for all text area
- jQuery('textarea').autogrow();
- });
-</script>
-{/literal}
+{footer_script require='jquery.autogrow'}{literal}
+jQuery(document).ready(function(){
+ jQuery('textarea').css('overflow-y', 'hidden');
+ // Auto size and auto grow for all text area
+ jQuery('textarea').autogrow();
+});
+{/literal}{/footer_script} \ No newline at end of file
diff --git a/themes/default/template/include/resize.inc.tpl b/themes/default/template/include/resize.inc.tpl
index 5165f49a5..b7076a752 100644
--- a/themes/default/template/include/resize.inc.tpl
+++ b/themes/default/template/include/resize.inc.tpl
@@ -1,9 +1,9 @@
-{combine_script id='jquery' load='footer' path='themes/default/js/jquery.packed.js'}
-{combine_script id='jquery.ui' load='footer' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js'}
-{combine_script id='jquery.ui.resizable' load='footer' require='jquery.ui' path='themes/default/js/ui/packed/ui.resizable.packed.js'}
+{combine_script id='jquery' load='async' path='themes/default/js/jquery.packed.js'}
+{combine_script id='jquery.ui' load='async' require='jquery' path='themes/default/js/ui/packed/ui.core.packed.js'}
+{combine_script id='jquery.ui.resizable' load='async' require='jquery.ui' path='themes/default/js/ui/packed/ui.resizable.packed.js'}
{* Resize possible *}
-{footer_script}{literal}
+{footer_script require='jquery.ui.resizable'}{literal}
jQuery().ready(function(){
// Resize possible for list
jQuery(".categoryList").resizable({
@@ -18,4 +18,3 @@
});
});
{/literal}{/footer_script}
-