CMS8 breadcrumbs needs fixing.
If i set a page left nav to "This item only", then the breadcrumbs should mirror this.
If i set it to groups, then ditto, it should only show home, the parent and children
At present it always shows the whole shebang.
Friday, 21 December 2012
Thursday, 29 November 2012
CMS8 Applications links
Its imperative to resolve the applications link paradigm - so that we can link directly to application items in their respective site or section.
The solution must take into account that some items (e.g. news) may be available on more than one site. Maybe set the application root pages in the sites section, rather than the application section?? keep the application root page info in the sites object, along with an agreed parameter schema?
The solution must take into account that some items (e.g. news) may be available on more than one site. Maybe set the application root pages in the sites section, rather than the application section?? keep the application root page info in the sites object, along with an agreed parameter schema?
Wednesday, 24 October 2012
CMS4 Proposal for applications
This proposal is that for applications there are three hidden fields - edit, staging and live, so that different items can be previewed in the same way as pages.
It would mean a lot of re-jigging of old projects - but would be worth it.
It would mean a lot of re-jigging of old projects - but would be worth it.
Monday, 22 October 2012
CMS8 Cache proposal improvement
A proposal to augment caching. Basically each application has a cache file dependency so that when you update any data in that application the file is touched. Then say for example you have a home page widget that gets some news, a banner and some content, the resulting html can be cached, until either the banner or news widget cache is updated, then the content will be refreshed.
Friday, 19 October 2012
CMS8 Topnav changes
Its no good having ids in the top nav as then you cant have a top nav in the footer without illegal html, so its changing to classes:
This:
This:
<li id="tnav1"><a id="tna1" href="/About-Us/">About us</a></li> <li id="tnav2"><a id="tna2" href="/Why-Electra-Partners/">Why Electra Partners</a></li> <li id="tnav3"><a id="tna3" href="/Investment-Strategy/">Investment Strategy</a></li> <li id="tnav4"><a id="tna4" href="/Portfolio/">Our investments</a></li> <li id="tnav5"><a id="tna5" href="/Our-People/">Our people</a></li> <li id="tnav6" class="last"><a id="tna6" href="/Media-Centre/">Media centre</a></li>
will become this:
<li class="tnav1"><a class="tna1" href="/About-Us/">About us</a></li>
<li class="tnav2"><a class="tna2" href="/Why-Electra-Partners/">Why Electra Partners</a></li>
<li class="tnav3"><a class="tna3" href="/Investment-Strategy/">Investment Strategy</a></li>
<li class="tnav4"><a class="tna4" href="/Portfolio/">Our investments</a></li>
<li class="tnav5"><a class="tna5" href="/Our-People/">Our people</a></li>
<li class="tnav6" class="last"><a class="tna6" href="/Media-Centre/">Media centre</a></li>
Urmm... thats it!
Monday, 1 October 2012
CMS8 Path stuff finally sorted!
Finally reached a workable solution to the web.config pathing problem. I created a module, built into the cms8 dll that sorts out what requests will be sent to the page processor.
Usage is this:
<system.webServer>
<modules><add name="CMS8Module" type="CMS8.CMS8Module" /></modules>
</system.webServer>
Now if the module is used all extentioned pages (e.g. .htmx) and path type pages (e.g. /about-us/) will be handled by CMS8.Requester2, with the admin section being ignored (as long as the CMS8Config.Adminsite key is set to true and the CMS8Config.ApplicationVPath key is correct). Also htm and aspx files will be ignored by the CMS8 dll.
However this means that 404 errors for .Net and non-.Net resources will need to be caught - here are the settings:
<system.web>
<customErrors mode="On"><error redirect="/404.html" statusCode="404" /></customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/404.html" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
The "publish 404" function now creates a 404.html as well as the 404.inc files
So in total RequestHandler can still be used, this silently redirects "/about-us.htmx" pages to "/about-us/" pages WITHOUT 301. Requester will silently redirect in the same way WITH a 301 redirect.#
Requester2 does not do the Page_PreInit to check for "Sitemap.xml" or "robots.txt" and also does not do the redirects for "/about-us.htmx" pages to "/about-us/" pages.
The way forward is the Module + Requester2 way.
Usage is this:
<system.webServer>
<modules><add name="CMS8Module" type="CMS8.CMS8Module" /></modules>
</system.webServer>
Now if the module is used all extentioned pages (e.g. .htmx) and path type pages (e.g. /about-us/) will be handled by CMS8.Requester2, with the admin section being ignored (as long as the CMS8Config.Adminsite key is set to true and the CMS8Config.ApplicationVPath key is correct). Also htm and aspx files will be ignored by the CMS8 dll.
However this means that 404 errors for .Net and non-.Net resources will need to be caught - here are the settings:
<system.web>
<customErrors mode="On"><error redirect="/404.html" statusCode="404" /></customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/404.html" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
The "publish 404" function now creates a 404.html as well as the 404.inc files
So in total RequestHandler can still be used, this silently redirects "/about-us.htmx" pages to "/about-us/" pages WITHOUT 301. Requester will silently redirect in the same way WITH a 301 redirect.#
Requester2 does not do the Page_PreInit to check for "Sitemap.xml" or "robots.txt" and also does not do the redirects for "/about-us.htmx" pages to "/about-us/" pages.
The way forward is the Module + Requester2 way.
Tuesday, 25 September 2012
CMS8 New proc [CMS8_appitemorderbysectiondata1]
CMS8_appitemorderbysectiondata1.sql
This allows you to do ordering of applicationitems, using [sectiondata1] as a 'group'
This allows you to do ordering of applicationitems, using [sectiondata1] as a 'group'
Monday, 24 September 2012
CMS8 CMS8Config settings
public static string Websitevirtual = "";
public static string Websiteroot = "";
public static long GlobalSiteID = 0;
public static string Connectionstring = "";
public static string DevConnectionstring = "";
public static string Streampath = "";
public static bool Adminsite = false;
public static bool Https = false;
public static bool SingleWebRoot = false;
public static bool FolderPaths = false;
public static bool NoHomePath = false;
public static string LibFolderVRoot = "";
public static string AssetsFolderVRoot = "";
public static int Location = 1;
public static long Site = 0;
public static string PageExtention = "";
public static string SearchCatalog = "";
public static bool UseWindowsSearch = false;
public static bool IsStagingSite = false;
public static bool UseRegisteredUsers = false;
public static string PublicLoginAction = "";
public static string PublicLogoutAction = "";
public static string PublicLoginPage = "";
public static string PublicLogoutPage = "";
public static string GooglemapsKey = "";
public static int GoogleVersion = 2;
public static bool SmtpSSL = true;
public static string ApplicationVPath = "";
public static bool UseDevConn = false;
public static string StagingCacheFolder = "";
public static string Filetypelist = "rtf|doc|docx|pdf|xls|xlsx|tiff|ppt|pptx|mp3|flv|wmv|wma|mov|mpg|gif|png|jpg|jpeg|vcf|m4a|xml";
public static string Imagetypelist = "gif|png|jpg|jpeg|swf";
public static int MaxfilesizeKB = 10000;
public static int MaximagesizeKB = 1000;
public static int Thumbwidth = 200;
public static int Thumbheight = 160;
public static bool NTLogin = false;
public static bool Testing = false;
public static bool UseSchedules = false;
public static bool UsePublicUsers = false;
public static bool Testlogging = false;
public static bool Cachelogging = false;
public static bool Showbugtracker = false;
public static bool AllowUTF8Paths = false;
public static bool SetLowercasePaths = false;
public static bool SinglePageNav = false;
public static int Maxnavlevel = 4;
public static bool InsertTwoVersions = false;
public static bool ShowStaging = false;
public static bool ShowTrace = false;
public static bool UseChromelessPlayer = false;
public static bool TinyRelativePaths = false;
public static string Logfolder = "";
public static string UploadFolder = "";
public static string LibFolderRoot = "";
public static string AssetsFolderRoot = "";
public static string Logouturl = "";
public static string Loginurl = "";
public static string PublicCSSPath = "";
public static string WebmasterEmailAddress = "";
public static string WebmasterEmailName = "";
public static string SiteEmailAddress = "";
public static string SiteEmailName = "";
public static string VideoPlayerButtonColor = "";
CMS8 - [Requester] versus [RequestHandler]
Requester redirects .htmx pages to ~/ pages with a 301 status code. RequestHandler just serves the corresponding page.
CMS8 New temporary Config attribute [NoHomePath]
CMS8 New temporary Config attribute [NoHomePath]
Because of the transition from home page children that look like this: /default/sitemap.htmx to this: /sitemap.htmx, i have added a new config key [NoHomePath]. The default is false and when set to true it means that the initial folder (which should be "Default") IS omitted, making the pages in the folder appear to be in the root of the site. There is the possibility of a conflict - since pages within this special folder can clash with other folders names - e.g. a page called "Search" in the home folder would clash with a folder named "Search" if folderpaths were being used.
It is my intention to move all the pages in the home folder on existing sites to the simpler form, then remove the [NoHomePath] attribute, after setting it to be the default behaviour.
Because of the transition from home page children that look like this: /default/sitemap.htmx to this: /sitemap.htmx, i have added a new config key [NoHomePath]. The default is false and when set to true it means that the initial folder (which should be "Default") IS omitted, making the pages in the folder appear to be in the root of the site. There is the possibility of a conflict - since pages within this special folder can clash with other folders names - e.g. a page called "Search" in the home folder would clash with a folder named "Search" if folderpaths were being used.
It is my intention to move all the pages in the home folder on existing sites to the simpler form, then remove the [NoHomePath] attribute, after setting it to be the default behaviour.
Sunday, 23 September 2012
CMS8 Added fields
CMS8 Fields added:
CMS8Sites - [folderpaths] int not null default(0) - this is a site-specific field that shows that the site uses a folder versus folder and file based url scheme.
e.g. /news/media.htmx vs /news/media/
CMS8Pages - [description] nvarchar(500) not null default '' - this is for the meta tag "Description"
CMS8Applicationitems - [path] nvarchar(500) not null default '' this is not used yet - but will be to allow application items to be reached by path, for better SEO reasons. e.g. .../?/hamilton-on-pole/ rather than ..?itemid=24353
CMSnodes - [home] int not null default(0) - this is to denote which node in a site is the home page.
CMS8Sites - [folderpaths] int not null default(0) - this is a site-specific field that shows that the site uses a folder versus folder and file based url scheme.
e.g. /news/media.htmx vs /news/media/
CMS8Pages - [description] nvarchar(500) not null default '' - this is for the meta tag "Description"
CMS8Applicationitems - [path] nvarchar(500) not null default '' this is not used yet - but will be to allow application items to be reached by path, for better SEO reasons. e.g. .../?/hamilton-on-pole/ rather than ..?itemid=24353
CMSnodes - [home] int not null default(0) - this is to denote which node in a site is the home page.
Friday, 21 September 2012
userproc3_swappcontentversions
userproc3_swappcontentversions, a new stored procedure, added to the CMS so that content swaps can take place
A typical usage would be this:
// Push to live
p.Add("@sourcetype", SqlDbType.Int, 4, ParameterDirection.Input, 2);
p.Add("@sourceid", SqlDbType.Int, 4, ParameterDirection.Input, investmentid);
p.Add("@sourceversion", SqlDbType.Int, 4, ParameterDirection.Input, 3);
p.Add("@targetversion", SqlDbType.Int, 4, ParameterDirection.Input, 1);
outcome = db.ExecProcVoidParams("userproc3_swappcontentversions", p);
What this is doing is copying edit content (sourceversion = 3) to live content (targetversion = 1)
Also:
// Refresh from live
p.Add("@sourcetype", SqlDbType.Int, 4, ParameterDirection.Input, 2);
p.Add("@sourceid", SqlDbType.Int, 4, ParameterDirection.Input, investmentid);
p.Add("@sourceversion", SqlDbType.Int, 4, ParameterDirection.Input, 1);
p.Add("@targetversion", SqlDbType.Int, 4, ParameterDirection.Input, 3);
outcome = db.ExecProcVoidParams("userproc3_swappcontentversions", p);
What this is doing is copying live content (sourceversion = 1) to edit content (targetversion = 3)
A typical usage would be this:
// Push to live
p.Add("@sourcetype", SqlDbType.Int, 4, ParameterDirection.Input, 2);
p.Add("@sourceid", SqlDbType.Int, 4, ParameterDirection.Input, investmentid);
p.Add("@sourceversion", SqlDbType.Int, 4, ParameterDirection.Input, 3);
p.Add("@targetversion", SqlDbType.Int, 4, ParameterDirection.Input, 1);
outcome = db.ExecProcVoidParams("userproc3_swappcontentversions", p);
What this is doing is copying edit content (sourceversion = 3) to live content (targetversion = 1)
Also:
// Refresh from live
p.Add("@sourcetype", SqlDbType.Int, 4, ParameterDirection.Input, 2);
p.Add("@sourceid", SqlDbType.Int, 4, ParameterDirection.Input, investmentid);
p.Add("@sourceversion", SqlDbType.Int, 4, ParameterDirection.Input, 1);
p.Add("@targetversion", SqlDbType.Int, 4, ParameterDirection.Input, 3);
outcome = db.ExecProcVoidParams("userproc3_swappcontentversions", p);
What this is doing is copying live content (sourceversion = 1) to edit content (targetversion = 3)
Subscribe to:
Posts (Atom)