создание секции tickets через процессоры
        Интересует создание секции tickets через процессоры.
Нашел статью о процессорах в MODX — хочу применить на практике.
Пробую следующее
Я немного в тупике. Пните меня прошу!)
    
    
                                                        Нашел статью о процессорах в MODX — хочу применить на практике.
Пробую следующее
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
// Массив, который мы передадим в процессор, там его ловить в $scriptProperties
$processorProps = array(
);
// Массив опций для метода runProcessor
$otherProps = array(
    // Здесь указываем где лежат наши процессоры
    'processors_path' => $modx->getOption('core_path') . 'components/tickets/processors/'
);
// Запускаем
$response = $modx->runProcessor('mgr/section/create.class', $processorProps, $otherProps);
// Если ошибка
if ($response->isError()) {
    $modx->log(modX::LOG_LEVEL_ERROR, 'my error:' .$response->getMessage());
}
// И возвращаем ответ от процессора
return $response->response;ну и в итоге мне показывает большую и жирную фигу…Fatal error: Cannot redeclare class TicketsSectionCreateProcessor in /var/www/reg33/www/core/components/tickets/processors/mgr/section/create.class.php on line 0Cannot redeclare class — гугл подсказал что сие есть — не могу переопределить классЯ немного в тупике. Пните меня прошу!)
            
                Поблагодарить автора            
            
                 Отправить деньги            
        
        
            Комментарии: 10
                Нужно обращаться к родному процессору MODX с указанием class_key — он сам вызовет нужный процессор для этого класса и всё сделает.
Это особенность всех CRC, в том числе и ресурсов Tickets и miniShop2.
                    $processorProps = array(
	'class_key' => 'TicketsSection',
	'template' => 15,
	'alias' => 'myTicket',
	'parent' => 0,
);
$otherProps = array();
$response = $modx->runProcessor('resource/create', $processorProps, $otherProps);
if ($response->isError()) {
    $modx->log(modX::LOG_LEVEL_ERROR, 'my error:' .$response->getMessage());
}Это особенность всех CRC, в том числе и ресурсов Tickets и miniShop2.
                c админки все нормал, код отрабатывает.
Но если с фронта то не хватает прав — permission_denied
Пробую следующее:
создал mycreate.class.php
            
                    Но если с фронта то не хватает прав — permission_denied
Пробую следующее:
создал mycreate.class.php
<?php
// Подгружаем класс системного процессора, отвечающего за создание ресурсов
require_once MODX_CORE_PATH.'components/tickets/processors/mgr/section/create.class.php';
// Создаем свой новый класс, расширяющий TicketsSectionCreate
class myTicketsSectionCreateProcessor  extends TicketsSectionCreateProcessor{
    public $permission = 'new_document'; 
    public $contextKey = 'web';
}
return 'myTicketsSectionCreateProcessor';вызов так// Массив, который мы передадим в процессор, там его ловить в $scriptProperties
$processorProps = array(
	'class_key' => 'TicketsSection',
	'template' => 15,
	'alias' => 'myTicket',
	'parent' => 0,
        'context_key' => 'web',
	
);
// Массив опций для метода runProcessor
$otherProps = array(
    // Здесь указываем где лежат наши процессоры
    'processors_path' => $modx->getOption('core_path') . 'components/tickets/processors/mgr/my/'
);
$response = $modx->runProcessor('mycreate', $processorProps, $otherProps);
if ($response->isError()) {
    $modx->log(modX::LOG_LEVEL_ERROR, 'my error:' .$response->getMessage());
}
return $response->response;что не так делаю? или как можно обойти проверку прав для создания секции с фронта?
                наверно я туплю… нужно скорее всего дать группе пользователей право на создание ресурса да?
или это неправильно?
                    или это неправильно?
                дал группе юзеров право на создание ресурса — заработало…
Как правильнее? Иметь группу пользователей с таким правом или иметь группу пользователей без права на создание, и как то обойти проверку прав на создание ресурса?
                    Как правильнее? Иметь группу пользователей с таким правом или иметь группу пользователей без права на создание, и как то обойти проверку прав на создание ресурса?
                Можно попробовать наследовать modResourceCreateProcessor и либо переопределить переменную $permissions, вот так:
                    public $permission = '';либо переопределить метод checkPermissions, чтобы он всегда возвращал truepublic function checkPermissions() {
    return true;
}            
                Меня тоже интересует этот вопрос. Есть решение?            
                    
                Василий, классно придумал с блоком «Здесь упомянуты»            
                    
                Это не я придумал, а Виталий Дощенко — директор Simple Dream =)
Получилось прикольно, да.
Если кто-то еще проявит интерес — могу выложить исходный код и открыть интерфейс магазина для запросов.
                    Получилось прикольно, да.
Если кто-то еще проявит интерес — могу выложить исходный код и открыть интерфейс магазина для запросов.
                А реализовал ты?            
                    
                Конечно.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.