Jawaban:
Anda dapat mengurutkan urutan skin
atau js
file di layout.xml dengan menggunakan elemen params dengan atribut nama seperti jawaban ini menjelaskan: -
<action method="addJs"><!-- this will be shown second -->
<script>prototype/javascript1.js</script>
<params><![CDATA[name="js002_second"]]></params>
</action>
<action method="addJs"><!-- this will be shown first -->
<script>prototype/javascript2.js</script>
<params><![CDATA[name="js001_first"]]></params>
</action>
<params><![CDATA[name="zjs_last"]]></params>
dan lihat apa yang terjadi (saya tidak 100% yakin). Laporkan kembali jika itu tidak memuat setelah semua yang lain.
Saya tidak berpikir Anda dapat menentukan urutan pengurutan untuk file js yang Anda tambahkan (tampaknya Anda dapat melihat jawaban yang diberikan oleh @zigojacko), tetapi saya pikir Anda dapat melakukannya sedikit berbeda, membeli menambahkan blok anak ke head
blok.
Semua anak-anak head
blok diberikan setelah elemen js dan css.
Inilah yang Anda butuhkan.
Tambahkan ini ke salah satu file tata letak Anda.
<reference name="head">
<block type="core/template" name="fancy" as="fancy" template="fancybox/fancybox.phtml" />
</reference>
Kemudian buat file app/design/frontend/{package}/{theme}/template/fancybox/fancybox.phtml
dengan konten berikut.
<script type="text/javascript" src="<?php echo Mage::getBaseUrl('js').'/fancybox.js'?>"></script>
Saya tahu pertanyaan ini sudah lama, tetapi di sini adalah cara sederhana untuk memesan file aset Anda menggunakan modul kustom sederhana (diuji):
membuat
app/etc/modules/Company_ReorderAssets.xml
dan masukkan:
<?xml version="1.0"?>
<config>
<modules>
<Company_ReorderAssets>
<active>true</active>
<codePool>local</codePool>
</Company_ReorderAssets>
</modules>
</config>
buat app/code/local/Company/ReorderAssets/etc/config.xml
dan masukkan:
<?xml version="1.0"?>
<config>
<modules>
<Company_ReorderAssets>
<version>1.0.0</version>
</Company_ReorderAssets>
</modules>
<global>
<blocks>
<class>Company_ReorderAssets_Block</class>
<page>
<rewrite>
<html_head>Company_ReorderAssets_Block_Page_Html_Head</html_head>
</rewrite>
</page>
</blocks>
</global>
</config>
buat ReorderAssets/Block/Page/Html/Head.php
dan masukkan:
<?php
class Company_ReorderAssets_Block_Page_Html_Head extends Mage_Page_Block_Html_Head {
public function addItemFirst($type, $name, $params = null, $if = null, $cond = null) {
if ($type === 'skin_css' && empty($params)) {
$params = 'media="all"';
}
$firstElement = array();
$firstElement[$type . '/' . $name] = array(
'type' => $type,
'name' => $name,
'params' => $params,
'if' => $if,
'cond' => $cond,
);
$this->_data['items'] = array_merge($firstElement, $this->_data['items']);
return $this;
}
public function addItemAfter($after, $type, $name, $params = null, $if = null, $cond = null) {
if ($type === 'skin_css' && empty($params)) {
$params = 'media="all"';
}
$firstElement = array();
$firstElement[$type . '/' . $name] = array(
'type' => $type,
'name' => $name,
'params' => $params,
'if' => $if,
'cond' => $cond,
);
if (array_key_exists($after, $this->_data['items'])){
$pos = 1;
foreach ($this->_data['items'] as $key => $options){
if ($key == $after) :
break;
endif;
$pos +=1;
}
array_splice($this->_data['items'], $pos, 0, $firstElement);
}
return $this;
}
}
Di sini kita membuat fungsi kita addItemFirst
dan addItemAfter
itu bisa digunakan seperti ini (di dalam sembarang layout.xml).
Contoh layout.xml:
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="head">
<action method="addItemFirst"><type>skin_js</type><script>js/jquery.js</script></action>
<action method="addItemAfter">
<after>skin_js/js/jquery.js</after>
<type>skin_js</type>
<script>custom_folder/javascript.js</script>
</action>
<action method="addItemAfter">
<after>skin_js/js/jquery.js</after>
<type>skin_js</type>
<script>custom_folder/another_javascript.js</script>
</action>
</reference>
</default>
</layout>
Harap perhatikan skin_js di dalam jalur Anda.
Terima kasih khusus kepada Koncz Szabolcs.