Jump to content

Képek ALT címkéje vs zoom funkció


dienesdavid

Recommended Posts

Sziasztok!

 

A mi Prestashop verziónkban (1.4.7.3) a product oldalakon a fotók ALT tag-jében a nagykép URL-je szerepel. Ha jól látom, akkor a zoom funkció érdekében van így.

 

Ez keresőoptimalizáció szempontjából nem szerencsés, hiszen a keresők szeretik, ha az ALT cimkében pár szavas leírás szerepel a képről (illetve a termékről).

 

Kérdés, hogy hogyan lehet ezt úgy átalakítani, hogy az ALT-ban a admin oldalon (product/iamges) meghatározott szöveg látszódjön, de közben a zoom (és klikk) funkció továbbra is működjön?

 

Úgy látom, hogy a kiskép és nagykép URL között csak egy string különbség van ("large” vs „thickbox"), tehát elvileg a zoom és klikk funkciók egy string cserével a SRC-beli URL-t is felhasználhatnák...

 

Pl. http://www.decoregalo.com/87-cesta-de-mimbre.html

 

img src="http://www.decoregalo.com/87-146-large/cesta-de-mimbre.jpg" class="jqzoom" alt="http://www.decoregalo.com/87-146-thickbox/cesta-de-mimbre.jpg" id="bigpic" width="300" height="300"

 

Köszönöm,

Dávid

Link to comment
Share on other sites

themes/tetemad/product.tpl, ~150. sor:

<img src="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'large')}"
{if $jqZoomEnabled}class="jqzoom" alt="{$link->getImageLink($product->link_rewrite, $cover.id_image, 'thickbox')}"{else}...

 

Természetesen az alt tagot kell megváltoztatni ahogyan Te is mondtad mondjuk a termék nevére:

alt="{$product->name|escape:'htmlall':'UTF-8'}"

 

Ettől még a kinagyítás működni fog, de próbáld ki, Te nem az alap témát használod.

Tudom, hogy nem a termék nevét szántad ide, de pontosan leírod hogy mit is szerettél volna? Egy példán keresztül mutasd be kérlek mit is akarsz az alt-on látni.

Edited by pattila01 (see edit history)
  • Like 2
Link to comment
Share on other sites

Módosítottam, de nem világos, hogy honnan veszi szöveget.

 

img src="http://www.decoregalo.com/87-146-large/cesta-de-mimbre.jpg" class="jqzoom" alt="cesta de mimbre" id="bigpic" width="300" height="300"

 

"cesta de mimbre" - ilyen szöveg nincs megadva az admin felületen. Hanem ilyen van: "Cesta de mimbre SP" (angolhoz is írtam a próba kedvéért "Cesta de mimbre EN"). Ugyanez az ismeretlen szöveg jelenik meg a felugró kép alatt klikk után.

 

 

A zoom funkció viszont elromlott, gondolom az ALT-ban keresi a nagyképet. Talán valamelyik js fájlban is módosítani kéne? (pl. \témám\product.js, \js\jquery\jquery.jqzoom.js)

 

 

Köszi

Link to comment
Share on other sites

Úgy tűnik a zoom funkciót is sikerült javítanom. A js/jquery/jquery.jqzoom.js -ben kell az alábbi módosítás:

 

//noalt = $(this).attr("alt");

noalt = $(this).attr("src").replace('large','thickbox');

 

Gondolom nem szerencsés a gyári js-ben turkálni...

Link to comment
Share on other sites

Ürítettem böngészőben, töröltem a smarty cache fileokat, force compile is be volt kapcsolva egy ideig:

 

http://kepfeltoltes.hu/130531/33344_www.kepfeltoltes.hu_.jpg (ezek a beállítások rendben vannak?)

 

A lényeg ami az oldal forrásában van, gondolom a keresők is ezt látják... szóval nem annyira égető, hanem inkább csak furcsa.

Link to comment
Share on other sites

Átállítottam mindent az alsóra de ettől nem láttam változást. Maradjon a default-okon, mi a célszerűbb?

 

A jquery.jqzoom.js -ben kommenteltem ki még két dolgot (lásd zöld részek). Itt módosítgatta az ALT értékét ahogy a kép fölé vittem az egeret. Most már nem piszkálja az ALT-ot többé... :)

 

(function($) {

$.fn.jqueryzoom = function(options) {

var settings = {

xzoom: 200, //zoomed width default width

yzoom: 200, //zoomed div default width

offset: 10, //zoomed div default offset

position: "right" //zoomed div default position,offset position is to the right of the image

};

if(options)

$.extend(settings, options);

var noalt ='';

$(this).hover(function() {

var imageLeft = $(this).get(0).offsetLeft;

var imageTop = $(this).get(0).offsetTop;

var imageWidth = $(this).get(0).offsetWidth;

var imageHeight = $(this).get(0).offsetHeight;

//Dávid módosítás:

//noalt = $(this).attr("alt");

noalt = $(this).attr("src").replace('large','thickbox');

 

var bigimage = noalt;

//Dávid komment:

//$(this).attr("alt", '');

if($("div.zoomdiv").get().length == 0)

$(this).after("<div class='zoomdiv'><img class='bigimg' src='"+bigimage+"'/></div>");

if(settings.position == "right")

leftpos = imageLeft + imageWidth + settings.offset;

else

leftpos = imageLeft - settings.xzoom - settings.offset;

$("div.zoomdiv").css({top: imageTop,left: leftpos});

$("div.zoomdiv").width(settings.xzoom);

$("div.zoomdiv").height(settings.yzoom);

$("div.zoomdiv").show();

$(document.body).mousemove(function(e) {

var bigwidth = $(".bigimg").get(0).offsetWidth;

var bigheight = $(".bigimg").get(0).offsetHeight;

var scaley ='x';

var scalex= 'y';

if(isNaN(scalex)|isNaN(scaley)) {

var scalex = Math.round(bigwidth/imageWidth) ;

var scaley = Math.round(bigheight/imageHeight);

}

mouse = new MouseEvent(e);

scrolly = mouse.y - imageTop - ($("div.zoomdiv").height()*1/scaley)/2 ;

$("div.zoomdiv").get(0).scrollTop = scrolly * scaley ;

scrollx = mouse.x - imageLeft - ($("div.zoomdiv").width()*1/scalex)/2 ;

$("div.zoomdiv").get(0).scrollLeft = (scrollx) * scalex ;

});

}, function() {

//Dávid komment:

//$(this).attr("alt", noalt);

$("div.zoomdiv").hide();

$(document.body).unbind("mousemove");

$(".lenszoom").remove();

$("div.zoomdiv").remove();

});

}

})(jQuery);

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...