Jump to content
larsvr6

Fejl i buy_block modul prestashop 1.4

Recommended Posts

Hej,

 

Der er kommet en fejl i mit buy_block modul men jeg ved ikke hvornår det er kommet og aner ikke hvilken fil fejlen er i men på alle mine produkter står der et lille 1 tal til venstre for "tilføj til kurv" :unsure:

 

Er der en af jer der kan se hvor fejlen er??

 

siden hedder airbrush-shop.dk

 

MVH

Lars

post-338035-0-58452400-1426769847_thumb.jpg

Edited by larsvr6

Share this post


Link to post
Share on other sites

"1" tallet er html tagget med en id="oosHook". oos = Out Of Stock. Samtidig er css på dette element style="display: none;" , dvs. skulle ikke vises. 

Når det vises alligevel er det formodentlig fordi der er kludder i CSS hierakiet.

Der må være sket en ændring i FO temaets CSS.

De øvrige tekster (som også er med i html siden), "Tilgængelighed: " , og "Advarsel! Få varer på lager!", er pænt slukket med display:none, men altså ikke oosHook objektet.

Share this post


Link to post
Share on other sites

Nop, det er umuligt, fordi der er hundredevis af CSS filer som bruges i alle mulige sammenhæng. 

Prøv:

1: Installer temaet til front office igen. 

1A: Prøv for en kort bemærkning at skifte temaet til et andet standard-tema. (Hvis det forsvinder er du på sporet af fejlen).

2: Check om du kører med oos warnings (ved ikke lige hvordan det gøres i v. 1.4)

2A: Prøv at sætte lagermængden til 0 og se om der så kommer hele advarselsteksten med (inklusive 1-tallet). Hvis det sker, er det meget sikkert dit tema der er gået i ged. 

3: Check om du kører med nogen form for lagerstyring / kontrol i øvrigt. (Jeg antager at du ikke kører adv. stcok management.)

Share this post


Link to post
Share on other sites

Tak for hjælpen, jeg prøver de ting du nævner og håber jeg finder fejlen.

Det ændrer ikke noget at sætte lagermængden til 0

post-338035-0-60087900-1426850166_thumb.jpg

 

Edited by larsvr6

Share this post


Link to post
Share on other sites

Tak for hjælpen, jeg prøver de ting du nævner og håber jeg finder fejlen.

Det ændrer ikke noget at sætte lagermængden til 0

attachicon.gifCapture.JPG

Det ser godt nok mærkeligt ud. Du får godt nok en oos advarsel, men tallet burde jo så være 0 (og stå et andet sted).

Prøv lige at sætte lagerbeholdningen til 20 og se hvad der sker.

Share this post


Link to post
Share on other sites

OK, så er jeg helt overbevist om, at det er dit tema den er gal med. Det kan være djævelsk svært at finde ud af hvad der er sket, fordi CSS kan lappe over hinanden. Når man så hælder moduler på , og disse moduler opdateres løbende, så løber man ind i, at en enkelt fejl i et enkelt moduls CSS kan påvirke visningen af indholdet i helt andre moduler. 

 

Der er ingen vej uden om, at spore det baglæns, gennem alle de ændringer der er sket siden fejlen opstod. Og hvis man ikke ved hvornår den opstod, så er eneste hjælp at rulle backupperne tilbage i et udviklingssystem indtil den er væk. Voldsomt besværligt. Måske energien var bedre brugt på at gå op på en version 1.6. Det trigger sikkert også en stribe fejl, men det er sjovere at rette fremadrettet, end at lappe på et gammelt system, som alligevel skal opgraderes indenfor en overskuelig fremtid.

Edited by TorbenЯune

Share this post


Link to post
Share on other sites

Jeg har faktisk overvejet at hoppe op på 1.6 jeg har bare ikke turde springe ud i det endnu.

Fejlen er jo heller ikke så slem men var der nu en simpel årsag til det der var nem at rette skulle det jo selvfølgelig gøres.

Share this post


Link to post
Share on other sites

Et link til din shop ville hjælpe, så man kan se kildekoden. Torben, jeg er ikke helt enig i dit sidste indlæg. css lapper ikke over hinanden, det der står tættest på kilden vinder. Ja, ok kan være deklareret med !important. Men derfor er det jo ikke mindst vigtigt med et link. Alt andet er gætværk.

Edited by Prestafan1234

Share this post


Link to post
Share on other sites

Undkyld! - jeg er blind, eller var for træt, du havde jo lagt et link til shoppen. Der må være rettet noget i dit theme, eller også har fejlen altid været der. Alt andet giver ingen mening.

 

Så vidt jeg kan se, er der en tom style deklaration:

 

<p id="oosHook" style=""> 1</p>

 

prøv at rette, så det ser således ud:

 

<p id="oosHook" style="display:none;"> 1</p>

 

Jeg har en kunde, der har brugt dette theme da han havde 1.4. Her ser product.tpl ikke ud som din. Hele Out of stock hook ser således ud:

		<!-- Out of stock hook -->
			<div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
				{$HOOK_PRODUCT_OOS}
			</div>

			<p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties OR $product->quantity <= 0) OR $allow_oosp OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
		</div>

Share this post


Link to post
Share on other sites

Et link til din shop ville hjælpe, så man kan se kildekoden. Torben, jeg er ikke helt enig i dit sidste indlæg. css lapper ikke over hinanden, det der står tættest på kilden vinder. Ja, ok kan være deklareret med !important. Men derfor er det jo ikke mindst vigtigt med et link. Alt andet er gætværk.

Fuldstændig korrekt, men hvis der er fejl i en CSS, f.eks. at der mangler en { eller en } et eller andet sted, eller hvis der er navnesammenfald, så kan konsekvenserne være helt uoverskuelige. Så kan definitioner i et CSS give effekter i andre moduler - det er det jeg kalder overlap. 

At finde den slags fejl er som at finde en nål i en høstak.

Share this post


Link to post
Share on other sites

 

Undkyld! - jeg er blind, eller var for træt, du havde jo lagt et link til shoppen. Der må være rettet noget i dit theme, eller også har fejlen altid været der. Alt andet giver ingen mening.

 

Så vidt jeg kan se, er der en tom style deklaration:

 

<p id="oosHook" style=""> 1</p>

 

prøv at rette, så det ser således ud:

 

<p id="oosHook" style="display:none;"> 1</p>

 

Jeg har en kunde, der har brugt dette theme da han havde 1.4. Her ser product.tpl ikke ud som din. Hele Out of stock hook ser således ud:

		<!-- Out of stock hook -->
			<div id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>
				{$HOOK_PRODUCT_OOS}
			</div>

			<p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties OR $product->quantity <= 0) OR $allow_oosp OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none"{/if} >{l s='Warning: Last items in stock!'}</p>
		</div>

Jeg har løbende installeret nye moduler men har bare ikke opdaget denne fejl før nu men jeg ved det ikke var der fra starten af med dette theme.

 

Jeg har prøvet at fjerne 1 tallet <p id="oosHook" style=""> 1</p> i firefox inspicer element og så virker det men det hjælper jo ikke meget når jeg ikke aner hvilken fil det er jeg skal rette det i så det virker ;-)

 

Firefox kan så mange smarte ting men åbenbart ikke finde lige denne fil :-(

Share this post


Link to post
Share on other sites

Fuldstændig korrekt, men hvis der er fejl i en CSS, f.eks. at der mangler en { eller en } et eller andet sted, eller hvis der er navnesammenfald, så kan konsekvenserne være helt uoverskuelige. Så kan definitioner i et CSS give effekter i andre moduler - det er det jeg kalder overlap. 

At finde den slags fejl er som at finde en nål i en høstak.

Helt enig!

Share this post


Link to post
Share on other sites

Jeg har løbende installeret nye moduler men har bare ikke opdaget denne fejl før nu men jeg ved det ikke var der fra starten af med dette theme.

 

Jeg har prøvet at fjerne 1 tallet <p id="oosHook" style=""> 1</p> i firefox inspicer element og så virker det men det hjælper jo ikke meget når jeg ikke aner hvilken fil det er jeg skal rette det i så det virker ;-)

 

Firefox kan så mange smarte ting men åbenbart ikke finde lige denne fil :-(

Som nævnt skal det rettes i product.tpl - den finder du i /themes/dittheme/ mappen og det er jo ikke 1-tallet du skal fjerne, men i stedet indsætte den kode jeg skrev.

 

Ellers upload din fil her i forum, så kan jeg vise, hvad du skal ændre.

Edited by Prestafan1234

Share this post


Link to post
Share on other sites

Tror du glemte at vedhæfte?

Næ det kunne jeg bare ikke få lov til men så gør vi da bare sådan her

 

<!-- Out of stock hook -->

            {if !$allow_oosp}

            <p id="oosHook"{if $product->quantity > 0} style="display: none;"{/if}>

                {$HOOK_PRODUCT_OOS}

            </p>

            {/if}

 

            <p class="warning_inline" id="last_quantities"{if ($product->quantity > $last_qties OR $product->quantity <= 0) OR $allow_oosp OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if} >{l s='Warning: Last items in stock!'}</p>

 

            {if $product->online_only}

                <p>{l s='Online only'}</p>

            {/if}

 

            <p{if (!$allow_oosp && $product->quantity <= 0) OR !$product->available_for_order OR (isset($restricted_country_mode) AND $restricted_country_mode) OR $PS_CATALOG_MODE} style="display: none;"{/if} id="add_to_cart" class="buttons_bottom_block"><input type="submit" name="Submit" value="{l s='Add to cart'}" class="exclusive" /></p>

            {if isset($HOOK_PRODUCT_ACTIONS) && $HOOK_PRODUCT_ACTIONS}{$HOOK_PRODUCT_ACTIONS}{/if}

            <div class="clear"></div>

        </form>

        {/if}

        {if $HOOK_EXTRA_RIGHT}{$HOOK_EXTRA_RIGHT}{/if}

    </div>

</div>

 

{if $quantity_discounts}

Share this post


Link to post
Share on other sites

Det vil jo så heller være den måde koden er skrevet på i din .tpl fil. Prøv evt. at udskifte p id med div - altså jf. den kode jeg gav eksempel på fra samme theme fra min kunde. Husk backup inden du retter.

Edited by Prestafan1234

Share this post


Link to post
Share on other sites

Jeg har kørt et CSS validity check på din produktside. Der kommer 117 warnings og 57 fejl.

Jeg har checket med dette værktøj: https://jigsaw.w3.org/css-validator/#validate_by_uri+with_options

og på denne side: http://airbrush-shop.dk/product.php?id_product=971

 

De fleste fejl ligger i fancybox.

 

Det er måske årsagen til, at browseren fortolker style=diaplay:none forkert. Prøv i øvrigt at slette cache i PS inden du selv kører testen. 

 

Der må gerne være warnings - hvis man kan overbevise sig selv om at det er ok, men errors i et CSS layout går bare ikke. Vær i øvrigt opmærksom på, at w3 validatoren kan have positive fejlmeldinger (melde fejl på noget som ikke er fejl).

Edited by TorbenЯune

Share this post


Link to post
Share on other sites

Det ser godtnok slemt ud! men aner ikke hvad fancebox er, mener ikke det er noget jeg har installeret.

Fancybox er det værktøj PS bruger til at vise billeder med. (Vær opmærksom på, at nogle af fejlmeldingerne er falske, og skyldes at værktøjet ikke understøtter alle versioner af CSS).

Share this post


Link to post
Share on other sites

Nå det går da helt galt, nu sender shoppen heller ikke mails ud længere. Kunderne får godtnok ordrebekræftelse men hvis de henvender sig på kontakt formen får jeg ingen mail :unsure:

 

Det er vist på tide at hoppe op på 1.6 inden det hele falder fra hinanden.

Share this post


Link to post
Share on other sites

Jeg har en del kunder, der stadig kører på 1.4 uden problemer. Hvis du oplever, at ting som har virket tidligere, pludselig ikke virker længere - og du ved med 100% sikkerhed, at intet er ændret i shop eller hos host, bør du nok undersøge om shoppen er hacket inden du blot opgraderer.

Share this post


Link to post
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

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More