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())); }