/** * Get extent of specified view * * @param object $tavName * @return array ['minx' => ..., 'miny' => ..., ...] */ public static function getExtent($tavName) { $extent = array(); if ($tavName) { $xmlfileThemesAndViewsFile = ThemesAndViewsUtils::getFile(); if (file_exists($xmlfileThemesAndViewsFile)) { $xmlThemesAndViews = simplexml_load_file($xmlfileThemesAndViewsFile); foreach ($xmlThemesAndViews->themeorview as $xmlThemeOrView) { if ($xmlThemeOrView->type) { if ($xmlThemeOrView->type == 'View') { if ($xmlThemeOrView->name) { if ((string) $xmlThemeOrView->name == $tavName) { if ($xmlThemeOrView->extent) { if ($xmlThemeOrView->extent->minx && $xmlThemeOrView->extent->miny && $xmlThemeOrView->extent->maxx && $xmlThemeOrView->extent->maxy) { $extent['minx'] = (double) $xmlThemeOrView->extent->minx; $extent['miny'] = (double) $xmlThemeOrView->extent->miny; $extent['maxx'] = (double) $xmlThemeOrView->extent->maxx; $extent['maxy'] = (double) $xmlThemeOrView->extent->maxy; } } } } } } } } } return $extent; }
$type = 'none'; if (isset($_REQUEST['type'])) { if ($_REQUEST['type'] == 'theme') { $themes = ThemesAndViewsUtils::getListThemesAndViews(true, false, false); // Print combo box with all themes $selStr = '<form id="selThemesBoxForm" action=""><div>'; if (count($themes) > 0) { $selStr .= _p('Apply theme') . ' '; $selStr .= ThemesAndViewsUtils::getComboThemesAndViews($themes, 'PM.Plugin.ThemesAndViews.submitSelThemeBox()'); } $selStr .= '</div></form>'; $type = 'theme'; } else { if ($_REQUEST['type'] == 'view') { $views = ThemesAndViewsUtils::getListThemesAndViews(false, true, false); // Print combo box with all views $selStr = '<form id="selViewsBoxForm" action=""><div>'; if (count($views) > 0) { $selStr .= _p('Apply view') . ' '; $selStr .= ThemesAndViewsUtils::getComboThemesAndViews($views, 'PM.Plugin.ThemesAndViews.submitSelViewBox()'); } $selStr .= '</div></form>'; $type = 'view'; } } $selStr = addcslashes($selStr, "'"); $selStr = addcslashes($selStr, "\""); } // return JS object literals '{}' for XMLHTTP request header("Content-Type: text/plain; charset={$defCharset}"); echo "{\"selStr\":\"{$selStr}\",\"type\":\"{$type}\"}";
/****************************************************************************** * Apply a Theme or a View ******************************************************************************/ require_once 'tav.php'; require_once $_SESSION['PM_INCPHP'] . '/common.php'; //require_once($_SESSION['PM_PLUGIN_REALPATH'] . '/common/common.php'); $tavLayers = ''; $transparencies = ''; $strExtent = ''; $reload = false; if (isset($_REQUEST['type']) && ($_REQUEST['type'] == 'theme' || $_REQUEST['type'] == 'view')) { // If or theme or a view has been passed to be applied: if (isset($_REQUEST['selected']) && $_REQUEST['selected']) { $tavLayers = ThemesAndViewsUtils::getListLayers($_REQUEST['selected'], $_REQUEST['type'] == 'theme'); if ($_REQUEST['type'] == 'view') { $extentTmp = ThemesAndViewsUtils::getExtent($_REQUEST['selected']); if ($extentTmp) { if (count($extentTmp) == 4) { $strExtent .= str_replace(',', '.', $extentTmp['minx']) . ' '; $strExtent .= str_replace(',', '.', $extentTmp['miny']) . ' '; $strExtent .= str_replace(',', '.', $extentTmp['maxx']) . ' '; $strExtent .= str_replace(',', '.', $extentTmp['maxy']); } } } // if transparency / opacity values have been passed to be applied: } else { if (isset($_REQUEST['groupsandopacities']) && $_REQUEST['groupsandopacities']) { $groupsAndOpacities = explode(',', $_REQUEST['groupsandopacities']); foreach ($groupsAndOpacities as $groupandopacity) { $groupandopacityTmp = explode(':', $groupandopacity);