Gregory's Blog

Introducing Gregory's Blog


Introducing Gregory's Blog

Gregory's Blog is a free open source ColdFusion based blog.

It is intended to be the most beautiful and functional open sourced ColdFusion based blog in the world.

If you're a ColdFusion developer, come back to a ColdFusion based Blog....

Gregory's Blog is a completely modernized version of BlogCfc...

Stunning Mobile Interface...

Gregory's Blog is a responsive website that offers nearly identical functionality for both desktop and mobile devices.

Gregory's Blog is Eminently Themeable

Gregory's Blog has dozens of professionally designed pre-defined themes.

Changing the look and feel of you blog does not require any coding, you can use web based interfaces to perfectly adjust each theme.

Versatile Post Formats...

Add podcasts, thumbnails, images, and enclosures. Blog entries support using inline .css, scripts, and HTML.

Add Engaging Content and Special Effects...

Includes a HTML5 media player as well as a Flash player to allow users to add various media.

Gregory's Blog also has built in support for animations using the Green Sock Animation Platform.

Display Your Code....

Easilly display your code by wrapping your posts with "code" tags. The code will be displayed and will be automatically adjusted to match your theme.

Interact With Your Users...

Gregory's Blog allows users to add comments and use their own gravatar.

Captcha support and blog moderation capabilities are included.

Share Your Content...

Allow readers to share your blog content with built-in social media sharing.

Users can subscribe to your blog or subscribe to a selected post. Gregory's Blog also can share your content with various communities via RSS feeds.

Organize And Find Your Posts...

Categories and tag support are built-in. You can also associate your blog entries and related posts.

Find your posts using a search engine at the top of the site. Posts are also automatically displayed by date and can be selected using a calendar control.

Optimized for Search Engines

Gregory's Blog is SEO friendly and has a 100% google SEO score.

The Future of Gregory's Blog...

I intend using Gregory's Blog for my own personal blog, and it is a key component of my own personal portfolio.

I am adding capabilities to use a rich editor whithin a mobile interface to quickly share my personal photography while out in the field.

 

This entry was posted on July 15, 2019 at 10:15 PM and has received 526 views.

There are currently 3 comments.   Show Comments

Using top: auto will not work when vertically aligning text within multiple block level elements.

Using top: auto, margin: auto, margin-top: -50%, etc, will not work when vertically aligning text within multiple block level elements. The problem with these css declarations in block level elements is that the values would be calculated as zero when they are calculated relative to the width of outer blocks.

CSS2 specifies that block level elements are stacked vertically from top to bottom in normal flow.

If you only have one block level element, the the top and bottom margins will be zero and these declarations will be calculated correctly. For example, the following code will work to vertically align the text:

view plain about
1.slide#slide02 .wrapper {
2    top: auto;
3    left: 5%;
4    text-align: left;
5    padding: 0;
6}

However, if you have more than one block level element in the same flow, the code will not work as the auto margins will not be calculated correctly.

When you're using multiple block level elements, use absolute positioned elements to vertically align the text like so:

view plain about
1.slide#slide02 .wrapper {
2    position: absolute;
3    top: 50%;
4    display: table-cell;
5    vertical-align: middle;
6    left: 5%;
7    text-align: left;
8    padding: 0;
9}

This entry was posted on July 12, 2019 at 2:18 PM and has received 191 views.

There are currently 0 comments. Download attachment.

Fine tuning your theme with Kendo Theme Builder

Gregory's Blog is built from scratch to be fully themeable, and using the Kendo theme builder in addition with the built in theme settings allows you to have full control over the look and feel of your own theme.

It was my goal to have dozens of themes and interfaces built into Gregory's Blog that would help to allow you to build a theme that you love- or to get you 95% of the way. If the theme does not perfectly match the look and feel of your site, using the Kendo UI Theme builder should be able to take you the rest of the way there.

The Kendo UI Theme Builder enables you to modify Kendo UI themes to perfectly match the look and feel of your website or application. Without scripting or using HTML, you will have complete control over the design of the buttons, backgrounds, windows, widgets, such as the calendar and HTML5 media player, dialog's, and even alternating color schemes with an easy to use interface.

To modify the .less based theme file, first preview and choose one of Gregory's Blog default themes that comes close to the look and feel of your site. The base Kendo theme can be found by either looking at the URL, or on the settings page in the administrative interface.



Once you jot down the name of your desired theme, head over to the Kendo UI Theme Builder.

On the far left of the interface, click on the Kendo theme that you have chosen. Here, you have hundreds of different options to choose from, but first start out by changing the accent and widget base colors. You'll notice that any changes that you have made will be shown to you on the right immediately. The first dozen or settings are important, you don't need to check out the series colors, most of these are for various charts. Investigate and set everything as you would like, and when you're ready, click on the download button at the top of the page.


After downloading the files and extracting the .zip file, you should see 3 different files: kendo.custom.css: kendo.custom.dataviz.json, and kendo.custom.less. Upload the two .css and .less files to your server. I suggest saving these two files in a new folder named 'myStyles' in the /common/libs/kendoCore directory, but you can save them anywhere on your server that you would like.
Note: you don't need to do anything with the .json file.



After uploading the file to your server, jot down the path that you uploaded the kendo.custom.css file to, and head over to Gregory's Blog administrative interface and click on the settings link.

In the settings page, look for the Customize Kendo Themes section. Click on the modify themes checkbox, and type in the path and file name that you uploaded the kendo.custom.css file to. Don't worry about the mobile theme location setting, the mobile settings should work with the custom .css file. Leave the rest of the forms as is, and click on the save button at the bottom of the page. You may have to iterate through the same steps again if you want to continue to dink around with the look and feel of the theme.



Happy Theming!

This entry was posted on June 28, 2019 at 6:42 PM and has received 237 views.

There are currently 0 comments. Download attachment.

Using a dynamic variable to set a dynamic path variable when dropping a cookie

ColdFusion sometimes drives me a bit wonky when I try to set a dynamic variable inside a tag. Most ColdFusion tags support embedded dynamic variables, but quite a few tags don't support this. Probably the most frustrating issue is when you want to use a dynamic variable to extend an application in a sub-folder using two or more application.cfc templates. It seems that every other time I do this I slap my head and think 'Oops! it's time to set up proxy extensions', sigh... but this frustrating issue requires a very long blog entry for a different day. Back to my point...

If you try to use a dynamic variable using a cfcookie tag, you will get the following nasty error:

view plain about
1<cfcookie name="isAdmin" value="true" path="#application.baseUrl#" expires="never">

Attribute validation error for tag CFCOOKIE. It has an invalid attribute combination: expires,name,path,value. Possible combinations are: Required attributes: 'name'. Optional attributes: 'domain,encodevalue,expires,httponly,preservecase,secure,value'. Required attributes: 'domain,name,path'. Optional attributes: 'encodevalue,expires,httponly,preservecase,secure,value'.

To get around this, simply use the cookie scope instead in order to set the dynamic path value.

view plain about
1<!--- Using the cfcookie tag does not work with dynamic vars in the path. --->
2<cfset cookie.isAdmin = { value="true", path="#application.baseUrl#", expires=30 }>

Both cfcookie and the cookie scope do the same thing, send a cookie to the client, but at least the cookie scope allows you to embed dynamic variables for in the path name.

This entry was posted on June 28, 2019 at 12:11 PM and has received 200 views.

There are currently 0 comments. Download attachment.

Theme Settings in the administrative web interface.

Gregory's Blog has 14 different beautiful default themes that you can choose from. Each theme can be easily customized using a web interface. You can have as many themes as you want, or design a single theme, but you should first choose a default theme from which to start with.

All of the default themes can be viewed by clicking on the themes link at the top of each page. Once you choose a theme, you can adjust the settings of the theme, such as changing the header properties, page display settings, changing logo's, etc. After modifying the default theme to your liking, you can further fine tune the look and feel using a web based theme builder interface. I will cover how to use the theme builder in later posts.

Once you have selected your preferred theme, you can disable the other themes by deselecting the Use theme? checkbox under the Default Themes section in the administrative settings interface. Don't worry about losing a theme, you can always enable any theme by checking the checkbox next to the disabled theme.

There are 39 unique theme settings that can be independently applied to each theme. Theme settings are applied using the Settings page in the Blog administrative site. I will briefly go over each new setting here. It it safe to play around with these settings. If you make a mistake, you can always reset the default settings for the particular theme by clicking on the reset theme button at the bottom of the settings administrative page.

  • Notes: this blog is highly optimized for mobile, and some of these settings will not apply. I have indicated what settings are not available to mobile devices in the notes section below.
  • The following three settings are global, and affect all themes.
    1. Parent Site Name and Link: The parent site name and parent site link form elements controls the behavior of the menu found at the top of the header. It allows the user to add an option in the menu that links to their home site.
    2. The Parent Site Name will display the title of the site within the menu. On my site, the text is Gregory Alexander - Web Design. The Parent Site Link can be any link to another site. The link is triggered when a user clicks on the menu option. On this site, the link is www.gregoryalexander.com.
    3. Default Font Size will set the font size for the blog content. You can choose any value between 8 and 26 points. Note: the Default Font Size will not change the size of the text in the header. I manually set the header text to be at 16 point in the menu on desktop devices, and 12 points for mobile devices.

    All of the settings below can be set by theme. Each theme operates independently, and can have its own unique settings. You can modify or create 14 different themes.

    1. The Modify Default Themes checkbox is used when the owner of the blog is ready to modify the default themes. Until this button is checked, the site will operate as it is intended here, with the default settings intact.
    2. The Kendo Base Theme allows the blog owner to review all of the default blog settings. Blog owners can look and see where the current images are stored, what library paths are used, and determine the element properties of the containers on the site. It is recommended that you browse the existing themes, and choose the theme that is closest to the theme that you want to create. In order to modify a theme, click on the default theme that you are interested in, and modify the settings that are displayed in the form.
    3. Kendo Theme .css Location (string): if you want to create your own Kendo less based theme and replace the existing .less based theme, use the Kendo Theme Builder to modify the base theme, upload it, and change the default path and point it to the new .less file that you created using the Kendo theme builder.
    4. Kendo Mobile Theme .css location (string): when you create your own Kendo theme, make sure to also specify the new path of the mobile theme as well.
    5. Custom Theme Name (string): provide the theme name that you want others to see when they look at your own site. This setting has no effect on the 1.1 version, but is a placeholder for the next major release.
    6. Dark Theme (true/false): Gregory's blog has built in logic to pull in different resources depending upon the overall color of the theme. If the theme has a dark background for example, Gregory's blog will pull in a different version of the code highlighter. There are quite a few different adjustments that are made, but it is up to you to determine whether Gregory's Blog should adjust it's logic for to adapt to a light or a darker screen background. You can see this in action by comparing the following two default themes: Blue Wave (a light theme with dark text) and Blue Wave Dark, a dark theme with white text.
    7. Blog Content Width (numeric): The current blog content is set at 66% of the screen and should be left at this setting unless you set it much higher. When you're looking at the blog, you can see that the blog content portion in the center of the screen. The blog content section may contain the header (we will go over this later), the blog content that contains the blog posts, the side bar to the right which contains the links to the various parts of the site (such as the subscribe interface), and the footer. The blog owner can adjust this as they see fit, they can set it to 100% if they don't want any background image at all. However, unless you want to set this quite a bit higher, it is strongly recommended to leave this particular setting at 66%. If this setting is set at 66%, the background width is programmatically optimized and will change depending upon the screen width of the device. Note: this setting has no effect on mobile devices. To illustrate, the blog content width set at 100% is shown below (the 'Main Container' and 'Pod Container' widths were kept at default settings (65% and 35%)).
    8. Main Container Width (numeric): the main container holds all of the blog posts. It is currently set at 65% of the Blog Content Width (see above). If you set this higher, or lower, the side bar (also known as the 'pod width') to the right will also be adjusted accordingly. This setting has no effect on mobile devices. Note: the Main Container Width plus the Pod Container width will always equal 100. The following image has the following settings:
      1. Blog Content Width: 50%
      2. Main Container Width: 50%
      3. Pod Container Width: 50%
    9. Pod Container Width (numeric): the pod container is the section to the right of the main container. It contains the subscribe interface, tags, recent posts, etc. The current setting is set to 35%, but you can adjust it as you see fit. Notes: if you change this setting, the Main Container Width will be adjusted accordingly. This setting has no effect on mobile devices. The Main Container Width plus the Pod Container width will always equal 100.
    10. Opacity (numeric): If you look carefully at the site, you can see a faint trace of the background image underneath. I prefer this look as it creates visual interest. The opacity settings are different depending upon the theme, but you can change this setting to your own liking. You can set it at 100% to eliminate the opacity, or set it lower than the current setting if you want the background to bleed through. The image to the left has opacity set at 80%, and the right image is set at 99%.

    11. Background Image (string): enter the absolute path to the image that you want shown as the background image for the desired theme. If you prefer the look of a clean site without any background, or don't want any background at all, leave this blank. Additionally, you can specify an image that will create a background pattern, and use the next variable, Background Image Repeat .css, to create a unique pattern as a background. The image below does not have a background image set
    12. Background Image Repeat .css (string): you can use any valid background image repeat .css. This was built into the themes as a blog owner may want to create sophisticated pattern objects for the background. The pattern shown below image has the following settings:
      1. Background Image Repeat: repeat

    13. Background Image Position .Css (string): setting your favorite background 'hero' image using the default 'center center' is not always the best approach. The background image position rule allows you to set the background image to exact coordinates to make sure that it looks good on all screen sizes. See background position for more information.
    14. Stretch Header across Page (true/false): if you want your header to consume the entire width of the page, set this to true. The default setting is false. On mobile devices, this setting is automatically set at 100%. The image below is set to true.
    15. Align Header with Content (true/false): the default setting is true for all of the current default themes, but setting this to false allows the header to be set at the far left or right of the page, or the absolute center. Leaving this to true adjusts the size of the header to fit the width of the content width (see Blog Content Width).
      The image below has the Align Header with Content set at false with menu align center.
      Note: this setting is only relevant if the Stretch Header across Page is set to true.
    16. Menu Align (left, center, right): you can align the header to the left, center, or right. Use this in conjunction with the Align Header with Content and Stretch Header across Page properties to create the look that you like.
    17. Header Background Image (string): currently, I use simple images with various gradient fills that are used as the header background. You can set the header background to use any image. You can get creative here, perhaps you want an image that is filled with a pattern, or a header that displays lots of floating bubbles, it is your call.

    18. Cover Menu with Menu Background Image (true/false): this setting is a bit complex. For my personal Zion and Orion themes, I wanted a the color scheme on the menu to match the color scheme of the background images and the .less theme file that controls the forms and widgets. In order to have the selected menu item match the orange color scheme, I 'covered' the Kendo menu with the background image that I used on the header with .css. This setting allows the menu background image to be shown within the Kendo menu itself. All of the other current themes have this setting set at false. Setting this to false should be sufficient in most cases; the menu is already tailored to the .less based theme that is set. However, there are reasons that a blog owner may want to set this to true on occasion. For example, if a blog owner creates a menu image with a lot of little floating bubbles, setting this to true will also allow the menu items to show these little bubbles as well.
    19. Mobile Logo Image (string): You will want your mobile logo image to be much smaller than the logo image for desktop devices. Enter the absolute location of the image.
    20. Mobile Logo Image Width (numeric (pixel width): this typically is set to be 60 pixels or less.
    21. Desktop Logo Image (string): enter the absolute path pointing to the location of your logo that will be shown on desktop devices.
    22. Logo Padding (top, right, bottom, left)': you can fine tune the logo placement with these settings. The default settings are left at 0px.
    23. Blog Name Text Color (hexadecimal string): this setting controls the text color of all of the items in the menu. Use any valid hexadecimal or valid HTML color value. If using a hexadecimal value, make sure to put a pound in front of the hexadecimal string it as well.
    24. Header Divider Image (string). This is the horizontal image divider that separates the header and the blog content, and the blog content and the footer. Currently, it is a little grey bar, but you can design your own and specify it here using an absolute path.

    This entry was posted on June 24, 2019 at 4:40 PM and has received 186 views.

    There are currently 0 comments. Download attachment.

    Immediate steps after installation

    This article discusses the steps that should be taken immediately after a new installation of Gregory's Blog.
    After installing a new version of Gregory's Blog using the installer, there are several essential settings that need to be set and other tasks that should be performed.

    1. First off, be sure to delete the 'installer' folder found on your server. The installer disables the installer folder after a successful install, however, for safety, it is best to delete this. If you need to reinstall in the future, you can always upload the installer again or download a new installer from my blog.
    2. Navigate the administrative site. The administrative section is found by removing the 'index.cfm' string and appending /admin/ to your URL. If this looks familiar to you- you probably have noticed that I am using the original BlogCfc interface created by Raymond Camden, but with a lot of new settings.
    3. To log in after a new install, type in admin as the user name and the password.
    4. Click on the 'update password' link in the administrative interface to update your user credentials. Type in admin as the 'old password', and enter your new password twice. Click on the 'update' button once you're done.
    5. Change the default blog user name. Click on the 'users' link to open the user interface and click on the admin link to open the user editor. In the user editor, you can ignore everything other than the 'name' entry. Change the name to the default name that you want displayed when you make an entry and click on the save button. If you don't change the name here, any blog entry that you will make will show the name as 'name'.
    6. Lets make a quick test entry to verify a few things... Click on the 'Add entry' link to open the Entry Editor. Note your local time, type in a quick title, and add a sentence or two in the Body section. Type in anything for the category, and click on the save button. This should create a new test entry. Once complete, go to your home page outside of the administrative section. See if the name next to the entry is the same name that you changed in the previous step. Also, check the time of the post to see if it matches your own local time.

    7. Synchronize server and local time. If the posted time does not match your local time, your hosting provider or server is located in a different time zone. To create an offset value, subtract or add hours in order for the time to match up. If the time on your post is greater than your own local time you need to append a minus (-) sign to the value. If your local time is greater than the posted time, you need to append a plus (+) sign to the figure.

      1. I'll use my own test post to explain. My hosting provider is located two time zones away. I posted this test post at 7:11 PM PST. However, the time stamp on the post indicates 9:11 PM. 9 minus 7 is 2, and my time is less than the hosting servers time, so my offset string will be "-2". Finally, to synchronize the time, click on the settings link, and find the content section. There is an offset entry. Here I changed the offset value from 0 to -2, and clicked on the save button.

    The next post will discuss how to modify your themes.

    This entry was posted on June 13, 2019 at 8:10 PM and has received 217 views.

    There are currently 0 comments.

    Installing Gregory's Blog on your own website.

    Requirements
    You will need to have a hosting provider that supports ColdFusion. I have tested the software on both ColdFusion 2016 and 2018 and the software should work on all recent ColdFusion servers. However, if you want to use captcha to prevent spam, you should be running on ColdFusion 2016. Peter Farrel used sun Java classes which are deprecated in ColdFusion 2018 and Java 7. I will rewrite Peter's logic in a future version.

    You will also need to have a database. It is recommended that you use Microsoft SQL Server, or MySql, but this blog should also work with Oracle and Microsoft Access.

    Download the installation zip file
    The installation package is found near the top right section of Gregory's Blog. Click on the download button, and a new window will open. The content within the window will have a brief installation instructions along with credits and license information. Please read through it and click on the download button at the very bottom of the window. The browser should download the file, be patient, it may take several minutes for the zip file to download.

    Once the file has been downloaded, you need to extract the zip package to a directory that you will upload the files to your server using an FTP client.

    Decide your blog structure
    After downloading and extracting the installation package, you will see the Apache 2.0 license and two folders, blog and install. You now need to step back and make a choice what folder structure you want on your own blog. Do you want the blog in the root directory, or in a different folder? This is an important consideration before you move forward. If you don't plan this correctly and change your mind at a later time, you're going to have to start everything over.

    For example, I have two installations of Gregory's Blog, one installation is found under www.gregoryalexander.com where I have other sites. My own personal site takes precedence and is installed in the root directory, and Gregory's Blog is stored in the www.gregoryalexander.com/blog folder. However, my test blog site is installed under the www.gregorysblog.org URL. Here, it makes no sense to create a blog folder- typing in www.gregorysblog.org/blog/ is redundant, so I store the blog in the root directory. When a user navigates to the gregorysblog.org URL, they immediately see the blog without having to type in an extraneous folder.

    Once you determine the structure of your blog, rename the blog folder to anything that you would like. If you want to install the blog in your root folder, copy and paste all of the files outside of the blog folder- and then remove the blog folder. You don't need to keep the same structure that was in place that you downloaded. Gregory's Blog will adjust the paths as necessary when running the web based installer.

    Upload the files
    After you have the structure that you want, upload all of these files to your web server using your preferred ftp client. It is a large package, and it will take some time.

    Run the installer
    Once the files have been uploaded to your own web server, you need to navigate to the installer. Unless you have renamed or removed the blog folder, the default path would be '/blog/installer/'. If you changed the default structure, navigate to the 'installer' folder on your website.

    Once you have navigated to the installer, A 'welcome' screen should appear. Read through it and click on the 'get started' button at the end of the page.

    You will be asked whether to continue or cancel. Unless you know what you're doing and have a previously installed version of BlogCfc or Gregory's Blog, click on the continue link inside this page.

    After clicking on the continue link, you will be asked to enter the DSN and Crypto settings. You will need to get the database information from your hosting provider, or server administrator. Unless you have a really good reason to change the security algorithms, leave the 'Crypto' settings as is. Once the DSN information is entered, click on the 'Verify and continue' button.

    Run scripts
    Step 3 will ask you a question. If you have never installed BlogCfc or Gregory's blog, click on the 'set up my database'. If you have a working BlogCfc or Gregory's Blog database, click on the 'move to settings' button.

    Settings
    The next screen is more complex. Here you will be asked to provide additional settings. The 2nd setting is important. Enter the name of the the exact URL that points to your blog, along with the index.cfm page that is placed by default into the /blog/ folder (domain name + /blog/index.cfm). In my installation on the gregoryalexander.com site, the URL is http://www.gregoryalexander.com/blog/index.cfm. On my test server, where I eliminated the 'blog' folder and put everything in the root directory, the URL is http://www.gregorysblog/index.cfm. If you only allow SSL, replace 'http' with 'https'.

    You will have to contact your hosting provider or server administrator in order to enter the email settings. Keep the default settings in the drop down menu's, and click on the 'save settings' button.

    After the installation process, you will need to delete the installer folder (the installer disables it once everything is installed, but it is best to delete the installer folder from the server as well) and fine tune the settings using the blog's administrative interface. The default administrative interface is found under /blog/admin/' There are articles on this web site that explains the settings in detail. If you have a problem, please email me, or make a comment on this website, and I will try to help you.

    This entry was posted on June 10, 2019 at 12:30 PM and has received 234 views.

    There are currently 0 comments. Download attachment.

    Using the Kendo pager anywhere within a page.

    The kendoPager is a beautiful widget that typically allows the user to navigate through a Kendo grid. It has fast forward and forward buttons to go to the first item and the previous item, displays the current page, which you can click to select another page, and forward and fast forward buttons to select the next and the last grid page. It is an intuitive control that is adaptive and themable.

    Although there is no official documentation on this, we can also use this control in any page. You're not limited to only using this in the grid!

    I'll show you my approach. You can see this Kendo pager in action by scrolling to the very bottom of this page below.

    First create an element for the pager.
    2) Create the datasource. Provide the URL in the pagerUrl element, and the page number.
    3) Instantiate the pager control, and provide a change method. We will pass the complete datasource to the change method that we will invoke next.
    4) Read the datasource to populate the kendoPager control.
    5) Invoke the onPagerChange method, extract the values from the passed datasource, and redirect the user using javascript.

    Here is the code:

    view plain about
    1<div id="pager" data-role="pager" class="k-pager-wrap k-widget k-floatwrap k-pager-lg">
    2&lt;script>

    3    // Create the datasource with the URL and page number.
    4    var pagerDataSource = new kendo.data.DataSource({
    5        data: [
    6            { pagerUrl: "&startRow=0&page=1", page: "1" },
    7            { pagerUrl: "&startRow=10&page=2", page: "2" },
    8            { pagerUrl: "&startRow=20&page=3", page: "3" },
    9            { pagerUrl: "&startRow=30&page=4", page: "4" }
    10        ],
    11        pageSize: 1,// Leave this at 1.
    12        page: 4 // Specify the currently selected page using a server side language.
    13    });
    14
    15    var pager = $("#pager").kendoPager({
    16        dataSource: pagerDataSource,
    17        // Pass the datasource to an onChange method outside of this function.
    18        change: function() {
    19            onPagerChange(this.dataSource.data());
    20        }
    21    }).data("kendoPager");
    22    
    23    // Read the datasource.
    24    pagerDataSource.read();
    25
    26    // Extract passed data from the datasource and redirect the user.
    27    function onPagerChange(data){
    28        // Get the current page of the pager. The method to extract the current page is 'page()'.
    29        var currentPage = pager.page();
    30        // We are going to get the data item held in the datasource using its zero index array, but first we need to subtract 1 from the page value.
    31        var index = currentPage-1;
    32        // Get the url that is stored in the datsource using our new index.
    33        var pagerUrl = "?" + data[index].pagerUrl;
    34        // Open the page.
    35        window.location.href = pagerUrl;
    36    }
    37&lt;/script>
    38 </div>

    This entry was posted on June 7, 2019 at 11:48 PM and has received 258 views.

    There are currently 0 comments.

    An open source version of Kendo Core is incorporated in Gregory's Blog

    I have incorporated the open source version of Telerik's Kendo UI into Gregory's blog. The reasons for this are numerous. ColdFusion on the server side is great, but in my opinion, relying upon ColdFusion for the UI was a zero sum game- it's outdated, proprietary, and just plain buggy. Several years ago, I ditched using ColdFusion's UI, and moved on using Kendo with jQuery.

    I plan on continuing to release new versions of Gregory's Blog that support the open source version of Kendo UI Core. However, the open source version of Kendo does not support all of the HTML5 widgets that I plan on using, such as the adaptive grid. I intend to release multiple versions of Gregory's Blog, one that uses the open source edition of Kendo, and another that uses the full version of Kendo. Both should function just fine, but the open source version will be a bit more limited. The only feature that is currently lacking in the open source version of Gregory's Blog is the HTML5 media player. Everything else that you see on this site is available to you.

    Although it is not necessary to include the commercial edition of Kendo, if you have your own license for Kendo, you can incorporate your own Kendo library. In the source code, I have the following argument "application.kendoCommercial"as a Boolean flag that is used to include Kendo's open source core version, or include the full commercial version using your own Kendo library. If you have your own license, you will need to set this flags to true in your code, and set the 'application.kendoSourceLocation' argument to match the path to your own Kendo libraries.

    This entry was posted on June 3, 2019 at 2:49 AM and has received 241 views.

    There are currently 0 comments. Download attachment.

    ColdFusion error: "The current user is not authorized to invoke this method."

    I wanted to document this as this error is not often found using google, but if you receive a ColdFusion error "The current user is not authorized to invoke this method.", it could be due to using the roles attribute in a cfffunction tag that don't match the roles that you set using the cflogin tag upon successful login.

    I received this error when converting the original application.cfm tag in BlogCfc to use an application.cfc instead. During the conversion processes, I noticed that there was a 'roles' argument on the cffunction that did not match up with the new role that I had just programmed in the cflogin logic. When I searched for this error, I found a bunch of errors relating to using ColdFusions built in administrative user interface, and could not find that it was due to the role restrictions on the cffunction tag and thought to document it. It is a relatively intuitive error, but I am surprised that Adobe did not elaborate and write something like 'The role on the function does not match the cflogin role'. ColdFusion has always been good at that.

    If you receive this error, check the roles attributes that you have used. It will likely fix the problem.

    This entry was posted on June 2, 2019 at 2:32 PM and has received 278 views.

    There are currently 0 comments. Download attachment.




    Your input and contributions are welcomed!

    If you have an idea, BlogCfc based code, or a theme that you have built using this site that you want to share, please contribute by making a post here or share it by contacting us! This community can only thrive if we continue to work together.

    Images and Photography:

    Gregory Alexander either owns the copyright, or has the rights to use, all images and photographs on the site. If an image is not part of the "Gregory's Blog" open sourced distribution package, and instead is part of a personal blog post or a comment, please contact us and the author of the post or comment to obtain permission if you would like to use a personal image or photograph found on this site.

    Credits:

    Portions of Gregory's Blog are powered on the server side by BlogCfc, an open source blog developed by Raymond Camden. Revitalizing BlogCfc was a part of my orginal inspiration that prompted me to design this site. Some of the major open source contributers to BlogCfc include:

    1. Peter Farrell: the author of 'Lyla Captcha' that is used on this blog.
    2. Pete Freitag: the author of the 'ColdFish' code formatter that is also used on this blog.

    Version:

    Gregory's Blog Version 1.15 July 25th, 2019.