$lists = $this->lists; $params = $this->params; $configs = $this->configs; require_once JPATH_BASE . DS . "components" . DS . "com_adagency" . DS . "helpers" . DS . "helper.php"; $user = JFactory::getUser(); $listDirn = "asc"; $listOrder = "ordering"; $saveOrderingUrl = 'index.php?option=com_adagency&controller=adagencyCampaigns&task=saveOrderAjax&tmpl=component'; JHtml::_('sortablelist.sortable', 'articleList', 'adminForm', strtolower($listDirn), $saveOrderingUrl); JHtml::_('bootstrap.tooltip'); JHtml::_('behavior.multiselect'); JHtml::_('dropdown.init'); JHtml::_('behavior.modal'); JHtml::_('bootstrap.modal'); $helper = new adagencyAdminHelper(); $helperView = new adagencyAdminViewadagencyCampaigns(); $document = JFactory::getDocument(); $document->addStyleSheet(JURI::root() . "components/com_adagency/includes/css/adag_tip.css"); $from = JRequest::getVar("from", ""); $active = JRequest::getVar("active", ""); ?> <script type="text/javascript"> Joomla.submitbutton = function(pressbutton){ if(pressbutton == "add"){ if(eval(document.getElementById("cb0"))){ document.getElementById("campaign-light").style.display = ""; document.getElementById("light-modal-background").style.display = ""; return false; } }
function editForm($tpl = null) { $helper = new adagencyAdminModeladagencyCampaigns(); $helperView = new adagencyAdminViewadagencyCampaigns(); $current_selected = NULL; $db = JFactory::getDBO(); $camp = $this->get('Campaign'); $data = JRequest::get('request'); $isNew = $camp->id < 1; if (!isset($camp->id)) { $camp->id = 0; } //$jnow = JFactory::getDate(); $offset = JFactory::getApplication()->getCfg('offset'); $jnow = JFactory::getDate('now', $offset); $JApp = JFactory::getApplication(); $JApp->getCfg('offset'); if ($camp->id == 0) { $camp->start_date = $jnow->toSql(true); } $text = $isNew ? JText::_('New') : JText::_('Edit'); $advertiser_id = JRequest::getVar('advertiser_id', ''); $aid = JRequest::getVar('aid', '', 'request'); $task = JRequest::getVar('task', '', 'get'); JToolBarHelper::title(JText::_('AD_NEW_CAMPAIGN') . ":<small>[" . $text . "]</small>"); JToolBarHelper::save(); if ($isNew) { JToolBarHelper::cancel(); } else { JToolBarHelper::cancel('cancel', 'Close'); } $configs = $this->_models['adagencyconfig']->getConfigs(); $configs->params = @unserialize($configs->params); $configs->payment = @unserialize($configs->payment); if (!isset($configs->params['timeformat'])) { $configs->params['timeformat'] = -1; } if ($aid != NULL) { $adv_condition = " AND a.aid=" . $aid; } if ($isNew == 0) { $rows = $helper->getlistPackages(); } elseif ($isNew == 1 && ($aid == NULL || $aid == 0)) { $lists['package'] = JText::_('AD_WARN_SEL_ADV'); } elseif ($isNew == 1 && ($aid != NULL || $aid != 0)) { if (!isset($adv_condition)) { $adv_condition = ""; } $sql_pack = "SELECT DISTINCT a.notes AS description, b.tid\n FROM #__ad_agency_order AS a, #__ad_agency_order_type AS b\n WHERE a.notes = b.description " . $adv_condition . " GROUP BY description"; $db->setQuery($sql_pack); // $rows=$this->getModel()->_getList($sql_pack); $rows = $db->loadObjectList(); $cond2 = NULL; $lists['package'] = "<select id='otid' class='inputbox' size='1' name='otid' onchange='submitbutton(\"edit\");'>\n <option value='0'>" . JText::_("AD_SELECT_PACKAGE") . "</option>"; if (isset($rows) && $rows != NULL) { foreach ($rows as $value) { $cond2 .= "," . $value->tid; if (isset($data['otid']) && $data['otid'] == $value->tid) { $current_selected = "selected='selected'"; } else { $current_selected = NULL; } $lists['package'] .= "<option value='" . $value->tid . "' " . $current_selected . ">" . $value->description . "</option>"; } } $sql_pack2 = "SELECT tid,description FROM #__ad_agency_order_type\n WHERE tid NOT IN (-1" . $cond2 . ") "; $db->setQuery($sql_pack2); // $rows2=$this->getModel()->_getList($sql_pack2); $rows2 = $db->loadObjectList(); if (isset($rows2) && $rows2 != NULL) { foreach ($rows2 as $value) { if (isset($data['otid']) && $data['otid'] == $value->tid) { $current_selected = "selected='selected'"; } else { $current_selected = NULL; } $lists['package'] .= "<option value='" . $value->tid . "' " . $current_selected . " style='font-size: 12px; color: #FF0000;'>" . $value->description . "</option>"; } } $lists['package'] .= "</select>"; } if (isset($rows)) { for ($i = 0, $n = count($rows); $i < $n; $i++) { $row =& $rows[$i]; if ($row->tid == $camp->otid) { $package_row = $row; } } } if ($advertiser_id > 0) { $camp->aid = $advertiser_id; } $creat = false; $b_with_size = false; $with_size = NULL; $types = NULL; //echo "<pre>";var_dump($camp);die(); if (isset($camp->id) && $camp->id > 0 || isset($data['otid'])) { $types = array("'a'", "'b'"); $rem_pack = false; if (!isset($package_row->type) || $package_row->type == NULL) { $rem_pack = true; $rows = $helper->getlistPackages(); if (isset($rows)) { for ($i = 0, $n = count($rows); $i < $n; $i++) { $row =& $rows[$i]; if ($row->tid == $data['otid']) { $package_row = $row; } } } } @($package_row->allzones = $this->_models['adagencycampaigns']->getZonesForPack($package_row->tid)); if (is_array($package_row->allzones)) { foreach ($package_row->allzones as $element) { $b_with_size = false; $element->adparams = @unserialize($element->adparams); $types = array("'a'", "'b'"); if (isset($element->adparams) && is_array($element->adparams)) { foreach ($element->adparams as $key => $value) { if ($key == 'affiliate') { $types[] = "'Advanced'"; $b_with_size = true; } if ($key == 'textad') { $types[] = "'TextLink'"; } if ($key == 'standard') { $types[] = "'Standard'"; $b_with_size = true; } if ($key == 'flash') { $types[] = "'Flash'"; $b_with_size = true; } if ($key == 'popup') { $types[] = "'Popup'"; } if ($key == 'transition') { $types[] = "'Transition'"; } if ($key == 'floating') { $types[] = "'Floating'"; } } $types[] = "'Jomsocial'"; if ($b_with_size == true) { if (isset($element->adparams['width']) && $element->adparams['width'] != '') { $with_size = " AND b.width ='" . $element->adparams['width'] . "' AND b.height='" . $element->adparams['height'] . "'"; } else { $with_size = NULL; } } else { $with_size = NULL; } $types2[] = "(b.media_type IN (" . implode(',', $types) . ")" . $with_size . ")"; } } if (is_array(@$types2)) { @($types2 = " AND (" . implode(" OR ", @$types2) . ")"); } } if ($rem_pack) { $package_row = NULL; } } else { $types2 = NULL; } if ($camp->aid <= 0) { if (isset($_POST['id']) && $_POST['id'] != 0) { $camp = $this->get('Campaign'); $camp->aid = $advertiser_id; } else { $camp->aid = 0; $camp->start_date = $jnow->toSql(true); } $creat = true; } else { $advertiser_id = $camp->aid; $creat = false; } if (isset($advertiser_id) && $advertiser_id > 0) { $advt = $helper->getAdvById($advertiser_id); } else { $advt = NULL; } //echo "<pre>";var_dump($advt);echo "</pre><hr />";//die(); if ($camp->id > 0 && $camp->aid > 0) { $disable_advertiser = " disabled='disabled' readonly='readonly' "; } else { $disable_advertiser = NULL; } $javascript = 'onchange="submitbutton(\'edit\');"'; $advertisers[] = JHTML::_('select.option', "0", JText::_('AD_SELECT_ADVERTISER'), 'aid', 'company'); $advertisersloaded = $helper->getcmplistAdvertisers(); $advertisers = array_merge($advertisers, $advertisersloaded); $lists['advertiser_id'] = JHTML::_('select.genericlist', $advertisers, 'aid', $disable_advertiser . ' class="inputbox" size="1"' . $javascript, 'aid', 'company', $advertiser_id); // Create status list $sts_select = new StdClass(); $sts_select->status = JText::_("ADAG_SEL_STS"); $sts_select->value = ''; $sts_approve = new StdClass(); $sts_approve->status = JText::_("AD_APPROVED"); $sts_approve->value = "Y"; $sts_decline = new StdClass(); $sts_decline->status = JText::_("ADAG_DECLINED"); $sts_decline->value = "N"; $sts_pending = new StdClass(); $sts_pending->status = JText::_("ADAG_PENDING"); $sts_pending->value = 'P'; $statuses[] = $sts_select; $statuses[] = $sts_approve; $statuses[] = $sts_decline; $statuses[] = $sts_pending; if ($isNew) { $status_selected = 'Y'; } else { $status_selected = $camp->approved; } $lists['approved'] = JHTML::_('select.genericlist', $statuses, 'approved', 'class="inputbox" size="1"', 'value', 'status', $status_selected); /////////////////////////////////////////////////////////////////////////////////////////// if (!isset($advertiser_id) || $advertiser_id == '') { $advertiser_id = 0; } $database = JFactory::getDBO(); if ($creat) { $sql = "SELECT id, title, media_type, parameters, width, height , approved, '0' as relative_weighting FROM #__ad_agency_banners AS b WHERE b.advertiser_id={$camp->aid} " . $types2; $database->setQuery($sql); } else { $sql = "SELECT DISTINCT b.id, b.title, b.media_type, b.parameters, b.width, b.height, b.approved, cb.relative_weighting\n FROM #__ad_agency_banners AS b\n LEFT OUTER JOIN #__ad_agency_campaign_banner as cb on cb.campaign_id={$camp->id} AND cb.banner_id=b.id WHERE b.advertiser_id={$camp->aid} " . @$types2; $database->setQuery($sql); } $ban_row = $database->loadObjectList(); for ($i = 0, $n = count($ban_row); $i < $n; $i++) { $ban_row[$i]->parameters = unserialize($ban_row[$i]->parameters); if ($ban_row[$i]->media_type == "Popup") { } elseif ($ban_row[$i]->media_type == "Transition" || $ban_row[$i]->media_type == "Floating" || $ban_row[$i]->media_type == "Advanced" || $ban_row[$i]->media_type == "Popup" && $ban_row[$i]->parameters['popup_type'] == "HTML") { if (@preg_match("/ad_url/", $ban_row[$i]->parameters['ad_code'])) { $ban_row[$i]->display = "yes"; } else { $ban_row[$i]->display = "no"; } } else { $ban_row[$i]->display = "yes"; } unset($ban_row[$i]->parameters); } if (!isset($package_row->tid) && isset($data['otid'])) { $package_row2 = $this->_models['adagencycampaigns']->getPackById($data['otid']); @($package_row2->allzones = $this->_models['adagencycampaigns']->getZonesForPack($package_row2->tid)); } if (isset($ban_row) && (isset($package_row->allzones) || isset($package_row2->allzones))) { $ban_row = $this->_models['adagencycampaigns']->updateMediaType($ban_row); if (isset($package_row->allzones)) { $ban_row = $this->_models['adagencycampaigns']->updateZoneList($ban_row, $package_row->allzones, $camp->id); } else { if (is_array($package_row2->allzones)) { foreach ($package_row2->allzones as $element) { $element->adparams = @unserialize($element->adparams); } } $ban_row = $this->_models['adagencycampaigns']->updateZoneList($ban_row, $package_row2->allzones, $camp->id); } } /////////////////////////////////////////////////////////////////////////////////// if (!isset($package_row->type)) { @($package_row->type = ''); } if ($package_row->type == "cpm") { $package_row->details = $package_row->quantity . " " . JText::_("AD_CAMP_IMP"); } if ($package_row->type == "pc") { $package_row->details = $package_row->quantity . " " . JText::_("AD_CAMP_CLK"); } if ($package_row->type == "fr" || $package_row->type == "in") { $tmp_validity = explode("|", $package_row->validity, 2); if ($tmp_validity[0] == "1") { $package_row->details = $tmp_validity[0] . " " . JText::_("ADAG_" . strtoupper($tmp_validity[1])); } else { $package_row->details = $tmp_validity[0] . " " . JText::_("ADAG_" . strtoupper($tmp_validity[1] . "s")); } //$now_datetime = date("Y-m-d H:i:s"); $now_datetime = $jnow->toSql(true); if ($now_datetime > $camp->start_date) { //CONTINUE } else { $now_datetime = $camp->start_date; } if ($now_datetime > $camp->validity) { $camp->expired = true; } else { $camp->expired = false; //get time difference as days, hours, mins $camp->time_left = $helperView->time_difference($now_datetime, $camp->validity); } } // $now_datetime = $jnow->toSql(true); if (intval($camp->id) > 0) { $stats = array(); $sql = "select * from #__ad_agency_statistics where `impressions` like '%\"advertiser_id\":" . intval($camp->aid) . ",%' OR `impressions` like '%\"advertiser_id\":\"" . intval($camp->aid) . "\",%' OR `click` like '%\"advertiser_id\":" . intval($camp->aid) . ",%' OR `click` like '%\"advertiser_id\":\"" . intval($camp->aid) . "\",%' OR `impressions` like '%\"campaign_id\":" . intval($camp->id) . ",%' OR `impressions` like '%\"campaign_id\":\"" . intval($camp->id) . "\",%' OR `click` like '%\"campaign_id\":" . intval($camp->id) . ",%' OR `click` like '%\"campaign_id\":\"" . intval($camp->id) . "\",%'"; $database->setQuery($sql); $database->query(); $result = $database->loadAssocList(); if (isset($result) && count($result) > 0) { $nr_imp = 0; $nr_click = 0; foreach ($result as $key => $value) { $impressions = @json_decode($value["impressions"], true); $click = @json_decode($value["click"], true); if (isset($impressions) && count($impressions) > 0) { if (!isset($impressions["0"])) { $impressions = array("0" => $impressions); } foreach ($impressions as $key_imp => $value_imp) { if ($value_imp["advertiser_id"] == intval($camp->aid) && $value_imp["campaign_id"] == intval($camp->id)) { $nr_imp += $value_imp["how_many"]; } } } if (isset($click) && count($click) > 0) { if (!isset($click["0"])) { $click = array("0" => $click); } foreach ($click as $key_click => $value_click) { if ($value_click["advertiser_id"] == intval($camp->aid) && $value_click["campaign_id"] == intval($camp->id)) { $nr_click += $value_click["how_many"]; } } } } $stats["impressions"] = $nr_imp; $stats["click"] = $nr_click; if (intval($nr_imp) != 0) { $nr = $nr_click / $nr_imp * 100; } $stats["click_rate"] = number_format($nr, 2, '.', ' '); } if ($camp->validity == "0000-00-00 00:00:00" || $now_datetime < $camp->validity || $camp->default == "Y") { //CONTINUE } else { $now_datetime = $camp->validity; } //get time difference as days, hours, mins //echo "***".$camp->start_date."***";die(); $duration_stats = $helperView->time_difference($camp->start_date, $now_datetime); $stats = array_merge($stats, $duration_stats); } if (!isset($stats)) { $stats = ''; } if (isset($camp->params)) { $camp->params = @unserialize($camp->params); } $camps_ads = $this->get('listCampsAds'); $this->assign('advertiser_id', $advertiser_id); $this->assign("advt", $advt); $this->assign("camp", $camp); $this->assign("stats", $stats); $this->assign("package_row", $package_row); $this->assign("configs", $configs); $this->assign("lists", $lists); $this->assign("task", $task); $this->assign("ban_row", $ban_row); $this->assign("camps_ads", $camps_ads); parent::display($tpl); }