function sp_ProfileShowUserPhotos($args = '')
{
    global $spProfileUser;
    if (!sp_get_auth('view_profiles')) {
        return;
    }
    $defs = array('tagClass' => 'spProfileShowUserPhotos', 'photoClass' => 'spProfileShowUserPhotos', 'imageClass' => 'spProfileShowUserPhotos', 'numCols' => 2, 'showEmpty' => 0, 'echo' => 1, 'get' => 0);
    $a = wp_parse_args($args, $defs);
    $a = apply_filters('sph_ProfileShowUserPhotos_args', $a);
    extract($a, EXTR_SKIP);
    # sanitize before use
    $tagClass = esc_attr($tagClass);
    $imageClass = esc_attr($imageClass);
    $photoClass = esc_attr($photoClass);
    $numCols = (int) $numCols;
    $showEmpty = (int) $showEmpty;
    $echo = (int) $echo;
    $get = (int) $get;
    if ($get) {
        return $spProfileUser->photos;
    }
    # output first name
    if (!empty($spProfileUser->photos) || $showEmpty) {
        $sfprofile = sp_get_option('sfprofile');
        $out = '';
        $out .= "<table class='{$tagClass}' style='width:100%'>";
        $col = 0;
        $width = 100 / $numCols;
        if (!empty($spProfileUser->photos)) {
            foreach ($spProfileUser->photos as $photo) {
                if ($col == 0) {
                    $out .= '<tr>';
                }
                $out .= "<td class='{$photoClass}' style='width:{$width}%'>";
                if (!empty($photo)) {
                    $img = sp_get_image_size($photo, true);
                    $width = $height = $style = '';
                    if (!empty($img) && $img[0] > $sfprofile['photoswidth']) {
                        $width = "width:{$sfprofile['photoswidth']}px;";
                    }
                    if (!empty($img) && $img[1] > $sfprofile['photosheight']) {
                        $height = "height:{$sfprofile['photosheight']}px;";
                    }
                    if (!empty($width) || !empty($height)) {
                        $style = " style='{$width}{$height}'";
                    }
                    $out .= "<img class='{$imageClass}'{$style} src='{$photo}' />";
                }
                $out .= '</td>';
                $col++;
                if ($col == $numCols) {
                    $out .= '</tr>';
                    $col = 0;
                }
            }
        }
        $out .= "</table>\n";
        $out = apply_filters('sph_ProfileShowUserPhotos', $out, $spProfileUser, $a);
        if ($echo) {
            echo $out;
        } else {
            return $out;
        }
    }
}
コード例 #2
0
function sp_check_sig($match)
{
    $sfsigimagesize = sp_get_option('sfsigimagesize');
    # get the elements of the img tags
    preg_match('/title\\s*=\\s*"([^"]*)"|title\\s*=\\s*\'([^\']*)\'/i', $match[0], $title);
    preg_match('/width\\s*=\\s*"([^"]*)"|width\\s*=\\s*\'([^\']*)\'/i', $match[0], $width);
    preg_match('/height\\s*=\\s*"([^"]*)"|height\\s*=\\s*\'([^\']*)\'/i', $match[0], $height);
    preg_match('/src\\s*=\\s*"([^"]*)"|src\\s*=\\s*\'([^\']*)\'/i', $match[0], $src);
    preg_match('/style\\s*=\\s*"([^"]*)"|style\\s*=\\s*\'([^\']*)\'/i', $match[0], $style);
    preg_match('/alt\\s*=\\s*"([^"]*)"|alt\\s*=\\s*\'([^\']*)\'/i', $match[0], $alt);
    # check for possible single quote match or double quote
    if (empty($title[1]) && !empty($title[2])) {
        $title[1] = $title[2];
    }
    if (empty($width[1]) && !empty($width[2])) {
        $width[1] = $width[2];
    }
    if (empty($height[1]) && !empty($height[2])) {
        $height[1] = $height[2];
    }
    if (empty($src[1]) && !empty($src[2])) {
        $src[1] = $src[2];
    }
    if (empty($style[1]) && !empty($style[2])) {
        $style[1] = $style[2];
    }
    if (empty($alt[1]) && !empty($alt[2])) {
        $alt[1] = $alt[2];
    }
    # if user defined heights are valid, just return
    if (isset($width[1]) && $width[1] <= $sfsigimagesize['sfsigwidth'] && (isset($height[1]) && $height[1] <= $sfsigimagesize['sfsigheight'])) {
        return $match[0];
    }
    # insepct the image itself
    $display_width = '';
    $display_height = '';
    $size = sp_get_image_size($src[1], true);
    if (!empty($size)) {
        # Did image exist?
        if ($size[0] && $size[1]) {
            # check width
            if (isset($width[1]) && ($width[1] <= $sfsigimagesize['sfsigwidth'] || $sfsigimagesize['sfsigwidth'] == 0)) {
                # width specified and less than max allowed
                $display_width = ' width="' . $width[1] . '"';
            } else {
                if ($sfsigimagesize['sfsigwidth'] > 0 && $size[0] > $sfsigimagesize['sfsigwidth']) {
                    $display_width = ' width="' . $sfsigimagesize['sfsigwidth'] . '"';
                }
            }
            # check the height
            if (isset($height[1]) && ($height[1] <= $sfsigimagesize['sfsigheight'] || $sfsigimagesize['sfsigheight'] == 0)) {
                # height specified and less than max allowed
                $display_height = ' height="' . $height[1] . '"';
            } else {
                if ($sfsigimagesize['sfsigheight'] > 0 && $size[1] > $sfsigimagesize['sfsigheight']) {
                    $display_height = ' height="' . $sfsigimagesize['sfsigheight'] . '"';
                }
            }
        } else {
            # image not found, strip tags
            return '';
        }
    } else {
        # problem checking sizes, so just limit
        $display_width = ' width="' . $sfsigimagesize['sfsigwidth'] . '"';
        $display_height = ' height="' . $sfsigimagesize['sfsigheight'] . '"';
    }
    # add attributes back in if passed
    $style = !empty($style) ? ' style="' . $style[1] . '"' : '';
    $title = !empty($title) ? ' title="' . $title[1] . '"' : '';
    $alt = !empty($alt) ? ' alt="' . $alt[1] . '"' : '';
    return '<img src="' . $src[1] . '"' . $display_width . $display_height . $style . $title . $alt . ' />';
}