OSDN Git Service

https://github.com/rahuldottech/Dabr
[embrj/master.git] / i / common / settings.php
1 <?php
2
3 /*
4 Assembled in css.php
5 Syntax is
6          'Name|          links, body_background,body_text,small, odd,   even,  replyodd,replyeven,menu_background,menu_text,menu_link',
7 */
8
9 $GLOBALS['colour_schemes'] = array(
10         //   'Name|          links, body_background,body_text,small, odd,   even,  replyodd,replyeven,menu_background,menu_text,menu_link',
11         0 => 'Pretty In Pink|c06,   fcd,            623,      623,   fee,   fde,   ffa,     dd9,      c06,            fee,      fee',
12         1 => 'Ugly Orange|   b50,   ddd,            111,      555,   fff,   eee,   ffa,     dd9,      e81,            c40,      fff',
13         2 => 'Touch Blue|    138,   ddd,            111,      313460,fff,   eee,   ffa,     dd9,      138,            fff,      fff',
14         3 => 'Sickly Green|  293C03,ccc,            000,      555,   fff,   eee,   CCE691,  ACC671,   495C23,         919C35,   fff',
15         4 => 'Night Mode|    d5d,   000,            ddd,      B7A3A3,222,   111,   202,     101,      909,            222,      000',
16         5 => '#red|          d12,   ddd,            111,      555,   fff,   eee,   ffa,     dd9,      c12,            fff,      fff',
17         6 => 'Mellow Yellow| 0049DA,FFFFCC,         333300,   333300,F5EFC0,EDE8B1,CCFF99,  99FF99,   FFFFCC,         003300,   003300',
18         7 => 'Work Safe|     000,   fff,            000,      555,   fff,   eee,   fff,     eee,      555,            fff,      fff',
19         8 => 'Simple|         130f30,ccc,            130f30,   130f30,fff,   EEE,   FFA,     DD9,      ccc,            130f30,   130f30',
20         //   'Name|          links, body_background,body_text,small, odd,   even,  replyodd,replyeven,menu_background,menu_text,menu_link',
21 );
22
23 $fonts = array( //ID => Value
24                                         'Schoolbell:400'  => 'Schoolbell',
25                                         'Raleway:500'     => 'Raleway',
26                                         'Ubuntu+Mono:500' => 'Ubuntu Mono',
27                                         'Karma:500'       => 'Karma',
28                                         'Open+Sans:400'   => 'Open Sans',
29                                         ''                => 'Default'
30                                 );
31
32 menu_register(array(
33         'settings' => array(
34                 'callback' => 'settings_page',
35                 'display' => '⚙'
36         ),
37         'reset' => array(
38                 'hidden' => true,
39                 'callback' => 'cookie_monster',
40         ),
41 ));
42
43 function cookie_monster() {
44         //      Delete Cookies
45         $cookies = array(
46                 'dabr_settings',
47                 'dabr_perPage',
48                 'dabr_imageSize',
49                 'dabr_gwt',
50                 'dabr_colours',
51                 'dabr_timestamp',
52                 'dabr_show_inline',
53                 'dabr_show_oembed',
54                 'dabr_show_avatars',
55                 'dabr_show_icons',
56                 'dabr_float_menu',
57                 'dabr_image_size',
58                 'dabr_utc_offset',
59                 'dabr_fonts',
60                 'dabr_font_size',
61                 'USER_AUTH',
62         );
63         $duration = time() - 3600;
64         foreach ($cookies as $cookie) {
65                 setcookie($cookie, null, $duration, '/');
66                 setcookie($cookie, null, $duration);
67         }
68
69         setting_clear_session_oauth();
70
71         return theme('page', _(COOKIE_MONSTER), '<p>'._(COOKIE_MONSTER_DONE).'</p>');
72 }
73
74 function setting_clear_session_oauth() {
75         //      Reset OAuth data
76         unset($_SESSION['oauth_token']);
77         unset($_SESSION['oauth_token_secret']);
78         unset($_SESSION['oauth_verify']);
79 }
80
81 function setting_fetch($setting, $default = null) {
82         $settings = (array) unserialize(base64_decode($_COOKIE['settings']));
83         global $fonts;
84
85         if (array_key_exists($setting, $settings)) {
86                 if("dabr_fonts" == $setting) {
87                         return array_search($settings[$setting], $fonts);
88                 }
89                 return $settings[$setting];
90         } else {
91                 if("dabr_fonts" == $setting) {
92                         return array_search($default, $fonts);
93                 }
94                 return $default;
95         }
96 }
97
98 function setcookie_year($name, $value) {
99         $duration = time() + (3600 * 24 * 365);
100         setcookie($name, $value, $duration, '/');
101 }
102
103 function settings_page($args) {
104         if ($args[1] == 'save') {
105                 $settings['dabr_perPage']      = $_POST['dabr_perPage'];
106                 $settings['dabr_gwt']          = $_POST['dabr_gwt'];
107                 $settings['dabr_colours']      = $_POST['dabr_colours'];
108                 $settings['dabr_timestamp']    = $_POST['dabr_timestamp'];
109                 $settings['dabr_show_inline']  = $_POST['dabr_show_inline'];
110                 $settings['dabr_show_oembed']  = $_POST['dabr_show_oembed'];
111                 $settings['dabr_show_avatars'] = $_POST['dabr_show_avatars'];
112                 $settings['dabr_show_icons']   = $_POST['dabr_show_icons'];
113                 $settings['dabr_float_menu']   = $_POST['dabr_float_menu'];
114                 $settings['dabr_image_size']   = $_POST['dabr_image_size'];
115                 $settings['dabr_utc_offset']   = (float)$_POST['dabr_utc_offset'];
116                 $settings['dabr_font_size']   = $_POST['dabr_font_size'];
117                 $settings['dabr_fonts']       = $_POST['dabr_fonts'];
118
119                 setcookie_year('settings', base64_encode(serialize($settings)));
120                 twitter_refresh('');
121         }
122
123         $perPage = array(
124                   '5'   => sprintf(_(SETTINGS_TWEETS_PER_PAGE),5),
125                  '10'   => sprintf(_(SETTINGS_TWEETS_PER_PAGE),10),
126                  '20'   => sprintf(_(SETTINGS_TWEETS_PER_PAGE),20),
127                  '30'   => sprintf(_(SETTINGS_TWEETS_PER_PAGE),30),
128                  '40'   => sprintf(_(SETTINGS_TWEETS_PER_PAGE),40),
129                  '50'   => sprintf(_(SETTINGS_TWEETS_PER_PAGE),50),
130                 '100' => sprintf(_(SETTINGS_TWEETS_PER_PAGE),100) ." ". _(SETTINGS_SLOW_1),
131                 '150' => sprintf(_(SETTINGS_TWEETS_PER_PAGE),150) ." ". _(SETTINGS_SLOW_2),
132                 '200' => sprintf(_(SETTINGS_TWEETS_PER_PAGE),200) ." ". _(SETTINGS_SLOW_3),
133         );
134
135         $image_size = array(
136                 'thumb' =>  _(SETTINGS_IMAGE_THUMB),
137                 'small' =>  _(SETTINGS_IMAGE_SMALL),
138                 'medium' =>  _(SETTINGS_IMAGE_MEDIUM),
139                 'large' =>  _(SETTINGS_IMAGE_LARGE),
140                 'orig'  =>  _(SETTINGS_IMAGE_ORIGINAL)
141         );
142
143         $colour_schemes = array();
144         foreach ($GLOBALS['colour_schemes'] as $id => $info) {
145                 list($name) = explode('|', $info);
146                 $colour_schemes[$id] = $name;
147         }
148
149         $font_size = array(
150                 '0.5' => _(FONT_SMALLEST),
151                 '0.75'=> _(FONT_SMALL),
152                 '0.9'   => _(FONT_MEDIUM),
153                 '1'     => _(FONT_NORMAL),
154                 '1.25'=> _(FONT_BIG),
155                 '1.5'   => _(FONT_LARGE),
156                 '2'     => _(FONT_HUGE),
157         );
158
159         $utc_offset = setting_fetch('dabr_utc_offset', 0);
160         //      returning 401 as it calls http://api.twitter.com/1/users/show.json?screen_name= (no username???)
161         // if (!$utc_offset) {
162         //      $user = twitter_user_info(user_current_username());
163         //      $utc_offset = $user->utc_offset;
164         //      echo "THE UTC IS $utc_offset";
165         // }
166
167         if ($utc_offset > 0) {
168                 $utc_offset = '+' . $utc_offset;
169         }
170
171         $content = '';
172         $content .= '<form action="settings/save" method="post">';
173
174         $content .= theme('options', $colour_schemes,setting_fetch('dabr_colours', 0),          _(SETTINGS_COLOUR),    "dabr_colours");
175         $content .= theme('options', $perPage,       setting_fetch('dabr_perPage', 20),         _(SETTINGS_PER_PAGE),  "dabr_perPage");
176         $content .= theme('options', $image_size,    setting_fetch('dabr_image_size', "medium"),_(SETTINGS_IMAGE_SIZE),"dabr_image_size");
177
178         global $fonts;
179         $content .= "<fieldset><legend>"._(SETTINGS_FONT)."</legend>";
180         $content .= theme('radio',array_combine($fonts,$fonts), "dabr_fonts", urldecode( substr(setting_fetch("dabr_fonts","Raleway"),0, -4)));
181         $content .= "</fieldset>";
182         $content .= "<fieldset><legend>"._(SETTINGS_FONT_SIZE)."</legend>";
183         $content .= theme('radio',$font_size, "dabr_font_size", setting_fetch("dabr_font_size","1"));
184         $content .= "</fieldset>";
185
186         $content .= '<p>
187                        <label>
188                           <input type="checkbox" name="dabr_timestamp" value="yes" '. (setting_fetch('dabr_timestamp','yes') == 'yes' ? ' checked="checked" ' : '') .' />'.
189                                                         sprintf(_(SETTINGS_TIMESTAMP), twitter_date('H:i')).
190                                                 '</label>
191                     </p>';
192
193         $content .= '<p>
194                        <label>
195                           <input type="checkbox" name="dabr_show_inline" value="yes" '. (setting_fetch('dabr_show_inline','yes') == 'yes' ? ' checked="checked" ' : '') .' />'.
196                                                         _(SETTINGS_SHOW_INLINE).
197                         '</label>
198                     </p>';
199
200         $content .= '<p>
201                        <label>
202                           <input type="checkbox" name="dabr_show_oembed" value="yes" '. (setting_fetch('dabr_show_oembed','yes') == yes ? ' checked="checked" ' : '') .' />'
203                           ._(SETTINGS_SHOW_PREVIEW).
204                                                 '</label>
205                     </p>';
206
207         $content .= '<p>
208                        <label>
209                           <input type="checkbox" name="dabr_show_avatars" value="yes" '. (setting_fetch('dabr_show_avatars','yes') == 'yes' ? ' checked="checked" ' : '') .' />'.
210                                                         _(SETTINGS_SHOW_AVATARS).
211                                                 '</label>
212                     </p>';
213
214         $content .= '<p>
215                        <label>
216                           <input type="checkbox" name="dabr_show_icons" value="yes" '. (setting_fetch('dabr_show_icons','yes') == 'yes' ? ' checked="checked" ' : '') .' />'.
217                                                         _(SETTINGS_MENU_ICONS).
218                                                 '</label>
219                     </p>';
220
221         $content .= '<p>
222                        <label>
223                           <input type="checkbox" name="dabr_float_menu" value="yes" '. (setting_fetch('dabr_float_menu','yes') == 'yes' ? ' checked="checked" ' : '') .' />'.
224                                                         _(SETTINGS_FLOAT_MENU).
225                                                 '</label>
226                     </p>';
227
228
229         $content .= '<p>
230                                                 <label>'.sprintf(_(SETTINGS_TIMESTAMP_IS),gmdate('H:i')) .'<br>' .
231                                                         sprintf(_(SETTINGS_TIMESTAMP_DISPLAY), "<input type=\"text\" name=\"dabr_utc_offset\" value=\"{$utc_offset}\" size=\"3\" />", twitter_date('H:i')) .
232                                                         '<br />'._(SETTINGS_TIMESTAMP_ADJUST).'
233                                                 </label>
234                                         </p>';
235
236         $content .= '<p>
237                                                 <label>
238                                                         <input type="checkbox" name="dabr_gwt" value="on" '. (setting_fetch('dabr_gwt') == 'on' ? ' checked="checked" ' : '') .' />'.
239                                                         _(SETTINGS_GWT_DETAIL) .
240                                                 '</label>
241                                         </p>';
242
243         $content .= '<p><input type="submit" value="'._(SETTINGS_SAVE_BUTTON).'" /></p></form>';
244
245         $content .= '<hr /><p>'._(SETTINGS_RESET).'</p>';
246
247         return theme('page', _(SETTINGS_TITLE), $content);
248 }