Magento 1.9.x
Ho creato dei prodotti configurabili dove dello stesso prodotto ho diversi colori.
A quelli di defalut ho aggiunto altri. Ma nella visualizzazione da frontend non mi viene visualizzata l'immagine del colore ma il testo (esempio "Viola Scuro")
Cercando su google mi è apparso un link per la customizzazione ma trovo differenza con il mio file.
Sul sito trovo questo codice
public function checkColor($attrColor) { $attrColor=str_replace(' ', '', $attrColor); $colorArray = array('AliceBlue' => '#F0F8FF', 'AntiqueWhite' => '#FAEBD7', 'Aqua' => '#00FFFF', 'Aquamarine' => '#7FFFD4', 'Azure' => '#F0FFFF', 'Beige' => '#F5F5DC', 'Bisque' => '#FFE4C4', 'Black' => '#000000', 'BlanchedAlmond' => '#FFEBCD', 'Blue' => '#0000FF', 'YellowGreen' => '#9ACD32'); $colorArr = unserialize(strtolower(serialize($colorArray))); if (array_key_exists(strtolower($attrColor), $colorArr)) { $key = $colorArr[strtolower($attrColor)]; } else { $key = ""; } return $key; }
mentre in lib/Zend/Markup/Render/Html.php
ho questo codice:
public static function checkColor($color) { /* * aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, * purple, red, silver, teal, white, and yellow. */ $colors = array( 'aqua', 'black', 'blue', 'fuchsia', 'gray', 'green', 'lime', 'maroon', 'navy', 'olive', 'purple', 'red', 'silver', 'teal', 'white', 'yellow' ); if (in_array($color, $colors)) { return true; } if (preg_match('/\#[0-9a-f]{6}/i', $color)) { return true; } return false; }
ho trovato anche questo sito Color Names Supported by All Browsers
Domanda: va modificata la funzione come riportato nel primo codice incollato oppure aggiungo solo il nome dei colori a quelli presenti?
Solved! Go to Solution.
Ho trovato un'altra soluzione senza usare moduli aggiuntivi.
Avendo trovato questo sito con 140 colori (che sono più che suffienti)
http://www.w3schools.com/colors/colors_names.asp
in photoshop ho creato una immagine 100x100 px nominandola antiquewhite.png e dando il colore #FAEBD7
ho impostato nell'attibuto "color" un colore chiamandolo AntiqueWhite.
Ha funzionato!
Sicuramente l'uso di un modulo aggiuntivo è più saggio che stare a modificare codice.
Ma dove si può evitare l'installazione di moduli aggiuntivi credo che sia meglio usare le funzionalità di base, anche se ci vuole un po' di pazienza.
Se faccio tutti quei 140 colori potrei postare un zip per condividerlo con altri.
Ciao
uhm ma stai usando i color swatch standard di Magento?
Prova a vedere qualche tutorial specifico:
https://www.google.com/search?q=color+swatch+magento+1.9&ie=utf-8&oe=utf-8&client=firefox-b
In generale i color swatch di Magento (introdotti recentemente) non sono molto pratici ed è più una funzioncina frontend messa giusto per avere la funzionalità.
Se ti interessa qualcosa di più strutturato, valuta l'utilizzo del modulo di Amasty o di cjm che sono molto completi e permettono di avere una gestione più semplice lato amministrativo.
Ho trovato un'altra soluzione senza usare moduli aggiuntivi.
Avendo trovato questo sito con 140 colori (che sono più che suffienti)
http://www.w3schools.com/colors/colors_names.asp
in photoshop ho creato una immagine 100x100 px nominandola antiquewhite.png e dando il colore #FAEBD7
ho impostato nell'attibuto "color" un colore chiamandolo AntiqueWhite.
Ha funzionato!
Sicuramente l'uso di un modulo aggiuntivo è più saggio che stare a modificare codice.
Ma dove si può evitare l'installazione di moduli aggiuntivi credo che sia meglio usare le funzionalità di base, anche se ci vuole un po' di pazienza.
Se faccio tutti quei 140 colori potrei postare un zip per condividerlo con altri.
Se a qualcuno può servire ho creato delle immagini per lo swtches da usare nell'atributo color.
Le ho messe su git all'indirizzo https://github.com/mikysal78/Swatches
Le ho fatte per mia necessità, ma le condivido volentieri se a qualcuno possa servire o anche incrementare il pantone dei colori.
Attualmente sono 141 colori.
Se il post è OT si può cancellare.