root/trunk/wifidog-auth/wifidog/content/PatternLanguage/subscription.php @ 1127

Revision 1127, 7.3 KB (checked in by benoitg, 7 years ago)
  • Make the MainUI, SmartyWifidog? and Session and AbstractDb? classes singletons
  • Implement two pass content display. All Content can now implement a prepareGetUserUI(), allowing them to interact with MainUI and other Content before display. Allow creating content such as stylesheets, feed accumulators, etc.
  • SmartyWifidog?.php Turn on security, begin preparing for standardisation of Smarty variables
  • New Content type: Stylesheet. Allows specific nodes, or even specific content groups to have custom stylesheets.
  • Langstring.php: Make getAdminUI calling conventions coherent with other content types.


  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2
3/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
4
5// +-------------------------------------------------------------------+
6// | WiFiDog Authentication Server                                     |
7// | =============================                                     |
8// |                                                                   |
9// | The WiFiDog Authentication Server is part of the WiFiDog captive  |
10// | portal suite.                                                     |
11// +-------------------------------------------------------------------+
12// | PHP version 5 required.                                           |
13// +-------------------------------------------------------------------+
14// | Homepage:     http://www.wifidog.org/                             |
15// | Source Forge: http://sourceforge.net/projects/wifidog/            |
16// +-------------------------------------------------------------------+
17// | This program is free software; you can redistribute it and/or     |
18// | modify it under the terms of the GNU General Public License as    |
19// | published by the Free Software Foundation; either version 2 of    |
20// | the License, or (at your option) any later version.               |
21// |                                                                   |
22// | This program is distributed in the hope that it will be useful,   |
23// | but WITHOUT ANY WARRANTY; without even the implied warranty of    |
24// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     |
25// | GNU General Public License for more details.                      |
26// |                                                                   |
27// | You should have received a copy of the GNU General Public License |
28// | along with this program; if not, contact:                         |
29// |                                                                   |
30// | Free Software Foundation           Voice:  +1-617-542-5942        |
31// | 59 Temple Place - Suite 330        Fax:    +1-617-542-2652        |
32// | Boston, MA  02111-1307,  USA       gnu@gnu.org                    |
33// |                                                                   |
34// +-------------------------------------------------------------------+
35
36/**
37 * @package    WiFiDogAuthServer
38 * @author     Francois Proulx <francois.proulx@gmail.com>
39 * @copyright  2005-2006 Francois Proulx, Technologies Coeus inc.
40 * @version    Subversion $Id$
41 * @link       http://www.wifidog.org/
42 */
43
44/**
45 * Load required files
46 */
47require_once('../../include/common.php');
48
49require_once('include/common_interface.php');
50require_once('classes/User.php');
51require_once('classes/Content/PatternLanguage.php');
52require_once('classes/MainUI.php');
53$smarty = SmartyWifidog::getObject();
54$session = Session::getObject();
55// This trick is done to allow displaying of Pattern Language right away if there is only one available.
56if(!empty($_REQUEST['content_id']))
57{
58    $content_id = $_REQUEST['content_id'];
59    $pattern_language = PatternLanguage::getObject($content_id);
60}
61else
62{
63    $content_id = "";
64    $pattern_languages = PatternLanguage :: getAllContent();
65    if(count($pattern_languages) >= 1)
66        $pattern_language = $pattern_languages[0];
67    else
68        exit;
69}
70
71// The Pattern Language toolbar
72$tool_html = "<h1>{$pattern_language->getTitle()->__toString()}</h1>";
73$tool_html .= '<ul class="pattern_language_menu">'."\n";
74$gw_id = $session->get(SESS_GW_ID_VAR);
75if(!empty($gw_id))
76    $tool_html .= "<li><a href='/portal/?gw_id=$gw_id'>"._("Go back to this hotspot portal page")."</a></li>";
77$tool_html .= '<li><a href="'.BASE_SSL_PATH.'content/PatternLanguage/index.php?content_id='.$content_id.'">'._("About Pattern Language").'</a><br>'."\n";
78$tool_html .= '<li><a href="'.BASE_SSL_PATH.'content/PatternLanguage/narrative.php?content_id='.$content_id.'">'._("Read narrative").'</a><br>'."\n";
79$tool_html .= '<li><a href="'.BASE_SSL_PATH.'content/PatternLanguage/archives.php?content_id='.$content_id.'">'._("Archives").'</a><br>'."\n";
80$tool_html .= '<li><a href="'.BASE_SSL_PATH.'content/PatternLanguage/hotspots.php?content_id='.$content_id.'">'._("Participating hotspots").'</a><br>'."\n";
81$tool_html .= '<li><a href="'.BASE_SSL_PATH.'content/PatternLanguage/subscription.php?content_id='.$content_id.'">'._("Subscription").'</a><br>'."\n";
82$tool_html .= '</ul>'."\n";
83
84$tool_html .= "<div class='pattern_language_credits'>";
85$tool_html .=  $pattern_language->getSponsorInfo()->__toString();
86$tool_html .= "</div>";
87
88// Body
89$body_html = "<img src='images/header.gif'>\n";
90$body_html .= "<h1>"._("Pattern Language Subscription")."</h1>\n";
91$body_html .= "<div class='pattern_language_body'>\n";
92
93$current_user = User::getCurrentUser();
94if($current_user)
95{
96    if(!empty($_REQUEST['subscribe']) || !empty($_REQUEST['unsubscribe']))
97    {
98        if(!empty($_REQUEST['subscribe']))
99        {
100            $pattern_language = PatternLanguage::getObject($_REQUEST['content_id']);
101            if(!$pattern_language->isUserSubscribed($current_user))
102            {
103                $pattern_language->subscribe($current_user);
104                $body_html .= _("Thank you for subscribing");
105                $gw_id = $session->get(SESS_GW_ID_VAR);
106                if(!empty($gw_id))
107                    $body_html .= "<p><a href='/portal/?gw_id=$gw_id'>"._("Go back to this hotspot portal page")."</a>";
108            }
109        }
110        else if(!empty($_REQUEST['unsubscribe']))
111        {
112            $pattern_language = PatternLanguage::getObject($_REQUEST['content_id']);
113            if($pattern_language->isUserSubscribed($current_user))
114                $pattern_language->unsubscribe($current_user);
115            $body_html .= _("You are now unsubscribed");
116            $gw_id = $session->get(SESS_GW_ID_VAR);
117            if(!empty($gw_id))
118                $body_html .= "<p><a href='/portal/?gw_id=$gw_id'>"._("Go back to this hotspot portal page")."</a>";
119        }
120    }
121    else
122    {
123        if(!$pattern_language->isUserSubscribed($current_user))
124        {
125            // Subscription
126            $body_html .= _("Subscribe to Pattern Language by clicking the link below. Once you have subscribed you will receive a fragment of text each time you log in to a participating hotspot in the city of Montreal. These text fragments will accumulate to form a unique narrative for every user. You can read your narrative anytime by clicking on \"Read Narrative\", or you can read the narratives generated by other users by going to \"Archives\".");
127            $body_html .= "<br><a href='subscription.php?subscribe=true&content_id={$pattern_language->getId()}'>"._("Subscribe now")."</a>";
128        }
129        else
130        {
131            // Unsubscription
132            $body_html .= _("You are already subscribed to Pattern Language, you can terminate your participation by clicking below.");
133            $body_html .= "<br><a href='subscription.php?unsubscribe=true&content_id={$pattern_language->getId()}'>"._("Unsubscribe now")."</a>";
134        }
135    }
136}
137else
138{
139    $body_html .= _("You must be logged in to subscribe !");
140}
141
142$body_html .= "</div>\n";
143
144$ui = MainUI::getObject();
145$ui->addContent('left_area_middle', $tool_html);
146$ui->setTitle(_("Pattern Language - Subscription"));
147$ui->addContent('main_area_middle', $body_html);
148$ui->display();
149
150/*
151 * Local variables:
152 * tab-width: 4
153 * c-basic-offset: 4
154 * c-hanging-comment-ender-p: nil
155 * End:
156 */
157
158?>
Note: See TracBrowser for help on using the browser.