Eliminar scroll en imágenes para Wordpress

Antes de nada no sé si esto va en este subforo, ya que wordpress es de cógido abierto.

Me han pedido que haga la web para un comercio y estoy usando un módulo de e-commerce para wordpress, funciona todo correcto pero en la vista de productos todas las imagenes tienen un scroll a la derecha.

Me estoy volviendo loco para encontrar el código que hace que salga ese scroll, a ver si me podeis echar un cable.

Este es el código de donde aparece la imagen:

<img class="product_image" id="product_image_<?php echo wpsc_the_product_id(); ?>" alt="<?php echo wpsc_the_product_title(); ?>" title="<?php echo wpsc_the_product_title(); ?>" src="<?php echo wpsc_the_product_thumbnail(); ?>"/>


Y esta es la función php wpsc_the_product_thumbnail:
/**
* wpsc product thumbnail function
*
* Show the thumbnail image for the product
*
* @return string - the URL to the thumbnail image
*/
function wpsc_the_product_thumbnail( $width = null, $height = null, $product_id = 0, $page = 'products-page' ) {
   $thumbnail = false;

   $display = wpsc_check_display_type();
   // Get the product ID if none was passed
   if ( empty( $product_id ) )
      $product_id = get_the_ID();

   // Load the product
   $product = get_post( $product_id );

   // Get ID of parent product if one exists
   if ( !empty( $product->post_parent ) )
      $product_id = $product->post_parent;

   // Load image proportions if none were passed
   if ( ( $width < 10 ) || ( $height < 10 ) ) {
      $width  = get_option( 'product_image_width' );
      $height = get_option( 'product_image_height' );
   }

   // Use product thumbnail
   if ( has_post_thumbnail( $product_id ) ) {
      $thumbnail_id = get_post_thumbnail_id( $product_id  );
   // Use first product image
   } else {

      // Get all attached images to this product
      $attached_images = (array)get_posts( array(
         'post_type'   => 'attachment',
         'numberposts' => 1,
         'post_status' => null,
         'post_parent' => $product_id ,
         'orderby'     => 'menu_order',
         'order'       => 'ASC'
      ) );

      if ( !empty( $attached_images ) )
         $thumbnail_id = $attached_images[0]->ID;
   }

   //Overwrite height & width if custom dimensions exist for thumbnail_id
   if ( 'grid' != $display && 'products-page' == $page && isset($thumbnail_id)) {
      $custom_width = get_post_meta( $thumbnail_id, '_wpsc_custom_thumb_w', true );
      $custom_height = get_post_meta( $thumbnail_id, '_wpsc_custom_thumb_h', true );

      if ( !empty( $custom_width ) && !empty( $custom_height ) ) {
         $width = $custom_width;
         $height = $custom_height;

      }
   } elseif( $page == 'single' && isset($thumbnail_id)) {
      $custom_thumbnail = get_post_meta( $thumbnail_id, '_wpsc_selected_image_size', true );
      if ( !$custom_thumbnail ) {
         $custom_thumbnail = 'medium-single-product';
         $current_size = image_get_intermediate_size( $thumbnail_id, $custom_thumbnail );
         $settings_width = get_option( 'single_view_image_width' );
         $settings_height = get_option( 'single_view_image_height' );

         // regenerate size metadata in case it's missing
         if ( ! $current_size || $current_size['width'] != $settings_width || $current_size['height'] != $settings_height ) {
            require_once( ABSPATH . 'wp-admin/includes/image.php' );
            if ( ! $metadata = wp_get_attachment_metadata( $thumbnail_id ) )
               $metadata = array();
            if ( empty( $metadata['sizes'] ) )
               $metadata['sizes'] = array();
            $file = get_attached_file( $thumbnail_id );
            $generated = wp_generate_attachment_metadata( $thumbnail_id, $file );
            $metadata['sizes'] = array_merge( $metadata['sizes'], $generated['sizes'] );
            wp_update_attachment_metadata( $thumbnail_id, $metadata );
         }
      }

      $src = wp_get_attachment_image_src( $thumbnail_id, $custom_thumbnail );

      if ( !empty( $src ) && is_string( $src[0] ) ) {
         $thumbnail = $src[0];
      }
   }

   // calculate the height based on the ratio of the original demensions
   // blame Cameron if this is buggy :P
   if ( $height == 0 || $width ==0 ){
      $attachment_meta = get_post_meta( $thumbnail_id,'_wp_attachment_metadata', false );
      $original_width = $attachment_meta[0]['width'];
      $original_height = $attachment_meta[0]['height'];

      if( $width != 0 ){
         $height = ( $original_height / $original_width ) * $width;
         $height = round( $height, 0 );
      } elseif ( $height != 0 ) {
         $width = ( $original_width / $original_height ) * $height;
         $width = round( $width, 0 );
      }
   }

   if ( ! $thumbnail && isset( $thumbnail_id ) )
      $thumbnail = wpsc_product_image( $thumbnail_id, $width, $height );

   if ( ! empty( $thumbnail ) && is_ssl() )
      $thumbnail = str_replace( 'http://', 'https://', $thumbnail );

   return $thumbnail;
}


Y esta es la susodicha barra:
Imagen

Destacar que este problema solo pasa en internet explorer, ni en chrome ni firefox ni opera sucede.

Gracias !!
See_You escribió:Destacar que este problema solo pasa en internet explorer, ni en chrome ni firefox ni opera sucede.


Eso lo explica todo. Se que no es lo que quieres, pero has pensado en poner un mensaje sugiriendo que usen un navegador de verdad?
Puede sonar a solucion cutre, pero informar a la gente que no tiene ni idea de que existen otros, de que pueden usar algo mejor, me parece interesante, y ahorraria dolores de cabeza a cualquier desarrollador web.
Gracias a dios el uso de los navegadores está bastante más repartido que hace unos años, tengo un blog con bastantes visitas y la cosa se reparte en 40%IE 40%Firefox y 20%Chrome y otros, aunque todavia tiene un buen pellizco IE...

Si por mi fuera lo dejaba así pero como el dueño de la tienda me lo ha pedido expresamente... además ya se ha convertido en algo personal el saber porque esta esa barra ahi xDD

saludos !!!
Desde mi completa ignorancia, quiza puedas añadir un poco de codigo que, si es Suxplorer, reduzca la imagen un poco, quiza con 1 pixel sirva, a ver si... xD

Por cierto, la scrollbar es usable, o esta deshabilitada?
En primer lugar, las sugerencias de mensajes solicitando navegadores de verdad (a pesar de que apoyo la decisión, en el ámbito personal), es coña no ? de no serlo, entiendo que nunca te has dedicado a esto profesionalmente, porque en cuanto el cliente te diga que si no se le ve bien en el navegador que tiene preinstalado con su windows no te va a pagar, lo mismo piensas de otra manera. Eso por no hablar de que los monstruosos slogan de "best viewed with netscape" y "only works in explorer" son eso, monstruosidades de la web 1.0.

... y no, no hablo de compatibilidad con cosas tipo internet explorer 6, pero desde luego si con el 7 de ahí en adelante. No se si entendeis el objetivo de una página web, pero es tan simple como que el visitante pueda acceder a ella y disfrutar del contenido. Si le complicas las cosas, se va, y punto. El que quiera quitarle el trozo del pastel a los que no usan su navegador favorito, alla él, pero vamos, en una web de comercio electrónico es una decisión tan estúpida como tirar piedras contra tu propio tejado (más aún con el porcentaje de uso del Internet Explorer). Imagina por ejemplo, que de la noche a la mañana la web de Amazon (por ejemplo) empieza a verse "mal" en Internet explorer y ponen como "excusa" lo de "usa un navegador de verdad".

Me gustaría saber a cuantos de los de por aquí entrando en una web de la administración pública o cualquier otra les ha salido el típico popup de "no podemos realizar su operación, navegador no compatible, por favor use Internet Explorer" y no se han quedado con cara de WTF, pues esto es lo mismo pero al revés.

Y aunque parezca lo contrario, no soy defensor de Internet explorer, ni de sus aberraciones (probablemente sea uno de sus máximos detractores) pero si lo soy de que el trabajo debe hacerse bien y debe cumplir su propósito. Por otra parte entiendo que hay mucha gente que hace páginas web a modo personal, cobrando 4 duros en negro o por un simple favor a un amigo y para estos casos no les interesa dedicar el esfuerzo para lograr el resultado óptimo pero como decía antes, en un ámbito profesional, suena a cachondeo (a pesar de que this is Spain y hacer las cosas mal está en la orden del día).

En fin, despues del rollo, el "parche":

Si la imagen se ve "completa" (es decir, no recortada) puedes usar la propiedad css overflow con el valor hidden para ocultar el contenido que excede el tamaño definido (mejor si la incluyes individualmente en una hoja de estilos personalizada para la versión de explorer que te está fallando). No es la solución mas óptima, pero si te valdrá como eso, un parche.

En caso contrario, te costará un poco más (redimensionando el contenedor o la propia imagen), pero bienvenido al fantástico mundo de "Hola, soy Troy McClure, tal vez me recuerden de otros marrones como hagamos encaje de bolillos para conseguir que la maquetación se vea igual en todos los navegadores".

(PD: no, no me dedico a hacer páginas web y aunque lo parezca, no, los primeros párrafos no son la típica rajada sobre el intrusismo profesional)
aportela escribió:Eso por no hablar de que los monstruosos slogan de "best viewed with netscape" y "only works in explorer" son eso, monstruosidades de la web 1.0.

Porque se supone que hay unos estandares, que casualmente todos los navegadores respetan bastante bien, a diferentes niveles, excepto la maldita lacra del IE. Que es lo que falla aqui?

No se si entendeis el objetivo de una página web, pero es tan simple como que el visitante pueda acceder a ella y disfrutar del contenido. Si le complicas las cosas, se va, y punto.

Gracioso que hables de no complicar las cosas, cuando si no fuera por IE, las webs solo tendrian que tener una version, la que respeta estandares, y cualquiera podria verlas con cualquier navegador, que es la idea de la web.
Me gustaría saber si Amazon y otras web del estilo hicieran webs que siguieran los standares, si perderían visitas o cierto navegador perdería fama.Una cosa es que tu pequeña web no pueda "soportar" la perdida de los que navegan por IE, otra muy distinta es que Amazon fuerce a estos a usar otro navegador para comprar.
JanKusanagi escribió:Porque se supone que hay unos estandares, que casualmente todos los navegadores respetan bastante bien, a diferentes niveles, excepto la maldita lacra del IE. Que es lo que falla aqui?


Sin ánimo de trollear, los estandares en la vida real, pues por desgracia, no siempre se siguen, como muestra un botón: probad a validar la página web de google. Errores y warnings a tutiplé (a pesar de que probablemente estén más que justificados, ya que ellos buscan eficiencia a base de pequeños hacks), y hablamos de Google (no de la malvada Microsoft) quieres otra, prueba a pasar el acid test a ver cuantos navegadores lo pasan al 100%... pues eso...

En el mundo perfecto (tm), sí, todo funcionaría con un standard, en la vida real, pues como decía antes, si te dedicas a ello profesionalmente verás que las cosas no son así y las páginas web deben poder verse en todos los navegadores (ya ni hablo de diferentes maquetaciones para móviles/tablets), incluso los que no respetan el estandard.

Es una putada, pero es así y debemos darnos con un canto de narices. La maquetación para Internet Explorer >= 7 es practicamente mínima a poco que hagas las cosas bien... el explorer 6, si que era una pesadilla y te lo digo por propia experiencia.

Que yo sepa, hasta ahora, para acceder en Internet (para bien o para mal), no hay ningún requisito que diga, no puedes usar Internet Explorer y como viene preinstalado en la mayoría de los equipos con sistema operativo, tiene una cuota de mercado altísima Teniendo en cuenta esto, si te dedicas al desarrollo web de una manera profesional, sabes lo que te toca.

JanKusanagi escribió:Gracioso que hables de no complicar las cosas, cuando si no fuera por IE, las webs solo tendrian que tener una version, la que respeta estandares, y cualquiera podria verlas con cualquier navegador, que es la idea de la web.


En primer lugar, no se si me he explicado mal o no me has entendido. Cuando hablo de no complicar las cosas, hablo del punto de vista del usuario que visita tu página web (paren las rotativas: la única razón por la que existen las webs es porque la gente las visita). Por poner un ejemplo, temas de usabilidad, si me obligas a hacer 5 clicks para una acción cuando podrías resolverlo con 1 único click, me estas complicando las cosas (y a mí, como usuario, me importa 3 pimientos lo que tengas que programar para ahorrarme esos 4 clicks ya que es tú trabajo).

Si debido a que alguien usa un navegador que no respeta los standares (pero es actual y viene con un sistema operativo actual) no puede hacer click en el botón de agregar producto al carrito en una tienda virtual porque "no se ve" o paranoia similar, como mínimo, has perdido un cliente (al que le da igual tu excusa de navegadores que no respetan estándares, el sólo quería comprar, no ser evangelizado).

Personalmente, creo que exageras con lo de "si no fuera por IE las webs sólo tendrían una versión", ya que según navegadores o resoluciones a veces tambien hay que hacer "apaños". En cualquier caso y a pesar de estar de acuerdo, siendo objetivos, tú (o el desarrollador que sea), montas una página web, aplicando en ello un trabajo mínimo (gracias a los estándares), o muy costoso (debido a maquetar para varios navegadores) y en base a ello le facturarás a tu cliente lo que sea necesario. Esto no tiene nada que ver con lo que yo decía sobre experiencia que tiene la gente al visitar tu página y que debes intentar llegar al mayor número posible de gente.

Otra historia es el modo "talibán" de criticar Internet explorer (justificadamente) porque da más trabajo (bienvenidos a la informática en general y no sólo las páginas web, donde nada es lo que parece inicialmente y si crees que algo va a llevar 2 horas acaba llevándote 4, en el mejor de los casos).
7 respuestas