Beispiel #1
0
function profile_update($profile_new)
{
    global $CFG;
    global $data;
    global $messages;
    global $page_owner;
    global $profile_name;
    $profiledetails = optional_param('profiledetails', array());
    if (count($profiledetails) > 0) {
        delete_records('profile_data', 'owner', $page_owner);
        foreach ($profiledetails as $field => $value) {
            $field = trim($field);
            $value = trim($value);
            if ($value != "") {
                //TODO get rid of variable duplication here. (Penny)
                $access = $_POST['profileaccess'][$field];
                $pd = new StdClass();
                $pd->name = $field;
                $pd->value = $value;
                $pd->access = $access;
                $pd->owner = $page_owner;
                $insert_id = insert_record('profile_data', $pd);
            }
            foreach ($data['profile:details'] as $datatype) {
                if ($datatype[1] == $field && $datatype[2] == "keywords") {
                    delete_records('tags', 'tagtype', $field, 'owner', $page_owner);
                    $value = insert_tags_from_string($value, $field, $insert_id, $access, $page_owner);
                }
            }
        }
        $messages[] = gettext("Profile updated.");
    }
    // Changes saved successfully, update RSS feeds
    $rssresult = run("weblogs:rss:publish", array(1, false));
    $rssresult = run("profile:rss:publish", array(1, false));
    // redirect("{$CFG->wwwroot}{$profile_name}", get_string("changessaved"));
    redirect("{$CFG->wwwroot}{$profile_name}", "");
}
Beispiel #2
0
                            $fp->title = $title;
                            $fp->body = $description;
                            $fp->posted = $posted;
                            $fp->url = $url;
                            $fp->feed = $parameter;
                            $fp->added = $added;
                            insert_record('feed_posts', $fp);
                            if ($weblogs = get_records_select('feed_subscriptions', 'feed_id = ? AND autopost = ?', array($parameter, 'yes'))) {
                                $body = "<p><a href=\"{$url}\">{$url}</a></p> " . $description;
                                foreach ($weblogs as $weblog) {
                                    $wp = new StdClass();
                                    $wp->title = $title;
                                    $wp->body = $body;
                                    $wp->access = 'PUBLIC';
                                    $wp->owner = $weblog->user_id;
                                    $wp->weblog = $weblog->user_id;
                                    $wp->posted = $added;
                                    $id = insert_record('weblog_posts', $wp);
                                    $tags = trim($weblog->autopost_tag);
                                    insert_tags_from_string($tags, 'weblog', $id, 'PUBLIC', $weblog_user_id);
                                    $rssresult = run("weblogs:rss:publish", array($weblog->user_id, false));
                                    $rssresult = run("profile:rss:publish", array($weblog->user_id, false));
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
Beispiel #3
0
     // Edit a folder
 // Edit a folder
 case "edit_folder":
     $f = new StdClass();
     $f->ident = optional_param('edit_folder_id', 0, PARAM_INT);
     $f->name = trim(optional_param('edit_folder_name'));
     $f->access = trim(optional_param('edit_folder_access'));
     $f->parent = optional_param('edit_folder_parent', 0, PARAM_INT);
     if (!empty($f->ident) && !empty($f->name) && !empty($f->access) && !empty($f->parent)) {
         $edit_owner = get_field('file_folders', 'owner', 'ident', $f->ident);
         if (run("permissions:check", array("files:edit", $edit_owner))) {
             if ($f->ident != $f->parent) {
                 update_record('file_folders', $f);
                 delete_records('tags', 'tagtype', 'folder', 'ref', $f->ident);
                 $edit_value = trim(optional_param('edit_folder_keywords'));
                 insert_tags_from_string($edit_value, 'folder', $f->ident, $f->access, $USER->ident);
                 $messages[] = gettext("The folder was edited.");
             } else {
                 $messages[] = gettext("Error: a folder cannot be its own parent.");
             }
         }
     }
     break;
     // Delete a folder
 // Delete a folder
 case "delete_folder":
     $id = optional_param('delete_folder_id', 0, PARAM_INT);
     if (!empty($id) && $id != -1) {
         $folder = get_record('file_folders', 'ident', $id);
         if (!empty($folder) && (run("permissions:check", array("files:edit", $folder->files_owner)) || run("permissions:check", array("files:edit", $folder->owner)))) {
             $files_username = run("users:id_to_name", $folder->files_owner);
<?php

// Action parser for profiles
global $page_owner;
$page_owner = (int) $page_owner;
if (isset($_POST['action']) && $_POST['action'] == "profile:edit" && logged_on && run("permissions:check", "profile")) {
    if (isset($_POST['profiledetails'])) {
        delete_records('profile_data', 'owner', $page_owner);
        foreach ($_POST['profiledetails'] as $field => $value) {
            $value = trim($value);
            if ($value != "") {
                //TODO get rid of variable duplication here. (Penny)
                $access = trim($_POST['profileaccess'][$field]);
                $owner = (int) $page_owner;
                $pd = new StdClass();
                $pd->name = $field;
                $pd->value = $value;
                $pd->access = $access;
                $pd->owner = $page_owner;
                $insert_id = insert_record('profile_data', $pd);
                foreach ($data['profile:details'] as $datatype) {
                    if ($datatype[1] == $field && $datatype[2] == "keywords") {
                        delete_records('tags', 'tagtype', $field, 'owner', $page_owner);
                        $value = insert_tags_from_string($value, $field, $insert_id, $access, $page_owner);
                    }
                }
            }
        }
        $messages[] = gettext("Profile updated.");
    }
}
Beispiel #5
0
function profile_update($profile_new)
{
    global $CFG;
    global $data;
    global $messages;
    global $page_owner;
    global $profile_name;
    $profiledetails = optional_param('profiledetails', array());
    if (count($profiledetails) > 0) {
        // delete_records('profile_data','owner',$page_owner);
        $insertvalues = array();
        $requiredmissing = array();
        foreach ($profiledetails as $field => $value) {
            $field = trim($field);
            $value = trim($value);
            if (!empty($value)) {
                //TODO get rid of variable duplication here. (Penny)
                if (!empty($data['profile:details'][$field]->invisible)) {
                    $access = 'user' . $page_owner;
                } else {
                    $access = $_POST['profileaccess'][$field];
                }
                $pd = new StdClass();
                $pd->name = $field;
                $pd->value = $value;
                $pd->access = $access;
                $pd->owner = $page_owner;
                // $insert_id  = insert_record('profile_data',$pd);
                $insertvalues[] = $pd;
            } else {
                foreach ($data['profile:details'] as $datatype) {
                    if (is_array($datatype)) {
                        $fname = !empty($datatype[1]) ? $datatype[1] : '';
                        $flabel = !empty($field[0]) ? $field[0] : '';
                        $frequired = false;
                        $fcat = __gettext("Main");
                        // Otherwise map things the new way!
                    } else {
                        $fname = $datatype->internal_name;
                        $flabel = $datatype->name;
                        $frequired = $datatype->required;
                        if (empty($datatype->category)) {
                            $fcat = __gettext("Main");
                        } else {
                            $fcat = $datatype->category;
                        }
                    }
                    if ($fname == $field) {
                        if ($frequired == true) {
                            $requiredmissing[] = sprintf(__gettext("%s (in category %s)"), $flabel, $fcat);
                        } else {
                            delete_records('profile_data', 'owner', $page_owner, 'name', $fname);
                        }
                    }
                }
            }
        }
        if (sizeof($requiredmissing) == 0) {
            $updatedok = true;
            foreach ($insertvalues as $insertvalue) {
                delete_records('profile_data', 'owner', $page_owner, 'name', $insertvalue->name);
                $insertvalue = plugin_hook("profile_data", "create", $insertvalue);
                if (!empty($insertvalue)) {
                    $insert_id = insert_record('profile_data', $insertvalue);
                    $insertvalue->ident = $insert_id;
                    plugin_hook("profile_data", "publish", $insertvalue);
                    foreach ($data['profile:details'] as $datatype) {
                        if (is_array($datatype)) {
                            $fname = !empty($datatype[1]) ? $datatype[1] : '';
                            $ftype = !empty($datatype[2]) ? $datatype[2] : '';
                            // Otherwise map things the new way!
                        } else {
                            $fname = $datatype->internal_name;
                            $ftype = $datatype->field_type;
                        }
                        if ($fname == $insertvalue->name && $ftype == "keywords") {
                            delete_records('tags', 'tagtype', $insertvalue->name, 'owner', $page_owner);
                            $value = insert_tags_from_string($insertvalue->value, $insertvalue->name, $insert_id, $insertvalue->access, $page_owner);
                        }
                        if (isset($CFG->display_field_module[$ftype])) {
                            $callback = $CFG->display_field_module[$ftype] . "_validate_input_field";
                            $updatedok = $callback($insertvalue);
                        }
                    }
                }
            }
            $messages[] = __gettext("Profile updated.");
        } else {
            $savedata = array();
            foreach ($insertvalues as $insertvalue) {
                $savedata['profile:preload'][$insertvalue->name] = $insertvalue->value;
                $savedata['profile:preload:access'][$insertvalue->name] = $insertvalue->access;
            }
            foreach ($requiredmissing as $key => $missinglabel) {
                $message = "";
                if ($key > 0) {
                    $message .= ", ";
                }
                $message .= $missinglabel;
            }
            $messages[] = sprintf(__gettext("You need to fill in the following required fields: %s"), $message);
            $updatedok = false;
            $_SESSION['profile:preload'] = $savedata['profile:preload'];
            $_SESSION['profile:preload:access'] = $savedata['profile:preload:access'];
        }
    }
    // Changes saved successfully, update RSS feeds
    $rssresult = run("weblogs:rss:publish", array(1, false));
    $rssresult = run("profile:rss:publish", array(1, false));
    $_SESSION['messages'] = $messages;
    // redirect("{$CFG->wwwroot}{$profile_name}", get_string("changessaved"));
    if ($updatedok) {
        redirect("{$CFG->wwwroot}{$profile_name}/profile/", "");
    } else {
        redirect("{$CFG->wwwroot}profile/edit.php?profile_id=" . $page_owner, "");
    }
}
         $exists = false;
         if ($oldpost = get_record('weblog_posts', 'ident', $post->ident)) {
             if (run("permissions:check", array("weblog:edit", $oldpost->owner, $oldpost->weblog))) {
                 $exists = true;
             }
         }
         if (!empty($exists)) {
             $post->posted = $oldpost->posted;
             $post->owner = $oldpost->owner;
             $post->weblog = $oldpost->weblog;
             $post = plugin_hook("weblog_post", "update", $post);
             if (!empty($post)) {
                 update_record('weblog_posts', $post);
                 delete_records('tags', 'tagtype', 'weblog', 'ref', $post->ident);
                 $value = trim(optional_param('edit_weblog_keywords'));
                 insert_tags_from_string($value, 'weblog', $post->ident, $post->access, $oldpost->owner);
                 $post = get_record('weblog_posts', 'ident', $post->ident);
                 $extra_value = trim(optional_param('new_weblog_extra'));
                 $post->extra_value = $extra_value;
                 $post = plugin_hook("weblog_post", "republish", $post);
                 $rssresult = run("weblogs:rss:publish", array($oldpost->weblog, false));
                 $rssresult = run("profile:rss:publish", array($oldpost->weblog, false));
                 $messages[] = __gettext("The weblog post has been modified.");
                 // gettext variable
             }
         }
         define('redirect_url', url . user_info("username", $page_owner) . "/{$extensionContext}/" . $post->ident . ".html");
     }
     break;
     //Mark a weblog post as interesting
 //Mark a weblog post as interesting