[SOLVED] PDFMaker - funzione if/else

Di più
04/02/2020 16:59 - 10/02/2020 09:13 #3580 da milvis@hotmail.it
Buona sera, il mio problema parte dalla seguente tabella.
<table border="1" cellpadding="2" cellspacing="0" style="width:100%;border-collapse:collapse">
	<tbody>
		<tr>
			<td colspan="2"><span style="font-size:13px;">PROVA_UNO: <span style="color:#2f5596;"><strong>$ACCOUNTS_BILL_STREET$</strong></span><br />
			PROVA_DUE: <span style="color:#2f5596;"><strong>$ACCOUNTS_SHIP_STREET$</strong></span><br />
			PROVA_TRE: <span style="color:#2f5596;"><strong>$ACCOUNTS_BILL_CITY$​</strong></span></span></td>
		</tr>
	</tbody>
</table>

Vorrei far si che le tre righe appaiano solo quando la variabile associata è non nulla. Ho provato il seguente codice con la funzione if/else:
<table border="1" cellpadding="2" cellspacing="0" style="width:100%;border-collapse:collapse">
	<tbody>
		<tr>
			<td colspan="2"><span style="font-size:13px;">[CUSTOMFUNCTION|its4you_if|$ACCOUNTS_BILL_STREET$|!=||PROVA_UNO: <span style="color:#2f5596;"><strong>$ACCOUNTS_BILL_STREET$</strong></span><br />
			||CUSTOMFUNCTION][CUSTOMFUNCTION|its4you_if|$ACCOUNTS_SHIP_STREET$|!=||PROVA_DUE: <span style="color:#2f5596;"><strong>$ACCOUNTS_SHIP_STREET$</strong></span><br />
			||CUSTOMFUNCTION][CUSTOMFUNCTION|its4you_if|$ACCOUNTS_BILL_CITY$​|!=||PROVA_TRE: <span style="color:#2f5596;"><strong>$ACCOUNTS_BILL_CITY$​</strong></span>||CUSTOMFUNCTION]</span></td>
		</tr>
	</tbody>
</table>

Mi vengono visualizzate correttamente solo le righe in cui ho variabili non nulle, solamente che non mi viene conservata la formattazione. Il punto fondamentale sarebbe come poter gestire il <br /> in modo che vada a capo solo se la riga è effettivamente visualizzata. Come potrei fare?

Allego un'immagine in cui ho due tabelle, la prima corrispondente alla prima porzione di codice, la seconda corrispondente alla seconda porzioni di codice.

Grazie a tutti
Allegati:
Ultima Modifica 10/02/2020 09:13 da dende.
L\'Argomento è stato bloccato.
Di più
07/02/2020 10:27 #3581 da dende
Risposta da dende al topic PDFMaker - funzione if/else
Buongiorno,
le formattazioni HTML vanno spostate al di fuori della custom function in quanto questa restituirà solamente un elemento testuale.
Grazie
L\'Argomento è stato bloccato.
Di più
07/02/2020 15:48 #3586 da milvis@hotmail.it

dende ha scritto: Buongiorno,
le formattazioni HTML vanno spostate al di fuori della custom function in quanto questa restituirà solamente un elemento testuale.
Grazie


Grazie mille della risposta. Una sola precisazione, se possibile: le formattazioni HTML vanno al di fuori di questa particolare funzione custom e quindi potrei (se fossi in grado) creare una funzione personalizzata che mi restituisca anche la formattazione HTML o per come è "progettato" il pdf maker questo sarà sempre impossibile?

Chiedo perchè il problema mi rimarrebbe con il <br /> che, se lasciato fuori dalla funzione custom, mi lascerebbe in questo caso una riga vuota; inoltre il pdf da preparare è più complicato e probabilmente dovrò inserire o meno righe e celle in base al valore di alcune variabili,

Se non fosse possibile in nessun modo una soluzione alternativa più brutale potrebbe essere creare un processo che mi gestisca il codice html su una variabile "di appoggio" da richiamare poi nel pdfmaker, solo che mi sembra meno intuitivo anche in ottica di mantenimento e aggiornamento futuro.

Altrimenti non saprei, non mi vengono altre alternative.

Grazie ancora e buon lavoro
L\'Argomento è stato bloccato.
Di più
07/02/2020 16:08 #3587 da dende
Risposta da dende al topic PDFMaker - funzione if/else
Per come sono implementate, le funzioni custom accettano contenuto che viene trasformato in plain text.
Per evitare la conversione ed usare quanto passato va fatta una piccola modifica al codice.
In modules/PDFMaker/InventoryPDF.php va sostituito
$customfunction->plaintext
con
$customfunction->innertext
nel metodo replaceCustomFunctions
L\'Argomento è stato bloccato.
Di più
08/02/2020 12:49 #3588 da milvis@hotmail.it
Funziona perfettamente. Grazie davvero, mi hai risparmiato un bel pò di grane :)
L\'Argomento è stato bloccato.
Tempo creazione pagina: 0.220 secondi