'format_string',
'layout_xml', # FIXME: all layouts should be stored in xml format to greatly simplify handling -chris_n
'creator',
+ 'units',
+ 'start_label',
);
if (scalar(@_) >1) {
my %given_params = @_;
return $exit_code;
}
+use constant PRESET_FIELDS => [qw(title author isbn issn itemtype barcode itemcallnumber)];
sub new {
my $invocant = shift;
my $self = '';
if (_check_params(@_) eq 1) {
- return;
+ return -1;
}
my $type = ref($invocant) || $invocant;
if (grep {$_ eq 'Labels'} @_) {
$self = {
+ layout_xml => '',
+ units => 'POINT',
+ start_label => 1,
barcode_type => 'CODE39',
printing_type => 'BAR',
layout_name => 'DEFAULT',
font_size => 3,
callnum_split => 0,
text_justify => 'L',
- format_string => 'title, author, isbn, issn, itemtype, barcode, callnumber',
+ format_string => join(', ', @{ PRESET_FIELDS() }),
@_,
};
}
my %opts = @_;
my $type = ref($invocant) || $invocant;
my $query = "SELECT * FROM creator_layouts WHERE layout_id = ? AND creator = ?";
- #warn "QUERY: $query\n"; #XXX Remove
- #warn "PARAMS: layout_id=" . $opts{'layout_id'} . " creator=" . $opts{'creator'} . "\n"; #XXX Remove
my $sth = C4::Context->dbh->prepare($query);
$sth->execute($opts{'layout_id'}, $opts{'creator'});
if ($sth->err) {
warn sprintf('Database returned the following error: %s', $sth->errstr);
- return;
+ return -1;
}
my $self = $sth->fetchrow_hashref;
bless ($self, $type);
warn sprintf('Database returned the following error on attempted DELETE: %s', $sth->errstr);
return -1;
}
- return; # return no error code on success
}
sub save {
$sth->execute(@params);
if ($sth->err) {
warn sprintf('Database returned the following error: %s', $sth->errstr);
- return;
+ return -1;
}
return $self->{'layout_id'};
}
$sth->execute(@params);
if ($sth->err) {
warn sprintf('Database returned the following error: %s', $sth->errstr);
- return;
+ return -1;
}
my $sth1 = C4::Context->dbh->prepare("SELECT MAX(layout_id) FROM creator_layouts;");
$sth1->execute();
sub get_attr {
my $self = shift;
if (_check_params(@_) eq 1) {
- return;
+ return -1;
}
my ($attr) = @_;
if (exists($self->{$attr})) {
return $self->{$attr};
}
+ else {
+ return -1;
+ }
return;
}
sub set_attr {
my $self = shift;
if (_check_params(@_) eq 1) {
- return;
+ return -1;
}
my %attrs = @_;
foreach my $attrib (keys(%attrs)) {
my $string = '';
my $strwidth = 0;
my $col_count = 0;
- my $textlimit = $params{'label_width'} - ( 3 * $params{'left_text_margin'});
+ my $textlimit = $params{'label_width'} - (( 3 * $params{'left_text_margin'} ) || 13.5 );
while ($strwidth < $textlimit) {
$string .= '0';
=head2 get_attr($attribute)
- Invoking the I<get_attr> method will return the value of the requested attribute or undef on error.
+ Invoking the I<get_attr> method will return the value of the requested attribute or -1 on errors.
example:
C<my $value = $layout->get_attr($attribute);>