Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.adminSite.prefs.hosting
on hosting () {
<<Changes
<<10/9/03; 12:54:18 PM by JES
<<Fixed a bug which would cause a macro error if the hosting prefs page is loaded before the Admin site home page.
<<3/14/03; 3:28:21 PM by JES
<<Add a preference for whether new sites are news-items sites. Add a preference for the default text of the first news item.
<<3/13/03; 2:42:56 AM by JES
<<Fixed the default home page text preference. It is now respected when creating a new site.
<<9/6/02; 2:25:08 PM by JES
<<Added a popup menu pref for the default editing tool for new sites -- WYSIWYG, HTML Tags, or None.
<<8/21/02; 9:39:41 PM by JES
<<Make sure config.manila.hosting.sites.default.flUseHostingSiteMembershipGroup is defined.
<<8/20/02; 11:28:17 PM by JES
<<Created.
local (pta = html.getPageTableAddress ());
local (htmltext);
on add (s) {
htmltext = htmltext + (s + "\r");};
if not defined (system.temp.mainResponder) {
new (tableType, @system.temp.mainResponder)};
if not defined (system.temp.mainResponder.misc) {
new (tableType, @system.temp.mainResponder.misc)};
local (adrprefs = @system.temp.mainResponder.misc.hostingPrefs);
if pta^.method == "POST" {
local (adrargs = @pta^.postArgs);
config.manila.hosting.sites.default.flSubSites = boolean (adrargs^.["system.temp.mainResponder.misc.hostingPrefs.flSubSites"]);
config.manila.hosting.sites.default.flEditorsOnlyCreateSites = boolean (adrargs^.["system.temp.mainResponder.misc.hostingPrefs.flEditorsOnlyCreateSites"]);
manilaData.newSiteTemplate.["#prefs"].language = (adrargs^.["system.temp.mainResponder.misc.hostingPrefs.language"]);
if defined (config.manila.themes.Default.Pages.Home.text) {
table.assign (@config.manila.themes.Default.Pages.Home.text, adrargs^.["manilaData.defaultText.home"])}
else {
table.assign (@manilaData.defaultText.home, adrargs^.["manilaData.defaultText.home"])};
local (basedomain = adrargs^.["system.temp.mainResponder.misc.hostingPrefs.baseDomain"]);
if config.manila.hosting.sites.default.flSubSites {
config.manila.hosting.sites.default.baseDomain = string.popLeading (basedomain, ".")}
else {
if not (basedomain beginsWith ".") {
config.manila.hosting.sites.default.baseDomain = "." + basedomain}};
mainResponder.redirect (pta^.uri + "?" + pta^.searchArgs)};
bundle { //set up temp table
if not defined (adrprefs^) {
new (tableType, adrprefs)};
adrprefs^.baseDomain = config.manila.hosting.sites.default.baseDomain;
adrprefs^.flSubSites = string (config.manila.hosting.sites.default.flSubSites);
adrprefs^.flEditorsOnlyCreateSites = string (config.manila.hosting.sites.default.flEditorsOnlyCreateSites);
adrprefs^.language = "english";
if defined (manilaData.newSiteTemplate.["#prefs"].language) {
adrprefs^.language = manilaData.newSiteTemplate.["#prefs"].language}};
bundle { //hosting prefs form fields
add (radio.prefs.popupMenuPref ("Who can create new sites?", @adrprefs^.flEditorsOnlyCreateSites, {"false", "true"}, {"Anyone", "Editors Only"}));
add (radio.prefs.popupMenuPref ("<nobr>Create top-level sites or sub-sites</nobr>?", @adrprefs^.flSubSites, {"true", "false"}, {"Sub-sites", "Top-level Sites"}));
add (radio.prefs.stringPref ("Base domain for new sites", @adrprefs^.baseDomain, size:35));
if not defined (config.manila.hosting.sites.default.flUseHostingSiteMembershipGroup) {
config.manila.hosting.sites.default.flUseHostingSiteMembershipGroup = false};
add (radio.prefs.checkboxPref ("Check this box if you want new sites to share their membership group with the hosting site", @config.manila.hosting.sites.default.flUseHostingSiteMembershipGroup));
add (radio.prefs.stringPref ("<nobr>Create new sites in a database named</nobr>", @config.manila.prefs.hostingGdbName));
bundle { //lanugage popup
local (languages = {}, languagenames = {});
local (adrlang);
for adrlang in @manilaData.localization.languages {
local (lang = nameOf (adrlang^));
local (dispname = string.upper (lang[1]) + string.mid (lang, 2, infinity));
try {dispname = mainResponder.getString ("languages." + lang)};
languages = languages + lang;
languagenames = languagenames + dispname};
add (radio.prefs.popupMenuPref ("Language", @adrprefs^.language, languages, languagenames))};
bundle { //editing tool popup
if not defined (manilaData.newSiteTemplate.["#prefs"].editingToolName) {
manilaData.newSiteTemplate.["#prefs"].editingToolName = "HTML Tags"};
add (radio.prefs.popupMenuPref ("Editing tool (MSIE/Windows)", @manilaData.newSiteTemplate.["#prefs"].editingToolName, {"WYSIWYG", "HTML Tags", "None"}, {"WYSIWYG", "HTML Tags", "None"}))};
bundle { //home page text
local (s);
if defined (config.manila.themes.Default.Pages.Home.text) {
table.assign (@manilaData.defaultText.home, config.manila.themes.Default.Pages.Home.text)};
add (string.replaceAll (radio.prefs.textAreaPref ("Default home page text", @manilaData.defaultText.home, rows:20), "//", "\\//"))};
bundle { //news item site prefs
add ("<tr><td colspan=\"2\"><br /><br /><b>News Items sites:</b></td></tr>");
local (adrNewsSiteBool = @manilaData.newSiteTemplate.["#newsSite"].flNewsItemSite);
if not defined (adrNewsSiteBool^) {
adrNewsSiteBool^ = false};
add (radio.prefs.checkboxPref ("Check this box for all new Manila sites to have news items enabled by default.", adrNewsSiteBool));
add (string.replaceAll (radio.prefs.textAreaPref ("Default text for first news item", @manilaData.defaultText.firstNewsItem, rows:20), "//", "\\//"))}};
return (htmltext)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.