Да просто не сразу увидел про мультивалютность, а она есть давным-давно. Посмотрел — как раз то что нужно! А вот как реализовать фильтр товаров не нашел, чтобы можно было выбирать опции или диапазон цен (про минимальную и максимальную цену диапазона топик видел) и на сайте отсеивались нужные товары.

Посмотри изменения на гите github.com/MODX-Club/ShopModxBox/commits/master с момента 2.6.1. Там не мало изменений было. Но в целом они мелкие, косметические так сказать. Но все же для корректной работы надо обновить еще и два упомянутых выше процессора (modWebCatalogCategoryProductsGetdataProcessor и modWebCatalogProductsGetdataProcessor). Само собой следи, если там в них твои изменения есть.

А можно реализовать на ShopModXBox такое — в админке цену товаров указывать как в рублях, так и в иностранной валюте (у одних товаров в рублях, а у других например в евро), а во фронтенде все цены в рублях отображались бы? Таки об этом и писалось в данном топике. Вообще мультивалютность раньше еще появилась, но сейчас работа с ней более корректная. Вот ты тормоз))) shopmodx.modxclub.ru — глаза раскрой :) Это кому и о чем? А главное — к чему?

Вот ты тормоз))) shopmodx.modxclub.ru — глаза раскрой :)

Добавился только этот процессор? Т.е. для обновления — скачал его и кинул в папку + использовал в шаблоне?

Отличная новость! А можно реализовать на ShopModXBox такое — в админке цену товаров указывать как в рублях, так и в иностранной валюте (у одних товаров в рублях, а у других например в евро), а во фронтенде все цены в рублях отображались бы?

Насколько я его понял, он выполняет другие задачи. Не нашел я (правда, глубоко не вдавался) в нем возможности из /каталог/потолки/подвесные потолки/подвесные_потолки_armstrong/название_конкретного_товара сделать /каталог/подвесные_потолки_armstrong/название_конкретного_товара Да и на самом деле то, что предложено в этом топике, делается за 5 минут, и не требует больше никаких действий кроме как выставить/снять галочку. Я не сторонник различных довесков, которые нагружают систему. Да и банальная лень — проще сделать как проще :)

Всем доброго дня. Достался сайт на стареньком Revo 2.2.10 Нужно было реализовать английскую версию. Сделал с помощью контекстов. Все хорошо, за исключением формы обратной связи. Она никак не работает. На русской версии все ок, на английской версии не отрабатывает. Не выкидывает сообщений о незаполнености обязательных полей, а если все заполнено верно, то не редиректит на страницу с сообщением об успешной отправке письма, и не отсылает письмо на почту. В логах никаких ошибок при этом нет. Контексты настраивал по этой статье: https://bezumkin.ru/sections/tips_and_tricks/2439/ вызов FormIt-а самый обычный: [[!FormIt? &hooks=spam,email,redirect &emailTpl=EmailReport &emailTo=mymail@gmail.com &emailSubject=Сообщение с сайта [[++site_name]] &redirectTo=172 &validate=name:required, email:email:required, text:required:stripTags ]] <form class="form" action="[[~[[*id]]]]" method="post"><input type="hidden" name="nospam:blank" value="" />

<div><label for="name"> Your name:* [[!+fi.error.name]] </label> <input id="name" type="text" name="name" value="[[!+fi.name]]" /></div> <div><label for="email"> Your e-mail:* [[!+fi.error.email]] </label> <input id="email" type="text" name="email" value="[[!+fi.email]]" /></div> <div><label for="phone"> Your phone: [[!+fi.error.phone]] </label> <input id="phone" type="text" name="phone" value="[[!+fi.phone]]" /></div> <div><label for="text"> Your message:* [[!+fi.error.text]] </label> <textarea id="text" name="text" rows="7" cols="55">[[!+fi.text]]<textarea></div> <div class="form-buttons"><input type="submit" value="Send" /></div> <p class="form-desc">* Required informations</p> </form>

Клево. Переделал код так: <?php class OperationCreateProcessor extends modObjectCreateProcessor {

/* 
 * Процессор создает "Операции" для управления финансами
 * Операция - это расход, приход или перевод со счета на счет
 */
 
public $classKey = 'Operation';
public $objectType = 'object';

public function beforeSet() {
    $amount = $this->getProperty('amount');
    switch ($this->getProperty('type')) {
        case 'charge':
            $this->setProperty('amount', -1 * $amount);
            break;
        case 'income': 
            $this->setProperty('amount', 1 * $amount);
            break;
        case 'transfer':
            $this->object->Related = $this->modx->newObject('Operation');
            $this->object->Related->fromArray($this->getProperties());
            $this->object->Related->set('amount', 1 * $amount);
            $this->object->Related->set('account', $this->getProperty('to'));
            $this->object->Related->set('relation_type', $this->getProperty('type'));

            $this->setProperty('amount', -1 * $amount);
            $this->setProperty('account', $this->getProperty('from'));
            $this->setProperty('related', $secondOp->id);
            $this->setProperty('relation_type', $this->getProperty('type'));
            break;
        default:
            $this->modx->error->addField('type', 'Unknown type');
            return false;
    }
    return true;
}

public function afterSave() {
    if ($this->getProperty('type') == 'transfer') {
        if ($this->object->Related) {
            $this->object->Related->set('related', $this->object->id);
            $this->object->Related->save();
        }
    }
    
    return true;
}

}

return 'OperationCreateProcessor'; И вот здесь опять вопрос. Вот есть строка, где связанные объекты сохраняются второй раз и в них передаются ключи основного объекта для сохранения связи. Однако у меня без блока afterSave у связанного объекта поле related оказывается незаполненным. Вот описание связи: // ... 'Related' => array ( 'class' => 'Operation', 'local' => 'related', 'foreign' => 'id', 'cardinality' => 'one', 'owner' => 'foreign', ), // ... По идее должно работать. Но почему-то не хочет…

как сюда вставить скрин?