示例#1
0
 public function savetemplate()
 {
     global $varChecker;
     $template = $this->dRep->getTemplate($varChecker->getValue('id'), false);
     if ($varChecker->getValue('name') != '') {
         $name = $varChecker->getValue('name');
     } else {
         throw new DataException('nonatemplateme', array('templatename'));
     }
     if ($varChecker->getValue('folderId') == 0) {
         throw new DataException('noResourceFolder', array('resourcefilefields'));
     }
     $resourceFolder = $this->dRep->getFolder($varChecker->getValue('folderId'));
     if ($resourceFolder->getId() == 'new') {
         throw new DataException('folderNotExist');
     }
     //we have the temporary template created, now we need to make it propper
     $spots = $template->getSpots();
     $postedSpots = $varChecker->getValue('spots');
     $count = 0;
     $newSpots = array();
     foreach ($postedSpots as $index => $postedSpot) {
         $postedSpotArray = explode('-', $postedSpot);
         if (count($postedSpotArray) != 3) {
             throw new DataException('errorSaveSpot');
         }
         $tplSpotId = $postedSpotArray[0];
         $spotId = $postedSpotArray[1];
         $spotName = $postedSpotArray[2];
         if ($spotId == 'new' || $spotId == 0) {
             throw new DataException('allspotsneedtype');
         }
         if (isset($spots[$tplSpotId])) {
             //this spot exists from before - check if it has changed
             $spot = $spots[$tplSpotId];
             if ($spot->getId() != $spotId) {
                 $configs = $spot->getConfigValues();
                 $order = $spot->order();
                 $tplSpotId = $spot->getTplSpotId();
                 $spot = $this->dRep->getSpot($spotId);
                 $spot->setProperties(array('order' => $order, 'tplSpotId' => $tplSpotId, 'configs' => $configs));
             }
         } else {
             $spot = $this->dRep->getSpot(array('spotId' => $spotId));
         }
         $spotName = $spot->getConfigvalue('name');
         if ($spotName !== false) {
             $spot->setConfigvalue($spotName, $spotName);
         }
         $order = array('order' => $index);
         $spot->setProperties($order);
         $newSpots[$tplSpotId] = $spot;
         $count++;
     }
     $vars = array('name' => $name, 'spots' => $newSpots, 'folder' => $resourceFolder);
     if (!is_object($template->getSite())) {
         $vars['site'] = $varChecker->getValue('siteId');
     } else {
         if ($template->getSite()->getId() != $varChecker->getValue('siteId')) {
             $fm = new FileMaker();
             if (!is_dir('cache/templates/' . $varChecker->getValue('siteId'))) {
                 $fm->makeDirectory('cache/templates/' . $varChecker->getValue('siteId'));
             }
             $oldPath = 'cache/templates/' . $template->getSite()->getId() . '/' . $template->getFilename();
             $newPath = 'cache/templates/' . $varChecker->getValue('siteId') . '/' . $template->getFilename();
             $fm->moveFile($oldPath, $newPath);
             $vars['site'] = $varChecker->getValue('siteId');
         }
     }
     $template->setProperties($vars);
     $template = $this->dRep->saveTemplate($template);
     echo json_encode(array('success' => 'tpl_saved', 'id' => $template->getId()));
 }