[prev in list] [next in list] [prev in thread] [next in thread]
List: bricolage-commits
Subject: [6608] Added ANY() support to Bric::Util::UserPref.
From: theory () bricolage ! cc
Date: 2005-08-27 17:08:52
Message-ID: 20050827170852.25610.qmail () x1 ! develooper ! com
[Download RAW message or body]
Revision: 6608
Author: theory
Date: 2005-08-27 10:08:50 -0700 (Sat, 27 Aug 2005)
ViewCVS: http://viewsvn.bricolage.cc/?rev=6608&view=rev
Log Message:
-----------
Added ANY() support to Bric::Util::UserPref.
Modified Paths:
--------------
bricolage/trunk/lib/Bric/Changes.pod
bricolage/trunk/lib/Bric/Util/Pref.pm
bricolage/trunk/lib/Bric/Util/UserPref.pm
["r6608-theory.diff" (r6608-theory.diff)]
Modified: bricolage/trunk/lib/Bric/Changes.pod
===================================================================
--- bricolage/trunk/lib/Bric/Changes.pod 2005-08-27 16:58:10 UTC (rev 6607)
+++ bricolage/trunk/lib/Bric/Changes.pod 2005-08-27 17:08:50 UTC (rev 6608)
@@ -58,6 +58,8 @@
=item L<Bric::Util::Priv|Bric::Util::Priv>
+=item L<Bric::Util::UserPref|Bric::Util::UserPref>
+
=back
[David]
Modified: bricolage/trunk/lib/Bric/Util/Pref.pm
===================================================================
--- bricolage/trunk/lib/Bric/Util/Pref.pm 2005-08-27 16:58:10 UTC (rev 6607)
+++ bricolage/trunk/lib/Bric/Util/Pref.pm 2005-08-27 17:08:50 UTC (rev 6608)
@@ -1308,9 +1308,8 @@
"AND p.id = c.object_id AND m.id = c.member__id AND m.active = '1'";
my @params;
while (my ($k, $v) = each %$params) {
- if ($k eq 'id' or $k eq 'manual' or $k eq 'can_be_overridden') {
- $wheres .= " AND p.$k = ?";
- push @params, $v ? 1 : 0;
+ if ($k eq 'id') {
+ $wheres .= ' AND ' . any_where $v, "p.$k = ?", \@params;
} elsif ($k eq 'val_name') {
$wheres .= ' AND '
. any_where $v, 'LOWER(o.description) LIKE LOWER(?)',
@@ -1321,6 +1320,9 @@
$wheres .= ' AND p.id = c2.object_id AND c2.member__id = m2.id'
. " AND m2.active = '1' AND "
. any_where $v, 'm2.grp__id = ?', \@params;
+ } elsif ($k eq 'can_be_overridden' or $k eq 'manual') {
+ $wheres .= ' AND '
+ . any_where(($v ? 1 : 0), "p.$k = ?", \@params);
} elsif ($k eq 'active') {
# Preferences have no active column.
next;
Modified: bricolage/trunk/lib/Bric/Util/UserPref.pm
===================================================================
--- bricolage/trunk/lib/Bric/Util/UserPref.pm 2005-08-27 16:58:10 UTC (rev 6607)
+++ bricolage/trunk/lib/Bric/Util/UserPref.pm 2005-08-27 17:08:50 UTC (rev 6608)
@@ -216,46 +216,54 @@
=over 4
-=item *
+=item id
-id
+User preference ID. May use C<ANY> for a list of possible values.
-=item *
+=item pref_id
-pref_id
+Prefernce ID. May use C<ANY> for a list of possible values.
-=item *
+=item user_id
-user_id
+ID of the user for whom user preferences may be set. May use C<ANY> for a list
+of possible values.
-=item *
+=item name
-description
+Preference name. May use C<ANY> for a list of possible values.
-=item *
+=item description
-default
+Description of the preference. May use C<ANY> for a list of possible values.
-=item *
+=item default
-value
+Default value of the preference. May use C<ANY> for a list of possible values.
-=item *
+=item value
-val_name
+Value to which preference is set. May use C<ANY> for a list of possible
+values.
-=item *
+=item val_name
-manual
+Name of the value. May use C<ANY> for a list of possible values.
-=item *
+=item manual
-opt_type
+Boolean indicating whether a value can be manually entered by the user, rather
+than selected from a list. May use C<ANY> for a list of possible values.
-=item *
+=item opt_type
-grp_id
+The preference option type. May use C<ANY> for a list of possible values.
+=item grp_id
+
+The ID of a Bric::Util::Grp object with which prefereneces may be associated.
+May use C<ANY> for a list of possible values.
+
=back
B<Throws:>
@@ -1120,41 +1128,38 @@
$get_em = sub {
my ($pkg, $params, $href) = @_;
my $tables = 'pref p, usr_pref up LEFT JOIN pref_opt o '
- . 'ON up.pref__id = o.pref__id AND up.value = o.value, '
- . 'member m, pref_member c';
+ . 'ON up.pref__id = o.pref__id AND up.value = o.value, '
+ . 'member m, pref_member c';
my $wheres = 'p.id = up.pref__id AND p.id = c.object_id '
- . "AND m.id = c.member__id AND m.active = '1'";
+ . "AND m.id = c.member__id AND m.active = '1'";
my @params;
while (my ($k, $v) = each %$params) {
if ($k eq 'id') {
- $wheres .= " AND up.id = ?";
- push @params, $v;
+ $wheres .= ' AND ' . any_where $v, 'up.id = ?', \@params;
} elsif ($k eq 'pref_id') {
- $wheres .= " AND p.id = ?";
- push @params, $v;
+ $wheres .= ' AND ' . any_where $v, 'p.id = ?', \@params;
} elsif ($k eq 'val_name') {
- $wheres .= " AND LOWER(o.description) LIKE ?";
- push @params, lc $v;
+ $wheres .= ' AND '
+ . any_where 'LOWER(o.description) LIKE LOWER(?)', \@params;
} elsif ($k eq 'grp_id') {
# Add in the group tables a second time and join to them.
- $tables .= ", member m2, pref_member c2";
- $wheres .= " AND p.id = c2.object_id AND c2.member__id = m2.id" .
- " AND m2.active = '1' AND m2.grp__id = ?";
- push @params, $v;
+ $tables .= ', member m2, pref_member c2';
+ $wheres .= ' AND p.id = c2.object_id AND c2.member__id = m2.id'
+ . " AND m2.active = '1' AND "
+ . any_where $v, 'm2.grp__id = ?', \@params;
} elsif ($k eq 'user_id') {
- $wheres .= ' AND up.usr__id = ?';
- push @params, $v;
+ $wheres .= ' AND ' . any_where $v, 'up.usr__id = ?', \@params;
} elsif ($k eq 'can_be_overridden') {
- $wheres .= " AND p.can_be_overridden = ?";
- push @params, $v ? 1 : 0;
+ $wheres .= ' AND '
+ . any_where $v, 'p.can_be_overridden = ?', \@params;
} elsif ($k eq 'active') {
# Preferences have no active column.
next;
} else {
$k = 'def' if $k eq 'default';
- # It's a varchar field.
- $wheres .= " AND LOWER(p.$k) LIKE ?";
- push @params, lc $v;
+ # It's a string attribute.
+ $wheres .= ' AND '
+ . any_where $v, "LOWER(p.$k) LIKE LOWER(?)", \@params;
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic