liquid_feedback_frontend
view app/main/member/_action/update_images.lua @ 286:c587d8762e62
Registration process updated for Core 2.0, lockable member fields, notification settings
author | bsw |
---|---|
date | Sat Feb 25 11:51:37 2012 +0100 (2012-02-25) |
parents | 733f65c0c0a0 |
children | 5ae3b8d819c5 |
line source
1 local member_id = app.session.member_id
3 local deleted = 0
4 local updated = 0
6 for i, image_type in ipairs{"avatar", "photo"} do
8 local member_image = MemberImage:by_pk(member_id, image_type, false)
9 local member_image_scaled = MemberImage:by_pk(member_id, image_type, true)
11 if param.get(image_type .. "_delete", atom.boolean) then
12 if member_image then
13 member_image:destroy()
14 end
15 if member_image_scaled then
16 member_image_scaled:destroy()
17 end
18 deleted = deleted + 1
19 else
21 local data = param.get(image_type)
22 if data and #data > 0 and #data < 1024*1024 then
23 local convert_func = config.member_image_convert_func[image_type]
24 local data_scaled, err, status = convert_func(data)
25 if status ~= 0 or data_scaled == nil then
26 slot.put_into("error", _"Error while converting image. Please note, that only JPG files are supported!")
27 return false
28 end
30 if not member_image then
31 member_image = MemberImage:new()
32 member_image.member_id = member_id
33 member_image.image_type = image_type
34 member_image.scaled = false
35 member_image.content_type = cgi.post_types[image_type] or nil
36 member_image.data = ""
37 member_image:save()
38 end
40 if not member_image_scaled then
41 member_image_scaled = MemberImage:new()
42 member_image_scaled.member_id = member_id
43 member_image_scaled.image_type = image_type
44 member_image_scaled.scaled = true
45 member_image_scaled.content_type = config.member_image_content_type
46 member_image_scaled.data = ""
47 member_image_scaled:save()
48 end
50 if data and #data > 0 then
51 db:query{ "UPDATE member_image SET data = $ WHERE member_id = ? AND image_type='" .. image_type .. "' AND scaled=FALSE", { db:quote_binary(data) }, app.session.member.id }
52 end
54 if data_scaled and #data_scaled > 0 then
55 db:query{ "UPDATE member_image SET data = $ WHERE member_id = ? AND image_type='" .. image_type .. "' AND scaled=TRUE", { db:quote_binary(data_scaled) }, app.session.member.id }
56 end
58 updated = updated + 1
59 end
60 end
61 end
63 if updated > 0 then
64 slot.put_into("notice", _("#{number} Image(s) has been updated", { number = updated }))
65 end
66 if updated > 0 and deleted > 0 then
67 slot.put_into("notice", " · ")
68 end
69 if deleted > 0 then
70 slot.put_into("notice", _("#{number} Image(s) has been deleted", { number = deleted }))
71 end
73 if updated == 0 and deleted == 0 then
74 slot.put_into("warning", _("No changes to your images were made"))
75 end