Jump to content

Νέα προιόντα 2


gouz13

Recommended Posts

Τα πεδία που συνήθως «κόβονται» από ένα όριο χαρακτήρων και πάνω είναι τα "Name" και "Short Description". Το "Description" δε θα πρέπει κανονικά να κόβεται.

 

Είσαι σίγουρος ότι εννοείς το τελευταίο και όχι ένα από τα δύο πρώτα...;

Link to comment
Share on other sites

Αν πας να κάνεις edit το προϊόν, θα δεις ότι το πεδίο "Name" είναι ολόκληρο όπως το εισήγαγες αρχικά. Απλά το theme που χρησιμοποιείς έχει μέσα στον κώδικά του έναν περιορισμό στο μέγιστο αριθμό χαρακτήρων που προβάλλει στους τίτλους προϊόντων. Δηλαδή το κόψιμο γίνεται μόνο στην προβολή των πολύ μακροσκελών τίτλων, όχι στην καταχώρηση του προϊόντος.

 

Τώρα, γιατί άλλα κόβονται κι άλλα όχι; Για μέτρα στους πόσους χαρακτήρες σου κόβει τίτλους και σύγκρινε με τον αριθμό χαρακτήρων που έχουν αυτά που δεν κόβονται. Θα καταλάβεις...

Link to comment
Share on other sites

Α, για τόσο λίγους χαρακτήρες μιλας; Κάποιο πρόβλημα υπάρχει τότε.

 

Χρησιμοποιείς κανέναν περίεργο χαρακτήρα μέσα στον τίτλο; Π.χ. άνω-κάτω τελεία ή απόστροφο; Δες λίγο, σε αυτά που κόβονται, ο πρώτος χαρακτήρας που κόπηκε ποιος είναι;

Link to comment
Share on other sites

Εννοείς στην προβολή κατηγορίας/λίστας, σωστά; Π.χ. εδώ:

 

http://www.oikano-carparts.gr/index.php?id_category=91&controller=category&n=10&p=2

 

Συνήθως είναι περιορισμός του theme. Π.χ. αν δεις το αρχείο product-list.tpl του default Bootstrap theme του PrestaShop 1.6, γίνεται χρήση της Smarty συνάρτησης truncate για να κρατιούνται μόνο οι 45 πρώτοι χαρακτήρες:

                    <h5 itemprop="name">
                        {if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if}
                        <a class="product-name" href="{$product.link|escape:'html':'UTF-8'}" title="{$product.name|escape:'html':'UTF-8'}" itemprop="url" >
                            {$product.name|truncate:45:'...'|escape:'html':'UTF-8'}
                        </a>
                    </h5>

Αλλά εσένα το θέμα σου (το οποίο δεν φαίνεται να είναι το default, αλλά κάποιο τρίτο θέμα βασισμένο στο default) στα κόβει με κάποιο άλλο κριτήριο.

 

 

Κάπου μέσα στο αρχείο σου /themes/theme771/product-list.tpl γίνεται η δουλειά. Μπορείς να ρωτήσεις αυτόν που σου έστησε το site ή να ανεβάσεις εδώ τα περιεχόμενα του αρχείου αυτού, για να το τσεκάρουμε.

Edited by parsifal (see edit history)
Link to comment
Share on other sites

{if isset($products)}

<!-- Products list -->

{assign var='nbItemsPerLine' value=3}

{assign var='nbLi' value=$products|@count}

{math equation="nbLi/nbItemsPerLine" nbLi=$nbLi nbItemsPerLine=$nbItemsPerLine assign=nbLines}

<ul id="product_list" class="grid row">

{foreach from=$products item=product name=products}

{math equation="(total%perLine)" total=$smarty.foreach.products.total perLine=$nbItemsPerLine assign=totModulo}

    {if $totModulo == 0}{assign var='totModulo' value=$nbItemsPerLine}{/if}

<li class="ajax_block_product span3 num-{$smarty.foreach.products.iteration}{if $smarty.foreach.products.iteration%$nbItemsPerLine == 0} omega{elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1} alpha{/if} {if $smarty.foreach.products.iteration > ($smarty.foreach.products.total - $totModulo)}last_line{/if}">

<a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}">

        <img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" />

        </a>

<div class="center_block">

<div class="product_flags clearfix">

{if isset($product.new) && $product.new == 1}<span class="new title_shop">{l s='New'}!</span>{/if}

                {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}             

                {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}

                <span class="availability title_shop">{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}

                {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{l s='Product available with different options'}{else}{l s='Out of stock'}{/if}</span>{/if}

{if isset($product.online_only) && $product.online_only}<span class="online_only title_shop">{l s='Online only'}</span>{/if}

                {/if}  

</div>

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

            <h5><a class="product_link" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|escape:'htmlall':'UTF-8'|truncate:25:'...'}</a></h5>

            <p class="product_desc">{$product.description_short|strip_tags:'UTF-8'|truncate:450:'...'}</p>

            <p class="product_desc mob">{$product.description_short|strip_tags:'UTF-8'|truncate:90:'...'}</p>

            <p class="product_desc mob2">{$product.description_short|strip_tags:'UTF-8'|truncate:180:'...'}</p>  

</div>

<div class="right_block">

        {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="on_sale title_shop">{l s='On sale!'}</span>

{elseif isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}<span class="discount title_shop">{l s='Reduced price!'}</span>{/if}

{if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))}

            {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}

            <span class="price">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span>{/if}  

{/if}

           {if isset($comparator_max_item) && $comparator_max_item && !isset($instant_search)}

<p class="compare checkbox choices-thin clearfix">

                <input type="checkbox"  class="comparator" id="comparator_item_{$product.id_product}" value="comparator_item_{$product.id_product}" 

                {if isset($compareProducts) && in_array($product.id_product, $compareProducts)}checked="checked"{/if} /> 

<label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p>

{/if}

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

{if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE}

{if ($product.allow_oosp || $product.quantity > 0)}

{if isset($static_token)}

<a class="ajax_add_to_cart_button exclusive btn_add_cart" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add&id_product={$product.id_product|intval}&token={$static_token}", false)}" title="{l s='Add to cart'}">

                            <span>{l s='Add to cart'}</span>

                           </a>

{else}

<a class="ajax_add_to_cart_button exclusive btn_add_cart" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart',false, NULL, "add&id_product={$product.id_product|intval}", false)}" title="{l s='Add to cart'}">

                            <span>{l s='Add to cart'}</span>

                            </a>

{/if}

{else}

<span class="exclusive">{l s='Add to cart'}</span>

{/if}

{/if}

<a class="button" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{l s='View'}">{l s='View'}</a>          

</div>

</li>

{/foreach}

<script>

(function($) {

$(function() {

function createCookie(name,value,days) {

if (days) {

var date = new Date();

date.setTime(date.getTime()+(days*24*60*60*1000));

var expires = "; expires="+date.toGMTString();

}

else var expires = "";

document.cookie = name+"="+value+expires+"; path=/";

}

function readCookie(name) {

var nameEQ = name + "=";

var ca = document.cookie.split(';');

for(var i=0;i < ca.length;i++) {

var c = ca;

while (c.charAt(0)==' ') c = c.substring(1,c.length);

if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

}

return null;

}

function eraseCookie(name) {

createCookie(name,"",-1);

}

$('ul.product_view').each(function(i) {

var cookie = readCookie('tabCookie'+i);

if (cookie) $(this).find('li').eq(cookie).addClass('current').siblings().removeClass('current')

.parents('#center_column').find('#product_list').addClass('list').removeClass('grid').eq(cookie).addClass('grid').removeClass('list');

})

$('ul.product_view').delegate('li:not(.current)', 'click', function(i) {

$(this).addClass('current').siblings().removeClass('current')

.parents('#center_column').find('#product_list').removeClass('grid').addClass('list').eq($(this).index()).addClass('grid').removeClass('list')

var cookie = readCookie('tabCookie'+i);

if (cookie) $(this).find('#product_list').eq(cookie).removeClass('grid').addClass('list').siblings().removeClass('list')

var ulIndex = $('ul.product_view').index($(this).parents('ul.product_view'));

eraseCookie('tabCookie'+ulIndex);

createCookie('tabCookie'+ulIndex, $(this).index(), 365);

})

})

})(jQuery)

    </script>

    </ul>

{/if}

Link to comment
Share on other sites

Μάλιστα.

 

 

<h5><a class="product_link" href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|escape:'htmlall':'UTF-8'|truncate:25:'...'}</a></h5>

 

Γίνεται truncate με μέγιστους προβαλλόμενους χαρακτήρες τους 25, αλλά πάλι δεν εξηγεί γιατί σου κόβει το "Citroen C2 '04 1360cc", το οποίο είναι 21 χαρακτήρες... :mellow:

Link to comment
Share on other sites

Τους ελληνικους τους κοβει πολυ περισσοτερο επειδη τους αποθηκευει στην DB utf8 html encoded, πχ Δεμα = Δεμα  δηλαδή πολλαπλάσιοι χαρακτήρες για κάθε ελληνικό χαρακτήρα.

Link to comment
Share on other sites

Από ποια έκδοση ισχύει αυτό; Σε PS 1.5.3.1, οι ελληνικοί χαρακτήρες φαίνεται να αποθηκεύονται κανονικά:

 

attachicon.gifprestashop-db-greek-characters.png

Στην 1.6 και μετα το παρατηρησα και υπεθεσα απο το προβλημα αυτη θα ειναι η αιτια. Μπορει να μας διαφωτισει ο O.P. ποια εκδοση εχει και να δει στην Db αν ισχυει αυτο.

post-476058-0-81609400-1412112543_thumb.png

Link to comment
Share on other sites

Και στη στήλη "Name" συμβαίνει το ίδιο; Το screenshot σου δείχνει μέχρι τη στήλη "Short description, η οποία δέχεται rich/HTML formatted text και ίσως γι' αυτό εφαρμόζεται κωδικοποίηση non-Latin χαρακτήρων ως HTML entities.

 

Όμως η στήλη "Name" πρέπει να μπορεί να χρησιμοποιείται και για sorting, γι' αυτό μου φαίνεται τεχνικά λάθος να συμβαίνει το ίδιο και σε αυτήν...

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

Και στη στήλη "Name" συμβαίνει το ίδιο; Το screenshot σου δείχνει μέχρι τη στήλη "Short description, η οποία δέχεται rich/HTML formatted text και ίσως γι' αυτό εφαρμόζεται κωδικοποίηση non-Latin χαρακτήρων ως HTML entities.

 

Όμως η στήλη "Name" πρέπει να μπορεί να χρησιμοποιείται και για sorting, γι' αυτό μου φαίνεται τεχνικά λάθος να συμβαίνει το ίδιο και σε αυτήν...

Οχι στη Name, σωστα ! δεν διαβασα προσεκτικα τα posts, sorry.

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...