Klone teilweise bearbeiten

Ein Klon ist grundsätzlich eine vollständige Kopie seines Originals. Sollten Sie dennoch einzelne Felder beim Klon überschreiben wollen, ohne dass diese beim Speichern der Originals wiederhergestellt werden, so können Sie folgende Einstellungen vornehmen:

Bearbeiten Template anlegen

Ein Klon besitzt standardmäßig nur den Reiter "Information". Selbst hier können keine Felder bearbeitet werden. Wenn ein Klon Felder erhält, die bearbeitet werden dürfen, so muss zunächst ein Template erzeugt werden, welches die zu bearbeitenden Felder in einem neuen Reiter "Bearbeiten" darstellt. Dieses Template kann in folgenden Pfaden ausgehend von Ihrem Design Verzeichnis liegen:

  • <Seitentyp>/admin/edit_clone.tpl
  • /admin/edit_clone.tpl
wb_incandescent
Der Inhalt des Templates entspricht dem eines Templates für einen individuellen Extra Reiter. Also inklusive den Javascript Funktionen do_load_extra und do_unload_extra.

Beispiel: Die Checkbox "Seite nicht auf den Liveserver übertragen" soll individuell für Klone gesetzt werden können.

<form name="extra">
<div align="center">
<table>
<tr>
<td>
{input type="checkbox" name="nav_hide" title="Seite nicht auf den Liveserver übertragen" no_auto=true}
</td>
</tr>
</table>
</div>
</form>
<script type="text/javascript">
{literal}
function do_load_extra() {
set_input_value('nav_hide', (parseInt(parent.get_field('nav_hide'))&2) == 2);
}

function do_unload_extra() {
var nav_hide = parseInt(parent.get_field('nav_hide'));
if ((nav_hide&2) == 0 && parseInt(get_input_value('nav_hide'))) {
nav_hide += 2;
} else if ((nav_hide&2) == 2 && !parseInt(get_input_value('nav_hide'))) {
nav_hide -= 2;
}
parent.set_field('nav_hide', nav_hide);
}
{/literal}
</script>

Konfiguration vornehmen

Damit beim Speichern des Originals bekannt ist, welche Felder das Original beim Klon nicht überschreiben darf, müssen in der conf.json Datei alle Felder benannt werden, die betroffen sind, bzw. in edit_clone.tpl vorkommen.

Für das genannte Beispiel wäre folgende Konfiguration notwendig:

{
"edit_clone": {
"field": "nav_hide"
}
}

Für mehrere Felder können Sie die Liste kommasepariert erweitern. Für Extrafelder verwenden Sie anstatt field den Wert extra (Sie können auch beides gleichzeitig nutzen).