Подключить вкладку с комментариями Tickets
        Добрый день.
Подскажите, как подключить вкладку с комментариями Tickets к простому ресурсу с определенным шаблоном в менеджере?
    
    
                                                                                
            Подскажите, как подключить вкладку с комментариями Tickets к простому ресурсу с определенным шаблоном в менеджере?
Комментарии: 18
                Предполагаю, что определенным вызовом сниппета TicketComments            
                    
                Сниппет он на фронтенде выводит комментарии. Мне надо в менеджере у стандартного ресурса сделать вкладочку «Комментарии» как у ресурса Tickets.            
                    
                Дополнительные табы реализуются при помощи ExtJS. (примеры)
Что же до аналога вкладки tickets'ов — можно или расширить его ядро в том месте, где определяется этот таб (не рекомендуется, т.к. при обновлении расширения все слетит) или сэмулировать его вызов внутри свежесозданного таба, по аналогии с тем, как он вызывается для tickets'ов. В этом случае минусом будет то, что при изменении данного вызова для tickets'ов в новых версиях, ваша версия закладки комментариев для прочих ресурсов станет устаревшей.
                    Что же до аналога вкладки tickets'ов — можно или расширить его ядро в том месте, где определяется этот таб (не рекомендуется, т.к. при обновлении расширения все слетит) или сэмулировать его вызов внутри свежесозданного таба, по аналогии с тем, как он вызывается для tickets'ов. В этом случае минусом будет то, что при изменении данного вызова для tickets'ов в новых версиях, ваша версия закладки комментариев для прочих ресурсов станет устаревшей.
                Думаю, можно написать плагин, который будет подключать эту вкладку к ресурсу так, чтобы ничего не ломалось при обновлениях, но бесплатно проверять лень.            
                    
                Сколько и куда кидать? )            
                    
                Василий, а через webmoney нет способа оплаты?            
                    
                Василий, а у тебя кошелька нет? Я напрямую бы кинул.            
                    
                Кидай на R100477009970, выеду куда-нибудь.            
                    
                Отправил :)            
                    
                Тебе как, тайно код отправить, или чтобы все видели?            
                    
                Да пусть все видят. Можно вообще плагин в тикетс включить отключенным, кому надо — включили и пользуют.            
                    <?php
if ($modx->event->name != 'OnDocFormPrerender' || $resource instanceof Ticket || $resource instanceof TicketsSection) {
    return;
}
if ($Tickets = $modx->getService('Tickets')) {
    $modx->controller->addLexiconTopic('tickets:default');
    
    $Tickets->loadManagerFiles($modx->controller, array(
        'config' => true,
		'utils' => true,
		'css' => true,
		'comments' => true,
    ));
    
    $insert = '
		tabs.add({
			title: _("comments"),
			items: [{
				xtype: "tickets-panel-comments",
				hidden: false,
				record: ' . $modx->toJSON($resource->toArray()) . ',
				parents: ' . $resource->id . ',
			}]
		});
	';
	if ($modx->getCount('modPlugin', array('name' => 'AjaxManager', 'disabled' => false))) {
		$modx->controller->addHtml('
		<script type="text/javascript">
			Ext.onReady(function() {
				window.setTimeout(function() {
					var tabs = Ext.getCmp("modx-resource-tabs");
					if (tabs) {
						' . $insert . '
					}
				}, 10);
			});
		</script>', true);
	}
	else {
		$modx->controller->addHtml('
		<script type="text/javascript">
			Ext.ComponentMgr.onAvailable("modx-resource-tabs", function() {
				var tabs = this;
				tabs.on("beforerender", function() {
					' . $insert . '
				});
			});
		</script>', true);
	}
}Может и включу потом, да. Но пока это твой эксклюзив =)            
                Спасибо :)            
                    
                Вставил вот такое условие и все замечательно работает! :)
                    $templates = array(4, 6, 7);
$current_template = $resource->get('template');
if (in_array($current_template, $templates)) {
...
}Еще раз спасибо Василий!            
                На здоровье!            
                    
                Если вкладка есть, но комментарии не выводятся, а в консоли ошибка по поводу отсутствия функции strftime, добавить подключение файла strftime-min-1.3.js:
                    $templates = array(4, 6, 7);
if (in_array($resource->get('template'), $templates)) {
    if($Tickets = $modx->getService('Tickets')){
        $modx->controller->addLexiconTopic('tickets:default');
        $modx->controller->addLastJavascript(MODX_ASSETS_URL.'components/tickets/js/mgr/misc/strftime-min-1.3.js');
        $Tickets->loadManagerFiles($modx->controller, array(
            'config' => true,
            'utils' => true,
            'css' => true,
            'comments' => true,
        ));
        $insert = '
            tabs.add({
                title: _("comments"),
                items: [{
                    xtype: "tickets-panel-comments",
                    hidden: false,
                    record: ' . $modx->toJSON($resource->toArray()) . ',
                    parents: ' . $resource->id . ',
                }]
            });
        ';
        $modx->controller->addHtml('
            <script>
                Ext.ComponentMgr.onAvailable("modx-resource-tabs", function() {
                    var tabs = this;
                    tabs.on("beforerender", function() {
                        ' . $insert . '
                    });
                });
            </script>', true);
    }
}            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    
            
            
                    
                    
                
