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 $avatar)
63 $alink = new AvatarLink();
64 $alink->type = $avatar->mediatype;
65 $alink->height = $avatar->height;
66 $alink->width = $avatar->width;
67 $alink->url = $avatar->displayUrl();
71 static function fromFilename($filename, $size)
73 $alink = new AvatarLink();
74 $alink->url = $filename;
75 $alink->height = $size;
76 $alink->width = $size;
77 if (!empty($filename)) {
78 $alink->type = self::mediatype($filename);
80 $alink->url = User_group::defaultLogo($size);
81 $alink->type = 'image/png';
87 static function mediatype($filename) {
88 $ext = strtolower(end(explode('.', $filename)));
92 // hope we don't support any others
93 $types = array('png', 'gif', 'jpg', 'jpeg');
94 if (in_array($ext, $types)) {
95 return 'image/' . $ext;