PDA

Zobacz pełną wersję : Kilka pytań o VM



Snake11
29-10-2007, 15:48
Witajcie!
Mam do Was kilka pytań na temat komponentu virtuemart 1.0.7, będę bardzo wdzięczny jeśli rozwiejecie moje wątpliwości.
1. Jak pogrubić czionkę w podpisach pod kategoriami na głównej stronie sklepu?
2. Jak wyrzucić z formularza rejestracyjnego wybór tytulatury: Pan/Pani itd?
3. W jaki sposób zrobić coś takiego, by przy każdym produkcie pojawiała się jego cena brutto i netto, a później to samo pojawiało się na potwierdzeniu zamówienia w mailu?
I jeszcze jedna sprawa tym razem związana z rejestracją w mambo 4.5.4. Jak wyrzucić z rejestracji pole IMIĘ? Jest mi ono całkowicie zbędne.
Bardzo proszę o pomoc!

ainow
29-10-2007, 23:29
Witajcie!
Mam do Was kilka pytań na temat komponentu virtuemart 1.0.7, będę bardzo wdzięczny jeśli rozwiejecie moje wątpliwości.
Korzystaj z aktualnych wersji - na dziś to 1.0.13a.

1. Jak pogrubić czionkę w podpisach pod kategoriami na głównej stronie sklepu?
W pliku administrator/components/com_virtuemart/html/shop.index.php znajdź:

<td style="text-align:center;" width="<?php echo $cellwidth ?>%" valign="top">
<a title="<?php echo $catname ?>" href="<?php echo $sess->url(URL."index.php?option=com_virtuemart&amp;page=shop.browse&amp;c ategory_id=".$db->f("category_id")); ?>">
<?php
if ($db->f("category_thumb_image")) {
echo $ps_product->show_image( $db->f("category_thumb_image"), "alt=\"$catname\"", 0, "category");
echo "<br />";
}
echo $catname;
echo ps_product_category::products_in_category( $db->f("category_id") );
?>
</a>
</td>i zastąp tym:

<td style="text-align:center;" width="<?php echo $cellwidth ?>%" valign="top">
<a title="<?php echo $catname ?>" href="<?php echo $sess->url(URL."index.php?option=com_virtuemart&amp;page=shop.browse&amp;c ategory_id=".$db->f("category_id")); ?>"><b>
<?php
if ($db->f("category_thumb_image")) {
echo $ps_product->show_image( $db->f("category_thumb_image"), "alt=\"$catname\"", 0, "category");
echo "<br />";
}
echo $catname;
echo ps_product_category::products_in_category( $db->f("category_id") );
?>
</b></a>
</td>
2. Jak wyrzucić z formularza rejestracyjnego wybór tytulatury: Pan/Pani itd?
W pliku administrator/components/com_virtuemart/html/checkout_register_form.php znajdź linię:

$shopper_fields['title'] = $shopper_fields['title'] = $VM_LANG->_PHPSHOP_SHOPPER_FORM_TITLE;i ją wykomentuj.

3. W jaki sposób zrobić coś takiego, by przy każdym produkcie pojawiała się jego cena brutto i netto, a później to samo pojawiało się na potwierdzeniu zamówienia w mailu?
Jedną cenę już masz, żeby wyświetlić drugą, trzeba pogrzebać w pliku shop.product_details.php i flypage.php (lub tym, którego używasz).
Żeby to samo osiągnąć w potwierdzeniu zamówienia trzeba grzebnąć plik email_polish.html oraz ps_checkout.php.

Snake11
30-10-2007, 18:17
Dziękuję bardzo za odpowiedzi! Mam jeszcze jedno pytanie:
Czy jest możliwa zmiana koloru czcionki w formularzu rejestracyjnym virtuemart? Chodzi mi o ten formularz, który wypełnia się przed dokonaniem zamówienia. Ew. gdzie można zmodyfikować wyświetlaną tam czcionkę?

Snake11
01-11-2007, 11:09
Troszkę odświeżacz, ale jednak drugie pytanie:
Jak z formularz rejestracyjnego wywalić pole odpowiedzialne za Kraj? Po prostu jest mi ono zbędne, bo i tak teren działania sklepu zamyka się w Polsce.

Coi
12-11-2007, 20:44
Zakomentuj następujące linie w pliku, który zmieniałeś wcześniej (gdy wyrzucałeś tytuł grzecznościowy):


$country = mosGetParam( $_REQUEST, 'country', $vendor_country_3_code);


wyrzuć "country" z listy required_fields



$shopper_fields['country'] = $VM_LANG->_PHPSHOP_SHOPPER_FORM_COUNTRY;
if (CAN_SELECT_STATES == '1') {
$shopper_fields['state'] = $VM_LANG->_PHPSHOP_SHOPPER_FORM_STATE;
$required_fields[] = 'state';
}

to powinno wystarczyć, aby nie wyświetlało kraju.

ainow
12-11-2007, 21:39
Owszem, pole "Kraj" nie jest wyświetlane w formularzu.
Pytanie mam tylko jedno - czy udało się Tobie zarejestrować w sklepie z taką modyfikacją? (kolejne pytania mam w zanadrzu...)

Coi
12-11-2007, 23:10
hmm... biję się w piersi. To nie działa. I nie wiem, dlaczego. Niby wyjąłem go z requested_fields, ale cały czas walidator jak amen w pacierzu domaga się tego kraju.

Wyjaśniłbyś, jeżeli już zająłeś się tym tematem, ainowie? Jak masz jeszcze jakieś pytania, to pisz śmiało. Jak tylko będę mógł, odpowiem w zgodzie z sumieniem.

ainow
13-11-2007, 00:41
Moje pytanie nie było czepialskie ale trochę złośliwe (albo odwrotnie ;) ).
Jakiś czas temu też wpadłem na pomysł wywalenia wyboru kraju z formularza rejestracji; niestety, wg wszelkich wiadomości, jakie udało mi się zdobyć, nie jest to zbyt prosta sprawa.

Generalnie, problem w tym, że skrypt sklepu potrzebuje w danych klienta kodu kraju, żeby poprawnie działać (głównie chodzi o moduły wysyłki). Dlatego proste wywalenie obligatoryjności wypełnienia tego nieszczęsnego pola nie rozwiązuje problemu.
Jeśli ktoś wpadnie na pomysł, jak automatycznie (bez korzystania z formularza rejestracji) dodawać odpowiedni wpis w danych konta klienta podczas rejestracji - to już będzie blisko sukcesu!

Gdy już przejdziemy opisany powyżej problem, należy się zająć dalszą modyfikacją przedmiotowego pliku (poza Twoją modyfikacją, trzeba wyciąć/zmodyfikować kod w dalszej jego części) oraz walidacją formularza (tak się to określa? ;) ), która odbywa się (chyba) w pliku ps_html.php.
Do tego miejsca doszedłem i sobie darowałem, ponieważ nie chcę za bardzo ingerować w skrypt, jeśli nie muszę. A w tym wypadku uznałem, że "skórka nie jest warta wyprawki":
Po pierwsze - nie jestem informatykiem i niedobrze czuję się grzebiąc w kodzie; po drugie - chcę mieć pewność, że nie będę miał problemów z działaniem sklepu li tylko z powodów estetycznych (a za taki uważam pole "kraj" w formularzu rejestracji); po trzecie - pojawili się u mnie klienci zza granicy, którzy kupowali towary swojej rodzinie w Polsce; po czwarte - z czasem chciałbym móc bez problemu uruchomić sprzedaż poza Polską.

W gruncie rzeczy, nie powinienem się odzywać, ponieważ nie wnoszę nic nowego; jednak wiedząc, że tak proste rozwiązanie nie działa, zwyczajnie zaswędziały mnie paluchy na klawiaturze... Przepraszam! :)

bojownik
13-11-2007, 17:12
Witam, ja usunąłem z listy wszystkie kraje, zostawiłem tylko Polska, fakt nadal istnieje ta opcja w panelu rejestracji, jednak jest domyślnie ustawiona na Polskę i klient nie musi nic klikać i wybierać.

zawsze to jakieś rozwiązanie.

Pozdrawiam

kobylinski
13-11-2007, 17:28
A próbowaliści zamiast tagu <select> wstawić <input type="hidden"> tylko z wartością przypisaną dla polski?

bojownik
13-11-2007, 18:45
Witam, tak wystarczy zmodyfikować funkcję list_country w pliku ps_html.php (katalog klas) na następujący kod:



function list_country($list_name, $value="", $extra="") {
global $VM_LANG;

$db = new ps_DB;

$q = "SELECT * from #__{vm}_country ORDER BY country_name ASC";
$db->query($q);

while ($db->next_record()) {

if ($value == $db->f("country_3_code")) {
echo "<input type=\"hidden\" value=\"" . $db->f("country_3_code")."\" name=\"$list_name\" $extra />";
}

}

return True;
}

Należy tylko pamiętać, aby usunąć wszystkie inne kraje, zostawić domyślnie polski. Lub do zmiennej value przypisać na stałe wysyłaną wartość POST kraju .


EDYCJA:
Można pod instrukcją warunkową, lub przed returnem dodać:

echo "Polska";
Jeśli zleży nam, aby było to wypisane w panelu, lub nie chce Wam się grzebać w pliku checkout_register_form.php w celu modyfikacji szablonu.