Skip to content

Instantly share code, notes, and snippets.

@iksecreeet
iksecreeet / cloneResource.php
Created August 27, 2016 18:18 — forked from sepiariver/cloneResource.php
A Snippet to clone a Resource into multiple, user-defined parent containers in arbitrary contexts
<?php
// get user-defined source document and target parents
$source = intval($modx->getOption('sourceId', $scriptProperties, ''));
$targets = array_map('trim', explode(',', $modx->getOption('targetIds', $scriptProperties, '')));
// to prevent accidents...
$_allowedUsers = explode(',', 'username1,username2');
// check stuff, and if passed then get the source document object
if ( !in_array($modx->user->get('username'), $_allowedUsers) || empty($source) || $source == 0 || !is_array($targets) || empty($targets) ) return;
$sourceDoc = $modx->getObject('modResource', $source);
@iksecreeet
iksecreeet / QuickOrder.php
Created August 27, 2016 18:22 — forked from grachov/QuickOrder.php
Покупка товара в один клик для 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(
@iksecreeet
iksecreeet / README.md
Created August 27, 2016 18:23 — forked from grachov/README.md
Снятие с публикации купленных товаров для miniShop2

Установка:

  • файл unpublish.class.php разместить в директории core/components/product_unpublish/processors/resource/
  • создать плагин, скопировав содержимое файла plugin.php. Если необходимо снимать с публикации товары сразу после покупки, отмечаем для плагина событие msOnCreateOrder. Если необходимо снимать с публикации товары при получении заказом определенного статуса, необходимо отметить событие msOnChangeOrderStatus для плагина и поменять в коде 99 на ID статуса заказа.
@iksecreeet
iksecreeet / minishop2.oneclick.php
Created August 27, 2016 18:23
Сниппет для отправки заказа в 1 клик для Minishop2
<?php
$errors = [];
$id = $_POST['id'];
$phone = $_POST['phone'];
$receiver = uniqid('user_');
$email = uniqid('user_') . '@bikes.ru';
if ( empty( trim( $_POST['phone'] ) ) ) {
$errors['phone'] = 'Вы не заполнили телефон';
@iksecreeet
iksecreeet / msorderbyphonehandler.class.php
Created August 27, 2016 18:25 — forked from argnist/msorderbyphonehandler.class.php
Minishop2 OrderHandler с привязкой к телефону вместо емейла
<?php
class msOrderByPhoneHandler extends msOrderHandler {
public function getCustomerId() {
$order = $this->ms2->order->get();
if (empty($order['phone'])) {return false;}
if ($this->modx->user->isAuthenticated()) {
$profile = $this->modx->user->Profile;
@iksecreeet
iksecreeet / msDiscountFromCost.php
Created August 27, 2016 18:25 — forked from gvozdb/msDiscountFromCost.php
[MODX Revo] Разные скидки для miniShop2 в зависимости от общей суммы корзины
<?php
$chunk = 'tpl.msdfcMsg';
$discounts = array(
'100000' => '10%',
'150000' => '15%',
'200000' => '20%',
);
krsort($discounts);
reset($discounts);
$actionKey = 'msdfc_action';
@iksecreeet
iksecreeet / xml_to_minishop2.php
Created August 27, 2016 18:26 — forked from andronex/xml_to_minishop2.php
Очередной импортёр товаров из XML файла в интернет-магазин на MODX Revolution v.2.4.4-pl + miniShop2 v.2.2.0-pl2
<?php
$tplProduct = 3; //номер шаблона для карточки товара
$tplParent = 2; //номер шаблона для категорий
$tplChildParent = 2; //номер шаблона для подкатегорий
$idParent = 6; //id каталога товаров
$fileProduct = 'product.xml'; //имя файла с товарами
$xpath_expression['pagetitle'] = '//Товары/Номенклатура'; //DOM структура в XML файле до имени
$xpath_expression['article'] = '//Товары/Артикул'; //DOM структура в XML файле до артикула
$xpath_expression['parents'] = '//Товары/Родитель'; //DOM структура в XML файле до родителей
@iksecreeet
iksecreeet / gist:0eafef5f82b8e8f4a22eca18ee138194
Created August 27, 2016 18:26 — forked from vgrish/gist:45ef44246aedfca9a83d
товары в корзину одним набюором
$(document).on('click', 'button[name="ms2_action_set"][value="cart/addset"]', function(e) {
var parentSelector = '.mssetincart-row';
var formSelector = '.ms2_form';
var sets = {
action: 'cart/add',
ctx: miniShop2Config.ctx,
id: 0,
count: 1,
options: []
@iksecreeet
iksecreeet / csv.php
Created August 27, 2016 18:27 — forked from vgrish/csv.php
пример импорта для msop2 (не проверялся)
<?php
define('MODX_API_MODE', true);
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/config/config.inc.php';
require_once MODX_BASE_PATH . 'index.php';
if (XPDO_CLI_MODE) {
$file = @$argv[1];
$fields = @$argv[2];
$update = (bool) !empty($argv[3]);
@iksecreeet
iksecreeet / member-pages
Created October 30, 2016 19:15 — forked from Marcelli/member-pages
When creating user, create resource, resource group, user group, file directory, necessary permissions and memberships (Plugin for MODX Revo)
<?php
/**
* CercecUser
*
* @author Marc Elie <[email protected]>
*
* Event: OnUserFormSave
*
* Modified from Bob Ray's plugin tutorial, Official Guide p. 492-3
* and Bob Ray's online explanation on create class: