- Timestamp:
- 04/15/09 04:59:53 (15 years ago)
- Location:
- trunk/lib/Vote
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/Vote/DB.pm
r198 r199 92 92 sub poll { 93 93 my ($self, $pollid) = @_; 94 Vote::DB::Poll->new($self->{dbstring}, $ pollid);94 Vote::DB::Poll->new($self->{dbstring}, $self->poll_id_from_uid($pollid)); 95 95 } 96 96 97 97 sub results { 98 98 my ($self, $pollid) = @_; 99 Vote::DB::Poll::Results->new($self->{dbstring}, $ pollid);99 Vote::DB::Poll::Results->new($self->{dbstring}, $self->poll_id_from_uid($pollid)); 100 100 } 101 101 -
trunk/lib/Vote/DB/Poll.pm
r198 r199 38 38 sub voteid { $_[0]->{voteid} } 39 39 40 sub uid { 41 my ($self) = @_; 42 # UID will come only with epoll 2.0, if no uid, using key 43 return $self->info('uid') || $self->voteid; 44 } 45 40 46 sub setup { 41 47 my ($self) = @_; … … 43 49 free_choice => 0, 44 50 choice_count => 1, 45 ); 46 } 51 uid => Vote::DB::common::gen_uid(), 52 ); 53 } 54 55 sub _online_f { qw(label start end owner password) } 47 56 48 57 sub param { … … 50 59 51 60 keys %attr or return; 52 my @online_f = qw(label start end owner password);61 my @online_f = _online_f(); 53 62 54 63 if (grep { exists($attr{$_}) } @online_f) { … … 97 106 } 98 107 99 sub info {108 sub _info { 100 109 my ($self) = @_; 101 110 … … 114 123 my $res = $sth->fetchrow_hashref; 115 124 $sth->finish; 116 if ($res) { 125 $res 126 } 127 128 sub info { 129 my ($self, $var) = @_; 130 131 my $default = { 132 free_choice => 0, # avoid undef in some case 133 }; 134 135 if ($var) { 136 if (grep { $var eq $_ } (_online_f(), qw(dstart hstart dend hend))) { 137 return $self->_info->{$var}; 138 } else { 139 my $sth = $self->db->prepare_cached( 140 q{select val from settings where poll = ? and var = ?} 141 ); 142 $sth->execute($self->voteid, $var); 143 my $res = $sth->fetchrow_hashref; 144 $sth->finish; 145 return defined($res->{$var}) 146 ? $res->{$var} 147 : $default->{$var}; 148 } 149 } 150 151 if (my $res = $self->_info) { 117 152 my $get = $self->db->prepare_cached( 118 153 q{select var, val from settings where poll = ?} … … 122 157 $res->{$set->{var}} = $set->{val}; 123 158 } 124 } 125 $res->{free_choice} ||= 0; # avoiding undef 126 $res 159 foreach (keys %$default) { 160 $res->{$_} = $default->{$_} if (!defined($res->{$_})); 161 } 162 return $res 163 } 127 164 } 128 165 -
trunk/lib/Vote/DB/common.pm
r198 r199 119 119 } 120 120 121 sub poll_id_from_uid { 122 my ($self, $uid) = @_; 123 if (length($uid) == 32) { 124 my $sth = $self->db->prepare_cached( 125 q{ select poll from settings where var = 'uid' and val = ? 126 order by poll } 127 ); 128 $sth->execute($uid); 129 my $res = $sth->fetchrow_hasref; 130 $sth->finish; 131 return $res->{poll} || $uid; 132 } 133 $uid 134 } 135 121 136 sub gen_uid { 122 137 unpack("H*", join("", map { chr(rand(256)) } (0..15)))
Note: See TracChangeset
for help on using the changeset viewer.