当前位置: 首页>>代码示例>>PHP>>正文


PHP perms2str函数代码示例

本文整理汇总了PHP中perms2str函数的典型用法代码示例。如果您正苦于以下问题:PHP perms2str函数的具体用法?PHP perms2str怎么用?PHP perms2str使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了perms2str函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: chat_post

function chat_post(&$a)
{
    if ($_POST['room_name']) {
        $room = strip_tags(trim($_POST['room_name']));
    }
    if (!$room || !local_channel()) {
        return;
    }
    $channel = $a->get_channel();
    if ($_POST['action'] === 'drop') {
        logger('delete chatroom');
        chatroom_destroy($channel, array('cr_name' => $room));
        goaway(z_root() . '/chat/' . $channel['channel_address']);
    }
    $arr = array('name' => $room);
    $arr['allow_gid'] = perms2str($_REQUEST['group_allow']);
    $arr['allow_cid'] = perms2str($_REQUEST['contact_allow']);
    $arr['deny_gid'] = perms2str($_REQUEST['group_deny']);
    $arr['deny_cid'] = perms2str($_REQUEST['contact_deny']);
    chatroom_create($channel, $arr);
    $x = q("select cr_id from chatroom where cr_name = '%s' and cr_uid = %d limit 1", dbesc($room), intval(local_channel()));
    if ($x) {
        goaway(z_root() . '/chat/' . $channel['channel_address'] . '/' . $x[0]['cr_id']);
    }
    // that failed. Try again perhaps?
    goaway(z_root() . '/chat/' . $channel['channel_address'] . '/new');
}
开发者ID:redmatrix,项目名称:red,代码行数:27,代码来源:chat.php

示例2: filestorage_post

/**
 *
 * @param object &$a
 */
function filestorage_post(&$a)
{
    $channel_id = x($_POST, 'uid') ? intval($_POST['uid']) : 0;
    if (!$channel_id || !local_channel() || $channel_id != local_channel()) {
        notice(t('Permission denied.') . EOL);
        return;
    }
    $recurse = x($_POST, 'recurse') ? intval($_POST['recurse']) : 0;
    $resource = x($_POST, 'filehash') ? notags($_POST['filehash']) : '';
    $notify = x($_POST, 'notify') ? intval($_POST['notify']) : 0;
    if (!$resource) {
        notice(t('Item not found.') . EOL);
        return;
    }
    $str_group_allow = perms2str($_REQUEST['group_allow']);
    $str_contact_allow = perms2str($_REQUEST['contact_allow']);
    $str_group_deny = perms2str($_REQUEST['group_deny']);
    $str_contact_deny = perms2str($_REQUEST['contact_deny']);
    $channel = $a->get_channel();
    $cloudPath = get_parent_cloudpath($channel_id, $channel['channel_address'], $resource);
    //get the object before permissions change so we can catch eventual former allowed members
    $object = get_file_activity_object($channel_id, $resource, $cloudPath);
    attach_change_permissions($channel_id, $resource, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny, $recurse);
    file_activity($channel_id, $object, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny, 'post', $notify);
    goaway($cloudPath);
}
开发者ID:HaakonME,项目名称:redmatrix,代码行数:30,代码来源:filestorage.php

示例3: post

 function post()
 {
     // logger('file upload: ' . print_r($_REQUEST,true));
     $channel = $_REQUEST['channick'] ? get_channel_by_nick($_REQUEST['channick']) : null;
     if (!$channel) {
         logger('channel not found');
         killme();
     }
     $_REQUEST['source'] = 'file_upload';
     if ($channel['channel_id'] != local_channel()) {
         $_REQUEST['contact_allow'] = expand_acl($channel['channel_allow_cid']);
         $_REQUEST['group_allow'] = expand_acl($channel['channel_allow_gid']);
         $_REQUEST['contact_deny'] = expand_acl($channel['channel_deny_cid']);
         $_REQUEST['group_deny'] = expand_acl($channel['channel_deny_gid']);
     }
     if ($_REQUEST['filename']) {
         $_REQUEST['allow_cid'] = perms2str($_REQUEST['contact_allow']);
         $_REQUEST['allow_gid'] = perms2str($_REQUEST['group_allow']);
         $_REQUEST['deny_cid'] = perms2str($_REQUEST['contact_deny']);
         $_REQUEST['deny_gid'] = perms2str($_REQUEST['group_deny']);
         $r = attach_mkdir($channel, get_observer_hash(), $_REQUEST);
     } else {
         $r = attach_store($channel, get_observer_hash(), '', $_REQUEST);
     }
     goaway(z_root() . '/' . $_REQUEST['return_url']);
 }
开发者ID:BlaBlaNet,项目名称:hubzilla,代码行数:26,代码来源:File_upload.php

示例4: set_from_array

 /**
  * Set AccessList from arrays, such as those provided by
  * acl_selector(). For convenience, a string (or non-array) input is 
  * assumed to be a comma-separated list and auto-converted into an array. 
  */
 function set_from_array($arr, $explicit = true)
 {
     $this->allow_cid = perms2str(is_array($arr['contact_allow']) ? $arr['contact_allow'] : explode(',', $arr['contact_allow']));
     $this->allow_gid = perms2str(is_array($arr['group_allow']) ? $arr['group_allow'] : explode(',', $arr['group_allow']));
     $this->deny_cid = perms2str(is_array($arr['contact_deny']) ? $arr['contact_deny'] : explode(',', $arr['contact_deny']));
     $this->deny_gid = perms2str(is_array($arr['group_deny']) ? $arr['group_deny'] : explode(',', $arr['group_deny']));
     $this->explicit = $explicit;
 }
开发者ID:BlaBlaNet,项目名称:hubzilla,代码行数:13,代码来源:AccessList.php

示例5: filestorage_post

function filestorage_post(&$a)
{
    $channel_id = x($_POST, 'uid') ? intval($_POST['uid']) : 0;
    if (!$channel_id || !local_user() || $channel_id != local_user()) {
        notice(t('Permission denied.') . EOL);
        return;
    }
    $recurse = x($_POST, 'recurse') ? intval($_POST['recurse']) : 0;
    $resource = x($_POST, 'filehash') ? notags($_POST['filehash']) : '';
    if (!$resource) {
        notice(t('Item not found.') . EOL);
        return;
    }
    $str_group_allow = perms2str($_REQUEST['group_allow']);
    $str_contact_allow = perms2str($_REQUEST['contact_allow']);
    $str_group_deny = perms2str($_REQUEST['group_deny']);
    $str_contact_deny = perms2str($_REQUEST['contact_deny']);
    attach_change_permissions($channel_id, $resource, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny, $recurse = false);
    //Build directory tree and redirect
    $channel = $a->get_channel();
    $cloudPath = get_parent_cloudpath($channel_id, $channel['channel_address'], $resource);
    goaway($cloudPath);
}
开发者ID:Mauru,项目名称:red,代码行数:23,代码来源:filestorage.php

示例6: settings_post


//.........这里部分代码省略.........
        }
    }
    if ($email != $a->user['email']) {
        $email_changed = true;
        //  check for the correct password
        $r = q("SELECT `password` FROM `user`WHERE `uid` = %d LIMIT 1", intval(local_user()));
        $password = hash('whirlpool', $_POST['mpassword']);
        if ($password != $r[0]['password']) {
            $err .= t('Wrong Password') . EOL;
            $email = $a->user['email'];
        }
        //  check the email is valid
        if (!valid_email($email)) {
            $err .= t(' Not valid email.');
        }
        //  ensure new email is not the admin mail
        //if((x($a->config,'admin_email')) && (strcasecmp($email,$a->config['admin_email']) == 0)) {
        if (x($a->config, 'admin_email')) {
            $adminlist = explode(",", str_replace(" ", "", strtolower($a->config['admin_email'])));
            if (in_array(strtolower($email), $adminlist)) {
                $err .= t(' Cannot change to that email.');
                $email = $a->user['email'];
            }
        }
    }
    if (strlen($err)) {
        notice($err . EOL);
        return;
    }
    if ($timezone != $a->user['timezone']) {
        if (strlen($timezone)) {
            date_default_timezone_set($timezone);
        }
    }
    $str_group_allow = perms2str($_POST['group_allow']);
    $str_contact_allow = perms2str($_POST['contact_allow']);
    $str_group_deny = perms2str($_POST['group_deny']);
    $str_contact_deny = perms2str($_POST['contact_deny']);
    $openidserver = $a->user['openidserver'];
    $openid = normalise_openid($openid);
    // If openid has changed or if there's an openid but no openidserver, try and discover it.
    if ($openid != $a->user['openid'] || strlen($openid) && !strlen($openidserver)) {
        $tmp_str = $openid;
        if (strlen($tmp_str) && validate_url($tmp_str)) {
            logger('updating openidserver');
            require_once 'library/openid.php';
            $open_id_obj = new LightOpenID();
            $open_id_obj->identity = $openid;
            $openidserver = $open_id_obj->discover($open_id_obj->identity);
        } else {
            $openidserver = '';
        }
    }
    set_pconfig(local_user(), 'expire', 'items', $expire_items);
    set_pconfig(local_user(), 'expire', 'notes', $expire_notes);
    set_pconfig(local_user(), 'expire', 'starred', $expire_starred);
    set_pconfig(local_user(), 'expire', 'photos', $expire_photos);
    set_pconfig(local_user(), 'expire', 'network_only', $expire_network_only);
    set_pconfig(local_user(), 'system', 'suggestme', $suggestme);
    set_pconfig(local_user(), 'system', 'post_newfriend', $post_newfriend);
    set_pconfig(local_user(), 'system', 'post_joingroup', $post_joingroup);
    set_pconfig(local_user(), 'system', 'post_profilechange', $post_profilechange);
    set_pconfig(local_user(), 'system', 'email_textonly', $email_textonly);
    if ($page_flags == PAGE_PRVGROUP) {
        $hidewall = 1;
        if (!$str_contact_allow && !$str_group_allow && !$str_contact_deny && !$str_group_deny) {
            if ($def_gid) {
                info(t('Private forum has no privacy permissions. Using default privacy group.') . EOL);
                $str_group_allow = '<' . $def_gid . '>';
            } else {
                notice(t('Private forum has no privacy permissions and no default privacy group.') . EOL);
            }
        }
    }
    $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `openid` = '%s', `timezone` = '%s',  `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `page-flags` = %d, `default-location` = '%s', `allow_location` = %d, `maxreq` = %d, `expire` = %d, `openidserver` = '%s', `def_gid` = %d, `blockwall` = %d, `hidewall` = %d, `blocktags` = %d, `unkmail` = %d, `cntunkmail` = %d  WHERE `uid` = %d", dbesc($username), dbesc($email), dbesc($openid), dbesc($timezone), dbesc($str_contact_allow), dbesc($str_group_allow), dbesc($str_contact_deny), dbesc($str_group_deny), intval($notify), intval($page_flags), dbesc($defloc), intval($allow_location), intval($maxreq), intval($expire), dbesc($openidserver), intval($def_gid), intval($blockwall), intval($hidewall), intval($blocktags), intval($unkmail), intval($cntunkmail), intval(local_user()));
    if ($r) {
        info(t('Settings updated.') . EOL);
    }
    $r = q("UPDATE `profile`\n\t\tSET `publish` = %d,\n\t\t`name` = '%s',\n\t\t`net-publish` = %d,\n\t\t`hide-friends` = %d\n\t\tWHERE `is-default` = 1 AND `uid` = %d", intval($publish), dbesc($username), intval($net_publish), intval($hide_friends), intval(local_user()));
    if ($name_change) {
        q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s' WHERE `uid` = %d AND `self` = 1", dbesc($username), dbesc(datetime_convert()), intval(local_user()));
    }
    if ($old_visibility != $net_publish || $page_flags != $old_page_flags) {
        // Update global directory in background
        $url = $_SESSION['my_url'];
        if ($url && strlen(get_config('system', 'directory_submit_url'))) {
            proc_run('php', "include/directory.php", "{$url}");
        }
    }
    require_once 'include/profile_update.php';
    profile_change();
    //$_SESSION['theme'] = $theme;
    if ($email_changed && $a->config['register_policy'] == REGISTER_VERIFY) {
        // FIXME - set to un-verified, blocked and redirect to logout
        // Why? Are we verifying people or email addresses?
    }
    goaway($a->get_baseurl(true) . '/settings');
    return;
    // NOTREACHED
}
开发者ID:strk,项目名称:friendica,代码行数:101,代码来源:settings.php

示例7: settings_post


//.........这里部分代码省略.........
            if ($adm && strcasecmp($email, $adm) == 0) {
                $errs[] = t('Protected email address. Cannot change to that email.');
                $email = $a->user['email'];
            }
            if (!$errs) {
                $r = q("update account set account_email = '%s' where account_id = %d", dbesc($email), intval($account['account_id']));
                if (!$r) {
                    $errs[] = t('System failure storing new email. Please try again.');
                }
            }
        }
        if ($errs) {
            foreach ($errs as $err) {
                notice($err . EOL);
            }
        }
        goaway($a->get_baseurl(true) . '/settings/account');
    }
    check_form_security_token_redirectOnErr('/settings', 'settings');
    call_hooks('settings_post', $_POST);
    $set_perms = '';
    $role = x($_POST, 'permissions_role') ? notags(trim($_POST['permissions_role'])) : '';
    $oldrole = get_pconfig(local_channel(), 'system', 'permissions_role');
    if ($role != $oldrole || $role === 'custom') {
        if ($role === 'custom') {
            $hide_presence = x($_POST, 'hide_presence') && intval($_POST['hide_presence']) == 1 ? 1 : 0;
            $publish = x($_POST, 'profile_in_directory') && intval($_POST['profile_in_directory']) == 1 ? 1 : 0;
            $def_group = x($_POST, 'group-selection') ? notags(trim($_POST['group-selection'])) : '';
            $r = q("update channel set channel_default_group = '%s' where channel_id = %d", dbesc($def_group), intval(local_channel()));
            $global_perms = get_perms();
            foreach ($global_perms as $k => $v) {
                $set_perms .= ', ' . $v[0] . ' = ' . intval($_POST[$k]) . ' ';
            }
            $str_group_allow = perms2str($_POST['group_allow']);
            $str_contact_allow = perms2str($_POST['contact_allow']);
            $str_group_deny = perms2str($_POST['group_deny']);
            $str_contact_deny = perms2str($_POST['contact_deny']);
            $r = q("update channel set channel_allow_cid = '%s', channel_allow_gid = '%s', channel_deny_cid = '%s', channel_deny_gid = '%s'\n\t\t\t\twhere channel_id = %d", dbesc($str_contact_allow), dbesc($str_group_allow), dbesc($str_contact_deny), dbesc($str_group_deny), intval(local_channel()));
        } else {
            $role_permissions = get_role_perms($_POST['permissions_role']);
            if (!$role_permissions) {
                notice('Permissions category could not be found.');
                return;
            }
            $hide_presence = 1 - intval($role_permissions['online']);
            if ($role_permissions['default_collection']) {
                $r = q("select hash from groups where uid = %d and name = '%s' limit 1", intval(local_channel()), dbesc(t('Friends')));
                if (!$r) {
                    require_once 'include/group.php';
                    group_add(local_channel(), t('Friends'));
                    group_add_member(local_channel(), t('Friends'), $channel['channel_hash']);
                    $r = q("select hash from groups where uid = %d and name = '%s' limit 1", intval(local_channel()), dbesc(t('Friends')));
                }
                if ($r) {
                    q("update channel set channel_default_group = '%s', channel_allow_gid = '%s', channel_allow_cid = '', channel_deny_gid = '', channel_deny_cid = '' where channel_id = %d", dbesc($r[0]['hash']), dbesc('<' . $r[0]['hash'] . '>'), intval(local_channel()));
                } else {
                    notice(sprintf('Default privacy collection \'%s\' not found. Please create and re-submit permission change.', t('Friends')) . EOL);
                    return;
                }
            } else {
                q("update channel set channel_default_group = '', channel_allow_gid = '', channel_allow_cid = '', channel_deny_gid = '', \n\t\t\t\t\tchannel_deny_cid = '' where channel_id = %d", intval(local_channel()));
            }
            $r = q("update abook set abook_my_perms  = %d where abook_channel = %d and (abook_flags & %d)>0", intval($role_permissions['perms_auto'] ? intval($role_permissions['perms_accept']) : 0), intval(local_channel()), intval(ABOOK_FLAG_SELF));
            set_pconfig(local_channel(), 'system', 'autoperms', $role_permissions['perms_auto'] ? intval($role_permissions['perms_accept']) : 0);
            foreach ($role_permissions as $p => $v) {
                if (strpos($p, 'channel_') !== false) {
开发者ID:HaakonME,项目名称:redmatrix,代码行数:67,代码来源:settings.php

示例8: item_post


//.........这里部分代码省略.........
            goaway($a->get_baseurl() . "/" . $return_path);
        }
        killme();
    }
    // is this an edited post?
    $orig_post = null;
    if ($post_id) {
        $i = q("SELECT * FROM `item` WHERE `uid` = %d AND `id` = %d LIMIT 1", intval($profile_uid), intval($post_id));
        if (!count($i)) {
            killme();
        }
        $orig_post = $i[0];
    }
    $user = null;
    $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($profile_uid));
    if (count($r)) {
        $user = $r[0];
    }
    if ($orig_post) {
        $str_group_allow = $orig_post['allow_gid'];
        $str_contact_allow = $orig_post['allow_cid'];
        $str_group_deny = $orig_post['deny_gid'];
        $str_contact_deny = $orig_post['deny_cid'];
        $title = $orig_post['title'];
        $location = $orig_post['location'];
        $coord = $orig_post['coord'];
        $verb = $orig_post['verb'];
        $emailcc = $orig_post['emailcc'];
        $app = $orig_post['app'];
        $body = escape_tags(trim($_POST['body']));
        $private = $orig_post['private'];
        $pubmail_enable = $orig_post['pubmail'];
    } else {
        $str_group_allow = perms2str($_POST['group_allow']);
        $str_contact_allow = perms2str($_POST['contact_allow']);
        $str_group_deny = perms2str($_POST['group_deny']);
        $str_contact_deny = perms2str($_POST['contact_deny']);
        $title = notags(trim($_POST['title']));
        $location = notags(trim($_POST['location']));
        $coord = notags(trim($_POST['coord']));
        $verb = notags(trim($_POST['verb']));
        $emailcc = notags(trim($_POST['emailcc']));
        $body = escape_tags(trim($_POST['body']));
        $private = strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny) ? 1 : 0;
        if ($parent_item && ($parent_item['private'] || strlen($parent_item['allow_cid']) || strlen($parent_item['allow_gid']) || strlen($parent_item['deny_cid']) || strlen($parent_item['deny_gid']))) {
            $private = 1;
        }
        $pubmail_enable = x($_POST, 'pubmail_enable') && intval($_POST['pubmail_enable']) && !$private ? 1 : 0;
        // if using the API, we won't see pubmail_enable - figure out if it should be set
        if ($api_source && $profile_uid && $profile_uid == local_user() && !$private) {
            $mail_disabled = function_exists('imap_open') && !get_config('system', 'imap_disabled') ? 0 : 1;
            if (!$mail_disabled) {
                $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d AND `server` != '' LIMIT 1", intval(local_user()));
                if (count($r) && intval($r[0]['pubmail'])) {
                    $pubmail_enabled = true;
                }
            }
        }
        if (!strlen($body)) {
            info(t('Empty post discarded.') . EOL);
            if (x($_POST, 'return')) {
                goaway($a->get_baseurl() . "/" . $return_path);
            }
            killme();
        }
    }
开发者ID:nphyx,项目名称:friendica,代码行数:67,代码来源:item.php

示例9: photos_post


//.........这里部分代码省略.........
        }
        goaway($a->get_baseurl() . '/photos/' . $a->data['user']['nickname']);
        return;
        // NOTREACHED
    }
    if ($a->argc > 2 && x($_POST, 'delete') && $_POST['delete'] == t('Delete Photo')) {
        // same as above but remove single photo
        if ($visitor) {
            $r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d AND `resource-id` = '%s' LIMIT 1", intval($visitor), intval($page_owner_uid), dbesc($a->argv[2]));
        } else {
            $r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' LIMIT 1", intval(local_user()), dbesc($a->argv[2]));
        }
        if (count($r)) {
            q("DELETE FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s'", intval($page_owner_uid), dbesc($r[0]['resource-id']));
            $i = q("SELECT * FROM `item` WHERE `resource-id` = '%s' AND `uid` = %d LIMIT 1", dbesc($r[0]['resource-id']), intval($page_owner_uid));
            if (count($i)) {
                q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s' WHERE `parent-uri` = '%s' AND `uid` = %d", dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc($i[0]['uri']), intval($page_owner_uid));
                $url = $a->get_baseurl();
                $drop_id = intval($i[0]['id']);
                if ($i[0]['visible']) {
                    proc_run('php', "include/notifier.php", "drop", "{$drop_id}");
                }
            }
        }
        goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
        return;
        // NOTREACHED
    }
    if ($a->argc > 2 && (x($_POST, 'desc') !== false || x($_POST, 'newtag') !== false) || x($_POST, 'albname') !== false) {
        $desc = x($_POST, 'desc') ? notags(trim($_POST['desc'])) : '';
        $rawtags = x($_POST, 'newtag') ? notags(trim($_POST['newtag'])) : '';
        $item_id = x($_POST, 'item_id') ? intval($_POST['item_id']) : 0;
        $albname = x($_POST, 'albname') ? notags(trim($_POST['albname'])) : '';
        $str_group_allow = perms2str($_POST['group_allow']);
        $str_contact_allow = perms2str($_POST['contact_allow']);
        $str_group_deny = perms2str($_POST['group_deny']);
        $str_contact_deny = perms2str($_POST['contact_deny']);
        $resource_id = $a->argv[2];
        if (!strlen($albname)) {
            $albname = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y');
        }
        if (x($_POST, 'rotate') !== false && intval($_POST['rotate']) == 1) {
            logger('rotate');
            $r = q("select * from photo where `resource-id` = '%s' and uid = %d and scale = 0 limit 1", dbesc($resource_id), intval($page_owner_uid));
            if (count($r)) {
                $ph = new Photo($r[0]['data']);
                if ($ph->is_valid()) {
                    $ph->rotate(270);
                    $width = $ph->getWidth();
                    $height = $ph->getHeight();
                    $x = q("update photo set data = '%s', height = %d, width = %d where `resource-id` = '%s' and uid = %d and scale = 0 limit 1", dbesc($ph->imageString()), intval($height), intval($width), dbesc($resource_id), intval($page_owner_uid));
                    if ($width > 640 || $height > 640) {
                        $ph->scaleImage(640);
                        $width = $ph->getWidth();
                        $height = $ph->getHeight();
                        $x = q("update photo set data = '%s', height = %d, width = %d where `resource-id` = '%s' and uid = %d and scale = 1 limit 1", dbesc($ph->imageString()), intval($height), intval($width), dbesc($resource_id), intval($page_owner_uid));
                    }
                    if ($width > 320 || $height > 320) {
                        $ph->scaleImage(320);
                        $width = $ph->getWidth();
                        $height = $ph->getHeight();
                        $x = q("update photo set data = '%s', height = %d, width = %d where `resource-id` = '%s' and uid = %d and scale = 2 limit 1", dbesc($ph->imageString()), intval($height), intval($width), dbesc($resource_id), intval($page_owner_uid));
                    }
                }
            }
        }
开发者ID:robhell,项目名称:friendica,代码行数:67,代码来源:photos.php

示例10: file_activity


//.........这里部分代码省略.........
        $folder_hash = $object['folder'];
        $r_perms = recursive_activity_recipients($arr_allow_cid, $arr_allow_gid, $arr_deny_cid, $arr_deny_gid, $folder_hash);
        //split up returned perms
        $arr_allow_cid = $r_perms['allow_cid'];
        $arr_allow_gid = $r_perms['allow_gid'];
        $arr_deny_cid = $r_perms['deny_cid'];
        $arr_deny_gid = $r_perms['deny_gid'];
        //filter out receivers which do not have permission to view filestorage
        $arr_allow_cid = check_list_permissions($channel_id, $arr_allow_cid, 'view_storage');
    }
    $mid = item_message_id();
    $arr = array();
    $arr['item_wall'] = 1;
    $arr['item_origin'] = 1;
    $arr['item_unseen'] = 1;
    $objtype = ACTIVITY_OBJ_FILE;
    $private = $arr_allow_cid[0] || $arr_allow_gid[0] || $arr_deny_cid[0] || $arr_deny_gid[0] ? 1 : 0;
    $jsonobject = json_encode($object);
    //check if item for this object exists
    $y = q("SELECT mid FROM item WHERE verb = '%s' AND obj_type = '%s' AND resource_id = '%s' AND uid = %d LIMIT 1", dbesc(ACTIVITY_POST), dbesc($objtype), dbesc($object['hash']), intval(local_channel()));
    if ($y) {
        $update = true;
        $object['d_mid'] = $y[0]['mid'];
        //attach mid of the old object
        $u_jsonobject = json_encode($object);
        //we have got the relevant info - delete the old item before we create the new one
        $z = q("DELETE FROM item WHERE obj_type = '%s' AND verb = '%s' AND mid = '%s'", dbesc(ACTIVITY_OBJ_FILE), dbesc(ACTIVITY_POST), dbesc($y[0]['mid']));
    }
    if ($update && $verb == 'post') {
        //send update activity and create a new one
        //updates should be sent to everybody with recursive perms and all eventual former allowed members ($object['allow_cid'] etc.).
        $u_arr_allow_cid = array_unique(array_merge($arr_allow_cid, expand_acl($object['allow_cid'])));
        $u_arr_allow_gid = array_unique(array_merge($arr_allow_gid, expand_acl($object['allow_gid'])));
        $u_arr_deny_cid = array_unique(array_merge($arr_deny_cid, expand_acl($object['deny_cid'])));
        $u_arr_deny_gid = array_unique(array_merge($arr_deny_gid, expand_acl($object['deny_gid'])));
        $u_mid = item_message_id();
        $arr['aid'] = get_account_id();
        $arr['uid'] = $channel_id;
        $arr['mid'] = $u_mid;
        $arr['parent_mid'] = $u_mid;
        $arr['author_xchan'] = $poster['xchan_hash'];
        $arr['owner_xchan'] = $poster['xchan_hash'];
        $arr['title'] = '';
        //updates should be visible to everybody -> perms may have changed
        $arr['allow_cid'] = '';
        $arr['allow_gid'] = '';
        $arr['deny_cid'] = '';
        $arr['deny_gid'] = '';
        $arr['item_hidden'] = 1;
        $arr['item_private'] = 0;
        $arr['verb'] = ACTIVITY_UPDATE;
        $arr['obj_type'] = $objtype;
        $arr['object'] = $u_jsonobject;
        $arr['resource_id'] = $object['hash'];
        $arr['resource_type'] = 'attach';
        $arr['body'] = '';
        $post = item_store($arr);
        $item_id = $post['item_id'];
        if ($item_id) {
            proc_run('php', "include/notifier.php", "activity", $item_id);
        }
        call_hooks('post_local_end', $arr);
        $update = false;
        //notice( t('File activity updated') . EOL);
    }
    if (!$notify) {
        return;
    }
    $arr = array();
    $arr['aid'] = get_account_id();
    $arr['uid'] = $channel_id;
    $arr['mid'] = $mid;
    $arr['parent_mid'] = $mid;
    $arr['item_wall'] = 1;
    $arr['item_origin'] = 1;
    $arr['item_unseen'] = 1;
    $arr['author_xchan'] = $poster['xchan_hash'];
    $arr['owner_xchan'] = $poster['xchan_hash'];
    $arr['title'] = '';
    $arr['allow_cid'] = perms2str($arr_allow_cid);
    $arr['allow_gid'] = perms2str($arr_allow_gid);
    $arr['deny_cid'] = perms2str($arr_deny_cid);
    $arr['deny_gid'] = perms2str($arr_deny_gid);
    $arr['item_hidden'] = 1;
    $arr['item_private'] = $private;
    $arr['verb'] = $update ? ACTIVITY_UPDATE : ACTIVITY_POST;
    $arr['obj_type'] = $objtype;
    $arr['resource_id'] = $object['hash'];
    $arr['resource_type'] = 'attach';
    $arr['object'] = $update ? $u_jsonobject : $jsonobject;
    $arr['body'] = '';
    $post = item_store($arr);
    $item_id = $post['item_id'];
    if ($item_id) {
        proc_run('php', "include/notifier.php", "activity", $item_id);
    }
    call_hooks('post_local_end', $arr);
    //(($verb === 'post') ?  notice( t('File activity posted') . EOL) : notice( t('File activity dropped') . EOL));
    return;
}
开发者ID:spthaolt,项目名称:hubzilla,代码行数:101,代码来源:attach.php

示例11: events_post


//.........这里部分代码省略.........
    linkify_tags($a, $location, local_channel());
    $action = $event_hash == '' ? 'new' : "event/" . $event_hash;
    $onerror_url = $a->get_baseurl() . "/events/" . $action . "?summary={$summary}&description={$desc}&location={$location}&start={$start_text}&finish={$finish_text}&adjust={$adjust}&nofinish={$nofinish}";
    if (strcmp($finish, $start) < 0 && !$nofinish) {
        notice(t('Event can not end before it has started.') . EOL);
        if (intval($_REQUEST['preview'])) {
            echo t('Unable to generate preview.');
            killme();
        }
        goaway($onerror_url);
    }
    if (!$summary || !$start) {
        notice(t('Event title and start time are required.') . EOL);
        if (intval($_REQUEST['preview'])) {
            echo t('Unable to generate preview.');
            killme();
        }
        goaway($onerror_url);
    }
    $share = intval($_POST['share']) ? intval($_POST['share']) : 0;
    $channel = $a->get_channel();
    if ($event_id) {
        $x = q("select * from event where id = %d and uid = %d limit 1", intval($event_id), intval(local_channel()));
        if (!$x) {
            notice(t('Event not found.') . EOL);
            if (intval($_REQUEST['preview'])) {
                echo t('Unable to generate preview.');
                killme();
            }
            return;
        }
        if ($x[0]['allow_cid'] === '<' . $channel['channel_hash'] . '>' && $x[0]['allow_gid'] === '' && $x[0]['deny_cid'] === '' && $x[0]['deny_gid'] === '') {
            $share = false;
        } else {
            $share = true;
            $str_group_allow = $x[0]['allow_gid'];
            $str_contact_allow = $x[0]['allow_cid'];
            $str_group_deny = $x[0]['deny_gid'];
            $str_contact_deny = $x[0]['deny_cid'];
            if (strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) {
                $private_event = true;
            }
        }
    } else {
        if ($share) {
            $str_group_allow = perms2str($_POST['group_allow']);
            $str_contact_allow = perms2str($_POST['contact_allow']);
            $str_group_deny = perms2str($_POST['group_deny']);
            $str_contact_deny = perms2str($_POST['contact_deny']);
            if (strlen($str_group_allow) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny)) {
                $private_event = true;
            }
        } else {
            $str_contact_allow = '<' . $channel['channel_hash'] . '>';
            $str_group_allow = $str_contact_deny = $str_group_deny = '';
            $private_event = true;
        }
    }
    $post_tags = array();
    $channel = $a->get_channel();
    if (strlen($categories)) {
        $cats = explode(',', $categories);
        foreach ($cats as $cat) {
            $post_tags[] = array('uid' => $profile_uid, 'type' => TERM_CATEGORY, 'otype' => TERM_OBJ_POST, 'term' => trim($cat), 'url' => $channel['xchan_url'] . '?f=&cat=' . urlencode(trim($cat)));
        }
    }
    $datarray = array();
    $datarray['start'] = $start;
    $datarray['finish'] = $finish;
    $datarray['summary'] = $summary;
    $datarray['description'] = $desc;
    $datarray['location'] = $location;
    $datarray['type'] = $type;
    $datarray['adjust'] = $adjust;
    $datarray['nofinish'] = $nofinish;
    $datarray['uid'] = local_channel();
    $datarray['account'] = get_account_id();
    $datarray['event_xchan'] = $channel['channel_hash'];
    $datarray['allow_cid'] = $str_contact_allow;
    $datarray['allow_gid'] = $str_group_allow;
    $datarray['deny_cid'] = $str_contact_deny;
    $datarray['deny_gid'] = $str_group_deny;
    $datarray['private'] = $private_event ? 1 : 0;
    $datarray['id'] = $event_id;
    $datarray['created'] = $created;
    $datarray['edited'] = $edited;
    if (intval($_REQUEST['preview'])) {
        $html = format_event_html($datarray);
        echo $html;
        killme();
    }
    $event = event_store_event($datarray);
    if ($post_tags) {
        $datarray['term'] = $post_tags;
    }
    $item_id = event_store_item($datarray, $event);
    if ($share) {
        proc_run('php', "include/notifier.php", "event", "{$item_id}");
    }
}
开发者ID:einervonvielen,项目名称:redmatrix,代码行数:101,代码来源:events.php

示例12: photo_upload

/**
 * @brief
 *
 * @param array $channel
 * @param array $observer
 * @param array $args
 * @return array
 */
function photo_upload($channel, $observer, $args)
{
    $ret = array('success' => false);
    $channel_id = $channel['channel_id'];
    $account_id = $channel['channel_account_id'];
    if (!perm_is_allowed($channel_id, $observer['xchan_hash'], 'post_photos')) {
        $ret['message'] = t('Permission denied.');
        return $ret;
    }
    call_hooks('photo_upload_begin', $args);
    /*
     * Determine the album to use
     */
    $album = $args['album'];
    $newalbum = $args['newalbum'];
    logger('photo_upload: album= ' . $album . ' newalbum= ' . $newalbum, LOGGER_DEBUG);
    if (!$album) {
        if ($newalbum) {
            $album = $newalbum;
        } else {
            $album = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y-m');
        }
    }
    if (intval($args['visible']) || $args['visible'] === 'true') {
        $visible = 1;
    } else {
        $visible = 0;
    }
    $str_group_allow = perms2str(is_array($args['group_allow']) ? $args['group_allow'] : explode(',', $args['group_allow']));
    $str_contact_allow = perms2str(is_array($args['contact_allow']) ? $args['contact_allow'] : explode(',', $args['contact_allow']));
    $str_group_deny = perms2str(is_array($args['group_deny']) ? $args['group_deny'] : explode(',', $args['group_deny']));
    $str_contact_deny = perms2str(is_array($args['contact_deny']) ? $args['contact_deny'] : explode(',', $args['contact_deny']));
    if ($args['data']) {
        // allow an import from a binary string representing the image.
        // This bypasses the upload step and max size limit checking
        $imagedata = $args['data'];
        $filename = $args['filename'];
        $filesize = strlen($imagedata);
        // this is going to be deleted if it exists
        $src = '/tmp/deletemenow';
        $type = $args['type'];
    } else {
        $f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => '');
        call_hooks('photo_upload_file', $f);
        if (x($f, 'src') && x($f, 'filesize')) {
            $src = $f['src'];
            $filename = $f['filename'];
            $filesize = $f['filesize'];
            $type = $f['type'];
        } else {
            $src = $_FILES['userfile']['tmp_name'];
            $filename = basename($_FILES['userfile']['name']);
            $filesize = intval($_FILES['userfile']['size']);
            $type = $_FILES['userfile']['type'];
        }
        if (!$type) {
            $type = guess_image_type($filename);
        }
        logger('photo_upload: received file: ' . $filename . ' as ' . $src . ' (' . $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG);
        $maximagesize = get_config('system', 'maximagesize');
        if ($maximagesize && $filesize > $maximagesize) {
            $ret['message'] = sprintf(t('Image exceeds website size limit of %lu bytes'), $maximagesize);
            @unlink($src);
            call_hooks('photo_upload_end', $ret);
            return $ret;
        }
        if (!$filesize) {
            $ret['message'] = t('Image file is empty.');
            @unlink($src);
            call_hooks('photo_post_end', $ret);
            return $ret;
        }
        logger('photo_upload: loading the contents of ' . $src, LOGGER_DEBUG);
        $imagedata = @file_get_contents($src);
    }
    $r = q("select sum(size) as total from photo where aid = %d and scale = 0 ", intval($account_id));
    $limit = service_class_fetch($channel_id, 'photo_upload_limit');
    if ($r && $limit !== false && $r[0]['total'] + strlen($imagedata) > $limit) {
        $ret['message'] = upgrade_message();
        @unlink($src);
        call_hooks('photo_post_end', $ret);
        return $ret;
    }
    $ph = photo_factory($imagedata, $type);
    if (!$ph->is_valid()) {
        $ret['message'] = t('Unable to process image');
        logger('photo_upload: unable to process image');
        @unlink($src);
        call_hooks('photo_upload_end', $ret);
        return $ret;
    }
    $exif = $ph->orient($src);
//.........这里部分代码省略.........
开发者ID:HaakonME,项目名称:redmatrix,代码行数:101,代码来源:photos.php

示例13: photos_post


//.........这里部分代码省略.........
        if (count($r)) {
            $r = q("UPDATE `photo` SET `desc` = '%s' WHERE `resource-id` = '%s' ", dbesc($desc), dbesc($resource_id));
        }
        if (!$item_id) {
            $title = '';
            $basename = basename($filename);
            // Create item container
            $body = '[url=' . $a->get_baseurl() . '/photos/' . $a->data['user']['nickname'] . '/image/' . $p[0]['resource-id'] . ']' . '[img]' . $a->get_baseurl() . '/photo/' . $p[0]['resource-id'] . '-' . $p[0]['scale'] . '.jpg' . '[/img]' . '[/url]';
            $uri = item_new_uri($a->get_hostname(), get_uid());
            $r = q("INSERT INTO `item` (`type`, `wall`, `resource-id`, `contact-id`,\n\t\t\t\t`owner-name`,`owner-link`,`owner-avatar`, `created`,\n\t\t\t\t`edited`, `changed`, `uri`, `parent-uri`, `title`, `body`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`)\n\t\t\t\tVALUES( '%s', %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )", dbesc('photo'), intval(1), dbesc($p[0]['resource-id']), intval($contact_record['id']), dbesc($contact_record['name']), dbesc($contact_record['url']), dbesc($contact_record['thumb']), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc($uri), dbesc($uri), dbesc($title), dbesc($body), dbesc($p[0]['allow_cid']), dbesc($p[0]['allow_gid']), dbesc($p[0]['deny_cid']), dbesc($p[0]['deny_gid']));
            if ($r) {
                $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1", dbesc($uri));
                if (count($r)) {
                    $item_id = $r[0]['id'];
                }
                q("UPDATE `item` SET `parent` = %d, `last-child` = 1 WHERE `id` = %d LIMIT 1", intval($r[0]['id']), intval($r[0]['id']));
            }
        }
        $r = q("UPDATE `item` SET `tag` = '%s', `edited` = '%s', `changed` = '%s' WHERE `id` = %d LIMIT 1", dbesc($tags), dbesc(datetime_convert()), dbesc(datetime_convert()), intval($item_id));
        goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
        return;
        // NOTREACHED
    }
    if (!x($_FILES, 'userfile')) {
        killme();
    }
    if ($_POST['partitionCount']) {
        $java_upload = true;
    } else {
        $java_upload = false;
    }
    $album = notags(trim($_POST['album']));
    $newalbum = notags(trim($_POST['newalbum']));
    if (!strlen($album)) {
        if (strlen($newalbum)) {
            $album = $newalbum;
        } else {
            $album = datetime_convert('UTC', date_default_timezone_get(), 'now', 'Y');
        }
    }
    $r = q("SELECT * FROM `photo` WHERE `album` = '%s' ", dbesc($album));
    if (!count($r) || $album == t('Profile Photos')) {
        $visible = 1;
    } else {
        $visibile = 0;
    }
    $str_group_allow = perms2str($_POST['group_allow']);
    $str_contact_allow = perms2str($_POST['contact_allow']);
    $str_group_deny = perms2str($_POST['group_deny']);
    $str_contact_deny = perms2str($_POST['contact_deny']);
    $src = $_FILES['userfile']['tmp_name'];
    $filename = basename($_FILES['userfile']['name']);
    $filesize = intval($_FILES['userfile']['size']);
    $imagedata = @file_get_contents($src);
    $ph = new Photo($imagedata);
    if (!($image = $ph->getImage())) {
        notice(t('Unable to process image.') . EOL);
        @unlink($src);
        killme();
    }
    @unlink($src);
    $width = $ph->getWidth();
    $height = $ph->getHeight();
    $smallest = 0;
    $photo_hash = hash('md5', uniqid(mt_rand(), true));
    $r = $ph->store(0, $photo_hash, $filename, $album, 0, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
    if (!$r) {
        notice(t('Image upload failed.') . EOL);
        killme();
    }
    if ($width > 640 || $height > 640) {
        $ph->scaleImage(640);
        $ph->store(0, $photo_hash, $filename, $album, 1, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
        $smallest = 1;
    }
    if ($width > 320 || $height > 320) {
        $ph->scaleImage(320);
        $ph->store(0, $photo_hash, $filename, $album, 2, 0, $str_contact_allow, $str_group_allow, $str_contact_deny, $str_group_deny);
        $smallest = 2;
    }
    $basename = basename($filename);
    // Create item container
    $body = '[url=' . $a->get_baseurl() . '/photos/' . $contact_record['nickname'] . '/image/' . $photo_hash . ']' . '[img]' . $a->get_baseurl() . "/photo/{$photo_hash}-{$smallest}.jpg" . '[/img]' . '[/url]';
    $uri = item_new_uri($a->get_hostname(), get_uid());
    $r = q("INSERT INTO `item` (`type`, `wall`, `resource-id`, `contact-id`,`owner-name`,`owner-link`,`owner-avatar`, `created`,\n\t\t`edited`, `changed`, `uri`, `parent-uri`, `title`, `body`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid`, `visible`)\n\t\tVALUES( '%s', %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d )", dbesc('photo'), intval(1), dbesc($photo_hash), intval($contact_record['id']), dbesc($contact_record['name']), dbesc($contact_record['url']), dbesc($contact_record['thumb']), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc($uri), dbesc($uri), dbesc($title), dbesc($body), dbesc($str_contact_allow), dbesc($str_group_allow), dbesc($str_contact_deny), dbesc($str_group_deny), intval($visible));
    if ($r) {
        $r = q("SELECT `id` FROM `item` WHERE `uri` = '%s' LIMIT 1", dbesc($uri));
        if (count($r)) {
            q("UPDATE `item` SET `parent` = %d, `last-child` = 1 WHERE `id` = %d LIMIT 1", intval($r[0]['id']), intval($r[0]['id']));
        }
    }
    if (!$java_upload) {
        goaway($a->get_baseurl() . '/' . $_SESSION['photo_return']);
        return;
        // NOTREACHED
    }
    killme();
    return;
    // NOTREACHED
}
开发者ID:vishalp,项目名称:MistparkPE-Remix,代码行数:101,代码来源:photos.php

示例14: menu_edit_item

function menu_edit_item($menu_id, $uid, $arr)
{
    $mitem_id = intval($arr['mitem_id']);
    $mitem_link = escape_tags($arr['mitem_link']);
    $mitem_desc = escape_tags($arr['mitem_desc']);
    $mitem_order = intval($arr['mitem_order']);
    $mitem_flags = intval($arr['mitem_flags']);
    if (local_channel() == $uid) {
        $channel = get_app()->get_channel();
    }
    $str_group_allow = perms2str($arr['group_allow']);
    $str_contact_allow = perms2str($arr['contact_allow']);
    $str_group_deny = perms2str($arr['group_deny']);
    $str_contact_deny = perms2str($arr['contact_deny']);
    $r = q("update menu_item set mitem_link = '%s', mitem_desc = '%s', mitem_flags = %d, allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', mitem_order = %d  where mitem_channel_id = %d and mitem_menu_id = %d and mitem_id = %d", dbesc($mitem_link), dbesc($mitem_desc), intval($mitem_flags), dbesc($str_contact_allow), dbesc($str_group_allow), dbesc($str_contact_deny), dbesc($str_group_deny), intval($mitem_order), intval($uid), intval($menu_id), intval($mitem_id));
    $x = q("update menu set menu_edited = '%s' where menu_id = %d and menu_channel_id = %d", dbesc(datetime_convert()), intval($menu_id), intval($uid));
    return $r;
}
开发者ID:HaakonME,项目名称:redmatrix,代码行数:18,代码来源:menu.php

示例15: settings_post

function settings_post(&$a)
{
    if (!local_user()) {
        notice(t('Permission denied.') . EOL);
        return;
    }
    if (count($a->user) && x($a->user, 'uid') && $a->user['uid'] != $_SESSION['uid']) {
        notice(t('Permission denied.') . EOL);
        return;
    }
    if (x($_POST, 'npassword') || x($_POST, 'confirm')) {
        $newpass = trim($_POST['npassword']);
        $confirm = trim($_POST['confirm']);
        $err = false;
        if ($newpass != $confirm) {
            notice(t('Passwords do not match. Password unchanged.') . EOL);
            $err = true;
        }
        if (!x($newpass) || !x($confirm)) {
            notice(t('Empty passwords are not allowed. Password unchanged.') . EOL);
            $err = true;
        }
        if (!$err) {
            $password = hash('whirlpool', $newpass);
            $r = q("UPDATE `user` SET `password` = '%s' WHERE `uid` = %d LIMIT 1", dbesc($password), intval(get_uid()));
            if ($r) {
                notice(t('Password changed.') . EOL);
            } else {
                notice(t('Password update failed. Please try again.') . EOL);
            }
        }
    }
    $theme = notags(trim($_POST['theme']));
    $username = notags(trim($_POST['username']));
    $email = notags(trim($_POST['email']));
    $timezone = notags(trim($_POST['timezone']));
    $defloc = notags(trim($_POST['defloc']));
    $publish = $_POST['profile_in_directory'] == 1 ? 1 : 0;
    $net_publish = $_POST['profile_in_netdirectory'] == 1 ? 1 : 0;
    $old_visibility = intval($_POST['visibility']) == 1 ? 1 : 0;
    $notify = 0;
    if ($_POST['notify1']) {
        $notify += intval($_POST['notify1']);
    }
    if ($_POST['notify2']) {
        $notify += intval($_POST['notify2']);
    }
    if ($_POST['notify3']) {
        $notify += intval($_POST['notify3']);
    }
    if ($_POST['notify4']) {
        $notify += intval($_POST['notify4']);
    }
    if ($_POST['notify5']) {
        $notify += intval($_POST['notify5']);
    }
    $username_changed = false;
    $email_changed = false;
    $zone_changed = false;
    $err = '';
    if ($username != $a->user['username']) {
        $username_changed = true;
        if (strlen($username) > 40) {
            $err .= t(' Please use a shorter name.');
        }
        if (strlen($username) < 3) {
            $err .= t(' Name too short.');
        }
    }
    if ($email != $a->user['email']) {
        $email_changed = true;
        if (!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\\.[A-Za-z]{2,6}', $email)) {
            $err .= t(' Not valid email.');
        }
        $r = q("SELECT `uid` FROM `user`\n                \tWHERE `email` = '%s' LIMIT 1", dbesc($email));
        if ($r !== NULL && count($r)) {
            $err .= t(' This email address is already registered.');
        }
    }
    if (strlen($err)) {
        notice($err . EOL);
        return;
    }
    if ($timezone != $a->user['timezone']) {
        $zone_changed = true;
        if (strlen($timezone)) {
            date_default_timezone_set($timezone);
        }
    }
    $str_group_allow = perms2str($_POST['group_allow']);
    $str_contact_allow = perms2str($_POST['contact_allow']);
    $str_group_deny = perms2str($_POST['group_deny']);
    $str_contact_deny = perms2str($_POST['contact_deny']);
    $r = q("UPDATE `user` SET `username` = '%s', `email` = '%s', `timezone` = '%s',  `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s', `notify-flags` = %d, `default-location` = '%s', `theme` = '%s'  WHERE `uid` = %d LIMIT 1", dbesc($username), dbesc($email), dbesc($timezone), dbesc($str_contact_allow), dbesc($str_group_allow), dbesc($str_contact_deny), dbesc($str_group_deny), intval($notify), dbesc($defloc), dbesc($theme), intval($_SESSION['uid']));
    if ($r) {
        notice(t('Settings updated.') . EOL);
    }
    $r = q("UPDATE `profile` \n\t\tSET `publish` = %d, `net-publish` = %d\n\t\tWHERE `is-default` = 1 LIMIT 1", intval($publish), intval($net_publish));
    if ($old_visibility != $net_publish) {
        // Update global directory in background
//.........这里部分代码省略.........
开发者ID:vishalp,项目名称:MistparkPE-Remix,代码行数:101,代码来源:settings.php


注:本文中的perms2str函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。