Pages: 1
- Sujet précédent - [Autodesk Mapguide Studio 2008/09 ] Fonction Appeller une URL - Sujet suivant
#1 Mon 01 September 2008 21:51
- Jean marie
- Participant assidu
- Lieu: Moissy Cramayel
- Date d'inscription: 15 Feb 2007
- Messages: 309
- Site web
[Autodesk Mapguide Studio 2008/09 ] Fonction Appeller une URL
Bonjour à vous
dans Autodesk Mapguide Studio 2008/2009
il existe une fonction "Appeler une URL" .... Il est possible d'ajouter une clé de la sélection d'un objet graphique à l'URL
et c'est à ce niveau que je bloque
je voudrais si cela est possible et par hasard avoir un exemple de syntaxe sur l'URL pour pouvoir m'en inspirer
(voir capture )
merci à vous
cordialement Jean-Marie
Hors ligne
#2 Thu 04 September 2008 12:04
- poulet1212
- Participant actif
- Date d'inscription: 10 Apr 2007
- Messages: 74
Re: [Autodesk Mapguide Studio 2008/09 ] Fonction Appeller une URL
Je n'ai pas mon site sous les yeux au moment où je répond, cependant j'ai beaucoup utilisé cette fonction.
l'url à donner est de type:
../../../../monChemin/monfichier.php
Sachant que ce chemin est évalué depuis le fichier .html de l'application, par exemple pour fusion ce sera:
www/fusion/templates/mapguide/slate/index.html, en remontant 4 fois dans l'arborescence comme dans mon exemple, on arriver dans le répertoire 'www'.
Maintenant en ce qui concerne les valeurs de la sélection acuelle: il y a cette variable $currentSelection, qui il me semble, n'est pas implémentée.
Pour retrouver la sélection, il faut plutôt utiliser la varible $_SESSION['selection_array'] dans ton script php.
C'est une représentation JSON de la sélection actuelle. Attention, avant d'appler une variable session, tu devra starter la session (Voir mon exemple plus bas).
Pour conclure, de manière générale, si tu veux savoir quelles valeurs sont transmises à ton script php, fais les apparaître de cette manière:
//variables de session:
//A mettre au début du fichier php
session_start();
//puis afficher le contenu de la variable de session
print_r($_SESSION);
//Variables get:
print_r($_GET);
//Variables post:
print_r($_POST);
//Variables Serveur:
print_r($_SERVER);
Que compte tu faire avec ces données de sélection au juste?
Hors ligne
#3 Fri 05 September 2008 22:30
- Jean marie
- Participant assidu
- Lieu: Moissy Cramayel
- Date d'inscription: 15 Feb 2007
- Messages: 309
- Site web
Re: [Autodesk Mapguide Studio 2008/09 ] Fonction Appeller une URL
Merci à toi pour ces précieuses informations
il est claire que je suis arrivé au bout de mes connaissances sur le sujet
je cherche un moyen de faire des fiches de consultation de données plus sympa
que la simple consultation dans MapGuide et je pense que c'est une piste
( le principe de la fiche de consultation des objets dans la solution GEOMAP .... )
voir l'exemple suivant
[img]http://web-prevost.info/explorer/pour_geomap/Snap3.jpg[/img]
ou encore
[img]http://web-prevost.info/explorer/pour_geomap/Snap4.jpg[/img]
si vous avez envie de connaitre le couple terrible MapGuide et GEOMAP j'ai réalisé un petit diaporama sur le sujet
il explique le choix de la technologie , les solutions et aussi la petite ville de moissy-cramayel et le Grand AutocadMap
et c'est ici
http://web-prevost.info/explorer/pour_g … techno.swf
et encore merci à toi
cordialement Jean-Marie
Dernière modification par Jean marie (Fri 05 September 2008 22:42)
Hors ligne
#4 Sun 30 November 2008 11:33
- Jean marie
- Participant assidu
- Lieu: Moissy Cramayel
- Date d'inscription: 15 Feb 2007
- Messages: 309
- Site web
Re: [Autodesk Mapguide Studio 2008/09 ] Fonction Appeller une URL
bonjour à vous
bien que je n'ai pas tester cela j'ai trouvé un lien qui explique comment utiliser la fonction "Appeler une URL"
dans Studio
désolé la traduction est made in google
http://translate.google.fr/translate?u= … p;ie=UTF-8
à étudier
jean marie
Hors ligne
#5 Fri 14 August 2009 17:22
- Jean marie
- Participant assidu
- Lieu: Moissy Cramayel
- Date d'inscription: 15 Feb 2007
- Messages: 309
- Site web
Re: [Autodesk Mapguide Studio 2008/09 ] Fonction Appeller une URL
bonjour à vous
vacances oblige me voila à nouveau sur ce sujet
comme le montre le post précédent, j'ai trouvé un script qui utilise le fonction "Appeler une URL"
comme le montre la capture suivante
[img]http://www.calcad.com/MGOS/passData.gif[/img]
celui ci fait appel un fichier PassData.php ok ici j'arrive encore à suivre
voila son code
Code:
<html> <head> <title>Pass Data</title> </head> <body> <p>If you see nothing but this message, your MapGuide session has probably expired. Reload the map, close this window, and then try your report request again.</p> <?php /* ######################################################################## Copy this php script into your MGOS mapviewerphp folder, then set it as the URL to invoke. It needs up to seven variables passed to it from InvokeURL; Selected : this is $CurrentSelection from MapGuide Studio), DesiredField : the name of the field that you'd like to get data from; it is case-sensitive and must match the field name in the layer definition, LayerName - : the name of the layer that you want to get the data from, URL - : the url that this script will forward to, DestinationKeyName : name of the field that you're getting data for; to match the field-name the target page is expecting to receive data in. Quotes : true/false - include single-quote delimiters around each data value? Useful for target pages that expect quoted values because the data stings may include commas. IsPost : true/false - make this a POST request? Additional : this can hold any other parameters that you'd like to send... these just get passed straight through to URL - avoid using quotes here, because Studio doesn't seems to like that). Adapted from code posted by Andrew DeMerchant in the users@mapguide.osgeo.org mailing list: Date: Fri, 30 Jun 2006 11:03:40 -0300 From: Andrew DeMerchant <andrew.demerchant@gemtec.ca> To: users@mapguide.osgeo.org Message-ID: <44A52F3C.10803@gemtec.ca> Subject: Re: [mapguide-users] RE: Come get your Key IDs ########################################################################## */ include 'constants.php'; $configFilePath = 'C:\\Program Files\\MapGuideOpenSource2.0\\WebServerExtensions\\www\\webconfig.ini'; $mgSessionId = ($_SERVER['REQUEST_METHOD'] == "POST")? $_POST['SESSION']: $_GET['SESSION']; $mapName = ($_SERVER['REQUEST_METHOD'] == "POST")? $_POST['MAPNAME']: $_GET['MAPNAME']; $xmlSelectString = urldecode(stripslashes($_REQUEST["Selected"])); $LayerName = urldecode(stripslashes($_REQUEST["LayerName"])); $KeyName = urldecode(stripslashes($_REQUEST["DesiredField"])); $DestinationKeyName = urldecode(stripslashes($_REQUEST["DestinationKeyName"])); $KeepQuotes = urldecode(stripslashes($_REQUEST["Quotes"])); $IsPost = urldecode(stripslashes($_REQUEST["IsPost"])); $ReportURL = urldecode(stripslashes($_REQUEST["URL"])); $AdditionalData = isset($_REQUEST["Additional"]) ? $_REQUEST["Additional"] : ''; // Initialize the Web Extensions and connect to the Server using // the Web Extensions session identifier stored in PHP // session state. echo ' <!-- MG Session ID: '.$mgSessionId.' -->'.PHP_EOL; MgInitializeWebTier ($configFilePath); $userInfo = new MgUserInformation($mgSessionId); $siteConnection = new MgSiteConnection(); $siteConnection->Open($userInfo); $resourceService = $siteConnection->CreateService(0); $featureService = $siteConnection->CreateService(2); $queryOptions = new MgFeatureQueryOptions(); $map = new MgMap(); $map->Open($resourceService, $mapName); // Create the selection object by retrieving the current // selection from the map. $selection = new MgSelection($map,$xmlSelectString); $layers = $selection->GetLayers(); if ($layers) { for ($i = 0; $i < $layers->GetCount(); $i++) { // Only check selected features in the requested layer. $layer = $layers->GetItem($i); if ($layer && $layer->GetName() == $LayerName) { // Create a filter containing the IDs of the selected // features on this layer $layerClassName = $layer->GetFeatureClassName(); $selectionString = $selection->GenerateFilter($layer, $layerClassName); // Get the feature resource for the selected layer $layerFeatureId = $layer->GetFeatureSourceId(); $layerFeatureResource = new MgResourceIdentifier($layerFeatureId); // Apply the filter to the feature resource for the // selected layer. This returns // an MgFeatureReader of all the selected features. $queryOptions->SetFilter($selectionString); try { $featureReader = $featureService->SelectFeatures($layerFeatureResource, $layerClassName, $queryOptions); } catch(MgException $e) { echo ' <pre class="DEBUG">'.$e->GetMessage().'</pre>'; // echo '<pre class="DEBUG">'.$e->GetDetails().'</pre>'; // echo '<pre class="DEBUG">'.$e->GetStackTrace().'</pre>'; } // Process each item in the MgFeatureReader, // extracting the desired property value $val="'"; if (!isset($featureReader)) { ?> <p>ERROR: Unable to retrieve data from the map.</p> <?php } else { while ($featureReader->ReadNext()) { $val = $val.getPropertyValueFromFeatReader($featureReader, $KeyName)."','"; } $val = substr($val, 0, strlen($val)-2); // echo '<pre class="debug">'.$val.'</pre>'; // echo '<pre class="debug">'.$KeepQuotes.'</pre>'; if ($KeepQuotes!='true') { $val = urlencode(str_replace("'", '', $val)); } // echo '<pre class="debug">'.$ReportURL."?".$DestinationKeyName."=".$val."&".$AdditionalData.'</pre>'; if ($IsPost == 'true') // create a form and submit it. { ?> <form action="<?php echo $ReportURL; ?>" method="POST"> <input type="hidden" id="<?php echo $DestinationKeyName; ?>" name="<?php echo $DestinationKeyName; ?>" value="<?php echo $val; ?>"> <?php // Don't forget to process any additional parameters if (strlen($AdditionalData) > 0) { //split the parameters into an array $moreParams = explode('&', $AdditionalData); foreach ($moreParams as $value) { $thisParam = explode('=', $value); $thisName = $thisParam[0]; $thisValue = $thisParam[1]; ?> <input type="hidden" id="<?php echo $thisName; ?>" name="<?php echo $thisName; ?>" value="<?php echo $thisValue; ?>"> <?php } } ?> <input type="submit"> </form> <p>Oops! The automatic JavaScript form submission didn't work. Activate the SUBMIT button to finish retrieving your report.</p> <script type="text/javascript"> document.forms[0].submit(); </script> <?php } else { // send a GET request header("Location: ".$ReportURL."?".$DestinationKeyName."=".$val."&".$AdditionalData); exit; } } } } echo ' <p>No objects were selected from the '.$LayerName.' layer.</p>'.PHP_EOL; } else { echo ' <p>No selected layers.</p>'.PHP_EOL; } function getPropertyValueFromFeatReader($featureReader, $propertyName) { $propValue='UNKNOWN'; $propertyType = $featureReader->GetPropertyType($propertyName); switch ($propertyType) { case MgPropertyType::Null : break; case MgPropertyType::Boolean : $temp = $featureReader->GetBoolean($propertyName); $propValue = printBoolean($temp); break; case MgPropertyType::Byte : $propValue = $featureReader->GetByte($propertyName); break; case MgPropertyType::DateTime : $temp = $featureReader->GetDateTime($propertyName); $propValue = printDateTime($temp); break; case MgPropertyType::Single : $propValue = $featureReader->GetSingle($propertyName); break; case MgPropertyType::Double : $propValue = $featureReader->GetDouble($propertyName); break; case MgPropertyType::Int16 : $propValue = $featureReader->GetInt16($propertyName); break; case MgPropertyType::Int32 : $propValue = $featureReader->GetInt32($propertyName); break; case MgPropertyType::Int64 : $propValue = $featureReader->GetInt64($propertyName); break; case MgPropertyType::String : $propValue = $featureReader->GetString($propertyName); break; default: $propValue = ''; } return $propValue; } ?> </body> </html>
mais ce que je n'arrive pas à faire c'est le fichier test.php dans sa structure ( sachant que je suis novice en php)
avez vous une idée
merci à vous
Hors ligne
Pages: 1
- Sujet précédent - [Autodesk Mapguide Studio 2008/09 ] Fonction Appeller une URL - Sujet suivant