In der aktuellen IPSView Designer Version 1.0 ist es derzeit noch nicht möglich eine View als Kopie unter einem neuen Namen zu speichern.
Hier ein Skript, mit dem man mittels Skript eine bestehende View auf einen neuen Namen kopieren kann:
<? // ------------------------------------------------------------------- // IPSView Skript zum Kopieren einer View // Kopiervorgang: // * Setzen der Variable "viewNameOld" mit dem Namen der zu kopierenden View // * Setzen der Variable "viewNameNew" mit dem Namen der neuen View // * Skript ausführen // --------------------------------------------------------------- // Konfiguration $viewNameOld = 'NameDerAltenView'; // Name der zu kopierenden View $viewNameNew = 'NameDerNeuenView'; // Name der neuen View // ------------------------------------------------------------------------- $mediaIdOld = IPS_GetMediaIDByName($viewNameOld.'.ipsView', 0); if ($mediaIdOld===false) { die ("View mit Namen $viewNameOld konnte nicht gefunden werden"); } $mediaContent = IPS_GetMediaContent($mediaIdOld); $media = IPS_GetMedia($mediaIdOld); $mediaFile = $media['MediaFile']; $mediaIdNew = IPS_GetMediaIDByName($viewNameNew.'.ipsView', 0); if ($mediaIdNew===false) { $mediaIdNew = IPS_CreateMedia(0); } copy (IPS_GetKernelDir().'media'.DIRECTORY_SEPARATOR .$mediaIdOld.'.ipsView', IPS_GetKernelDir().'media'.DIRECTORY_SEPARATOR .$mediaIdNew.'.ipsView'); $jsonData = base64_decode($mediaContent); $jsonObj = json_decode($jsonData, true); $jsonObj['ID'] = $mediaIdNew; $jsonObj['Name'] = $viewNameNew.'.ipsView'; $jsonData = json_encode($jsonObj); $mediaContent = base64_encode($jsonData); IPS_SetName($mediaIdNew, $viewNameNew.'.ipsView'); IPS_SetMediaFile($mediaIdNew, IPS_GetKernelDir().'media'.DIRECTORY_SEPARATOR .$mediaIdNew.'.ipsView', false); IPS_SetMediaContent($mediaIdNew, $mediaContent); echo "View $viewNameOld erfolgreich auf $viewNameNew kopiert"; // ------------------------------------------------------------------------- ?>
Nach dem Ausführen des Scriptes und einem Neustart des Designers wird die kopierte View in der DropDown Auswahlbox gelistet und kann weiterbearbeitet werden.