]> git.mxchange.org Git - friendica.git/blob - src/Content/ContactSelector.php
Add support for legacy $lang config in App->loadConfig
[friendica.git] / src / Content / ContactSelector.php
1 <?php
2 /**
3  * @file src/Content/ContactSelector.php
4  */
5 namespace Friendica\Content;
6
7 use Friendica\Core\Addon;
8 use Friendica\Core\L10n;
9 use Friendica\Database\DBM;
10 use Friendica\Protocol\Diaspora;
11 use dba;
12
13 /**
14  * @brief ContactSelector class
15  */
16 class ContactSelector
17 {
18         /**
19          * @param string $current     current
20          * @param string $foreign_net network
21          */
22         public static function profileAssign($current, $foreign_net)
23         {
24                 $o = '';
25
26                 $disabled = (($foreign_net) ? ' disabled="true" ' : '');
27
28                 $o .= "<select id=\"contact-profile-selector\" class=\"form-control\" $disabled name=\"profile-assign\" >\r\n";
29
30                 $s = dba::select('profile', ['id', 'profile-name', 'is-default'], ['uid' => $_SESSION['uid']]);
31                 $r = dba::inArray($s);
32
33                 if (DBM::is_result($r)) {
34                         foreach ($r as $rr) {
35                                 $selected = (($rr['id'] == $current || ($current == 0 && $rr['is-default'] == 1)) ? " selected=\"selected\" " : "");
36                                 $o .= "<option value=\"{$rr['id']}\" $selected >{$rr['profile-name']}</option>\r\n";
37                         }
38                 }
39                 $o .= "</select>\r\n";
40                 return $o;
41         }
42
43         /**
44          * @param string  $current  current
45          * @param boolean $disabled optional, default false
46          * @return object
47          */
48         public static function pollInterval($current, $disabled = false)
49         {
50                 $dis = (($disabled) ? ' disabled="disabled" ' : '');
51                 $o = '';
52                 $o .= "<select id=\"contact-poll-interval\" name=\"poll\" $dis />" . "\r\n";
53
54                 $rep = [
55                         0 => L10n::t('Frequently'),
56                         1 => L10n::t('Hourly'),
57                         2 => L10n::t('Twice daily'),
58                         3 => L10n::t('Daily'),
59                         4 => L10n::t('Weekly'),
60                         5 => L10n::t('Monthly')
61                 ];
62
63                 foreach ($rep as $k => $v) {
64                         $selected = (($k == $current) ? " selected=\"selected\" " : "");
65                         $o .= "<option value=\"$k\" $selected >$v</option>\r\n";
66                 }
67                 $o .= "</select>\r\n";
68                 return $o;
69         }
70
71         /**
72          * @param string $s       network
73          * @param string $profile optional, default empty
74          * @return string
75          */
76         public static function networkToName($s, $profile = "")
77         {
78                 $nets = [
79                         NETWORK_DFRN     => L10n::t('Friendica'),
80                         NETWORK_OSTATUS  => L10n::t('OStatus'),
81                         NETWORK_FEED     => L10n::t('RSS/Atom'),
82                         NETWORK_MAIL     => L10n::t('Email'),
83                         NETWORK_DIASPORA => L10n::t('Diaspora'),
84                         NETWORK_FACEBOOK => L10n::t('Facebook'),
85                         NETWORK_ZOT      => L10n::t('Zot!'),
86                         NETWORK_LINKEDIN => L10n::t('LinkedIn'),
87                         NETWORK_XMPP     => L10n::t('XMPP/IM'),
88                         NETWORK_MYSPACE  => L10n::t('MySpace'),
89                         NETWORK_GPLUS    => L10n::t('Google+'),
90                         NETWORK_PUMPIO   => L10n::t('pump.io'),
91                         NETWORK_TWITTER  => L10n::t('Twitter'),
92                         NETWORK_DIASPORA2 => L10n::t('Diaspora Connector'),
93                         NETWORK_STATUSNET => L10n::t('GNU Social Connector'),
94                         NETWORK_PNUT      => L10n::t('pnut'),
95                         NETWORK_APPNET => L10n::t('App.net')
96                 ];
97
98                 Addon::callHooks('network_to_name', $nets);
99
100                 $search  = array_keys($nets);
101                 $replace = array_values($nets);
102
103                 $networkname = str_replace($search, $replace, $s);
104
105                 if ((in_array($s, [NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS])) && ($profile != "")) {
106                         $r = dba::fetch_first("SELECT `gserver`.`platform` FROM `gcontact`
107                                         INNER JOIN `gserver` ON `gserver`.`nurl` = `gcontact`.`server_url`
108                                         WHERE `gcontact`.`nurl` = ? AND `platform` != ''", normalise_link($profile));
109
110                         if (DBM::is_result($r)) {
111                                 $networkname = $r['platform'];
112                         }
113                 }
114
115                 return $networkname;
116         }
117
118         /**
119          * @param string $current optional, default empty
120          * @param string $suffix  optionsl, default empty
121          */
122         public static function gender($current = "", $suffix = "")
123         {
124                 $o = '';
125                 $select = ['', L10n::t('Male'), L10n::t('Female'), L10n::t('Currently Male'), L10n::t('Currently Female'), L10n::t('Mostly Male'), L10n::t('Mostly Female'), L10n::t('Transgender'), L10n::t('Intersex'), L10n::t('Transsexual'), L10n::t('Hermaphrodite'), L10n::t('Neuter'), L10n::t('Non-specific'), L10n::t('Other'), L10n::t('Undecided')];
126
127                 Addon::callHooks('gender_selector', $select);
128
129                 $o .= "<select name=\"gender$suffix\" id=\"gender-select$suffix\" size=\"1\" >";
130                 foreach ($select as $selection) {
131                         if ($selection !== 'NOTRANSLATION') {
132                                 $selected = (($selection == $current) ? ' selected="selected" ' : '');
133                                 $o .= "<option value=\"$selection\" $selected >$selection</option>";
134                         }
135                 }
136                 $o .= '</select>';
137                 return $o;
138         }
139
140         /**
141          * @param string $current optional, default empty
142          * @param string $suffix  optionsl, default empty
143          */
144         public static function sexualPreference($current = "", $suffix = "")
145         {
146                 $o = '';
147                 $select = ['', L10n::t('Males'), L10n::t('Females'), L10n::t('Gay'), L10n::t('Lesbian'), L10n::t('No Preference'), L10n::t('Bisexual'), L10n::t('Autosexual'), L10n::t('Abstinent'), L10n::t('Virgin'), L10n::t('Deviant'), L10n::t('Fetish'), L10n::t('Oodles'), L10n::t('Nonsexual')];
148
149
150                 Addon::callHooks('sexpref_selector', $select);
151
152                 $o .= "<select name=\"sexual$suffix\" id=\"sexual-select$suffix\" size=\"1\" >";
153                 foreach ($select as $selection) {
154                         if ($selection !== 'NOTRANSLATION') {
155                                 $selected = (($selection == $current) ? ' selected="selected" ' : '');
156                                 $o .= "<option value=\"$selection\" $selected >$selection</option>";
157                         }
158                 }
159                 $o .= '</select>';
160                 return $o;
161         }
162
163         /**
164          * @param string $current optional, default empty
165          */
166         public static function maritalStatus($current = "")
167         {
168                 $o = '';
169                 $select = ['', L10n::t('Single'), L10n::t('Lonely'), L10n::t('Available'), L10n::t('Unavailable'), L10n::t('Has crush'), L10n::t('Infatuated'), L10n::t('Dating'), L10n::t('Unfaithful'), L10n::t('Sex Addict'), L10n::t('Friends'), L10n::t('Friends/Benefits'), L10n::t('Casual'), L10n::t('Engaged'), L10n::t('Married'), L10n::t('Imaginarily married'), L10n::t('Partners'), L10n::t('Cohabiting'), L10n::t('Common law'), L10n::t('Happy'), L10n::t('Not looking'), L10n::t('Swinger'), L10n::t('Betrayed'), L10n::t('Separated'), L10n::t('Unstable'), L10n::t('Divorced'), L10n::t('Imaginarily divorced'), L10n::t('Widowed'), L10n::t('Uncertain'), L10n::t('It\'s complicated'), L10n::t('Don\'t care'), L10n::t('Ask me')];
170
171                 Addon::callHooks('marital_selector', $select);
172
173                 $o .= '<select name="marital" id="marital-select" size="1" >';
174                 foreach ($select as $selection) {
175                         if ($selection !== 'NOTRANSLATION') {
176                                 $selected = (($selection == $current) ? ' selected="selected" ' : '');
177                                 $o .= "<option value=\"$selection\" $selected >$selection</option>";
178                         }
179                 }
180                 $o .= '</select>';
181                 return $o;
182         }
183 }