]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - plugins/GNUsocialProfileExtensions/actions/bio.php
XSS vulnerability when remote-subscribing
[quix0rs-gnu-social.git] / plugins / GNUsocialProfileExtensions / actions / bio.php
1 <?php
2 /**
3  * GNU Social
4  * Copyright (C) 2010, Free Software Foundation, Inc.
5  *
6  * PHP version 5
7  *
8  * LICENCE:
9  * 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.
13  *
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.
18  *
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/>.
21  *
22  * @category  Widget
23  * @package   GNU Social
24  * @author    Max Shinn <trombonechamp@gmail.com>
25  * @copyright 2011 Free Software Foundation, Inc.
26  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
27  */
28
29 if (!defined('STATUSNET')) {
30     exit(1);
31 }
32
33 require_once INSTALLDIR . '/lib/personalgroupnav.php';
34 require_once INSTALLDIR . '/classes/Profile.php';
35 require_once INSTALLDIR . '/lib/profilelist.php';
36
37 class BioAction extends Action
38 {
39     var $user = null;
40
41     function prepare($args)
42     {
43         parent::prepare($args);
44
45         $args = $this->returnToArgs();
46         $this->profile = Profile::getKV('nickname', $args[1]['nickname']);
47         //die(print_r($this->profile));
48         gnusocial_profile_merge($this->profile);
49
50         return true;
51
52     }
53
54     function handle($args)
55     {
56         parent::handle($args);
57         $this->showPage();
58     }
59
60     function title()
61     {
62         return sprintf(_m("%s's Bio."), $this->profile->nickname);
63     }
64
65     function showLocalNav()
66     {
67         $nav = new PersonalGroupNav($this);
68         $nav->show();
69     }
70
71     function showContent()
72     {
73         if(empty($this->profile)) {
74             return;
75         }
76
77         $profilelistitem = new ProfileListItem($this->profile, $this);
78         $profilelistitem->show();
79         $this->elementStart('ul');
80         $fields = GNUsocialProfileExtensionField::allFields();
81         foreach ($fields as $field) {
82             $fieldname = $field->systemname;
83             if (!empty($this->profile->$fieldname)) {
84                 $this->elementStart('li', array('class' => 'biolistitem'));
85                 $this->elementStart('div', array('class' => 'biolistitemcontainer'));
86                 if ($field->type == 'text') {
87                     $this->element('h3', array(), $field->title);
88                     $this->element('p', array('class' => 'biovalue'), $this->profile->$fieldname);
89                 }
90                 else {
91                     $this->element('span', array('class' => 'biotitle'), $field->title);
92                     $this->text(' ');
93                     $this->element('span', array('class' => 'biovalue'), $this->profile->$fieldname);
94                 }
95                 $this->elementEnd('div');
96                 $this->elementEnd('li');
97             }
98         }
99         $this->elementEnd('ul');
100     }
101
102 }
103
104