Saya memiliki pekerjaan baru di mana saya benar-benar mengerjakan Magento setiap hari sekarang. Saya tidak memiliki pengalaman sebelumnya dengan Magento sehingga menjadi tantangan untuk mengatakan yang paling tidak sejauh ini!
Izinkan saya menjelaskan secara singkat ekstensi yang kami bangun.
Ini akan memungkinkan kita untuk menampilkan jendela Popup / Modal. Konten HTML Modal akan disimpan dalam
aStatic Block
HALAMAN ADMIN
Jadi panel Admin terdiri dari Tab baru di bawah System/Confuration/
TAB BARU
Panel admin memungkinkan Anda untuk memilih dalam daftar tarik turun pada TAB HALAMAN BARU yang Static Block
akan digunakan untuk bagian-bagian ini ...
HOME PAGE
atau HOME PAGE w/Items in Shopping Cart
ALL CATEGORY PAGES
atau ALL CATEGORY PAGES w/Items in Shopping Cart
ALL PRODUCTS PAGES
atau ALL PRODUCTS PAGES w/Items in Shopping Cart
ALL CMS PAGES
atau ALL CMS PAGES w/Items in Shopping Cart
SHOPPING CART PAGE
atau SHOPPING CART PAGE w/Items in Shopping Cart
DEFAULT OVER-RIDES
Berikutnya halaman CMS , CATEGORY , dan PRODUCT yang sebenarnya semuanya memungkinkan pengaturan yang sama dengan yang dimiliki halaman Panel Admin, kecuali jika mereka memungkinkan Anda untuk mengatur STATIC BLOCK
per-item berdasarkan dan menunggangi pengaturan default yang kami miliki dalam pengaturan admin di atas .
Sejauh ini kami memiliki sisi admin ekstensi dilakukan. Kami memiliki semua tab admin untuk setiap bagian ... produk, kategori, CMS, dan halaman Konfigurasi.
Langkah selanjutnya adalah menambahkan ekstensi yang sama dan membuat Static Block
sisipan ke halaman. Ini Static Block
akan bertanggung jawab untuk ... Menampilkan yang benar Static Block
pada setiap halaman berdasarkan pada pengaturan yang ditetapkan dalam bidang yang disebutkan di atas .....
- Menentukan halaman tempat kita berada, dan tipe halaman (cms, produk, rumah, kategori)
- Maka harus membaca semua pengaturan kustom yang ditetapkan di daerah yang disebutkan di atas.
- Jika ditentukan kita berada di
Category
halaman, maka kita harus mendapatkan Kategori spesifik yang sebenarnya. Sebagai contohCategory 3
. Kami kemudian akan melihat apakah ada pengaturan khusus untuk kategori tertentu. Jika dikatakanEnabled
kita akan mencari yangStatic Block
disimpan untuk kategori itu dan menunjukkannya diStatic Block
halaman utama kita ! - Jika Kategori Khusus di atas diatur
Disabled
untuk kamiModal Window
maka kami akan mencari lebih tinggi di pengaturan yang lebih global untuk Modal dan melihat apakah Modal Diaktifkan untuk semua kategori. Jika ya, maka kita akan melihat yangStatic Block
diatur untuk ditampilkan ke semua kategori. - Selain semua ini, ia akan melakukan proses ini untuk masing-masing jenis halaman utama (produk, kategori, cms, rumah, keranjang)
- Kami juga harus memeriksa apakah keranjang belanja kosong atau tidak. JIKA tidak kosong ... maka kita harus mempertimbangkan itu di atas ketika wqe memeriksa mana yang
Static Block
akan ditampilkan untuk halaman itu karena setiap pengaturan memungkinkan untukStatic Block
diatur ke keranjang kosong dan 1 untuk keranjang tidak kosong! (Saya tahu ini adalah pekerjaan besar dan sulit, tetapi kami memiliki sisi admin yang paling banyak dilakukan. Hanya perlu melakukan bagian yang memperhitungkan semua itu dalam menentukan mana yangStatic Block
akan ditampilkan pada halaman tertentu.
Jadi untuk mendapatkan saya ke arah yang benar saya punya beberapa pertanyaan kecil ...
- Bagaimana saya bisa di dalam
Static Block
kode saya (bagian PHP) menentukan TIPE HALAMAN yang saya gunakan . Seperti yang saya sebutkan saya perlu tahu apakah saya sedang .... HOME HALAMAN , HALAMAN CMS , HALAMAN KATEGORI , HALAMAN PRODUK , atau HALAMAN BELANJA BELANJA ? - Selain TIPE HALAMAN saya perlu mendapatkan halaman yang sebenarnya. Jadi jika saya menggunakan id Produk 1234 maka saya harus bisa mendapatkan pengaturan (set blok statis untuk halaman itu) untuk halaman tertentu.
Saya tahu ini posting yang panjang dan mungkin membingungkan. Jika Anda sejauh ini, terima kasih telah meluangkan waktu Anda untuk membaca ini =)
Jika Anda dapat membantu dengan pertanyaan saya, setiap potongan kecil akan membuat saya lebih dekat ke tujuan akhir
Di bawah ini adalah diagram alir yang saya buat tentang bagaimana modul saya perlu bekerja untuk menentukan blok statis mana yang akan dimasukkan ke halaman
sumber
Mage_Widget
modul, bukan?Mage_Widget
? Saya perlu melihat itu jugaJawaban:
Selain jawaban @benmarks :
Berikut adalah sedikit kode untuk memeriksa beberapa kondisi yang Anda sebutkan:
Untuk memeriksa apakah troli kosong atau tidak digunakan
Anda juga bertanya apakah Anda dapat memeriksa halaman saat ini di dalam blok CMS.
Itu mungkin bukan pendekatan yang baik (Anda harus menyertakan blok khusus, yang akan mengalahkan tujuan menggunakan blok CMS di halaman pertama).
Alih-alih lebih baik memeriksa halaman saat ini terlebih dahulu, dan kemudian memilih blok CMS untuk ditampilkan berdasarkan itu.
EDIT : tetap
Mage::app()->getRequest()->getFullActionName()
akanMage::app()->getFrontController()->getAction()->getFullActionName()
seperti yang disebutkan oleh @ Yusuf di komentar. Terima kasih!sumber
Mage::app()->getRequest()->getFullActionName()
dalam templat keranjang menghasilkan kesalahan fatal atau setidaknya itu terjadi pada saya di 1.7.0.2.$this->getAction()->getFullActionName()
bekerja dengan sempurna!Banyak pendekatan yang bisa Anda ambil. Saya sarankan menambahkan blok Anda melalui
<default>
pegangan pembaruan tata letak, yang akan membuatnya tersedia di semua halaman. Dalam_prepareLayout()
metode blok Anda, Anda bisa menentukan ruang lingkup dengan mendapatkan nama tindakan lengkap saat ini dari objek permintaan ($this->getRequest()->getFullActionName()
), dan menggunakannya untuk menentukan konteks.Produk dan kategori akan terdaftar di registri. Blok Anda juga bisa melihat pegangan pembaruan tata letak, yang akan mencakup ID produk atau pegangan ID kategori.
sumber
Untuk mendeteksi halaman beranda, Anda perlu menggunakan string pengidentifikasi (mis. "Rumah") untuk mencocokkan dengan nilai konfigurasi, daripada id numerik:
Berikut ini beberapa lainnya:
Terima kasih atas info yang bermanfaat, semuanya!
sumber