clear(); } /** Clear variables */ function clear() { $this->name = ''; $this->id = 0; $this->description = ''; $this->dataLoaded = false; $this->rights = false; } /** Load group datas from database */ function loadFromDatabase() { global $wgCommandLineMode; $fname = 'Group::loadFromDatabase'; if ( $this->dataLoaded || $wgCommandLineMode ) { return; } // be sure it's an integer $this->id = IntVal($this->id); if($this->id) { $dbr =& wfGetDB( DB_SLAVE ); $r = $dbr->selectRow('group', array('group_id', 'group_name', 'group_description', 'group_rights'), array( 'group_id' => $this->id ), $fname ); $this->id = $r->group_id; $this->name = $r->group_name; $this->description = $r->group_description; $this->rights = $r->group_rights; $this->dataLoaded = true; } else { $dbr =& wfGetDB( DB_SLAVE ); $r = $dbr->selectRow('group', array('group_id', 'group_name', 'group_description', 'group_rights'), array( 'group_name' => $this->name ), $fname ); $this->id = $r->group_id; $this->name = $r->group_name; $this->description = $r->group_description; $this->rights = $r->group_rights; $this->dataLoaded = true; } } /** Initialise a new row in the database */ function addToDatabase() { $fname = 'Group::addToDatabase'; $dbw =& wfGetDB( DB_MASTER ); $dbw->insert( 'group', array( 'group_name' => $this->name, 'group_description' => $this->description, 'group_rights' => $this->rights ), $fname ); $this->id = $dbw->insertId(); } /** Save the group datas into database */ function save() { $fname = 'Group::save'; if($this->id == 0) { return; } $dbw =& wfGetDB( DB_MASTER ); $dbw->update( 'group', array( /* SET */ 'group_name' => $this->name, 'group_description' => $this->description, 'group_rights' => $this->rights ), array( /* WHERE */ 'group_id' => $this->id ), $fname ); } // Factories /** @param integer $id Group database id */ function newFromId($id) { $fname = 'Group::newFromId'; $g = new Group(); $name = $g->nameFromId(IntVal($id)); if($name == '') { return; } else { return $g->newFromName($name); } } /** @param string $name Group database name */ function newFromName($name) { $fname = 'Group::newFromName'; $g = new Group(); $g->setId( $g->idFromName($name) ); if( $g->getId() != 0 ) { return $g; } else { return; } } // Converters /** * @param integer $id Group database id * @return string Group database name */ function nameFromId($id) { $fname = 'Group::nameFromId'; $dbr =& wfGetDB( DB_SLAVE ); $r = $dbr->selectRow( 'group', array( 'group_name' ), array( 'group_id' => $id ), $fname ); if ($dbr == null) return; if($r === false) { return ''; } else { return $r->group_name; } } /** * @param string $name Group database name * @return integer Group database id */ function idFromName($name) { $fname = 'Group::idFromName'; $dbr =& wfGetDB( DB_SLAVE ); $r = $dbr->selectRow( 'group', array( 'group_id' ), array( 'group_name' => $name ), $fname ); if($r === false) { return 0; } else { return $r->group_id; } } // Accessors for private variables function getName() { $this->loadFromDatabase(); return $this->name; } function setName($name) { $this->loadFromDatabase(); $this->name = $name; } function getId() { return $this->id; } function setId($id) { $this->id = IntVal($id); $this->dataLoaded = false; } function getDescription() { return $this->description; } function setDescription($desc) { $this->loadFromDatabase(); $this->description = $desc; } function getRights() { return $this->rights; } function setRights($rights) { $this->loadFromDatabase(); $this->rights = $rights; } } ?>