Monday, November 08, 2010 at 12:01 AM.

system.verbs.apps.Manila.windowTypes.buildManilaSiteOutline

on buildManilaSiteOutline (adr, adrinfo, flManagingEditor=true) {
	<<Add all the standard Manila site editing nodes to an outline.
	
	local (oldTarget = target.set (adr));
	local (origCursor = op.getCursor ());
	
	local (siteUrl = nameOf (adrinfo^));
	local (flGoneRight = false);
	on addNode (lineText, adrAtts) {
		local (dir = down);
		if not (flGoneRight) {
			dir = right;
			flGoneRight = true};
		op.insert (lineText, dir);
		manila.nodeTypes.addSitePrefsToAtts (adrinfo, @atts);
		op.attributes.addGroup (adrAtts);
		return (true)};
	
	bundle { //create home page node
		if flManagingEditor {
			local (atts);
			new (tableType, @atts);
			atts.type = "manilaHomePage";
			atts.siteUrl = siteUrl;
			addNode ("Home Page", @atts)}};
	bundle { //create Stories node
		local (atts);
		new (tableType, @atts);
		atts.type = "manilaStoriesContainer";
		atts.siteUrl = siteUrl;
		atts.url = siteUrl + "stories/";
		atts.baseDiscussUrl = siteUrl + "discuss/";
		addNode ("Stories", @atts)};
	bundle { //create DG node
		local (atts);
		new (tableType, @atts);
		atts.type = "manilaDiscussContainer";
		atts.siteUrl = siteUrl;
		atts.url = siteUrl + "discuss/";
		atts.baseDiscussUrl = atts.url;
		atts.discussContainerType = "topLevel";
		addNode ("Discussion Group", @atts)};
	bundle { //create nodes for various templates
		if flManagingEditor {
			local (atts);
			new (tableType, @atts);
			atts.type = "manilaTemplatesContainer";
			atts.siteUrl = siteUrl;
			addNode ("Templates", @atts);
			flGoneRight = false; //indent under the Templates node
			
			new (tableType, @atts);
			atts.type = "manilaTemplate";
			atts.siteUrl = siteUrl;
			local (templatesList = {"Navigation", "Template", "Home Page Template", "News Day Template", "News Item Template", "CSS", "JavaScript", "Site Structure", "Custom Prefs", "Join Now Members Box", "Sign Out Members Box"});
			local (oneItem);
			for oneItem in templatesList {
				atts.manilaType = string.innerCaseName (oneItem);
				addNode (oneItem, @atts)};
			op.go (left, 1); //go back to Templates container
			op.collapse ()}};
	<<bundle //create siteStructure node
		<<local (atts)
		<<new (tableType, @atts)
		<<atts.type = "manilaSiteStructure"
		<<atts.siteUrl = siteUrl
		<<addNode ("Site Structure", @atts)
	<<bundle //create Editors Only links subheads
		<<local (editorsOnlyLinks = {"Stories", "Pictures", "Gems", "Shortcuts", "Discuss", "Prefs", "Admin", "Bulletins"})
		<<local (atts)
		<<new (tableType, @atts)
		<<atts.type = "link"
		<<
		<<local (oneItem)
		<<for oneItem in editorsOnlyLinks
			<<local (lowerItem = string.lower (oneItem))
			<<atts.url = siteUrl + string.lower (lowerItem) + "/"
			<<if lowerItem == "prefs" //special case for this URL
				<<atts.url = siteUrl + "admin/sitePrefs/"
			<<if lowerItem == "shortcuts" //special case for this URL
				<<atts.url = siteUrl + "admin/viewShortcuts"
			<<addNode (oneItem, @atts)
	
	op.setCursor (origCursor);
	try {target.set (oldTarget)};
	
	return (true);
	}
	<<bundle //old code
		<<on createDefaultNodes (siteUrl, flManagingEditor=true)
			<<Create the default nodes in a Manila site: home page, various templates, links to prefs/admin pages. Assume the target is set, and the cursor is on the parent, the Manila site node.
				<<08/20/00; 3:47:14 PM by PBS
				<<Changes:
					<<09/21/00; 12:05:00 PM by PBS
						<<Add a level of structure -- put Templates in a Templates container.
						<<New optional parameter: flManagingEditor. If false, create only the dg node under the Manila site node.
					<<10/11/00; 11:24:14 PM by PBS
						<<Create the Stories node after the home page node, before the DG node.
			<<
			<<local (flGoneRight = false)
			<<local (origCursor = op.getCursor ())
			<<on addNode (lineText, adrAtts)
				<<local (dir = down)
				<<if not (flGoneRight)
					<<dir = right
					<<flGoneRight = true
				<<op.insert (lineText, dir)
				<<playlist.manila.addSitePrefsToAtts (siteUrl, @atts)
				<<op.attributes.addGroup (adrAtts)
				<<return (true)
			<<
			<<bundle //create home page node
				<<if flManagingEditor
					<<local (atts)
					<<new (tableType, @atts)
					<<atts.type = "manilaHomePage"
					<<atts.siteUrl = siteUrl
					<<addNode ("Home Page", @atts)
			<<
			<<bundle //create Stories node
				<<local (atts)
				<<new (tableType, @atts)
				<<atts.type = "manilaStoriesContainer"
				<<atts.siteUrl = siteUrl
				<<atts.url = siteUrl + "stories/"
				<<atts.baseDiscussUrl = siteUrl + "discuss/"
				<<addNode ("Stories", @atts)
			<<
			<<bundle //create DG node
				<<local (atts)
				<<new (tableType, @atts)
				<<atts.type = "manilaDiscussContainer"
				<<atts.siteUrl = siteUrl
				<<atts.url = siteUrl + "discuss/"
				<<atts.baseDiscussUrl = atts.url
				<<atts.discussContainerType = "topLevel"
				<<addNode ("Discussion Group", @atts)
			<<
			<<bundle //create nodes for various templates
				<<if flManagingEditor
					<<local (atts)
					<<new (tableType, @atts)
					<<atts.type = "manilaTemplatesContainer"
					<<atts.siteUrl = siteUrl
					<<addNode ("Templates", @atts)
					<<flGoneRight = false //indent under the Templates node
					<<
					<<new (tableType, @atts)
					<<atts.type = "manilaTemplate"
					<<atts.siteUrl = siteUrl
					<<local (templatesList = {"Navigation", "Template", "News Day Template", "News Item Template", "CSS", "JavaScript", "Site Structure", "Custom Prefs", "Join Now Members Box", "Sign Out Members Box"})
					<<local (oneItem)
					<<for oneItem in templatesList
						<<atts.manilaType = string.innerCaseName (oneItem)
						<<addNode (oneItem, @atts)
					<<op.go (left, 1) //go back to Templates container
					<<op.collapse ()
			<<
			<<bundle //create siteStructure node
				<<local (atts)
				<<new (tableType, @atts)
				<<atts.type = "manilaSiteStructure"
				<<atts.siteUrl = siteUrl
				<<addNode ("Site Structure", @atts)
			<<
			<<bundle //create Editors Only links subheads
				<<local (editorsOnlyLinks = {"Stories", "Pictures", "Gems", "Shortcuts", "Discuss", "Prefs", "Admin", "Bulletins"})
				<<local (atts)
				<<new (tableType, @atts)
				<<atts.type = "link"
				<<
				<<local (oneItem)
				<<for oneItem in editorsOnlyLinks
					<<local (lowerItem = string.lower (oneItem))
					<<atts.url = siteUrl + string.lower (lowerItem) + "/"
					<<if lowerItem == "prefs" //special case for this URL
						<<atts.url = siteUrl + "admin/sitePrefs/"
					<<if lowerItem == "shortcuts" //special case for this URL
						<<atts.url = siteUrl + "admin/viewShortcuts"
					<<addNode (oneItem, @atts)
			<<
			<<op.setCursor (origCursor)
			<<
			<<return (true)



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.