Wie importiere ich einen Block programmgesteuert in eine vorhandene Ansicht?
Ich muss einen Block mit seinen Einstellungen programmgesteuert in eine vorhandene Ansicht importieren .
Ich weiß, wie man die gesamte Ansicht exportiert und programmgesteuert importiert. Aber ich möchte nicht die ganze Ansicht exportieren und dann die ganze Ansicht importieren. Meiner Ansicht nach gibt es 25 Blöcke, sodass ich 4000 Codezeilen importieren kann. Ich kann nur den Exportcode meines neuen Blocks kopieren. Aber wie importiert man nur diesen Teil des Codes in die bestehende Ansicht ? Ist das möglich? Ich finde keine Lösungen.
Antworten
Der angezeigte "Block", auf den Sie in der Benutzeroberfläche hinweisen, wird intern als "Anzeige" bezeichnet. Anzeigen werden innerhalb des Ansichtsobjekts in der displayEigenschaft (z . B. $view->display) gespeichert.
Wenn Sie sich den Exportcode der Ansichten ansehen, sollten Sie das Muster der exportierten Blöcke (z . B. /* Display: Block 1 */, /* Display: Block 2 */, usw.) sehen, das von der views::export()Methode gerendert wird.
Für jeden Block (dh Anzeige) sollten Sie die $handler = $view->new_display(...)gefolgt von vielen $handler->display...Zeilen sehen, die die relevanten Felder/Filter für diese Anzeige hinzufügen.
Um eine einzelne Anzeige programmgesteuert zu importieren, würden Sie etwa wie folgt vorgehen:
$view = views_get_view('my_existing_view');
// @TODO: Add my new display handler code
$view->save();