Forum


Replies: 5   Views: 469
El método clearblocks no limpia las variables no utilizadas
Topic closed:
Please note this is an old forum thread. Information in this post may be out-to-date and/or erroneous.
Every phpdocx version includes new features and improvements. Previously unsupported features may have been added to newer releases, or past issues may have been corrected.
We encourage you to download the current phpdocx version and check the Documentation available.

Posted by rmartinez  · 27-10-2022 - 10:29

Buenas.

No sé si será desde que actualicé a la versión 13 Advanced (venía de la 8.5 Advanced) pero me acabo de dar cuenta que el método clearBlocks ya no elimina las variables no utilizadas. He creado un word con solo $TITULO_DOCUMENTO$ y, aplicando un código como el siguiente, me genera un word con $TITULO_DOCUMENTO$

$docx = new CreateDocxFromTemplate($file_plantilla);
$docx->clearBlocks();
$docx->createDocxAndDownload($filename, true);

¿Alguna idea?

Gracias.

Saludos.

Posted by admin  · 27-10-2022 - 10:38

Hola,

El método clearBlocks (https://www.phpdocx.com/api-documentation/templates/removes-block-variable-from-Word-template) solo borra las variables (placeholders) de tipo de bloque que existen en el documento. En la versión 8.5 y anteriores el método funcionaba igual.

Por defecto las variables de tipo bloque se definen como $BLOCK_. En la página  https://www.phpdocx.com/documentation/practical/blocks, puedes encontrar más información relacionada con bloques.

Las variables que no sean de tipo bloque se pueden eliminar con el método removeTemplateVariable (https://www.phpdocx.com/api-documentation/templates/remove-template-variable).

Saludos.

Posted by rmartinez  · 27-10-2022 - 11:07

Pues siempre había pensado que eliminaba todo tipo de variables.

Entonces, ¿no existe un método similar para eliminar todas las variables que no sean de tipo block? ¿Solo tengo la opción de utilizar removeTemplateVariable? En caso afirmativo, creo que sería interesante implementar un método para limpiar todas las variables de este tipo.

Gracias.

Saludos.

Posted by admin  · 27-10-2022 - 11:12

Hola,

El método clearBlocks no ha cambiado, y su funcionalidad es exactamente la descrita en la documentación:

Removes remaining BLOCK type variables from the Word document.

El método removeTemplateVariable elimina cualquier tipo de variable. Si no las sabes de antemano, puedes obtenerlas utilizando el método getTemplateVariables.

Saludos.

Posted by rmartinez  · 27-10-2022 - 11:34

Ok, perfecto.

Muchas gracias.

Saludos.

Posted by peteruser1  · 29-10-2022 - 16:36

Deleted by admin · 30-10-2022 - 08:19