memindahkan kode file .js eksternal modul ke file templat [phtml]

8

Kami memiliki modul khusus dengan kode di bawah ini

app/design/frontend/rwd/Theme1/layout/aitcg.xml

<action method="addJs"><script>aitoc/aitcg/Aitcg/View/Abstract.js</script></action>

Karena kita tidak dapat menggunakan kode php dalam file .JS ini , apakah ada cara kita dapat memindahkan kode dari Abstract.jsfile ke beberapa .phtmlfile?

Edit

Saya mengikuti jawaban Raphael & mengubah kode seperti di sini:

<block type="aitcg/template" name="aitcg_js_styles1" template="aitcg/js_styles1.phtml" /> 

tapi tetap saja hasil file Abstract.Js tidak ditampilkan di js_styles1.phtml

file tata letak : http://pastebin.com/BZGRaiDH

js_styles1.phtml : http://pastebin.com/m85q9eMh

saya mencoba tombol klik = onclick="setproductlogin('<?php echo $_product->getEntityId()?>');setrequestlogin();"tapi ini tidak berfungsi dalam file .JS, jadi hanya saya mencoba untuk menyalin kode .js ke kode .php.

<script>

_getControlPanelHtml: function()
    {
        if (this.config.editorEnabled) {
            return '<div id="aitcg-control-panel">' +
                '<button  id="submit-editorApply-{{rand}}" onclick="setproductlogin('<?php echo $_product->getEntityId()?>');setrequestlogin();">SAVE DESIGN</button>' +
                '<button  id="submit-editorReset-{{rand}}" >{{reset_text}}</button>' +
                '</div>';
        }
        return '';
    },

    </script>

ketika saya memeriksa petunjuk jalur template, ini memuat file phtml, tetapi hasil kode JS tidak ditampilkan di frontend. tetapi hasil kode html, php, js lainnya ditampilkan .....

menghibur

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Apakah kita perlu memuat perpustakaan js eksternal jika demikian bagaimana menemukan itu?

Edit2

Saya mencoba kode di bawah ini dalam file js_styles1.phtml, tetapi masih tidak berfungsi

<script type="text/javascript" src="http://sbdev2.kidsdial.com:81/js/aitoc/aitcg/Aitcg/View/Abstract.js"></script>
Baby di Magento
sumber
saya akan memberikan 50 poin hadiah jika itu berhasil untuk saya .....
Baby in Magento
Kode php apa yang ingin Anda gunakan dalam file js Anda? Anda dapat menggunakan kode javascript untuk melakukan hal yang sama dengan kode php.
Neha Raval
@NehaRaval saya ingin menampilkan pop up jika tamu mengklik tombol & saya tidak ingin menampilkan pop up pengguna terdaftar mengklik tombol itu.
Bayi di Magento

Jawaban:

1

Pastikan itu <?php echo $this->getChildHtml() ?>dipanggil pada Anda head.phtml.

Jika kode ini tidak keluar maka Anda perlu menambahkan kode ini di head.phtml

Memperbarui

Anda mendapatkan masalah karena

Ketergantungan Js pada satu file js ke file js lainnya

Di sini aitoc / aitcg / Aitcg / View / Popup.js, aitoc / aitcg / Aitcg / View / Gallery.js , dll tergantung pada kode js dari aitcg / js_styles.phtml

Seperti yang telah Anda letakkan Abstract.js ini di js_styles.phtml dan inijs file properly have calling after

    aitoc/aitcg/Aitcg/View/Popup.js
    aitoc/aitcg/Aitcg/View/Gallery.js
    aitoc/aitcg/Aitcg/View/Gallery_Rwd.js
    aitoc/aitcg/Aitcg/Editor/Canvas/Abstract.js
    aitoc/aitcg/Aitcg/Editor/Canvas.js
    aitoc/aitcg/Aitcg/Editor/Canvas/Mirror.js
    .....
   ...
    aitoc/aitcg/raphael.js
    aitoc/aitcg/jscolor/jscolor.js
    aitoc/aitcg/rgbcolor.js
    aitoc/aitcg/canvg.js

Itu berarti semua file js dari aitoc tidak mendapatkan properly of js_styles.phtml karena kode js ini setelah semua file js aitoc.

Larutan:

Hapus semua file js dari penangan tata letak Aitoc<catalog_product_view>

dan panggil mereka semua js fils di js_styles.phtml secara manual kode

<!--  code of aitoc/aitcg/Aitcg/View/Abstract.js -->

....
<!--  end of aitoc/aitcg/Aitcg/View/Abstract.js -->


<?php
/* check current page is product */
if(Mage::app()->getFrontController()->getAction()->getFullActionName() =='catalog_product_view'){  ?>

<script type="text/javascript" src="<?php echo $this->getJsUrl('aitoc/aitcg/Aitcg/View/Popup.js')?>"></script>
<script type="text/javascript" src="<?php echo $this->getJsUrl('aitoc/aitcg/Aitcg/View/Gallery.js')?>"></script>
....
<script type="text/javascript" src="<?php echo $this->getJsUrl('aitoc/aitcg/Aitcg/AreaEditor.js')?>"></script>
<script type="text/javascript" src="<?php echo $this->getJsUrl('aitoc/aitcg/raphael.js')?>"></script>
...
<script type="text/javascript" src="<?php echo $this->getJsUrl('aitoc/aitcg/canvg.js')?>"></script>
<?php } ?>
Amit Bera
sumber
ya, <?php echo $this->getChildHtml() ?>kode ada di file head.phtml .....
Baby in Magento
kami juga menambahkan kode ini di view.phtml:<?php echo $this->getChildHtml('aitcg_js_styles1'); ?>
Baby in Magento
Terima kasih atas waktu & dukungan Anda yang tak ternilai, ini bekerja dengan sangat baik ...... saya akan menghadiahkan hadiah kepada Anda ......
Baby in Magento
2

Anda bisa menggunakan file phtml sebagai gantinya dengan mengganti:

<action method="addJs"><script>aitoc/aitcg/Aitcg/View/Abstract.js</script></action>

Dengan:

<block type="core/template" name="custom.js" template="my/custom/template.phtml" />

Kemudian pindahkan JS Anda di file phtml itu dan atur dengan modifikasi PHP Anda.

Raphael di Digital Pianism
sumber
Terima kasih, senang melihat jawaban Anda untuk pertanyaan saya lagi .... Saya mengikuti jawaban Anda & diganti action codedengan block codeseperti di sini :,<block type="aitcg/template" name="aitcg_js_styles1" template="aitcg/js_styles1.phtml" /> tetapi ini tidak menampilkan hasil .js file - upload image & add text buttons are missingseperti pada link1 , sebelum tautan tersebut ditampilkan sebagai link2 , kode: `js_styles1. phtml: pastebin.com/YhgmvCMx . dimana saya melakukan kesalahan?
Baby in Magento
di sini adalah file layout.xml: pastebin.com/dbu9thPE , silakan periksa sekali .....
Baby in Magento
Saya dapat melihat tombol "unggah gambar" dan "tambahkan teks" di kedua tautan, dan berbagai kesalahan di konsol. Sudahkah Anda menyelesaikannya?
nuovecode
1

karena saya mengerti pertanyaan Anda, Anda ingin menyalin kode js Anda di phtml

jadi, ikuti langkah-langkah di bawah ini

karena Anda sudah membuat file PHTML dan rendernya di frontend

pertama-tama komentar / hapus kode XML untuk rendering JS.

Salin kode JS ke file PHTML dalam skrip TAG

misalnya

<script>
 your js file code here 
</script> 
Murtuza Zabuawala
sumber
terima kasih, ya saya salin kode javascript hadir dalam file .js ke file phtml ..... tapi itu memberi saya kesalahan konsol
Baby in Magento
Pertama, cukup salin tempelkan kode js dan periksa apakah berfungsi dan kemudian modifikasi kodenya
Murtuza Zabuawala
ketika saya menyalin kode js ke kode phtml, saya tidak dapat melihat hasil apa pun dari kode .js - "unggah gambar dan tambahkan tombol teks" hilang setelah saya menyalin kode
Baby in Magento
tambahkan file phtml Anda di kepala
Murtuza Zabuawala
Anda mendapatkan kesalahan ini karena file js Anda ada di dalam tubuh
Murtuza Zabuawala
1

Hapus java aktual yang Anda sisipkan dari file kepala.

Tempel salah satunya ke kepala file phtml Anda, tergantung di mana file js Anda berada.

Jika terletak di file dasar js Magento gunakan ini:

<script src="<?php echo  Mage::getBaseUrl(); ?>aitoc/aitcg/Aitcg/View/Abstract.js" type="text/javascript"></script>

atau jika ada di folder js skin Anda gunakan ini:

<script src="<?php echo $this->getSkinUrl(); ?>js/aitoc/aitcg/Aitcg/View/Abstract.js" type="text/javascript"></script>
LNGLA
sumber
saya mencoba solusi Anda, tetapi masih menampilkan kesalahan konsol seperti yang diposting dalam pertanyaan .....
Baby in Magento
1

Untuk mencapai ini, Anda bisa meneruskan variabel kode PHP ke kode JS Anda menggunakan variabel config. Tambahkan baris di bawah ini ke aplikasi file / desain / frontend / rwd / Theme1 / template / aitcg / view / options / ‌ type / cgfile.phtml

isUserLoggedIn : '<?php echo (Mage::getSingleton('customer/session')->isLoggedIn())? "true": "false"; ?>',

setelah baris,

jsUrl: '<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS);?>',  
editorEnabled: true,

Sekarang Anda dapat menggunakan variabel ini isUserLoggedInuntuk memeriksa apakah pengguna masuk atau tidak dalam kode JS Anda.
Perbarui fungsi JS Anda initObservers, dari

initObservers: function() 
{ 
if (this.config.editorEnabled) { 
$('submit-editorApply-' + this.config.rand).observe('click', this.submitApply.bindAsEventListener(this)); 
$('submit-editorReset-' + this.config.rand).observe('click', this.submitReset.bindAsEventListener(this)); 
} 
},

untuk

initObservers: function() 
{ 
if (this.config.editorEnabled && this.config.isUserLoggedIn == 'true') { 
$('submit-editorApply-' + this.config.rand).observe('click', this.submitApply.bindAsEventListener(this)); 
$('submit-editorReset-' + this.config.rand).observe('click', this.submitReset.bindAsEventListener(this)); 
} 
},

Sekarang ketika pengguna tamu akan mengklik tombol "Simpan Desain", desain tidak akan menyimpan dan itu akan membuka popup login Anda yang Anda gunakan dalam kode Anda,

<div onclick="return setproductlogin(\'<?php echo Mage::registry("current_product")->getId()?>\');setrequestlogin();"> 
<button class="button btn-cart">Save design</button> 
</div>
Jaimin Sutariya
sumber