Дополнительные поля в комментариях и премодерация
        Задача: Организовать анонимные комментарии с премодерацией + 2 дополнительных текстовых поля.
доп поля в шаблоне формы:
скрин таблицы в базе: joxi.ru/YmEN6bnuJz1L26
подскажите пожалуйста как исправить ситуацию
    
    
                                                                                
            доп поля в шаблоне формы:
<div class="form-group">
			<label for="comment-plus">Достоинства</label>
			<input type="text" name="comment-plus" value="" id="comment-plus" class="form-control" maxlength="200" />
		</div>
		<div class="form-group">
			<label for="comment-minus">Недостатки</label>
			<input type="text" name="comment-minus" value="" id="comment-minus" class="form-control" maxlength="200" />
		</div>плагин:<?php
if ($modx->event->name == 'OnBeforeCommentSave') {
	$properties = array(
		'comment-plus' => $modx->stripTags($_POST['comment-plus']),
		'comment-minus' => $modx->stripTags($_POST['comment-minus'])
	);
	$modx->event->params['TicketComment']->set('properties', $properties);
}Эта схема хорошо работает только для комментариев без премодерации. Если включаешь премодерацию — то информация из доп полей попадает в базу, но в момент публикации стирается.скрин таблицы в базе: joxi.ru/YmEN6bnuJz1L26
подскажите пожалуйста как исправить ситуацию
Комментарии: 15
                Нужно выполнять этот код только, если $_POST['comment-plus'] и $_POST['comment-minus'] существуют.            
                    
                Огромная вам благодарность.
не знал, что плагин выполняется при публикации из админки… получается я сам стирал эти поля.
добавил проверку, теперь работает.
                    не знал, что плагин выполняется при публикации из админки… получается я сам стирал эти поля.
добавил проверку, теперь работает.
<?php
if ($modx->event->name == 'OnBeforeCommentSave') {
    if(!empty($_POST['comment-plus']) OR !empty($_POST['comment-minus'])){
        $properties = array(
            'comment-plus' => $modx->stripTags($_POST['comment-plus']),
            'comment-minus' => $modx->stripTags($_POST['comment-minus'])
        );
        $modx->event->params['TicketComment']->set('properties', $properties);
    };
}            
                Еще бы на isset проверить, т.к. так предупреждения генерируются на несуществующие элементы массива. По админке тут: github.com/bezumkin/Tickets/blob/master/assets/components/tickets/js/mgr/comment/comments.grid.js            
                    
                добавил проверку, спасибо.
ExtJs темный лес к сожалению.
добавил строку:
получил в окне поле с Object: joxi.ru/BA0RK8pfPaaYmy
оно и понятно, там же json строка, которую нужно как-то извлечь… в общем что делать дальше не знаю.
                    ExtJs темный лес к сожалению.
добавил строку:
,{xtype:'textarea', fieldLabel: _('ticket_comment_properties'), name: 'properties', id:'tickets-'+this.ident+'-properties',anchor: '99%',hidden: config.record.createdby ? 1 : 0}под 216 (https://github.com/bezumkin/Tickets/blob/master/assets/components/tickets/js/mgr/comment/comments.grid.js#L216)получил в окне поле с Object: joxi.ru/BA0RK8pfPaaYmy
оно и понятно, там же json строка, которую нужно как-то извлечь… в общем что делать дальше не знаю.
                Попутный вопрос: Дополнительные поля в премодерируемых комментариях было-бы логично показывать модератору в админке.
Подскажите пожалуйста где код отвечающий за вывод формы комментария: joxi.ru/MAjpxg1IxJdLme
попробую разобраться и добавить туда свои поля.
или если есть готовый способ — будет супер.
                    Подскажите пожалуйста где код отвечающий за вывод формы комментария: joxi.ru/MAjpxg1IxJdLme
попробую разобраться и добавить туда свои поля.
или если есть готовый способ — будет супер.
                Получилось сделать?            
                    
                Спустя три года)))            
                    
                Вопрос так и остался актуален! И за три года неужели его никто не решил?            
                    
                Там надо расширять ExtJs. Готового способа нет. Но Tickets в открытом доступе исходники, поэтому можно делать все            
                    
                в каком файле это все надо править?
            
                    
                Решение нашёл. В файле /assets/components/tickets/js/mgr/comment/comment.window.js добавляете дополнительное поле
                    , {
		  xtype: 'displayfield',
		  fieldLabel: 'Комментарий',
		  html: config.record.properties['comment-plus'],
		  anchor: '99%',
		}config.record.properties['comment-plus'] вместо comment-plus любой объект из поля properties в БД.            
                Здравствуйте! Андрей, подскажите пожалуйста, Вы плагин дописывали отдельным сниппетом и вызывали его в чанке создания комментария?            
                    
                нет. плагин так и называется «плагин» смотри в дереве «элементов» в админке есть плагины. создаешь новый, пишешь код, потом галочкой отмечаешь событие на которое запускается этот плагин. в данном случае: OnBeforeCommentSave            
                    
                Большое спасибо!            
                    
                Здравствуйте!
Подскажите, пожалуйста, не смог понять как ни пытался )
На гитхабе есть файл info c таким содержимым
                    Подскажите, пожалуйста, не смог понять как ни пытался )
На гитхабе есть файл info c таким содержимым
/* Плагин с событием на OnBeforeCommentSave
   https://modx.pro/help/4370
   https://bezumkin.ru/sections/522/1540/ */
if ($modx->event->name == 'OnBeforeCommentSave') {
  if(!empty($_POST['my_property_prop'])){
  	$properties = array(
      'my_property' => $modx->stripTags($_POST['my_property_prop'])
    );
  } else {
    $properties = array(
      'my_property' => $modx->stripTags($_POST['my_property'])
    );
  }
  
  $modx->event->params['TicketComment']->set('properties', $properties);
}
/* core/components/tickets/processors/mgr/comment/get.class.php
   Костыль для функции cleanup() */
   
if (isset($comment['properties'])) {
  foreach($comment['properties'] as $comment_key => $comment_value) {
    $comment[$comment_key."_prop"] = $comment_value;
  }
}
/* assets/components/tickets/js/mgr/comment/comment.window.js
   Добавление нового поля в getFields */
   
{
  xtype: 'textarea',
  fieldLabel: _('comment'),
  name: 'my_property_prop',
}
/* Вывод в чанке */
[[+properties.gender]]Нигде в кодах не упоминается название поля gender но в выводе в чанк оно есть, не понимаю, как прописывать доп. поля, если у меня их, например два — title и dop ((( Голову сломал            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.