set_field_select('interaction_forum_topic', 'sticky', 0, 'id IN (' . implode(',', $checked) . ')', array());
         $SESSION->add_ok_msg(get_string('topicunstickysuccess', 'interaction.forum'));
     } else {
         if ($moderator && $type == 'closed') {
             set_field_select('interaction_forum_topic', 'closed', 1, 'id IN (' . implode(',', $checked) . ')', array());
             $SESSION->add_ok_msg(get_string('topicclosedsuccess', 'interaction.forum'));
         } else {
             if ($moderator && $type == 'open') {
                 set_field_select('interaction_forum_topic', 'closed', 0, 'id IN (' . implode(',', $checked) . ')', array());
                 $SESSION->add_ok_msg(get_string('topicopenedsuccess', 'interaction.forum'));
             } else {
                 if ($type == 'subscribe' && !$forum->subscribed) {
                     db_begin();
                     foreach ($checked as $key => $value) {
                         if (!record_exists('interaction_forum_subscription_topic', 'user', $USER->get('id'), 'topic', $value)) {
                             insert_record('interaction_forum_subscription_topic', (object) array('user' => $USER->get('id'), 'topic' => $value, 'key' => PluginInteractionForum::generate_unsubscribe_key()));
                         }
                     }
                     db_commit();
                     $SESSION->add_ok_msg(get_string('topicsubscribesuccess', 'interaction.forum'));
                 } else {
                     if ($type == 'unsubscribe' && !$forum->subscribed) {
                         delete_records_sql('DELETE FROM {interaction_forum_subscription_topic}
         WHERE topic IN (' . implode(',', $checked) . ') AND "user" = ?', array($USER->get('id')));
                         $SESSION->add_ok_msg(get_string('topicunsubscribesuccess', 'interaction.forum'));
                     }
                 }
             }
         }
     }
 }
示例#2
0
function subscribe_topic_submit(Pieform $form, $values)
{
    global $USER;
    if ($values['type'] == 'subscribe') {
        insert_record('interaction_forum_subscription_topic', (object) array('topic' => $values['topic'], 'user' => $USER->get('id'), 'key' => PluginInteractionForum::generate_unsubscribe_key()));
    } else {
        delete_records('interaction_forum_subscription_topic', 'topic', $values['topic'], 'user', $USER->get('id'));
    }
    redirect('/interaction/forum/topic.php?id=' . $values['topic']);
}
示例#3
0
文件: lib.php 项目: vohung96/mahara
 /**
  * When a user joins a group, subscribe them automatically to all forums
  * that should be subscribable
  *
  * @param array $eventdata
  */
 public static function user_joined_group($event, $gm)
 {
     if ($forumids = get_column_sql("\n            SELECT ii.id\n            FROM {group} g\n            LEFT JOIN {interaction_instance} ii ON g.id = ii.group\n            LEFT JOIN {interaction_forum_instance_config} ific ON ific.forum = ii.id\n            WHERE \"group\" = ? AND ific.field = 'autosubscribe' and ific.value = '1'", array($gm['group']))) {
         db_begin();
         foreach ($forumids as $forumid) {
             insert_record('interaction_forum_subscription_forum', (object) array('forum' => $forumid, 'user' => $gm['member'], 'key' => PluginInteractionForum::generate_unsubscribe_key()));
         }
         db_commit();
     }
 }
示例#4
0
function addtopic_submit(Pieform $form, $values)
{
    global $USER, $SESSION;
    $forumid = param_integer('forum');
    $groupid = get_field('interaction_instance', '"group"', 'id', $forumid);
    db_begin();
    $topicid = insert_record('interaction_forum_topic', (object) array('forum' => $forumid, 'sticky' => isset($values['sticky']) && $values['sticky'] ? 1 : 0, 'closed' => isset($values['closed']) && $values['closed'] ? 1 : 0), 'id', true);
    $sendnow = isset($values['sendnow']) && $values['sendnow'] ? 1 : 0;
    $post = (object) array('topic' => $topicid, 'poster' => $USER->get('id'), 'subject' => $values['subject'], 'body' => $values['body'], 'ctime' => db_format_timestamp(time()));
    $postid = insert_record('interaction_forum_post', $post, 'id', true);
    set_field('interaction_forum_post', 'path', sprintf('%010d', $postid), 'id', $postid);
    // Rewrite the post id into links in the body
    $newbody = EmbeddedImage::prepare_embedded_images($post->body, 'topic', $topicid, $groupid);
    $newbody = PluginInteractionForum::prepare_post_body($newbody, $postid);
    if (!empty($newbody) && $newbody != $post->body) {
        set_field('interaction_forum_post', 'body', $newbody, 'id', $postid);
    }
    if (!record_exists('interaction_forum_subscription_forum', 'user', $USER->get('id'), 'forum', $forumid)) {
        insert_record('interaction_forum_subscription_topic', (object) array('user' => $USER->get('id'), 'topic' => $topicid, 'key' => PluginInteractionForum::generate_unsubscribe_key()));
    }
    db_commit();
    if ($sendnow == 0) {
        $delay = get_config_plugin('interaction', 'forum', 'postdelay');
    } else {
        $delay = 0;
    }
    if (!is_null($delay) && $delay == 0) {
        PluginInteractionForum::interaction_forum_new_post(array($postid));
    }
    $SESSION->add_ok_msg(get_string('addtopicsuccess', 'interaction.forum'));
    redirect('/interaction/forum/topic.php?id=' . $topicid);
}
function addtopic_submit(Pieform $form, $values)
{
    global $USER, $SESSION;
    $forumid = param_integer('forum');
    db_begin();
    $topicid = insert_record('interaction_forum_topic', (object) array('forum' => $forumid, 'sticky' => isset($values['sticky']) && $values['sticky'] ? 1 : 0, 'closed' => isset($values['closed']) && $values['closed'] ? 1 : 0), 'id', true);
    $postid = insert_record('interaction_forum_post', (object) array('topic' => $topicid, 'poster' => $USER->get('id'), 'subject' => $values['subject'], 'body' => $values['body'], 'ctime' => db_format_timestamp(time())), 'id', true);
    if (!record_exists('interaction_forum_subscription_forum', 'user', $USER->get('id'), 'forum', $forumid)) {
        insert_record('interaction_forum_subscription_topic', (object) array('user' => $USER->get('id'), 'topic' => $topicid, 'key' => PluginInteractionForum::generate_unsubscribe_key()));
    }
    db_commit();
    $delay = get_config_plugin('interaction', 'forum', 'postdelay');
    if (!is_null($delay) && $delay == 0) {
        PluginInteractionForum::interaction_forum_new_post(array($postid));
    }
    $SESSION->add_ok_msg(get_string('addtopicsuccess', 'interaction.forum'));
    redirect('/interaction/forum/topic.php?id=' . $topicid);
}