Jump to content
simonetb

Immagine solo in alcune categorie

Recommended Posts

Salve a tutti.
Ho creato nel file product.tpl una regola per far vedere un'immagine solo in specifiche categorie. Dato il numero delle categorie interessate (quelle dove mostrare l'immagine) ho optato per la via di far vedere l'immagine in tutte le categorie, tranne in alcune.

{if $category->id != 78 AND $category->id != 64 AND $category->id != 29 AND $category->id != 91  AND $category->id != 92  AND $category->id != 93  AND $category->id != 94  AND $category->id != 95  AND $category->id != 102  AND $category->id != 17  AND $category->id != 71  AND $category->id != 106  AND $category->id != 107  AND $category->id != 109  AND $category->id != 72  AND $category->id != 101  AND $category->id != 96  AND $category->id != 97  AND $category->id != 75  AND $category->id != 69  AND $category->id != 100  AND $category->id != 73  AND $category->id != 70  AND $category->id != 65  AND $category->id != 80  AND $category->id != 81  AND $category->id != 82  AND $category->id != 84  AND $category->id != 83  AND $category->id != 79  AND $category->id != 110 AND $category->id != 79  AND $category->id != 111 AND $category->id != 79  AND $category->id != 112 AND $category->id != 79  AND $category->id != 113 AND $category->id != 79  AND $category->id != 66 AND $category->id != 79  AND $category->id != 85 AND $category->id != 79  AND $category->id != 86 AND $category->id != 79  AND $category->id != 87 AND $category->id != 79  AND $category->id != 90 AND $category->id != 79  AND $category->id != 67 AND $category->id != 79  AND $category->id != 68 AND $category->id != 79  AND $category->id != 74 AND $category->id != 79  AND $category->id != 104 AND $category->id != 79  AND $category->id != 108 AND $category->id != 79  AND $category->id != 15 AND $category->id != 79  AND $category->id != 340 AND $category->id != 1457 AND $category->id != 1497 AND $category->id != 1498 AND $category->id != 1499 AND $category->id != 1417 AND $category->id != 1501 AND $category->id != 1524}
          <div>IMMAGINE</div>

Cosi ha funzionato fino ad oggi.
Il problema è che quando vado ad aggiungere una categoria nella lista (dove non mostrare l'immagine) aggiungendo in coda un altro codice

AND $category->id != 1535

 

la pagina prodotti va in crash.
forse c'è un limite di chiamate che posso fare?
Come posso risolvere?

Share this post


Link to post
Share on other sites

la cosa più pulita sarebbe creare un array con dentro i vari ID da escludere in modo poi da gestire meglio il controllo

ad ogni modo verifica bene che tutta la if sia corretta e non contenga errori

se mai posta qui la if che crei completa e che ti da errore

Saluto

Share this post


Link to post
Share on other sites
Posted (edited)

la sintassi che hai creato é corretta.

il problema sta nella variabile quale esaurisce tutta la memoria a disposizione.

vista la quantità di categorie potresti avere lo stesso problema con l'array.

Io invece opterei per 3 soluzioni più eleganti senza rischio di crash.

La prima di strutturare un xls con elencati gli id categoria.

a questo punto ti serve la classe php office già presente in ps, ajax e un file php che fa da interprete.

agendo sul div o creandone uno a ponte nuovo se l'id categoria e presente non viene visualizzata l'immagine.

la seconda e più elaborata,devi aggiungere un campo alla base dati nella tabella delle categorie,crearti 2 classi diverse e una che ti serve nel BO per fare una query dei campi quale con le checkbox selezioni le categorie interessate dove non vuoi visualizzare l'immagine.

nel modulo che andrai a crearti il tasto salva ti servirà per aggiornare il campo aggiuntivo con un semplice 0-1.

la seconda classe ti serve per assegnare ad una nuova variabile globale che chiamerari che ne so....$noimage....e fare una query e leggere dal campo aggiuntivo se quella categoria deve visualizzare l'immagine oppure no.

la terza più sporca ma utilizzabile e abilitare snartyBC e lavorare con i tag php dentro i file tpl.

vedi te 😊  

Edited by hardware-store (see edit history)

Share this post


Link to post
Share on other sites
On 6/3/2019 at 9:35 AM, hardware-store said:

la sintassi che hai creato é corretta.

il problema sta nella variabile quale esaurisce tutta la memoria a disposizione.

vista la quantità di categorie potresti avere lo stesso problema con l'array.

Io invece opterei per 3 soluzioni più eleganti senza rischio di crash.

La prima di strutturare un xls con elencati gli id categoria.

a questo punto ti serve la classe php office già presente in ps, ajax e un file php che fa da interprete.

agendo sul div o creandone uno a ponte nuovo se l'id categoria e presente non viene visualizzata l'immagine.

la seconda e più elaborata,devi aggiungere un campo alla base dati nella tabella delle categorie,crearti 2 classi diverse e una che ti serve nel BO per fare una query dei campi quale con le checkbox selezioni le categorie interessate dove non vuoi visualizzare l'immagine.

nel modulo che andrai a crearti il tasto salva ti servirà per aggiornare il campo aggiuntivo con un semplice 0-1.

la seconda classe ti serve per assegnare ad una nuova variabile globale che chiamerari che ne so....$noimage....e fare una query e leggere dal campo aggiuntivo se quella categoria deve visualizzare l'immagine oppure no.

la terza più sporca ma utilizzabile e abilitare snartyBC e lavorare con i tag php dentro i file tpl.

vedi te 😊  

Sei stato veramente gentilissimo.
potresti dirmi nel dettaglio come fare?
Utilizzando il metodo più semplice da fare oppure inviandomi il link di una guida?

Questa cosa è molto importante per me perchè ho problemi di memoria.
Grazie mille

Share this post


Link to post
Share on other sites

Ciao.

Scriverti il codice e la procedura e un po complesso e di solito non do codici custom.

In questa parte dovresti essere tu a scriverti il codice in base alle direttive suggerite.

Mi spiace spero possa capire.

 

Share this post


Link to post
Share on other sites

Capisco, infatti più che altro mi serviva una guida o qualcosa di simile.

Altrove mi hanno consigliato questa strada:

 

 

{php}
$excluded_categories_ids = [5, 6, ...];
{/php}

{if (!in_array($category->id, $excluded_categories_ids))}
    <div></div>
{endif}

Cosa ne pensate?

Share this post


Link to post
Share on other sites

Non credo possa funzionare....primo perché in ps 1.7 per poter passare i valori da php a smarty devi scrivere una classe attraverso il quale occorre un variabile globale da asegnare per smarty.

Secondo la condizione non basta ma occorre anche un ciclo foreach(sotto smarty) per far si che la condizione if lavori su id categoria.

 

Share this post


Link to post
Share on other sites

Ti ringrazio e, scusa se ne approfitto, vorrei che mi dessi un consiglio sulla fattibilità di questa strada:

 

{assign var='excluded_categories_ids' value=[78, 64, 29, 91, 92, 93 ...]} {if (!in_array($category->id, $excluded_categories_ids))} <div>Image</div> {endif}

{assign var='excluded_categories_ids' value=[78, 64, 29, 91, 92, 93 ...]}
{if (!in_array($category->id, $excluded_categories_ids))}
    <div>Image</div>
{endif}

Grazie

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More