Павел Ширяев

Павел Ширяев

С нами с 10 апреля 2014; Место в рейтинге пользователей: #140
Павел Ширяев
30 апреля 2015, 12:17
0
Добрый день!

Настройка достаточно простая. Идем в настройки системы --> activedirectory

Для примера мы авторизуемся через домен domain.tld

Заполняем настройки:

Account Suffix = @domain.tld
Auto-add Active Directory Groups = Да (это в зависимости от необходимости)
Auto-Add User Groups = группа MODX, куда будут добавляться пользователи AD при первом логине
Base DN = OU=Users,DC=local,DC=tld (это Organization Unit AD, откуда разрешено авторизовываться пользователям на сайте)
Domain Controllers = ip-адреса домен контроллеров, через запятую

Остальное я оставлял по дефолту. Туда есть смысл лезть, если остальное не работает.
Ну и поправить баг, про который я писал выше. Он, кстати, есть в issue на странице проекта в гитхабе, но компонент не поддерживается разработчиком, так что ручками.
Павел Ширяев
25 апреля 2015, 00:06
+1
В общем-то, как я вижу, ответы на большинство моих вопросов есть в курсе Василия по разработке компонента. Там же и про IDE и про остальное :)

Но и за подробное объяснение о процессе разработке также большое спасибо, всегда было интересно, как организована работа с gulp и прочими инструментами, но все руки никак не доходили поковыряться как следует и разобраться.
Павел Ширяев
24 апреля 2015, 23:35
0
О, спасибо!
Как-то пропустил эту информацию у Василия! Будем почитать :)
Павел Ширяев
24 апреля 2015, 23:33
0
Вот это ответ! Спасибо за исчерпывающее разъяснение! :)
В общем-то, я спрашивал больше про написание компонентов, меня интересует, как сама разработка этих компонентов происходит.

Ну вот сижу я, скажем, за компом с 7 виндой. И как далее нужно все организовать, чтобы процесс разработки был комфортным? Я до этого всерьез программировал только на C# под MS SharePoint, там есть несколько неуклюжий, но вполне работоспособный процесс разработки, который очень неплохо интегрирует VisualStudio и сам SP (включая внушительные инструменты дебага, которые позволяют отслеживать реакцию чуть ли не на каждую строчку кода). Пишем код, потом одной комбинацией клавиш компилируем/копируем/устанавливаем решение на сервер SP, потом стоит только открыть нужную страницу — и там все уже есть. Гибкость этой процедуры позволяет внутри VisalStudio написать целый огромный портал, причем вместе со страницами, файлами, данными, связями и прочим. И потом всего одной строчкой в консоли всю эту красоту развернуть на девственно чистую инсталляцию SP, и все уже будет работать.

Понятно, что я не жду такого же функционала здесь, все таки MS — суровый пром, там свои задачи и своих недостатков хватает, но, собственно, меня интересует, как бы так интегрировать IDE с MODX, чтобы сама IDE понимала, что есть MODX и у него есть свои свои классы для работы с данными и самой CMS, что есть некоторые системные события и прочее.

До сего момента я писал код примерно так:

1. Пишу код прямо в окошке нового сниппета MODX;
2. Чертыхаясь, вспоминаю, что нужно писать на PHP, все написанное переписываю;
3. Обнаруживаю, что написанное не работает;
4. Начинаю отлаживать построчно, время от времени выводя прямо в текст страницы, где вызывается сниппет, содержимое нужных объектов или переменных;
5. Собственно, получается сниппет из 10 строк, на который было потрачено 3 часа.

Вот это как-то хочется оптимизировать. Чтобы редактор был с подсказками (PHPStorm? PhpED?), чтобы не приходилось из этого редактора код копировать вручную в окошко сниппета в админке modx, а потом вручную смотреть, что получилось, обновляя страницу, где вызывается сниппет.
Павел Ширяев
18 апреля 2015, 18:15
+2
Сергей, спасибо за ликбез, очень интересно. Думаю, не мне одному.
Сниппет мой, получается, настоящий велосипед, да еще с квадратными колесами :)
Но все равно полезно, много ценной инфы в комментариях.
Павел Ширяев
18 апреля 2015, 11:43
0
Туда не добрался. Страничка очень полезная, кстати, спасибо :)
Павел Ширяев
18 апреля 2015, 10:31
1
0
О, точно, спасибо! :)

Кстати, и коментарий Wassi Wassinen тоже работает — почему-то мне не удалось его нагуглить. Тем лучше, будет здесь, и кто-то в поиске на него наткнется.
Павел Ширяев
18 апреля 2015, 00:48
0
Ну вообще да. У меня не стояло задачи вывести в одном месте сразу несколько полей.

Это такой суррогат [[+modx.user.id]], только для полей профиля.

Возможно, потом доработаю когда появится такая необходимость.
Павел Ширяев
17 апреля 2015, 21:56
0
Отбой — почему-то влез в голову pdoSitemap из соседнего вопроса, а не MinifyX. Прошу прощения.
Павел Ширяев
17 апреля 2015, 19:44
0
Добавить [[++site_url]] перед [[+url]] в чанке, который является шаблоном вывода?..
Павел Ширяев
16 апреля 2015, 15:02
+6
Друзья, это просто прекрасно! У меня все работает без нареканий, пока ничего плохого не нашел.

Вопрос: что будет на работающем магазине при обновлении, в котором уже есть свои поля, добавленные ранее «плагинами MS2»? Ну т.е. вручную. Они появятся в таблице? Или надо будет удалить и заново создавать?

И ЕЩЕ! очень хочется трех вещей:

1. Тип поля «дата» и (менее важно) «диапазон дат». Это нужно для продажи нематериальных товаров, типа билетов на разные мероприятия, экскурсии и пр.

2. Очень хочется, чтобы некоторые поля можно было размножать по желанию. Пример: есть та же экскурсия, и у нее есть даты проведения. Мы добавляем опцию типа «дата», потом в свойствах товара просто нажимаем плюсик и поле дублируется. Получается нечто вроде «Дата проведения 1», «Дата проведения 2» и пр.

3. Выпадающий (и множественный) список еще желательно не просто заполняемый вручную, а привязанный к какому либо родителю в дереве.
Павел Ширяев
14 апреля 2015, 19:02
+1
Теоретически вполне можно.

Мультиязычность (в том числе, разные цены для разных стран) реализуется разными контекстами для разных языков плюс мощным дополнением Babel. Оно позволяет синхронизировать не меняющиеся поля на разноязычных страницах, и сделать индивидуальными меняющиеся. Страницы будут связаны, т.е. можно будет со страницы на русском перейти на ее аналог на английском.

В его работе есть опеределенные особенности, но оно из коробки умеет почти все, что нужно для мультиязычности.

С доставкой не сталкивался, но, скорее всего, нужно будет просто написать свое дополнение для реализации.

Сам по себе MS2 невероятно гибкий, и со знанием PHP и Modx API на его основе можно такого нагородить — амазон позавидует :) Да и без знания в modstore сегодня есть практически все, что нужно для магазина.
Павел Ширяев
14 апреля 2015, 15:35
0
О, спасибо большое, заработало! :)
Павел Ширяев
10 апреля 2015, 13:50
0
Функция самого спиннера должна для MS2 выглядеть так:

(function ($) {
        $.fn.spinner = function () {
            this.each(function () {
                var el = $(this);
                var parent = $(el.parents('span.spinner')).length;

                // Если такого родителя нет, то оборачиваем спиннер и добавляем + и -
                if (parent == 0) {
                    el.wrap('<span class="spinner"></span>');
                    el.before('<span class="sub">-</span>');
                    el.after('<span class="add">+</span>');
                

                // Реагируем на нажатие -
                el.parent().on('click', '.sub', function () {
                    if (el.val() > parseInt(el.attr('min')))
                        el.val(function (i, oldval) {
                            return --oldval;
                        });
                });

                // Реагируем на нажатие +
                el.parent().on('click', '.add', function () {
                    if (el.val() < parseInt(el.attr('max')))
                        el.val(function (i, oldval) {
                            return ++oldval;
                        });
                });
}
            });
        };
    })(jQuery);
Ну и вызов спиннера при Ajax-перезагрузке (работает и для первой загрузки):

$(document).bind("ajaxComplete", function(){
        $('.goods_container').ready(function() {
        $('input[type=number]').spinner();
        
        });
     });
Павел Ширяев
09 апреля 2015, 23:25
0
Мда, поторопился.

Надо покурить Ajax, вообще с ним не работал.
Павел Ширяев
09 апреля 2015, 22:08
0
Когда никто долго не отвечает, это полезно — есть время пораскинуть мозгами :)

Проблема решилась.

Реакции на нажатия надо инициализировать единожды при загрузке страницы.
А вот сам спиннер нужно инициализировать каждый раз на событие ajaxComplete.

Собственно, выносим реакции на нажатия в отдельную функцию, и инициализируем ее на событие document.ready, и далее не трогаем.
Павел Ширяев
08 апреля 2015, 21:10
0
А что такое мультикатегория? Это категория с подкатегориями?
Павел Ширяев
08 апреля 2015, 21:07
+1
для вывода товаров категории правильнее пользоваться msProducts (он есть в поставке магазина по умолчанию). Это по сути тот же pdoResources, но заточенный под вывод товаров магазина. Соотстветственно, для него работают те же параметры, но есть и свои, специфические.

Подробнее:
bezumkin.ru/modx/minishop2/
Павел Ширяев
06 апреля 2015, 11:55
0
Александр, спасибо за информацию, очень рад, что работа движется!
Молодцы! :)
Павел Ширяев
05 апреля 2015, 18:01
+3
Друзья, есть какие либо новости о сроках первого релиза?
В файле по ссылке старые даты.

Интерес не праздный, сейчас строится магазин на основе MS2, собственно, стоит ли ждать релиз или нужно нагружать программистов своей реализацией.