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

Jacolin Yves yjacolin at free.fr
Wed Jul 19 04:29:59 EDT 2006


Hey good idea ! Why I didn't get it sooner !! :-( 2 weeks on holidays and I 
forgot all the base :-/

Ok, the problem came from here : 
class ClientExportFile extends ClientPlugin implements ServerCaller {
   ..
}

If I remove "implements ServerCaller" it is ok.

Any idea ?

Y.
Le Mercredi 19 Juillet 2006 10:18, Oliver Christen a écrit :
> 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/HowToDisplayOnTheMapAPointFromADatabaseQuer
> >y
> >
> > 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

-- 
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)



More information about the Cartoweb-users mailing list