Skip to main content

Pagination using Dropdown List or Links for Sorting Generating Multiple Pages From a Single Asset. ie. Dynamic Sorting / Filtering

This is something that is very complicated at the moment. Essentially, what we want to do is create a dynamic sort or filter by xyz. This is handled by the CMS as a generation of multiple static pages for each sort or filter selection. The work will be done in the output.asp file and filename.asp template file.

Within the output.asp, the trick is to generate links to each of the individual static pages using:


asset.setParam "args", "querystringfield=abc&otherfield=abc"
'create a link back to the same page with the querystring fields attatched to it
asset.getLink(content.item("_cmsId")


You can then access the querystring fields by using:


content.item("querystringfield")
content.item("otherfield")


the querystring fields get added to the content. On load? (Question that is currently unanswered)

Within the filename.asp file, to generate multiple static pages:


'first check if the querystring fields are set
if content.item("querystringfield") <> "" and content.item("otherfield") <> "" then
'change the publishing path accordingly
strPath = content.item("_cmsPublishPath")
replace(strPath, content.item("_cmsLabel"), querstringfield)
'add the publishing path info back into the content
content.add "_cmsPublishingPath", strPath


I think that's it but I will update as necessary. As always, check the syntax, I'm not going to do it now because I am lazy.

Comments

Popular posts from this blog

Questions about Outages

Routine CMS maintentance windows are from 6pm - 7pm, every Monday and Wednesday. Generally, the system is still available during these times, but may be unavailable for a few minutes during that period. There are other times where maintenance must be performed outside these windows due to unforeseen circumstances. We aim to provide as much notice as possible for these events, typically via email and via an alert on the login page. The routine maintenance is also mentioned on the login page on the day of maintenance.

Checking / Creating New Folders from an SMTP Import

To check if a folder exists in the CMS already you have to create a folder list. There is no direct commands to do this. dim folderExists folderExists = false set folderlist = asset.getFolderList("/path/") 'loop through folder list do while folderlist.nextEntry() if folderlist.item("_cmsLabel") = "foldername" folderExists = true exit do end if loop To create a folder in the CMS, first make a Model that only contains a folder. Then do the following: if folderExists = false then 'create folder set dict = system.createDictionary() fId = asset.create(folderName, "/Site/Global/Picture of the Week/", "/System/Models/Directory Builder", dict) end if The parameters for the asset.create("label", "Path", "Model to use", content or dictionary)

Laravel 5.1 - Posting and Retrieving JSON

This is how you can use jQuery to POST data and retrieve it within the controllers. To Send Data: First off on the page where you are POSTing data from, you need to have a CSRF_TOKEN as a meta tag. <meta name="csrf_token" content="{{ csrf_token() }}" /> Then in the JavaScript, pull the token and send it along with the POST as headers. <script type="text/javascript"> var CSRF_TOKEN = $('meta[name="csrf_token"]').attr('content');    var jsonData = "{ 'data' : 'data' }";   $.ajax({     url: '/route/path',         type: 'POST',     data: jsonData,     headers: {      'X-CSRF-TOKEN': CSRF_TOKEN     },        dataType: 'JSON',     success: function (data) { } }); </script> To Retrieve Data: Setup a post route in /app/Http/routes.php Route::post('/route/path', 'ControllerName@controllerMethod' ); Then setup the controller