Всего 122 806 комментариев

Гавриченко Антон
15 октября 2015, 21:26
0
Сразу и вербовщики набежали (не в обиду, а в шутку сказано) :)
А хотелось бы попробовать свои силы (правда только удалённо) в хороших студиях, а то часто приходится делать мелкие и довольно стандартные проекты. От такой работы уже перестаёшь понимать, уверенное ли у тебя знание php, хорошо ли ты знаешь MODX :)
Но правда думаю для вас не подходящий вариант, так как 5-6 часов в день смогу уделять, а это наверное маловато.
evgeniy dovgani
15 октября 2015, 21:19
0
При вызове сниппета — белый экран.
При открытии модуля в админке — тоже самое.

Ошибок не выдает.
Владимир Ульяновский
15 октября 2015, 21:05
0
Спасибо друзья, все получилось и работает :)
Fi1osof
15 октября 2015, 20:46
-2
Мы готовы взять учеников с базовым пониманием MODX-а, HTML, CSS, JS и научить их самостоятельно и довольно быстро. Ученики 30-50 тысяч в зависимости от уровня. Эксперты есть у нас, но простые задачи сейчас слишком дорого клиентам нашим обходятся. Но и с хорошим уровнем тоже не помешают, зп до 80 и выше в зависимости от уровня. Универсалы не обязательны.
Andrey Evteev
15 октября 2015, 20:44
+1
Антон, все верно. Необходимо уверенное знание php, MODX, наличие проектов в портфолио. Зарплата обсуждается в индивидуальном порядке.
Гавриченко Антон
15 октября 2015, 20:38
0
Хоть бы диапазон зарплаты написали, а то непонятно на кого ориентируетесь (опытный, не слишком опытный, малоопытный кандидат) и на что кандидату можно рассчитывать. Хотя с другой стороны довольно именитая студия (по крайней мере в modx-кругах), соответственно и требования к кандидатам должны быть не слишком простые.
Павел Гвоздь
15 октября 2015, 20:25
2
+4
Вот так при помощи Fenom я вывожу данные для отладки только для админов, авторизованных в контексте mgr:
{if $_modx->hasSessionContext('mgr')}
	<div style="position:fixed;right:0;bottom:0;background:#fff;border:1px solid #bbb;padding:4px 9px;"><small>[^t^], [^qt^], [^q^]</small></div>
{/if}
Вот так это выглядит во фронте:
Ivan Shvindin
15 октября 2015, 20:09
0
cultureKey = en в настройках контекста
Андрей Копп
15 октября 2015, 20:07
2
0
Рабочий вариант плагина:

<?php
switch ($modx->event->name) {
    case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart':
        $miniShop2 = $modx->getService('minishop2','miniShop2',
        	MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
        if (!($miniShop2 instanceof miniShop2)) return '';
        
        // Инициализируем класс в текущий контекст
        $miniShop2->initialize($modx->context->key, $scriptProperties);
        $total_count = $miniShop2->cart->status()['total_count'];
        $tmp = $miniShop2->cart->get();
        if ($total_count > 499) { // если 5 и более товаров - оптовые цены, в интернет-магазине оптовые цены забиваются в поле article
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$discount5 = $product->get('discount5');
                	$opt = $realPrice*$discount5/100;
                    $optPrice = $realPrice-$opt;
                	$tmp[$key1]['price'] = $optPrice;
                }
            }
        }
        elseif ($total_count > 99) { // если 10 и более товаров - оптовые цены, в интернет-магазине оптовые цены забиваются в поле article
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$discount4 = $product->get('discount4');
                	$opt = $realPrice*$discount4/100;
                    $optPrice = $realPrice-$opt;
                	$tmp[$key1]['price'] = $optPrice;
                }
            }
        }
        elseif ($total_count > 29) { // если 30 и более товаров - оптовые цены, в интернет-магазине оптовые цены забиваются в поле article
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$discount3 = $product->get('discount3');
                	$opt = $realPrice*$discount3/100;
                    $optPrice = $realPrice-$opt;
                	$tmp[$key1]['price'] = $optPrice;
                }
            }
        }
        elseif ($total_count > 9) { // если 100 и более товаров - оптовые цены, в интернет-магазине оптовые цены забиваются в поле article
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$discount2 = $product->get('discount2');
                	$opt = $realPrice*$discount2/100;
                    $optPrice = $realPrice-$opt;
                	$tmp[$key1]['price'] = $optPrice;
                }
            }
        }
        elseif ($total_count > 4) { // если 500 и более товаров - оптовые цены, в интернет-магазине оптовые цены забиваются в поле article
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$discount1 = $product->get('discount1');
                	$opt = $realPrice*$discount1/100;
                    $optPrice = $realPrice-$opt;
                	$tmp[$key1]['price'] = $optPrice;
                }
            }
        }
        else {
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$realPrice = $product->get('price');
                	$tmp[$key1]['price'] = $realPrice;
                }
            }
        }
        $miniShop2->cart->set($tmp);
        break;
}
Осталось теперь придумать как это всё менять на лету, на странице с товаром и в корзине при оформлении заказа, может кто-нибудь в курсе как дописать этот скрипт, чтобы считалось всё на лету?

<script type="text/javascript">
$('#msCart input[name="count"]').change(function(){
	var count = $(this).val(); 
	var singlePrice = parseInt($(this).closest('.tab_row').children(".tab_sum").text());

	$(this).closest('.tab_row').children(".tab_pr").children("span").html(count * singlePrice);
});
</script>
Владимир
15 октября 2015, 20:04
0
Вот, прямо на этой странице, в меню пункт Документация, а там docs.modx.pro/system/the-basics/filters-input-and-output

Мордынский Николай
15 октября 2015, 19:57
0
В общем дефолты не работают для флага и выпадающего списка, да нет и выпадашка работают.
Владимир Ульяновский
15 октября 2015, 19:52
0
Вон оно что, вот спасибо…
А на русском, чтоб доходчивее, порекомендуете где почитать?
Сергей Шлоков
15 октября 2015, 19:48
+1
Если вы используете фильтры, то и искать нужно «Фильтры MODX». Сокращу время на поиски — вот официальная документация.
А ней видим, что если нужно проверять по id, то фильтр должен быть по тегу [[+modx.user.id]]. А если проверка по группе, то так — [[+modx.user.id:memberof=`Administrator`]]
Владимир Ульяновский
15 октября 2015, 19:30
0
А поставить минишоп и посмотреть как там регистрируется покупатель и тд и тп со всеми вытекающими… Я не прогрмер, но принцип использованный в минишопе должен натолкнуть на правильные действия.
Александр
15 октября 2015, 19:26
0
ajaxmanager переопределяет функции, поэтому все глюки.
Какбы сделать так чтобы он последним подгружался? может как-то название ему сменить типа zajaxmanager?
Fi1osof
15 октября 2015, 19:03
0
Вот как-то полностью согласен с вами. Все посмеялись, можно было бы и дальше смеяться. А тут все испорчено. Ну да ладно, я пошел дальше.
Павел Гвоздь
15 октября 2015, 18:57
1
+12
Вот эти последние сообщения, как-то не профессионально, что-ли с обоих сторон. Взгляд со стороны. Это лично мое мнение, я ни на что не претендую.