Pro?ba o pomoc przy modyfikacji karty produktu

Miejsce dla ogólnych, luźnych dyskusji odnośnie systemu Opencart.

Re: Proźba o pomoc przy modyfikacji karty produktu

Postprzez nojeks » 26 lut 2014, o 12:39

NIe ma tu edytuj czy ja nie widzę.

Czy mówiąc o kontrolerze masz na myśli "catalog/controller/product/product.php" tą ścieżkę? Ale która funkcja oblicza cenę?? nie widzę :(
nojeks
 
Posty: 14
Dołączył(a): 17 sty 2014, o 22:50
Lokalizacja: ??dzkie, ?wieciech?w

Re: Proźba o pomoc przy modyfikacji karty produktu

Postprzez staniapl » 26 lut 2014, o 12:46

rzuć linka na pw podglądne co zrobiłeś
Avatar użytkownika
staniapl
 
Posty: 631
Dołączył(a): 13 lut 2012, o 19:47
Lokalizacja: Zambr?w, Nowe Piekuty

Re: Proźba o pomoc przy modyfikacji karty produktu

Postprzez nojeks » 26 lut 2014, o 13:19

:) jak na razie to nie wiele zrobiłem ale zerknij. Oczywiście obrazki są poglądowe i wygląd standard. Jak zadziała algorytm obliczeń (jak go pojmę :D ) to zajmę się wyglądem, choć tak naprawdę to standardowy jest dość przyjemny dla oka. Osobiście wychodzę z założenie, że sklep ma być czytelny, bez wodotrysków i prosty w obsłudze. Mówiąc brzydko debilo-odporny. Za dużo bajerów rozprasza klienta, który nie zawsze jest być fanem komputerów :).
P.S.
Kod: Zaznacz cały
public function write() {
      $this->language->load('product/product');
      
      $this->load->model('catalog/review');
      
      $json = array();
      
      if ($this->request->server['REQUEST_METHOD'] == 'POST') {
         if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 25)) {
            $json['error'] = $this->language->get('error_name');
         }
         
         if ((utf8_strlen($this->request->post['text']) < 25) || (utf8_strlen($this->request->post['text']) > 1000)) {
            $json['error'] = $this->language->get('error_text');
         }
   
         if (empty($this->request->post['rating'])) {
            $json['error'] = $this->language->get('error_rating');
         }
   
         if (empty($this->session->data['captcha']) || ($this->session->data['captcha'] != $this->request->post['captcha'])) {
            $json['error'] = $this->language->get('error_captcha');
         }
            
         if (!isset($json['error'])) {
            $this->model_catalog_review->addReview($this->request->get['product_id'], $this->request->post);
            
            $json['success'] = $this->language->get('text_success');
         }
      }
      
      $this->response->setOutput(json_encode($json));
   }

Lokalizacja controller/produkt.
Co ta funkcja robi?? Zapisuje do ciastek??
nojeks
 
Posty: 14
Dołączył(a): 17 sty 2014, o 22:50
Lokalizacja: ??dzkie, ?wieciech?w

Re: Proźba o pomoc przy modyfikacji karty produktu

Postprzez staniapl » 26 lut 2014, o 13:51

odpowiada za walidacje formularza przy dodawaniu recenzji / opinnii do produktu
Avatar użytkownika
staniapl
 
Posty: 631
Dołączył(a): 13 lut 2012, o 19:47
Lokalizacja: Zambr?w, Nowe Piekuty

Re: Proźba o pomoc przy modyfikacji karty produktu

Postprzez nojeks » 26 lut 2014, o 14:08

No tak stąd jest sprawdzana długość wpisanego tekstu :oops: Całe życie człowiek się uczy :)
nojeks
 
Posty: 14
Dołączył(a): 17 sty 2014, o 22:50
Lokalizacja: ??dzkie, ?wieciech?w

Re: Proźba o pomoc przy modyfikacji karty produktu

Postprzez nojeks » 26 lut 2014, o 15:05

A już ostatnia prośba: podaj kod gdzie obliczana jest cena (ten jeden jedyny fragmencik :):) :mrgreen:
Oczywiście przed dodaniem do cart (po click addCart)
nojeks
 
Posty: 14
Dołączył(a): 17 sty 2014, o 22:50
Lokalizacja: ??dzkie, ?wieciech?w

Re: Proźba o pomoc przy modyfikacji karty produktu

Postprzez nojeks » 26 lut 2014, o 18:23

No jakoś nie mogę tego zorkminić :)
Mam /cart/add:
Kod: Zaznacz cały
public function add() {
      $this->language->load('checkout/cart');
      
      $json = array();
      
      if (isset($this->request->post['product_id'])) {
         $product_id = $this->request->post['product_id'];
      } else {
         $product_id = 0;
      }
      
      $this->load->model('catalog/product');
                  
      $product_info = $this->model_catalog_product->getProduct($product_id);
      
      if ($product_info) {         
         if (isset($this->request->post['quantity'])) {
            $quantity = $this->request->post['quantity'];
         } else {
            $quantity = 1;
         }
                                          
         if (isset($this->request->post['option'])) {
            $option = array_filter($this->request->post['option']);
         } else {
            $option = array();   
         }
         
         $product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']);
         
         foreach ($product_options as $product_option) {
            if ($product_option['required'] && empty($option[$product_option['product_option_id']])) {
               $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']);
            }
         }
         
         if (!$json) {
            $this->cart->add($this->request->post['product_id'], $quantity, $option);

            $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));
            
            unset($this->session->data['shipping_method']);
            unset($this->session->data['shipping_methods']);
            unset($this->session->data['payment_method']);
            unset($this->session->data['payment_methods']);
            
            // Totals
            $this->load->model('setting/extension');
            
            $total_data = array();               
            $total = 0;
            $taxes = $this->cart->getTaxes();
            
            // Display prices
            if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
               $sort_order = array();
               
               $results = $this->model_setting_extension->getExtensions('total');
               
               foreach ($results as $key => $value) {
                  $sort_order[$key] = $this->config->get($value['code'] . '_sort_order');
               }
               
               array_multisort($sort_order, SORT_ASC, $results);
               
               foreach ($results as $result) {
                  if ($this->config->get($result['code'] . '_status')) {
                     $this->load->model('total/' . $result['code']);
            
                     $this->{'model_total_' . $result['code']}->getTotal($total_data, $total, $taxes);
                  }
                  
                  $sort_order = array();
                
                  foreach ($total_data as $key => $value) {
                     $sort_order[$key] = $value['sort_order'];
                  }
         
                  array_multisort($sort_order, SORT_ASC, $total_data);         
               }
            }
            
            $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total));
         } else {
            $json['redirect'] = str_replace('&amp;', '&', $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']));
         }
      }
      
      $this->response->setOutput(json_encode($json));      
   }

i chcę w tej sekcji podmienić cene z requesta
Kod: Zaznacz cały
if ($product_info) {         
         if (isset($this->request->post['quantity'])) {
            $quantity = $this->request->post['quantity'];
         } else {
            $quantity = 1;
         }

czyli dodać poniżej coś takiego:
Kod: Zaznacz cały
if (isset($this->request->post['cena'])) {
            $price = $this->request->post['cena'];
         }

no ale coś to nie działa nadal cenę bierze z bazy. Dodam, że po stronie przeglądarki cena się zmienia i zapisuję ją do pola hidden o nazwie cena (sama liczba bez zł). Funkcji add w tym miejscu powinna nadpisać (ta modyfikacja) zmienną $price po czym przeliczyć opcjie i dać $total do cart. Nie wiem za ciemny chyba jestem :(
Chyba sam walne piwko i to nie virtualne :)
nojeks
 
Posty: 14
Dołączył(a): 17 sty 2014, o 22:50
Lokalizacja: ??dzkie, ?wieciech?w

Poprzednia stronaNastępna strona

Powrót do Dyskusje ogólne o Opencart

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości

cron