function spa_save_messages_data()
{
    check_admin_referer('forum-adminform_messages', 'forum-adminform_messages');
    # custom message for editor
    $sfpostmsg = array();
    $sfpostmsg['sfpostmsgtext'] = sp_filter_text_save(trim($_POST['sfpostmsgtext']));
    $sfpostmsg['sfpostmsgtopic'] = isset($_POST['sfpostmsgtopic']);
    $sfpostmsg['sfpostmsgpost'] = isset($_POST['sfpostmsgpost']);
    sp_update_option('sfpostmsg', $sfpostmsg);
    sp_update_option('sfeditormsg', sp_filter_text_save(trim($_POST['sfeditormsg'])));
    # if set update, otherwise its empty, so remove
    if ($_POST['sfsneakpeek'] != '') {
        sp_add_sfmeta('sneakpeek', 'message', sp_filter_text_save(trim($_POST['sfsneakpeek'])));
    } else {
        $msg = sp_get_sfmeta('sneakpeek', 'message');
        if (!empty($msg)) {
            sp_delete_sfmeta($msg[0]['meta_id']);
        }
    }
    $sflogin = array();
    $sflogin = sp_get_option('sflogin');
    $sflogin['sfsneakredirect'] = sp_filter_save_cleanurl($_POST['sfsneakredirect']);
    sp_update_option('sflogin', $sflogin);
    # if set update, otherwise its empty, so remove
    if ($_POST['sfadminview'] != '') {
        sp_add_sfmeta('adminview', 'message', sp_filter_text_save(trim($_POST['sfadminview'])));
    } else {
        $msg = sp_get_sfmeta('adminview', 'message');
        if (!empty($msg)) {
            sp_delete_sfmeta($msg[0]['meta_id']);
        }
    }
    # if set update, otherwise its empty, so remove
    if ($_POST['sfuserview'] != '') {
        sp_add_sfmeta('userview', 'message', sp_filter_text_save(trim($_POST['sfuserview'])));
    } else {
        $msg = sp_get_sfmeta('userview', 'message');
        if (!empty($msg)) {
            sp_delete_sfmeta($msg[0]['meta_id']);
        }
    }
    do_action('sph_component_messages_save');
    $mess = spa_text('Custom messages updated');
    return $mess;
}
Ejemplo n.º 2
0
function spa_save_content_data()
{
    check_admin_referer('forum-adminform_content', 'forum-adminform_content');
    $mess = spa_text('Options updated');
    # Save Image resizing
    $sfimage = array();
    $sfimage = sp_get_option('sfimage');
    $sfimage['enlarge'] = isset($_POST['sfimgenlarge']);
    $sfimage['process'] = isset($_POST['process']);
    $sfimage['constrain'] = isset($_POST['constrain']);
    $sfimage['forceclear'] = isset($_POST['forceclear']);
    $thumb = sp_esc_int($_POST['sfthumbsize']);
    if ($thumb < 100) {
        $thumb = 100;
        $mess .= '<br />* ' . spa_text('Image thumbsize reset to minimum 100px');
    }
    $sfimage['thumbsize'] = $thumb;
    $sfimage['style'] = sp_esc_str($_POST['style']);
    sp_update_option('sfimage', $sfimage);
    sp_update_option('sfdates', sp_filter_title_save(trim($_POST['sfdates'])));
    sp_update_option('sftimes', sp_filter_title_save(trim($_POST['sftimes'])));
    # link filters
    $sffilters = array();
    $sffilters['sfnofollow'] = isset($_POST['sfnofollow']);
    $sffilters['sftarget'] = isset($_POST['sftarget']);
    $sffilters['sffilterpre'] = isset($_POST['sffilterpre']);
    $sffilters['sfdupemember'] = isset($_POST['sfdupemember']);
    $sffilters['sfdupeguest'] = isset($_POST['sfdupeguest']);
    $sffilters['sfurlchars'] = sp_esc_int($_POST['sfurlchars']);
    $sffilters['sfmaxlinks'] = sp_esc_int($_POST['sfmaxlinks']);
    if (empty($sffilters['sfmaxlinks'])) {
        $sffilters['sfmaxlinks'] = 0;
    }
    $sffilters['sfmaxsmileys'] = sp_esc_int($_POST['sfmaxsmileys']);
    if (empty($sffilters['sfmaxsmileys'])) {
        $sffilters['sfmaxsmileys'] = 0;
    }
    $sffilters['sfnolinksmsg'] = sp_filter_text_save(trim($_POST['sfnolinksmsg']));
    sp_update_option('sffilters', $sffilters);
    spa_update_check_option('sffiltershortcodes');
    sp_update_option('sfshortcodes', sp_filter_text_save(trim($_POST['sfshortcodes'])));
    do_action('sph_option_content_save');
    return $mess;
}
Ejemplo n.º 3
0
function spa_save_options_data()
{
    check_admin_referer('forum-adminform_options', 'forum-adminform_options');
    $mess = spa_text('Profile options updated');
    $sfprofile = sp_get_option('sfprofile');
    $old_sfprofile = $sfprofile;
    $sfprofile['nameformat'] = isset($_POST['nameformat']);
    $sfprofile['fixeddisplayformat'] = sp_esc_int($_POST['fixeddisplayformat']);
    $sfprofile['displaymode'] = sp_esc_int($_POST['displaymode']);
    $sfprofile['displaypage'] = sp_filter_save_cleanurl($_POST['displaypage']);
    $sfprofile['displayquery'] = sp_filter_title_save(trim($_POST['displayquery']));
    $sfprofile['formmode'] = sp_esc_int($_POST['formmode']);
    $sfprofile['formpage'] = sp_filter_save_cleanurl($_POST['formpage']);
    $sfprofile['formquery'] = sp_filter_title_save(trim($_POST['formquery']));
    $sfprofile['photosmax'] = sp_esc_int($_POST['photosmax']);
    $sfprofile['photoswidth'] = sp_esc_int($_POST['photoswidth']);
    $sfprofile['photosheight'] = sp_esc_int($_POST['photosheight']);
    if ($sfprofile['photosmax'] && $sfprofile['photoswidth'] == 0) {
        $sfprofile['photoswidth'] = 300;
    }
    $sfsigimagesize = array();
    $sfsigimagesize['sfsigwidth'] = sp_esc_int($_POST['sfsigwidth']);
    $sfsigimagesize['sfsigheight'] = sp_esc_int($_POST['sfsigheight']);
    sp_update_option('sfsigimagesize', $sfsigimagesize);
    $sfprofile['firstvisit'] = isset($_POST['firstvisit']);
    $sfprofile['forcepw'] = isset($_POST['forcepw']);
    $sfprofile['sfprofiletext'] = sp_filter_text_save(trim($_POST['sfprofiletext']));
    sp_update_option('sfprofile', $sfprofile);
    # if changed force pw from true to false, remove any users waiting for pw change
    if ($old_sfprofile['forcepw'] && !$sfprofile['forcepw']) {
        delete_metadata('user', 0, 'sp_change_pw', '', true);
    }
    # If the name format changes from dynamic to fixed, we need to update
    # the display_name field for all users based on the selection from the dropdown
    # If there is a conflict between display names, a numeric value will be added to the
    # end of the display name to make them unique.
    # ----------------------------------------------------------------------------------
    if ($old_sfprofile['nameformat'] != $sfprofile['nameformat'] && empty($sfprofile['nameformat']) || $old_sfprofile['fixeddisplayformat'] != $sfprofile['fixeddisplayformat'] && empty($sfprofile['nameformat'])) {
        # The display format determines the WHERE clause and the tables to join.
        # ----------------------------------------------------------------------
        $fields = '';
        $user_join = SFUSERS . ' ON ' . SFMEMBERS . '.user_id = ' . SFUSERS . '.ID';
        $first_name_join = SFUSERMETA . ' a ON (' . SFUSERS . '.ID = a.user_id AND a.meta_key = \'first_name\')';
        $last_name_join = SFUSERMETA . ' b ON (' . SFUSERS . '.ID = b.user_id AND b.meta_key = \'last_name\')';
        # Determine how many passes its going to take to update all users in the system
        # based on 100 users per pass.
        # -----------------------------------------------------------------------------
        $num_records = spdb_count(SFMEMBERS, '');
        $passes = ceil($num_records / 100);
        $dupes = array();
        for ($i = 0; $i <= $passes; $i++) {
            $limit = 100;
            $offset = $i * $limit;
            $fields = SFMEMBERS . '.user_id, ' . SFUSERS . '.user_login, ' . SFUSERS . '.display_name, a.meta_value as first_name, b.meta_value as last_name';
            $join = array($user_join, $first_name_join, $last_name_join);
            $spdb = new spdbComplex();
            $spdb->table = SFMEMBERS;
            $spdb->fields = $fields;
            $spdb->left_join = $join;
            $spdb->limits = $limit . ' OFFSET ' . $offset;
            $spdb->order = SFMEMBERS . '.user_id';
            $spdb = apply_filters('sph_fixeddisplayformat_query', $spdb);
            $records = $spdb->select();
            foreach ($records as $r) {
                switch ($sfprofile['fixeddisplayformat']) {
                    default:
                    case '0':
                        $display_name = $r->display_name;
                        break;
                    case '1':
                        $display_name = $r->user_login;
                        break;
                    case '2':
                        $display_name = $r->first_name;
                        break;
                    case '3':
                        $display_name = $r->last_name;
                        break;
                    case '4':
                        $display_name = $r->first_name . ' ' . $r->last_name;
                        break;
                    case '5':
                        $display_name = $r->last_name . ', ' . $r->first_name;
                        break;
                    case '6':
                        $display_name = $r->first_name[0] . ' ' . $r->last_name;
                        break;
                    case '7':
                        $display_name = $r->first_name . ' ' . $r->last_name[0];
                        break;
                    case '8':
                        $display_name = $r->first_name[0] . $r->last_name[0];
                        break;
                }
                # If the display name is empty for any reason, default to the user login name
                $display_name = trim($display_name);
                if (empty($display_name)) {
                    $display_name = $r->user_login;
                }
                # Check to see if there are any matching users with this display name.  If so
                # assign a random number to the end to eliminate the duplicate
                # ----------------------------------------------------------------------------
                $conflict = spdb_count(SFMEMBERS, 'display_name = "' . $display_name . '" AND user_id <> ' . $r->user_id);
                if ($conflict > 0) {
                    if (array_key_exists($display_name, $dupes)) {
                        $dupes[$display_name]++;
                    } else {
                        $dupes[$display_name] = 1;
                    }
                    $display_name = $display_name . $dupes[$display_name];
                }
                # Now Update the member record
                # ----------------------------
                $display_name = sp_filter_name_save($display_name);
                $query = 'UPDATE ' . SFMEMBERS . ' SET display_name = "' . $display_name . '" WHERE user_id = ' . $r->user_id;
                $result = spdb_query($query);
            }
        }
        # update the recent members in stats too
        sp_update_recent_members();
    }
    do_action('sph_profiles_options_save');
    return $mess;
}
function spa_save_forums_edit_group()
{
    check_admin_referer('forum-adminform_groupedit', 'forum-adminform_groupedit');
    $groupdata = array();
    $group_id = sp_esc_int($_POST['group_id']);
    $groupdata['group_name'] = sp_filter_title_save(trim($_POST['group_name']));
    $groupdata['group_desc'] = sp_filter_text_save(trim($_POST['group_desc']));
    $groupdata['group_message'] = sp_filter_text_save(trim($_POST['group_message']));
    $ug_list = array_unique($_POST['usergroup_id']);
    $perm_list = $_POST['role'];
    if (!empty($_POST['group_icon'])) {
        # Check new icon exists
        $groupdata['group_icon'] = sp_filter_title_save(trim($_POST['group_icon']));
        $path = SFCUSTOMDIR . $groupdata['group_icon'];
        if (!file_exists($path)) {
            $mess = sprintf(spa_text('Custom icon %s does not exist'), $groupdata['group_icon']);
            return $mess;
        }
    } else {
        $groupdata['group_icon'] = null;
    }
    if (isset($_POST['group_rss'])) {
        $groupdata['group_rss'] = sp_filter_save_cleanurl($_POST['group_rss']);
    } else {
        $groupdata['group_rss'] = sp_filter_save_cleanurl($_POST['cgroup_rss']);
    }
    # save the default permissions for the group
    for ($x = 0; $x < count($ug_list); $x++) {
        $ug = sp_esc_int($ug_list[$x]);
        $perm = sp_esc_int($perm_list[$x]);
        if (spa_get_defpermissions_role($group_id, $ug)) {
            $sql = 'UPDATE ' . SFDEFPERMISSIONS . "\n\t\t\t\t\tSET permission_role={$perm}\n\t\t\t\t\tWHERE group_id={$group_id} AND usergroup_id={$ug}";
            spdb_query($sql);
        } else {
            if ($perm != -1) {
                spa_add_defpermission_row($group_id, $ug, $perm);
            }
        }
    }
    if ($groupdata['group_name'] == $_POST['cgroup_name'] && $groupdata['group_desc'] == $_POST['cgroup_desc'] && $groupdata['group_rss'] == $_POST['cgroup_rss'] && $groupdata['group_message'] == $_POST['cgroup_message'] && $groupdata['group_icon'] == $_POST['cgroup_icon']) {
        $mess = spa_text('No data changed');
    } else {
        $sql = 'UPDATE ' . SFGROUPS . ' SET ';
        $sql .= 'group_name="' . $groupdata['group_name'] . '", ';
        $sql .= 'group_desc="' . $groupdata['group_desc'] . '", ';
        $sql .= 'group_icon="' . $groupdata['group_icon'] . '", ';
        $sql .= 'group_rss="' . $groupdata['group_rss'] . '", ';
        $sql .= 'group_message="' . $groupdata['group_message'] . '" ';
        $sql .= "WHERE group_id={$group_id}";
        $success = spdb_query($sql);
        if ($success == false) {
            $mess = spa_text('Group record update failed');
            do_action('sph_forum_group_edit', $group_id);
        } else {
            $mess = spa_text('Forum group record updated');
        }
    }
    # clear out group cache tpo enable change_user
    sp_flush_cache('group');
    return $mess;
}
function sp_ttags_admin_options_save($ops)
{
    $ops['offline_message'] = sp_filter_text_save(trim($_POST['offline_message']));
    return $ops;
}