DARKF3D3 Posted September 21, 2021 Share Posted September 21, 2021 (edited) Vorrei aggiungere un blocco che mostri il testo "ORDINE COMPLETO" all'interno della pagina del dettaglio ordine, subito l'elenco dei prodotti ordinati. Il testo dovrebbe essere visualizzato dopo l'ultimo prodotto, quindi se per esempio i prodotti sono 20, in pagine da 8, deve essere visibile solamente quando ci si sposta sull'ultima pagina. Ho aggiunto il seguente codice all'interno del ciclo FOR del file: /httpdocs/src/PrestaShopBundle/Resources/views/Admin/Sell/Order/Order/Blocks/View/product_list.html.twig {% if loop.last == true %} <tr><td colspan="8" style="background:#3c8f41;color:white;font-size:1.4rem;font-weight:bold;text-align:center;padding:.6rem;width:100%;">ORDER COMPLETED</td></tr> {% endif %} Il problema è che in questo modo il testo è mostrato su tutte le pagine. Edited September 28, 2021 by DARKF3D3 (see edit history) Link to comment Share on other sites More sharing options...
follettostore Posted September 27, 2021 Share Posted September 27, 2021 On 9/21/2021 at 11:14 AM, DARKF3D3 said: Vorrei aggiungere un blocco che mostri il testo "ORDINE COMPLETO" all'interno della pagina del dettaglio ordine, subito l'elenco dei prodotti ordinati. Il testo dovrebbe essere visualizzato dopo l'ultimo prodotto, quindi se per esempio i prodotti sono 20, in pagine da 8, deve essere visibile solamente quando ci si sposta sull'ultima pagina. Ho aggiunto il seguente codice all'interno del ciclo FOR del file: /httpdocs/src/PrestaShopBundle/Resources/views/Admin/Sell/Order/Order/Blocks/View/product_list.html.twig {% if loop.last == true %} <tr><td colspan="8" style="background:#3c8f41;color:white;font-size:1.4rem;font-weight:bold;text-align:center;padding:.6rem;width:100%;">ORDER COMPLETED</td></tr> {% endif %} Il problema è che in questo modo il testo è mostrato su tutte le pagine. Puoi riportarmi tutto il codice di questo file? Link to comment Share on other sites More sharing options...
DARKF3D3 Posted September 27, 2021 Author Share Posted September 27, 2021 Questo è il file originale: {% for product in orderForViewing.products.products %} {% include '@PrestaShop/Admin/Sell/Order/Order/Blocks/View/product.html.twig' with { 'product': product, 'productIndex': loop.index, 'paginationNum': paginationNum, 'isColumnLocationDisplayed': isColumnLocationDisplayed, 'isColumnRefundedDisplayed': isColumnRefundedDisplayed, 'isAvailableQuantityDisplayed': isAvailableQuantityDisplayed } %} {% endfor %} Mentre questo è quello modificato che mostra il blocco (però alla fine di ogni pagina di prodotti e non solo nell'ultima: {% for product in orderForViewing.products.products %} {% include '@PrestaShop/Admin/Sell/Order/Order/Blocks/View/product.html.twig' with { 'product': product, 'productIndex': loop.index, 'paginationNum': paginationNum, 'isColumnLocationDisplayed': isColumnLocationDisplayed, 'isColumnRefundedDisplayed': isColumnRefundedDisplayed, 'isAvailableQuantityDisplayed': isAvailableQuantityDisplayed } %} {% if loop.last == true %} <tr><td colspan="8" style="background:blue;color:white;">FINE PRODOTTI</td></tr> {% endif %} {% endfor %} Link to comment Share on other sites More sharing options...
follettostore Posted September 28, 2021 Share Posted September 28, 2021 14 hours ago, DARKF3D3 said: Questo è il file originale: {% for product in orderForViewing.products.products %} {% include '@PrestaShop/Admin/Sell/Order/Order/Blocks/View/product.html.twig' with { 'product': product, 'productIndex': loop.index, 'paginationNum': paginationNum, 'isColumnLocationDisplayed': isColumnLocationDisplayed, 'isColumnRefundedDisplayed': isColumnRefundedDisplayed, 'isAvailableQuantityDisplayed': isAvailableQuantityDisplayed } %} {% endfor %} Mentre questo è quello modificato che mostra il blocco (però alla fine di ogni pagina di prodotti e non solo nell'ultima: {% for product in orderForViewing.products.products %} {% include '@PrestaShop/Admin/Sell/Order/Order/Blocks/View/product.html.twig' with { 'product': product, 'productIndex': loop.index, 'paginationNum': paginationNum, 'isColumnLocationDisplayed': isColumnLocationDisplayed, 'isColumnRefundedDisplayed': isColumnRefundedDisplayed, 'isAvailableQuantityDisplayed': isAvailableQuantityDisplayed } %} {% if loop.last == true %} <tr><td colspan="8" style="background:blue;color:white;">FINE PRODOTTI</td></tr> {% endif %} {% endfor %} Il problema è che il twig non include il loop.last salvo non venga utilizzato il modello filter. A questo punto poiché il tuo codice in html non include alcun tipo di variabile perché non lo inserisci banalmente così? {% for product in orderForViewing.products.products %} {% include '@PrestaShop/Admin/Sell/Order/Order/Blocks/View/product.html.twig' with { 'product': product, 'productIndex': loop.index, 'paginationNum': paginationNum, 'isColumnLocationDisplayed': isColumnLocationDisplayed, 'isColumnRefundedDisplayed': isColumnRefundedDisplayed, 'isAvailableQuantityDisplayed': isAvailableQuantityDisplayed } %} {% endfor %} <tr><td colspan="8" style="background:blue;color:white;">FINE PRODOTTI</td></tr> Link to comment Share on other sites More sharing options...
DARKF3D3 Posted September 28, 2021 Author Share Posted September 28, 2021 In quel modo però ottengo sempre lo stesso risultato, ovvero il blocco viene mostrato dopo l'ultimo prodotto di ogni pagina, mentre io avrei bisogno di mostrarlo solamente una volta, sull'ultimo prodotto dell'ordine. Link to comment Share on other sites More sharing options...
follettostore Posted September 28, 2021 Share Posted September 28, 2021 15 minutes ago, DARKF3D3 said: In quel modo però ottengo sempre lo stesso risultato, ovvero il blocco viene mostrato dopo l'ultimo prodotto di ogni pagina, mentre io avrei bisogno di mostrarlo solamente una volta, sull'ultimo prodotto dell'ordine. Hai ragione, puoi provare così? {% set a = 1 %} {% for product in orderForViewing.products.products %} {% set a = a + 1 %} {% include '@PrestaShop/Admin/Sell/Order/Order/Blocks/View/product.html.twig' with { 'product': product, 'productIndex': loop.index, 'paginationNum': paginationNum, 'isColumnLocationDisplayed': isColumnLocationDisplayed, 'isColumnRefundedDisplayed': isColumnRefundedDisplayed, 'isAvailableQuantityDisplayed': isAvailableQuantityDisplayed } %} {% if orderForViewing.products.products|length == a %} <tr><td colspan="8" style="background:blue;color:white;">FINE PRODOTTI</td></tr> {% endif %} {% endfor %} Link to comment Share on other sites More sharing options...
DARKF3D3 Posted September 28, 2021 Author Share Posted September 28, 2021 (edited) Niente da fare. Da quello che ho visto credo che il problema sia perché il loop passa sempre tutti i prodotti indipendentemente dalla paginazione impostata. Semplicemente i prodotti che non devono essere mostrati sono nascosti dal file "product.html.twig" con l'aggiunta della classe "d-none" che aggiunge "display: none!important;" all'elemento. Infatti se si controlla l'html della pagina, si può vedere che in un ordine con 20 prodotti paginati a 8, è sempre presente l'html di tutti e 20 i prodotti. Questo è il codice usato: {% if rowIsDisplayed %} d-none d-print-table-row{% endif %} La variabile viene impostata a inizio file in questo modo: {% set rowIsDisplayed = (productIndex is defined and paginationNum is defined and productIndex > paginationNum) %} Sto cercando di capire se riesco a sfruttare questa variabile per nascondere il blocco dove non necessario. Edited September 28, 2021 by DARKF3D3 (see edit history) Link to comment Share on other sites More sharing options...
DARKF3D3 Posted September 28, 2021 Author Share Posted September 28, 2021 Soluzione trovata! FIle: /src/PrestaShopBundle/Resources/views/Admin/Sell/Order/Order/Blocks/View/product.html.twig A riga 150, dopo </tr>, ho aggiunto questo codice: {% if loop.revindex == 1 %} <tr id="orderProduct_{{ product.orderDetailId }}" class="cellProduct{% if rowIsDisplayed %} d-none d-print-table-row{% endif %}"> <td colspan="8" style="background:blue;color:white;font-size:1.7rem;text-align:center">ORDINE COMPLETATO</td> </tr> {% endif %} Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now