2010-11-24 4 views

Antwort

3

Zwei Möglichkeiten mit:

1. Schreiben Sie Ihre eigene Admin-Konfiguration

Dies ist die bevorzugte Methode, wenn zwischen den beiden Formen signifikante Unterschiede bestehen. Diese Datei wird in den Konfigurationsordner des Moduls geschrieben. "moduleName" sollte durch den Namen des Moduls ersetzt werden.

class moduleNameGeneratorConfiguration extends BaseModuleNameGeneratorConfiguration 
{ 
    public function getForm($object = null, $options = array()) 
    { 
    $options = array_merge($this->getFormOptions(), $options); 
    if ($object && $object->exists()) 
    { 
     return new EditModelForm($object, $options); 
    } 
    else 
    { 
     return new NewModelForm($object, $options);   
    } 
    } 
} 

2. Trennen Sie die Logik in der Form

Dies kann chaotisch, wenn es erhebliche Unterschiede gibt, aber Sie können einfach isNew Innere der Form nennen, wie erforderlich, z.B.

public function configure() 
{ 
    if ($this->isNew()) 
    { 
    //do new stuff 
    } 
    else 
    { 
    //do edit stuff 
    } 
} 
0

Sie können dieselbe Verzeichnisstruktur wie in der Frontend-Anwendung erstellen und die Generatorformulare überschreiben. Erstellen Sie beispielsweise eine indexSuccess.php-Datei in Ihrem Back-End-Modul. Beim Laden dieses Moduls wird jetzt die Datei indexSuccess.php verwendet.

Der einfachste Weg, dies zu tun, ist das Kopieren von Daten aus Ihrem/Cache-Ordner - Im Grunde kopieren Sie die generierten Backend-Modul-Dateien, und ändern Sie sie wie Sie wollen.

1

konnte ich verschiedene Dinge in "neuen" und "Bearbeiten" in der gleichen Form tun,

$this->isNew() 
0

Sie können angeben, welche Felder in einem Formular abhängig von der Aktion verfügbar sind, siehe The form section only exists as a fallback for the edit and new sections.

Zum Beispiel:

generator: 
    param: 
     form: 
     display: 
      group1:    [name, description] 
     edit: 
     title:    Edit item %%name%% 
     fields: 
      #group1:    [name, description] -> inheritance 
      group2:    [only_displayed_when_editing_field] 
     new: 
     title:    New item 
     fields: 
      group1:    [name] #override