Pertama, maaf jika jawaban ini dibahas di tempat lain. Saya telah melakukan banyak pencarian dan hanya dapat menemukan info tentang fungsi tema dan kait yang ada di atasnya.
Saya menggunakan modul yang membuat tabel harga untuk item Drupal Commerce. Ada fungsi yang memformat header tabel:
/**
* Helper function that takes care of the quantity displayed in the headers of
* the price table.
*/
function commerce_price_table_display_quantity_headers($item) {
// Set the quantity text to unlimited if it's -1.
$max_qty = $item['max_qty'] == -1 ? t('Unlimited') : $item['max_qty'];
// If max and min qtys are the same, only show one.
if ($item['min_qty'] == $max_qty) {
$quantity_text = $item['min_qty'];
}
else {
$quantity_text = $item['min_qty'] . ' - ' . $max_qty;
}
return $quantity_text;
}
Seperti yang Anda lihat, ini bukan fungsi tema di mana saya bisa menimpanya di template.php tapi saya bisa men-tweak beberapa output.
Jelas saya tidak ingin mengedit modul itu sendiri kalau-kalau akan diperbarui di masa depan, jadi, bagaimana saya bisa mendefinisikan kembali fungsi ini sehingga saya dapat memotong dan mengubah beberapa hal?
Pekerjaan saya sejauh ini ...
Sejauh ini, saya telah mencoba membuatnya sebagai modul terpisah dengan beberapa perubahan halus untuk menunjukkan apakah itu berfungsi atau tidak, tetapi tidak mengesampingkan salah satu output.
File info
; $id$
name = Price Table: Tweaked Display
description = A different layout for the price table as shown on the product display nodes
package = Commerce (contrib)
core = 7.x
dependencies[] = commerce_product
dependencies[] = commerce_price
dependencies[] = commerce_price_table
File Modul
/**
* Override of the helper function that takes care of the quantity displayed in the headers of
* the price table.
*/
function commerce_table_tweak_display_quantity_headers($item) {
// Set the quantity text to unlimited if it's -1.
$max_qty = $item['max_qty'] == -1 ? t('Unlimited gnhh') : $item['max_qty'];
// If max and min qtys are the same, only show one.
if ($item['min_qty'] == $max_qty) {
$quantity_text = $item['min_qty'];
}
else {
$quantity_text = $item['min_qty'] . ' - this is working - ' . $max_qty;
}
return $quantity_text;
}
Tampaknya, Anda tidak dapat mengabaikan fungsi ini karena tidak menggunakan tema atau alur kerja pengait.
Satu-satunya cara - adalah dengan langsung mengubah
commerce_price_table_display_quantity_headers()
fungsi. Kemudian buat tambalan dengan Anda perubahan.Nanti jika Anda memperbarui modul Commerce - Anda perlu menerapkan tambalan Anda.
sumber
Saya pikir jawaban Eugene benar bahwa Anda tidak dapat melakukannya tanpa menimpa secara langsung.
Namun, apa yang menurut saya bermanfaat adalah jika benar-benar diperlukan untuk melakukan ini, pindahkan modul ini dari
sites/all/modules/contrib
direktori Anda kesites/all/modules/custom
dir sehingga Anda dapat mengetahui dan melacak fakta bahwa Anda membuat perubahan khusus.sumber