Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Fix305

Користувачі
  
  • Публікації

    917
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем Fix305

  1. Дайте плиз совет

    сделай для разных стран - разные валюты и в зависимости от страны назначай нужную валюту человечку.

    выбор валюты, конечно, не помешает скрыть.

    это, наверно, самый простой вариант.

    ну и взгляни на файлик ..\system\library\currency.php там найдешь некоторые интересные функции которые тебе в этом помогут, вызывать из контроллера, например

    $hundred_rub_in_usd = $this->currency->convert(100, 'RUB', 'USD');
    $hundred_rub_in_usd - тут будет количество баксов в 100 рублях.
  2. В запросе идет выборка из нескольких таблиц (при помощи JOIN ), а это псевдонимы (алиасы) таблиц из которых идет выборка.

    читать так

    ВЫБРАТЬ все поля,из таблицы pd (product_description) поле name и присвоить ему имя name, поле image из таблицы p (product), поле name из таблицы ss и присвоить псевдоним stock и так далее

    • +1 1
  3. в ..\catalog\controller\product\category.php

    в самый конец где кончается функция index () {

    вообщем перед

    }
    ?>
    вставить

    protected function getCategories($parent_id, $current_path = '') {
    	$output = '';
    	$results = $this->model_catalog_category->getCategories($parent_id);
    	if ($results) { 
    		$output .= '<ul>';
        	}
    		
    	foreach ($results as $result) {	
    		if (!$current_path) {
    			$new_path = $result['category_id'];
    		} else {
    			$new_path = $current_path . '_' . $result['category_id'];
    		}
    			
    		$output .= '<li>';
    		$children = '';
    		$children = $this->getCategories($result['category_id'], $new_path);
    		$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '">' . $result['name'] . '</a>';
    		// $output .= $result['name'] .' - '. $result['image'] .' - '. $result['description']; // доступные переменные - имя - путь к картинке - описание категории. Есть и другие но они вряд ли вам пригодятся.
            	$output .= $children;
            	$output .= '</li>'; 
    	}
     
    	if ($results) {
    		$output .= '</ul>';
    	}
    		
    	return $output;
    }

    в этом же файле после

    $category_info = $this->model_catalog_category->getCategory($category_id);
    вставить

    $this->data['categories_all'] = $this->getCategories($category_id, $this->request->get['path']);

    в файл ..\catalog\view\theme\default\template\product\category.tpl

    вставить

    <?php if ($categories_all) { ?>
    	<? echo $categories_all; ?>
    <?php } ?>
    
    криво-косо, но список подкатегории для данной категории выводится - оформление подредактируйте в функции getCategories(), я вывел необходимые переменные, они закомментированы. Оформление за вами)
    • +1 1
  4. буду откровенен:

    готового решения такого нет,

    энтузиастов которые его сделают Вы тоже вряд ли найдете,

    платный вариант - не каждый, наверно, возьмется (я бы не взялся), а если возьмется заломит астрономическую сумму, что как правило не совместимо с бесплатной CMSкой.

    а Вот аутентификация по телефону вполне реальная вещь.

  5. а с php как?

    если знакомы то можете глянуть функцию (не только глянуть, но и скопировать в нужный контроллер, хотя так же достаточно снять гриф protected и обращаться прям в контроллер \module\category.php, ну это ладно сами решайте как удобнее)

    protected function getCategories($parent_id, $current_path = '') { .. }
    в файле ..\catalog\controller\module\category.php

    для ее работы нужно загрузить

    $this->load->model('catalog/category');
    $this->load->model('tool/seo_url');

    а сама функция вызывается

    $this->getCategories($parent_id);
    где $parent_id - ид родительской (в данном случае будет ид текущей категории)

    и не помешает вместо того что бы сразу делать разметку в getCategories() рекомендую засунуть все сначала в массив, а потом уже в шаблоне красиво его оформить.

  6. код шаблона с promarka.ru , нужные переменные или информацию прописать в контроллере по желанию

    <div class="box">
      <div class="top"><img src="catalog/view/theme/sport/image/box-title-marker.gif" alt="" /><?php echo $heading_title; ?></div>
      <div id="account" class="middle">
      <?php if (!$this->customer->isLogged()) { ?>
      <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="login_box">
    		<b><?php echo $entry_email; ?></b><br />
            <input type="text" name="email" style="width: 95%;" />
            <br />
            <b><?php echo $entry_password; ?></b><br />
            <input type="password" name="password" style="width: 95%;" />
            <div style="margin-top: 12px; text-align: right;"><a onclick="$('#login_box').submit();" class="button"><span><?php echo $button_login; ?></span></a></div>
            <?php if ($redirect) { ?>
            <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
            <?php } ?>
        </form><br />
    	<div style="text-align: right; width: 99%;">
          <a href="<?php echo $account_create; ?>"><?php echo $text_account_create; ?></a><br />
          <a href="<?php echo $forgotten; ?>"><?php echo $text_forgotten; ?></a><br />
    	</div>
    	<?php } else { ?>
    	<div align="right"><?php echo $text_welcome; ?><b><?php echo $firstname; ?></b></div>
    	<div style="text-decoration: none; text-align: right; margin: 15px 0;">
    		<a href="<?php echo $my_account; ?>"><?php echo $text_my_account; ?></a><br />
    		<a href="<?php echo $history; ?>"><?php echo $text_history; ?></a>
    	</div>
        
        
    	<div style="margin-top: 12px; text-align: right;"><a href="<?php echo $logout; ?>" class="button"><span><?php echo $button_logout; ?></span></a></div>
      <?php } ?>
      
    
      </div>
      <div class="bottom"> </div>
    </div>
  7. пожалуйста поделитесь решениям если такое есть как сделать отображение двух валют сразу? спасибо

    $this->currency->convert($value, $from, $to);
    $value - число (цена) которую надо перевести

    $from - из какой валюты (код, например RUB). Текущий можно узнать функцией $this->currency->getCode();

    $to - в какую валюту перевести (тоже код, например USD)

    Коды указываются в админке в редактировании валют.

    ну а дальше вписывайте все это в нужный контроллер и выводите в нужный файл шаблона.

  8. а вместо $j ничего вставлять и ненадо, $j - это всего лишь порядковый номер в массиве.

    после того как в контроллере вставили в шаблоне после строк

    <?php for ($i = 0; $i < sizeof($products); $i = $i + 4) { ?>
    <?php for ($j = $i; $j < ($i + 4); $j++) { ?>
    <?php if (isset($products[$j])) { ?>
    в Вашем распоряжении будет доступна переменная $products[$j]['width'] с значением $result['width']; из контроллера. А вообще зря вы выбрали поле width, так как по умолчанию это поле уже существует в таблице product (и кстати в описании товара есть такое поле как "ширина", так что зачем его заного создавать непонятно, ну да ладно) и чтоб четко его отображать не помешало бы присвоить другой псевдоним при выборке, ну или, куда проще, изменить название вашего созданного поля.
  9. поисковые системы вроде распознают и отображают нормально (правда неизвестно как они их ранджируют), браузеры тоже вроде спрявляются, ну а мое мнение кириллические домены и русские URL - хрень полная.

  10. в ..\catalog\controller\product\category.php найди:

    $this->data['products'][] = array(
       'name'    => $result['name'],
       'model'   => $result['model'],
       'rating'  => $rating,
       'stars'   => sprintf($this->language->get('text_stars'), $rating),
       'thumb'   => $this->model_tool_image->resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')),
       'price'   => $price,
       'options' => $options,
       'special' => $special,
       'href'    => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
       'add'	  => $add
    );

    и добавь в него строчку

    'min_price'   => $this->currency->format($this->tax->calculate($min_price, $result['tax_class_id'], $this->config->get('config_tax'))),

    а перед ним добавь

    // 
    $discounts = $this->model_catalog_product->getProductDiscounts($result['product_id']);
    $min_price = $price;
    foreach ($discounts as $discount) {
       if ($discount['price'] < $min_price) {
    	$min_price = $discount['price'];
       }
    }
    if ($special && $special < $min_price) {
    	$min_price = $special;
    }
    //

    в файле ..\catalog\view\theme\default\template\product\category.tpl

    <?php if (!$products[$j]['special']) { ?>
          <span style="color: #900; font-weight: bold;"><?php echo $products[$j]['price']; ?></span>
    <?php } else { ?>
          <span style="color: #900; font-weight: bold; text-decoration: line-through;"><?php echo $products[$j]['price']; ?></span> <span style="color: #F00;"><?php echo $products[$j]['special']; ?></span>
    <?php } ?>
    заменить на

    from: <span style="color: #900; font-weight: bold;"><?php echo $products[$j]['min_price']; ?></span>

    п.с. если будет тупить, то строчку

    $min_price = $price;
    лучше всего заменить на

    $min_price = $result['price'];
    так как сравнивать float и string не сильно разумно, но тем не менее, вроде как, без ошибок у меня было.

    в price - храниться уже высчитаная цена с учетом скидок на группы пользователей, в result['price'] голая цена, потому price первоначально и выбрал.

    со special вообще убрать, либо посчитать отдельно, не форматирую к string типу

    • +1 1
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.