[Cartoweb-users] PDF export with custom fields

Alexandre Saunier alexandre.saunier at camptocamp.com
Thu May 10 10:50:54 EDT 2007


I guess you're right. noteA and noteB should be part of the 
$optionalInputs field to be handled the same way title and note are.

If you already have extended the exportPdf plugin in your project, I 
would suggest to override the ClientExportPdf::$optionalInputs property 
in order to add your new fields to the inital array.
(see ClientExportPdf.php l.80-81)

Dirk Jesko wrote:
> Hello,
> 
> hmm. I can't get it to work. Below I copied an excerpt from 
> exportPdf.ini and the corresponding part from the template. Now, the 
> initial content defined in the ini file for the blocks "title" and 
> "note" are displayed in the corresponding form fields, but the fields 
> for "noteA" and "noteB" are empty. Further, any text typed into the 
> input fields for "title" or "note" appears on the generated pdf, but the 
> text typed into the fields "pdfNoteA" and "pdfNoteB" is ignored. 
> Instead, the generated blocks for noteA and noteB contain the strings 
> defined in the ini file. If I add {if $pdfNoteA}{/if} resp. {if 
> $pdfNoteB}{/if} around the corresponding parts of the template, the 
> input fields aren't displayed at all.
> 
> Although, I did some debugging of the ClientExportPdf class, I could not 
> find out, why the blocks are not handled correctly. My best guess would 
> be the fact that the two additional fields ('noteA' and 'noteB') are not 
> added to the $optionalInputs field. The drawUserForm() function on the 
> other hand only assigns fields that are defined in $optionalInputs to 
> smarty-variables. Maybe, other functions depend on it too.
> 
> Regards,
> Dirk
> 
> 
> 
> exportPdf.ini:
> 
> general.activatedBlocks = ... , title, note, noteA, noteB, ...
> 
> blocks.title.type = text
> blocks.title.content = "Titel"
> blocks.title.parent = info_title
> ...
> 
> blocks.note.type = text
> blocks.note.content = "Notiz"
> blocks.note.parent = info_title
> ...
> 
> blocks.noteA.type = text
> blocks.noteA.content = "Notiz 1"
> blocks.noteA.parent = info_title
> ...
> 
> blocks.noteB.type = text
> blocks.noteB.content = "Notiz 2"
> blocks.noteB.parent = info_title
> ...
> 
> 
> form.tpl:
> 
>    {if $pdfTitle}
>      <tr>
>        <td>{t}Titel:{/t}</td>
>        <td><input type="text" id="pdfTitle" name="pdfTitle" 
> value="{$pdfTitle_value}"/></td>
>      </tr>
>    {/if}
>    {if $pdfNote}
>      <tr>
>        <td>{t}Notiz:{/t}</td>
>        <td><input type="text" id="pdfNote" name="pdfNote" 
> value="{$pdfNote_value}"/></td>
>      </tr>
>    {/if}
>      <tr>
>        <td>{t}Notiz:{/t}</td>
>        <td><input type="text" id="pdfNoteA" name="pdfNoteA" 
> value="{$pdfNoteA_value}"/></td>
>      </tr>
>      <tr>
>        <td></td>
>        <td><input type="text" id="pdfNoteB" name="pdfNoteB" 
> value="{$pdfNoteB_value}"/></td>
>      </tr>
> 
> 
> 
> 
> Alexandre Saunier wrote:
> 
>> Hello,
>>
>> add the new inputs into the HTML template just as it's done for 
>> pdfTitle and pdfNote (see exportPdf/templates/form.tpl).
>> The naming convention for the new form inputs is:
>> - capitalize the first letter of the field name
>> - add the prefix "pdf" in front of it
>> For instance:
>> title => pdfTitle
>> note => pdfNote
>> foobar => pdfFoobar
>>
>> Alexandre
>>
>> Dirk Jesko wrote:
>>
>>> Hello,
>>>
>>> in addition to the title and note, I would like to add three fields 
>>> to an exported pdf. The user shall be able to type in the text that 
>>> shall appear via the GUI. I managed to add the fields to the pdf by 
>>> adding them to the general.activatedBlocks in exportPdf.ini. But how 
>>> do I link them to the GUI, i.e. how do I reference them within the 
>>> template?
>>>
>>>
>>> Kind regards,
>>> Dirk
>>> _______________________________________________
>>> 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