PDA

Zobacz pełną wersję : VirtuaMart i symbol waluty



kviat
17-04-2006, 00:47
O ile wyświetlanie polskich liter w menu administratora "załatwia" usunięcie linii w administrator/components/com_virtuemart/header.php

$menu_code = htmlentities( $menu_code, ENT_NOQUOTES );
lub
//$menu_code = htmlentities( $menu_code, ENT_NOQUOTES );
(to znalazłem na forum)

to w opcji Sklep -> Edytuj sklep jest pole symbol waluty (Currency symbol), w którym po wpisaniu "zł" i zapisaniu zmian, w bazie zamienia to na "z³"
i od strony frontowej wyświetla jako "z3" (3 w indeksie górnym ofkors :))
Tabelą przechowującą symbol waluty jest "vm_vendor" i znalazłem, że funkcja odpowiedzialna za zmianę znajduje się w pliku:
administrator/components/com_virtuemart/classes/ps_vendor.php


function checkCurrencySymbol( $symbol, $convertToEntity=true ) {

$symbol = str_replace('&', '&', $symbol );

if( substr( $symbol, 0, 1) == '&' && substr( $symbol, strlen($symbol)-1, 1 ) == ';') {
return $symbol;
}
else {
if( $convertToEntity ) {
$symbol = htmlentities( $symbol, ENT_QUOTES, 'utf-8' );

if( substr( $symbol, 0, 1) == '&' && substr( $symbol, strlen($symbol)-1, 1 ) == ';') {
return $symbol;
}
// Sometimes htmlentities() doesn't return a valid HTML Entity
switch( ord( $symbol ) ) {
case 128:
case 63:
$symbol = '€';
break;
}

}
}

return $symbol;
}


Wykasowanie (lub "skomentowanie") linii:
//$symbol = htmlentities( $symbol, ENT_QUOTES, 'utf-8' );
daje pożądany efekt. W bazie zapisuje prawidłowo "zł" i wyświetla również prawidłowo od strony frontowej.
Pytanie do mądrzejszych: czy taka zmiana w tej funkcji nie spowoduje błędów w innym miejscu? Nie jestem biegły w PHP ale domyślam się, że taka konwersja miała czemuś służyć. Względy bezpieczeństwa? Coś innego?
Jeżeli nie wolno zmieniać tej funkcji to jak spowodować prawidłowe wyświetlanie symbolu "zł"?

zwiastun
17-04-2006, 01:24
ciekaw, jak Ci się euro wyświetla, jak się wyświetlają funty

I na marginesie... Jaką masz wersję joomla i skąd?

kviat
17-04-2006, 13:12
ciekawe... symbol "€" i "£" zamienia nadal na "&#8364" i "£". Od strony frontowej symbole wyświetla poprawnie.
Tylko "zł" zapisuje w tabeli bez zmian. A o to mi chodziło.

Joomla 1.08 PL - z tej strony
VM 1.04 - ze strony VM

Nadal nie wiem czy czegoś nie skopałem (pomimo tego, że zamierzony efekt osiągnąłem) zmieniając tą funkcję.

scotty
20-04-2006, 01:04
wpisz zamiast zł
PLN i po klopocie:)

kviat
20-04-2006, 08:42
Nie wiem czy zauważyłeś, że po wpisaniu "PLN" nadal będzie wyświetlać "zł" nieprawidłowo. Wogóle nie będzie wyświetlać "zł".
Pytałem o prawidłowość rozwiązania problemu z "zł", a nie co wpisać zamiast.

bruno
25-04-2006, 23:24
Panowie wystarczyło wpisać w edycji sklepu/ sklep w miejsce waluty zł w kodzie utf (niestety jak wpisze na forum to sie dekoduje na polskie znaki wiec moge komus na maila przesłać lub w pliku txt, jaki ma byc kod :) Taka zmiana wyświetla poprawnie na stronie Polskie Złote , juz jakis czas temu to zmieniłem u siebie.

kviat
26-04-2006, 00:32
No niby tak. Tyle, że ja próbuję to wszystko postawić na kodowaniu 8859-2.
Mój błąd. Zapomniałem to napisać w pierwszym poście.

bruno
26-04-2006, 00:43
po co gmatwac, jak wejdzie wersja 1.05 i poprawi to soren :)

Ja mam wiekszy problem i nie wiem jak go rozwiac. Dodałem towar metoda csv i nie da sie go za chiny umiescic na sklepie zeby byl widoczny jak biore lista produktow wysweitla sie 14 sztuk ktore sa aktualnie na sklepie, dopiero po kliknieciu "with proce modyfied" pokazuja sie dalsze 3 ktore to nawte jak dodam do kategori ktora jest aktywna nie da sie ich wyswietlic, patrzylem w bazie maja wpisane wszystko, cene, kod, zdjecie, czas. Nie wiem co za piorun. Najsmieszniejsze jest to że mialem część towaru tzn. testowa baze te młotki, grabki widoczne i teraz wyswietla sie tylko czes asortymentu bez np. drabinek :) Druga sprawa na sklepie w kategorii w nawiasie wysweitla sie ilosc np 3 a widoczne sa tylko 2 towary . help me :)

Trosmisiek
14-06-2006, 04:03
A wiecie może co zrobić, żeby symbol waluty pokazywał się po cenie?
Tzn. żeby było np. "10.00 zł", a nie "zł10.00"? Mam VM 1.05.

Z polskimi literami sobie poradziłem, wielkie dzięki za wskazówki :)

bruno
14-06-2006, 10:24
Prościzna wejdz w edycja sklepu i na 1 stronie masz negative symbol i positiv symbol tam masz zdefiniowane rozne ustawienia wyswietlania cen