[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