cancel
Showing results for 
Search instead for 
Did you mean: 

Problemi Personalizzazione contenuto della Product Page

SOLVED

Problemi Personalizzazione contenuto della Product Page

Salve a tutti, premetto di essere un neofita di Magento e nemmeno una cima in programmazione.

Il mio problema è il seguente: 

Lavoro su Magento 1.9.3.1 e sto cercando di sviluppare un eCommerce di una casa editrice.

Volendo mantenere come Tema di base il tema RWD (quello dei prodotti di esempio) ho comunque la necessità di personalizzare il contenuto della Product Page al fine di visualizzare ulteriori attributi (da me creati) dei miei prodotti, vale a dire l'eventuale sottotitolo, nome e cognome degli autori, il codice ISBN di ogni libro (corrisponde al sku) etc...

Quindi per fare ciò sono andato a modificare in: app/design/frontend/rwd/default/template/catalog/product il file view.phtml

Ho inserito il seguente codice dopo il div <div class="product-shop">...... </div>:

  <div class="product-shop-2">
<div class="sotto-titolo">
<BR><BR><span class="h3"><?php echo $_helper->productAttribute($_product, $_product->getSottoTitolo(), 'sotto_titolo') ?></span>
</div>

<?php if ($_product->getNomeAutore1()):?>
<div class="nome-autore-1">
<div class="h2"><?php echo $_helper->productAttribute($_product, nl2br($_product->getNomeAutore1()), 'nome_autore_1') ?></div>
</div>
<?php endif;?>

<?php if ($_product->getAuthorArtist()):?>
<div class="cognome-autore">
<div class="h2"><?php echo $_helper->productAttribute($_product, nl2br($_product->getAuthorArtist()), 'author_artist') ?></div>
</div>
<?php endif;?>

<?php if ($_product->getNomeAutore2()):?>
<div class="nome-autore-2">
<div class="h2"><?php echo $_helper->productAttribute($_product, nl2br($_product->getNomeAutore2()), 'nome_autore_2') ?></div>
</div>
<?php endif;?>

<?php if ($_product->getAuthorArtist2()):?>
<div class="cognome-autore-2">
<div class="h2"><?php echo $_helper->productAttribute($_product, nl2br($_product->getAuthorArtist2()), 'author_artist_2') ?></div>
</div>
<?php endif;?>

e quest'altro codice subito dopo <div class="extra-info"> ....... </div>:

<?php if ($_product->getSku()):?>
                <div class="sku">
                    <h3><?php echo $this->__('Codice ISBN:') ?></h3>
                    <div class="h4"><?php echo $_helper->productAttribute($_product, nl2br($_product->getSku()), 'sku') ?></div>
                </div>
			    <?php endif;?>

sempre partendo dal codice di default ed ho ottenuto il seguente risultato:

Screen Frecce1.jpgScreen Frecce2.jpg

I codici per quanto riguarda il "Sottotitolo", il "codice ISBN" e il "Cognome del Autore 1", funzionano correttamente, ma purtroppo non mi vengono stampati i valori relativi agli attributi "Nome Autore" in generale, così come i cognomi e i nomi degli eventuali ulteriori autori...

 

Qualcuno che ne capisce più di me sarebbe così gentile da indicarmi dove ho sbagliato e come rimediare?

Grazie in anticipo a tutti

4 REPLIES

Re: Problemi Personalizzazione contenuto della Product Page

il codice corretto è $_product->getNomeAutore1()

 

In ogni caso il codice dipende anche dalla tipologia di attributo, questo formato è valdo per gli attributi di tipo input - text.

 

Infine voglio farti notare che è sbagliato modificare il tema di Magento in quanto parte del core e rischia di essere sovrascritto a successivi aggiornamenti.

Devi necessariamente creare un nuovo tema con percorso app/design/frontend/nometema/nomesubpackage/ e inserirci le modifiche necessarie.

------------------ [ Antonio Carboni ] ------------------Hosting Magenio
Problema risolto? Clicca Accept as Solution!

Re: Problemi Personalizzazione contenuto della Product Page

Innanzitutto grazie per la risposta.

Per quanto riguarda la modifica del tema, la cartella rwd (che viene aggiunta quando si caricano in Magento i prodotti d'esempio) non è già di per sé una cartella di "Tema personalizzato"?

Al di là di questo, mi pare di aver usato il codice da te riportato in:

<?php if ($_product->getNomeAutore1()):?>
                  <div class="nome-autore-1">
                    <div class="h2"><?php echo $_helper->productAttribute($_product, nl2br($_product->getNomeAutore1()), 'nome_autore_1') ?></div>
                  </div>
                <?php endif;?>

solo che ho dovuto aggiungere la funzione if per fare in modo che venga Stampata a video solo nell'eventualità in cui ci sia effettivamente un valore per l'attributo richiesto...

Quello che non riesco a capire è il perchè il codice che ho riportato qui sopra non mi stampi a video l'attributo relativo al Nome del Autore ma questo codice:

<?php if ($_product->getAuthorArtist()):?>
                  <div class="cognome-autore">
                    <div class="h2"><?php echo $_helper->productAttribute($_product, nl2br($_product->getAuthorArtist()), 'author_artist') ?></div>
                  </div>
                <?php endif;?>

che ha la stessa struttura, invece, funziona perfettamente per l'attributo relativo al Cognome dell'autore...

Spero di essere riuscito a spiegarmi...

Re: Problemi Personalizzazione contenuto della Product Page

Non ho i dettagli di quello che stai facendp però solitamente il codice funziona anche senza inserirlo all'interno dell'helper attribute.

In ogni caso, hai controllato se gli attributi hanno impostazioni differenti nel backend?

 

Per il tema RWD, è un tema di base ma va esteso non sovrascritto:

 

http://alanstorm.com/magento_infinite_fallback_theme_xml/

------------------ [ Antonio Carboni ] ------------------Hosting Magenio
Problema risolto? Clicca Accept as Solution!

Re: Problemi Personalizzazione contenuto della Product Page

Sono riuscito a risolvere... il problema era dovuto alla nomenclatura degli attributi.

Alcuni attributi che avevo chiamato "nome_autore_1" ad esempio non rispondevano al comando $_product->getNomeAutore1(), ma andando a creare un nuovo attributo chiamato "nome_autore1" il codice funziona correttamente. Il problema credo fosse dovuto alla presenza di "_1", eliminate _ prima dei numeri, il comando funziona perfettamente.

Grazie comunque per la pazienza e l'aiuto!