Erstens, entschuldigen Sie, wenn diese Antwort an anderer Stelle behandelt wird. Ich habe viel gesucht und kann nur Informationen zu übergeordneten Themenfunktionen und Hooks finden.
Ich verwende ein Modul, das eine Preistabelle für Drupal Commerce-Artikel erstellt. Es gibt eine Funktion, die die Tabellenüberschriften formatiert:
/**
* 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;
}
Wie Sie sehen können, ist dies keine Themenfunktion, bei der ich sie in template.php überschreiben kann, aber ich kann einen Teil der Ausgabe optimieren.
Natürlich möchte ich das Modul selbst nicht bearbeiten, falls es in Zukunft aktualisiert wird. Wie kann ich diese Funktion neu definieren, damit ich einige Dinge zerhacken und ändern kann?
Meine bisherige Arbeit ...
Bisher habe ich versucht, es als separates Modul mit ein paar subtilen Änderungen zu erstellen, um zu zeigen, ob es funktioniert oder nicht, aber es überschreibt keine der Ausgaben.
Info-Datei
; $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
Moduldatei
/**
* 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;
}
Anscheinend können Sie diese Funktion nicht überschreiben, da sie keinen Themen- oder Hook-Workflow verwendet.
Der einzige Weg - besteht darin, die
commerce_price_table_display_quantity_headers()
Funktion direkt zu ändern . Dann einen Patch erstellen mit Ihnen verändert.Wenn Sie später das Commerce- Modul aktualisieren, müssen Sie Ihren Patch anwenden.
quelle
Ich denke, Eugenes Antwort ist richtig, dass man es nicht tun kann, ohne direkt zu überschreiben.
Was ich jedoch als nützlich empfunden habe, ist, dass Sie dieses Modul, wenn dies unbedingt erforderlich ist, aus Ihrem
sites/all/modules/contrib
Verzeichnis in das Verzeichnis verschieben,sites/all/modules/custom
damit Sie wissen und verfolgen können, dass Sie benutzerdefinierte Änderungen vorgenommen haben.quelle