[Cartoweb-users] Using the selected object in the layer in my own plugin

Eduard Witteveen e.witteveen at HAWARIT.COM
Fri Oct 7 04:27:49 EDT 2005


Alexandre Saunier wrote:

> $smarty = new Smarty_Cartoclient($this->cartoclient);
> $smarty->assign(array('charset'     => Encoder::getCharset(),
>                       'metas'       => $this->metas,
>                       'sessionData' => $data,
>                       ));
> return $smarty->fetch('view.xml.tpl');
>
> associated to a dedicated XML template file view.xml.tpl.
>
> That was just a tip. ;)

Good to point it out, i already know the mechanism. A little sidenote, 
would it be possible to make the errormessage clearer when this 
view.xml.tlp wasnt found? (with a path)

>> The problem is that i dont know how i should access this 
>> $tableGroups, which is stored inside the ClientTables.php (private). 
>> I know that the value is also assigned to Smarty under the 
>> key='tables', but i also dont know how to access it.
>
> I presume you use CartoWeb3.0.
>
> In CVS version there is a public method ClientTables::getTableGroups() 
> which is missing in 3.0.0.
>
> If you prefer to keep using CW3.0, a solution would be to extend the 
> tables plugin in your project and add this method in your extended class
> (see 
> http://cartoweb.org/doc/xhtml/dev.newplugin.html#dev.newplugin.adapting.extending) 
>
> Obviously you'll have to switch ClientTables::tableGroups from private 
> to protected in the ClientTables.php upstream code. It's not a big 
> deal since it does not affect the class behavior much.

Okay, i understand the way to solve it in CW3.0, thank you.

I am curious how stable is the version in CVS?
And when i use the version from cvs, what would be the code to call this 
getTableGroups() method(from your story i suspect that extending is not 
nessecary over there? and (maybe i like this more) can it also be used 
in CW3.0 by adding a getTableGroups() method?)

> By the way note that in CVS version, most plugins private methods and 
> members have recently been switched to protected (including 
> ClientTables::tableGroups) in order to make plugin extending easier.

Great!



More information about the Cartoweb-users mailing list