public function delete() { $appHouseAds = AppHouseAdUtil::getAppHouseAdsByCid($this->id); foreach ($appHouseAds as $appHouseAd) { $appHouseAd->delete(); } if (!empty($this->imageLink)) { if (extension_loaded('curl') && !@dl(PHP_SHLIB_SUFFIX == 'so' ? 'curl.so' : 'php_curl.dll')) { $s3 = new S3(HouseAd::$HOUSEAD_AWS_KEY, HouseAd::$HOUSEAD_AWS_SECRET); $s3->deleteObject(HouseAd::$HOUSEAD_BUCKET, basename($this->imageLink)); } } parent::delete(); CacheUtil::invalidateCustom($this->id); }
public function appHouseAds() { $this->needsApp(); $this->breadcrumbs[] = array("text" => "House Ads", "link" => "/apps/oneApp/appHouseAds"); $appHouseAds = array(); foreach (AppHouseAdUtil::getAppHouseAdsByAid($this->app->id) as $appHouseAd) { $appHouseAds[$appHouseAd->cid] = $appHouseAd; } $houseAds = array(); fb("getAllHouseAds", ""); $allHouseAds = HouseAdUtil::getHouseAdsByUid($this->user->id); // fb("houseAds",HouseAdUtil::getHouseAdsByAid($this->app->id)); fb("gotAllHouseAdsForThisUser", ""); $houseAdsForThisApp = HouseAdUtil::getHouseAdsByAid($this->app->id, $allHouseAds); fb("getAllHouseAdsForThisApp", ""); foreach ($houseAdsForThisApp as $houseAd) { if (array_key_exists($houseAd->id, $appHouseAds)) { $houseAds[] = $houseAd; $houseAd->weight = $appHouseAds[$houseAd->id]->weight; $houseAd->ahid = $appHouseAds[$houseAd->id]->id; } } fb("prepAddableHouseAds", ""); $addableHouseAds = array('' => 'Choose an Ad'); foreach ($allHouseAds as $houseAd) { if (!array_key_exists($houseAd->id, $appHouseAds)) { if ($this->app->platform == '1' && $houseAd->isForiPhone() || $this->app->platform == '2' && $houseAd->isForAndroid()) { $addableHouseAds[$houseAd->id] = $houseAd->name; } } } fb("doneAddableHouseAds", $addableHouseAds); $networks = $this->app->getNetworks(); if (array_key_exists('9', $networks) && $networks['9']->adsOn == 1) { $this->smarty->assign('houseAdShare', $networks['9']->weight); } usort($houseAds, create_function('$a,$b', "return strcasecmp(\$a->name, \$b->name);")); $this->subtitle = "House Ads"; $this->smarty->assign('app', $this->app); $this->smarty->assign('sideNav_current', 'houseAds'); $this->smarty->assign('linkLabels', HouseAd::$HOUSEAD_LINKTYPES); $this->smarty->assign('houseAds', $houseAds); $this->smarty->assign('addableHouseAds', $addableHouseAds); $this->smarty->assign('houseAdTypes', HouseAd::$HOUSEAD_TYPES); fb("smarty", $this->smarty->get_template_vars()); return $this->smarty->fetch('../tpl/www/apps/appHouseAds.tpl'); }
public static function addRemoveAppHouseAds($cid, $aids_of_apps_to_add, $ahids_of_appHouseAds_to_delete) { fb("AppHouseAdUtil", "addRemoveAppHouseAds"); $ret = array(); if (isset($aids_of_apps_to_add) && isset($cid)) { foreach ($aids_of_apps_to_add as $aid) { fb("Adding", $aid); $sum = 0; $appHouseAds = AppHouseAdUtil::getAppHouseAdsByAid($aid); foreach ($appHouseAds as $appHouseAd) { $sum += $appHouseAd->weight; } $appHouseAd = new AppHouseAd(); $appHouseAd->id = SDB::uuid(); $appHouseAd->cid = $cid; $appHouseAd->aid = $aid; $appHouseAd->weight = 100 - $sum; // if the app has no ads then 100% otherwise 0% $appHouseAd->put(); fb('new_appHouseAd', $appHouseAd); $app = new App($aid); $ret[$aid] = $app->adjustHouseAdNetwork($appHouseAd->id, null); } } fb("appHouseAdsToDelete", $ahids_of_appHouseAds_to_delete); if (isset($ahids_of_appHouseAds_to_delete)) { foreach ($ahids_of_appHouseAds_to_delete as $ahid) { fb("Removing", $ahid); $appHouseAd = new AppHouseAd($ahid); $aid = $appHouseAd->aid; $removed_weight = floatval($appHouseAd->weight); $appHouseAd->delete(); $app = new App($aid); $ret[$aid] = $app->adjustHouseAdNetwork(null, $ahid); $appHouseAds = AppHouseAdUtil::getAppHouseAdsByAid($aid); fb("apphouseAds", $appHouseAds); $non_zero_appHouseAds = array(); $total = 0; foreach ($appHouseAds as $key => $appHouseAd) { if ($appHouseAd->id == null) { continue; } if ($appHouseAd->id == $ahid) { unset($appHouseAds[$key]); continue; } if ($appHouseAd->weight > 0) { $total += intval($appHouseAd->weight); $non_zero_appHouseAds[] = $appHouseAd; } } fb("non_zero", $non_zero_appHouseAds); if (count($non_zero_appHouseAds) > 0) { $appHouseAds_to_increase = $non_zero_appHouseAds; } else { // no non_zero $appHouseAds_to_increase = $appHouseAds; } if (count($appHouseAds_to_increase) == 0) { continue; } fb("non_zero", $non_zero_appHouseAds); $last = end($appHouseAds_to_increase); $sum = 0; fb("increase-rem weight", $removed_weight); fb("total", $total); $inc = $removed_weight / count($appHouseAds_to_increase); fb("inc", $inc); fb('count', count($appHouseAds_to_increase)); foreach ($appHouseAds_to_increase as $appHouseAd) { fb("aha", $appHouseAd); if ($appHouseAd != $last) { $weight = intval($appHouseAd->weight); fb("old_weight", $weight); $weight = intval($inc + $weight); fb("new_weight", $weight); $sum += $weight; fb("sum", $sum); $appHouseAd->weight = strval($weight); } else { $appHouseAd->weight = strval(100 - $sum); } $appHouseAd->put(); } } } return $ret; }
public function delete() { $this->printHeader = false; $this->printFooter = false; $this->needsHouseAd(); // new apps to add $apps = isset($_POST['apps']) ? $_POST['apps'] : null; // old_apps to keep => do nothing $ahids = isset($_POST['ahids']) ? $_POST['ahids'] : null; // old_apps to delete $del_ahids = isset($_POST['del_ahids']) ? $_POST['del_ahids'] : null; AppHouseAdUtil::addRemoveAppHouseAds($this->houseAd->id, $apps, $del_ahids); $cid = $this->houseAd->id; $this->houseAd->delete(); $this->redirect(isset($_REQUEST['returnPage']) ? $_REQUEST['returnPage'] . '?&del_cid=' . $cid : '/houseAds/houseAds?del_cid=' . $cid); }
public function adjustHouseAdNetwork($add_ahid, $del_ahid) { $retVal = "doNothing"; fb("adjusthouseAdNet", "start"); $networks = $this->getNetworks(); if ($networks != null) { foreach ($networks as $type => $network) { if ($type == Network::NETWORK_TYPE_HOUSE) { $houseAdNet = $network; } } } $appHouseAds = AppHouseAdUtil::getAppHouseAdsByAid($this->id); $count = count($appHouseAds); if ($count == 0 && $add_ahid != null) { $count++; } else { if ($count == 1 && $appHouseAds['0']->id == $del_ahid) { $count--; } } fb("appHouseAds", $appHouseAds); fb($count, 'count'); fb(isset($houseAdNet), 'hasHouseAdNet'); if ($count > 0 && !isset($houseAdNet)) { // add houseAdNet fb("Should Add"); $network = new Network(); $network->id = SDB::uuid(); $network->aid = $this->id; $network->type = Network::NETWORK_TYPE_HOUSE; $network->adsOn = 0; $network->weight = 0; $network->priority = 99; $network->keys = array("_CUSTOMS_"); $network->put(); $retVal = "add"; } else { if ($count == 0 && isset($houseAdNet)) { // should remove or turn off $hasHouseAds = count(HouseAdUtil::getHouseAdsByUid($_SESSION['uid'])) > 0; if ($hasHouseAds) { fb("should turn off"); $houseAdNet->adsOn = 0; $houseAdNet->put(); $retVal = "turnOff"; } else { fb("Should Remove", $houseAdNet); $houseAdNet->delete(); unset($networks['9']); $retVal = "delete"; } App::setWeights($networks); App::setPriorities($networks); } } fb("adjustHouseAdNet", "end"); return $retVal; }
public function deleteAppHouseAds() { $this->printHeader = false; $this->printFooter = false; $aid = isset($_REQUEST['aid']) ? $_REQUEST['aid'] : null; $del_ahids = isset($_POST['del_ahids']) ? $_POST['del_ahids'] : null; fb('del_ahids', $del_ahids); $ret = AppHouseAdUtil::addRemoveAppHouseAds(null, null, $del_ahids); fb("retVal", $ret); $this->redirect("/apps/oneApp/appHouseAds?aid={$aid}"); }