Ich stand neulich vor der Aufgabe zwei Felder in einer Objektklasse auf 'oder' zu prüfen. Hier war es nötig entweder einen deutschen oder einen niederländischen Titel einzugeben. Auf keinen Fall keinen. Hier meine Lösung per Hook (in /webedition/we/include/we_hook/custom_hooks/weCustomHook_publish.inc.php), für die ich recht lange im we-Quelltext stöbern musste:
Code: Alles auswählen
<?php
function weCustomHook_publish($param) {
?>
<script type="text/javascript">
var error=0;
// aktive Framenummer einlesen
var framennr=top.weEditorFrameController.ActiveEditorFrameId;
// Feldnamen zusammenbauen
var feld1='we_<?php $we_doc = $GLOBALS["we_doc"]; print $we_doc->Name; ?>_input[titel_de]';
var feld2='we_<?php $we_doc = $GLOBALS["we_doc"]; print $we_doc->Name; ?>_input[titel_nl]';
framelink=parent['rframe']['bm_content_frame']['multiEditorEditorFramesets'][framennr][1];
if(framelink.document.getElementsByName(feld1)[0]) if(framelink.document.getElementsByName(feld1)[0].value=='' && framelink.document.getElementsByName(feld2)[0].value=='') error=1;
// Nach dem Umschalten der Tabs ist die Framenummer anders. Warum weiß ich nicht ...
framelink=parent['rframe']['bm_content_frame']['multiEditorEditorFramesets'][framennr][2];
if(framelink.document.getElementsByName(feld1)[0]) if(framelink.document.getElementsByName(feld1)[0].value=='' && framelink.document.getElementsByName(feld2)[0].value=='') error=1;
// Fehler melden
if(error==1) alert('Fehler: Bitte einen deutschen oder einen niederländischen Titel angeben!');
</script>
<?php } ?>
Code: Alles auswählen
var _EditorFrame = top.weEditorFrameController.getActiveEditorFrame();
_EditorFrame.getEditorContentType() == "text/webedition" oder "objectFile"
ps. Die Aktivierung der Hooks in den Einstellungen nicht vergessen
ga