您的位置:首页 > 其它

新浪sae平台wordpress中Buddypress插件上传头像问题

2013-11-04 15:05 513 查看
快毕业了,想给班级做个基于wordpress的博客放在SAE平台,想着大家参与方便,于是下了个buddyrpess插件。

插件装好了在SAE上用着看是没什么问题。试着创建个群组,第二步上传头像的时候问题来了。

图片怎么也裁切不了。点击裁切图片一直提示:There was a problem cropping the avatar.

搜索找到这个提示在bp-groups-screens.php文件里面的652行,bp_core_avatar_handle_crop( $args )函数调用后返回失败。

这个函数在bp-core-avatars.php文件里面,发现这个函数执行到 “if ( !file_exists( $avatar_folder_dir ) )” 这里文件不存在,返回false。直接注释掉,提交代码再次上传,提示图片上传成功。可以刷新页面,头像确实没变。

于是到storage里面检查,文件确实存在。

想想,去主题的模板找头像输出的函数,找到<div id="item-header-avatar">下面的<?php bp_displayed_user_avatar( 'type=full' ); ?>。一路跟着bp_displayed_user_avatar()函数,找到bp-core-avatars.php文件的287行

// Check for directory
if (file_exists( $avatar_folder_dir )) {

// Open directory

if ($av_dir = opendir( $avatar_folder_dir )) {


就是这段的问题了。

做了一下修改。

// Check for directory
if ( /*file_exists( $avatar_folder_dir )*/ true) {

// Open directory

if (/* $av_dir = opendir( $avatar_folder_dir ) */true) {
/*
// Stash files in an array once to check for one that matches
$avatar_files = array();
while ( false !== ( $avatar_file = readdir( $av_dir ) ) ) {
// Only add files to the array (skip directories)
if ( 2 < strlen( $avatar_file ) ) {
$avatar_files[] = $avatar_file;
}
echo '<script type="text/javascript">alert("'.$avatar_file.'");</script>';
}

*/

$storage = new SaeStorage();
$avatar_files = array();
$avatar_folder_dir=str_replace('saestor://wordpress/','',$avatar_folder_dir);
$avatar_files=$storage->getList('wordpress',$avatar_folder_dir);

// Check for array
if ( 0 < count( $avatar_files ) ) {

// Check for current avatar
foreach( $avatar_files as $key => $value ) {
if ( strpos ( $value, $avatar_size )!== false ) {
$temp_avatar_filename=substr($avatar_files[$key],1+strrpos($avatar_files[$key],'/'));
$avatar_url = $avatar_folder_url . '/' . $temp_avatar_filename;
/*echo '<script type="text/javascript">alert("'.$avatar_files[$key].'");</script>';*/

}

}

上传代码,浏览页面,图片显示正常了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: