# $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