Пётр Молчанов

Пётр Молчанов

Был в сети 29 октября 2020, 11:31
Заказы не принимаю
isMember — самый нормальный вариант
$user = $modx->getObject('modUser',array('active' => true, 'id' => $userid )); // подставляй айди пользователя
if($user == null)
        return "Пользователь не найден!";
if($user->isMember('Гость')) {

} elseif($user->isMember('Копирайтер')) {

}
и т.д.
если нужно для каждой что-то выводить, то убери else из условий, проверяй только if'ом
аа, ну да. я свои параметры добавлял сам. у мя на странице 2 чекбокса и один текстовый инпут.
может мой код поможет:
$(document).ready(function(){
    $('.filters input').on('change keypress paste', function() {
        var service = '';
        if($('.filters .service_foto:checked').length == 1 && $('.filters .service_design:checked').length)
            service = 'all';
        else if($('.filters .service_foto:checked').length == 1)
            service = 'service_foto';
        else if($('.filters .service_design:checked').length == 1)
            service = 'service_design';
        
        var city = $('.filters .city').val();
        
        $.ajax({
            type: "POST",
            data: "city="+city+"&service="+service,
            url: "[[~1539? &scheme=`full`]]",
            beforeSend: function() {
                $('#pdopage').html('<div class="center" style="width:100px;padding:50px; 0"><i class="fa fa-refresh fa-spin fa-3x"></i></div>');
            },
            success: function(response) {
                $('#pdopage').html(response);
            }
        });
    });
});
$(document).on('as_complete', document, function(e,d) {
    $(document).on('click', '.pagination a', function(e) {
        e.preventDefault();
        var url = $(this).attr('href');
        
        var service = '';
        if($('.filters .service_foto:checked').length == 1 && $('.filters .service_design:checked').length)
            service = 'all';
        else if($('.filters .service_foto:checked').length == 1)
            service = 'service_foto';
        else if($('.filters .service_design:checked').length == 1)
            service = 'service_design';
        
        var city = $('.filters .city').val();
        
        $.post(url, {as_action: d["key"], city: city, service: service}, function(response) {
    	    if (typeof response.output !== "undefined") {
    		    $('#pdopage').html(response.output);
            }
        }, "json");
        return false;
    });
});
на странице по адресу [[~1539]] вызывается мой сниппет, где я формирую условия для вызова pdoPage (всякие select, join'ы, where, который складываются в массив options), а возвращает он это:
$output = $modx->runSnippet('pdoPage',$options);
echo $output.$modx->getPlaceholder('page.nav');
единственный минус — не меняется тайтл и урл при пэйджинге, хз как побороть это) если кто подскажет — буду признателен