wordpress için avatar yükleme eklentisi.

Başlatan günberi, 11 Kasım 2009 - 22:58:14

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

günberi

Wordpressle yaptığım bir siteye farklı kullanıcılar giriş yapıyor. Üyelik sistemi va yani. Kullanıcıların kendi avatarlarını yüklemesi için en az 10 eklenti denedim. hepsinde farklı bir sorun çıktı en sonunda kullanımı kolay bir eklenti buldum. Ama oda yüklediği fotoğrafların ismini kullanıcı ismi ile değiştiriyor. haliyle dosya uzantılarını (.jpg, .png gibi) siliyor. Bu sorunu nasıl çözrebilirim.
<?php
/*
Plugin Name: Local User Avatars
Plugin URI: http://www.alltrees.org/Wordpress/
Description: A plugin to load and display local user avatars in WordPress. CHECK FOR UPDATES MANUALLY.
Author: Emily Ravenwood
Version: 1
Author URI: http://www.alltrees.org/
License: GPL (http://www.gnu.org/licenses/gpl.html)
*/

//make sure the upload form cannot be accessed by direct url
if ( preg_match("/plugins\/local-user-avatars\/local-user-avatars.php/"$_SERVER['PHP_SELF']) ) {
die("You do not have permission to access this page."); }

add_action('admin_menu''avatar_config');

function 
avatar_config() {
get_currentuserinfo();
add_submenu_page('users.php''Manage Local Avatar''Local Avatar''upload_files''load_avatar''load_avatar');
}

function 
load_avatar() {
//Loading function adapted from Reconn.us

global $userdata;
get_currentuserinfo();

//get the user's login name to name the image with
$username $userdata->user_login;

//define a maxim size for the uploaded images in Kb
 
define ("MAX_SIZE","100"); 

//This function reads the extension of the file. It is used to determine if the file  is an image by checking the extension.
 
function getExtension($str) {
         
$i strrpos($str,".");
         if (!
$i) { return ""; }
         
$l strlen($str) - $i;
         
$ext substr($str,$i+1,$l);
         return 
$ext;
 }

//This variable is used as a flag. The value is initialized with 0 (meaning no error  found)  
//and it will be changed to 1 if an errro occures.  
//If the error occures the file will not be uploaded.
 
$errors=0;
//checks if the form has been submitted
 
if(isset($_POST['Submit'])) 
 {
 
//reads the name of the file the user submitted for uploading
 
$image=$_FILES['image']['name'];
 
//if it is not empty
 
if ($image
 
{
 
//get the original name of the file from the clients machine
 
$filename stripslashes($_FILES['image']['name']);
 
//get the extension of the file in a lower case format
  
$extension getExtension($filename);
 
$extension strtolower($extension);
 
//if it is not a known extension, we will suppose it is an error and will not  upload the file,  
//otherwise we will do more tests
 
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
 
{
//print error message
 
echo '<div id="message" class="updated fade"><p>Unknown extension.</p></div>';
 
$errors=1;
 
}
 
else
 
{
//get the size of the image in bytes
 //$_FILES['image']['tmp_name'] is the temporary filename of the file
 //in which the uploaded file was stored on the server
 
$size=filesize($_FILES['image']['tmp_name']);

//compare the size with the maxim size we defined and print error if bigger
if ($size MAX_SIZE*1024)
{
echo '<div id="message" class="updated fade"><p>You have exceeded the file size limit.</p></div>';
$errors=1;
}

//we will give an unique name, for example the time in unix time format
$image_name$username;
//the new name will be containing the full path where will be stored (local-avatar/avatars folder)
$newnameABSPATH."wp-content/plugins/local-user-avatars/avatars/".$image_name;
//we verify if the image has been uploaded, or print error instead
$copied copy($_FILES['image']['tmp_name'], $newname);
if (!
$copied
{
echo '<div id="message" class="updated fade"><p>Copy unsuccessful.</p></div>';
$errors=1;
}
}}}

//If no errors registred, print the success message
 
if(isset($_POST['Submit']) && !$errors
 {
 
echo '<div id="message" class="updated fade"><p>File Uploaded Successfully!</p></div>';
 }

//Onward to the admin page
 //make icon variables
 //server path
 
$icon ABSPATH ."wp-content/plugins/local-user-avatars/avatars/".$username;
 
//http path
 
$icon_src get_option('siteurl') ."/wp-content/plugins/local-user-avatars/avatars/".$username;
 
 
//if there is an icon show it
 
if (file_exists$icon ) ) {
 
$show_icon '<img src="'.$icon_src.'" />'; }
else { 
//if not, say so
$show_icon 'No Avatar Loaded'; }

//set delete action path
$delete_path get_option('siteurl') ."/wp-content/plugins/local-user-avatars/delete-avatar.php";

 
?>

<div class="wrap">
<h2>Local Avatar</h2>
<p>Browse for an icon on your computer using the form below, and upload it to the site. To replace your current avatar, simply load a new one. Be aware that this will overwrite any existing avatar.</p>
<br />
<h3>Current Avatar</h3>
<table class="form-table">
<tr>
<th style="vertical-align:top;">Your local avatar</td>
<td style="text-align: center;"><?php echo $show_icon ?></td>
</tr>
</table>

<br />

<h3>Delete Local Avatar</h3>
<table class="form-table">
<tr>
<th>Delete your local avatar</td>
<td><form name="eraseicon" action="<?php echo $delete_path?>" method="post">
<input name="submit" type="submit" value="Delete Icon">
</form></td>
</tr>
</table>

<br />

<h3>Load Local Avatar</h3>
<!--next comes the form, you must set the enctype to "multipart/frm-data" and use an input type "file" -->
<form name="newad" method="post" enctype="multipart/form-data"  action="">
<table class="form-table">
<tr>
<th>Browse for a new avatar</th>
<td><input type="file" name="image"></td>
</tr>
</table>
<p class="submit"><input name="Submit" type="submit" value="Upload image"></p>
</form>
</div>
<?php
//end load_avatar


function local_avatar($avatar) {
//replaces native gravatar with local avatar when gravatars are enabled

//extract the height/width specified in the theme, if any, to use as size
if ( preg_match("/height='([0-9]*)'/"$avatar$m) || preg_match('/height="([0-9]*)"/'$avatar$m) ) {
$size $m[1]; }
else {
$size 80; }

//get comment author info
global $comment;
$comment_user get_userdata($comment->user_id);

//get the author's login name
$username $comment_user->user_login;

//if the author is registered, get their local icon to use
if ($username != '' ) {
//server icon path
$icon ABSPATH ."wp-content/plugins/local-user-avatars/avatars/".$username;

//http icon path
$icon_src get_option('siteurl') ."/wp-content/plugins/local-user-avatars/avatars/".$username;
 
if (file_exists$icon ) ) {
$avatar '<img class="avatar" src="'.$icon_src.'" height="'$size .'" width="'$size .'" />'
}
else {
$avatar $avatar;
}
}

return $avatar;
//local avatar

add_filter ('get_avatar''local_avatar'54);
?>

Lâ fetâ illâ Ali, lâ seyfe illâ Zülfikâr

AbkHaZiaN

.$username
olan kısımları
$username.
şeklinde değiştirip dener misin?

ytgn

Gelecek için ubuntu ile yeni bir adım..

günberi

Bir eklenti buldum. Ancak artık sisteme giriş yapamıyorum, o nedenle hangisi olduğunu hatırlamıyorum. add-local-avatar eklentisi ilk denediklerimden biri idi. Ancak ne sorun yaşadığımı da hatırlamıyorum. Bu işin üzerine farklı bikaç iş daha yaptım. Statik siteler olduğu için wordpressle de bir daha işim olmadı.
Yardımlar için teşekkürler.
Lâ fetâ illâ Ali, lâ seyfe illâ Zülfikâr

celal_zanadu

Merhaba arkadaşlar bende dediğiniz eklentiyi şuan sitemde deniyorum.Bir sorum olacaktı size

<?php $avtr get_avatar(id [, size [, default-image-url]]); echo $avtr?>
Avatarın çalışması için bu kodu kullanmak istedigim yere yerleştirmemiz söyleniyor. Ben bbpress forum eklentisinde kullanmak istiyorum. Birde anasayfada kullanıcı girişinin yapıldığı bir bölüm var orada.

Tam olarak neresidir ?
Teşekkürler