Home > Archive > PHP Programming > September 2007 > pls help me with the logic for generating extjs tree dataurl
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
pls help me with the logic for generating extjs tree dataurl
|
|
| premrajwins@gmail.com 2007-09-26, 7:01 pm |
|
thanks in advance for all guys kindly help...
we are genrating the extjs tree
content for the tree has to be fetched from MySQL and the JSON has to
be composed using php
The general format for extjs tree url is as below...
[{text:'A',
icon :'/new_cms/cms/ext/resources/images/accord/page_green.png',
qtip:'test',id:'1',
children:[
{text:'A_1',
icon:'/new_cms/cms/ext/resources/images/accord/page_green.png',
id:'3',
qtip:'demo',allowDelete:true,children:[]
},]},]
+++++++++++++++++++++
i genrated this using following code...
This code works fine only for first level
if i insert a child to a the tree breaks up
pls help me with the correct logic
or give me the link where i can find help
++++++++++++++++++++++++++++++
The array variable $menu_name should be the text:
$tree_id[] is a reference like primary key
$menu_id[] decides the tree level
if the $menu_id is 1 or 2 or 3 ..... so on without any _(underscore)
its the first level..
if $menu_id is 1_1 then its the child of 1
if $menu_id is 1_2 then its the child of 1
if $menu_id is 1_1_1 then its the child of 1_1
feel free to ask any info about the coding and other issues
========================================
=======
<?
$new_sub="[";
$new_sub_end="]";
$tree_content="";
$tree_array=array();
$root_node=array();
$array_count=0;
$root_count=0;
$con= mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("pixel_cms",$con);
$root = mysql_query("SELECT * FROM menu_managment_table where
menu_category='primary' ORDER BY tree_id ASC ");
$tree_content.=$new_sub;
$m=1;
while($row = mysql_fetch_assoc($root))
{
$menu_name[$m]=$row['menu_name'] ;
$menu_id[$m]=$row['tree_id'];
$tree_id[$m]=$row['menu_id'];
$m++;
}
$limit=1;
$itration=0;
for($i=1;$i<=count($menu_id);$i++ )
{
$next=1;
$str=$i;
$var= array_search($str,$menu_id);
if(!empty($var))
{
$tpm= explode('_',$str);
$tpm_limit=count($tpm);
//echo $tpm_limit."<br>";
while($tpm_limit<=$limit)
{
$sub=$str."_".$next;
$sub_var=array_search($sub,$menu_id);
if(!empty($sub_var))
{
$qtip = 'Last Modified: '.$lastmod.'<br />Size: '.$size;
$tree_array[++$array_count]="{text:'".$menu_name[$var]."',icon :'/
new_cms/cms/ext/resources/images/accord/
page_green.png',qtip:'test',id:'".$tree_id[$var]."',children:[";
$var=$sub_var;
$root_node[++$root_count]= $str;
++$itration;
$str=$sub;
}else
{
$tree_array[++$array_count]="{text:'".$menu_name[$var]."',icon:'/
new_cms/cms/ext/resources/images/accord/page_green.png',id:'".
$tree_id[$var]." ',qtip:'demo',allowDelete:true,children:
[]},";
$var1=rep($sub );
if($var1)
{}else{break;}
}
}
}
}
function rep($sub )
{
//echo $sub."<br>";
global $tpm,$tpm_limit,$str,$menu_id,$var;
$tpm=explode("_",$sub);
$tpm_limit=count($tpm);
if($tpm_limit>2)
{
unset($tpm[$tpm_limit-1]);
++$tpm[count($tpm)-1];
$str=join("_",$tpm);
$var= array_search($str,$menu_id);
if(empty($var))
{
if( rep($str ))
{
return true;
}
}else{
return true;
}
}else
{
return false;
}
}
for($j=1;$j<=count($root_node);$j++)
{
$key=0;
for($i=1;$i<=count($menu_id);$i++)
{
if (strncasecmp($root_node[$j],
$menu_id[$i],strlen($root_node[$j]))==0)
{
$key=$i;
}
}
if($key){
$tree_array[$key]=$tree_array[$key]."]},";
}
}
//var_dump($tree_array);
$tree_content= $new_sub.join('',$tree_array).$new_sub_end ;
echo $tree_content;
?>
| |
| Captain Paralytic 2007-09-26, 7:01 pm |
| On 26 Sep, 15:58, premrajw...@gmail.com wrote:
> thanks in advance for all guys kindly help...
> we are genrating the extjs tree
> content for the tree has to be fetched from MySQL and the JSON has to
> be composed using php
>
> The general format for extjs tree url is as below...
>
> [{text:'A',
> icon :'/new_cms/cms/ext/resources/images/accord/page_green.png',
> qtip:'test',id:'1',
> children:[
> {text:'A_1',
> icon:'/new_cms/cms/ext/resources/images/accord/page_green.png',
> id:'3',
> qtip:'demo',allowDelete:true,children:[]
},]},]
>
> +++++++++++++++++++++
> i genrated this using following code...
>
> This code works fine only for first level
> if i insert a child to a the tree breaks up
> pls help me with the correct logic
> or give me the link where i can find help
>
> ++++++++++++++++++++++++++++++
>
> The array variable $menu_name should be the text:
> $tree_id[] is a reference like primary key
> $menu_id[] decides the tree level
> if the $menu_id is 1 or 2 or 3 ..... so on without any _(underscore)
> its the first level..
> if $menu_id is 1_1 then its the child of 1
> if $menu_id is 1_2 then its the child of 1
> if $menu_id is 1_1_1 then its the child of 1_1
> feel free to ask any info about the coding and other issues
> ========================================
=======
>
> <?
>
> $new_sub="[";
> $new_sub_end="]";
> $tree_content="";
> $tree_array=array();
>
> $root_node=array();
>
> $array_count=0;
> $root_count=0;
>
> $con= mysql_connect("localhost","root","");
>
> if (!$con)
> {
> die('Could not connect: ' . mysql_error());
> }
> mysql_select_db("pixel_cms",$con);
>
> $root = mysql_query("SELECT * FROM menu_managment_table where
> menu_category='primary' ORDER BY tree_id ASC ");
> $tree_content.=$new_sub;
> $m=1;
> while($row = mysql_fetch_assoc($root))
> {
>
> $menu_name[$m]=$row['menu_name'] ;
> $menu_id[$m]=$row['tree_id'];
> $tree_id[$m]=$row['menu_id'];
> $m++;
> }
> $limit=1;
> $itration=0;
> for($i=1;$i<=count($menu_id);$i++ )
> {
> $next=1;
> $str=$i;
> $var= array_search($str,$menu_id);
> if(!empty($var))
> {
> $tpm= explode('_',$str);
> $tpm_limit=count($tpm);
>
> //echo $tpm_limit."<br>";
>
> while($tpm_limit<=$limit)
> {
>
> $sub=$str."_".$next;
>
> $sub_var=array_search($sub,$menu_id);
>
> if(!empty($sub_var))
> {
>
> $qtip = 'Last Modified: '.$lastmod.'<br />Size: '.$size;
>
> $tree_array[++$array_count]="{text:'".$menu_name[$var]."',icon :'/
> new_cms/cms/ext/resources/images/accord/
> page_green.png',qtip:'test',id:'".$tree_id[$var]."',children:[";
> $var=$sub_var;
> $root_node[++$root_count]= $str;
> ++$itration;
> $str=$sub;
>
> }else
> {
> $tree_array[++$array_count]="{text:'".$menu_name[$var]."',icon:'/
> new_cms/cms/ext/resources/images/accord/page_green.png',id:'".
> $tree_id[$var]." ',qtip:'demo',allowDelete:true,children:
[]},";
> $var1=rep($sub );
> if($var1)
> {}else{break;}
> }
>
> }
> }
>
> }
>
> function rep($sub )
> {
> //echo $sub."<br>";
>
> global $tpm,$tpm_limit,$str,$menu_id,$var;
> $tpm=explode("_",$sub);
> $tpm_limit=count($tpm);
> if($tpm_limit>2)
> {
> unset($tpm[$tpm_limit-1]);
> ++$tpm[count($tpm)-1];
> $str=join("_",$tpm);
> $var= array_search($str,$menu_id);
>
> if(empty($var))
> {
>
> if( rep($str ))
> {
>
> return true;
> }
> }else{
> return true;
> }
> }else
> {
> return false;
> }
> }
>
> for($j=1;$j<=count($root_node);$j++)
> {
> $key=0;
> for($i=1;$i<=count($menu_id);$i++)
> {
> if (strncasecmp($root_node[$j],
> $menu_id[$i],strlen($root_node[$j]))==0)
{
> $key=$i;
> }
> }
>
> if($key){
> $tree_array[$key]=$tree_array[$key]."]},";
> }
>
> }
>
> //var_dump($tree_array);
> $tree_content= $new_sub.join('',$tree_array).$new_sub_end ;
>
> echo $tree_content;
>
> ?>
You haven't shared your schema.
Take a look at:
http://del.icio.us/Captain_Paralytic/hierarchical
|
|
|
|
|