/usr/local/CPAN/Teamspeak/Teamspeak/SQL/Channel.pm
# $Id: Channel.pm 37 2008-03-09 01:10:00Z maletin $
# $URL: http://svn.berlios.de/svnroot/repos/cpan-teamspeak/cpan/trunk/lib/Teamspeak/SQL/Channel.pm $
package Teamspeak::SQL::Channel;
my @ISA = qw( Teamspeak::Channel );
my @_parameter = (
's_channel_description', 'dt_channel_created',
's_channel_name', 'i_channel_parent_id',
'i_channel_codec', 'b_channel_flag_hierarchical',
's_channel_topic', 'i_channel_order',
's_channel_password', 'b_channel_flag_moderated',
'b_channel_flag_default', 'i_channel_maxusers',
'i_channel_server_id'
);
sub store {
my $self = shift;
my $sql
= "update ts2_channels set "
. join( ', ', map {"$_ = ?"} @_parameter )
. " where i_channel_id = ?";
my $rows_affected
= $self->{dbh}->do( $sql, {}, map( { $self->{$_} } @_parameter ),
$self->{i_channel_id} );
if ( $rows_affected == 1 or $rows_affected == 0 ) {
return 1; # Even unmodified Channels report sucess.
}
else {
$self->{err} = 1;
$self->{errstr} = "$rows_affected Channels modified.";
return 0; # should never happen, because i_channel_id is primary key.
}
} # Teamspeak::Channel::store
sub parameter {
my $self = shift;
return map { $_ =~ m/.+_channel_(.*)/; $1 } @_parameter;
} # Teamspeak::Channel::parameter