Ich habe ein Feature mit einem Installationsprofil installiert. Ich muss jedoch immer eine bestimmte Komponente zurücksetzen, damit sie nicht mehr überschrieben wird (sodass beispielsweise die Funktionsblöcke angezeigt werden). Ich wollte nur wissen, ob ich diesen Schritt mithilfe von Code im Installationsprofil programmgesteuert ausführen kann.
Im folgenden Screenshot habe ich die Komponente gezeigt, die programmgesteuert zurückgesetzt werden muss (im Screenshot ist sie bereits zurückgesetzt, sodass das Kontrollkästchen nicht verfügbar ist).
Antworten:
Hier einige Gedanken zum programmgesteuerten Zurücksetzen Ihrer Funktionen oder als Add-On-Installationsskripts.
Sie können Drush verwenden, um die Funktion zurückzusetzen :
drush features-revert [feature name]
Ein anderer Gedanke wäre, features_revert () während des Installationsprozesses zu verwenden:
features_revert(array('module' => array('component')));
Das Strongarm- Modul könnte auch nützlich sein, um Ihr Feature zu zwingen , seinen Standardstatus beizubehalten.
Ich muss @Letharion in seinem Kommentar zu Ihrem OP zustimmen. Ich möchte wissen, dass andere wichtige Dinge während des Installationsprozesses nicht versehentlich geändert werden.
quelle
Setzen Sie ALLE Komponenten in der Funktion zurück
quelle
Sie können ein einzelnes Funktionsmodul mit features_revert_module () zurücksetzen .
quelle
Wobei "Modul" der Name des Moduls für bestimmte Funktionen ist (dh das Modul, das beim Herunterladen der Funktion generiert wird) und "Komponente" die Komponenten dieser Funktionen sind. Wenn Sie also nur die in der Funktion definierten Felder zurücksetzen möchten, können Sie "Feld" für die Komponente verwenden.
quelle
Ich könnte das Problem mit der Hook-Funktion lösen, bei der
fe_block_settings_features_revert('basic_site')
fe_block_settings der Hook ist, dh die Komponente hier und basic_site der Feature- / Modulname.quelle
Wird nur
features_revert()
zum Zurücksetzen bestimmter Komponenten verwendet, wenn die Syntax wie folgt lautet:beispielsweise:
Um das gesamte Modul (mit all seinen Komponenten) zurückzusetzen, verwenden Sie
features_revert_module()
stattdessen zum Beispiel:Regeln
Für Regeln ist diese Methode viel schneller (zum Zurücksetzen einer einzelnen Regel):
Um alle Regeln zurückzusetzen, ist es:
Siehe: Drush Rules-Revert hinzufügen [# 2474577] | Drupal.org
quelle
Um alle überschriebenen Komponenten aller Features in Ihrem Installationsprofil wiederherzustellen, fügen Sie Folgendes zu den hook_profile_tasks () Ihrer .profile-Datei hinzu:
quelle
quelle