58 public function &
create($isNew =
true)
67 public function &
get($id)
72 $sql =
'SELECT * FROM '.$this->db->prefix(
'avatar').
' WHERE avatar_id='.$id;
73 if ($result = $this->db->query($sql)) {
74 $numrows = $this->db->getRowsNum($result);
77 $avatar->assignVars($this->db->fetchArray($result));
89 $avatar_mimetype =
null;
90 $avatar_display =
null;
91 $avatar_weight =
null;
93 $avatar_created =
null;
95 if (
'xoopsavatar' != strtolower(get_class($avatar))) {
98 if (!$avatar->isDirty()) {
101 if (!$avatar->cleanVars()) {
104 foreach ($avatar->cleanVars as $k => $v) {
107 if ($avatar->isNew()) {
108 $avatar_id = $this->db->genId(
'avatar_avatar_id_seq');
109 $sql = sprintf(
'INSERT INTO %s (avatar_id, avatar_file, avatar_name, avatar_created, avatar_mimetype, avatar_display, avatar_weight, avatar_type) VALUES (%u, %s, %s, %u, %s, %u, %u, %s)', $this->db->prefix(
'avatar'), $avatar_id, $this->db->quoteString($avatar_file), $this->db->quoteString($avatar_name), time(), $this->db->quoteString($avatar_mimetype), $avatar_display, $avatar_weight, $this->db->quoteString($avatar_type));
111 $sql = sprintf(
'UPDATE %s SET avatar_file = %s, avatar_name = %s, avatar_created = %u, avatar_mimetype= %s, avatar_display = %u, avatar_weight = %u, avatar_type = %s WHERE avatar_id = %u', $this->db->prefix(
'avatar'), $this->db->quoteString($avatar_file), $this->db->quoteString($avatar_name), $avatar_created, $this->db->quoteString($avatar_mimetype), $avatar_display, $avatar_weight, $this->db->quoteString($avatar_type), $avatar_id);
113 if (!$result = $this->db->query($sql)) {
116 if (empty($avatar_id)) {
117 $avatar_id = $this->db->getInsertId();
119 $avatar->assignVar(
'avatar_id', $avatar_id);
123 public function delete(&$avatar)
125 if (
'xoopsavatar' != strtolower(get_class($avatar))) {
128 $id = $avatar->getVar(
'avatar_id');
129 $sql = sprintf(
'DELETE FROM %s WHERE avatar_id = %u', $this->db->prefix(
'avatar'), $id);
130 if (!$result = $this->db->query($sql)) {
133 $sql = sprintf(
'DELETE FROM %s WHERE avatar_id = %u', $this->db->prefix(
'avatar_user_link'), $id);
134 $result = $this->db->query($sql);
138 public function &getObjects($criteria =
null, $id_as_key =
false)
142 $sql =
'SELECT a.*, COUNT(u.user_id) AS count FROM '.$this->db->prefix(
'avatar').
' a LEFT JOIN '.$this->db->prefix(
'avatar_user_link').
' u ON u.avatar_id=a.avatar_id';
143 if (isset($criteria) && $criteria instanceof \criteriaelement) {
144 $sql .=
' '.$criteria->renderWhere();
145 $sql .=
' GROUP BY a.avatar_id ORDER BY avatar_weight, avatar_id';
146 $limit = $criteria->getLimit();
147 $start = $criteria->getStart();
149 $result = $this->db->query($sql, $limit, $start);
153 while ($myrow = $this->db->fetchArray($result)) {
154 $avatar =
new XoopsAvatar();
155 $avatar->assignVars($myrow);
156 $avatar->setUserCount($myrow[
'count']);
160 $ret[$myrow[
'avatar_id']] =& $avatar;
167 public function getCount($criteria =
null)
169 $sql =
'SELECT COUNT(*) FROM '.$this->db->prefix(
'avatar');
170 if (isset($criteria) && $criteria instanceof \criteriaelement) {
171 $sql .=
' '.$criteria->renderWhere();
173 if (!$result =& $this->db->query($sql)) {
176 [$count] = $this->db->fetchRow($result);
180 public function addUser($avatar_id, $user_id)
182 $avatar_id = (int)$avatar_id;
183 $user_id = (int)$user_id;
184 if ($avatar_id < 1 || $user_id < 1) {
187 $sql = sprintf(
'DELETE FROM %s WHERE user_id = %u', $this->db->prefix(
'avatar_user_link'), $user_id);
188 $this->db->query($sql);
189 $sql = sprintf(
'INSERT INTO %s (avatar_id, user_id) VALUES (%u, %u)', $this->db->prefix(
'avatar_user_link'), $avatar_id, $user_id);
190 if (!$result =& $this->db->query($sql)) {
191 $avatar_id = XOOPS_UPLOAD_URL .
"/modules/user/images/no_avatar.gif";
197 public function &getUser(&$avatar)
200 if (
'xoopsavatar' != strtolower(get_class($avatar))) {
203 $sql =
'SELECT user_id FROM '.$this->db->prefix(
'avatar_user_link').
' WHERE avatar_id='.$avatar->getVar(
'avatar_id');
204 if (!$result = $this->db->query($sql)) {
207 while ($myrow = $this->db->fetchArray($result)) {
208 $ret[] =& $myrow[
'user_id'];
213 public function &getList($avatar_type =
null, $avatar_display =
null)
215 $criteria =
new CriteriaCompo();
216 if (isset($avatar_type)) {
217 $avatar_type = (
'C' == $avatar_type) ?
'C' :
'S';
218 $criteria->add(
new Criteria(
'avatar_type', $avatar_type));
220 if (isset($avatar_display)) {
221 $criteria->add(
new Criteria(
'avatar_display', (
int)$avatar_display));
223 $avatars =& $this->getObjects($criteria,
true);
224 $ret = [
'blank.gif' => _NONE];
225 foreach (array_keys($avatars) as $i) {
226 $ret[$avatars[$i]->getVar(
'avatar_file')] = $avatars[$i]->getVar(
'avatar_name');