[Cartoweb-users] Send data from client to server part in a Plugin

Oliver Christen oliver.christen at camptocamp.com
Wed Jul 19 04:18:05 EDT 2006


well, try to put some print at several place to see when it hangs or remove 
parts of your code till you get some other error


> Hi,
>
> I can not manage this. I don't understand how it works and so I can not 
> find
> the error. I follow this url :
> http://www.cartoweb.org/cwiki/HowToDisplayOnTheMapAPointFromADatabaseQuery
>
> So, here the content of my ClientExportFile.php :
> <?php
> class ClientExportFile extends ClientPlugin implements ServerCaller {
>    /**
>    * Constructor
>    */
>    public function __construct() {
>        $this->log =& LoggerManager::getLogger(__CLASS__);
>        parent::__construct();
>        $this->Message = "";
>   }
>
>   public function handleHttpPostRequest($request) {
>        if($request['create_validate_all'] == 3) {
>          $this->exportOn = 1;
>        }
>    }
>
>   public function buildRequest() {
>      if($this->exportOn==1){
>         $mydata= new ExportFile();
>
> $mydata->filepath="/var/www/html/cartoweb3/htdocs/generated/zip/tssitespt.zip";
>         return $mydata;
>      }
>   }
>
>    /**
>     * @see ServerCaller::initializeResult()
>     */
>    public function initializeResult($ExportFileResult) {}
>
>
>    /**
>     * @see ServerCaller::handleResult()
>     */
>    public function handleResult($ExportFileResult) {}
>
> }
> ?>
> /********************************************End*****************************
> Here the content of the ExportFile.php in common directory :
>
> <?php
> require_once(CARTOWEB_HOME . 'common/CwSerializable.php');
>
> class ExportFileRequest extends CwSerializable {
>
>      /**
>       * filepath of the zip
>       * @var string
>       */
>      public $filepath;
>
>      /**
>      * @see CwSerializable::unserialize()
>      */
>      public function unserialize($struct) {
>        $this->filepath = self::unserializeValue($struct, 'filepath',
> 'ExportFile');
>      }
>
>    /**
>     * Result
>     * @package Plugins
>     */
>    class ExportFileResult {}
>
> }
> ?>
> /********************************
> And the exportFile.wsdl.inc file in common directory :
>     <!-- exportFile -->
>      <complexType name="ExportFile">
>         <all>
>           <element name="filepath" type="xsd:string"/>
>         </all>
>      </complexType>
>
> /********************************
> Finally, the ServerExportFile.php file in server dir :
> <?php
> class ServerExportFile extends ClientResponderAdapter {
>
>   function initializeRequest($requ) {
>      if ($requ)
>            $this->filepath = $requ->filepath;
>   }
> ?>
> /*******************************
>
> At this moment, I just want to get $filepath from the form in cartoclient, 
> in
> the client side and send it to server side.
> I just obtain a not so nice white screen :-( I have no errors in
> httpd/error_log nor in cartoclient.log
>
> any ideas where the errors are ? Or how to have more informations in the
> cartoclient.log ?
>
> Thank you !
>
> Y.
> Le Mardi 18 Juillet 2006 16:44, Damien Corpataux a écrit :
>> Hi,
>>
>> yes indeed, this looks correct.
>>
>> BUT: the $mydata variable returned by ServerPlugin::initializeRequest() 
>> HAS
>> TO be an object that implements the CwSerializable interface. Take a look
>> at /coreplugins/images/common/Images.php if you need an example.
>>
>> Also, don't forget to make your ClientPlugin implement the ServerCaller
>> interface, and make your ServerPlugin implement ClientResponder.
>>
>> Damien
>>
>>
>> ----- Original Message -----
>> From: "Jacolin Yves" <yjacolin at free.fr>
>> To: "Oliver Christen" <oliver.christen at camptocamp.com>
>> Sent: Tuesday, July 18, 2006 4:03 PM
>> Subject: Re: [Cartoweb-users] Send data from client to server part in a
>> Plugin
>>
>>
>> with the mail of Marc Monnerat and yours, I am begining to understand.
>> So in the clientMyPlugin class, I use :
>> public function buildRequest() {
>>  return $mydata;
>> }
>>
>> and in the serverMyPlugin class, I use :
>> function initializeRequest($requ) {
>>   if ($requ)
>>           $this->mydatat = $requ->mydata;
>> }
>>
>> Can you confirm ?
>>
>> Thank to you and marc Monnerat
>>
>> Y.
>>
>> Le Mardi 18 Juillet 2006 15:44, vous avez écrit :
>> > there is the public function handleHttpPostRequest($request) { (client
>> > side) if you need the data on server side, you will need to transfert
>> > them from client to server side via public function buildRequest() { 
>> > and
>> > recover
>> > the result of your sever-side functions (if any) with public function
>> > initializeResult($someresultobject) { or public function
>> > handleResult($someresultobject) {
>> >
>> > maybe there is a simpler way, I will ask around
>> >
>> > O.
>> >
>> > > Hello,
>> > > I want to use data from a form in my interface in the server part of 
>> > > my
>> > > plugin. Do I need to use ServerCaller::overrideRequest and
>> > > ClientResponder::initializeRequest ?
>> > >
>> > > I can not get informations about this, from the archive, and I am 
>> > > sure
>> > > to
>> > > read
>> > > something about this in the past.
>> > >
>> > > Thanks,
>> > >
>> > > Y.
>> > > --
>> > > Yves Jacolin
>> > > http://yjacolin.gloobe.org
>> > > ----
>> > > Stagaire Conservatoire Régional des Espaces Naturels de la région
>> > > Centre http://cahiersnaturalistes.free.fr/cpnrc/
>> > > ----
>> > > - Qu'est-ce que cela peut faire que je lutte pour la mauvaise cause
>> > > puisque je suis de bonne foi?
>> > > - Et qu'est-ce que ça peut faire que je sois de mauvaise foi
>> > > puisque c'est pour la bonne cause. (Jacques Prévert)
>> > >
>> > > _______________________________________________
>> > > Cartoweb-users mailing list
>> > > Cartoweb-users at lists.maptools.org
>> > > http://lists.maptools.org/mailman/listinfo/cartoweb-users
>
> -- 
> Yves Jacolin
> http://yjacolin.gloobe.org
> ----
> Stagaire Conservatoire Régional des Espaces Naturels de la région Centre
> http://cahiersnaturalistes.free.fr/cpnrc/
> ----
> - Qu'est-ce que cela peut faire que je lutte pour la mauvaise cause
> puisque je suis de bonne foi?
> - Et qu'est-ce que ça peut faire que je sois de mauvaise foi
> puisque c'est pour la bonne cause. (Jacques Prévert)
>
> _______________________________________________
> Cartoweb-users mailing list
> Cartoweb-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/cartoweb-users
> 



More information about the Cartoweb-users mailing list