コード例 #1
0
ファイル: controller.php プロジェクト: KoreaHaos/diagramo
function save()
{
    if (!is_numeric($_SESSION['userId'])) {
        //no user logged so save it temporarly
        $_SESSION['tempDiagram'] = $_POST['diagram'];
        $_SESSION['tempSVG'] = $_POST['svg'];
        print "noaccount";
        exit;
    } else {
        //user is logged
        if (is_numeric($_REQUEST['diagramId'])) {
            //we have a current working diagram
            //print($_POST['svg']);
            $delegate = new Delegate();
            //see if we have rights to save it
            $userdiagram = $delegate->userdiagramGetByIds($_SESSION['userId'], $_REQUEST['diagramId']);
            if (!is_object($userdiagram)) {
                print 'Not allocated to this diagram';
                exit;
            }
            //end check rights
            $currentDiagramId = $_REQUEST['diagramId'];
            $nowIsNow = now();
            //update the Dia file
            $diaData = $delegate->diagramdataGetByDiagramIdAndType($currentDiagramId, Diagramdata::TYPE_DIA);
            $fh = fopen(dirname(__FILE__) . '/../diagrams/' . $currentDiagramId . '.dia', 'w');
            //            $diaFile = dirname(__FILE__) . '/../diagrams/' . $_REQUEST['diagramId'] . '.dia';
            $diaSize = fwrite($fh, $_POST['diagram']);
            fclose($fh);
            $diaData->fileSize = $diaSize;
            $diaData->lastUpdate = $nowIsNow;
            $delegate->diagramdataUpdate($diaData);
            //end update Dia file
            //update the SVG file
            $svgData = $delegate->diagramdataGetByDiagramIdAndType($currentDiagramId, Diagramdata::TYPE_SVG);
            $fh = fopen(getStorageFolder() . '/' . $currentDiagramId . '.svg', 'w');
            $svgSize = fwrite($fh, $_POST['svg']);
            fclose($fh);
            $svgData->fileSize = $svgSize;
            $svgData->lastUpdate = $nowIsNow;
            $delegate->diagramdataUpdate($svgData);
            //end update the SVG file
            //update the Diagram
            $diagram = $delegate->diagramGetById($currentDiagramId);
            $diagram->size = $diaSize;
            $diagram->lastUpdate = $nowIsNow;
            if ($delegate->diagramUpdate($diagram)) {
                print "saved";
            } else {
                print 'diagramdata not saved';
            }
            exit;
        } else {
            //no current working diagram
            $_SESSION['tempDiagram'] = $_POST['diagram'];
            $_SESSION['tempSVG'] = $_POST['svg'];
            print "firstSave";
            exit;
        }
    }
}
コード例 #2
0
ファイル: raster.php プロジェクト: KoreaHaos/diagramo
     $pngFileSize = filesize($pngPath);
     //see if we need to create the PNG data (first time)
     if (!is_object($pngData)) {
         //create
         $pngData = new Diagramdata();
         $pngData->diagramId = $diagram->id;
         $pngData->type = Diagramdata::TYPE_PNG;
         $pngData->fileName = $diagram->id . '.' . 'png';
         $pngData->fileSize = $pngFileSize;
         $pngData->lastUpdate = $nowIsNow;
         $delegate->diagramdataCreate($pngData);
     } else {
         //Update
         $pngData->fileSize = $pngFileSize;
         $pngData->lastUpdate = $nowIsNow;
         $delegate->diagramdataUpdate($pngData);
     }
 }
 if ($display) {
     //load png binary data
     $handle = fopen($pngPath, "rb");
     //        print "$pngPath:" . filesize($pngPath);
     $contents = fread($handle, filesize($pngPath));
     fclose($handle);
     //end load png binray data
     //print data
     header("content-type: image/png");
     print $contents;
 } else {
     header("content-type: text/plain");
     print 'You are not allowed to see this information';
コード例 #3
0
ファイル: controller.php プロジェクト: realeve/QCCenter
function save()
{
    if (isset($_REQUEST['diagramId']) && is_numeric($_REQUEST['diagramId'])) {
        //we have a current working diagram
        //print($_POST['svg']);
        $delegate = new Delegate();
        $currentDiagramId = $_REQUEST['diagramId'];
        $nowIsNow = now();
        // 1 - update the Dia file
        $diaData = $delegate->diagramdataGetByDiagramIdAndType($currentDiagramId, Diagramdata::TYPE_DMO);
        $fh = fopen(getStorageFolder() . '/' . $currentDiagramId . '.dmo', 'w');
        //$fh = fopen(dirname(__FILE__) . '/../diagrams/' . $currentDiagramId . '.dmo', 'w');
        //            $diaFile = dirname(__FILE__) . '/../diagrams/' . $_REQUEST['diagramId'] . '.dmo';
        $diaSize = fwrite($fh, $_POST['diagram']);
        fclose($fh);
        $diaData->fileSize = $diaSize;
        $diaData->lastUpdate = $nowIsNow;
        $delegate->diagramdataUpdate($diaData);
        //end update Dia file
        /*SVG support discontinued
                //2 - update the SVG file
                $svgData = $delegate->diagramdataGetByDiagramIdAndType($currentDiagramId, Diagramdata::TYPE_SVG);
        
                $fh = fopen(getStorageFolder() . '/' . $currentDiagramId . '.svg', 'w');
                $svgSize = fwrite($fh, $_POST['svg']);
                fclose($fh);
        
                $svgData->fileSize = $svgSize;
                $svgData->lastUpdate = $nowIsNow;
                $delegate->diagramdataUpdate($svgData);
                //end update the SVG file
                //update the Diagram
                $diagram = $delegate->diagramGetById($currentDiagramId);
                $diagram->size = $diaSize;
                $diagram->lastUpdate = $nowIsNow;
                */
        //3 - update the PNG file
        $pngData = $delegate->diagramdataGetByDiagramIdAndType($currentDiagramId, Diagramdata::TYPE_PNG);
        $fh = fopen(getStorageFolder() . '/' . $currentDiagramId . '.png', 'wb');
        $data = substr($_POST['png'], strpos($_POST['png'], ','));
        $imgData = base64_decode($data);
        $pngSize = fwrite($fh, $imgData);
        fclose($fh);
        $pngData->fileSize = $pngSize;
        $pngData->lastUpdate = $nowIsNow;
        $delegate->diagramdataUpdate($pngData);
        //end update the SVG file
        //update the link map
        $csvData = $delegate->diagramdataGetByDiagramIdAndType($currentDiagramId, Diagramdata::TYPE_CSV);
        $fh = fopen(getStorageFolder() . '/' . $currentDiagramId . '.csv', 'w');
        $data = $_POST['linkMap'];
        $csvSize = fwrite($fh, $data);
        fclose($fh);
        $csvData->fileSize = $csvSize;
        $csvData->lastUpdate = $nowIsNow;
        $delegate->diagramdataUpdate($csvData);
        //end update the link map
        //update the Diagram
        $diagram = $delegate->diagramGetById($currentDiagramId);
        $diagram->size = $diaSize;
        $diagram->lastUpdate = $nowIsNow;
        if ($delegate->diagramUpdate($diagram)) {
            print "saved";
        } else {
            print 'diagramdata not saved';
        }
        exit;
    } else {
        //no current working diagram
        $_SESSION['tempDiagram'] = $_POST['diagram'];
        $_SESSION['tempSVG'] = $_POST['svg'];
        $_SESSION['tempPNG'] = $_POST['png'];
        $_SESSION['tempLinkMap'] = $_POST['linkMap'];
        print "firstSave";
        exit;
    }
}