示例#1
0
文件: area.php 项目: reboxhost/phpb2b
 /**
  * for 5.0
  *
  * @param unknown_type $id
  * @return unknown
  */
 function getConditionIds($id)
 {
     $r = null;
     $this->dbstuff->setFetchMode(ADODB_FETCH_ASSOC);
     $sql = "SELECT id,name,url,parent_id,level FROM " . $this->table_prefix . "areas WHERE available=1";
     $result = $this->GetArray($sql);
     if (!empty($result)) {
         $r = pb_format_tree($result, $id);
     }
     return $r;
 }
示例#2
0
/**
 * format_tree
 *
 * @param unknown_type $datas
 * @param unknown_type $pid
 * @param unknown_type $sub_key maybe sub,children,child
 * @return unknown
 */
function pb_format_tree($datas, $pid = null, $sub_key = 'sub')
{
    $op = array();
    foreach ($datas as $item) {
        if ($item['parent_id'] == $pid) {
            $op[$item['id']] = array('id' => $item['id'], 'url' => $item['url'], 'level' => $item['level'], 'name' => $item['name'], 'parent_id' => $item['parent_id']);
            // using recursion
            $op[$item['id']][$sub_key] = array();
            $children = pb_format_tree($datas, $item['id']);
            if ($children) {
                $op[$item['id']][$sub_key] = $children;
            }
        }
    }
    return $op;
}
示例#3
0
 function getCacheArray($cachename = '', $script = '')
 {
     $conditions = $curdata = '';
     $data = array();
     if (empty($cachename) && !empty($this->cache_name)) {
         $cachename = $this->cache_name;
     }
     switch ($cachename) {
         case 'nav':
             $this->lang_dirname = '';
             $navs = $this->dbstuff->GetArray("SELECT id,name,description,url,target,display_order,highlight FROM {$this->table_prefix}navs  WHERE status=1 ORDER BY display_order ASC");
             $navmns = $_nlink = array();
             if (!empty($navs)) {
                 foreach ($navs as $nav => $nav_val) {
                     $lang_title = $nav_val['name'];
                     $_tmp = pb_lang_split($lang_title, true);
                     foreach ($_tmp as $_nk => $_nv) {
                         $_nlink[$_nk] = '<a href="' . $nav_val['url'] . '" title="' . $_nv . '" ' . parse_highlight($nav_val['highlight']) . '><span>' . $_nv . '</span></a>';
                     }
                     $navmns[$nav_val['id']]['link'] = pb_lang_merge($_nlink);
                     $navmns[$nav_val['id']]['id'] = $nav_val['id'];
                     $navmns[$nav_val['id']]['name'] = $lang_title;
                     $navmns[$nav_val['id']]['url'] = $nav_val['url'];
                     $navmns[$nav_val['id']]['level'] = $nav_val['display_order'];
                 }
                 $data['navs'] = $navmns;
             }
             $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray($data) . ";\n\n";
             break;
         case 'trusttype':
             $this->lang_dirname = '';
             $this->dbstuff->setFetchMode(ADODB_FETCH_ASSOC);
             $conditions = "";
             $sql = "SELECT * FROM {$this->table_prefix}trusttypes ORDER BY display_order ASC,id DESC";
             $result = $this->dbstuff->GetArray($sql);
             foreach ($result as $key => $val) {
                 $result[$key]['avatar'] = $val['image'];
                 unset($result[$key]['description'], $result[$key]['display_order'], $result[$key]['status'], $result[$key]['image']);
                 $data[$val['id']] = $result[$key];
             }
             $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray($data) . ";\n\n";
             break;
         case 'country':
             $this->lang_dirname = '';
             $this->dbstuff->setFetchMode(ADODB_FETCH_ASSOC);
             $conditions = "";
             $sql = "SELECT * FROM {$this->table_prefix}countries ORDER BY display_order ASC,id ASC";
             $result = $this->dbstuff->GetArray($sql);
             foreach ($result as $key => $val) {
                 $result[$key]['image'] = $val['picture'];
                 unset($result[$key]['display_order']);
                 $data[$val['id']] = $result[$key];
             }
             $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray(pb_lang_split_recursive($data)) . ";\n\n";
             break;
         case 'setting':
             $this->lang_dirname = '';
             $tmp_mail = array();
             $table = 'setting';
             $conditions = "";
             $sql = "SELECT * FROM {$this->table_prefix}settings WHERE type_id IN (0,1)";
             $setting = $this->dbstuff->GetArray($sql);
             foreach ($setting as $key => $val) {
                 //For multi
                 $s_title = $val['valued'];
                 $data[$val['variable']] = $s_title;
             }
             //set sendmail
             $tmp_mail['send_mail'] = $data['send_mail'];
             $tmp_mail['auth_protocol'] = $data['auth_protocol'];
             $tmp_mail['smtp_server'] = $data['smtp_server'];
             $tmp_mail['smtp_port'] = $data['smtp_port'];
             $tmp_mail['smtp_auth'] = $data['smtp_auth'];
             $tmp_mail['mail_from'] = $data['mail_from'];
             $tmp_mail['mail_fromwho'] = $data['mail_fromwho'];
             $tmp_mail['auth_username'] = $data['auth_username'];
             $tmp_mail['auth_password'] = $data['auth_password'];
             $tmp_mail['mail_delimiter'] = $data['mail_delimiter'];
             $tmp_mail['sendmail_silent'] = $data['sendmail_silent'];
             $data['mail'] = serialize($tmp_mail);
             unset($tmp_mail, $data['send_mail'], $data['smtp_server'], $data['smtp_port'], $data['smtp_auth'], $data['mail_from'], $data['mail_fromwho'], $data['auth_username'], $data['auth_password'], $data['mail_delimiter'], $data['sendmail_silent']);
             $data['capt_auth'] = bindec($data['capt_logging'] . $data['capt_register'] . $data['capt_post_free'] . $data['capt_add_market'] . $data['capt_login_admin'] . $data['capt_apply_friendlink'] . $data['capt_service']);
             unset($data['capt_logging'], $data['capt_register'], $data['capt_post_free'], $data['capt_add_market'], $data['capt_login_admin'], $data['capt_apply_friendlink'], $data['capt_service']);
             $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray($data) . ";\n\n";
             break;
         case 'area':
             $this->lang_dirname = '';
             $sql = "select * from {$this->table_prefix}areas a where a.parent_id=0 ORDER by display_order asc";
             $top_areas = $sec_areas = $third_areas = $areas = $total_areas = array();
             $area1 = $this->dbstuff->GetArray($sql);
             $op = "<!--// Created " . date("M j, Y, G:i") . " -->\n";
             $op .= "var data_area = { \n";
             foreach ($area1 as $key => $val) {
                 //For multi
                 $i_title = $val['name'];
                 //					$tmp = unserialize($val['description']);
                 //					if(!empty($tmp[$this->lang_dirname])) $i_title = $tmp[$this->lang_dirname];
                 $top_areas[$val['id']] = $total_areas[1][$val['id']] = $i_title;
                 $sql = "select * from {$this->table_prefix}areas a where level=2 AND parent_id=" . $val['id'] . " ORDER by display_order asc";
                 $sec_areas = $this->dbstuff->GetArray($sql);
                 foreach ($sec_areas as $key2 => $val2) {
                     //For multi
                     $i_title = $val2['name'];
                     //						$tmp = unserialize($val2['description']);
                     //						if(!empty($tmp[$this->lang_dirname])) $i_title = $tmp[$this->lang_dirname];
                     $third_areas = $this->dbstuff->GetArray("select id,name,parent_id,top_parentid from {$this->table_prefix}areas a where level=3 AND parent_id=" . $val2['id'] . " ORDER by display_order asc");
                     $areas[$val['id']]['sub'][$val2['id']] = $i_title;
                     $total_areas[2][$val2['id']] = $i_title;
                     foreach ($third_areas as $key3 => $val3) {
                         //For multi
                         $i_title = $val3['name'];
                         //							$tmp = unserialize($val3['description']);
                         //							if(!empty($tmp[$this->lang_dirname])) $i_title = $tmp[$this->lang_dirname];
                         $areas[$val2['id']]['sub'][$val3['id']] = $total_areas[3][$val3['id']] = $i_title;
                     }
                 }
             }
             $top_areas = pb_lang_split_recursive($this->convert2utf8($top_areas));
             $areas = pb_lang_split_recursive($this->convert2utf8($areas));
             $op .= "'0':" . json_encode($top_areas);
             $tmp_op = array();
             foreach ($top_areas as $js_key => $js_val) {
                 if (isset($areas[$js_key])) {
                     foreach ($areas[$js_key] as $js_key1 => $js_val1) {
                         $tmp_op[] = "'0,{$js_key}':" . json_encode($areas[$js_key]['sub']);
                         foreach ($areas[$js_key]['sub'] as $js_key2 => $js_val2) {
                             if (!empty($areas[$js_key2]['sub'])) {
                                 $tmp_op[] = "'0,{$js_key},{$js_key2}':" . json_encode($areas[$js_key2]['sub']);
                             }
                         }
                     }
                 }
             }
             if (!empty($tmp_op)) {
                 $op .= ",\n";
                 $tmp_op = implode(",\n", $tmp_op);
                 $op .= $tmp_op . "\n}";
             } else {
                 $op .= "\n}";
             }
             $fp = file_put_contents($this->cache_path . "area.js", $op);
             ksort($total_areas);
             $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray($total_areas) . ";\n\n";
             //db cache.
             $data = array();
             $op = "<?php\n";
             $op .= "return ";
             $tmp_level_top = $this->dbstuff->GetArray("SELECT id,name,parent_id,level,url FROM " . $this->table_prefix . "areas WHERE available=1 ORDER BY display_order ASC");
             $data = pb_format_tree($tmp_level_top, 0);
             $op .= $this->evalArray($data);
             unset($data);
             $op .= "\n";
             $op .= "?>";
             $fp = file_put_contents(CACHE_COMMON_PATH . "area.php", $op);
             break;
         case 'industry':
             $this->lang_dirname = '';
             if (!function_exists("smarty_function_the_url")) {
                 require SLUGIN_PATH . "function.the_url.php";
             }
             $sql = "SELECT name,id,name AS title,description FROM {$this->table_prefix}industries i WHERE i.parent_id=0 and available=1 ORDER BY display_order ASC";
             $top_levels = $sec_levels = $third_levels = $datas = $total_datas = array();
             $level1 = $this->dbstuff->GetArray($sql);
             $op = "<!--// Created " . date("M j, Y, G:i") . " -->\n";
             $op .= "var data_industry = { \n";
             foreach ($level1 as $key => $val) {
                 //For multi
                 $i_title = $val['name'];
                 //					$tmp = unserialize($val['description']);
                 //					if(!empty($tmp[$this->lang_dirname])) $i_title = $tmp[$this->lang_dirname];
                 $top_levels[$val['id']] = $total_datas[1][$val['id']] = $i_title;
                 $sql = "SELECT id,name,parent_id,top_parentid,name AS title,description FROM {$this->table_prefix}industries t WHERE available=1 AND level=2 AND parent_id=" . $val['id'] . " ORDER BY display_order ASC";
                 $sec_levels = $this->dbstuff->GetArray($sql);
                 foreach ($sec_levels as $key2 => $val2) {
                     //For multi
                     $i_title = $val2['name'];
                     //						$tmp = unserialize($val2['description']);
                     //						if(!empty($tmp[$this->lang_dirname])) $i_title = $tmp[$this->lang_dirname];
                     $third_levels = $this->dbstuff->GetArray("SELECT id,name,parent_id,top_parentid,name AS title,description FROM {$this->table_prefix}industries t WHERE available=1 AND level=3 AND parent_id=" . $val2['id'] . " ORDER BY display_order ASC");
                     $datas[$val['id']]['sub'][$val2['id']] = $i_title;
                     $total_datas[2][$val2['id']] = $i_title;
                     foreach ($third_levels as $key3 => $val3) {
                         //For multi
                         $i_title = $val3['name'];
                         //							$tmp = unserialize($val3['description']);
                         //							if(!empty($tmp[$this->lang_dirname])) $i_title = $tmp[$this->lang_dirname];
                         $datas[$val2['id']]['sub'][$val3['id']] = $total_datas[3][$val3['id']] = $i_title;
                     }
                 }
             }
             $top_levels = pb_lang_split_recursive($this->convert2utf8($top_levels));
             $datas = pb_lang_split_recursive($this->convert2utf8($datas));
             $op .= "'0':" . json_encode($top_levels);
             $tmp_op = array();
             foreach ($top_levels as $js_key => $js_val) {
                 if (isset($datas[$js_key])) {
                     foreach ($datas[$js_key] as $js_key1 => $js_val1) {
                         $tmp_op[] = "'0,{$js_key}':" . json_encode($datas[$js_key]['sub']);
                         foreach ($datas[$js_key]['sub'] as $js_key2 => $js_val2) {
                             if (!empty($datas[$js_key2]['sub'])) {
                                 $tmp_op[] = "'0,{$js_key},{$js_key2}':" . json_encode($datas[$js_key2]['sub']);
                             }
                         }
                     }
                 }
             }
             if (!empty($tmp_op)) {
                 $op .= ",\n";
                 $tmp_op = implode(",\n", $tmp_op);
                 $op .= $tmp_op . "\n}";
             } else {
                 $op .= "\n}";
             }
             $fp = file_put_contents($this->cache_path . "industry.js", $op);
             unset($op);
             ksort($total_datas);
             $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray($total_datas) . ";\n\n";
             unset($top_levels, $sec_levels, $third_levels, $datas, $total_datas, $op);
             //db cache.
             $data = array();
             $op = "<?php\n";
             $op .= "return ";
             $tmp_level_top = $this->dbstuff->GetArray("SELECT id,name,parent_id,level,url FROM " . $this->table_prefix . "industries WHERE available=1 ORDER BY display_order ASC");
             $data = pb_format_tree($tmp_level_top, 0);
             $op .= $this->evalArray($data);
             unset($data);
             $op .= "\n";
             $op .= "?>";
             $fp = file_put_contents(CACHE_COMMON_PATH . "industry.php", $op);
             break;
         case 'userpage':
             $this->lang_dirname = '';
             $sql = "SELECT id,name,title,url,digest FROM {$this->table_prefix}userpages ORDER BY display_order ASC,id ASC";
             $result = $this->dbstuff->GetArray($sql);
             if (!empty($result)) {
                 $i = 0;
                 foreach ($result as $key => $val) {
                     $data[$i]['id'] = $val['id'];
                     $data[$i]['title'] = $val['title'];
                     $data[$i]['name'] = $val['name'];
                     $data[$i]['digest'] = $val['digest'];
                     if (!empty($val['url'])) {
                         $data[$i]['url'] = $val['url'];
                     } else {
                         $data[$i]['url'] = "";
                     }
                     $i++;
                 }
             }
             $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray($data) . ";\n\n";
             break;
         case 'form':
             $this->lang_dirname = '';
             $form_result = $this->dbstuff->GetArray("SELECT * FROM {$this->table_prefix}forms ORDER BY id ASC");
             if (!empty($form_result)) {
                 foreach ($form_result as $val) {
                     $item_result = $this->dbstuff->GetArray("SELECT * FROM {$this->table_prefix}formitems WHERE id IN (" . $val['items'] . ") ORDER BY id ASC");
                     if (!empty($item_result)) {
                         foreach ($item_result as $val1) {
                             $data[$val['id']][$val1['id']]['id'] = $val1['identifier'];
                             $data[$val['id']][$val1['id']]['label'] = $val1['title'];
                         }
                     }
                 }
                 $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray($data) . ";\n\n";
             }
             break;
         case 'membergroup':
             $this->lang_dirname = '';
             $sql = "SELECT * FROM {$this->table_prefix}membergroups mg ORDER BY mg.id DESC";
             $membergroup_result = $this->dbstuff->GetArray($sql);
             if (!empty($membergroup_result)) {
                 foreach ($membergroup_result as $key => $val) {
                     $data[$val['id']]['name'] = $val['name'];
                     $data[$val['id']]['max_offer'] = $val['max_offer'];
                     $data[$val['id']]['type_id'] = $val['membertype_id'];
                     $data[$val['id']]['max_product'] = $val['max_product'];
                     $data[$val['id']]['max_job'] = $val['max_job'];
                     $data[$val['id']]['max_companynews'] = $val['max_companynews'];
                     $data[$val['id']]['max_market'] = $val['max_companynews'];
                     $data[$val['id']]['max_album'] = $val['max_companynews'];
                     $data[$val['id']]['max_producttype'] = $val['max_producttype'];
                     $data[$val['id']]['max_attach_size'] = $val['max_attach_size'];
                     $data[$val['id']]['max_size_perday'] = $val['max_size_perday'];
                     $data[$val['id']]['max_favorite'] = $val['max_favorite'];
                     $data[$val['id']]['type'] = $val['type'];
                     $data[$val['id']]['avatar'] = $val['picture'];
                     $data[$val['id']]['allow_space'] = $val['allow_space'];
                     $tmp_allow = sprintf("%02b", $val['allow_offer']);
                     $data[$val['id']]['offer_allow'] = intval($tmp_allow[0]);
                     $data[$val['id']]['offer_check'] = intval($tmp_allow[1]);
                     $tmp_allow = sprintf("%02b", $val['allow_market']);
                     $data[$val['id']]['market_allow'] = intval($tmp_allow[0]);
                     $data[$val['id']]['market_check'] = intval($tmp_allow[1]);
                     $tmp_allow = sprintf("%02b", $val['allow_company']);
                     $data[$val['id']]['company_allow'] = intval($tmp_allow[0]);
                     $data[$val['id']]['company_check'] = intval($tmp_allow[1]);
                     $tmp_allow = sprintf("%02b", $val['allow_product']);
                     $data[$val['id']]['product_allow'] = intval($tmp_allow[0]);
                     $data[$val['id']]['product_check'] = intval($tmp_allow[1]);
                     $tmp_allow = sprintf("%02b", $val['allow_job']);
                     $data[$val['id']]['job_allow'] = intval($tmp_allow[0]);
                     $data[$val['id']]['job_check'] = intval($tmp_allow[1]);
                     $tmp_allow = sprintf("%02b", $val['allow_companynews']);
                     $data[$val['id']]['companynews_allow'] = intval($tmp_allow[0]);
                     $data[$val['id']]['companynews_check'] = intval($tmp_allow[1]);
                     $tmp_allow = sprintf("%02b", $val['allow_album']);
                     $data[$val['id']]['album_allow'] = intval($tmp_allow[0]);
                     $data[$val['id']]['album_check'] = intval($tmp_allow[1]);
                     $data[$val['id']]['auth_level'] = intval($val['exempt']);
                 }
             }
             $curdata = "\$_PB_CACHE['{$cachename}'] = " . $this->evalArray($data) . ";\n\n";
             break;
         case "javascript":
             $this->view->clearConfig();
             $this->view->configLoad("default.conf", "javascript");
             $js_vars = $this->view->getConfigVars();
             //arrTemplate is the language pack
             $op = "<!--// Created " . date("M j, Y, G:i") . " -->\n";
             $op .= "var pb_lang = { \n";
             if (!empty($js_vars)) {
                 foreach ($js_vars as $key => $val) {
                     $val = str_replace("\"", "", $val);
                     $op .= "\t" . strtoupper(trim($key, '_')) . ' : "' . $val . '",';
                     $op .= "\n";
                 }
             }
             $op .= "\tEND : ''\n};";
             $fp = file_put_contents($this->cache_path . "locale.js", $op);
             unset($op);
             break;
         default:
             break;
     }
     return $curdata;
 }