bdfff0c26d46199238c55e065f7c686ac0f16552
[platal.git] / modules / gadgets / gadgets.inc.php
1 <?php
2 /***************************************************************************
3 * Copyright (C) 2003-2010 Polytechnique.org *
4 * http://opensource.polytechnique.org/ *
5 * *
6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License as published by *
8 * the Free Software Foundation; either version 2 of the License, or *
9 * (at your option) any later version. *
10 * *
11 * This program is distributed in the hope that it will be useful, *
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14 * GNU General Public License for more details. *
15 * *
16 * You should have received a copy of the GNU General Public License *
17 * along with this program; if not, write to the Free Software *
18 * Foundation, Inc., *
19 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
20 ***************************************************************************/
21
22 // iGoogle gadgets helpers.
23 function init_igoogle_xml($template)
24 {
25 Platal::page()->changeTpl($template, NO_SKIN);
26 pl_cached_content_headers("application/xml", "utf-8");
27 }
28
29 function init_igoogle_html($template, $auth = AUTH_PUBLIC)
30 {
31 $page =& Platal::page();
32 $page->changeTpl('gadgets/ig-skin.tpl', NO_SKIN);
33 $page->register_modifier('escape_html', 'escape_html');
34 $page->default_modifiers = Array('@escape_html');
35 header('Accept-Charset: utf-8');
36
37 // Adds external JavaScript libraries provided by iGoogle to the page.
38 if (Env::has('libs')) {
39 $libs = split(',', Env::s('libs'));
40 foreach ($libs as $lib) {
41 if (preg_match('@^[a-z0-9/._-]+$@i', $lib) && !preg_match('@([.][.])|([.]/)|(//)@', $lib)) {
42 $page->append('gadget_js', 'https://www.google.com/ig/f/' . $lib);
43 }
44 }
45 }
46
47 // Redirects the user to the login pagin if required.
48 if ($auth > S::v('auth', AUTH_PUBLIC)) {
49 $page->assign('gadget_tpl', 'gadgets/ig-login.tpl');
50 return false;
51 }
52
53 $page->assign('gadget_tpl', $template);
54 return true;
55 }
56
57 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
58 ?>