[contentbox] Installing contentbox in existing app

There are instructions that should describe how to do this on the contentbox but the link to it fails. Anyone have these instructions?

Mike

I also cannot get to those instructions and am looking forward to getting ContentBox to run our marketing site.

What do you need to know.

ContentBox is very straight forward to install in its default configuration, so what have you tried what/if any errors that you’re getting and whether this is running on Railo or ColdFusion will allow us to help you further.

Thank you for the quick response. I just downloaded this morning and have not had a chance to install yet but just looked it over. So contentbox is just run as a module? Do I just need to pop in the module folders into my existing module folders? Do I need to change out my existing coldbox system folder? or is that the only change?

It depends, the download package is contained in a ColdBox application. Which means you just need to setup a datasource and drop it in your web root, however you can if you need to take the core ContentBox modules and drop them into an existing ColdBox application.

The basic installation is in the readme.txt in the ContentBox archive, the other way to install is already discussed in the mailing list if you feel like doing a search or wait for the instructions to be fixed on the website.

For embedding into existing app:

  1. Update ColdBox to latest included on ContentBox
  2. Add orm configurations to parent app
  3. Drop ContentBox modules into modules folder
  4. By default ContentBox ui takes over your app routes and display. You can segregate the module to a separate entry point by opening the ModuleConfig in the ContentBox ui module and adding an entry point

Luis Majano
CEO
Ortus Solutions, Corp
Toll Free/Fax: 1-888-557-8057
Direct: 909-248-3408
www.ortussolutions.com
Twitter: @lmajano, @ortussolutions

Thanks for the response. I ended up just setting Contentbox up as a separate site to get it up and installed and build the site how I wanted it. So I got it running and then tried to get it added to my existing application. I moved the modules folders to my parent app, setup the ORM config in the application.cfc of my parent app. I am also running the latest CB (3.5.3)

I also had to add the following to my routes.cfm file in my parent app:
addModuleRoutes(pattern="/site",module=“contentbox-ui”);
addModuleRoutes(pattern="/cbadmin",module=“contentbox-admin”);

Now when I go to /site I get the following error: Variable SETTINGSERVICE is undefined.

Memento - struct
COLUMN 0
ID ??
LINE 397
RAW_TRACE at cfBaseContent2ecfc898838649$funcRENDERCONTENT.runFunction(C:\ColdFusion10\cfusion\wwwroot\xxxx\coldboxApp\modules\contentbox\model\content\BaseContent.cfc:397)
TEMPLATE C:\ColdFusion10\cfusion\wwwroot\xxxx\coldboxApp\modules\contentbox\model\content\BaseContent.cfc
TYPE CFML

I have tried for the last week to get rid of this and it is probably something easy but it looks like it is not autowiring that cfc as it is not recognizing the injected settingsService. When I go through the logs I cannot see that it is autowiring baseContent …do you have any ideas?

Thx!

Can’t say I have done this type of install as yet, but the first thing that comes to mind is the mappings in the Application.cfc I am thinking that these may need to be added if they are not.

Other than that I can’t think of anything else that might be needed.

But you are right it is not getting injected, which you might want to double check that your modules convention is the default modules, if you have changed that, then you might need to move the ContentBox modules to that defined convention.

Let us know if you have tried that already.

Regards,
Andrew Scott
WebSite: http://www.andyscott.id.au/
Google+: http://plus.google.com/113032480415921517411

I have all the mappings and use the default convention mappings for all of the coldbox folders
if I go to /cbadmin it brings me to the admin login but /site throws that error so it must be injecting some of the cfcs for the admin area?

this is my application.cfc
//<!— COLDBOX STATIC PROPERTY, DO NOT CHANGE UNLESS THIS IS NOT THE ROOT OF YOUR COLDBOX APP —>
COLDBOX_APP_ROOT_PATH = getDirectoryFromPath(getCurrentTemplatePath());
this.mappings["/coldbox"] = COLDBOX_APP_ROOT_PATH & “frameworks\coldbox”;
this.mappings["/includes"] = COLDBOX_APP_ROOT_PATH & “includes”;

//<!— The web server mapping to this application. Used for remote purposes or static purposes —>
COLDBOX_APP_MAPPING = “xxxx/coldboxApp”;
//<!— COLDBOX PROPERTIES —>
COLDBOX_CONFIG_FILE = “”;
//<!— COLDBOX APPLICATION KEY OVERRIDE —>
COLDBOX_APP_KEY = “”;

//contentbox
this.mappings["/contentbox"] = COLDBOX_APP_ROOT_PATH & “modules/contentbox”;
this.mappings["/contentbox-ui"] = COLDBOX_APP_ROOT_PATH & “modules/contentbox-ui”;
this.mappings["/contentbox-admin"] = COLDBOX_APP_ROOT_PATH & “modules/contentbox-admin”;
// THE DATASOURCE FOR CONTENTBOX MANDATORY
this.datasource = “XXXX_CONTENTBOX_DSN”;
// CONTENTBOX ORM SETTINGS
this.ormEnabled = true;
this.ormSettings = {
// ENTITY LOCATIONS, ADD MORE LOCATIONS AS YOU SEE FIT
cfclocation=[“model”,“modules/contentbox/model”,“modules/contentbox/modules”],
// THE DIALECT OF YOUR DATABASE OR LET HIBERNATE FIGURE IT OUT, UP TO YOU
//dialect = “MySQLwithInnoDB”,
// DO NOT REMOVE THE FOLLOWING LINE OR AUTO-UPDATES MIGHT FAIL.
dbcreate = “none”,
// FILL OUT: IF YOU WANT CHANGE SECONDARY CACHE, PLEASE UPDATE HERE
secondarycacheenabled = false,
cacheprovider = “ehCache”,
// ORM SESSION MANAGEMENT SETTINGS, DO NOT CHANGE
logSQL = false,
flushAtRequestEnd = false,
autoManageSession = false,
// ORM EVENTS MUST BE TURNED ON FOR CONTENTBOX TO WORK
eventHandling = true,
eventHandler = “modules.contentbox.model.system.EventHandler”,
// THIS IS ADDED SO OTHER CFML ENGINES CAN WORK WITH CONTENTBOX
skipCFCWithError = true
};

Ok sorry, let me put some more instructions that I will add to the site as well:

  1. Update ColdBox to latest included on ContentBox
  2. Add orm configurations to parent application.cfc

// THE DATASOURCE FOR CONTENTBOX MANDATORY

this.datasource = “contentbox”;

// CONTENTBOX ORM SETTINGS

this.ormEnabled = true;

this.ormSettings = {

// ENTITY LOCATIONS, ADD MORE LOCATIONS AS YOU SEE FIT

cfclocation=[“model”,“modules”],

// THE DIALECT OF YOUR DATABASE OR LET HIBERNATE FIGURE IT OUT, UP TO YOU

//dialect = “MySQLwithInnoDB”,

// DO NOT REMOVE THE FOLLOWING LINE OR AUTO-UPDATES MIGHT FAIL.

dbcreate = “update”,

// FILL OUT: IF YOU WANT CHANGE SECONDARY CACHE, PLEASE UPDATE HERE

secondarycacheenabled = true,

cacheprovider = “ehCache”,

// ORM SESSION MANAGEMENT SETTINGS, DO NOT CHANGE

logSQL = false,

flushAtRequestEnd = false,

autoManageSession = false,

// ORM EVENTS MUST BE TURNED ON FOR CONTENTBOX TO WORK

eventHandling = true,

eventHandler = “modules.contentbox.model.system.EventHandler”,

// THIS IS ADDED SO OTHER CFML ENGINES CAN WORK WITH CONTENTBOX

skipCFCWithError = true

};

  1. Add ContentBox mappings to parent application.cfc

// LOCATION MAPPINGS

this.mappings["/contentbox"] = COLDBOX_APP_ROOT_PATH & “modules/contentbox”;

this.mappings["/contentbox-ui"] = COLDBOX_APP_ROOT_PATH & “modules/contentbox-ui”;

this.mappings["/contentbox-admin"] = COLDBOX_APP_ROOT_PATH & “modules/contentbox-admin”;

  1. Drop ContentBox modules into modules folder
  2. Remove the DSN creator module as I am guessing you are integrating, so delete it from disk
  3. Open your parent application’s config/ColdBox.cfc and make sure that
    a. The SES interceptor is defined

//Register interceptors as an array, we need order

interceptors = [

//SES

{class=“coldbox.system.interceptors.SES”}

];

b. The ORM injection is enabled:

// ORM

orm = {

// Enable Injection

injection = {

enabled = true

}

};

  1. By default ContentBox UI takes over your application routes and display. You can segregate the module to a separate entry point by opening the ModuleConfig in the ContentBox UI module (/modules/contentbox-ui/ModuleConfig.cfc) and adding an entry point:

// YOUR SES URL ENTRY POINT FOR CONTENTBOX, IF EMPTY IT WILL TAKE OVER THE ENTIRE APPLICATION

// IF YOU WANT TO SECTION OFF CONTENTBOX THEN FILL OUT AN SES ENTRY POINT LIKE /site OR /content

// BY DEFAULT IT TAKES OVER THE ENTIRE APPLICATION

this.entryPoint = “page”;

signature0.jpg

Luis F. Majano
CEO
Ortus Solutions, Corp
www.ortussolutions.com

ColdBox Platform: http://www.coldbox.org
Linked In: http://www.linkedin.com/pub/3/731/483
Blog: http://www.luismajano.com
IECFUG Manager: http://www.iecfug.com

Social: twitter.com/lmajano facebook.com/lmajano

Thank you for the replies…I have followed everything on the checklist and I still get the Variable SETTINGSERVICE is undefined error as I described above for the /site but not for the /cbadmin

Make sure you restart the engine just in case.

signature0.jpg

Luis F. Majano
CEO
Ortus Solutions, Corp
www.ortussolutions.com

ColdBox Platform: http://www.coldbox.org
Linked In: http://www.linkedin.com/pub/3/731/483
Blog: http://www.luismajano.com
IECFUG Manager: http://www.iecfug.com

Social: twitter.com/lmajano facebook.com/lmajano