function storeUnlimiteAd() { require JPATH_SITE . DS . "administrator" . DS . "components" . DS . "com_socialads" . DS . "config" . DS . "config.php"; $data = JRequest::get('post'); $data = $this->dataSanitize($data); $user = JFactory::getUser(); $img = str_replace(JUri::base(), '', $data['upimgcopy']); if ($img == '') { $img = str_replace(JUri::base(), '', $data['upimg']); } $build = new stdClass(); $build->ad_id = ''; $build->ad_creator = $user->id; foreach ($data['addata'] as $addata) { foreach ($addata as $k => $ad) { $build->{$k} = $ad; } } //ANIKET $buildadsession = JFactory::getSession(); if (empty($data['camp_name'])) { $buildadsession->set('camp', $data['camp']); } else { $buildadsession->set('camp', $data['camp_name']); $buildadsession->set('value', $data['camp_amount']); } $buildadsession->set('pricing_opt', $data['pricing_opt']); if ($socialads_config['select_campaign'] == 1) { $db = JFactory::getDBO(); $query = "SELECT campaign FROM #__ad_campaign WHERE campaign ='" . $buildadsession->get('camp') . "'"; $db->setQuery($query); $campaign = $db->loadResult(); if (empty($campaign)) { $query = "INSERT INTO #__ad_campaign (campaign,user_id,daily_budget,camp_published) VALUES ('" . $buildadsession->get('camp') . "'," . $user->id . "," . $buildadsession->get('value') . ",1)"; $db->setQuery($query); $db->execute(); } $query = "SELECT camp_id FROM #__ad_campaign WHERE campaign ='" . $buildadsession->get('camp') . "'"; $db->setQuery($query); $camp_id = $db->loadResult(); $build->camp_id = $camp_id; //$build->ad_payment_type = $buildadsession->get('pricing_opt'); } $build->ad_image = $img; $build->ad_created_date = date('Y-m-d H:i:s'); $build->ad_published = 1; $build->ad_approved = 1; $build->ad_noexpiry = 1; if (isset($data['guestbutton'])) { $buildadsession->set('guestbutton', $data['guestbutton']); $guest = $buildadsession->get('guestbutton'); } $geoflag = 0; if (isset($data['geo']) || !empty($data['geo'])) { foreach ($data['geo'] as $geo) { if (!empty($geo)) { $geoflag = 1; break; } } } if (isset($data['geo_target']) && !$geoflag && !isset($data['social_target']) || !isset($data['geo_target']) && !isset($data['social_target'])) { if ($data['context_target'] != "on" || $data['context_target'] == "on" && !$data['context_target_data_keywordtargeting']) { $build->ad_guest = 1; } } //Extra Code For Zone $adzone = ''; if ($data['ad_zone_id'] != '') { $adzone = $data['ad_zone_id']; } else { $adzone = $data['adzone']; } $build->ad_zone = $adzone; $build->layout = $data['layout']; //Extra Code For Zone //insert fields if (!$this->_db->insertObject('#__ad_data', $build, 'ad_id')) { echo $this->_db->stderr(); return false; } /*start of geo*/ if ($socialads_config['geo_target'] && isset($data['geo_target'])) { if ($geoflag) { $first_key = array_keys($data['geo']); $type = str_replace("by", "", $data['geo_type']); $fielddata = new stdClass(); $fielddata->ad_id = $build->ad_id; foreach ($data['geo'] as $key => $value) { if ($first_key[0] == $key) { $fielddata->{$key} = $value; } else { if ($type == $key) { $fielddata->{$key} = $value; } else { if ($data['geo_type'] == "everywhere") { break; } } } } if (!$this->_db->insertObject('#__ad_geo_target', $fielddata, 'id')) { echo $this->_db->stderr(); return false; } } } /*end of geo*/ $var = new socialadshelper(); $adfields = $var->chkadfields(); if (!empty($adfields) && isset($data['social_target'])) { //For saving demographic details $fielddata = new stdClass(); $fielddata->adfield_id = ''; $fielddata->adfield_ad_id = $this->_db->insertid(); $date_low = date('Y-m-d 00:00:00', mktime(0, 0, 0, 01, 1, 1910)); $date_high = date('Y-m-d 00:00:00', mktime(0, 0, 0, 01, 1, 2030)); $grad_low = 0; $grad_high = 2030; foreach ($data['mapdata'] as $mapdata) { foreach ($mapdata as $m => $map) { if ($m) { if (strstr($m, ',')) { $selcheck = explode(',', $m); $var = isset($fielddata->{$selcheck}[0]); } else { $var = isset($fielddata->{$m}); } if (!$var) { if (strstr($m, '|')) { $rangecheck = explode('|', $m); if ($rangecheck[2] == 0) { if ($map) { if ($rangecheck[1] == 'daterange') { $date_low = $map; } elseif ($rangecheck[1] == 'numericrange') { $grad_low = $map; } } if ($rangecheck[1] == 'daterange') { $fielddata->{$rangecheck}[0] = $date_low; } elseif ($rangecheck[1] == 'numericrange') { $fielddata->{$rangecheck}[0] = $grad_low; } //0 } elseif ($rangecheck[2] == 1) { if ($map) { if ($rangecheck[1] == 'daterange') { $date_high = $map; } elseif ($rangecheck[1] == 'numericrange') { $grad_high = $map; } } if ($rangecheck[1] == 'daterange') { $fielddata->{$rangecheck}[0] = $date_high; } elseif ($rangecheck[1] == 'numericrange') { $fielddata->{$rangecheck}[0] = $grad_high; } //2030 } } elseif (strstr($m, ',')) { $selcheck = explode(',', $m); if ($selcheck[1] == 'select') { if ($map) { $fielddata->{$selcheck}[0] = '|' . $map . '|'; } else { $fielddata->{$selcheck}[0] = $map; } } } else { $fielddata->{$m} = $map; } } else { if (strstr($m, ',')) { $selcheck = explode(',', $m); if ($selcheck[1] == 'select') { $fielddata->{$selcheck}[0] .= '|' . $map . '|'; } } else { $fielddata->{$m} .= '|' . $map . '|'; } //$fielddata->$m .= ','.$map; } } } } JPluginHelper::importPlugin('socialadstargeting'); $dispatcher = JDispatcher::getInstance(); $results = $dispatcher->trigger('onFrontendTargetingSave', array($profile)); for ($i = 0; $i < count($results); $i++) { if ($results[$i] != "") { foreach ($results[$i] as $key => $value) { $fielddata->{$key} = $value; } } } //insert fields if (!$this->_db->insertObject('#__ad_fields', $fielddata, 'adfield_id')) { echo $this->_db->stderr(); return false; } } //chk empty ad_fields $ad_id = $build->ad_id; /*start of context*/ if ($socialads_config['context_target'] && $data['context_target'] == "on") { $context_adfields = $data['context_target_data_keywordtargeting']; if ($context_adfields) { $fielddata = new stdClass(); $fielddata->id = ''; $fielddata->ad_id = $build->ad_id; $fielddata->keywords = trim(strtolower($context_adfields)); /*$keyarr=explode(',',$fielddata->keywords); foreach($keyarr as $keyword) { if(strlen($keyword)<=3) { $no_of_chars=3-strlen($keyword); for($i=0;$i<$no_of_chars;$i++) { $keyword=$keyword.'8'; } } $newkeyarr[]=$keyword; } $keystr=implode(',',$newkeyarr); $fielddata->keywords=$keystr;*/ if (!$this->_db->insertObject('#__ad_contextual_target', $fielddata, 'id')) { echo $this->_db->stderr(); return false; } } } /*end of context*/ return $build->ad_id; }
function store() { require JPATH_SITE . DS . "administrator" . DS . "components" . DS . "com_socialads" . DS . "config" . DS . "config.php"; global $mainframe; $mainframe = JFactory::getApplication(); $input = JFactory::getApplication()->input; //for getting adfield_id from DB $db = JFactory::getDBO(); $user = JFactory::getUser(); $data = JRequest::get('post'); $data = $this->dataSanitize($data); $user = JFactory::getUser(); $build = new stdClass(); $ad_id = $input->get('adid', 0, 'INT'); $build->ad_id = $ad_id; $imgname = str_replace(JUri::base(), '', $data['upimg']); foreach ($data['addata'] as $addata) { foreach ($addata as $k => $ad) { $build->{$k} = $ad; } } //code for guest $geoflag = 0; if (isset($data['geo']) || !empty($data['geo'])) { foreach ($data['geo'] as $geo) { if (!empty($geo)) { $geoflag = 1; break; } } } if (isset($data['geo_target']) && !$geoflag && !isset($data['social_target']) || !isset($data['geo_target']) && !isset($data['social_target'])) { if ($data['context_target'] == "on" && !$data['context_target_data_keywordtargeting'] || $data['context_target'] != "on") { $build->ad_guest = 1; } else { $build->ad_guest = 0; } } else { $build->ad_guest = 0; } //code for guest $build->ad_image = $imgname; $build->layout = $data['layout']; //update fields if (!$this->_db->updateObject('#__ad_data', $build, 'ad_id')) { echo $this->_db->stderr(); return false; } //For saving demographic details /*start of geo*/ $fielddata = new stdClass(); $fielddata->ad_id = $build->ad_id; if ($socialads_config['geo_target'] && !empty($data['geo_target'])) { $geo_adfields = $data['geo']; if ($geoflag) { $first_key = array_keys($data['geo']); $type = str_replace("by", "", $data['geo_type']); foreach ($data['geo'] as $key => $value) { if ($first_key[0] == $key) { $fielddata->{$key} = $value; } else { if ($data['geo_type'] == "everywhere") { $fielddata->{$key} = ""; } else { if ($type == $key) { $fielddata->{$key} = $value; } } } } $query = "SELECT a.id FROM #__ad_geo_target AS a, #__ad_data AS b WHERE a.ad_id=" . $ad_id . " AND a.ad_id=b.ad_id AND b.ad_creator=" . $user->id . ""; $db->setQuery($query); $adfieldid = $db->loadResult(); $query = "DELETE FROM #__ad_geo_target WHERE ad_id=" . $ad_id; $this->_db->setQuery($query); if (!$db->execute()) { echo $this->_db->stderr(); } $fielddata->id = ''; if (!$this->_db->insertObject('#__ad_geo_target', $fielddata, 'id')) { echo $this->_db->stderr(); //return false; } } } else { $query = "DELETE FROM #__ad_geo_target WHERE ad_id=" . $ad_id; $this->_db->setQuery($query); if (!$db->execute()) { echo $this->_db->stderr(); } } /*end of geo*/ /*start of context*/ $fielddata = new stdClass(); $fielddata->id = ''; $fielddata->ad_id = $build->ad_id; $fielddata->keywords = strtolower(trim($context_adfields)); $query = "SELECT id FROM #__ad_contextual_target AS a, #__ad_data AS b WHERE a.ad_id=" . $ad_id . " AND a.ad_id=b.ad_id "; $db->setQuery($query); $adfieldid = $db->loadResult(); if ($socialads_config['context_target']) { if ($data['context_target'] == "on") { $context_adfields = trim($data['context_target_data_keywordtargeting']); if ($context_adfields) { $fielddata->keywords = strtolower(trim($context_adfields)); if ($adfieldid) { $fielddata->id = $adfieldid; if (!$this->_db->updateObject('#__ad_contextual_target', $fielddata, 'id')) { } } else { if (!$this->_db->insertObject('#__ad_contextual_target', $fielddata, 'id')) { echo $this->_db->stderr(); return false; } } } } else { if ($adfieldid) { $fielddata->id = $adfieldid; $query = 'DELETE FROM #__ad_contextual_target' . ' WHERE id= ' . $fielddata->id; $db->setQuery($query); if (!$db->execute()) { } } } } else { if ($adfieldid) { //echo "HERE4"; $fielddata->id = $adfieldid; $query = 'DELETE FROM #__ad_contextual_target' . ' WHERE id= ' . $fielddata->id; $db->setQuery($query); if (!$db->execute()) { } } } /*end of context*/ $fielddata = new stdClass(); $ad_id = $input->get('adid', 0, 'INT'); $socialadshelper = new socialadshelper(); $adfields = $socialadshelper->chkadfields(); if (!empty($adfields)) { $query = "SELECT distinct adfield_id\n\t\t\tFROM #__ad_fields AS a, #__ad_data AS b\n\t\t\tWHERE a.adfield_ad_id=" . $ad_id . " AND b.ad_creator=" . $user->id . ""; $db->setQuery($query); $adfieldid = $db->loadResult(); $fieldsas = $db->getTableColumns("#__ad_fields"); if ($data['social_target'] == "on" && !empty($fieldsas)) { //chk empty $query = "SELECT COUNT(*) FROM #__ad_fields AS f WHERE f.adfield_ad_id=" . $build->ad_id; $db->setQuery($query); $count = $db->loadResult(); $fielddata->adfield_id = $adfieldid; $fielddata->adfield_ad_id = $build->ad_id; $date_low = date('Y-m-d 00:00:00', mktime(0, 0, 0, 01, 1, 1910)); $date_high = date('Y-m-d 00:00:00', mktime(0, 0, 0, 01, 1, 2030)); $grad_low = 0; $grad_high = 2030; foreach ($data['mapdata'] as $mapdata) { foreach ($mapdata as $m => $map) { if ($m) { if (strstr($m, ',')) { $selcheck = explode(',', $m); $var = isset($fielddata->{$selcheck}[0]); } else { $var = isset($fielddata->{$m}); } if (!$var) { if (strstr($m, '|')) { $rangecheck = explode('|', $m); if ($rangecheck[2] == 0) { if ($map) { if ($rangecheck[1] == 'daterange') { $date_low = $map; } elseif ($rangecheck[1] == 'numericrange') { $grad_low = $map; } } if ($rangecheck[1] == 'daterange') { $fielddata->{$rangecheck}[0] = $date_low; } elseif ($rangecheck[1] == 'numericrange') { $fielddata->{$rangecheck}[0] = $grad_low; } //0 } elseif ($rangecheck[2] == 1) { if ($map) { if ($rangecheck[1] == 'daterange') { $date_high = $map; } elseif ($rangecheck[1] == 'numericrange') { $grad_high = $map; } } if ($rangecheck[1] == 'daterange') { $fielddata->{$rangecheck}[0] = $date_high; } elseif ($rangecheck[1] == 'numericrange') { $fielddata->{$rangecheck}[0] = $grad_high; } //2030 } } elseif (strstr($m, ',')) { $selcheck = explode(',', $m); if ($selcheck[1] == 'select') { if ($map) { $fielddata->{$selcheck}[0] = '|' . $map . '|'; } else { $fielddata->{$selcheck}[0] = $map; } } } else { $fielddata->{$m} = $map; } } else { if (strstr($m, ',')) { $selcheck = explode(',', $m); if ($selcheck[1] == 'select') { $fielddata->{$selcheck}[0] .= '|' . $map . '|'; } } else { $fielddata->{$m} .= '|' . $map . '|'; } //$fielddata->$m .= ','.$map; } } } } JPluginHelper::importPlugin('socialadstargeting'); $dispatcher = JDispatcher::getInstance(); $results = $dispatcher->trigger('onFrontendTargetingSave', array($data['plgdata'])); // $res = new stdClass(); for ($j = 0; $j < count($results); $j++) { if ($results[$j] != "") { foreach ($results[$j] as $key => $value) { $fielddata->{$key} = $value; } } } if ($count > 0) { //if multiselect box is empty then field name should be post blank value $db = JFactory::getDBO(); $query = "SELECT mapping_fieldname FROM #__ad_fields_mapping WHERE mapping_fieldtype='multiselect'"; $db->setQuery($query); $mulfields = $db->loadResultarray(); foreach ($fielddata as $k => $v) { $fields[] = $k; } for ($i = 0; $i < count($mulfields); $i++) { if (!in_array($mulfields[$i], $fields)) { $fielddata->{$mulfields}[$i] = ''; } } //update fields if (!$this->_db->updateObject('#__ad_fields', $fielddata, 'adfield_id')) { echo $this->_db->stderr(); return false; } } else { $fielddata->adfield_id = null; //insert fields if (!$this->_db->insertObject('#__ad_fields', $fielddata, 'adfield_id')) { echo $this->_db->stderr(); return false; } } } else { if ($data['social_target'] != "on" && $adfieldid) { //echo "HERE4"; $fielddata->id = $adfieldid; $query = 'DELETE FROM #__ad_fields' . ' WHERE adfield_id= ' . $adfieldid; $db->setQuery($query); if (!$db->execute()) { } } } } //chk empty if ($socialads_config['all_approval'] == 1 && $socialads_config['approval'] == 1) { $build = new stdClass(); $build->ad_id = $ad_id; $build->ad_approved = '0'; //update fields if (!$this->_db->updateObject('#__ad_data', $build, 'ad_id')) { echo $this->_db->stderr(); return false; } } //mail function after upadting an Ad $query = "SELECT a.ad_title, u.username FROM #__ad_data as a, #__users as u\n\t\t\t\t\t\tWHERE a.ad_creator=u.id\n\t\t\t\t\t\tAND a.ad_id=" . $ad_id; $this->_db->setQuery($query); $result = $this->_db->loadObject(); //print_r($result); $body = JText::_('UPDATE_MAIL_BODY'); $body = str_replace('{username}', $result->username, $body); $ad_title = $result->ad_title != '' ? JText::_("PERIDIC_STATS_ADTIT") . ' <b>"' . $result->ad_title . '"</b>' : JText::_("PERIDIC_STATS_ADID") . ' : <b>' . $ad_id . '</b>'; $body = str_replace('{title}', $ad_title, $body); $body = str_replace('{link}', JUri::base() . 'administrator/index.php?option=com_socialads&view=approveads', $body); $from = $mainframe->getCfg('mailfrom'); $fromname = $mainframe->getCfg('fromname'); $recipient = $mainframe->getCfg('mailfrom'); $user = JFactory::getUser(); $subject = JText::_('MAIL_UPDATE_SUB'); $body = nl2br($body); $mode = 1; $cc = null; $bcc = null; $bcc = null; $attachment = null; $replyto = null; $replytoname = null; JFactory::getMailer()->sendMail($from, $fromname, $recipient, $subject, $body, $mode, $cc, $bcc, $attachment, $replyto, $replytoname); return true; }