* @package AgileBill * @version 1.4.93 */ class host_tld { /** * Get the TLD pricing array * * @param string $tld * @param string $type park, register, renew * @param int $product_id * @param array $discount_products * @param float $discount_rate * @param int $account * @return array */ function price_tld_arr($tld, $type, $product_id=false, $discount_products=false, $discount_rate=false, $account=SESS_ACCOUNT) { # get the plugin for this domain: $db = &DB(); $result = $db->Execute(sqlSelect($db,"host_tld","*","name=::$tld:: AND status=1")); if($result == false || $result->RecordCount() == 0) return false; # serialize: global $C_auth; $p_arr = unserialize($result->fields["price_group"]); # get the pricing for domain parking: if($type == "park") { if($p_arr[0]["show"] != "1") { return false; } else { $i = 0; $type = $register; while (list ($group, $vals) = each ($p_arr[$i])) if (gettype($group) != 'string' && $C_auth->auth_group_by_account_id($account, $group)) if(empty($price) || $vals["register"] < $price) $price = $vals["register"]; return $price; } } else { # get any hosting discounts for this product: if(!empty($discount_products)) { $d_arr = unserialize($discount_products); for($ii=0; $iifields["id"]) $hosting_discount = $discount_rate; } } if(empty($hosting_discount)) $hosting_discount = false; # get the pricing details for registrations/transfers for this TLD: if(count($p_arr) > 0) for($i=1; $i<=10; $i++) if($p_arr[$i]["show"] == "1") while (list ($group, $vals) = each ($p_arr[$i])) if (gettype($group) != 'string' && $C_auth->auth_group_by_account_id($account, $group)) if(empty($price[$i]) || $vals[$type] < $price[$i]) if(!empty($vals[$type])) if($hosting_discount != false) $price[$i] = $vals[$type] - ($vals[$type] * $hosting_discount); else $price[$i] = $vals[$type]; return $price; } return false; } /** SUGGEST RESULTS */ function suggest($VAR) { $db = &DB(); $dbm = new CORE_database; $sql = $dbm->sql_select('host_tld','name,default_term_new', "auto_search = 1 AND status = 1", "name", $db); $rs = $db->Execute($sql); while(!$rs->EOF) { $smart[] = $rs->fields; $rs->MoveNext(); } $count = count($smart); $js = "var tldArr = new Array($count); var tldCount = $count; "; for($i=0; $i<$count; $i++) $js .= "tldArr[$i] = '{$smart[$i]['name']}'; "; global $smarty; $smarty->assign('tlds', $smart); $smarty->assign('javascript', $js); } /** WHOIS LOOKUP */ function whois_mass($VAR) { global $smarty, $C_debug, $C_translate; $db = &DB(); if(!empty($VAR['domains'])) { $arr = explode("\r\n", $VAR['domains']); $domains =''; $msg =''; // loop through each row for($i=0; $i$td) { if($key > 0) { if(!empty($tld)) $tld .='.'; $tld .= $td; } } # check for duplicates $do=true; for($ii=0; $iivalue['host_tld']['domain'] = ''.$domain.".".$tld.''; $C_translate->value['host_tld']['tld'] = ''.$tld.''; # get the plugin for this domain: $result = $db->Execute(sqlSelect($db,"host_tld","*","name=::$tld:: AND status=1")); if($result == false || $result->RecordCount() == 0) { ### INVALID TLD $msg .= $C_translate->translate('search_mass_err_tld','host_tld','') . '
'; } else { # get the whois plugin details for this TLD & check avail $file = $result->fields['whois_plugin']; $data = unserialize($result->fields['whois_plugin_data']); include_once(PATH_PLUGINS . 'whois/'. $file.'.php'); eval ( '$_WHOIS = new plgn_whois_'. strtoupper ( $file ) . ';' ); if($_WHOIS->check($domain, $tld, $data)) { $smarty->assign("checkout", true); $domains .= $domain.'.'.$tld."\r\n"; $domainarr[] = Array($domain,$tld); } else { ### DOMAIN NOT AVAILABLE $msg .= $C_translate->translate('search_mass_err_dom','host_tld','') . '
'; } } } } } if($msg) $C_debug->alert($msg); $smarty->assign('domains', @$domains); $smarty->assign('domainarr', @$domainarr); } } /** * WHOIS RESPONSE */ function whois_reponse($type, $VAR, $response, $park=0) { if(defined('AJAX')) { if($type=='register') { if($response) echo 'available('.$park.');'; else echo 'unavailable();'; } elseif($type=='transfer') { if($response) echo 'unavailable();'; else echo 'available();'; } elseif($type=='suggest') { if($response) echo "domainUpdate('{$VAR['domain']}','{$VAR['tld']}','register','{$VAR['element']}',1);"; else echo "domainUpdate('{$VAR['domain']}','{$VAR['tld']}','register','{$VAR['element']}',0);"; } } return $response; } /** * WHOIS LOOKUP */ function whois($VAR) { if(!empty($VAR['tld']) && !empty($VAR['domain'])) { $db = &DB(); # check this domain & tld is not already in the service table: $rs = $db->Execute(sqlSelect($db,"service","id","domain_name = ::{$VAR['domain']}:: AND domain_tld = ::{$VAR['tld']}::")); if($rs && $rs->RecordCount()) { //$smarty->assign("whois_result", "0"); //echo 'unavailable();'; return $this->whois_reponse($VAR['type'], $VAR, false); } # check this domain & tld is not already in the shopping cart: $rs = $db->Execute(sqlSelect($db,"cart","id","domain_name = ::{$VAR['domain']}:: AND domain_tld = ::{$VAR['tld']}::")); if($rs && $rs->RecordCount()) { return $this->whois_reponse($VAR['type'], $VAR, false); } # get the plugin for this domain: $result = $db->Execute(sqlSelect($db,"host_tld","*","name=::{$VAR['tld']}:: AND status=1")); if($result == false || $result->RecordCount() == 0) { return $this->whois_reponse($VAR['type'], $VAR, false); } # get the whois plugin details for this TLD $file = $result->fields['whois_plugin']; $data = unserialize($result->fields['whois_plugin_data']); # allow parking? $price = unserialize ( $result->fields['price_group'] ); $park = $price["0"]["show"]; # initialize the whois plugin: include_once(PATH_PLUGINS . 'whois/'. $file.'.php'); eval ( '$_WHOIS = new plgn_whois_'. strtoupper ( $file ) . ';' ); if($_WHOIS->check($VAR['domain'], $VAR['tld'], $data)) return $this->whois_reponse($VAR['type'], $VAR, true, $park); else return $this->whois_reponse($VAR['type'], $VAR, false, $park); } else { return $this->whois_reponse($VAR['type'], $VAR, false, $park); } } /** * WHOIS TRANSFER LOOKUP */ function whois_transfer($VAR) { global $smarty; if(!empty($VAR['tld']) && !empty($VAR['domain'])) { $db = &DB(); # check this domain & tld is not already in the service table: $rs = $db->Execute(sqlSelect($db,"service","id","domain_name = ::{$VAR['domain']}:: AND domain_tld = ::{$VAR['tld']}::")); if($rs && $rs->RecordCount()) { $smarty->assign("whois_result", "0"); return; } # check this domain & tld is not already in the shopping cart: $rs = $db->Execute(sqlSelect($db,"cart","id","domain_name = ::{$VAR['domain']}:: AND domain_tld = ::{$VAR['tld']}::")); if($rs && $rs->RecordCount()) { $smarty->assign("whois_result", "0"); return; } # get the plugin for this domain: $result = $db->Execute(sqlSelect($db,"host_tld","*","name=::{$VAR['tld']}:: AND status=1")); if($result == false || $result->RecordCount() == 0) { $smarty->assign("whois_result", "0"); return; } # get the pricing details to see if transfers are allowed for this TLD: $p_arr = unserialize($result->fields["price_group"]); $transfer = false; if(count($p_arr) > 0) for($i=1; $i<=10; $i++) if($p_arr[$i]["show"] == "1") while(list($key,$val) = each($p_arr[$i])) if(isset($val["transfer"]) && $val["transfer"] > 1) $transfer = true; if(!$transfer) { $smarty->assign("whois_result", "0"); return; } # get the whois plugin details for this TLD $file = $result->fields['whois_plugin']; $data = unserialize($result->fields['whois_plugin_data']); # initialize the whois plugin: include_once(PATH_PLUGINS . 'whois/'. $file.'.php'); eval ( '$_WHOIS = new plgn_whois_'. strtoupper ( $file ) . ';' ); if($_WHOIS->check_transfer($VAR['domain'], $VAR['tld'], $data)) { $smarty->assign("whois_result", "1"); return; } else { $smarty->assign("whois_result", "0"); return; } } else { $smarty->assign("whois_result", "0"); return; } } function constructor() { $this->module = "host_tld"; $this->xml_construct = PATH_MODULES . "" . $this->module . "/" . $this->module . "_construct.xml"; $C_xml = new CORE_xml; $construct = $C_xml->xml_to_array($this->xml_construct); $this->method = $construct["construct"]["method"]; $this->trigger = $construct["construct"]["trigger"]; $this->field = $construct["construct"]["field"]; $this->table = $construct["construct"]["table"]; $this->module = $construct["construct"]["module"]; $this->cache = $construct["construct"]["cache"]; $this->order_by = $construct["construct"]["order_by"]; $this->limit = $construct["construct"]["limit"]; } function add($VAR) { $this->constructor(); $type = "add"; $this->method["$type"] = explode(",", $this->method["$type"]); $db = new CORE_database; $db->add($VAR, $this, $type); } function view($VAR) { $this->constructor(); $type = "view"; $this->method["$type"] = explode(",", $this->method["$type"]); $db = new CORE_database; $db->view($VAR, $this, $type); } function update($VAR) { $this->constructor(); $type = "update"; $this->method["$type"] = explode(",", $this->method["$type"]); $db = new CORE_database; $db->update($VAR, $this, $type); } function delete($VAR) { $this->constructor(); $db = new CORE_database; $db->mass_delete($VAR, $this, ""); } function search_form($VAR) { $this->constructor(); $type = "search"; $this->method["$type"] = explode(",", $this->method["$type"]); $db = new CORE_database; $db->search_form($VAR, $this, $type); } function search($VAR) { $this->constructor(); $type = "search"; $this->method["$type"] = explode(",", $this->method["$type"]); $db = new CORE_database; $db->search($VAR, $this, $type); } function search_show($VAR) { $this->constructor(); $type = "search"; $this->method["$type"] = explode(",", $this->method["$type"]); $db = new CORE_database; $db->search_show($VAR, $this, $type); } } ?>