Em primeiro lugar, desculpe se esta resposta é abordada em outro lugar. Pesquisei bastante e só consigo encontrar informações sobre funções de tema e ganchos.
Estou usando um módulo que cria uma tabela de preços para itens do Drupal Commerce. Há uma função que formata os cabeçalhos da tabela:
/**
* 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;
}
Como você pode ver, essa não é uma função de tema onde eu possa substituí-la no template.php, mas posso ajustar alguns dos resultados.
Obviamente, não quero editar o módulo em si, caso ele seja atualizado no futuro. Portanto, como redefinir essa função para poder cortar e alterar algumas coisas?
Meu trabalho até agora ...
Até agora, tentei criá-lo como um módulo separado, com algumas mudanças sutis para mostrar se está funcionando ou não, mas não está substituindo nenhuma saída.
Arquivo de informações
; $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
Arquivo de módulo
/**
* 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;
}
Parece que você não pode substituir essa função porque ela não usa o tema ou o fluxo de trabalho de gancho.
A única maneira - é mudar diretamente de
commerce_price_table_display_quantity_headers()
função. Em seguida, crie um patch com suas alterações.Posteriormente, se você atualizar o módulo Commerce - precisará aplicar seu patch.
fonte
Acho que a resposta de Eugene está correta, de que você não pode fazer isso sem sobrescrever diretamente.
No entanto, o que eu achei útil é que, se for absolutamente necessário fazer isso, mova este módulo do
sites/all/modules/contrib
diretório parasites/all/modules/custom
dir, para que você esteja ciente e acompanhe o fato de ter feito alterações personalizadas.fonte