3 * StatusNet, the distributed open-source microblogging tool
9 * LICENCE: This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Affero General Public License as published by
11 * the Free Software Foundation, either version 3 of the License, or
12 * (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Affero General Public License for more details.
19 * You should have received a copy of the GNU Affero General Public License
20 * along with this program. If not, see <http://www.gnu.org/licenses/>.
24 * @author Evan Prodromou <evan@status.net>
25 * @author Zach Copley <zach@status.net>
26 * @copyright 2010 StatusNet, Inc.
27 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
28 * @link http://status.net/
31 if (!defined('STATUSNET')) {
35 // XXX: Arg! This wouldn't be necessary if we used Avatars conistently
44 function __construct($element=null)
47 // @fixme use correct namespaces
48 $this->url = $element->getAttribute('href');
49 $this->type = $element->getAttribute('type');
50 $width = $element->getAttribute('media:width');
52 $this->width = intval($width);
54 $height = $element->getAttribute('media:height');
55 if ($height != null) {
56 $this->height = intval($height);
61 static function fromAvatar($avatar)
66 $alink = new AvatarLink();
67 $alink->type = $avatar->mediatype;
68 $alink->height = $avatar->height;
69 $alink->width = $avatar->width;
70 $alink->url = $avatar->displayUrl();
74 static function fromFilename($filename, $size)
76 $alink = new AvatarLink();
77 $alink->url = $filename;
78 $alink->height = $size;
79 $alink->width = $size;
80 if (!empty($filename)) {
81 $alink->type = self::mediatype($filename);
83 $alink->url = User_group::defaultLogo($size);
84 $alink->type = 'image/png';
90 static function mediatype($filename) {
91 $ext = strtolower(end(explode('.', $filename)));
95 // hope we don't support any others
96 $types = array('png', 'gif', 'jpg', 'jpeg');
97 if (in_array($ext, $types)) {
98 return 'image/' . $ext;