Ejemplo n.º 1
1
 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);
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
 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}");
 }