mitsos1os Posted April 20, 2013 Share Posted April 20, 2013 Καλησπέρα παιδιά. Έχω πρόβλημα με τα μηνύματα popup που πετάγονται με javascript alerts στο Prestashop σε διάφορα σημεία στο site, όπως για παράδειγμα όταν πας να προσθέσεις στη λίστα προϊόντων ένα προϊόν που δεν έχει απόθεμα και πετάει το μήνυμα There isn't enough product in stock στα αγγλικά και το ανάλογο ελληνικό στη μετάφραση, ενώ θα έπρεπε να βγάλει "Δεν υπάρχουν αρκετά προϊόντα σε απόθεμα", βγάζει "Δεν υπάρχου&nu....... κλπ" Είδα αρκετά παρόμοια θέματα και στον Prestashop Issue Tracker, αλλά δυστυχώς χωρία κάποια ουσιώδη λύση. Μάλιστα άνοιξα και ένα issue εγώ εδώ: http://forge.prestashop.com/browse/PSCFV-8851 Κοιτώντας τον κώδικα javascript βλέπω ότι το μήνυμα έρχεται ήδη λάθος στο alert με τη μεταβλητή jsonData.error. Δεν το χαλάει η javascript δηλαδή. Άρα λογικά κάπου χαλάει στην παραγωγή του με php. Δυστυχώς όμως δεν μπορώ να το βρώ πουθενά που παράγεται. Είδα κάποιους με το ίδιο πρόβλημα στον tracker που αναφέρουν ότι λύθηκε το πρόβλημα με την έκδοση του 3.1.13 του smarty, όμως έχω ήδη αυτήν λόγω της αναβάθμισης σε prestashop 1.5.4 Κάθε βοήθεια δεκτή. Είναι αρκετά επείγον το θέμα... Κάθε βοήθεια και συμβουλή ευπρόσδεκτη. Ευχαριστώ πολύ. Link to comment Share on other sites More sharing options...
mitsos1os Posted April 21, 2013 Author Share Posted April 21, 2013 Παιδιά βρήκα τη λύση. Το πρόβλημα είναι ότι η Javascript στα alert δεν μπορεί να μεταφράσει χαρακτήρες htmlentity χωρίς escape χαρακτήρες όπως τους δίνει το Prestashop, οπότε τα δείχνει ως έχουν. Εγώ έλυσα το πρόβλημά μου, κάνοντας override την default alert συνάρτηση της Javascript, ώστε με την χρήση του jQuery να δέχεται απευθείας το τελικό κείμενο και όχι σε htmlentity μορφή. Πρόσθεσα στον κώδικα του header.tpl του θέματός μου, τον κώδικα αυτόν μέσα στο <head> <script type="text/javascript"> var old_alert=window.alert; window.alert=function(msg){ old_alert($('<div/>').html(msg).text()); }; </script> Για περισσότερες πληροφορίες μπορείτε να δείτε την απάντησή μου εδώ στον issue tracker: http://forge.prestashop.com/browse/PSCFV-8851?focusedCommentId=72078#comment-72078 Ελπίζω να βοήθησα... 1 Link to comment Share on other sites More sharing options...
Puriom Posted June 6, 2013 Share Posted June 6, 2013 Παιδιά βρήκα τη λύση. Το πρόβλημα είναι ότι η Javascript στα alert δεν μπορεί να μεταφράσει χαρακτήρες htmlentity χωρίς escape χαρακτήρες όπως τους δίνει το Prestashop, οπότε τα δείχνει ως έχουν. Εγώ έλυσα το πρόβλημά μου, κάνοντας override την default alert συνάρτηση της Javascript, ώστε με την χρήση του jQuery να δέχεται απευθείας το τελικό κείμενο και όχι σε htmlentity μορφή. Πρόσθεσα στον κώδικα του header.tpl του θέματός μου, τον κώδικα αυτόν μέσα στο Για περισσότερες πληροφορίες μπορείτε να δείτε την απάντησή μου εδώ στον issue tracker: http://forge.prestashop.com/browse/PSCFV-8851?focusedCommentId=72078#comment-72078 Ελπίζω να βοήθησα... Για το block cart, σε ποιο αρχείο πρέπει να γίνει η προσθήκη; Link to comment Share on other sites More sharing options...
Puriom Posted June 14, 2013 Share Posted June 14, 2013 Μήπως μπορεί να βοηθήσει κανείς; Link to comment Share on other sites More sharing options...
mitsos1os Posted June 14, 2013 Author Share Posted June 14, 2013 Καλησπέρα φίλε μου. Όπως λέω στο bug tracker στο Link που παραπέμπω στο post μου, για να κάνεις override την alert συνάρτηση και να τα βγάζει σωστά τα μηνύματα στα ελληνικά, αρκεί να προσθέσεις τον κώδικα <script type="text/javascript"> var old_alert=window.alert; window.alert=function(msg){ old_alert($('<div/>').html(msg).text()); }; </script> στο αρχείο header.tpl του template Που χρησιμοποιείς. Αυτό θα βρίσκεται στη διαδρομή: /themes/"ONOMA TEMPLATE"/header.tpl Εκεί βάλτο κατά προτίμηση αμέσως πριν από το tag {$HOOK_HEADER} Link to comment Share on other sites More sharing options...
Puriom Posted June 14, 2013 Share Posted June 14, 2013 Σ' ευχαριστώ, αλλά δυστυχώς δεν έπιασε... Link to comment Share on other sites More sharing options...
mitsos1os Posted June 15, 2013 Author Share Posted June 15, 2013 Αν το έκανες σωστά θα έπιασε.... Εφόσον βέβαια μιλάμε για το ίδιο πρόβλημα έτσι.... Αν θες στείλε μου το αρχείο του template Που χρησιμοποιείς και θα στο κάνω εγώ.... Κάντο attach εδώ σε μήνυμα Link to comment Share on other sites More sharing options...
Puriom Posted June 15, 2013 Share Posted June 15, 2013 Σ' ευχαριστώ για τη βοήθεια!!! {* * 2007-2013 PrestaShop * * 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.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 [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 " lang="{$lang_iso}"> <![endif]--> <!--[if IE 7]><html class="no-js lt-ie9 lt-ie8 ie7" lang="{$lang_iso}"> <![endif]--> <!--[if IE 8]><html class="no-js lt-ie9 ie8" lang="{$lang_iso}"> <![endif]--> <!--[if gt IE 8]> <html class="no-js ie9" lang="{$lang_iso}"> <![endif]--> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$lang_iso}"> <head> <title>{$meta_title|escape:'htmlall':'UTF-8'}</title> {if isset($meta_description) AND $meta_description} <meta name="description" content="{$meta_description|escape:html:'UTF-8'}" /> {/if} {if isset($meta_keywords) AND $meta_keywords} <meta name="keywords" content="{$meta_keywords|escape:html:'UTF-8'}" /> {/if} <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> <meta http-equiv="content-language" content="{$meta_language}" /> <meta name="generator" content="PrestaShop" /> <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" /> <link rel="icon" type="image/vnd.microsoft.icon" href="{$favicon_url}?{$img_update_time}" /> <link rel="shortcut icon" type="image/x-icon" href="{$favicon_url}?{$img_update_time}" /> <script type="text/javascript"> var baseDir = '{$content_dir}'; var baseUri = '{$base_uri}'; var static_token = '{$static_token}'; var token = '{$token}'; var priceDisplayPrecision = {$priceDisplayPrecision*$currency->decimals}; var priceDisplayMethod = {$priceDisplay}; var roundMode = {$roundMode}; </script> {if isset($css_files)} {assign var=forcount value=1} {foreach from=$css_files key=css_uri item=media name=css} {assign var=cssfile value=$css_uri|substr:-30} {assign var=cssfile2 value=$css_uri|substr:-20} {if $cssfile != 'actinfos/blockcontactinfos.css' and $cssfile != '/modules/blockcms/blockcms.css' and $cssfile != '/blockcontact/blockcontact.css' and $cssfile != 'facturer/blockmanufacturer.css' and $cssfile != 'countfooter/blockmyaccount.css' and $cssfile != 'es/blocksocial/blocksocial.css' and $cssfile != '/homefeatured/homefeatured.css' and $cssfile != 'les/blockreinsurance/style.css' and $cssfile != 'es/blocksearch/blocksearch.css' and $cssfile != 'lockuserinfo/blockuserinfo.css' and $cssfile != 'odules/blockcart/blockcart.css' and $cssfile != 'tlinks/blockpermanentlinks.css' and $cssfile2 != 'css/product_list.css' and $cssfile != 'mplete/jquery.autocomplete.css' and $cssfile != 'odules/blocktags/blocktags.css' } {assign var=forcount value=$forcount+1} <link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" /> {/if} {/foreach} {/if} <link href="{$css_dir}responsive-tables.css" rel="stylesheet" type="text/css" media="screen" /> <link href="{$css_dir}custom.css" rel="stylesheet" type="text/css" media="screen" /> {if isset($js_files)} {foreach from=$js_files item=js_uri} <script type="text/javascript" src="{$js_uri}"></script> {/foreach} {/if} <script type="text/javascript" src="{$js_dir}respond.min.js"></script> <script type="text/javascript" src="{$js_dir}imgSizer.js"></script> <script type="text/javascript" src="{$js_dir}jQuery.equalHeights.js"></script> <script type="text/javascript" src="{$js_dir}breakpoints.js"></script> <script type="text/javascript" src="{$js_dir}responsive-tables.js"></script> <script type="text/javascript" src="{$js_dir}responsive.js"></script> <script type="text/javascript"> var old_alert=window.alert; window.alert=function(msg){ old_alert($('<div/>').html(msg).text()); }; </script> {$HOOK_HEADER} </head> <body class="width2 {if $hide_left_column}hide-left-column{/if} {if $hide_right_column}hide-right-column{/if} {if $content_only} content_only {/if}" {if isset($page_name)}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if}> {if !$content_only} {if isset($restricted_country_mode) && $restricted_country_mode} <div id="restricted-country"> <p>{l s='You cannot place a new order from your country.'} <span class="bold">{$geolocation_country}</span></p> </div> {/if} <div id="layout" class="clearfix margin1"> <!-- Header --> <div id="header"> <div id="header_right"> <div id="logo_wrapper"> <a id="header_logo" href="{$base_dir}" title="{$shop_name|escape:'htmlall':'UTF-8'}"> <img class="logo" src="{$logo_url}" alt="{$shop_name|escape:'htmlall':'UTF-8'}" /> </a> </div> {$HOOK_TOP} </div> </div> <div id="columns" class="clearfix"> <!-- Left --> <div id="left_column" class="column"> {if (isset($page_name) and $page_name == 'index')}{$HOOK_LEFT_COLUMN}{elseif (isset($page_name) and $page_name == 'category')}{$HOOK_LEFT_COLUMN}{elseif (isset($page_name) and $page_name == 'product')}{$HOOK_LEFT_COLUMN}{else}{$HOOK_LEFT_COLUMN}{/if} </div> <!-- Center --> <div id="center_column" class="{if (isset($page_name) and $page_name == 'index')}{elseif (isset($page_name) and $page_name == 'category')}{elseif (isset($page_name) and $page_name == 'product')} columnWide2{else}{/if}"> {/if} Link to comment Share on other sites More sharing options...
mitsos1os Posted June 15, 2013 Author Share Posted June 15, 2013 Α μάλιστα..... Το πρόβλημα είναι ότι εγώ χρησιμοποιώ το jquery για να το πετύχω αυτή την μετατροπή που λέω. ενώ για κάποιο λόγο το πρότυπό σου δεν φαίνεται να το φορτώνει στο header... Οπότε λογικά με την προσθήκη της γραμμής <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script> επίσης θα δουλέψει.... Συνολικά δηλαδή έχουμε αυτό το περιεχόμενο {* * 2007-2013 PrestaShop * * 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.txt. * It is also available through the world-wide-web at this URL: * http://opensource.or...ses/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 [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2013 PrestaShop SA * @license http://opensource.or...ses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 " lang="{$lang_iso}"> <![endif]--> <!--[if IE 7]><html class="no-js lt-ie9 lt-ie8 ie7" lang="{$lang_iso}"> <![endif]--> <!--[if IE 8]><html class="no-js lt-ie9 ie8" lang="{$lang_iso}"> <![endif]--> <!--[if gt IE 8]> <html class="no-js ie9" lang="{$lang_iso}"> <![endif]--> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$lang_iso}"> <head> <title>{$meta_title|escape:'htmlall':'UTF-8'}</title> {if isset($meta_description) AND $meta_description} <meta name="description" content="{$meta_description|escape:html:'UTF-8'}" /> {/if} {if isset($meta_keywords) AND $meta_keywords} <meta name="keywords" content="{$meta_keywords|escape:html:'UTF-8'}" /> {/if} <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> <meta http-equiv="content-language" content="{$meta_language}" /> <meta name="generator" content="PrestaShop" /> <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" /> <link rel="icon" type="image/vnd.microsoft.icon" href="{$favicon_url}?{$img_update_time}" /> <link rel="shortcut icon" type="image/x-icon" href="{$favicon_url}?{$img_update_time}" /> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script> <script type="text/javascript"> var old_alert=window.alert; window.alert=function(msg){ old_alert($('<div/>').html(msg).text()); }; </script> <script type="text/javascript"> var baseDir = '{$content_dir}'; var baseUri = '{$base_uri}'; var static_token = '{$static_token}'; var token = '{$token}'; var priceDisplayPrecision = {$priceDisplayPrecision*$currency->decimals}; var priceDisplayMethod = {$priceDisplay}; var roundMode = {$roundMode}; </script> {if isset($css_files)} {assign var=forcount value=1} {foreach from=$css_files key=css_uri item=media name=css} {assign var=cssfile value=$css_uri|substr:-30} {assign var=cssfile2 value=$css_uri|substr:-20} {if $cssfile != 'actinfos/blockcontactinfos.css' and $cssfile != '/modules/blockcms/blockcms.css' and $cssfile != '/blockcontact/blockcontact.css' and $cssfile != 'facturer/blockmanufacturer.css' and $cssfile != 'countfooter/blockmyaccount.css' and $cssfile != 'es/blocksocial/blocksocial.css' and $cssfile != '/homefeatured/homefeatured.css' and $cssfile != 'les/blockreinsurance/style.css' and $cssfile != 'es/blocksearch/blocksearch.css' and $cssfile != 'lockuserinfo/blockuserinfo.css' and $cssfile != 'odules/blockcart/blockcart.css' and $cssfile != 'tlinks/blockpermanentlinks.css' and $cssfile2 != 'css/product_list.css' and $cssfile != 'mplete/jquery.autocomplete.css' and $cssfile != 'odules/blocktags/blocktags.css' } {assign var=forcount value=$forcount+1} <link href="{$css_uri}" rel="stylesheet" type="text/css" media="{$media}" /> {/if} {/foreach} {/if} <link href="{$css_dir}responsive-tables.css" rel="stylesheet" type="text/css" media="screen" /> <link href="{$css_dir}custom.css" rel="stylesheet" type="text/css" media="screen" /> {if isset($js_files)} {foreach from=$js_files item=js_uri} <script type="text/javascript" src="{$js_uri}"></script> {/foreach} {/if} <script type="text/javascript" src="{$js_dir}respond.min.js"></script> <script type="text/javascript" src="{$js_dir}imgSizer.js"></script> <script type="text/javascript" src="{$js_dir}jQuery.equalHeights.js"></script> <script type="text/javascript" src="{$js_dir}breakpoints.js"></script> <script type="text/javascript" src="{$js_dir}responsive-tables.js"></script> <script type="text/javascript" src="{$js_dir}responsive.js"></script> {$HOOK_HEADER} </head> <body class="width2 {if $hide_left_column}hide-left-column{/if} {if $hide_right_column}hide-right-column{/if} {if $content_only} content_only {/if}" {if isset($page_name)}id="{$page_name|escape:'htmlall':'UTF-8'}"{/if}> {if !$content_only} {if isset($restricted_country_mode) && $restricted_country_mode} <div id="restricted-country"> <p>{l s='You cannot place a new order from your country.'} <span class="bold">{$geolocation_country}</span></p> </div> {/if} <div id="layout" class="clearfix margin1"> <!-- Header --> <div id="header"> <div id="header_right"> <div id="logo_wrapper"> <a id="header_logo" href="{$base_dir}" title="{$shop_name|escape:'htmlall':'UTF-8'}"> <img class="logo" src="{$logo_url}" alt="{$shop_name|escape:'htmlall':'UTF-8'}" /> </a> </div> {$HOOK_TOP} </div> </div> <div id="columns" class="clearfix"> <!-- Left --> <div id="left_column" class="column"> {if (isset($page_name) and $page_name == 'index')}{$HOOK_LEFT_COLUMN}{elseif (isset($page_name) and $page_name == 'category')}{$HOOK_LEFT_COLUMN}{elseif (isset($page_name) and $page_name == 'product')}{$HOOK_LEFT_COLUMN}{else}{$HOOK_LEFT_COLUMN}{/if} </div> <!-- Center --> <div id="center_column" class="{if (isset($page_name) and $page_name == 'index')}{elseif (isset($page_name) and $page_name == 'category')}{elseif (isset($page_name) and $page_name == 'product')} columnWide2{else}{/if}"> {/if} Δοκίμασέ το και πες μου να δουλέψει! Link to comment Share on other sites More sharing options...
Puriom Posted June 15, 2013 Share Posted June 15, 2013 Δυστυχώς δεν έπιασε. :/ (Ευχαριστώ, όμως.) Αυτό το jquery τι είναι, - να το χρησιμοποιήσω; Είναι κάτι απλό; Link to comment Share on other sites More sharing options...
mitsos1os Posted June 15, 2013 Author Share Posted June 15, 2013 Αν έχεις ανεβασμένη την σελίδα σου κάπου δώσε το Url Να την δώ Link to comment Share on other sites More sharing options...
Puriom Posted June 15, 2013 Share Posted June 15, 2013 Σου την στέλνω σε προσωπικό μήνυμα. Ευχαριστώ. Link to comment Share on other sites More sharing options...
Puriom Posted June 15, 2013 Share Posted June 15, 2013 (edited) q Edited June 15, 2013 by Puriom (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now