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
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).