insert_member_data のソース
メンバー情報をまとめて(または指定した ID)挿入(または更新)するための Python Script のソースコードです。
サイズ 3.7 kB - File type text/python-sourceファイルのコンテンツ
## Script (Python) "insert_member_data"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=member_id=None
##title=指定されたメンバーの情報を登録(または全メンバー登録)
##
membership = context.portal_membership
memberdata = context.portal_memberdata
ids = ()
if member_id:
# メンバー ID が指定されている場合
ids = (member_id,)
else:
# 指定されていない場合は全メンバーの ID を取得する
ids = membership.listMemberIds()
for id in ids:
# メンバーデータを辞書型に保存
member_data = {}
member_data['id'] = id
member = membership.getMemberById(id)
member_data['fullname'] = member.getProperty('fullname')
member_data['kananame'] = member.getProperty('kananame')
member_data['nickname'] = member.getProperty('nickname')
member_data['email'] = member.getProperty('email')
member_data['organization'] = member.getProperty('organization')
member_data['workplace'] = member.getProperty('workplace')
member_data['telno'] = member.getProperty('telno')
member_data['telext'] = member.getProperty('telext')
member_data['sex'] = member.getProperty('sex')
member_data['blood'] = member.getProperty('blood')
member_data['location'] = member.getProperty('location')
member_data['hometown'] = member.getProperty('hometown')
member_data['day'] = member.getProperty('day')
member_data['month'] = member.getProperty('month')
member_data['year'] = member.getProperty('year')
member_data['hobby'] = member.getProperty('hobby')
member_data['homepage'] = member.getProperty('homepage')
member_data['skype'] = member.getProperty('skype')
member_data['introduction'] = member.getProperty('introduction')
# 検索用の文字列を生成
member_data['searchable_text'] = string.join((id,
member_data['fullname'],
member_data['kananame'],
member_data['nickname'],
member_data['email'],
member_data['organization'],
member_data['workplace'],
member_data['telno'],
member_data['telext'],
member_data['location'],
member_data['hometown'],
member_data['hobby'],
member_data['homepage'],
member_data['skype'],
member_data['introduction']
))
# 顔写真の URL を取得
member_data['portrait'] = membership.getPersonalPortrait(member_id = id).absolute_url()
member_data['photo'] = '1'
# 顔写真が設定されているかチェック
if (member_data['portrait'].find('defaultUser.gif') != -1):
member_data['portrait'] = ""
member_data['photo'] = '0'
# データがすでに存在するかチェック
if len(container.member_exist(id=id)) == 1:
# メンバー情報更新
container.member_update(member_data)
else:
# メンバー情報登録
container.member_insert(member_data)
return
Click here to get the file