|
||||
[Chameleon] LegendTemplate WidgetPaul Spencer spencer@dmsolutions.caTue, 13 Jan 2004 21:36:56 -0500
|
There definitely seems to be something odd here. These lines of code: if (strcmp(substr($this->mszTemplate, 0, 1), "/") || strcmp(substr($this->mszTemplate, 1, 1), ":") || strcmp(substr($this->mszTemplate, 0, 1), "\\") ) seem to be wrong. I think that the intention of the block following it is to calculate the location of the template if a relative path is given. The if doesn't seem to do that. I think it should say: if (strcmp(substr($this->mszTemplate, 0, 1), "/") != 0 && strcmp(substr($this->mszTemplate, 1, 1), ":") != 0 && strcmp(substr($this->mszTemplate, 0, 1), "\\") != 0 && strcasecmp(substr($this->mszTemplate, 0, 7, "http://" != 0) { } and the second if which reads: if (strtoupper(substr($this->mszTemplate, 0, 7)) == "http://") should read if (strtolowever(substr($this->mszTemplate, 0, 7)) == "http://") Can you try this and let me know if it works? Cheers, Paul Rene Teniere wrote: > Paul, > > Well... Here goes, did a little digging and this is what I came up > with. You can be the judge of the results: > > function InitDefaults() > { > if (isset($this->maParams["EMBEDDED"]) && > strcasecmp(trim($this->maParams["EMBEDDED"]), "FALSE") == > 0) > { > $this->moTextButton = new CWCTextButton($this); > $this->moPopup = new CWCPopup($this); > $this->moPopup->mszLink = > "widgets/LegendTemplatePopup.phtml"; > $this->moTextButton->InitDefaults(); > echo 'step1 '; > } > > if (isset($this->maParams["TEMPLATE"])) > { > echo 'step2 '; > $this->mszTemplate = trim($this->maParams["TEMPLATE"]); > print($this->maParams["TEMPLATE"]); > //TEMPLATE is relative to the application template, not the > map file :) > print($this->mszTemplate); > if (strcmp(substr($this->mszTemplate, 0, 1), "/") || > strcmp(substr($this->mszTemplate, 1, 1), ":") || > strcmp(substr($this->mszTemplate, 0, 1), "\\") ) > { > $oChameleon = GetChameleonApplication(); > $szTemplatePath = > dirname($oChameleon->mszTemplateName); > $this->mszTemplate = > realpath($szTemplatePath."/".$this->mszTemplate); > echo ' not HTTP:// '; > print($this->mszTemplate); > } > if (strtoupper(substr($this->mszTemplate, 0, 7)) == > "http://") > { > echo 'step3 '; > $aszFile = file($this->mszTemplate); > $szTmpName = tempnam($_SESSION['gszTmpPath'], > "legendtemplate").".html"; > $fh = fopen($szTmpName, "w"); > $nbLine = count($aszFile); > > for($i=0; $i<$nbLine; $i++) > { > fwrite($fh, $aszFile[$i]); > } > fclose($fh); > > $this->mszTemplate = $szTmpName; > print($this->mszTemplate); > } > } > } > > Here is the output: > > step1 > step2 > c:/chameleon11a/websites/template/legend_template.html > c:/chameleon11a/websites/template/legend_template.html > not HTTP:// > > Also, here is another error message: > PHP Notice: Use of undefined constant ERR_ERROR - assumed 'ERR_ERROR' > in c:\chameleon11a\htdocs\widgets\LegendTemplate.widget.php on line 372 > > P.S. I know the template is pointed into the right direction because > when I put 'c:/chameleon11a/websites/template/legend_template.html' into > my web browser, it will show up. > > Rene > > >>>>pagameba@magma.ca 2004-01-12 10:05:53 AM >>> > > Rene, > > for some reason, it is not finding your template but I can't figure out > > why not. You can try setting the template as an HTTP:// reference, the > > code also handles that. You can also try adding 'embedded="false"' to > > the widget, which will make the legend appear in a popup when you click > > the text button. That does mean that you will need to provide some > additional parameters for the popup and textbutton though. > > Unfortunately, it seems to work fine here. Are you willing to dig into > > the code a little bit? If yes, the you can edit the > LegendTemplate.widget.php file in the InitDefaults function and place > some echo statements at various places to see which code is executing, > > ie echo 'step 1'; echo 'step 2'; and so on. > > The basic purpose of this is to find out where the code ends up setting > > the variable $this->mszTemplate to an empty string (or fails to set it > > to the correct value). > > Cheers, > > Paul > > Rene Teniere wrote: > > >>Hi All, >> >>Can't seem to be able to get the LegendTemplate Widget to work. >>ErrorReport says that no legend template is specified, even though > > it > >>is. The template is a standard MapServer legend template format, and > > I > >>have used several different ones, as well as >>legend_template_widget.html. I have also tried removing the template >>reference in the mapfile with no results. Anyone know what's up with >>this? I've been working on this for two days and am starting to pull > > my > >>hair out. >> >>Rene >> >><cwc2 type="legendtemplate" visible="true" enabled="true" >> > > template="C:/chameleon11a/websites/template/legend_template_chameleon.html"/> > >> >>Rene J.R. Teniere - BSc., D.GIS >>GIS Technician >>Nova Scotia Department of Natural Resources >>Forestry Division (GIS) - Truro >> >>Phone: (902) 893-5655 >>Mobile: (902) 209-8956 >>_______________________________________________ >>Chameleon mailing list >>Chameleon@lists.maptools.org >>http://lists.maptools.org/mailman/listinfo/chameleon >> > > -- ----------------------------------------------------------------- |Paul Spencer spencer@dmsolutions.ca | |-----------------------------------------------------------------| |Applications & Software Development | |DM Solutions Group Inc http://www.dmsolutions.ca/| -----------------------------------------------------------------
This archive was generated by Pipermail. |
MapTools.org -- Hosted by DM Solutions Group |