# $Id$
OGo Publisher
=============
[EXPERIMENTAL ! (v0.9.x)]
[REQUIRES: SOPE, GDL, Logic, DocumentAPI, WebUI]
This is a simple extension to OGo projects which allow you to implemented
template driven exports of static HTML servers.
Suitable for small webservers, used for www.opengroupware.org :-)
Links
=====
Links in templates are always relative to the template location.
*Exported* links from templates are made relative to the content page
(obviously ;-) !
Defaults
========
ProfilePubRequestHandler - bool
profiling info in pub-request-handler
ProfilePubResourceManager - bool
profiling info in pub-resource-manager
ProfileSKYOBJ - bool
profiling info for SKYOBJ tags
LogTemplates - bool
SkyPubDebugEnabled - bool - enable debug logs
SkyPubCoreOnException - bool - dump core if SkyPubComponent catched an
exception
Special XML Tags
================
sdkajfkjhasdfjhf
SKY -> OGo Tags
==================
Keys:
SKY OGo JavaScript OGo KVC
body getContent() -
self this self
contentType contentType NGFileMimeType
lastChanged lastChanged NSFileModificationDate
hasSuperLinks hasSuperLinks -
id id self.globalID
isRoot isRoot -
path path NSFilePath
name name NSFileName
objType objType -
objClass objClass -
prefixPath -
title title NSFileSubject
version getLastVersion() SkyVersionName
visibleName name NSFileName
visiblePath path NSFilePath
parent getParentDocument() -
index getIndexDocument() -
toclist getTocList() -
children getChildList() -
relatedLinks - -
objectsToRoot getDocumentsToRoot() -
Insertvalue-var
SKY:
OGo:
Insertvalue-anchor
SKY:
blah
blah
OGo:
blah
blah
Listen:
SKY:
OGo:
Parameter
SKY query -> const:qualifier
Conditions:
SKY:
OGo:
NOTES
=====
- SkyPubDirectAction.m is used for "online" previews
- creates a WORequest object for a path
- creates a WOContext for the request
- attaches a pubResourceManager to the request
SkyDocument
NGLocalFileDocument
SkyProjectDocument
Class & Category Notes
======================
DOM Extensions
==============
DOMElement(LinkElems)
DOMElement(Links)
DOMNode(LinkElems)
NS/EO/WO Extensions
===================
EODataSource(PubDS)
NSObject(SKYValueForKey)
NSObject(PubFileManager)
WOResourceManager(Additions)
OGo Extensions
==============
SkyDocument(SKYEmul)
- adds methods for SKY compatibility:
- npsDocumentType (returns "publication", "template", etc)
- npsDocumentClassName (same as above)
- npsValueForKey:inContext: (keys like objClass,objType,prefixPath)
- npsFolderValueForKey:inContext: (same, but on index-document ?)
SkyDocument(Pub)
- adds:
- pubFileManager
- pubChildDataSource (uses dataSourceAtPath: on fm)
- pubURL (calls urlForPath:[self pubPath])
- pubPath (return cleaned up NSFilePath)
- pubStandardizePath: (use fm's standardizePath:)
- pubMakeAbsolutePath:
- pubMakeRelativePath:
- pubIsValidLink:
- pubRelativeTargetPathForLink:
- pubAbsoluteTargetPathForLink:
- parentDocument (return the parent-doc by ".." in fm, documentAtPath:)
- nextDocument (sort the dir-contents, then select sibling)
- previousDocument (same as above)
- pubDocumentAtPath: (make abspath, the ask pubFileManager)
- pubIndexFilePath (locate index.xhtml or index.html [or IndexFile])
- pubIndexDocument (above, then documentAtPath:)
Lists:
- pubChildListDocuments
- pubAllDocuments
- pubAllFromDataSourceOfClass: (fetch using a specified datasource)
- pubAllPersons
- pubAllEnterprises
- pubAllAccounts
- pubAllJobs
- pubAllAppointments
- pubAllProjects
- pubAllTeams
- pubTocListDocuments
- pubRelatedLinkDocuments
- pubFolderDocumentsToRoot
SkyDocument(PubJS)
- adds props:
- objType (npsDocumentType)
- objClass (npsDocumentClassName)
- isRoot (checks for / or index-doc in /)
- contentType (NSFileMimeType)
- lastChanged (NSFileModificationDate)
- hasSuperLinks (always NO)
- id (globalID)
- name (NSFileName)
- title (NSFileSubject)
- adds funcs:
- getParentDocument() (parentDocument [can be called multiple times])
- getIndexDocument() (pubIndexDocument)
- getChildList() (pubChildListDocuments)
- getTocList() (pubTocListDocuments)
- getDocumentsToRoot()(pubFolderDocumentsToRoot)
SkyDocument(PubResponse)
- adds:
- generateGenericPubResponseInContext:
- generateImagePubResponseInContext:
- generateXMLPubResponseInContext:
- generateXHTMLPubResponseInContext:
- generateHTMLPubResponseInContext:
- generateDirPubResponseInContext:
- generatePubResponseInContext: (check NSFileMimeType and dispatch)
Publisher Classes
=================
SkyPubComponent (inherits from WOComponent)
- the component representation of publisher documents and templates
- ivars: fileManager, document, linkManager, isTemplate, rm, template
- JS: shadow, didEvaluate
SkyPubComponent(JSSupport)
- seems to be *really* similiar to SkyFormComponent, NGObjWeb or NGObjDOM
should probably provide a proper superclass
- -jsMapContext relies on an active mapping context
- shadow is created on-the-fly by _shadow (like in SkyFormComponent)
- JS props:
- objType, objClass, isRoot, contentType, lastChanged, hasSuperLinks
- id, name, title
- document, isTemplate, fileManager
- JS funcs:
- getParentDocument()
- getIndexDocument()
- getChildList()
- getTocList()
- getDocumentsToRoot()
- SkyDate(), Date()
- print()
- FileManager()
SkyPubComponentDefinition
SkyPubDataSource
SkyPubDirectAction
SkyPubFileManager
SkyPubInlineViewer
SkyPubPartPreview
SkyPubPartSourceViewer
SkyPubRequestHandler
SkyPubResourceManager
* Export Renderer
SKYNodeRenderer
SkyPubAnkerNodeRenderer
SkyPubAnkerSourceNodeRenderer
SkyPubCommentNodeRenderer
SkyPubEntityNodeRenderer
SkyPubHTMLNodeRenderer
SkyPubImgNodeRenderer
SkyPubImgSourceNodeRenderer
SkyPubSSINodeRenderer
SkyPubScriptNodeRenderer
SkyPubSourceNodeRenderer
SkyPubSourceTextNodeRenderer
SkyPubTextAreaNodeRenderer
SkyPubTextNodeRenderer
* Preview Renderer
SkyPubAnkerPreviewNodeRenderer
SkyPubHTMLPreviewNodeRenderer
SkyPubImgPreviewNodeRenderer
SkyPubInputPreviewNodeRenderer
SkyPubLinkPreviewNodeRenderer
SkyPubNoTagPreviewNodeRenderer
SkyPubPreviewTextNodeRenderer
SkyPubSSIPreviewNodeRenderer
SkyPubScriptPreviewNodeRenderer
* Links
SkyPubAnkerLink
SkyPubBGImgLink
SkyPubFormLink
SkyPubImgLink
SkyPubInputLink
SkyPubLink
SkyPubLink(Activation)
SkyPubLinkLink
SkyPubLinkManager
SkyPubLinks
SkyPubScriptLink
SkyPubXLink
* Render Factories
SkyPubNodeRenderFactory
SkyPubPreviewNodeRenderFactory
SkyPubSourceNodeRenderFactory