Hi
Actually I had a problem anyway, so I corrected the AVAMAN code. Please don't be too hard on me : that's my first hack ever.
If anyone find a better way, please tell me.
index.patch :
*** index_ori.php 2006-04-06 02:25:21.000000000 +0700 --- index_fin.php 2011-09-30 15:53:57.686817109 +0700 *************** *** 1,5 **** --- 1,7 ---- <?php + define( "XOOPS_UPLOAD_PATH_AVATARS" , "../../../uploads/avatars" ) ; + $avaman_allowed_exts = array( 'gif' => 'image/gif' , 'jpg' => 'image/jpeg' , *************** *** 59,65 **** list( $file , $users ) = $db->fetchRow( $result ) ; if( $users > 0 ) continue ; if( strstr( $file , '..' ) ) die( '.. found.' ) ; ! @unlink( XOOPS_UPLOAD_PATH . '/' . $file ) ; $db->query( "DELETE FROM ".$db->prefix("avatar")." WHERE avatar_id=$avatar_id" ) ; } } --- 61,67 ---- list( $file , $users ) = $db->fetchRow( $result ) ; if( $users > 0 ) continue ; if( strstr( $file , '..' ) ) die( '.. found.' ) ; ! @unlink( XOOPS_UPLOAD_PATH_AVATARS . '/' . $file ) ; $db->query( "DELETE FROM ".$db->prefix("avatar")." WHERE avatar_id=$avatar_id" ) ; } } *************** *** 126,136 **** if( empty( $avaman_allowed_exts[$ext] ) ) continue ; $file_node = substr( $file_name , 0 , $ext_pos ) ; $save_file_name = uniqid( 'savt' ) . '.' . $ext ; ! $fw = fopen( XOOPS_UPLOAD_PATH.'/'.$save_file_name , "w" ) ; if( ! $fw ) continue ; @fwrite( $fw , $file['content'] ) ; @fclose( $fw ) ; ! $db->query( "INSERT INTO ".$db->prefix("avatar")." SET avatar_file='".addslashes($save_file_name)."', avatar_name='".addslashes($file_node)."', avatar_mimetype='".addslashes(@$avaman_allowed_exts[$ext])."', avatar_created=UNIX_TIMESTAMP(), avatar_display=1, avatar_weight=0, avatar_type='S'" ) ; $imported ++ ; } --- 128,138 ---- if( empty( $avaman_allowed_exts[$ext] ) ) continue ; $file_node = substr( $file_name , 0 , $ext_pos ) ; $save_file_name = uniqid( 'savt' ) . '.' . $ext ; ! $fw = fopen( XOOPS_UPLOAD_PATH_AVATARS.'/'.$save_file_name , "w" ) ; if( ! $fw ) continue ; @fwrite( $fw , $file['content'] ) ; @fclose( $fw ) ; ! $db->query( "INSERT INTO ".$db->prefix("avatar")." SET avatar_file='avatars/".addslashes($save_file_name)."', avatar_name='".addslashes($file_node)."', avatar_mimetype='".addslashes(@$avaman_allowed_exts[$ext])."', avatar_created=UNIX_TIMESTAMP(), avatar_display=1, avatar_weight=0, avatar_type='S'" ) ; $imported ++ ; } *************** *** 185,191 **** echo " <tr> <td class='$evenodd'>$avatar_id</td> ! <td class='$evenodd'><img src='".XOOPS_UPLOAD_URL.'/'.urlencode($avatar_file)."' alt='' /></td> <td class='$evenodd'><input type='text' size='24' name='avatar_names[$avatar_id]' value='".htmlspecialchars($avatar_name,ENT_QUOTES)."' /></td> <td class='$evenodd'> ".formatTimestamp($avatar_created)."</td> <td class='$evenodd'><input type='checkbox' name='avatar_displays[$avatar_id]' ".($avatar_display?"checked='checked'":"")." /></td> --- 187,193 ---- echo " <tr> <td class='$evenodd'>$avatar_id</td> ! <td class='$evenodd'><img src='".XOOPS_UPLOAD_URL.'/'.$avatar_file."' alt='' /></td> <td class='$evenodd'><input type='text' size='24' name='avatar_names[$avatar_id]' value='".htmlspecialchars($avatar_name,ENT_QUOTES)."' /></td> <td class='$evenodd'> ".formatTimestamp($avatar_created)."</td> <td class='$evenodd'><input type='checkbox' name='avatar_displays[$avatar_id]' ".($avatar_display?"checked='checked'":"")." /></td>
smilies.patch :
*** smilies_ori.php 2006-04-06 02:25:21.000000000 +0700 --- smilies_fin.php 2011-09-30 15:53:45.036817110 +0700 *************** *** 1,5 **** --- 1,7 ---- <?php + define( "XOOPS_UPLOAD_PATH_SMILIES" , "../../../uploads/smilies" ) ; + $avaman_allowed_exts = array( 'gif' => 'image/gif' , 'jpg' => 'image/jpeg' , *************** *** 58,64 **** if( $result ) { list( $file ) = $db->fetchRow( $result ) ; if( strstr( $file , '..' ) ) die( '.. found.' ) ; ! @unlink( XOOPS_UPLOAD_PATH . '/' . $file ) ; $db->query( "DELETE FROM ".$db->prefix("smiles")." WHERE id=$smiles_id" ) ; } } --- 60,66 ---- if( $result ) { list( $file ) = $db->fetchRow( $result ) ; if( strstr( $file , '..' ) ) die( '.. found.' ) ; ! @unlink( XOOPS_UPLOAD_PATH_SMILIES . '/' . $file ) ; $db->query( "DELETE FROM ".$db->prefix("smiles")." WHERE id=$smiles_id" ) ; } } *************** *** 125,135 **** if( empty( $avaman_allowed_exts[$ext] ) ) continue ; $file_node = substr( $file_name , 0 , $ext_pos ) ; $save_file_name = uniqid( 'smil' ) . '.' . $ext ; ! $fw = fopen( XOOPS_UPLOAD_PATH.'/'.$save_file_name , "w" ) ; if( ! $fw ) continue ; @fwrite( $fw , $file['content'] ) ; @fclose( $fw ) ; ! $db->query( "INSERT INTO ".$db->prefix("smiles")." SET smile_url='".addslashes($save_file_name)."', code='".addslashes(rawurldecode($file_node))."', display=0, emotion=''" ) ; $imported ++ ; } --- 127,137 ---- if( empty( $avaman_allowed_exts[$ext] ) ) continue ; $file_node = substr( $file_name , 0 , $ext_pos ) ; $save_file_name = uniqid( 'smil' ) . '.' . $ext ; ! $fw = fopen( XOOPS_UPLOAD_PATH_SMILIES.'/'.$save_file_name , "w" ) ; if( ! $fw ) continue ; @fwrite( $fw , $file['content'] ) ; @fclose( $fw ) ; ! $db->query( "INSERT INTO ".$db->prefix("smiles")." SET smile_url='smilies/".addslashes($save_file_name)."', code='".addslashes(rawurldecode($file_node))."', display=0, emotion=''" ) ; $imported ++ ; } *************** *** 181,187 **** echo " <tr> <td class='$evenodd'>$smiles_id</td> ! <td class='$evenodd'><img src='".XOOPS_UPLOAD_URL.'/'.urlencode($file)."' alt='' /></td> <td class='$evenodd'><input type='text' size='12' name='codes[$smiles_id]' value='".htmlspecialchars($code,ENT_QUOTES)."' /></td> <td class='$evenodd'><input type='text' size='24' name='emotions[$smiles_id]' value='".htmlspecialchars($emotion,ENT_QUOTES)."' /></td> <td class='$evenodd'><input type='checkbox' name='displays[$smiles_id]' ".($display?"checked='checked'":"")." /></td> --- 183,189 ---- echo " <tr> <td class='$evenodd'>$smiles_id</td> ! <td class='$evenodd'><img src='".XOOPS_UPLOAD_URL.'/'.$file."' alt='' /></td> <td class='$evenodd'><input type='text' size='12' name='codes[$smiles_id]' value='".htmlspecialchars($code,ENT_QUOTES)."' /></td> <td class='$evenodd'><input type='text' size='24' name='emotions[$smiles_id]' value='".htmlspecialchars($emotion,ENT_QUOTES)."' /></td> <td class='$evenodd'><input type='checkbox' name='displays[$smiles_id]' ".($display?"checked='checked'":"")." /></td>
Complete with the modifications given here :
Xoops ForumAnd now you got a module AVAMAN which fully works with the Xoops 2.5.1.
Hope it would be useful.