Дмитрий

Дмитрий

С нами с 27 мая 2016; Место в рейтинге пользователей: #1092
11 декабря 2025, 10:36
0
проблема была в том, что тип всех таблиц был InnoDB, а таблиц minishop2 — MyISAM, после смены на InnoDB нагрузка спала.
26 ноября 2025, 11:37
0
есть поле prnt.sc/gTm16QUgah9S
вот часть кода
public function getProductGroups($id) {
		if (isset($this->cache['products'][$id])) {
			return $this->cache['products'][$id];
		}
		$groups = array();

		if ($product = $this->modx->getObject('msProduct', $id)) {
			$ids = $this->modx->getParentIds($id, 10, array('context' => $product->get('context_key')));
			$ids[] = $id;
		}
		else {
			$ids = array($id);
		}
		$q = $this->modx->newQuery('msCategoryMember', array('product_id' => $id));
		$q->select('category_id');
		$tstart = microtime(true);
		if ($q->prepare() && $q->stmt->execute()) {
			$this->modx->queryTime += microtime(true) - $tstart;
			$this->modx->executedQueries++;
			if ($tmp = $q->stmt->fetchAll(PDO::FETCH_COLUMN)) {
				$ids = array_merge($ids, $tmp);
			}
		}
		$ids = array_unique($ids);
		$where = count($ids) > 1
			? array('document:IN' => $ids)
			: array('document' => $ids[0]);

		$q = $this->modx->newQuery('modResourceGroupResource', $where);
		$q->leftJoin('msdProductGroup', 'msdProductGroup', 'msdProductGroup.id = modResourceGroupResource.document_group');
		$q->select('document_group, discount');
		$q->sortby('discount');
		$q->groupby('modResourceGroupResource.id');
		$tstart = microtime(true);
		if ($q->prepare() && $q->stmt->execute()) {
			$this->modx->queryTime += microtime(true) - $tstart;
			$this->modx->executedQueries++;
			while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
				$groups[$row['document_group']] = $row['discount'];
			}
		}
		$this->cache['products'][$id] = $groups;

		return $groups;
	}
строка 412
if (isset($this->cache['products'][$id])) {
			return $this->cache['products'][$id];
		}
строка 452
$this->cache['products'][$id] = $groups;
26 ноября 2025, 08:46
0
Доброе утро.
[2025-11-25 23:10:22] (ERROR @ /home/public_html/core/components/msdiscount/model/msdiscount/msdiscount.class.php : 452) PHP warning: Illegal offset type
[2025-11-25 23:10:22] (ERROR @ /home/public_html/core/components/msdiscount/model/msdiscount/msdiscount.class.php : 412) PHP warning: Illegal offset type in isset or empty
[2025-11-25 23:10:22] (ERROR @ /home/public_html/core/xpdo/om/xpdoobject.class.php : 240) Error 42S22 executing statement: 
Array
(
    [0] => 42S22
    [1] => 1054
    [2] => Unknown column 'msProduct.article' in 'where clause'
)
Появились такие ошибки( Версия minishop2 4.4.2.
26 ноября 2025, 08:43
0
Спасибо за ответ!
25 ноября 2025, 16:30
0
Добрый день. Подскажите, какая версия php лучше подойдет 7.4., или с 8 тоже должно хорошо работать? Так же заметил, что c minishop2 4.4.0 если версия бд более новая (допустим 8.0.42-cll-lve), то при наполнении товаров или категорий сильно возрастает нагрузка на сервер (иногда 300% и сайт перестает работать). а многие хостинги ставят уже такую бд, и нужно постоянно просить, чтоб переносили на более старые сервера с бд 5.7.42-cll-lve. В версии 4.4.2? или причина нагрузки может быть в чем-то так и minishop2 хорошо работает и с 8.0.42-cll-lve?
24 ноября 2025, 11:50
0
Добрый день, это только у меня не подтягивает id страницы? prnt.sc/E-kSiVYnK-9d
05 ноября 2025, 15:09
0
Добрый день! Можно ли в новой версии экспортировать/импортировать tv-поля типа MIGX?
09 сентября 2025, 09:52
0
я устанавливал через Terminal, туда поставил Composer, затем клонировал minishop3, затем выполнил эти команды из инструкции:
cd MiniShop3/core/components/minishop3/
composer update
php _build/build.php
minishop3 поставился, но не все работает, допустим еще не отображается в политике доступов miniShopManagerPolicy prnt.sc/ZrE3labkWsns, появилось, только когда убрал лишние кавычки и \
03 сентября 2025, 13:58
0
Добрый день! Не отображается вкладка Опции товара, ошибка:
[2025-09-03 13:36:35] (ERROR @ /home/core/components/minishop3/src/Controllers/Config/Product/DataTab.php : 96) PHP warning: Undefined array key "allowBlank"
[2025-09-03 13:36:35] (ERROR @ /home/core/components/minishop3/src/Controllers/Config/Product/DataTab.php : 93) PHP warning: Undefined array key "value"
Может кто-то сталкивался с такой проблемой?
02 июля 2025, 15:45
0
Наверно сначала выполняется [[~[[+vendor.resource]]]], т к это не fenom, а потом проверяется условие…
сделал так
[[+vendor.resource:gt=`0`:then=`href="[[~[[+vendor.resource:default=`1`]]]]"`]]>[[!+vendor.name]]</a>
. Может более правильное решение?
25 февраля 2025, 14:17
0
в версии 4.4.0 появляется ошибка
Fatal error: Cannot declare interface msCartInterface, because the name is already in use in /home/public_html/core/components/minishop2/model/minishop2/mscarthandler.class.php on line 3
17 января 2025, 11:28
0
удалось найти причину? я так понял, плагин работает с minishop2 до версии 2.8.3-pl
11 января 2025, 13:10
0
Здравствуйте, а есть ли возможность менять и старую цену? Попробовал так
<?php
switch ($modx->event->name) {
    case "msOnGetProductPrice":
        $returned = (array)$modx->getPlaceholder('_returned_price');
        if (!isset($returned['price'])) {
            return;
        }

        $id = $returned['id'];
        $price = $returned['price'];
        $oldPrice = !empty($returned['old_price']) ? $returned['old_price'] : $price; // Предположим, старую цену берём из текущей цены
        $options = !empty($returned['msoptionsprice_options'])
            ? $returned['msoptionsprice_options']
            : (!empty($_REQUEST['options'])
                ? $_REQUEST['options']
                : array());
        $options = array_diff_key($options, array_flip(array('modifications', 'modification')));

        foreach (array_keys($options) as $k) {
            if (!empty($options[$k]) && is_array($options[$k])) {
                foreach ($options[$k] as $v) {
                    // Изменение для текущей цены
                    $q = $modx->newQuery('msopModification')
                        ->innerJoin('msopModificationOption', 'Option',
                            "Option.mid = msopModification.id AND Option.key = '{$k}' AND Option.value = '{$v}'")
                        ->select(array('price', 'old_price')) // Добавляем выборку old_price
                        ->where(array(
                            'msopModification.rid' => $id,
                            'msopModification.type' => 2,
                            'msopModification.active' => true,
                        ));
                    if ($q->prepare() && $q->stmt->execute()) {
                        while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
                            if (!empty($row['price'])) {
                                $price += $row['price'];
                            }
                            if (!empty($row['old_price'])) {
                                $oldPrice += $row['old_price']; // Добавляем старую цену
                            }
                        }
                    }
                }
            }
        }

        // Возвращаем и сохраняем значения
        $modx->event->returnedValues['price'] = $returned['price'] = $price;
        $modx->event->returnedValues['old_price'] = $returned['old_price'] = $oldPrice;
        $modx->setPlaceholder('_returned_price', $returned);
        break;
}
не сработало(
06 декабря 2024, 10:18
+1
наверно уже не актуально, но может кому так пригодиться… необходимо в assets/components/msorderfiles/js/web/default.js в строке
createImageThumbnails: false,
заменить на
createImageThumbnails: true,
18 октября 2024, 15:32
0
удалось найти решение?
21 марта 2024, 15:27
+1
можно так
{
"field": "image",
"caption": "Изображение пузыря",
"inputTVtype": "image",
"sourceFrom":"config",
"sources":"[{\"MIGX_id\":\"1\",\"context\":\"web\",\"sourceid\":\"5\"}]"
}
где 5 — это id источника
06 марта 2024, 12:18
0
удалось найти причину?
19 декабря 2023, 16:52
0
если пару сайтов — то да, а если более 20, то это уже проблематично…
14 декабря 2023, 15:32
0
это крайний вариант) т к получается что из-за одной страницы не будет обновляться вся тема