User:Socoljam/DynamicArticleList (enhanced)/CategoryNode.php
Save the following code as CategoryNode.php in your extensions or includes directory:
<?php /** * Contain the CategoryNode class * Each Node maintain its parent, children Node and informations of self. * * @package MediaWiki * @author Zeng Ji(zengji@gmail.com) */ class CategoryInfo { var $category_id; var $category_name; function __construct($categoryId, $categoryName) { $this->category_id = $categoryId; $this->category_name = $categoryName; } } class CategoryNode { // The data structure support: // 1. Each category node should has only one parent or not. // 2. Each category node could has more than one child. var $parent; var $children; var $categoryInfo; // This variable is used to guarantee: There is no loop in parent/child relationship. // After node is added to category tree, the variable should be set to true. // If one node's "hasTravelled" is true, it should not be processed any more. var $hasTravelled; function __construct($categoryId, $categoryName) { $this->parent = false; $this->children = false; $this->categoryInfo = new CategoryInfo($categoryId, $categoryName); $this->hasTravelled = false; } function getCategoryName() { return $this->categoryInfo->category_name; } } ?>