activity()
->performedOn($anEloquentModel)
->causedBy($user)
->withProperties(['customProperty' => 'customValue'])
->log('Look mum, I logged something');
public function products(): BelongsToMany
{
return $this->belongsToMany(Product::class, 'category_product', 'category_id', 'product_id');
}
Schema::create('category_product', function (Blueprint $table) {
$table->primary(['category_id', 'product_id']);
$table->foreignId('category_id')->nullable();
$table->foreignId('product_id')->nullable();
});
Schema::create('categories', function (Blueprint $table) {
$table->id();
$table->foreignId('parent_id')->nullable()->constrained('categories')->cascadeOnDelete();
$table->string('name');
$table->mediumText('description')->nullable();
$table->unsignedInteger('rank')->default(0);
$table->boolean('active')->default(0);
$table->timestamps();
});
public function children(): HasMany
{
return $this->hasMany(Category::class, 'parent_id');
}
public function parent(): BelongsTo
{
return $this->belongsTo(Category::class, 'parent_id');
}
<?php
View::withCount(['orders as total_orders' => function($query) {
$query->whereRaw('date(`modx_ms2_orders`.`createdon`) = date(`modx_site_partner_views`.`date`)');
}])
->where('partner_id', auth()->user()->partner_code)
->orderByDesc('id')
->paginate(10);
<?php
switch ($modx->event->name) {
case 'msOnAddToCart':
case 'msOnChangeInCart':
case 'msOnRemoveFromCart': // Обрабатывать только события добавления в корзину и изменения количества
$cartArray = $cart->get(); // Массив корзины
$cartStatus = $cart->status(); // Состояние корзины
$totalCount = $cartStatus['total_count']; // Общее количество товаров в корзине
$category_count = 0;
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
if ($product->get('parent') == 3)$category_count + $cartProduct['count'];
}
}
// $category_count - здесь кол-во товаров в корзине, которые присутствуют в категории 3
if ($category_count < 5) $coeff = 1; // Установка коэффициента в зависимости от количества
elseif ($category_count< 10) $coeff = 0.8;
elseif ($category_count< 20) $coeff = 0.7;
else $coeff = 0.6;
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
$cartProduct['price'] = $product->get('price') * $coeff; // Изменение цены
}
}
$cart->set($cartArray); // Запись нового состояния корзины
break;
}
<span class="ms2_cost">270</span>
miniShop2.Callbacks.add('Cart.change.response.success', 'cart_change_ok', function() {
// проходишься по каждой строке товара и умножаешь цену на кол-во
$( "li" ).each(function( index ) {
console.log( index + ": " + $( this ).text() );
});
})
[[#15.deleted:is=`1`:then=`удален`:else=`Не удален`]]