7 * Class to manage a group
13 /** string $name Group name */
15 /** integer $id Group id */
17 /** string $description Description of the group */
19 /** boolean $dataLoaded Whereas we grabbed datas from the database */
21 /** string $rights Contain rights values : "foo,bar,bla" */
30 /** Clear variables */
34 $this->description
= '';
35 $this->dataLoaded
= false;
36 $this->rights
= false;
39 /** Load group datas from database */
40 function loadFromDatabase() {
41 global $wgCommandLineMode;
42 $fname = 'Group::loadFromDatabase';
43 if ( $this->dataLoaded ||
$wgCommandLineMode ) {
47 // be sure it's an integer
48 $this->id
= IntVal($this->id
);
51 $dbr =& wfGetDB( DB_SLAVE
);
52 $r = $dbr->selectRow('group', array('group_id', 'group_name', 'group_description', 'group_rights'), array( 'group_id' => $this->id
), $fname );
53 $this->id
= $r->group_id
;
54 $this->name
= $r->group_name
;
55 $this->description
= $r->group_description
;
56 $this->rights
= $r->group_rights
;
57 $this->dataLoaded
= true;
59 $dbr =& wfGetDB( DB_SLAVE
);
60 $r = $dbr->selectRow('group', array('group_id', 'group_name', 'group_description', 'group_rights'), array( 'group_name' => $this->name
), $fname );
61 $this->id
= $r->group_id
;
62 $this->name
= $r->group_name
;
63 $this->description
= $r->group_description
;
64 $this->rights
= $r->group_rights
;
65 $this->dataLoaded
= true;
69 /** Initialise a new row in the database */
70 function addToDatabase() {
71 $fname = 'Group::addToDatabase';
72 $dbw =& wfGetDB( DB_MASTER
);
73 $dbw->insert( 'group',
75 'group_name' => $this->name
,
76 'group_description' => $this->description
,
77 'group_rights' => $this->rights
80 $this->id
= $dbw->insertId();
83 /** Save the group datas into database */
85 $fname = 'Group::save';
86 if($this->id
== 0) { return; }
88 $dbw =& wfGetDB( DB_MASTER
);
90 $dbw->update( 'group',
92 'group_name' => $this->name
,
93 'group_description' => $this->description
,
94 'group_rights' => $this->rights
96 'group_id' => $this->id
102 /** @param integer $id Group database id */
103 function newFromId($id) {
104 $fname = 'Group::newFromId';
106 $name = $g->nameFromId(IntVal($id));
108 if($name == '') { return; }
109 else { return $g->newFromName($name); }
113 /** @param string $name Group database name */
114 function newFromName($name) {
115 $fname = 'Group::newFromName';
118 $g->setId( $g->idFromName($name) );
119 if( $g->getId() != 0 ) {
128 * @param integer $id Group database id
129 * @return string Group database name
131 function nameFromId($id) {
132 $fname = 'Group::nameFromId';
133 $dbr =& wfGetDB( DB_SLAVE
);
134 $r = $dbr->selectRow( 'group', array( 'group_name' ), array( 'group_id' => $id ), $fname );
139 return $r->group_name
;
144 * @param string $name Group database name
145 * @return integer Group database id
147 function idFromName($name) {
148 $fname = 'Group::idFromName';
149 $dbr =& wfGetDB( DB_SLAVE
);
150 $r = $dbr->selectRow( 'group', array( 'group_id' ), array( 'group_name' => $name ), $fname );
159 // Accessors for private variables
161 $this->loadFromDatabase();
164 function setName($name) {
165 $this->loadFromDatabase();
169 function getId() { return $this->id
; }
170 function setId($id) {
171 $this->id
= IntVal($id);
172 $this->dataLoaded
= false;
175 function getDescription() { return $this->description
; }
176 function setDescription($desc) {
177 $this->loadFromDatabase();
178 $this->description
= $desc;
181 function getRights() { return $this->rights
; }
182 function setRights($rights) {
183 $this->loadFromDatabase();
184 $this->rights
= $rights;