PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 110912
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v110912
260917 260913 260909 260829 260814 260805 110710 110731 110812 110815 110912 110913 110915 110926 110927 111002 111003 111011 111017 111029 111105 111206 111216 111220 120213 All 189 releases
s2member / includes / menu-pages / mms-ops.inc.php

mms-ops.inc.php in s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions 110912, at includes/menu-pages/mms-ops.inc.php

337 lines 24.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Menu page for the s2Member plugin ( Main Multisite Options page ).
4 *
5 * Copyright: © 2009-2011
6 * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
7 * ( coded in the USA )
8 *
9 * Released under the terms of the GNU General Public License.
10 * You should have received a copy of the GNU General Public License,
11 * along with this software. In the main directory, see: /licensing/
12 * If not, see: {@link http://www.gnu.org/licenses/}.
13 *
14 * @package s2Member\Menu_Pages
15 * @since 3.0
16 */
17 if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
18 exit ("Do not access this file directly.");
19 /**/
20 if (!class_exists ("c_ws_plugin__s2member_menu_page_mms_ops"))
21 {
22 /**
23 * Menu page for the s2Member plugin ( Main Multisite Options page ).
24 *
25 * @package s2Member\Menu_Pages
26 * @since 110531
27 */
28 class c_ws_plugin__s2member_menu_page_mms_ops
29 {
30 public function __construct ()
31 {
32 echo '<div class="wrap ws-menu-page">' . "\n";
33 /**/
34 echo '<div id="icon-plugins" class="icon32"><br /></div>' . "\n";
35 echo '<h2>s2Member® Multisite ( Configuration )</h2>' . "\n";
36 /**/
37 echo '<table class="ws-menu-page-table">' . "\n";
38 echo '<tbody class="ws-menu-page-table-tbody">' . "\n";
39 echo '<tr class="ws-menu-page-table-tr">' . "\n";
40 echo '<td class="ws-menu-page-table-l">' . "\n";
41 /**/
42 if (is_multisite () && is_main_site ()) /* These panels will ONLY be available on the Main Site; with Multisite Networking. */
43 {
44 echo '<form method="post" name="ws_plugin__s2member_options_form" id="ws-plugin--s2member-options-form">' . "\n";
45 echo '<input type="hidden" name="ws_plugin__s2member_options_save" id="ws-plugin--s2member-options-save" value="' . esc_attr (wp_create_nonce ("ws-plugin--s2member-options-save")) . '" />' . "\n";
46 echo '<input type="hidden" name="ws_plugin__s2member_configured" id="ws-plugin--s2member-configured" value="1" />' . "\n";
47 /**/
48 do_action ("ws_plugin__s2member_during_mms_ops_page_before_left_sections", get_defined_vars ());
49 /**/
50 if (apply_filters ("ws_plugin__s2member_during_mms_ops_page_during_left_sections_display_mms_patches", true, get_defined_vars ()))
51 {
52 do_action ("ws_plugin__s2member_during_mms_ops_page_during_left_sections_before_mms_patches", get_defined_vars ());
53 /**/
54 echo '<div class="ws-menu-page-group" title="Multisite WordPress® Patches" default-state="open">' . "\n";
55 /**/
56 echo '<div class="ws-menu-page-section ws-plugin--s2member-mms-patches-section">' . "\n";
57 echo '<img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/small-icon.png" title="s2Member ( a Membership management system for WordPress® )" alt="" style="float:right; margin:0 0 0 25px; border:0;" />' . "\n";
58 echo '<h3>Multisite WordPress® Patches ( required for compatiblity )</h3>' . "\n";
59 echo '<p>In order for s2Member to function properly in a Multisite environment, you MUST implement four patches. One goes into your /wp-login.php file, one into /wp-includes/load.php, one into /wp-includes/ms-functions.php, and another into /wp-admin/user-new.php. We have TRAC tickets into WordPress® for these changes. However, until the official release of WordPress® includes these updates, you will need to use the automatic patcher below. All you do is check the box &amp; click Save. s2Member will handle everything automatically for you.</p>' . "\n";
60 do_action ("ws_plugin__s2member_during_mms_ops_page_during_left_sections_during_mms_patches", get_defined_vars ());
61 /**/
62 echo '<table class="form-table">' . "\n";
63 echo '<tbody>' . "\n";
64 echo '<tr>' . "\n";
65 /**/
66 echo '<th>' . "\n";
67 echo '<label for="ws-plugin--s2member-mms-auto-patch">' . "\n";
68 echo 'Patch Automatically? ( the easiest way )' . "\n";
69 echo '</label>' . "\n";
70 echo '</th>' . "\n";
71 /**/
72 echo '</tr>' . "\n";
73 echo '<tr>' . "\n";
74 /**/
75 echo '<td>' . "\n";
76 /**/
77 if (defined ("DISALLOW_FILE_MODS") && DISALLOW_FILE_MODS)
78 {
79 echo '<select name="ws_plugin__s2member_mms_auto_patch" id="ws-plugin--s2member-mms-auto-patch" disabled="disabled">' . "\n";
80 echo '<option value="0" selected="selected">No ( I\'ll patch WordPress® myself )</option>' . "\n";
81 echo '</select><br />' . "\n";
82 echo '<em class="ws-menu-page-hilite">This is now locked. Your /wp-config.php file says: <code>DISALLOW_FILE_MODS = true</code></em>.' . "\n";
83 }
84 else /* Otherwise we can display these options. */
85 {
86 echo '<select name="ws_plugin__s2member_mms_auto_patch" id="ws-plugin--s2member-mms-auto-patch">' . "\n";
87 echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_auto_patch"]) ? ' selected="selected"' : '') . '>Yes ( automatically patch WordPress® )</option>' . "\n";
88 echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_auto_patch"]) ? ' selected="selected"' : '') . '>No ( I\'ll patch WordPress® myself )</option>' . "\n";
89 echo '</select><br />' . "\n";
90 echo '<em class="ws-menu-page-hilite">Don\'t forget to patch these files again, each time you upgrade the WordPress® core.</em>' . "\n";
91 }
92 /**/
93 echo '</td>' . "\n";
94 /**/
95 echo '</tr>' . "\n";
96 echo '</tbody>' . "\n";
97 echo '</table>' . "\n";
98 /**/
99 echo '<div class="ws-menu-page-hr"></div>' . "\n";
100 /**/
101 echo '<div id="ws-plugin--s2member-mms-patches-details-wrapper">' . "\n";
102 echo '<h3>Rather Do It Yourself? ( <a href="#" onclick="jQuery(\'div#ws-plugin--s2member-mms-patches-details\').toggle(); return false;" class="ws-dotted-link">manual instructions</a> )</h3>' . "\n";
103 echo '<div id="ws-plugin--s2member-mms-patches-details" style="display:none;">' . "\n";
104 echo '<p><strong>Patch #1</strong> ( /wp-login.php )</p>' . "\n";
105 echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/mms-patch-wp-login.php")) . '</p>' . "\n";
106 echo '<p><strong>Patch #2</strong> ( /wp-includes/load.php )</p>' . "\n";
107 echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/mms-patch-load.php")) . '</p>' . "\n";
108 echo '<p><strong>Patch #3</strong> ( /wp-admin/user-new.php )</p>' . "\n";
109 echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/mms-patch-user-new.php")) . '</p>' . "\n";
110 echo '<p><strong>Patch #4</strong> ( /wp-includes/ms-functions.php )</p>' . "\n";
111 echo '<p>' . c_ws_plugin__s2member_utils_strings::highlight_php (file_get_contents (dirname (__FILE__) . "/code-samples/mms-patch-ms-functions.php")) . '</p>' . "\n";
112 echo '<p><em class="ws-menu-page-hilite">Don\'t forget to patch these files again, each time you upgrade the WordPress® core.</em></p>' . "\n";
113 echo '</div>' . "\n";
114 echo '</div>' . "\n";
115 echo '</div>' . "\n";
116 /**/
117 echo '</div>' . "\n";
118 /**/
119 do_action ("ws_plugin__s2member_during_mms_ops_page_during_left_sections_after_mms_patches", get_defined_vars ());
120 }
121 /**/
122 if (apply_filters ("ws_plugin__s2member_during_mms_ops_page_during_left_sections_display_mms_registration", true, get_defined_vars ()))
123 {
124 do_action ("ws_plugin__s2member_during_mms_ops_page_during_left_sections_before_mms_registration", get_defined_vars ());
125 /**/
126 echo '<div class="ws-menu-page-group" title="Multisite Registration Configuration" default-state="open">' . "\n";
127 /**/
128 echo '<div class="ws-menu-page-section ws-plugin--s2member-mms-registration-section">' . "\n";
129 echo '<img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/large-icon.png" title="s2Member ( a Membership management system for WordPress® )" alt="" style="float:right; margin:0 0 0 25px; border:0;" />' . "\n";
130 echo '<h3>Multisite Registration ( Main Site Configuration )</h3>' . "\n";
131 echo '<p>s2Member supports Free Subscribers <em>( at Level #0 )</em>, and several Primary Roles created by the s2Member plugin (<em> i.e. s2Member Levels 1-4, or up to the number of configured Levels )</em>. If you want your visitors to be capable of registering absolutely free, you will want to "allow" Open Registration. Whenever a visitor registers without paying, they\'ll automatically become a Free Subscriber, at Level #0.</p>' . "\n";
132 echo '<p><strong>Running A Multisite Blog Farm?</strong> With Multisite Networking enabled, your Main Site could ALSO offer a Customer access to create a Blog of their own <em>( optional )</em>, where a Customer becomes a "Member" of your Main Site, and also a Blog Owner/Administrator of at least one other Blog on your Network. With s2Member installed <em>( Network wide )</em>, each of your Blog Owners could offer Membership too, using a single copy of the s2Member plugin, which is a great selling point<em>!</em> We refer to this type of installation as a Multisite Blog Farm. If your Network is making it possible for Members to create and/or manage Blogs, s2Member will consider your installation to be a Multisite Blog Farm.</p>' . "\n";
133 echo '<p>Multisite Networking makes a new Registration Form available <em>( driven by your theme )</em>; which we refer to as: <code>/wp-signup.php</code>. If, and only if, you\'re planning to offer Blogs, you MUST use <a href="' . esc_attr (c_ws_plugin__s2member_utils_urls::wp_signup_url ()) . '" target="_blank" rel="external">/wp-signup.php</a>, instead of using the Standard Login/Registration Form. In a Multisite installation, we refer to the Standard Login/Registration Form, as: <code>/wp-login.php?action=register</code>. If you\'re planning to offer Membership Access only, and NOT Blogs, you can simply use the <a href="' . esc_attr (c_ws_plugin__s2member_utils_urls::wp_register_url ()) . '" target="_blank" rel="external">Standard Login/Registration Form</a>, which is easily customized through <code>s2Member -> General Options -> Login/Registration Design</code>, on your Main Site.</p>' . "\n";
134 echo '<p>In either case, s2Member Pro Forms are possible too. If you\'ve purchased s2Member Pro, you could use Pro Forms instead of these WordPress® defaults. That being said, even with s2Member Pro Forms, if you are offering Blogs, you will still need to facilitate the actual creation of each Blog through <code>/wp-signup.php</code>. In other words, Customers can register through s2Member Pro Forms, and even checkout. But when it comes time to setup a new Blog, you will need to redirect your Customer to <code>/wp-signup.php</code>, while they are logged-in. This will allow them to create a new Blog on your Network, based on your configuration below.</p>' . "\n";
135 do_action ("ws_plugin__s2member_during_mms_ops_page_during_left_sections_during_mms_registration", get_defined_vars ());
136 /**/
137 echo '<div id="ws-plugin--s2member-mms-registration-support-package-details-wrapper">' . "\n";
138 echo '<h4 style="margin-bottom:0;">Running a Multisite Blog Farm? ( <a href="#" onclick="jQuery(\'div#ws-plugin--s2member-mms-registration-support-package-details\').toggle(); return false;" class="ws-dotted-link">click here / please read</a> )</h4>' . "\n";
139 echo '<div id="ws-plugin--s2member-mms-registration-support-package-details" style="display:none;">' . "\n";
140 echo '<p>The most important thing to do when setting up a Blog Farm with s2Member, is to add this line to your <code>/wp-config.php</code> file: <code><span style="color:#0000BB;">define</span><span style="color:#007700;">(</span><span style="color:#DD0000;">"MULTISITE_FARM"</span>, <span style="color:#0000BB;">true</span><span style="color:#007700;">);</span></code>. This will add a default layer of security, to all Blogs within your Network, with respect to s2Member. <strong>But, before you go live</strong>, please contact <a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank" rel="external">s2Member.com</a> for full documentation. There is some additional functionality that can be enabled for security on a Blog Farm installation; and also some menus/documentation/functionality that can be disabled. You will be asked to purchase our <a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank" rel="external">Network Support Package</a> when you need assistance in this regard.</p>' . "\n";
141 echo '<p>Multisite Blog Farms require a site owner that fully understands the potential security risks associated with Blog Farming. s2Member\'s <a href="' . esc_attr (c_ws_plugin__s2member_readmes::parse_readme_value ("Pro Module / Prices")) . '" target="_blank" rel="external">Network Support Package</a> provides you with the information you need, and priority support for anything about s2Member that you don\'t understand. In addition, our Network Support Package includes a lengthy PDF file that details a list of things affected by <code><span style="color:#0000BB;">define</span><span style="color:#007700;">(</span><span style="color:#DD0000;">"MULTISITE_FARM"</span>, <span style="color:#0000BB;">true</span><span style="color:#007700;">);</span></code>, best practices, and other supplemental documentation focused on Blog Farms.</p>' . "\n";
142 echo '</div>' . "\n";
143 echo '</div>' . "\n";
144 /**/
145 echo '<div class="ws-menu-page-hr"></div>' . "\n";
146 /**/
147 echo '<table class="form-table">' . "\n";
148 echo '<tbody>' . "\n";
149 echo '<tr>' . "\n";
150 /**/
151 echo '<th>' . "\n";
152 echo '<label for="ws-plugin--s2member-mms-registration-file">' . "\n";
153 echo 'What Do You Plan To Offer? ( please choose one )' . "\n";
154 echo '</label>' . "\n";
155 echo '</th>' . "\n";
156 /**/
157 echo '</tr>' . "\n";
158 echo '<tr>' . "\n";
159 /**/
160 echo '<td>' . "\n";
161 /**/
162 if (defined ("MULTISITE_FARM") && MULTISITE_FARM) /* Lock this down if a config option is set in /wp-config.php. */
163 {
164 echo '<select name="ws_plugin__s2member_mms_registration_file" id="ws-plugin--s2member-mms-registration-file" disabled="disabled">' . "\n";
165 echo '<option value="wp-signup" selected="selected">Blog Farm ( I plan to offer both Membership &amp; Blog creation )</option>' . "\n";
166 echo '</select><br />' . "\n";
167 echo '<em class="ws-menu-page-hilite">This is now locked. Your /wp-config.php file says: <code>MULTISITE_FARM = true</code></em>.' . "\n";
168 }
169 else /* Otherwise we can display these options normally. */
170 {
171 echo '<select name="ws_plugin__s2member_mms_registration_file" id="ws-plugin--s2member-mms-registration-file">' . "\n";
172 echo '<option value="wp-login"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_file"] === "wp-login") ? ' selected="selected"' : '') . '>Membership Only ( I\'m NOT offering Blogs )</option>' . "\n";
173 echo '<option value="wp-signup"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_file"] === "wp-signup") ? ' selected="selected"' : '') . '>Blog Farm ( I plan to offer both Membership &amp; Blog creation )</option>' . "\n";
174 echo '</select><br />' . "\n";
175 echo 'Depending on your selection, the options below may change.' . "\n";
176 }
177 /**/
178 echo '</td>' . "\n";
179 /**/
180 echo '</tr>' . "\n";
181 echo '</tbody>' . "\n";
182 echo '</table>' . "\n";
183 /**/
184 echo '<div class="ws-menu-page-hr"></div>' . "\n";
185 /**/
186 echo '<table class="form-table ws-plugin--s2member-mms-registration-wp-login" style="margin:0;">' . "\n";
187 echo '<tbody>' . "\n";
188 echo '<tr>' . "\n";
189 /**/
190 echo '<th style="padding-top:0;">' . "\n";
191 echo '<label for="ws-plugin--s2member-allow-subscribers-in">' . "\n";
192 echo 'Your Main Site / Allow Open Registration? ( via <code>wp-login.php?action=register</code> )' . "\n";
193 echo '</label>' . "\n";
194 echo '</th>' . "\n";
195 /**/
196 echo '</tr>' . "\n";
197 echo '<tr>' . "\n";
198 /**/
199 echo '<td>' . "\n";
200 echo '<select name="ws_plugin__s2member_allow_subscribers_in" id="ws-plugin--s2member-allow-subscribers-in">' . "\n";
201 echo '<option value="0"' . ((!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["allow_subscribers_in"]) ? ' selected="selected"' : '') . '>No ( do NOT allow Open Registration )</option>' . "\n";
202 echo '<option value="1"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["allow_subscribers_in"]) ? ' selected="selected"' : '') . '>Yes ( allow Open Registration; Free Subscribers at Level #0 )</option>' . "\n";
203 echo '</select><br />' . "\n";
204 echo 'If you set this to <code>Yes</code>, you\'re unlocking <a href="' . esc_attr (c_ws_plugin__s2member_utils_urls::wp_register_url ()) . '" target="_blank" rel="external">wp-login.php?action=register</a> ( on your Main Site ). When a visitor registers without paying, they\'ll automatically become a Free Subscriber, at Level #0. The s2Member software reserves Level #0; to be used ONLY for Free Subscribers. All other Membership Levels [1-4] require payment.' . "\n";
205 echo '</td>' . "\n";
206 /**/
207 echo '</tr>' . "\n";
208 echo '</tbody>' . "\n";
209 echo '</table>' . "\n";
210 /**/
211 echo '<table class="form-table ws-plugin--s2member-mms-registration-wp-signup" style="margin:0;">' . "\n";
212 echo '<tbody>' . "\n";
213 echo '<tr>' . "\n";
214 /**/
215 echo '<th style="padding-top:0;">' . "\n";
216 echo '<label for="ws-plugin--s2member-mms-registration-grants">' . "\n";
217 echo 'Your Main Site / Allow Open Registration? ( via <code>wp-signup.php</code> )' . "\n";
218 echo '</label>' . "\n";
219 echo '</th>' . "\n";
220 /**/
221 echo '</tr>' . "\n";
222 echo '<tr>' . "\n";
223 /**/
224 echo '<td style="padding-bottom:0;">' . "\n";
225 echo '<select name="ws_plugin__s2member_mms_registration_grants" id="ws-plugin--s2member-mms-registration-grants">' . "\n";
226 echo '<option value="none"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_grants"] === "none") ? ' selected="selected"' : '') . '>No ( do NOT allow Open Registration )</option>' . "\n";
227 echo '<option value="user"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_grants"] === "user") ? ' selected="selected"' : '') . '>Yes ( allow Open Registration; Free Subscribers at Level #0 )</option>' . "\n";
228 echo '<option value="all"' . (($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_grants"] === "all") ? ' selected="selected"' : '') . '>Yes ( allow Open Registration; Free Subscribers, with a free Blog too )</option>' . "\n";
229 echo '</select><br />' . "\n";
230 echo 'If you set this to <code>Yes</code>, you\'re unlocking <a href="' . esc_attr (c_ws_plugin__s2member_utils_urls::wp_signup_url ()) . '" target="_blank" rel="external">wp-signup.php</a> ( on your Main Site ).' . "\n";
231 echo '</td>' . "\n";
232 /**/
233 echo '</tr>' . "\n";
234 echo '</tbody>' . "\n";
235 echo '</table>' . "\n";
236 /**/
237 echo '<table class="form-table ws-plugin--s2member-mms-registration-wp-signup ws-plugin--s2member-mms-registration-wp-signup-blogs-level0">' . "\n";
238 echo '<tbody>' . "\n";
239 echo '<tr>' . "\n";
240 /**/
241 echo '<th>' . "\n";
242 echo '<label for="ws-plugin--s2member-mms-registration-blogs-level0">' . "\n";
243 echo 'Level #0 ( Free Subscribers ):' . "\n";
244 echo '</label>' . "\n";
245 echo '</th>' . "\n";
246 /**/
247 echo '</tr>' . "\n";
248 echo '<tr>' . "\n";
249 /**/
250 echo '<td style="padding-bottom:0;">' . "\n";
251 echo '<input type="text" name="ws_plugin__s2member_mms_registration_blogs_level0" id="ws-plugin--s2member-mms-registration-blogs-level0" value="' . format_to_edit ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_blogs_level0"]) . '" /><br />' . "\n";
252 echo 'How many blogs can a Free Subscriber create?' . "\n";
253 echo '</td>' . "\n";
254 /**/
255 echo '</tr>' . "\n";
256 echo '</tbody>' . "\n";
257 echo '</table>' . "\n";
258 /**/
259 echo '<div class="ws-menu-page-hr ws-plugin--s2member-mms-registration-wp-signup"></div>' . "\n";
260 /**/
261 echo '<table class="form-table ws-plugin--s2member-mms-registration-wp-signup" style="margin:0;">' . "\n";
262 echo '<tbody>' . "\n";
263 /**/
264 for ($n = 1; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
265 {
266 echo '<tr>' . "\n";
267 /**/
268 echo '<th style="padding-top:0;">' . "\n";
269 echo '<label for="ws-plugin--s2member-mms-registration-blogs-level' . $n . '">' . "\n";
270 echo 'Membership Level #' . $n . ' / Maximum Blogs Allowed:' . "\n";
271 echo '</label>' . "\n";
272 echo '</th>' . "\n";
273 /**/
274 echo '</tr>' . "\n";
275 echo '<tr>' . "\n";
276 /**/
277 echo '<td>' . "\n";
278 echo '<input type="text" name="ws_plugin__s2member_mms_registration_blogs_level' . $n . '" id="ws-plugin--s2member-mms-registration-blogs-level' . $n . '" value="' . format_to_edit ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["mms_registration_blogs_level" . $n]) . '" /><br />' . "\n";
279 echo 'How many blogs can a Member ( at Level #' . $n . ' ) create?' . "\n";
280 echo '</td>' . "\n";
281 /**/
282 echo '</tr>' . "\n";
283 }
284 /**/
285 echo '</tbody>' . "\n";
286 echo '</table>' . "\n";
287 echo '</div>' . "\n";
288 /**/
289 echo '</div>' . "\n";
290 /**/
291 do_action ("ws_plugin__s2member_during_mms_ops_page_during_left_sections_after_mms_registration", get_defined_vars ());
292 }
293 do_action ("ws_plugin__s2member_during_mms_ops_page_after_left_sections", get_defined_vars ());
294 /**/
295 echo '<div class="ws-menu-page-hr"></div>' . "\n";
296 /**/
297 echo '<p class="submit"><input type="submit" class="button-primary" value="Save All Changes" /></p>' . "\n";
298 /**/
299 echo '</form>' . "\n";
300 }
301 else /* Otherwise, we can display a simple notation; leading into Multisite Networking. */
302 {
303 echo '<p style="margin-top:0;"><span class="ws-menu-page-hilite">Your WordPress® installation does not have Multisite Networking enabled.<br />Which is perfectly OK :-) Multisite Networking is 100% completely optional.</span></p>' . "\n";
304 echo '<img src="' . esc_attr ($GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"]) . '/images/large-icon.png" title="s2Member ( a Membership management system for WordPress® )" alt="" style="float:right; margin:0 0 0 25px; border:0;" />' . "\n";
305 /**/
306 if (file_exists ($ws_plugin__s2member_temp = dirname (dirname (dirname (__FILE__))) . "/ms.txt"))
307 {
308 echo '<div class="ws-menu-page-hr"></div>' . "\n";
309 /**/
310 if (!function_exists ("NC_Markdown"))
311 include_once dirname (dirname (__FILE__)) . "/_xtnls/markdown/nc-markdown.inc.php";
312 /**/
313 $ws_plugin__s2member_temp = file_get_contents ($ws_plugin__s2member_temp);
314 $ws_plugin__s2member_temp = preg_replace ("/(\=)( )(.+?)( )(\=)/", "<h3>$3</h3>", $ws_plugin__s2member_temp);
315 $ws_plugin__s2member_temp = NC_Markdown ($ws_plugin__s2member_temp);
316 /**/
317 echo preg_replace ("/(\<a)( href)/i", "$1" . ' target="_blank" rel="nofollow external"' . "$2", $ws_plugin__s2member_temp);
318 }
319 }
320 /**/
321 echo '</td>' . "\n";
322 /**/
323 echo '<td class="ws-menu-page-table-r">' . "\n";
324 c_ws_plugin__s2member_menu_pages_rs::display ();
325 echo '</td>' . "\n";
326 /**/
327 echo '</tr>' . "\n";
328 echo '</tbody>' . "\n";
329 echo '</table>' . "\n";
330 /**/
331 echo '</div>' . "\n";
332 }
333 }
334 }
335 /**/
336 new c_ws_plugin__s2member_menu_page_mms_ops ();
337 ?>