О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
modx db
us.content
Для админов отключаем кэш if ($this->modx->user->isAuthenticated('mgr')) { $this->cache = false; } Count db $where = [ 'published' => 1, 'deleted:!=' => 1, ]; $count = $this->modx->getCount('msProduct', $where); Получить товары $q = $modx->newQuery('msProduct'); $q->where([ 'published' => true, 'deleted:!=' => 1, ]); $q->sortby('id', 'DESC'); $res = $modx->getCollection('msProduct', $q); Получить товары по артикулам $q = $modx->newQuery('msProduct'); $q->where([ 'msProductData.article:IN' => $articles, ]); $q->innerJoin('msProductData', 'msProductData', 'msProductData.id = msProduct.id'); if ($objectList = $modx->getCollection('msProduct', $q)) { foreach ($objectList as $object) { $productId = $object->get('id'); $res[] = $object->toArray(); } } Получить товары по артикулам и изменить их $q = $modx->newQuery('msProduct'); $q->where([ 'msProductData.article:IN' => $articles, ]); $q->innerJoin('msProductData', 'msProductData', 'msProductData.id = msProduct.id'); $iterator = $modx->getIterator('msProduct', $q); foreach ($iterator as $product) { $product->set('longtitle', 'new_long_title'); $product->save(); $data[] = $product->toArray(); dump($product->get('longtitle')); } Товар по id $product = $modx->getObject('msProduct', $productId)->toArray(); $product = $this->msie->modx->product()->get($productId); Изменить св-во $product->set('popular_count', 77); $product->save(); Через SQL $table = $modx->getTableName('msProductData'); $modx->exec("UPDATE {$table} SET prop_name = 'test' WHERE id = '{$id}'"); Св-ва товара по id $q = $modx->newQuery('msProductData'); $q->select('*'); $q->where([ 'id' => $productId, ]); $productData = $modx->getObject('msProductData', $q); dump($productData->toArray()); // Получить товар и изменить его $object = $modx->getObject('msProduct', 777); $object->set('createdon', '2023-08-14 16:20:54'); dump($object->toArray()); // Получить св-ва товаров и изменить их $q = $modx->newQuery('msProductData'); $q->select(['id', 'article']); $q->where([ 'article:in' => $articles, ]); $iterator = $modx->getIterator('msProductData', $q); foreach ($iterator as $productData) { $productData->set('article', 'новое_значение'); $productData->save(); } Получить товары $q = $modx->newQuery('msProduct'); $q->select(); $q->where([ 'id:in' => [6439761], // По id //'username:LIKE' => '%77777777777%', //'OR:date:<=' => $date, //'AND:date:<=' => $date, //'createdon:>' => strtotime('2023-06-12 17:59:04'), // По дате //'createdon:<=' => time(), 'published' => true, 'deleted:!=' => 1, ]); if ($q->prepare() && $q->stmt->execute()) { while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) { $rows[] = $row; } } Объект товара /* @var modResource $object*/ $q = $modx->newQuery('modResource'); $q->where([ 'id' => 777, ]); $objectList = $modx->getCollection('modResource', $q); $items = collect($objectList); foreach ($items as $item) { dump($item->toArray()); dump($item->get('id')); } Миграции vendor/bin/phinx create ChangeProductsAddField // создать vendor/bin/phinx migrate // запустить vendor/bin/phinx rollback --target ChangeProductsAddField // откатить определённую миграцию // Добавить св-во в msProduct core/model/modx/mysql/modresource.map.inc.php // Добавить св-во в msProductData core/components/minishop2/model/minishop2/mysql/msproductdata.map.inc.php Получить название таблицы $table = $modx->getTableName('msProductData'); Изменить значение в таблице, так можно написаль любой SQL запрос $modx->exec("UPDATE {$table} SET popular_count = '0' WHERE id = 777");
Список