it's hard out here for a pimp, but the ad rotation system doesn't skimp = it's done!

This commit is contained in:
JT Smith 2006-04-07 02:58:14 +00:00
parent 540523d6dd
commit 91a620a9f5
2 changed files with 11 additions and 6 deletions

View file

@ -47,10 +47,11 @@ The unique ID of the ad that was clicked.
=cut =cut
sub countClick { sub countClick {
my $self = shift; my $class = shift;
my $session = shift;
my $id = shift; my $id = shift;
my ($url) = $self->session->db->quickArray("select url from advertisement where adId=?",[$id]); my ($url) = $session->db->quickArray("select url from advertisement where adId=?",[$id]);
$self->session->db->write("update advertisement set clicks=clicks+1 where adId=?",[$id]); $session->db->write("update advertisement set clicks=clicks+1 where adId=?",[$id]);
return $url; return $url;
} }
@ -124,10 +125,10 @@ sub displayImpression {
my $self = shift; my $self = shift;
my ($id, $ad, $priority, $clicks, $clicksBought, $impressions, $impressionsBought) = $self->session->db->quickArray("select adId, renderedAd, priority, clicks, clicksBought, impressions, impressionsBought from advertisement where adSpaceId=? and isActive=1 order by nextInPriority asc limit 1",[$self->getId]); my ($id, $ad, $priority, $clicks, $clicksBought, $impressions, $impressionsBought) = $self->session->db->quickArray("select adId, renderedAd, priority, clicks, clicksBought, impressions, impressionsBought from advertisement where adSpaceId=? and isActive=1 order by nextInPriority asc limit 1",[$self->getId]);
my $isActive = 1; my $isActive = 1;
if ($clicks > $clicksBought && $impressions > $impressionsBought) { if ($clicks >= $clicksBought && $impressions >= $impressionsBought) {
$isActive = 0; $isActive = 0;
} }
$self->session->db->write("update advertisement set impressions=impressions+1, nextInPriority=?, isActive=? where adId=?", [time()+$priority, $id, $isActive]); $self->session->db->write("update advertisement set impressions=impressions+1, nextInPriority=?, isActive=? where adId=?", [time()+$priority, $isActive, $id]);
return $ad; return $ad;
} }

View file

@ -38,7 +38,7 @@ Handles a click on an advertisement.
sub www_clickAd { sub www_clickAd {
my $session = shift; my $session = shift;
my $id = $session->form->param("adId"); my $id = $session->form->param("id");
return undef unless $id; return undef unless $id;
my $url = WebGUI::AdSpace->countClick($session, $id); my $url = WebGUI::AdSpace->countClick($session, $id);
$session->http->setRedirect($url); $session->http->setRedirect($url);
@ -196,6 +196,10 @@ sub www_editAd {
hoverHelp=>$i18n->get("image help"), hoverHelp=>$i18n->get("image help"),
name=>"image" name=>"image"
); );
if (defined $ad && $ad->get("storageId")) {
my $storage = WebGUI::Storage::Image->get($session, $ad->get("storageId"));
$f->readOnly(value=>'<img src="'.$storage->getUrl($storage->getFiles->[0]).'" style="border: 0px;" />');
}
$f->fieldSetEnd; $f->fieldSetEnd;
$f->fieldSetStart($i18n->get("rich")); $f->fieldSetStart($i18n->get("rich"));
my $value = $ad->get("richMedia") if defined $ad; my $value = $ad->get("richMedia") if defined $ad;