t('comment'), 'module' => 'comment', 'access callback' => 'rules_comment_integration_access', 'class' => 'RulesCommentEventHandler', ); return array( 'comment_insert' => $defaults + array( 'label' => t('After saving a new comment'), 'variables' => array( 'comment' => array('type' => 'comment', 'label' => t('created comment')), ), ), 'comment_update' => $defaults + array( 'label' => t('After updating an existing comment'), 'variables' => array( 'comment' => array( 'type' => 'comment', 'label' => t('updated comment'), ), 'comment_unchanged' => array( 'type' => 'comment', 'label' => t('unchanged comment'), 'handler' => 'rules_events_entity_unchanged', ), ), ), 'comment_presave' => $defaults + array( 'label' => t('Before saving a comment'), 'variables' => array( 'comment' => array( 'type' => 'comment', 'label' => t('saved comment'), 'skip save' => TRUE, ), 'comment_unchanged' => array( 'type' => 'comment', 'label' => t('unchanged comment'), 'handler' => 'rules_events_entity_unchanged', ), ), ), 'comment_view' => $defaults + array( 'label' => t('A comment is viewed'), 'variables' => array( 'comment' => array('type' => 'comment', 'label' => t('viewed comment')), ), 'help' => t("Note that if drupal's page cache is enabled, this event won't be generated for pages served from cache."), ), 'comment_delete' => $defaults + array( 'label' => t('After deleting a comment'), 'variables' => array( 'comment' => array('type' => 'comment', 'label' => t('deleted comment')), ), ), ); } /** * Comment integration access callback. */ function rules_comment_integration_access($type, $name) { if ($type == 'event' || $type == 'condition') { return entity_access('view', 'comment'); } } /** * Event handler support comment bundle event settings. */ class RulesCommentEventHandler extends RulesEventHandlerEntityBundle { /** * Returns the label to use for the bundle property. * * @return string * Returns the label to use for the bundle property. */ protected function getBundlePropertyLabel() { return t('type'); } } /** * @} */