<?php
//config
$mysql=array(
'host'=>'localhost',
'user'=>'db_user',
'password'=>'db_password',
'database'=>'db_name',
);
mysql_connect($mysql['host'],$mysql['user'],$mysql['password']) or die ('error mysql_connect');
mysql_select_db($mysql['database']) or die ('error mysql_select_db');
mysql_query("set names 'utf8'");
//database functions
function get_from_base($what,$from,$where='(1)',$order='id'){
if(trim($what)!=''&&trim($from)!=''&&trim($where)!=''&&trim($order)!=''){
$arr=array();
$query="select ".$what." from ".$from." where ".$where." order by ".$order;
$result=mysql_query($query);
echo mysql_error();
if(mysql_num_rows($result)>0){
while($tmp=mysql_fetch_assoc($result)){
$arr[]=$tmp;
}
return $arr;
}
}else{
return false;
}
}
//work functions
function make_tree($term_data,$parent){
$tree=array();
foreach($term_data as $data){
if($data['parent']==$parent){
$data['childs']=make_tree($term_data,$data['tid']);
$data['items']=get_products($data['tid']);
$tree[]=$data;
}
}
return $tree;
}
function get_products($tid){
$products=array();
$products_list=get_from_base('*','term_node',"`tid`='".$tid."'",'tid');
if(count($products_list)>0){
foreach($products_list as $product){
$nodes_product=get_from_base('*','node','type="product" and `vid`='.$product['vid'].' and `nid`='.$product['nid'],'created');
foreach($nodes_product as $p){
$content_type_product=get_from_base('*','content_type_product',"`vid`='".$p['vid']."' AND `nid`='".$p['nid']."'",'vid');
$node_revisions=get_from_base('*','node_revisions',"`vid`='".$p['vid']."' AND `nid`='".$p['nid']."'",'vid');
$photos=array();
$content_field_product_images=get_from_base('*','content_field_product_images',"`vid`='".$p['vid']."' AND `nid`='".$p['nid']."'",'vid');
for($i=0;$i<=count($content_field_product_images)-1;$i++){
$content_field_product_images[$i]['files']=get_from_base('*','files',"`fid`='".$content_field_product_images[$i]['field_product_images_fid']."'",'fid');
foreach($content_field_product_images[$i]['files'] as $file){
$photos[]=$file['filepath'];
}
}
$sizes=array();
$colors=array();
$parent='';
$brand='';
$other=array();
$term_node=get_from_base('*','term_node',"`vid`='".$p['vid']."' AND `nid`='".$p['nid']."'",'vid');
for($i=0;$i<=count($term_node)-1;$i++){
$term_node[$i]['term_data']=get_from_base('*','term_data',"`tid`='".$term_node[$i]['tid']."'",'tid');
foreach($term_node[$i]['term_data'] as $term_data){
switch($term_data['vid']){
case 4:
$sizes[]=$term_data['name'];
break;
case 3:
$parent=$term_data['tid'];
break;
case 6:
$brand=$term_data['name'];
break;
case 5:
$colors[]=$term_data['name'];
break;
default:
$other[]=$term_data['name'];
break;
}
}
}
$url_alias=get_from_base('*','url_alias',"`src`='node/".$p['nid']."'",'pid');
$products[]=array(
'vid'=>$p['vid'],
'nid'=>$p['nid'],
'name'=>$p['title'],
'price'=>$content_type_product[0]['field_product_price_value'],
'discount'=>$content_type_product[0]['field_product_discount_value'],
'price_discount'=>$content_type_product[0]['field_product_price_discount_value'],
'price_opt'=>$content_type_product[0]['field_product_price_opt_value'],
'male'=>$content_type_product[0]['field_product_male_value'],
'female'=>$content_type_product[0]['field_product_female_value'],
'sport'=>$content_type_product[0]['field_product_sport_value'],
'child'=>$content_type_product[0]['field_product_child_value'],
'winter_season'=>$content_type_product[0]['field_product_winter_season_value'],
'spring_season'=>$content_type_product[0]['field_product_spring_season_value'],
'summer_season'=>$content_type_product[0]['field_product_summer_season_value'],
'autumn_season'=>$content_type_product[0]['field_product_autumn_season_value'],
'new'=>$content_type_product[0]['field_product_new_value'],
'popular'=>$content_type_product[0]['field_product_popular_value'],
'notavailable'=>$content_type_product[0]['field_product_notavailable_value'],
'type'=>$content_type_product[0]['field_product_type_value'],
//'content_type_product'=>$content_type_product,
'content'=>$node_revisions[0]['body'],
//'node_revisions'=>$node_revisions,
'photos'=>$photos,
//'content_field_product_images'=>$content_field_product_images,
'sizes'=>$sizes,
'parent'=>$parent,
'brand'=>$brand,
'colors'=>$colors,
'other'=>$other,
//'term_node'=>$term_node,
'url_alias'=>$url_alias[0]['dst'],
);
}
}
}
return $products;
}
//work
$tree=array();
echo '<pre>';
$term_data=array();
$cats=get_from_base('*','term_data','vid=3','weight');
foreach($cats as $cat){
$url_alias=get_from_base('*','url_alias',"`src`='cat/".$cat['tid']."'",'pid');
$term_data[$cat['tid']]=array(
'tid'=>$cat['tid'],
'name'=>$cat['name'],
'parent'=>0,
'url_alias'=>$url_alias[0]['dst'],
);
}
$hierarchy=get_from_base('*','term_hierarchy','`tid` in (select `tid` from `term_data`)','tid');
foreach($hierarchy as $h){
if(is_array($term_data[$h['tid']])){
$term_data[$h['tid']]['parent']=$h['parent'];
}
}
$tree=make_tree($term_data,0);
print_r($tree);
echo '</pre >';