Hi Sean,

you create the folders with ItemType FOLDER. As much as I see you should use CONTENT instead as DMS use node type mgnl:content as folders

Best regards,

Ralf


McMains, Sean A schrieb:
Hi Folks,

We're planning to add the DMS functionality to our Magnolia installation
before too long. Since we manage a bunch of sites within a single instance
of Magnolia, we have a single top-level item for each site in the Website
repository. We plan to mirror this structure in the DMS, so that each site
will have an associated folder at the root level of the DMS tree.

I've been working on a script to automate the creation of these folders in
the DMS repository, but haven't been able to get it totally working yet.
When I run the script, it claims that it has created the folders. And
indeed, if you run it again, it sees the folders and doesn't try to create
them again.

However, in both the Documents tab in AdminCentral and the JCR browser
(which I tweaked to look in the dms tree), there's no evidence of the
folders to be seen. I expect I'm probably just missing some small but vital
step in creating them, but I sure haven't been able to figure out what that
step is.

So, if anyone has sample code for creating folders in the DMS, or can tell
me what I'm missing in the following script, I'd sure appreciate the help.

Thanks,
Sean

-----

<jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page";
    xmlns:cms="urn:jsptld:cms-taglib"
    xmlns:cmsu="urn:jsptld:cms-util-taglib"
    xmlns:c="urn:jsptld:http://java.sun.com/jsp/jstl/core";>

    <jsp:directive.page contentType="text/html; charset=UTF-8"
        session="false" />
    <jsp:output doctype-root-element="html"
        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";
/>

    <html>
    <head>
    <title>Add 404 Pages</title>
    </head>
    <body>
    <jsp:directive.page import="info.magnolia.cms.core.Content" />
    <jsp:directive.page
        import="info.magnolia.cms.beans.config.ContentRepository" />
    <jsp:directive.page import="info.magnolia.cms.core.HierarchyManager" />
    <jsp:directive.page import="info.magnolia.context.MgnlContext" />
    <jsp:directive.page import="java.util.Iterator" />
    <jsp:directive.page import="info.magnolia.cms.core.ItemType" />
    <jsp:directive.page import="info.magnolia.cms.core.MetaData" />
    <jsp:directive.page import="info.magnolia.cms.security.Authenticator" />
    <jsp:directive.page import="javax.jcr.ValueFactory" />
    <jsp:directive.page import="javax.jcr.RepositoryException" />

    <jsp:declaration>
        <![CDATA[

        public void createPage( Content c, HttpServletRequest request,
HttpServletResponse response ) throws Exception {
                response.getWriter().println("<br/>Processing Site: " +
c.getHandle() + "<br/>");
                HierarchyManager
dmsHierarchyManager=MgnlContext.getHierarchyManager( "dms" );
                ValueFactory valueFactory =
dmsHierarchyManager.getWorkspace().getSession().getValueFactory();
                String folderName = c.getName();

                if ( !dmsHierarchyManager.isExist( c.getHandle() ) ) {
                    response.getWriter().println( folderName + " needs to be
created.<br/>");

                    Content dmsRoot = dmsHierarchyManager.getRoot();
                    Content newFolder = dmsRoot.createContent( folderName,
ItemType.FOLDER.getSystemName() );
                    response.getWriter().println("Created new folder at " +
newFolder.getHandle() + "<br/>" ) ;
                    dmsRoot.save();

                } else {
                    response.getWriter().println( c.getHandle() + " already
exists<br/>" );
                }
        }

        public void processSites( Content c, HttpServletRequest request,
HttpServletResponse response )  {
            try {
                Iterator childContentNodesIterator = c.getChildren(
ItemType.CONTENT ).iterator();

                while ( childContentNodesIterator.hasNext() ) {
                        Content childNode =
(Content)childContentNodesIterator.next();
                        createPage( childNode, request, response );
                        response.flushBuffer();
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        ]]>
    </jsp:declaration>

    <jsp:scriptlet>
        <![CDATA[
        HierarchyManager
websiteHierarchyManager=MgnlContext.getHierarchyManager(ContentRepository.WE
BSITE);
        MgnlContext.initAsWebContext( request, response );
        Content rootNode = websiteHierarchyManager.getContent("/");

        response.getWriter().println("Processing sites...<br/>");
        processSites( rootNode, request, response );
        response.getWriter().println("**** ADDING 404s COMPLETE ****
<br/>");
        ]]>
    </jsp:scriptlet>
    </body>
    </html>

</jsp:root>


----------------------------------------------------------------
for list details see
http://documentation.magnolia.info/docs/en/editor/stayupdated.html
----------------------------------------------------------------


----------------------------------------------------------------
for list details see
http://documentation.magnolia.info/docs/en/editor/stayupdated.html
----------------------------------------------------------------

Reply via email to