Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Итак, мой проект настолько оброс кастромными фишками, что обновить вручную симплу стало в разы проще и быстрее, чем обновить вручную все доработки, если вам это знакомо, то следуем инструкции.

Для тех, чьи файлы не затронуло это обновление микроапдейт можете загрузить в конце этого поста!

Для обновления с версии 2.2.1 Обновляем следующие файлы:
В папке api:
Categories.php
Строка 104, 131, 168 после

unset($this->categories_tree); 

Вставить

unset($this->all_categories);

Config.php
Строка 18 заменить

public $version = '2.2.1'; 

На

public $version = '2.2.2';

Строка 48 заменить

$protocol = $_SERVER["SERVER_PORT"] == 'https';

На

$protocol = 'https';      

Image.php
Строка 64 заменить

$watermark = $this->config->watermark_file;

На

$watermark = $this->config->root_dir.$this->config->watermark_file;

Managers.php

Строка 22, 50, 64, 197  Добавить слово public перед function, вот так

public function get_managers()

Строка 59-60 заменить

if(!empty($_SERVER['REMOTE_USER']))
	$login = $_SERVER['REMOTE_USER'];

На

if(!empty($_SERVER['PHP_AUTH_USER']))
	$login = $_SERVER['PHP_AUTH_USER'];

 

Перед 22-ой строкой сверху вставить

	public function __construct()
	{
		// Для совсестимости с режимом CGI
		if (isset($_SERVER['REDIRECT_REMOTE_USER']) && empty($_SERVER['PHP_AUTH_USER']))
		{
		    $_SERVER['PHP_AUTH_USER'] = $_SERVER['REDIRECT_REMOTE_USER'];
		}	
	}

 

Файл Orders.php

Строки 378-383, 385-387 удаляем

Строка 384

$query = $this->db->placehold("INSERT INTO __purchases SET ?%", $purchase);

не трогается.

Строки с 428 по 432

			$purchases = $this->get_purchases(array('order_id'=>$order->id));
			foreach($purchases as $purchase)
			{
				$variant = $this->variants->get_variant($purchase->variant_id);
				if(empty($variant) || ($variant->stock<$purchase->amount))

Заменяем на

			$variants_amounts = array();
			$purchases = $this->get_purchases(array('order_id'=>$order->id));
			foreach($purchases as $purchase)
			{
				if(isset($variants_amounts[$purchase->variant_id]))
					$variants_amounts[$purchase->variant_id] += $purchase->amount;
				else
					$variants_amounts[$purchase->variant_id] = $purchase->amount;
			}

			foreach($variants_amounts as $id=>$amount)
			{
				$variant = $this->variants->get_variant($id);
				if(empty($variant) || ($variant->stock<$amount))

 

Внимание, тут прошу учесть, что когда вы удаляете какие-либо строки или добавляете, нумерация МЕНЯЕТСЯ! Поэтому сверяйте обязательно код.

 

Папка Payment

Удаляем папку Yandex

 

Папка Simpla/ajax

Файл import.php

Строка 180 меняем

$item['brand'] = trim($item['brand']);

На

$item['brand'] = '';

после строк 181-182

if(!empty($item['brand']))
{

Вставляем

$item['brand'] = trim($item['brand']);

После строки 367

$res = preg_replace("/[\s]+/ui", '-', $res);

Вставляем

$res = preg_replace('/[^\p{L}\p{Nd}\d-]/ui', '', $res);

Папка Simpla/ajax/stat

Файл stat.php

Строку 10 меняем

$query = $this->db->placehold('SELECT SUM( o.total_price ) AS total_price, DAY(date) AS day, MONTH(date) as month, YEAR(date) as year FROM __orders o GROUP BY DATE( o.date ) DESC  LIMIT 30');

На

$query = $this->db->placehold('SELECT SUM( o.total_price ) AS total_price, DAY(date) AS day, MONTH(date) as month, YEAR(date) as year FROM __orders o WHERE o.closed AND date > DATE_SUB(NOW(), INTERVAL 1 MONTH) GROUP BY DATE( o.date ) DESC LIMIT 30');

Папка Simpla/cml

Удаляем 1c_exchange_2.1.4.php, mem.php


Файл 1c_exchange.php

Перед 5-ой строкой

// Название параметра товара, используемого как бренд

Вставляем

// Обновлять все данные при каждой синхронизации
$full_update = true;

Строка 114 меняем

$purchase->price = $xml_product->ЦенаЗаЕдиницу;

На

$purchase->price = floatval($xml_product->ЦенаЗаЕдиницу);

Строка 137 меняем

$simpla->db->query('UPDATE __orders SET total_price=? WHERE id=? LIMIT 1', $xml_order->Сумма, $order->id);

На

$simpla->db->query('UPDATE __orders SET discount=0, total_price=? WHERE id=? LIMIT 1', $xml_order->Сумма, $order->id);

Строки 242-250 меняем

$t1_2 = $t1_1->addChild ( "ЦенаЗаЕдиницу", $purchase->price );
$t1_2 = $t1_1->addChild ( "Количество", $purchase->amount );
$t1_2 = $t1_1->addChild ( "Сумма", $purchase->amount*$purchase->price);
					
$t1_2 = $t1_1->addChild ( "Скидки" );
$t1_3 = $t1_2->addChild ( "Скидка" );
$t1_4 = $t1_3->addChild ( "Сумма", $purchase->price*$order->discount/100);
$t1_4 = $t1_3->addChild ( "УчтеноВСумме", "false" );	

На

$t1_2 = $t1_1->addChild ( "ЦенаЗаЕдиницу", $purchase->price*(100-$order->discount)/100);
$t1_2 = $t1_1->addChild ( "Количество", $purchase->amount );
$t1_2 = $t1_1->addChild ( "Сумма", $purchase->amount*$purchase->price*(100-$order->discount)/100);

/*
$t1_2 = $t1_1->addChild ( "Скидки" );
$t1_3 = $t1_2->addChild ( "Скидка" );
$t1_4 = $t1_3->addChild ( "Сумма", $purchase->amount*$purchase->price*(100-$order->discount)/100);
$t1_4 = $t1_3->addChild ( "УчтеноВСумме", "true" );
*/

Строка 522 после

global $brand_option_name;

Вставляем

global $full_update;

После строк 598-599

$simpla->db->query('SELECT id FROM __variants WHERE product_id=?', $product_id);
$variant_id = $simpla->db->result('id');

Вставляем

		// Обновляем товар
		if($full_update)
		{
			$description = '';
			if(!empty($xml_product->Описание))
				$description = $xml_product->Описание;
			$product_id = $simpla->products->update_product($product_id, array('external_id'=>$product_1c_id, 'url'=>translit($xml_product->Наименование), 'name'=>$xml_product->Наименование, 'meta_title'=>$xml_product->Наименование, 'meta_keywords'=>$xml_product->Наименование, 'meta_description'=>$xml_product->$description,  'annotation'=>$description, 'body'=>$description));
			
			// Обновляем категорию товара
			if(isset($category_id) && !empty($product_id))
			{
   	    		$query = $simpla->db->placehold('DELETE FROM __products_categories WHERE product_id=?', $product_id);
   	    		$simpla->db->query($query);
				$simpla->categories->add_product_category($product_id, $category_id);
			}
			
		}

В папке Simpla/design/html

Файл product.tpl

Строка 71 меняем

$("<input class='upload_image' name=images[] type=file>").appendTo('div#add_image').focus().click();

На

$("<input class='upload_image' name=images[] type=file multiple>").appendTo('div#add_image').focus().click();

Файл stats.tpl

После строки 17

chart: {

Вставляем

zoomType: 'x',
type: 'column',

Строки 58-69 меняем

		for(i=0; i<31; i++)
		{	
 			series.data.push([Date.UTC(1900+d.getYear(), d.getMonth(), d.getDate()), 0]);
			d.setDate(d.getDate()-1);
 		}
	    
	    // Iterate over the lines and add categories or series
	    $.each(data, function(lineNo, line) {

   	                    series.data.push([Date.UTC(line.year, line.month-1, line.day), parseInt(line.y)]);

	  

На

		for(i=0; i<365; i++)
		{	
 			//series.data.push([Date.UTC(1900+d.getYear(), d.getMonth(), d.getDate()), 0]);
			d.setDate(d.getDate()-1);
 		}
	    
	    // Iterate over the lines and add categories or series
	    $.each(data, function(lineNo, line) {
			series.data.push([Date.UTC(line.year, line.month-1, line.day), parseInt(line.y)]);

Файлы simpla/files

Папка imoprt Имеет выгрузку csv из магазина картриджей, я не думаю, что это нужно описывать, Денису предложил бы удалить этот файл.

Папка экспорт имеет выгрузку новую с тестового магазина сотовых телефонов, я думаю сгенирировать новый файл можно через админку.

Папка update

Файл changelog.txt

Вставить

=========================================
Версия 2.2.2 от 14.04.2013
=========================================
Обновление товаров при каждой синхронизации с 1С, в том числе названия, описания и категории.
Исправлена ошибка с отрицательным наличием товаров после добавления к заказу нескольких одинаковых товаров
Исправлена ошибка авторизации в режиме PHP CGI
Транслитерация URL при импорте

=========================================

microupdate.zip

Ссылка на сообщение
Поделиться на другие сайты

Стоит нет заморачиваться за обновление?

Читай ченджлог в конце поста и решай:) Я обновился, т.к. в будующем легче будет сравнивать и накатывать обновления на сайт

Ссылка на сообщение
Поделиться на другие сайты
  • 5 недель спустя...
  • 2 недели спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...