7 * Class to manage a group
14 /** string $name Group name */
16 /** integer $id Group id */
18 /** string $description Description of the group */
20 /** boolean $dataLoaded Whereas we grabbed datas from the database */
22 /** string $rights Contain rights values : "foo,bar,bla" */
31 /** Clear variables */
35 $this->description
= '';
36 $this->dataLoaded
= false;
37 $this->rights
= false;
40 /** Load group datas from database */
41 function loadFromDatabase() {
42 global $wgCommandLineMode;
43 $fname = 'Group::loadFromDatabase';
44 if ( $this->dataLoaded ||
$wgCommandLineMode ) {
48 // be sure it's an integer
49 $this->id
= IntVal($this->id
);
52 $dbr =& wfGetDB( DB_SLAVE
);
53 $r = $dbr->selectRow('group', array('group_id', 'group_name', 'group_description', 'group_rights'), array( 'group_id' => $this->id
), $fname );
54 $this->id
= $r->group_id
;
55 $this->name
= $r->group_name
;
56 $this->description
= $r->group_description
;
57 $this->rights
= $r->group_rights
;
58 $this->dataLoaded
= true;
60 $dbr =& wfGetDB( DB_SLAVE
);
61 $r = $dbr->selectRow('group', array('group_id', 'group_name', 'group_description', 'group_rights'), array( 'group_name' => $this->name
), $fname );
62 $this->id
= $r->group_id
;
63 $this->name
= $r->group_name
;
64 $this->description
= $r->group_description
;
65 $this->rights
= $r->group_rights
;
66 $this->dataLoaded
= true;
70 /** Initialise a new row in the database */
71 function addToDatabase() {
72 $fname = 'Group::addToDatabase';
73 $dbw =& wfGetDB( DB_MASTER
);
74 $dbw->insert( 'group',
76 'group_name' => $this->name
,
77 'group_description' => $this->description
,
78 'group_rights' => $this->rights
81 $this->id
= $dbw->insertId();
84 /** Save the group datas into database */
86 $fname = 'Group::save';
87 if($this->id
== 0) { return; }
89 $dbw =& wfGetDB( DB_MASTER
);
91 $dbw->update( 'group',
93 'group_name' => $this->name
,
94 'group_description' => $this->description
,
95 'group_rights' => $this->rights
97 'group_id' => $this->id
103 /** @param integer $id Group database id */
104 function newFromId($id) {
105 $fname = 'Group::newFromId';
107 $name = $g->nameFromId(IntVal($id));
109 if($name == '') { return; }
110 else { return $g->newFromName($name); }
114 /** @param string $name Group database name */
115 function newFromName($name) {
116 $fname = 'Group::newFromName';
119 $g->setId( $g->idFromName($name) );
120 if( $g->getId() != 0 ) {
129 * @param integer $id Group database id
130 * @return string Group database name
132 function nameFromId($id) {
133 $fname = 'Group::nameFromId';
134 $dbr =& wfGetDB( DB_SLAVE
);
135 $r = $dbr->selectRow( 'group', array( 'group_name' ), array( 'group_id' => $id ), $fname );
141 return $r->group_name
;
146 * @param string $name Group database name
147 * @return integer Group database id
149 function idFromName($name) {
150 $fname = 'Group::idFromName';
151 $dbr =& wfGetDB( DB_SLAVE
);
152 $r = $dbr->selectRow( 'group', array( 'group_id' ), array( 'group_name' => $name ), $fname );
161 // Accessors for private variables
163 $this->loadFromDatabase();
166 function setName($name) {
167 $this->loadFromDatabase();
171 function getId() { return $this->id
; }
172 function setId($id) {
173 $this->id
= IntVal($id);
174 $this->dataLoaded
= false;
177 function getDescription() { return $this->description
; }
178 function setDescription($desc) {
179 $this->loadFromDatabase();
180 $this->description
= $desc;
183 function getRights() { return $this->rights
; }
184 function setRights($rights) {
185 $this->loadFromDatabase();
186 $this->rights
= $rights;