Skip to content

Instantly share code, notes, and snippets.

0x8e1EEA82c7ffe36BC33538BA1191fC7E38584cEd
@grachov
grachov / msOrder
Created May 3, 2015 21:14
Простой способ для пересчета стоимости заказа после его изменения
<?php
class msOrder extends xPDOSimpleObject
{
public function updateProducts()
{
$originalContext = $this->xpdo->context->get('key');
$this->xpdo->switchContext($this->get('context'));
$originalMiniShop = isset($this->xpdo->services['minishop2']) ? $this->xpdo->services['minishop2'] : null;
$cart = array();
foreach ($this->getMany('Products') as $product) {
@grachov
grachov / SassMeister-input.scss
Last active August 29, 2015 14:10
Generated by SassMeister.com.
// ----
// Sass (v3.4.7)
// Compass (v1.0.1)
// ----
.a {
.b {
&__c {
color: red;
}
@grachov
grachov / SassMeister-input.scss
Created November 26, 2014 13:30
Generated by SassMeister.com.
// ----
// Sass (v3.4.7)
// Compass (v1.0.1)
// ----
.a {
$parent: &;
.b {
&__c {
color: red;
@grachov
grachov / SassMeister-input.scss
Created November 26, 2014 11:48
Generated by SassMeister.com.
// ----
// Sass (v3.4.7)
// Compass (v1.0.1)
// ----
.a {
.b {
&__c {
color: red;
}
@grachov
grachov / AjaxFormPlus.php
Created June 13, 2014 19:27
Extended version of AjaxForm that supports formConstruct
<?php
/**
* @var array $scriptProperties
* @var AjaxForm $AjaxForm
*/
$AjaxForm = $modx->getService('ajaxform', 'AjaxForm', $modx->getOption('ajaxform_core_path', null, $modx->getOption('core_path') . 'components/ajaxform/') . 'model/ajaxform/', $scriptProperties);
if (!($AjaxForm instanceof AjaxForm)) {
return '';
}
$AjaxForm->initialize($modx->context->key);
@grachov
grachov / Optimizer.php
Last active August 29, 2015 14:02
Yii2 Twig helper extension
<?php
namespace yii\twig\NodeVisitor;
class Optimizer implements \Twig_NodeVisitorInterface
{
public function enterNode(\Twig_NodeInterface $node, \Twig_Environment $env)
{
return $node;
}
@grachov
grachov / QuickOrder.php
Created June 4, 2014 13:10
Покупка товара в один клик для miniShop2
<?php
$context = $modx->context->get('key');
if ($context == 'mgr' || empty($_POST['quick_order']) || empty($_POST['id']) || empty($_POST['customer'])) {
return;
}
/**
* @var miniShop2 $miniShop2
*/
$miniShop2 = $modx->getService('minishop2');
$miniShop2->initialize($context, array(
@grachov
grachov / README.md
Last active August 14, 2018 15:36
Снятие с публикации купленных товаров для miniShop2

Установка:

  • файл unpublish.class.php разместить в директории core/components/product_unpublish/processors/resource/
  • создать плагин, скопировав содержимое файла plugin.php. Если необходимо снимать с публикации товары сразу после покупки, отмечаем для плагина событие msOnCreateOrder. Если необходимо снимать с публикации товары при получении заказом определенного статуса, необходимо отметить событие msOnChangeOrderStatus для плагина и поменять в коде 99 на ID статуса заказа.