Hi guys,
Just a few other tracks:
* you could use the import/export mechanisms. They're easily
useable through command line tools like wget.
* in the same vein, you could create a custom Page implementation
(that creates your content with code similar to the one below), and
use it through wget if you need command line.
* there are plans for remoting (some of) the Magnolia API. See jira
or the dev list (or ping Oliver ;)) and see if it would fit your needs
Cheers
g
On Mar 2, 2007, at 17:49 , Simon Goodchild wrote:
Hi Sean,
Below is a piece of code I use which should do the page creation part.
It's designed for a servlet environment, so will need some work if you
need to run from the command line. It may also need a bit of tweaking
depending on the magnolia version you're using.
Haven't tried populating content via the APIs so can't offer anything
useful on that at the moment. It will be in APIs somewhere, so trawl
through the Javadoc and Magnolia sources and you will find it
eventually.
Hope this helps,
Simon
String mgnlRepository = request.getParameter("mgnlRepository");
if( mgnlRepository == null )
{
mgnlRepository = "website";
}
String mgnlPath = request.getParameter("mgnlPath");
String label = request.getParameter("label");
String title = request.getParameter("title");
String template = request.getParameter("template");
String name = "/"; //default in case something goes wrong
if( mgnlPath != null && mgnlPath.length() > 0 )
{
MgnlContext.initWebContext(request);
HierarchyManager hm = MgnlContext.getHierarchyManager
(mgnlRepository);
ValueFactory valueFactory = hm.getWorkspace().getSession
().getValueFactory();
name = label;
if( label == null || label.trim().length() < 1 )
{
name = "untitled";
}
try {
Content parentNode = hm.getContent(mgnlPath);
String slash = "/";
boolean isRoot = false;
if (mgnlPath.equals("/")) {
isRoot = true;
slash = StringUtils.EMPTY;
}
if (hm.isExist(mgnlPath + slash + label)) {
if (!isRoot) {
name = Path.getUniqueLabel(hm, mgnlPath, label);
}
else {
name = Path.getUniqueLabel(hm,
StringUtils.EMPTY, label);
}
}
Content newNode;
newNode = parentNode.createContent(name,
ItemType.CONTENT.getSystemName());
newNode.getMetaData().setAuthorId(Authenticator.getUserId(request));
newNode.getMetaData().setCreationDate();
newNode.getMetaData().setModificationDate();
newNode.getMetaData().setTemplate(template);
newNode.setNodeData("title", valueFactory.createValue(title));
parentNode.save();
}
catch (Exception e) {
System.out.println("error creating page: " + name);
}
}
On 02/03/07, Sean McMains <[email protected]> wrote:
Hi Folks,
I'm wanting to add a specific page to each of the sites that we're
running
under Magnolia. I've got the code to iterate through the WEBSITE
repository
working fine, but am not having any luck figuring out what I need
to do to
create a new page and populate it with a bit of data. (I've tried
a couple
different things that look like they ought to work, and run
without error,
but don't actually produce any results.)
Does anybody have any sample page-creation code they'd be willing
to share?
Or if there's something relevant in the Magnolia source, I'd love
to know
where to look.
Thanks for any help!
Sean
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/developer.html
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/developer.html
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://www.magnolia.info/en/developer.html
----------------------------------------------------------------