[SOLUCIONADO] Imagenes desde url externa

zmeu

Nuevo usuario
Buenas;

Cómo no tenía muy claro donde colocar este post me decidí por el soporte general, sino toca aquí ruego sea movido al foro que corresponda (gracias).

Bueno ahi vá mi pregunta: necesito que las imágenes de los artículos sean desde urls externas a mi tienda, he intentado importando y exportando ya que desde el panel de administración no da la posibilidad.

¿Sabeís cómo puedo solucionar este problema? He estado buscando y buscando pero no he encontrado nada.

Gracias por vuestra ayuda
 

Xarlie

Super Moderador
Miembro del equipo
Mucho me temo que no se puede con la tienda por defecto (no se si hay alguna extensión).
Piensa que al subir las imágenes estas son cacheadas para servirlas antes y las externas te haría lo mismo, por lo tanto ¿no sería más lógico subir directamente la imagen? Imagino que este será el razonamiento de Varien para este tema.
 

zmeu

Nuevo usuario
Efectivamente Xarli eso sería lo lógico pero las imágenes están en un servidor externo y son demasiadas (+ de 40.000) para ir descargando y guardando en el mío :(
 

Xarlie

Super Moderador
Miembro del equipo
Si las imágenes tienen relación con algún campo (por ejemplo el identificador) puedes modificar la plantilla, quitar la parte de las llamadas a imágenes internas y poner tu llamada externa directamente.
 

zmeu

Nuevo usuario
Perdona Xarlie pero es mi primer contacto con Magento y soy algo novato, ¿cómo podría hacer eso de las llamadas?

Puedo relacionar la imagen por ejemplo con el SKU ¿no?
 

OSdave

Super Moderador
Miembro del equipo
lo que se me ocurre es de crear un atributo donde pondras el nombre de la imagen. Luego creas un modulo en la carpeta local con su correspondiente archivo phtml que ponga la imagen de tu servidor externo.
Habia hecho un post sobre como desarollar un modulo simple, puedes empezar con esto.
 

zmeu

Nuevo usuario
Estoy en ello pero no he programado nunca y ando algo perdido, si consigo algo os contaré.

En los foros en inglés encontré algo pero no me funciona con la versión 1.2 así que ando dándole vueltas a lo que ha puesto Osdave.
 

zmeu

Nuevo usuario
Hola amig@s;

He encontrado en el foro en inglés este post: http://www.magentocommerce.com/boards/viewthread/6947/P30/ que habla sobre este tema, aunque creo que no va con el 1.2 ya que no me coincide el código con lo que aparece en ese hilo, he intentado hacer cambios por mi cuenta pero al ser un novato en programación no he sido capaz.

Ruego a los sabios de este foro a ver si nos pueden echar una mano a rediseñar este código para el 1.2


Gracias
 

OSdave

Super Moderador
Miembro del equipo
pues si, lo que dice es exactamente lo mismo que yo, aunque con más detalles :).
El codigo es un poco diferente, pero tampoco mucho.
 

zmeu

Nuevo usuario
Si Osdave, lo que pasa que esa "pequeña diferencia" para los neófitos es un mundo....yo he intentado hacer las modificaciones de ese hilo y saltaban errores por todos lados.
Estoy planteandome tener que volver al Oscommerce por no poder enlazar las imágenes :triste:
 

OSdave

Super Moderador
Miembro del equipo
mira es muy facil, en el archivo app/design/frontend/default/template/catalog/product/view/media.phtml solo tienes que reemplazar (2 veces, linea 42 y 62)
PHP:
$this->helper('catalog/image')->init($_product, 'image')
por
PHP:
$_product->getData('remote_image_url ')
(asumo que has podido hacer los primeros pasos, ya que dices que es el codigo que te da problemas)
Dime que tal te va ya esto, luego veremos el resto.
 

zmeu

Nuevo usuario
Hola OSdave;

Acabo de hacer los cambios que me comentas y me dá el siguiente error:

Insertar CODE, HTML o PHP:
Fatal error: Call to a member function resize() on a non-object in /app/design/frontend/default/default/template/catalog/product/view/media.phtml on line 62
 

OSdave

Super Moderador
Miembro del equipo
¿como tienes el codigo de /app/design/frontend/default/default/template/catalog/product/view/media.phtml? (pega aqui todo el contenido del fichero)
 

zmeu

Nuevo usuario
Hola OSdave, aquí te lo dejo:

Insertar CODE, HTML o PHP:
<?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category   design_default
 * @package    Mage
 * @copyright  Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
 * @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */

/**
 * Product media data template
 *
 * @see Mage_Catalog_Block_Product_View_Media
 */
?>

<?php
    $_product = $this->getProduct();
    $_helper = $this->helper('catalog/output');
?>

<?php if ($_product->getImage() != 'no_selection' && $_product->getImage()): ?>
<p class="product-image-zoom">
    <?php
        $_img = '<img id="image" src="'.$_product->getData('remote_image_url ').'" alt="'.$this->htmlEscape($this->getImageLabel()).'" title="'.$this->htmlEscape($this->getImageLabel()).'" />';
        echo $_helper->productAttribute($_product, $_img, 'image')
    ?>
</p>
<p class="a-center" id="track_hint"><?php echo $this->__('Double click on above image to view full picture') ?></p>

<div class="image-zoom" id="track_outer">
    <img id="zoom_out" src="<?php echo $this->getSkinUrl('images/slider_btn_zoom_out.gif') ?>" alt="<?php echo $this->__('Zoom Out') ?>" class="btn-zoom-out" />
    <div id="track">
        <div id="handle"></div>
    </div>
    <img id="zoom_in" src="<?php echo $this->getSkinUrl('images/slider_btn_zoom_in.gif') ?>" alt="<?php echo $this->__('Zoom In') ?>" class="btn-zoom-in" />
</div>
<script type="text/javascript">
    Event.observe(window, 'load', function() {
        product_zoom = new Product.Zoom('image', 'track', 'handle', 'zoom_in', 'zoom_out', 'track_hint');
    });
</script>
<?php else: ?>
    <?php
        $_img = '<img src="'.$_product->getData('remote_image_url ')->resize(265).'" alt="'.$this->htmlEscape($_product->getImageLabel()).'" />';
        echo $_helper->productAttribute($_product, $_img, 'image')
    ?>
<?php endif; ?>
<?php if (count($this->getGalleryImages()) > 0): ?>
<div class="more-views">
    <h4><?php echo $this->__('More Views') ?></h4>
    <ul>
    <?php foreach ($this->getGalleryImages() as $_image): ?>
        <li>
            <a href="#" onclick="popWin('<?php echo $this->getGalleryUrl($_image) ?>', 'gallery', 'width=300,height=300,left=50,top=50,location=no,status=yes,scrollbars=yes,resizable=yes'); return false;"><img src="<?php echo $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $_image->getFile())->resize(56); ?>" alt="<?php echo $this->htmlEscape($_image->getLabel()) ?>" title="<?php echo $this->htmlEscape($_image->getLabel()) ?>" /></a>
        </li>
    <?php endforeach; ?>
    </ul>
</div>
<?php endif; ?>
 

OSdave

Super Moderador
Miembro del equipo
claro, intenta llamar al metodo resize en algo que no es el objeto corespondiente.
En la linea 62 quita ->resize(265), pero claro, no te pondra la imagen a 265px.
 
Arriba