О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Декодировать JSON
Локация
О нас
Разработчикам
Заметки
Переводчик
Транслитератор
Сравнить текст
Генератор пароля
Ip и информация
Декодировать JSON
Локация
modx db
us.content
Получить товары $q = $modx->newQuery('msProduct'); $q->where([ 'published' => true, 'deleted:!=' => 1, ]); $q->sortby('id', 'DESC'); if ($row = $modx->getCollection('msProduct', $q)) { foreach ($row as $item) { $res[$item->get('id')] = $item->toArray(); } } /*if ($q->prepare() && $q->stmt->execute()) { while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) { $res[] = $row; } }*/ $item = $modx->getObject('msProduct', $id); Для админов отключаем кэш if ($this->modx->user->isAuthenticated('mgr')) { $this->cache = false; } Count db $where = [ 'published' => 1, 'deleted:!=' => 1, 'createdon:>' => $from, 'AND:createdon:<=' => $to, ]; $count = $this->modx->getCount('msProduct', $where); Получить товары по артикулам $q = $modx->newQuery('msProduct'); $q->where([ 'msProductData.article:IN' => $articles, ]); $q->innerJoin('msProductData', 'msProductData', 'msProductData.id = msProduct.id'); $res = $modx->getCollection('msProduct', $q); Получить товары по артикулам и изменить их $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')); } // Получить данные из 2 таблиц и полнить в одной из таблиц $table = $this->modx->getTableName('fdkProductImage'); $q = $this->modx->newQuery('fdkProductImage'); $q->select('fdkProductImage.parent as parent, fdkProductImage.file as file, Parent.name as filename, Parent.product_id as product_id'); $q->leftJoin('msProductFile', 'Parent'); if ($q->prepare() && $q->stmt->execute()) { while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) { $sql = "UPDATE {$table} SET product_id = '{$row['product_id']}',filename = '{$row['filename']}' WHERE parent = {$row['parent']}"; $this->modx->exec($sql); } } Товар по 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}'"); // Удалить из таблицы все данные кроме за последние 7 дней $modx->exec("DELETE FROM `session` WHERE `access` < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 7 DAY))"); Св-ва товара по id $q = $modx->newQuery('msProductData'); $q->select('*'); $q->where([ 'id' => $productId, ]); $productData = $modx->getObject('msProductData', $q); dump($productData->toArray()); // Получить товар и изменить его $item = $modx->getObject('msProduct', 777); $item->set('createdon', '2023-08-14 16:20:54'); dump($item->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, ]); $row = $modx->getCollection('modResource', $q); $items = collect($row); foreach ($items as $item) { dump($item->toArray()); dump($item->get('id')); } // Получить всех потомков function getAllChildren($parentId) { $data = []; $modx = modY::getInstance('modY'); $q = $modx->newQuery('modResource'); $q->where([ 'parent' => $parentId, 'published' => 1, 'deleted:!=' => 1, ]); $resources = $modx->getCollection('modResource', $q); foreach ($resources as $item) { $data[$item->get('id')] = $item->get('uri'); $nestedChildren = getAllChildren($item->get('id')); $data = array_merge($data, $nestedChildren); } return $data; } $allChildren = getAllChildren(2); Миграции vendor/bin/phinx create ChangeProductsAddField // создать vendor/bin/phinx migrate // запустить vendor/bin/phinx rollback --target ChangeProductsAddField // откатить определённую миграцию Извлечь данные из БД gitify extract // Добавить св-во в 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");
Список