[flexcoders] Re: AMFPHP and HierarchicalData

2008-10-09 Thread valdhor
OK, this is a small example:

===
The MySQL Dump of the database:
/*Table structure for table `MenuItemsTesting` */

DROP TABLE IF EXISTS `MenuItemsTesting`;

CREATE TABLE `MenuItemsTesting` (
   `ID` int(10) unsigned NOT NULL auto_increment,
   `ItemText` varchar(50) character set utf8 collate utf8_unicode_ci NOT
NULL,
   `IsTopMenu` tinyint(1) default NULL,
   `HasSubMenu` tinyint(1) default NULL,
   `Link` varchar(255) character set utf8 collate utf8_unicode_ci default
NULL,
   `ParentMenuID` int(10) unsigned default NULL,
   `TopMenuOrder` int(10) unsigned default NULL,
   UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=120 DEFAULT CHARSET=latin1;

/*Data for the table `MenuItemsTesting` */

insert  into
`MenuItemsTesting`(`ID`,`ItemText`,`IsTopMenu`,`HasSubMenu`,`Link`,`Pare\
ntMenuID`,`TopMenuOrder`) values (1,'Menu 1',1,0,'',0,1),(2,'Menu 1 Item
1',0,0,'',1,1),(3,'Menu 1 Item 2',0,0,'',1,2),(4,'Menu
2',1,0,'',0,2),(5,'Menu 2 Item 1',0,0,'',4,1),(6,'Menu 2 Item
2',0,0,'',4,2),(7,'Menu 2 Item 1',0,0,'',4,3),(8,'Menu
3',1,0,'',0,3),(9,'Menu 3 Item 1',0,0,'',8,1),(10,'Menu 3 Submenu
1',0,1,'',8,2),(11,'Menu 3 Submenu 1 Item 1',0,0,'',10,1),(12,'Menu 3
Submenu 1 Item 2',0,0,'',10,2);
===

On the PHP server I have the following setup for WebORB:

===
/WebORB/Services/WeborbTesting/VOs/Menu.php:
?php
class Menu
{
 public $ID;
 public $label;
 public $ParentMenuID;
 public $children;

 function __construct()
 {
 $this-label = ;
 $this-ParentMenuID = null;
 $this-children = array();
 }
}
?
===
/WebORB/Services/WeborbTesting/VOs/MenuItem.php:
?php
class MenuItem
{
 public $ID;
 public $label;
 public $Link;
 public $ParentMenuID;

 function __construct()
 {
 $this-label = ;
 $this-Link = ;
 $this-ParentMenuID = null;
 }
}
?
===
/WebORB/Services/WeborbTesting/MenusService.php:
?php
require_once VOs/MenuItem.php;
require_once VOs/Menu.php;

class MenusService
{
 /**
  * Get Menus
  * @returns An Array of Menus
  */
 function getMenus()
 {
 $menus = array();
 $menuDB = new mysqli(myserver.com, user, password,
database);
 if(!mysqli_connect_errno())
 {
 $query = SELECT * FROM MenuItemsTesting WHERE IsTopMenu=1
ORDER BY TopMenuOrder ASC;
 $queryResult = $menuDB-query($query);
 $menusArray = array();
 if($queryResult-num_rows  0)
 {
 while ($row = $queryResult-fetch_assoc())
 {
 $menu = new Menu();
 $menu-ID = (int)$row['ID'];
 $menu-label = $row['ItemText'];
 $menusArray[] = $menu;
 }
 }

 foreach ($menusArray as $menu)
 {
 $menu = (object)$menu;
 $query = select * from MenuItemsTesting WHERE
ParentMenuID= . $menu-ID .  ORDER BY TopMenuOrder;
 $queryResult = $menuDB-query($query);
 if($queryResult-num_rows  0)
 {
 $menuItems = array();
 while ($row = $queryResult-fetch_assoc())
 {
 if($row['HasSubMenu'])
 {
 $menuItem = new Menu();
 $menuItem-ID = (int)$row['ID'];
 $menuItem-label = $row['ItemText'];
 $menuItem-ParentMenuID =
$row['ParentMenuID'];
 $menuItem-children =
$this-getSubMenu($row['ID']);
 }
 else // Not a Sub Menu
 {
 $menuItem = new MenuItem();
 $menuItem-ID = (int)$row['ID'];
 $menuItem-label = $row['ItemText'];
 $menuItem-ParentMenuID =
$row['ParentMenuID'];
 $menuItem-Link = $row['Link'];
 }
 $menuItems[] = $menuItem;
 }
 $menu-children = $menuItems;
 }
 $menus[] = $menu;
 }
 }
 return $menus;
 } // End Function getMenus

 function getSubMenu($parentMenuID)
 {
 $subMenuItemsArray = array();
 $subMenuDB = new mysqli(myserver.com, user, password,
database);
 $subMenuQuery = select * from MenuItemsTesting WHERE
ParentMenuID= . $parentMenuID .  ORDER BY TopMenuOrder;
 $subMenuQueryResult 

[flexcoders] Re: AMFPHP and HierarchicalData

2008-10-09 Thread Amy
--- In flexcoders@yahoogroups.com, valdhor [EMAIL PROTECTED] wrote:

 OK, this is a small example:

Thanks :-).  This project is on hold right now, but I will be able to 
use this soon.



[flexcoders] Re: AMFPHP and HierarchicalData

2008-10-08 Thread valdhor
Not with AMFPHP, but I do with WebORB. They should be fairly close.

I use it to create my menubar. I have Menu objects and MenuItem
objects. Each Menu object can contain MenuItem objects as well as Menu
objects. With this structure, the Flex menubar can take the entire
arraycollection as a dataprovider and automatically create my menubar.

Let me know if you would like me to create a small example.


--- In flexcoders@yahoogroups.com, Amy [EMAIL PROTECTED] wrote:

 Does anyone have an example of using AMFPHP to serialize and 
 deserialize hierarchical collections of typed objects?
 
 Thanks;
 
 Amy





[flexcoders] Re: AMFPHP and HierarchicalData

2008-10-08 Thread Amy
--- In flexcoders@yahoogroups.com, valdhor [EMAIL PROTECTED] wrote:

 Not with AMFPHP, but I do with WebORB. They should be fairly close.
 
 I use it to create my menubar. I have Menu objects and MenuItem
 objects. Each Menu object can contain MenuItem objects as well as Menu
 objects. With this structure, the Flex menubar can take the entire
 arraycollection as a dataprovider and automatically create my menubar.
 
 Let me know if you would like me to create a small example.

I'd love to see it if you don't mind :-)

Thanks;

Amy