подумал, что возможэно не целесобразно так делать, как тут сделать запрос? тут нужно if else использовать?
просто некоторые вещи иудт из вне...
и приходиться вынмиать, а потом удалять...
или правильно так как есть будет?
Код: Выделить всё
my $dbh = $c->model('DBI')->dbh;
my $sth = $dbh->prepare("SELECT id_co,
id_un,
id_se,
heading_name_co,
active_co,
hiden_co,
hiden_g_co,
close_co,
created
FROM content
WHERE id_se = ?
$sql
ORDER BY heading_name_co desc
");
$sth->execute($args[0]);
my @loop_data = ();
$sth->execute(); while (my $ref = $sth->fetchrow_hashref()) { push(@loop_data, $ref); }
$sth->finish();
$sth->finish();
foreach $_ (@loop_data) {
if ($_->{active_co} == 0 && ($_->{id_un} != $c->user->{user}->{id}
|| !$c->check_user_roles('moder_se') ) ) {
$_->{no_show_co} = 1;
}
if ($_->{id_un} == $c->user->{user}->{id}
|| $c->check_user_roles('moder_se') ) {
$_->{modering_co} = 1;
}
if ($_->{hiden_co} == 1 && ($_->{id_un} != $c->user->{user}->{id}
|| !$c->check_user_roles('moder_se') ) ) {
$_->{no_show_co} = 1;
}
if ($_->{hiden_g_co} == 1 && $c->user_exists() == 0 ) {
$_->{no_show_co} = 1;
}
$_->{close_se} = $_->{close_se} == 1 ? '1' : undef;
$_->{active_co} = $_->{active_co} == 0 ? '1' : undef;
$_->{edit_active_co} = $c->check_user_roles('moder_co') ? '1' : undef;
$_->{edit_close_co} = $c->check_user_roles('moder_co') ? '1' : undef;
}
for my $loopindex (0..@loop_data) {
for my $key (keys %{$loop_data[$loopindex]})
{
#print "$key => @{$loop_data}[$loopindex]{$key},";
###
# тут я не дописал, типо удалить то что не показывать $_->{no_show_co} = 1;
###
splice @{$loop_data}, $loopindex;
}
}
if (@loop_data) {
$c->stash->{messages} = \@loop_data;
} else {
$c->stash->{messages_error} = 1;
}