Creating a dynamic navigation system of a Percussion CMS site

We are going to be creating a new navigation system that will be needing a database. We are looking to be able to use a database to dynamically run through drill down queries that use categories for finding related and sub navigation pages and section of the web site, as well as content. Does the database that Percussion uses allow us to create categories and other options as well as publish a copy of that database to the web server to be able to search on if content is archived, locations and the content pages to create the dynamic navigation? Or is there a mechanism for a system like what I am trying to explain already out there?
Or does it have to be a independant database to create a system such as desired above?

Thank you in advance for any suggestions

Steve

Hi Steve,

This will be covered once your coaching period begins, but Percussion CMS comes with a set of navigation managements tools built into the product that you may find suitable for your needs:

https://help.percussion.com/percussion-cm1/design/navigation/navigation-widget/index

Let me know if you were already aware of this, and if there is a particular reason why Navigation in Percussion won’t be adequate for how you’re looking to implement your site’s navigation.

The navigation widget might suffice for our standard navigation. The navigation we are going to create might need to be a custom tool that allows us to navigate in a drill-down manner filtering the pages with related material and or categories, possibly using queries to return the results. I see there is a category list widget. We will need the results page to be able to show the page that was clicked on as well as all related pages through categories, not in a list but graphically, maybe in a tile format. Does this sound like a possibility?

Hi Steve,

I understand. The type of drill-down, dynamic filtering you’re speaking might not fit into the mold of what our main taxonomy widgets are designed to manage. That said, if this type of tool is a requirement, you could develop a custom web app (using aspx, PHP, etc.) which retrieves this information from to your DTS server’s database.

Whenever you publish your site in CM1, full meta data information relating your all of your site’s pages – including tags, categories, summary text, and web server link location – gets written out to your web server’s DTS database (which is a Derby DB by default, but this can be setup to use MySQL, SQL Server, etc.). Of course, this type of web app would be unsupported by Percussion, and we don’t have any documentation relating to the structuring of the data in the DTS database, but I do know of a couple of customers who were able to set something like this up.

Let me know if you have any questions about this, or you’re thinking more along the lines of setting something up strictly using our built-in widgets.

I am going to setup a windows web server with AAR and DTS so I can see how this works. We do not have anything setup up yet as far as publishing servers go. Would you be able to show me any documentation on configuring a IIS server for the DTS to be installed on? We would like to be able to create custom apps. As far as unsupported, What does that entail? Are you meaning if the custom app fails then that app is not supported however the install of the CM1 still is supported?

Hi Steve,

This set of documents outlines the recommended methods to setup a DTS enabled production web server:

https://help.percussion.com/percussion-cm1/install-setup/network-and-system-configuration/web-server-configuration/production-web-server-setup/index

Yes, you have summarized what I meant by unsupported nicely. Because CM1 is decoupled from your production web server, all I’m saying is we won’t be able to assist with your custom app if you go that route, but CM1 itself will still be fully supported.

Thank you I will look over it and see how I can give this a try.

What is the location of the configuration files that would let me change from the default derby database in my dts system? I found this file in the C:\Percussion\Deployment\Server\conf\perc\perc-datasources.properties.sample. however this looks like it is a different type of data. Would this be the area where you can publish to a database instead of html to a file based site?

Hi Steve,

That configuration file is indeed what you would alter to setup your DTS server to connect to a SQL Server database rather than the default embedded Derby database.

This topic contains some vital tips as far as setting this up goes:

https://community.percussion.com/t/how-to-configure-dts-to-use-ms-sql-server-as-its-repository/1081

Hi Nathaniel,

No matter what I try, when I follow the steps I get the same response. I have must have tried a dozen different ways to get the system to work without success. I get errors of “unknown” in the job logs. I am not getting any tables being built at all. I have tried changing the login, changing the connection string with changing the port to instance name and 8 other times with different types and styles I found on the internet. Nothing seems to work. In looking at the logs I am not finding any good errors that point me in the right direction. I might not be looking at the correct logs thought. I am still missing something.

Hi,

I found that I am close to Lloyd in the article:
https://community.percussion.com/t/how-to-configure-dts-to-use-ms-sql-server-as-its-repository/1081
with:
“could not complete schema update
java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:jtds:sqlserver://“server name”:1433/“database name”, username =“removed”. Terminating connection pool. Original Exception: ------
java.sql.SQLException: Network error IOException: Connection refused: connect
at net.sourceforge.jtds.jdbc.ConnectionJDBC2.(ConnectionJDBC2.java:372)”

Connection refused this has to be the issue. I have double checked my login. Could it be the db.schema=DBO needs to be the schema name of the user?

Unlike Lloyd I am using port :1433. Any suggestions?

I found the answer to the connection issue. I had to change the jdbcURL to this:
jdbcUrl=jdbc:jtds:sqlserver://localhost/“DatabaseName”;instance=“instanceName”

I did use name “localhost” for the name of the server. There were a couple of other warnings in the feeds.log.
It cannot find the location of a few files.
Which it is looking in for all of these in - C:/Percussion/Deployment/Server/conf/perc/
/perc-polls-services.properties
/perc-datatype-mappings.properties
/perc-metadata-services.properties
/perc-form-processor.properties
/perc-comments-services.properties
/feeds.properties
/perc-membership-services.properties

Should I copy these over to the file location above?

***these are in their perspective C:/Percussion/Deployment/Server/webapps/~ folders
Should I worry about configuring these properties files as well?

and
WARNING: tenantCache cannot be null. skipping authorization filter.

**If you want we can move most of this over to the previously mentioned thread.

I hope from here I can use these sql tables to create our dynamic application. Do you know if the categories and archive meta-data will be sent into this as well?

thank you very much

Steve

Hi Steve,

Excellent work debugging that. The feeds log is very noisy and reports warnings for optional config files, etc. As long as the tables in your specified database were successfully created, feel free to ignore anything in that log that’s not an explicit ERROR.

Once you have Percussion configured to point to this DTS server for publishing (covered in the web server setup doc), full site publishes will write out meta-data information relating to all of your pages to this database. I too am hopeful you’ll find that adequate content gets written out to this database to develop your application.