You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							81 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							81 lines
						
					
					
						
							2.0 KiB
						
					
					
				| module AvatarHelper
 | |
|   
 | |
|   AVATAR_SIZE="50x50"
 | |
| 
 | |
|   def copy_avatar(des, src)
 | |
|     src_file = disk_filename(src.class,src.id)
 | |
|     des_file = disk_filename(des.class,des.id)
 | |
| 
 | |
|     FileUtils.cp(src_file, des_file) if File.exist?(src_file)
 | |
|   end
 | |
|   
 | |
|   def avatar_image(source, copyed=false)
 | |
|     source_type = source.class
 | |
|     source_id = source.id
 | |
| 
 | |
|     course = Course.find(source_id) rescue nil
 | |
|     if course && copyed
 | |
|       source_id  = course.is_copy
 | |
|     end
 | |
| 
 | |
|     File.join(relative_path, avatar_directory(source_type), source_id.to_s)
 | |
|   end
 | |
|      
 | |
|   def relative_path
 | |
|     "avatars" #File.join("images","avatars")
 | |
|   end   
 | |
|   
 | |
|   def storage_path 
 | |
|     File.join(Rails.root, "public", "images", relative_path)
 | |
|   end
 | |
|   
 | |
|   def avatar_directory(source_type)
 | |
|     "#{source_type}"
 | |
|   end
 | |
|   
 | |
|   def avatar_filename(source_id,image_file)
 | |
|     "#{source_id}" #<< file_extension(image_file)
 | |
|   end
 | |
|   
 | |
|   def disk_filename(source_type,source_id,image_file=nil)
 | |
|     File.join(storage_path,avatar_directory(source_type),avatar_filename(source_id,image_file))
 | |
|   end
 | |
| 
 | |
|   def copy_course?(source_type, source_id)
 | |
|     file= disk_filename(source_type, source_id)
 | |
|     if source_type == Course && !File.exist?(file)
 | |
|       course = Course.find(source_id) rescue nil
 | |
|       if course && course.is_copy>0
 | |
|         return true
 | |
|       end
 | |
|     end
 | |
|     false
 | |
|   end
 | |
|   
 | |
|   def file_extension(filename=nil)
 | |
|     $1 if filename =~ %r{(\.[a-zA-Z0-9]+)$}
 | |
|   end
 | |
|   
 | |
|   def get_avatar(source)
 | |
|     if source.nil? 
 | |
|       return File.join(relative_path,'AnonymousUser','0')      
 | |
|     end
 | |
|     if source.class && source.id && File.exist?(disk_filename(source.class,source.id))
 | |
|       avatar_image(source, false)
 | |
|     elsif copy_course?(source.class, source.id)
 | |
|       get_avatar(Course.find(source.is_copy)) rescue nil
 | |
|     else
 | |
|       File.join(relative_path,avatar_directory(source.class),'0')
 | |
|     end
 | |
|   end
 | |
|   
 | |
|   def get_avatar?(source)
 | |
|     if source && File.exist?(disk_filename(source.class,source.id))
 | |
|       return true
 | |
|     else
 | |
|       return false
 | |
|     end    
 | |
|   end
 | |
|   
 | |
| end
 |