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

Fix305

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

    917
  • З нами

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

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

  1. может)

    $this->data['category'] = $this->getCategories(0);function getCategories($parent_id, $current_path = '') {	$category_id = array_shift($this->path);	$output = '';	$results = $this->model_catalog_category->getCategories($parent_id);	if ($results) { 		$output .= '[list]';    	}			foreach ($results as $result) {			if (!$current_path) {			$new_path = $result['category_id'];		} else {			$new_path = $current_path . '_' . $result['category_id'];		}					$output .= '[*]';		$children = '';		$children = $this->getCategories($result['category_id'], $new_path);		$products_out = '';		$products = $this->model_catalog_product->getProductsByCategoryId($result['category_id'], 'pd.name', 'ASC', 0, 100000); // не более 100 тысяч товаров выводит, сортировка по имени.		foreach ($products as $product) {			$products_out.= '[*]**'.$product['name'].' - '.$product['price'].'';		}					$output .= '[b] '. $result['name'] . '[/b]';						        	$output .= $children;		$output .= $products_out;        	$output .= ''; 	} 	if ($results) {		$output .= '[/list]';	}		return $output;}
  2. ну если Вам не влом, то можно перетащить из файла ..catalogcontrollercheckoutconfirm.php

    все что начинается

    $data = array();
    и заканчивается

    $this->session->data['order_id'] = $this->model_checkout_order->create($data);
    в файл

    ..catalogcontrollercheckoutsuccess.php

    а вообще беспокоится о лишних записях в индексированной БД, на сайте где на каждой страничке выполняется 30-50 запросов к БД, причем заказ переписывают далеко не каждую секунду, я думаю не стоит =)

    и еще в функции $this->model_checkout_order->create($data);

    есть такие строчки:

    $query = $this->db->query("SELECT order_id FROM `" . DB_PREFIX . "order` WHERE date_added < '" . date('Y-m-d', strtotime('-1 month')) . "' AND order_status_id = '0'");foreach ($query->rows as $result) {	$this->db->query("DELETE FROM `" . DB_PREFIX . "order` WHERE order_id = '" . (int)$result['order_id'] . "'");	$this->db->query("DELETE FROM " . DB_PREFIX . "order_history WHERE order_id = '" . (int)$result['order_id'] . "'");	$this->db->query("DELETE FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$result['order_id'] . "'");	$this->db->query("DELETE FROM " . DB_PREFIX . "order_option WHERE order_id = '" . (int)$result['order_id'] . "'");	$this->db->query("DELETE FROM " . DB_PREFIX . "order_download WHERE order_id = '" . (int)$result['order_id'] . "'");	$this->db->query("DELETE FROM " . DB_PREFIX . "order_total WHERE order_id = '" . (int)$result['order_id'] . "'");}
    так что через месяц твои не использованные заказы будут обнуляться.
  3. ну раз пошла такая пьянка, тогда лезем в сердце опенкарта в файлик ..systemlibrarycart.php:находим там функции

    public function addpublic function update

    и меняем в них все (int)$qty на (float)$qtyну и цены теперь придется выставлять за метр.только смотрите чтоб у вас никто 4,5 пуговицы не купил или 3,3453466345 метра ткани =)так что обрезать циферки после запятой все же не помешает, можно даже в тех же функциях.ну и проверку (конверт ',' => '.') на запятую, точку тоже поставить не помешает, ибо будет работать только с точкойну и в БД не помешает изменить поля на float
  4. глянь на всякий еще эту строчку

    $this->data['amount'] = $this->currency->format($order_info['total'], $order_info['currency'], $order_info['value'], FALSE);
    если логически посмотреть цепочку то отправляется именно она, а

    $LMI_PAYMENT_AMOUNT    = $this->request->post['LMI_PAYMENT_AMOUNT'];
    возврат значения
  5. в мерчант ВМ не регался так что тестировать не на чем, но думаю твоя проблема решается в файле ..catalogcontrollerpaymentwebmoney.php строчкой:

    $LMI_PAYMENT_AMOUNT 	= $this->request->post['LMI_PAYMENT_AMOUNT'];
    ;) хм , там даже комментарий стоит от "добрых людей" , что это сумма перевода.Но ! ...куда прописать выражение - разделить на 4(т.е. 25% от суммы) !?Я так полагаю значение суммы для файла Webmoney берется из корзины или SQL , а потом через модуль передается в платежную систему , и вот между этими этапами его нужно где-то "резануть" на 75%.
    зачем усложнять себе жизнь?)
    $LMI_PAYMENT_AMOUNT 	= $this->request->post['LMI_PAYMENT_AMOUNT']*0.25;
  6. по умолчанию нету такого идентификатора.

    добавить можно следующим образом:

    в файле ..catalogcontrollerproductcategory.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,	'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),	'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']));
    и добавить туда строчку

    'manufacturer' => $result['manufacturer'],

    после чего в шаблоне станет доступна переменная $products[$j]['manufacturer']

  7. вот не пожалел 2 минут своего драгоценного времени, благо под рукой оказалась девственно чистая, не тронутая ни единым модулем сборка 1.4.7 v0.4 опенкарта, и все прекрасно заработало =) так что ищи проблемы у себя

  8. чеж ты там 2 дня ковыряешь то?))

    лови свое решение:

    табличка где выводятся товары (файл ..catalogviewthemedefaulttemplateproductcategory.tpl)

    <table class="list">      <?php for ($j = 0; $j < sizeof($products); $j++) { ?>	  <tr>        <td width="30%"><?php if (isset($products[$j])) { ?>          <a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a>          <a href="<?php echo $products[$j]['href']; ?>"><?php echo $products[$j]['name']; ?></a>          [color= #999; font-size: 11px;]<?php echo $products[$j]['model']; ?>[/color]          <?php if ($display_price) { ?>          <?php if (!$products[$j]['special']) { ?>          [color= #900; font-weight: bold;]<?php echo $products[$j]['price']; ?>[/color]          <?php } else { ?>          [color= #900; font-weight: bold; text-decoration: line-through;]<?php echo $products[$j]['price']; ?>[/color] [color= #F00;]<?php echo $products[$j]['special']; ?>[/color]          <?php } ?>          <?php } ?>          <?php if ($products[$j]['rating']) { ?>          <img src="catalog/view/theme/default/image/stars_<?php echo $products[$j]['rating'] . '.png'; ?>" alt="<?php echo $products[$j]['stars']; ?>" />          <?php } ?>          <?php } ?></td>		 <td><?php echo $products[$j]['description']; ?></td>              </tr>	  <?php } ?>    </table>

    в ..catalogcontrollerproductcategory.php найди где описывается массив

    $this->data['products'][] = array(
    и добавь туда строчку

    'description' => html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'),
  9. Кто подскажет как размеры товара , задаваемые в админке, сделать без 00 после запятой ,т.е. чтобы размер был целой величиной (пример 4 , а не 4.00) ?

    ну вообще размеры берутся из базы и заносятся туда без какого либо вмешательства, а поле имеет тип decimal(5,2). Если изменить на decimal(5,0) или вообще на int то будет то что надо, вот только есть шанс что это где нибудь как нибудь накосячит)
  10. в базе данных время хранится в формате DATETIME, так что секунды минутки часы ваши учитываются, просто вывод ограничен только датой.

    правится это достаточно легко, для того что бы говорить что скрипт еще сырой:

    1) либо в нужных контроллерах ищем строчки типа

    date($this->language->get('date_format_short'), strtotime($result['date_added']))
    где $this->language->get('date_format_short') - формат записи (берется из файла ..cataloglanguagerussianrussian.php), и вписываем нужный формат.

    2) самый простой, но затронет весь магазин, что все таки не очень логично, зато мозг включать ненадо

    в ..cataloglanguagerussianrussian.php

    меняем строчку

    $_['date_format_short']     = 'd.m.Y';

    ссылочка для ознакомления с форматом функции date() - http://php-date.ru/paragraphs/date_format

    • +1 2
  11. не все так просто)

    для того чтоб вытащить картинку в продукт нужно в ..catalogmodelcatalogproduct.php в функции getProduct()

    в выборке добавить

    m.image AS man_img

    в ..catalogcontrollerproductproduct.php вставить

    $this->data['man_img'] = $product_info['man_img'];

    ну и в ..catalogviewthemedefaulttemplateproductproduct.tpl

    <img src="image/<? echo $man_img; ?>" />
×
×
  • Створити...

Important Information

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