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


PHP Photo::scaleImage方法代码示例

本文整理汇总了PHP中Photo::scaleImage方法的典型用法代码示例。如果您正苦于以下问题:PHP Photo::scaleImage方法的具体用法?PHP Photo::scaleImage怎么用?PHP Photo::scaleImage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Photo的用法示例。


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

示例1: create_user


//.........这里部分代码省略.........
        $default_service_class = '';
    }
    $prvkey = $keys['prvkey'];
    $pubkey = $keys['pubkey'];
    /**
     *
     * Create another keypair for signing/verifying
     * salmon protocol messages. We have to use a slightly
     * less robust key because this won't be using openssl
     * but the phpseclib. Since it is PHP interpreted code
     * it is not nearly as efficient, and the larger keys
     * will take several minutes each to process.
     *
     */
    $sres = new_keypair(512);
    $sprvkey = $sres['prvkey'];
    $spubkey = $sres['pubkey'];
    $r = q("INSERT INTO `user` ( `guid`, `username`, `password`, `email`, `openid`, `nickname`,\n\t\t`pubkey`, `prvkey`, `spubkey`, `sprvkey`, `register_date`, `verified`, `blocked`, `timezone`, `service_class`, `default-location` )\n\t\tVALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, 'UTC', '%s', '' )", dbesc(generate_user_guid()), dbesc($username), dbesc($new_password_encoded), dbesc($email), dbesc($openid_url), dbesc($nickname), dbesc($pubkey), dbesc($prvkey), dbesc($spubkey), dbesc($sprvkey), dbesc(datetime_convert()), intval($verified), intval($blocked), dbesc($default_service_class));
    if ($r) {
        $r = q("SELECT * FROM `user`\n\t\t\tWHERE `username` = '%s' AND `password` = '%s' LIMIT 1", dbesc($username), dbesc($new_password_encoded));
        if ($r !== false && count($r)) {
            $u = $r[0];
            $newuid = intval($r[0]['uid']);
        }
    } else {
        $result['message'] .= t('An error occurred during registration. Please try again.') . EOL;
        return $result;
    }
    /**
     * if somebody clicked submit twice very quickly, they could end up with two accounts
     * due to race condition. Remove this one.
     */
    $r = q("SELECT `uid` FROM `user`\n               \tWHERE `nickname` = '%s' ", dbesc($nickname));
    if (count($r) > 1 && $newuid) {
        $result['message'] .= t('Nickname is already registered. Please choose another.') . EOL;
        q("DELETE FROM `user` WHERE `uid` = %d", intval($newuid));
        return $result;
    }
    if (x($newuid) !== false) {
        $r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` )\n\t\t\tVALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ", intval($newuid), t('default'), 1, dbesc($username), dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), intval($publish), intval($netpublish));
        if ($r === false) {
            $result['message'] .= t('An error occurred creating your default profile. Please try again.') . EOL;
            // Start fresh next time.
            $r = q("DELETE FROM `user` WHERE `uid` = %d", intval($newuid));
            return $result;
        }
        $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `micro`, `blocked`, `pending`, `url`, `nurl`,\n\t\t\t`request`, `notify`, `poll`, `confirm`, `poco`, `name-date`, `uri-date`, `avatar-date`, `closeness` )\n\t\t\tVALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', 0 ) ", intval($newuid), datetime_convert(), dbesc($username), dbesc($nickname), dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/photo/micro/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/profile/{$nickname}"), dbesc(normalise_link($a->get_baseurl() . "/profile/{$nickname}")), dbesc($a->get_baseurl() . "/dfrn_request/{$nickname}"), dbesc($a->get_baseurl() . "/dfrn_notify/{$nickname}"), dbesc($a->get_baseurl() . "/dfrn_poll/{$nickname}"), dbesc($a->get_baseurl() . "/dfrn_confirm/{$nickname}"), dbesc($a->get_baseurl() . "/poco/{$nickname}"), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(datetime_convert()));
        // Create a group with no members. This allows somebody to use it
        // right away as a default group for new contacts.
        require_once 'include/group.php';
        group_add($newuid, t('Friends'));
        $r = q("SELECT id FROM `group` WHERE uid = %d AND name = '%s'", intval($newuid), dbesc(t('Friends')));
        if ($r && count($r)) {
            $def_gid = $r[0]['id'];
            q("UPDATE user SET def_gid = %d WHERE uid = %d", intval($r[0]['id']), intval($newuid));
        }
        if (get_config('system', 'newuser_private') && $def_gid) {
            q("UPDATE user SET allow_gid = '%s' WHERE uid = %d", dbesc("<" . $def_gid . ">"), intval($newuid));
        }
    }
    // if we have no OpenID photo try to look up an avatar
    if (!strlen($photo)) {
        $photo = avatar_img($email);
    }
    // unless there is no avatar-plugin loaded
    if (strlen($photo)) {
        require_once 'include/Photo.php';
        $photo_failure = false;
        $filename = basename($photo);
        $img_str = fetch_url($photo, true);
        // guess mimetype from headers or filename
        $type = guess_image_type($photo, true);
        $img = new Photo($img_str, $type);
        if ($img->is_valid()) {
            $img->scaleImageSquare(175);
            $hash = photo_new_resource();
            $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4);
            if ($r === false) {
                $photo_failure = true;
            }
            $img->scaleImage(80);
            $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 5);
            if ($r === false) {
                $photo_failure = true;
            }
            $img->scaleImage(48);
            $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 6);
            if ($r === false) {
                $photo_failure = true;
            }
            if (!$photo_failure) {
                q("UPDATE `photo` SET `profile` = 1 WHERE `resource-id` = '%s' ", dbesc($hash));
            }
        }
    }
    call_hooks('register_account', $newuid);
    $result['success'] = true;
    $result['user'] = $u;
    return $result;
}
开发者ID:rahmiyildiz,项目名称:friendica,代码行数:101,代码来源:user.php

示例2: wall_upload_post

function wall_upload_post(&$a)
{
    if (!local_user()) {
        echo t('Permission denied.') . EOL;
        killme();
    }
    if (!x($_FILES, 'userfile')) {
        killme();
    }
    $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())) {
        echo t('Unable to process image.') . EOL;
        @unlink($src);
        killme();
    }
    @unlink($src);
    $width = $ph->getWidth();
    $height = $ph->getHeight();
    $hash = hash('md5', uniqid(mt_rand(), true));
    $smallest = 0;
    $r = $ph->store(0, $hash, $filename, t('Wall Photos'), 0);
    if (!$r) {
        echo t('Image upload failed.') . EOL;
        killme();
    }
    if ($width > 640 || $height > 640) {
        $ph->scaleImage(640);
        $r = $ph->store(0, $hash, $filename, t('Wall Photos'), 1);
        if ($r) {
            $smallest = 1;
        }
    }
    if ($width > 320 || $height > 320) {
        $ph->scaleImage(320);
        $r = $ph->store(0, $hash, $filename, t('Wall Photos'), 2);
        if ($r) {
            $smallest = 2;
        }
    }
    $basename = basename($filename);
    echo "<br /><br /><img src=\"" . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg\" alt=\"{$basename}\" /><br /><br />";
    killme();
    return;
    // NOTREACHED
}
开发者ID:rabuzarus,项目名称:dir,代码行数:49,代码来源:wall_upload.php

示例3: scale_diaspora_images

function scale_diaspora_images($s, $include_link = true)
{
    $matches = null;
    $c = preg_match_all('/\\[img\\](.*?)\\[\\/img\\]/ism', $s, $matches, PREG_SET_ORDER);
    if ($c) {
        require_once 'include/Photo.php';
        foreach ($matches as $mtch) {
            logger('scale_diaspora_image: ' . $mtch[1]);
            $i = fetch_url($mtch[1]);
            if ($i) {
                $ph = new Photo($i);
                if ($ph->is_valid()) {
                    if ($ph->getWidth() > 600 || $ph->getHeight() > 600) {
                        $ph->scaleImage(600);
                        $new_width = $ph->getWidth();
                        $new_height = $ph->getHeight();
                        logger('scale_diaspora_image: ' . $new_width . 'w ' . $new_height . 'h' . 'match: ' . $mtch[0], LOGGER_DEBUG);
                        $s = str_replace($mtch[0], '[img=' . $new_width . 'x' . $new_height . ']' . $mtch[1] . '[/img]' . "\n" . ($include_link ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n" : ''), $s);
                        logger('scale_diaspora_image: new string: ' . $s, LOGGER_DEBUG);
                    }
                }
            }
        }
    }
    return $s;
}
开发者ID:ryivhnn,项目名称:friendica,代码行数:26,代码来源:bb2diaspora.php

示例4: wall_upload_post

function wall_upload_post(&$a)
{
    if ($a->argc > 1) {
        if (!x($_FILES, 'media')) {
            $nick = $a->argv[1];
            $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid`  WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", dbesc($nick));
            if (!count($r)) {
                return;
            }
        } else {
            $user_info = api_get_user($a);
            $r = q("SELECT `user`.*, `contact`.`id` FROM `user` LEFT JOIN `contact` on `user`.`uid` = `contact`.`uid`  WHERE `user`.`nickname` = '%s' AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", dbesc($user_info['screen_name']));
        }
    } else {
        return;
    }
    $can_post = false;
    $visitor = 0;
    $page_owner_uid = $r[0]['uid'];
    $default_cid = $r[0]['id'];
    $page_owner_nick = $r[0]['nickname'];
    $community_page = $r[0]['page-flags'] == PAGE_COMMUNITY ? true : false;
    if (local_user() && local_user() == $page_owner_uid) {
        $can_post = true;
    } else {
        if ($community_page && remote_user()) {
            $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", intval(remote_user()), intval($page_owner_uid));
            if (count($r)) {
                $can_post = true;
                $visitor = remote_user();
                $default_cid = $visitor;
            }
        }
    }
    if (!$can_post) {
        notice(t('Permission denied.') . EOL);
        killme();
    }
    if (!x($_FILES, 'userfile') && !x($_FILES, 'media')) {
        killme();
    }
    if (x($_FILES, 'userfile')) {
        $src = $_FILES['userfile']['tmp_name'];
        $filename = basename($_FILES['userfile']['name']);
        $filesize = intval($_FILES['userfile']['size']);
    } elseif (x($_FILES, 'media')) {
        $src = $_FILES['media']['tmp_name'];
        $filename = basename($_FILES['media']['name']);
        $filesize = intval($_FILES['media']['size']);
    }
    $maximagesize = get_config('system', 'maximagesize');
    if ($maximagesize && $filesize > $maximagesize) {
        echo sprintf(t('Image exceeds size limit of %d'), $maximagesize) . EOL;
        @unlink($src);
        killme();
    }
    $imagedata = @file_get_contents($src);
    $ph = new Photo($imagedata);
    if (!$ph->is_valid()) {
        echo t('Unable to process image.') . EOL;
        @unlink($src);
        killme();
    }
    @unlink($src);
    $width = $ph->getWidth();
    $height = $ph->getHeight();
    $hash = photo_new_resource();
    $smallest = 0;
    $defperm = '<' . $default_cid . '>';
    $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 0, 0, $defperm);
    if (!$r) {
        echo t('Image upload failed.') . EOL;
        killme();
    }
    if ($width > 640 || $height > 640) {
        $ph->scaleImage(640);
        $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 1, 0, $defperm);
        if ($r) {
            $smallest = 1;
        }
    }
    if ($width > 320 || $height > 320) {
        $ph->scaleImage(320);
        $r = $ph->store($page_owner_uid, $visitor, $hash, $filename, t('Wall Photos'), 2, 0, $defperm);
        if ($r) {
            $smallest = 2;
        }
    }
    $basename = basename($filename);
    /* mod Waitman Gobble NO WARRANTY */
    //if we get the signal then return the image url info in BBCODE, otherwise this outputs the info and bails (for the ajax image uploader on wall post)
    if ($_REQUEST['hush'] != 'yeah') {
        /*existing code*/
        if (local_user() && intval(get_pconfig(local_user(), 'system', 'plaintext'))) {
            echo "\n\n" . '[url=' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '][img]' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg[/img][/url]\n\n";
        } else {
            echo '<br /><br /><a href="' . $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash . '" ><img src="' . $a->get_baseurl() . "/photo/{$hash}-{$smallest}.jpg\" alt=\"{$basename}\" /></a><br /><br />";
        }
        /*existing code*/
    } else {
//.........这里部分代码省略.........
开发者ID:robhell,项目名称:friendica,代码行数:101,代码来源:wall_upload.php

示例5: scale_external_images

function scale_external_images($srctext, $include_link = true, $scale_replace = false)
{
    // Suppress "view full size"
    if (intval(get_config('system', 'no_view_full_size'))) {
        $include_link = false;
    }
    $a = get_app();
    // Picture addresses can contain special characters
    $s = htmlspecialchars_decode($srctext);
    $matches = null;
    $c = preg_match_all('/\\[img.*?\\](.*?)\\[\\/img\\]/ism', $s, $matches, PREG_SET_ORDER);
    if ($c) {
        require_once 'include/Photo.php';
        foreach ($matches as $mtch) {
            logger('scale_external_image: ' . $mtch[1]);
            $hostname = str_replace('www.', '', substr($a->get_baseurl(), strpos($a->get_baseurl(), '://') + 3));
            if (stristr($mtch[1], $hostname)) {
                continue;
            }
            // $scale_replace, if passed, is an array of two elements. The
            // first is the name of the full-size image. The second is the
            // name of a remote, scaled-down version of the full size image.
            // This allows Friendica to display the smaller remote image if
            // one exists, while still linking to the full-size image
            if ($scale_replace) {
                $scaled = str_replace($scale_replace[0], $scale_replace[1], $mtch[1]);
            } else {
                $scaled = $mtch[1];
            }
            $i = @fetch_url($scaled);
            if (!$i) {
                return $srctext;
            }
            // guess mimetype from headers or filename
            $type = guess_image_type($mtch[1], true);
            if ($i) {
                $ph = new Photo($i, $type);
                if ($ph->is_valid()) {
                    $orig_width = $ph->getWidth();
                    $orig_height = $ph->getHeight();
                    if ($orig_width > 640 || $orig_height > 640) {
                        $ph->scaleImage(640);
                        $new_width = $ph->getWidth();
                        $new_height = $ph->getHeight();
                        logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG);
                        $s = str_replace($mtch[0], '[img=' . $new_width . 'x' . $new_height . ']' . $scaled . '[/img]' . "\n" . ($include_link ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n" : ''), $s);
                        logger('scale_external_images: new string: ' . $s, LOGGER_DEBUG);
                    }
                }
            }
        }
    }
    // replace the special char encoding
    $s = htmlspecialchars($s, ENT_NOQUOTES, 'UTF-8');
    return $s;
}
开发者ID:ZerGabriel,项目名称:friendica,代码行数:56,代码来源:network.php

示例6: profile_photo_post

function profile_photo_post(&$a)
{
    if (!local_user()) {
        notice(t('Permission denied.') . EOL);
        return;
    }
    if (x($_POST, 'cropfinal') && $_POST['cropfinal'] == 1) {
        // phase 2 - we have finished cropping
        if ($a->argc != 2) {
            notice(t('Image uploaded but image cropping failed.') . EOL);
            return;
        }
        $image_id = $a->argv[1];
        if (substr($image_id, -2, 1) == '-') {
            $scale = substr($image_id, -1, 1);
            $image_id = substr($image_id, 0, -2);
        }
        $srcX = $_POST['xstart'];
        $srcY = $_POST['ystart'];
        $srcW = $_POST['xfinal'] - $srcX;
        $srcH = $_POST['yfinal'] - $srcY;
        $r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `scale` = %d LIMIT 1", dbesc($image_id), intval($scale));
        if (count($r)) {
            $base_image = $r[0];
            $im = new Photo($base_image['data']);
            $im->cropImage(175, $srcX, $srcY, $srcW, $srcH);
            $r = $im->store(0, $base_image['resource-id'], $base_image['filename'], t('Profile Photos'), 4, 1);
            if ($r === false) {
                notice(t('Image size reduction (175) failed.') . EOL);
            }
            $im->scaleImage(80);
            $r = $im->store(0, $base_image['resource-id'], $base_image['filename'], t('Profile Photos'), 5, 1);
            if ($r === false) {
                notice(t('Image size reduction (80) failed.') . EOL);
            }
            // Unset the profile photo flag from any other photos I own
            $r = q("UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' ", dbesc($base_image['resource-id']));
            $r = q("UPDATE `contact` SET `avatar-date` = '%s' WHERE `self` = 1 LIMIT 1", dbesc(datetime_convert()));
            // Update global directory in background
            $php_path = strlen($a->config['php_path']) ? $a->config['php_path'] : 'php';
            $url = $_SESSION['my_url'];
            if ($url && strlen(get_config('system', 'directory_submit_url'))) {
                proc_close(proc_open("\"{$php_path}\" \"include/directory.php\" \"{$url}\" &", array(), $foo));
            }
        }
        goaway($a->get_baseurl() . '/profiles');
        return;
        // NOTREACHED
    }
    $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);
        return;
    }
    @unlink($src);
    $width = $ph->getWidth();
    $height = $ph->getHeight();
    if ($width < 175 || $height < 175) {
        $ph->scaleImageUp(200);
        $width = $ph->getWidth();
        $height = $ph->getHeight();
    }
    $hash = hash('md5', uniqid(mt_rand(), true));
    $smallest = 0;
    $r = $ph->store(0, $hash, $filename, t('Profile Photos'), 0);
    if ($r) {
        notice(t('Image uploaded successfully.') . EOL);
    } else {
        notice(t('Image upload failed.') . EOL);
    }
    if ($width > 640 || $height > 640) {
        $ph->scaleImage(640);
        $r = $ph->store(0, $hash, $filename, t('Profile Photos'), 1);
        if ($r === false) {
            notice(t('Image size reduction (640) failed.') . EOL);
        } else {
            $smallest = 1;
        }
    }
    $a->config['imagecrop'] = $hash;
    $a->config['imagecrop_resolution'] = $smallest;
    $a->page['htmlhead'] .= file_get_contents("view/crophead.tpl");
    return;
}
开发者ID:vishalp,项目名称:MistparkPE-Remix,代码行数:89,代码来源:profile_photo.php

示例7: photos_post


//.........这里部分代码省略.........
                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));
                    }
                }
            }
        }
        $p = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d ORDER BY `scale` DESC", dbesc($resource_id), intval($page_owner_uid));
        if (count($p)) {
            $r = q("UPDATE `photo` SET `desc` = '%s', `album` = '%s', `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' WHERE `resource-id` = '%s' AND `uid` = %d", dbesc($desc), dbesc($albname), dbesc($str_contact_allow), dbesc($str_group_allow), dbesc($str_contact_deny), dbesc($str_group_deny), dbesc($resource_id), intval($page_owner_uid));
        }
        /* Don't make the item visible if the only change was the album name */
        $visibility = 0;
        if ($p[0]['desc'] !== $desc || strlen($rawtags)) {
            $visibility = 1;
        }
        if (!$item_id) {
            // Create item container
            $title = '';
            $uri = item_new_uri($a->get_hostname(), $page_owner_uid);
            $arr = array();
            $arr['uid'] = $page_owner_uid;
            $arr['uri'] = $uri;
            $arr['parent-uri'] = $uri;
            $arr['type'] = 'photo';
            $arr['wall'] = 1;
开发者ID:robhell,项目名称:friendica,代码行数:67,代码来源:photos.php

示例8: profile_photo_post

function profile_photo_post(&$a)
{
    if (!local_user()) {
        notice(t('Permission denied.') . EOL);
        return;
    }
    check_form_security_token_redirectOnErr('/profile_photo', 'profile_photo');
    if (x($_POST, 'cropfinal') && $_POST['cropfinal'] == 1) {
        // unless proven otherwise
        $is_default_profile = 1;
        if ($_REQUEST['profile']) {
            $r = q("select id, `is-default` from profile where id = %d and uid = %d limit 1", intval($_REQUEST['profile']), intval(local_user()));
            if (count($r) && !intval($r[0]['is-default'])) {
                $is_default_profile = 0;
            }
        }
        // phase 2 - we have finished cropping
        if ($a->argc != 2) {
            notice(t('Image uploaded but image cropping failed.') . EOL);
            return;
        }
        $image_id = $a->argv[1];
        if (substr($image_id, -2, 1) == '-') {
            $scale = substr($image_id, -1, 1);
            $image_id = substr($image_id, 0, -2);
        }
        $srcX = $_POST['xstart'];
        $srcY = $_POST['ystart'];
        $srcW = $_POST['xfinal'] - $srcX;
        $srcH = $_POST['yfinal'] - $srcY;
        $r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' AND `uid` = %d AND `scale` = %d LIMIT 1", dbesc($image_id), dbesc(local_user()), intval($scale));
        if (count($r)) {
            $base_image = $r[0];
            $im = new Photo($base_image['data'], $base_image['type']);
            if ($im->is_valid()) {
                $im->cropImage(175, $srcX, $srcY, $srcW, $srcH);
                $r = $im->store(local_user(), 0, $base_image['resource-id'], $base_image['filename'], t('Profile Photos'), 4, $is_default_profile);
                if ($r === false) {
                    notice(sprintf(t('Image size reduction [%s] failed.'), "175") . EOL);
                }
                $im->scaleImage(80);
                $r = $im->store(local_user(), 0, $base_image['resource-id'], $base_image['filename'], t('Profile Photos'), 5, $is_default_profile);
                if ($r === false) {
                    notice(sprintf(t('Image size reduction [%s] failed.'), "80") . EOL);
                }
                $im->scaleImage(48);
                $r = $im->store(local_user(), 0, $base_image['resource-id'], $base_image['filename'], t('Profile Photos'), 6, $is_default_profile);
                if ($r === false) {
                    notice(sprintf(t('Image size reduction [%s] failed.'), "48") . EOL);
                }
                // If setting for the default profile, unset the profile photo flag from any other photos I own
                if ($is_default_profile) {
                    $r = q("UPDATE `photo` SET `profile` = 0 WHERE `profile` = 1 AND `resource-id` != '%s' AND `uid` = %d", dbesc($base_image['resource-id']), intval(local_user()));
                    $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `micro` = '%s'  WHERE `self` AND `uid` = %d", dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-4.' . $im->getExt()), dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-5.' . $im->getExt()), dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-6.' . $im->getExt()), intval(local_user()));
                } else {
                    $r = q("update profile set photo = '%s', thumb = '%s' where id = %d and uid = %d", dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-4.' . $im->getExt()), dbesc($a->get_baseurl() . '/photo/' . $base_image['resource-id'] . '-5.' . $im->getExt()), intval($_REQUEST['profile']), intval(local_user()));
                }
                // we'll set the updated profile-photo timestamp even if it isn't the default profile,
                // so that browsers will do a cache update unconditionally
                $r = q("UPDATE `contact` SET `avatar-date` = '%s' WHERE `self` = 1 AND `uid` = %d", dbesc(datetime_convert()), intval(local_user()));
                info(t('Shift-reload the page or clear browser cache if the new photo does not display immediately.') . EOL);
                // Update global directory in background
                $url = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
                if ($url && strlen(get_config('system', 'directory'))) {
                    proc_run('php', "include/directory.php", "{$url}");
                }
                require_once 'include/profile_update.php';
                profile_change();
            } else {
                notice(t('Unable to process image') . EOL);
            }
        }
        goaway($a->get_baseurl() . '/profiles');
        return;
        // NOTREACHED
    }
    $src = $_FILES['userfile']['tmp_name'];
    $filename = basename($_FILES['userfile']['name']);
    $filesize = intval($_FILES['userfile']['size']);
    $filetype = $_FILES['userfile']['type'];
    if ($filetype == "") {
        $filetype = guess_image_type($filename);
    }
    $maximagesize = get_config('system', 'maximagesize');
    if ($maximagesize && $filesize > $maximagesize) {
        notice(sprintf(t('Image exceeds size limit of %s'), formatBytes($maximagesize)) . EOL);
        @unlink($src);
        return;
    }
    $imagedata = @file_get_contents($src);
    $ph = new Photo($imagedata, $filetype);
    if (!$ph->is_valid()) {
        notice(t('Unable to process image.') . EOL);
        @unlink($src);
        return;
    }
    $ph->orient($src);
    @unlink($src);
    return profile_photo_crop_ui_head($a, $ph);
}
开发者ID:vinzv,项目名称:friendica,代码行数:100,代码来源:profile_photo.php

示例9: update_1014

function update_1014()
{
    require_once 'include/Photo.php';
    q("ALTER TABLE `contact` ADD `micro` TEXT NOT NULL AFTER `thumb` ");
    $r = q("SELECT * FROM `photo` WHERE `scale` = 4");
    if (count($r)) {
        foreach ($r as $rr) {
            $ph = new Photo($rr['data']);
            if ($ph->is_valid()) {
                $ph->scaleImage(48);
                $ph->store($rr['uid'], $rr['contact-id'], $rr['resource-id'], $rr['filename'], $rr['album'], 6, $rr['profile'] ? 1 : 0);
            }
        }
    }
    $r = q("SELECT * FROM `contact` WHERE 1");
    if (count($r)) {
        foreach ($r as $rr) {
            if (stristr($rr['thumb'], 'avatar')) {
                q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d LIMIT 1", dbesc(str_replace('avatar', 'micro', $rr['thumb'])), intval($rr['id']));
            } else {
                q("UPDATE `contact` SET `micro` = '%s' WHERE `id` = %d LIMIT 1", dbesc(str_replace('5.jpg', '6.jpg', $rr['thumb'])), intval($rr['id']));
            }
        }
    }
}
开发者ID:ryivhnn,项目名称:friendica,代码行数:25,代码来源:update.php

示例10: switch


//.........这里部分代码省略.........
      * if somebody clicked submit twice very quickly, they could end up with two accounts 
      * due to race condition. Remove this one.
      */
     $r = q("SELECT `uid` FROM `user`\n               \tWHERE `nickname` = '%s' ", dbesc($nickname));
     if (count($r) > 1 && $newuid) {
         $err .= t('Nickname is already registered. Please choose another.') . EOL;
         q("DELETE FROM `user` WHERE `uid` = %d LIMIT 1", intval($newuid));
         notice($err);
         return;
     }
     if (x($newuid) !== false) {
         $r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` )\n\t\t\tVALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ", intval($newuid), 'default', 1, dbesc($username), dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), intval($publish), intval($netpublish));
         if ($r === false) {
             notice(t('An error occurred creating your default profile. Please try again.') . EOL);
             // Start fresh next time.
             $r = q("DELETE FROM `user` WHERE `uid` = %d", intval($newuid));
             return;
         }
         $r = q("INSERT INTO `contact` ( `uid`, `created`, `self`, `name`, `nick`, `photo`, `thumb`, `micro`, `blocked`, `pending`, `url`, `nurl`,\n\t\t\t`request`, `notify`, `poll`, `confirm`, `poco`, `name-date`, `uri-date`, `avatar-date` )\n\t\t\tVALUES ( %d, '%s', 1, '%s', '%s', '%s', '%s', '%s', 0, 0, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", intval($newuid), datetime_convert(), dbesc($username), dbesc($nickname), dbesc($a->get_baseurl() . "/photo/profile/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/photo/avatar/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/photo/micro/{$newuid}.jpg"), dbesc($a->get_baseurl() . "/profile/{$nickname}"), dbesc(normalise_link($a->get_baseurl() . "/profile/{$nickname}")), dbesc($a->get_baseurl() . "/dfrn_request/{$nickname}"), dbesc($a->get_baseurl() . "/dfrn_notify/{$nickname}"), dbesc($a->get_baseurl() . "/dfrn_poll/{$nickname}"), dbesc($a->get_baseurl() . "/dfrn_confirm/{$nickname}"), dbesc($a->get_baseurl() . "/poco/{$nickname}"), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(datetime_convert()));
     }
     $use_gravatar = get_config('system', 'no_gravatar') ? false : true;
     // if we have an openid photo use it.
     // otherwise unless it is disabled, use gravatar
     if ($use_gravatar || strlen($photo)) {
         require_once 'include/Photo.php';
         if ($use_gravatar && !strlen($photo)) {
             $photo = gravatar_img($email);
         }
         $photo_failure = false;
         $filename = basename($photo);
         $img_str = fetch_url($photo, true);
         $img = new Photo($img_str);
         if ($img->is_valid()) {
             $img->scaleImageSquare(175);
             $hash = photo_new_resource();
             $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 4);
             if ($r === false) {
                 $photo_failure = true;
             }
             $img->scaleImage(80);
             $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 5);
             if ($r === false) {
                 $photo_failure = true;
             }
             $img->scaleImage(48);
             $r = $img->store($newuid, 0, $hash, $filename, t('Profile Photos'), 6);
             if ($r === false) {
                 $photo_failure = true;
             }
             if (!$photo_failure) {
                 q("UPDATE `photo` SET `profile` = 1 WHERE `resource-id` = '%s' ", dbesc($hash));
             }
         }
     }
     if ($netpublish && $a->config['register_policy'] != REGISTER_APPROVE) {
         $url = $a->get_baseurl() . "/profile/{$nickname}";
         proc_run('php', "include/directory.php", "{$url}");
     }
     call_hooks('register_account', $newuid);
     if ($a->config['register_policy'] == REGISTER_OPEN) {
         if ($using_invites && $invite_id) {
             q("delete * from register where hash = '%s' limit 1", dbesc($invite_id));
             set_pconfig($newuid, 'system', 'invites_remaining', $num_invites);
         }
         $email_tpl = get_intltext_template("register_open_eml.tpl");
         $email_tpl = replace_macros($email_tpl, array('$sitename' => $a->config['sitename'], '$siteurl' => $a->get_baseurl(), '$username' => $username, '$email' => $email, '$password' => $new_password, '$uid' => $newuid));
开发者ID:ryivhnn,项目名称:friendica,代码行数:67,代码来源:register.php

示例11: import_profile_photo

function import_profile_photo($photo, $uid, $cid)
{
    $a = get_app();
    $photo_failure = false;
    $filename = basename($photo);
    $img_str = fetch_url($photo, true);
    $img = new Photo($img_str);
    if ($img->is_valid()) {
        $img->scaleImageSquare(175);
        $hash = photo_new_resource();
        $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 4);
        if ($r === false) {
            $photo_failure = true;
        }
        $img->scaleImage(80);
        $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 5);
        if ($r === false) {
            $photo_failure = true;
        }
        $img->scaleImage(48);
        $r = $img->store($uid, $cid, $hash, $filename, 'Contact Photos', 6);
        if ($r === false) {
            $photo_failure = true;
        }
        $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.jpg';
        $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.jpg';
        $micro = $a->get_baseurl() . '/photo/' . $hash . '-6.jpg';
    } else {
        $photo_failure = true;
    }
    if ($photo_failure) {
        $photo = $a->get_baseurl() . '/images/default-profile.jpg';
        $thumb = $a->get_baseurl() . '/images/default-profile-sm.jpg';
        $micro = $a->get_baseurl() . '/images/default-profile-mm.jpg';
    }
    return array($photo, $thumb, $micro);
}
开发者ID:nextgensh,项目名称:friendica,代码行数:37,代码来源:Photo.php

示例12: proxy_init


//.........这里部分代码省略.........
            if (file_exists($cachefile)) {
                $img_str = file_get_contents($cachefile);
                $mime = image_type_to_mime_type(exif_imagetype($cachefile));
                header("Content-type: {$mime}");
                header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . " GMT");
                header('Etag: "' . md5($img_str) . '"');
                header("Expires: " . gmdate("D, d M Y H:i:s", time() + 31536000) . " GMT");
                header("Cache-Control: max-age=31536000");
                // reduce quality - if it isn't a GIF
                if ($mime != "image/gif") {
                    $img = new Photo($img_str, $mime);
                    if ($img->is_valid()) {
                        $img_str = $img->imageString();
                    }
                }
                echo $img_str;
                killme();
            }
        }
    } else {
        $cachefile = "";
    }
    $valid = true;
    if (!$direct_cache and $cachefile == "") {
        $r = q("SELECT * FROM `photo` WHERE `resource-id` = '%s' LIMIT 1", $urlhash);
        if (count($r)) {
            $img_str = $r[0]['data'];
            $mime = $r[0]["desc"];
            if ($mime == "") {
                $mime = "image/jpeg";
            }
        }
    } else {
        $r = array();
    }
    if (!count($r)) {
        // It shouldn't happen but it does - spaces in URL
        $_REQUEST['url'] = str_replace(" ", "+", $_REQUEST['url']);
        $redirects = 0;
        $img_str = fetch_url($_REQUEST['url'], true, $redirects, 10);
        $tempfile = tempnam(get_temppath(), "cache");
        file_put_contents($tempfile, $img_str);
        $mime = image_type_to_mime_type(exif_imagetype($tempfile));
        unlink($tempfile);
        // If there is an error then return a blank image
        if (substr($a->get_curl_code(), 0, 1) == "4" or !$img_str) {
            $img_str = file_get_contents("images/blank.png");
            $mime = "image/png";
            $cachefile = "";
            // Clear the cachefile so that the dummy isn't stored
            $valid = false;
            $img = new Photo($img_str, "image/png");
            if ($img->is_valid()) {
                $img->scaleImage(10);
                $img_str = $img->imageString();
            }
        } else {
            if ($mime != "image/jpeg" and !$direct_cache and $cachefile == "") {
                $image = @imagecreatefromstring($img_str);
                if ($image === FALSE) {
                    die;
                }
                q("INSERT INTO `photo`\n\t\t\t( `uid`, `contact-id`, `guid`, `resource-id`, `created`, `edited`, `filename`, `album`, `height`, `width`, `desc`, `data`, `scale`, `profile`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` )\n\t\t\tVALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d, %d, '%s', '%s', '%s', '%s' )", 0, 0, get_guid(), dbesc($urlhash), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(basename(dbesc($_REQUEST["url"]))), dbesc(''), intval(imagesy($image)), intval(imagesx($image)), $mime, dbesc($img_str), 100, intval(0), dbesc(''), dbesc(''), dbesc(''), dbesc(''));
            } else {
                $img = new Photo($img_str, $mime);
                if ($img->is_valid()) {
                    if (!$direct_cache and $cachefile == "") {
                        $img->store(0, 0, $urlhash, $_REQUEST['url'], '', 100);
                    }
                }
            }
        }
    }
    // reduce quality - if it isn't a GIF
    if ($mime != "image/gif") {
        $img = new Photo($img_str, $mime);
        if ($img->is_valid()) {
            $img->scaleImage($size);
            $img_str = $img->imageString();
        }
    }
    // If there is a real existing directory then put the cache file there
    // advantage: real file access is really fast
    // Otherwise write in cachefile
    if ($valid and $direct_cache) {
        file_put_contents($_SERVER["DOCUMENT_ROOT"] . "/proxy/" . proxy_url($_REQUEST['url'], true), $img_str);
    } elseif ($cachefile != '') {
        file_put_contents($cachefile, $img_str);
    }
    header("Content-type: {$mime}");
    // Only output the cache headers when the file is valid
    if ($valid) {
        header("Last-Modified: " . gmdate("D, d M Y H:i:s", time()) . " GMT");
        header('Etag: "' . md5($img_str) . '"');
        header("Expires: " . gmdate("D, d M Y H:i:s", time() + 31536000) . " GMT");
        header("Cache-Control: max-age=31536000");
    }
    echo $img_str;
    killme();
}
开发者ID:ZerGabriel,项目名称:friendica,代码行数:101,代码来源:proxy.php

示例13: dfrn_confirm_post

function dfrn_confirm_post(&$a)
{
    if ($a->argc > 1) {
        $node = $a->argv[1];
    }
    if (x($_POST, 'source_url')) {
        // We are processing an external confirmation to an introduction created by our user.
        $public_key = $_POST['public_key'];
        $dfrn_id = $_POST['dfrn_id'];
        $source_url = $_POST['source_url'];
        $aes_key = $_POST['aes_key'];
        $duplex = $_POST['duplex'];
        $version_id = $_POST['dfrn_version'];
        // Find our user's account
        $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' LIMIT 1", dbesc($node));
        if (!count($r)) {
            xml_status(3);
            // failure
            return;
            // NOTREACHED
        }
        $my_prvkey = $r[0]['prvkey'];
        $local_uid = $r[0]['uid'];
        // verify everything
        $decrypted_source_url = "";
        openssl_private_decrypt($source_url, $decrypted_source_url, $my_prvkey);
        $ret = q("SELECT * FROM `contact` WHERE `url` = '%s' LIMIT 1", dbesc($decrypted_source_url));
        if (!count($ret)) {
            // this is either a bogus confirmation or we deleted the original introduction.
            xml_status(3);
            return;
            // NOTREACHED
        }
        $relation = $ret[0]['rel'];
        // Decrypt all this stuff we just received
        $foreign_pubkey = $ret[0]['site-pubkey'];
        $dfrn_record = $ret[0]['id'];
        $decrypted_dfrn_id = "";
        openssl_public_decrypt($dfrn_id, $decrypted_dfrn_id, $foreign_pubkey);
        if (strlen($aes_key)) {
            $decrypted_aes_key = "";
            openssl_private_decrypt($aes_key, $decrypted_aes_key, $my_prvkey);
            $dfrn_pubkey = openssl_decrypt($public_key, 'AES-256-CBC', $decrypted_aes_key);
        } else {
            $dfrn_pubkey = $public_key;
        }
        $r = q("SELECT * FROM `contact` WHERE `dfrn-id` = '%s' LIMIT 1", dbesc($decrypted_dfrn_id), intval($local_uid));
        if (count($r)) {
            xml_status(1);
            // Birthday paradox - duplicate dfrn-id
            return;
            // NOTREACHED
        }
        $r = q("UPDATE `contact` SET `dfrn-id` = '%s', `pubkey` = '%s' WHERE `id` = %d LIMIT 1", dbesc($decrypted_dfrn_id), dbesc($dfrn_pubkey), intval($dfrn_record));
        if ($r) {
            // We're good but now we have to scrape the profile photo and send notifications.
            require_once "Photo.php";
            $photo_failure = false;
            $r = q("SELECT `photo` FROM `contact` WHERE `id` = %d LIMIT 1", intval($dfrn_record));
            if (count($r)) {
                $filename = basename($r[0]['photo']);
                $img_str = fetch_url($r[0]['photo'], true);
                $img = new Photo($img_str);
                if ($img) {
                    $img->scaleImageSquare(175);
                    $hash = hash('md5', uniqid(mt_rand(), true));
                    $r = $img->store($dfrn_record, $hash, $filename, t('Contact Photos'), 4);
                    if ($r === false) {
                        $photo_failure = true;
                    }
                    $img->scaleImage(80);
                    $r = $img->store($dfrn_record, $hash, $filename, t('Contact Photos'), 5);
                    if ($r === false) {
                        $photo_failure = true;
                    }
                    $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.jpg';
                    $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.jpg';
                } else {
                    $photo_failure = true;
                }
            } else {
                $photo_failure = true;
            }
            if ($photo_failure) {
                $photo = $a->get_baseurl() . '/images/default-profile.jpg';
                $thumb = $a->get_baseurl() . '/images/default-profile-sm.jpg';
            }
            $new_relation = DIRECTION_OUT;
            if ($relation == DIRECTION_IN || $duplex) {
                $new_relation = DIRECTION_BOTH;
            }
            $r = q("UPDATE `contact` SET \n\t\t\t\t`photo` = '%s',\n\t\t\t\t`thumb` = '%s',\n\t\t\t\t`rel` = %d,\n\t\t\t\t`name-date` = '%s',\n\t\t\t\t`uri-date` = '%s',\n\t\t\t\t`avatar-date` = '%s',\n\t\t\t\t`blocked` = 0,\n\t\t\t\t`pending` = 0,\n\t\t\t\t`duplex` = %d\n\t\t\t\t`network` = 'dfrn' WHERE `id` = %d LIMIT 1\n\t\t\t", dbesc($photo), dbesc($thumb), intval($newrelation), dbesc(datetime_convert()), dbesc(datetime_convert()), dbesc(datetime_convert()), intval($duplex), intval($dfrn_record));
            if ($r === false) {
                notice(t("Unable to set contact photo info.") . EOL);
            }
            // Otherwise everything seems to have worked and we are almost done. Yay!
            // Send an email notification
            $r = q("SELECT * FROM `contact` LEFT JOIN `user` ON `user`.`uid` = 1\n\t\t\t\tWHERE `contact`.`id` = %d LIMIT 1", intval($dfrn_record));
            if (count($r) && $r[0]['notify-flags'] & NOTIFY_CONFIRM) {
                $tpl = file_get_contents('view/intro_complete_eml.tpl');
//.........这里部分代码省略.........
开发者ID:vishalp,项目名称:MistparkPE-Remix,代码行数:101,代码来源:dfrn_confirm.php

示例14: 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

示例15: store_photo

function store_photo($a, $uid, $imagedata = "", $url = "")
{
    $r = q("SELECT `user`.`nickname`, `user`.`page-flags`, `contact`.`id` FROM `user` INNER JOIN `contact` on `user`.`uid` = `contact`.`uid`\n\t\tWHERE `user`.`uid` = %d AND `user`.`blocked` = 0 and `contact`.`self` = 1 LIMIT 1", intval($uid));
    if (!count($r)) {
        logger("Can't detect user data for uid " . $uid, LOGGER_DEBUG);
        return array();
    }
    $page_owner_nick = $r[0]['nickname'];
    //	To-Do:
    //	$default_cid      = $r[0]['id'];
    //	$community_page   = (($r[0]['page-flags'] == PAGE_COMMUNITY) ? true : false);
    if (strlen($imagedata) == 0 and $url == "") {
        logger("No image data and no url provided", LOGGER_DEBUG);
        return array();
    } elseif (strlen($imagedata) == 0) {
        logger("Uploading picture from " . $url, LOGGER_DEBUG);
        $imagedata = @file_get_contents($url);
    }
    $maximagesize = get_config('system', 'maximagesize');
    if ($maximagesize && strlen($imagedata) > $maximagesize) {
        logger("Image exceeds size limit of " . $maximagesize, LOGGER_DEBUG);
        return array();
    }
    /*
            $r = q("select sum(octet_length(data)) as total from photo where uid = %d and scale = 0 and album != 'Contact Photos' ",
                    intval($uid)
            );
    
            $limit = service_class_fetch($uid,'photo_upload_limit');
    
            if(($limit !== false) && (($r[0]['total'] + strlen($imagedata)) > $limit)) {
    		logger("Image exceeds personal limit of uid ".$uid, LOGGER_DEBUG);
    		return(array());
            }
    */
    $tempfile = tempnam(get_temppath(), "cache");
    file_put_contents($tempfile, $imagedata);
    $data = getimagesize($tempfile);
    if (!isset($data["mime"])) {
        unlink($tempfile);
        logger("File is no picture", LOGGER_DEBUG);
        return array();
    }
    $ph = new Photo($imagedata, $data["mime"]);
    if (!$ph->is_valid()) {
        unlink($tempfile);
        logger("Picture is no valid picture", LOGGER_DEBUG);
        return array();
    }
    $ph->orient($tempfile);
    unlink($tempfile);
    $max_length = get_config('system', 'max_image_length');
    if (!$max_length) {
        $max_length = MAX_IMAGE_LENGTH;
    }
    if ($max_length > 0) {
        $ph->scaleImage($max_length);
    }
    $width = $ph->getWidth();
    $height = $ph->getHeight();
    $hash = photo_new_resource();
    $smallest = 0;
    // Pictures are always public by now
    //$defperm = '<'.$default_cid.'>';
    $defperm = "";
    $visitor = 0;
    $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 0, 0, $defperm);
    if (!$r) {
        logger("Picture couldn't be stored", LOGGER_DEBUG);
        return array();
    }
    $image = array("page" => $a->get_baseurl() . '/photos/' . $page_owner_nick . '/image/' . $hash, "full" => $a->get_baseurl() . "/photo/{$hash}-0." . $ph->getExt());
    if ($width > 800 || $height > 800) {
        $image["large"] = $a->get_baseurl() . "/photo/{$hash}-0." . $ph->getExt();
    }
    if ($width > 640 || $height > 640) {
        $ph->scaleImage(640);
        $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 1, 0, $defperm);
        if ($r) {
            $image["medium"] = $a->get_baseurl() . "/photo/{$hash}-1." . $ph->getExt();
        }
    }
    if ($width > 320 || $height > 320) {
        $ph->scaleImage(320);
        $r = $ph->store($uid, $visitor, $hash, $tempfile, t('Wall Photos'), 2, 0, $defperm);
        if ($r) {
            $image["small"] = $a->get_baseurl() . "/photo/{$hash}-2." . $ph->getExt();
        }
    }
    if ($width > 160 and $height > 160) {
        $x = 0;
        $y = 0;
        $min = $ph->getWidth();
        if ($min > 160) {
            $x = ($min - 160) / 2;
        }
        if ($ph->getHeight() < $min) {
            $min = $ph->getHeight();
            if ($min > 160) {
                $y = ($min - 160) / 2;
//.........这里部分代码省略.........
开发者ID:jzacman,项目名称:friendica,代码行数:101,代码来源:Photo.php


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