you shouldnt need a common part, if the data transfered from client side to
server side is a simple string.
but we can try that.
create a new DataMappa.php file in dataMappa/comon/
with:
class DataMappa extends CwSerializable {
public $flag;
/**
* @see Serializable::unserialize()
*/
public function unserialize($struct) {
$this->flag = self::unserializeValue($struct, 'flag');
}
}
and in your ClientDataMappa.php, change:
public function buildRequest() {
if ($this->flag) {
$result = new DataMappa;
$result->flag = $this->flag;
return $result;
}
}
and in your ServerDataMappa.php, change:
public function initializeRequest($requ) {
if ($requ) {
$this->flag=$requ->flag;
return $this->flag;
}
}
I Yves,
Sorry for my english . I have try tu use the comment, but the
error
don't disappear. The same error persist even if I comment all the line in
the serverclass. It's possible thath I need a Common part?
Hi Luigi,
It is an english only list, so you will better information if you ask your
question in english ;-)
Well, I saw that your error come form the server side of your plugin and
you
try to get a property of an object which does not exist.
You can try to check this line
$mapOverlay =
$this->serverContext->getPluginManager()->mapOverlay;
$mapOverlay->updateMap($layer);
$this->serverContext->getMapObj()->save('/tmp/debug.map');
Or comment some line begining in the end and go up until the error
disappear.
Regards,
Y.
Le Lundi 2 Avril 2007 11:48, Luigi.marotta a �crit�:
Sto cercando di scrivere un plugin che, utilizzando mapOvrlay, mi
consenta
di campiare l'argomento "data" di un
layer nel mio map file. Per il momento il plugin consiste: in un
pulstante
che cambia un'immagine.
La parte client �:
<?php
/**
* ClientDataMappa.php
*/
class ClientDataMappa extends ClientPlugin
implements ServerCaller, GuiProvider {
protected $specialactiontrigger;
protected $flag;
public function handleHttpPostRequest($request) {
if (isset($request['specialactiontrigger'])) {
$this->flag = true;
}
else {
$this->flag = false;
}
}
public function handleHttpGetRequest($request) {}
public function buildRequest() {
if ($this->flag) {
$flag=$this->flag;
return $flag;
}
}
protected function drawUserForm() {
$smarty = new Smarty_Plugin($this->getCartoclient(), $this);
return $smarty->fetch('dataInput.tpl');
}
public function renderForm(Smarty $template) {
$template->assign('dataInput', $this->drawUserForm());
}
public function initializeResult ($request){
if (isset ($this->flag)) {
print ('ok');}
}
public function handleResult($request){
if (isset ($this->flag)) {
print ('ok');}
}
}
?>
Il template:
<!-- dataInput.tpl -->
<input type="submit" name="specialactiontrigger" value="ok" />
e la parte server:
<?php
class ServerDataMappa extends ClientResponderAdapter {
public $flag;
public function initializeRequest($requ) {
if ($requ) {
$this->flag=$requ;
$flag=$this->flag;
return $flag;
}
}
public function handlePreDrawing($request){
if (isset ($this->flag)) {
$layer = new LayerOverlay();
$layer->action = BasicOverlay::ACTION_UPDATE;
$layer->name = "mappa";
$layer->data = "images/cc_20050621.tif";
$mapOverlay =
$this->serverContext->getPluginManager()->mapOverlay;
$mapOverlay->updateMap($layer);
$this->serverContext->getMapObj()->save('/tmp/debug.map');
}
}
}
?>
La parte Cliente sembra funzionare ma quando viene chiamato il server mi
compare questo errore:
Failure
CartoWeb version: 3.3.0 [$Revision: 1.2 $]
class: SoapFaultWrapper
message: Error [8, Trying to get property of non-object,
C:\wamp\www\cartoweb3\server\Cartoserver.php, 229]
Backtrace:
file: 229 - C:\wamp\www\cartoweb3\server\Cartoserver.php
call: Common::cartowebErrorHandler(8, "Trying to get property of
non-object",
"C:\wamp\www\cartoweb3\server\Cartoserver.php", 229, Array(4))
file: 265 - C:\wamp\www\cartoweb3\server\Cartoserver.php
call: Cartoserver->checkRequest(Object(MapRequest))
file: 349 - C:\wamp\www\cartoweb3\server\Cartoserver.php
call: Cartoserver->doGetMap(Object(MapRequest))
file: 370 - C:\wamp\www\cartoweb3\server\Cartoserver.php
call: Cartoserver->callWithExceptionCheck("doGetMap",
Object(MapRequest))
file: 81 - C:\wamp\www\cartoweb3\server\MapResultCache.php
call: Cartoserver->cacheGetMap(Object(MapRequest))
file: 115 - C:\wamp\www\cartoweb3\server\MapResultCache.php
call: MapResultCache->getMapResultFromServer(Object(MapRequest))
file: 198 - C:\wamp\www\cartoweb3\server\MapResultCache.php
call: MapResultCache->cacheMapResult(Object(MapRequest))
file: 380 - C:\wamp\www\cartoweb3\server\Cartoserver.php
call: MapResultCache->getMap(Object(MapRequest))
file: 104 - C:\wamp\www\cartoweb3\client\CartoserverService.php
call: Cartoserver->getMap(Object(MapRequest))
file: 165 - C:\wamp\www\cartoweb3\client\CartoserverService.php
call: CartoserverService->callDirect("getMap", Object(MapRequest))
file: 233 - C:\wamp\www\cartoweb3\client\CartoserverService.php
call: CartoserverService->callFunction("getMap", Object(MapRequest))
file: 916 - C:\wamp\www\cartoweb3\client\Cartoclient.php
call: CartoserverService->getMap(Object(MapRequest))
file: 1045 - C:\wamp\www\cartoweb3\client\Cartoclient.php
call: Cartoclient->getMapResultFromRequest(Object(MapRequest))
file: 1220 - C:\wamp\www\cartoweb3\client\Cartoclient.php
call: Cartoclient->doMain()
file: 38 - C:\wamp\www\cartoweb3\htdocs\client.php
call: Cartoclient->main()
file: 3 - C:\wamp\www\cartoweb3\htdocs\mymap.php
call: require_once("C:\wamp\www\cartoweb3\htdocs\client.php").
Utilizzando la funzione print ho potuto notare che nessuna parte del
server
viene eseguita o, comunque, l'errore
viene generato dall'inizializzazione.
Qualcuno ha gia implementato un plugin simele?
Qualcuno pu� aiutarmi?
Non so pi� che pesci prendere.
Grazie.
--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f
Sponsor:
Prestiti e Finanziamenti con un semplice click, scopri subito se sei
finanziabile cliccando qui
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=2910&d=20070402
_______________________________________________
Cartoweb-users mailing list
Cartoweb-users@lists.maptools.org
http://lists.maptools.org/mailman/listinfo/cartoweb-users
--
Yves Jacolin
---
http://yjacolin.gloobe.org
--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f
Sponsor:
Tutto per il Modding PC: Case, Led, Neon, Ventole. Il tuo PC
personalizzato
da noi conviene, visita il nostro sito
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=6123&d=20070403
_______________________________________________
Cartoweb-users mailing list
Cartoweb-users@lists.maptools.org
http://lists.maptools.org/mailman/listinfo/cartoweb-users
_______________________________________________
Cartoweb-users mailing list
Cartoweb-users@lists.maptools.org
http://lists.maptools.org/mailman/listinfo/cartoweb-users