コード例 #1
0
ファイル: default.php プロジェクト: politik86/test2
$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;
			}
		}
コード例 #2
0
ファイル: view.html.php プロジェクト: politik86/test2
 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 . "&nbsp;" . JText::_("AD_CAMP_IMP");
     }
     if ($package_row->type == "pc") {
         $package_row->details = $package_row->quantity . "&nbsp;" . 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);
 }