-
SaveNCreate Button
Hey,
kann man eigentlich die Button unten (Speichern / Speichern und Schleißen etc.) nach belieben ausblenden?
Übergebe an eine Kindertabele per GEt paramenter ein Wert der auch in die DB gespeichert wird, klappt auch über all nur nicht beim "Speichern und neu" Button.
Warum ich das ganze per GET mache liegt daran.
In den Elterndatensätzen gibt es zwei Button ( die auf die selbe Kindtabelle verweisen, dort werden wiederum nur datzensätze engezeigt die den Wert x in der url haben) Da sort sehr viel eingetragen wird wollte ich das feld nicht in der DCA darstellen als auswahlfeld, da es einfach nervig ist immer noch zu klicken ^^=
-
-
Nein das geht im regulären Contao Backend leider nicht. Der alternative Treiber DC_General kann das, das wäre vom Komplexitätsgrad aber schon einige Stufen höher wenn du den einsetzen willst.
Was du aber stattdessen machen könntest: nutz die Callbacks die Contao dir bietet. Such mal danach bei Google, mit denen kannst du einiges anstellen :)
-
Und wie ist zum Beispiel beim Theme der "Speicher udn Zurück" button ausgeblendet worden?
-
Das ist fest im Controller/Template gemacht worden.
-
Achso, da müsste ich zum Beispiel an die funcktion edit() ran. Wobei die Buttons ja nichts wirklich das Problem sind ^^ sondern eher das es mein GET Paramenter nicht in der URL übernimmt. Aber komisch nur beim "Speichern und neu" Button
-
Du kannst ihn mit dem "buttons_callback" auch einfach unsetten.
Siehe https://github.com/contao/core/blob/...hp#L1917-L1931
-
Joa hatte ich ja auch schon empfohlen :)
-
-
-
Ja aber ich glaube der Button ist garnet wirklich das Problem, sondern mehr was nach dem Klick passiert.
Also er schmeißt mir da meinen übergebenen GET Parameter raus. Aber werd es nochmal Probieren ;)
-
Hab schonmal die Stelle gefunden wo es hängt...
und zwar müsste ich an strUrl noch etwas anhängen.
PHP-Code:
elseif (isset($_POST['saveNcreate']))
{
\Message::reset();
\System::setCookie('BE_PAGE_OFFSET', 0, 0);
$strUrl = TL_SCRIPT . '?do=' . \Input::get('do');
if (isset($_GET['table']))
{
$strUrl .= '&table=' . \Input::get('table');
}
// Tree view
if ($this->treeView)
{
$strUrl .= '&act=create&mode=1&pid=' . $this->intId;
}
// Parent view
elseif ($GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['mode'] == 4)
{
$strUrl .= $this->Database->fieldExists('sorting', $this->strTable) ? '&act=create&mode=1&pid=' . $this->intId . '&id=' . $this->activeRecord->pid : '&act=create&mode=2&pid=' . $this->activeRecord->pid;
}
// List view
else
{
$strUrl .= ($this->ptable != '') ? '&act=create&mode=2&pid=' . CURRENT_ID : '&act=create';
}
$this->redirect($strUrl . '&rt=' . REQUEST_TOKEN);
-
Das geht, wie du siehst, nicht.
Du musst halt deinen eigenen Button definieren und dann das machen, was du gerne hättest.
-
ja aber mit dem button_callback komm ich doch nichts an die buttons ran, oder doch? Denke der ist nur für das das wie beim toogle oder so
-
Hab das jetzt so gelöst ^^
PHP-Code:
'onload_callback' => array(array('tl_my_tables','saveAndCreate')),
.......
/* Save an Create */
public function saveAndCreate(){
if(!$this->Input->get('files')){
$objPages = $this->Database->prepare("SELECT * FROM tl_my_table WHERE id=?")->execute($this->Input->get('pid'));
//print_r($this->Environment->request.'&files='.$objPages->type);
$this->Environment->request = $this->Environment->request.'&files='.$objPages->type;
}
}
so speichert es er auch alles richtig :) bin mal gespannt ob es sich bewert...sollte aber passen