Posts

Elementor Logo

Integrating FileBird Document Library with WordPress Search

If you’d like to be able to search both your Media Library files and pages/posts, the following Javascript can get the job done.  Just ensure that you place the code on your search results page, along with the shortcode to embed FileBird. document.addEventListener("DOMContentLoaded", function () { // Function to trigger input change event on a

Read More »
Elementor Logo

Dealing with Caching/Other Page Weirdness

Occasionally we get reports of various issues with pages, often along the lines of pages won’t update or intermittent errors.  A lot of these issues relate to the fact that we are using a very aggressive caching mechanism on our sites called Nginx Helper to improve page load times.  In any case, I thought I’d put

Read More »
Migrate website

Custom ASHX File Handler for CKEditor

I recently discovered a vulnerability in some old .NET 4.8 web forms code that was used to provide basic file management within CKEditor (https://github.com/simogeo/Filemanager).  Since I don’t have the ability to rebuild the entire system at this time, I decided to implement a newer file manager instead (https://github.com/psolom/RichFilemanager/).  However, the ashx connector provided therein (https://github.com/psolom/RichFilemanager/blob/master/connectors/ashx/filemanager.ashx)

Read More »
Elementor Logo

Expand/Collapse All Buttons Using Elementor Accordion

Here’s how to have the ability to expand all/collapse all panes within an Elementor accordion element: Add an HTML widget and 2 buttons to your site.  Give the Expand All button the CSS class, “expand-all”, and the Collapse All button the class, “collapse-all” Add an HTML element to your page and paste in the code

Read More »
WordPress Logo

Finding Recent Changes In WordPress

Thought I’d denote some queries we commonly use to determine what has recently changed on one of our multisite instances in WordPress Pages/Posts SELECT ID, post_title FROM wp_X_posts WHERE post_status = ‘publish’ AND DATE(post_modified_gmt) BETWEEN ‘2023-08-15’ AND ‘2023-10-31’ AND post_type IN (‘post’, ‘page’) ORDER BY post_modified_gmt DESC; Events Manager Pro Events SELECT * FROM `wp_X_em_events`

Read More »
Gravity Forms Logo

Migrating Gravity Forms Entries To a Newer/Different Site

Sometimes when we redesign a site (when we know the content doesn’t need to change much) we’ll duplicate the old site and then work on the duplicate until we’re ready to release.  There are potential problems with this approach, including that when you duplicate a site, it’s just a snapshot in time, and any changes

Read More »
Chrome extension

Building A Chrome Extension: Refresh N’ Click

I thought it might be fun to appear to be more active than I actually am on some well-known social media platform, and came up with a little experiment for the job at hand, which also enabled me to build my first Chrome extension. Once installed and activated (by clicking the extension’s icon), it will

Read More »
Varnish

Fun with Web Cache

If you’ve been using WordPress for any length of time within Student Affairs, you may have noticed that when you sign into your WordPress site there is an option at the top of your page that didn’t always use to be there, “Purge Current Page”: Caching is a strategy that servers/browsers use to increase performance

Read More »
Gravity Forms Logo

How to Fix A Corrupted Gravity Forms Field Using a SQL backup

Recently we had an instance where a Gravity Form containing some custom JS became corrupted, with half of the code missing.  I was able to restore the original Javascript from a SQL backup doing the following: Download a SQL backup (in my case I use Updraft) with a known “good” Gravity form Open the extracted

Read More »
Migrate website

Get iCal Feed Using Web Service and Adjust Event Times

Here’s some example code to fetch a token and then an iCal feed from a 3rd party service.  Unfortunately the times are in UTC and the plugin we are using doesn’t respect the VTIMEZONE attribute, so I have to use regex to individually adjust all event times. private readonly static string tokenUrl = "https://domain:8445/token"; private

Read More »
Migrate website

Using an External Web Service to Deliver WordPress E-mail

We recently discovered that Gmail doesn’t play nicely with emails that are sent from our Azure instance (which is hosting our WordPress sites).  More specifically, Gmail users don’t receive the emails sent to them. Because of this, we have developed an API that resides on a local, on-campus server, wsnet2 to send out WordPress emails.

Read More »
Responsive CSU Header

CSS-Only Responsive CSU Header

Background CSU’s brand guidelines require that our websites have a responsive header. For large screens, the CSU signature should be written out on one line (Colorado State University); on medium screens, the CSU signature should be written on two lines (Colorado State–University); on small screens, the CSU signature should be shortened to our initials (CSU).

Read More »
Conferences

2022 Conference Opportunities

Note: I make no warranty as to the accuracy of any of the info below; this is just my attempt at aggregating a few conferences of personal interest in one location Conference Name Location Date Price Purpose Url Microsoft Build Online May 24 – 26 FREE (normally $2,395 in person) General purpose Microsoft developer conference

Read More »
Users on a Multisite

User Registration Across Sites within a Multisite Network

WordPress multisite installs come with many benefits. But they also come with some quirks. One such quirk is how it handles user registration on sibling sites within the multisite network. Hypothetical Situation In this hypothetical scenario, we will have Site A, Site B, and a user named Alice. Previously, Alice had registered as a user

Read More »
Power BI

How to Switch From Import to Direct Query Mode in Power BI

I’m not sure why Microsoft sets “Import Query” as the default when creating new Power BI connections, but the tyranny of the default led me to create charts using that option.  Weeks later I realized I didn’t want to manually refresh my reports and sought to switch the query mode to be direct instead.  Here’s

Read More »
Elements/Widgets

Element/Widget Glossary

Webpages are made up of various types of elements (or “widgets”). The naming of these elements can sometimes be confusing, so this is a quick reference guide to various elements and their names. Table of Contents Accordion Item #1 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar

Read More »
Email Tracking

Tracking E-mail Opens

Recently I was asked by a client how she could track which recipients were opening her e-mail messages (without using a read receipt).  It turned out to be a pretty easy process, after finding this article: http://dyn.com/blog/tracking-email-opens-via-google-analytics/. As a note of caution, Apple at least offers Mail Privacy Protection which blocks this ability. Anyways, as

Read More »
File lock

Protecting WordPress File Uploads

A Go-Daddy backed security company analyzed over 25k infected websites and 4,426,795 cleaned files to determine that the WordPress content management system accounted for 90% of all hacked websites in 2018 (increasing from 83% in 2017). The top three tactics for attacks included backdoors (68%), malware (56%), and SEO spam (51%).

Read More »
SEO

Search Engine Optimization

Learning about SEO Beginner’s Guide to Search Engine Optimization On-Page Search Engine Ranking Factors 15 Ways To Promote Your Site On-Page SEO: The Definitive Guide Tools 30 SEO Tools SEO Optimization with Yoast (if you don’t have Yoast on your site, contact your web developer) Five Minute Guide To Improving Your Ranking In Google While

Read More »
Caching

Caching Explained

This post greatly simplifies some of the core conepts of the web. If you’re interested in learning more about the underpinnings of the web, refer to “Further Readings” at the bottom of this post. Quick Background Before digging into caching, it’s important to briefly cover the core principles of how the Internet works. Within the

Read More »
Google Sheets

Using ASP.NET C# to Read Data from Google Sheets

In the following tutorial, we’ll be reading a Google Sheet (https://docs.google.com/spreadsheets/d/1-6XeX59-zgqi_z5Bm8dqYyO1z37tfi8Ur7o5mxmmVKo/edit?usp=sharing), porting it into an ASP.NET web site. Create a new Visual Studio ASP.NET C# project (Ctrl + Shift + N) Create a new empty web site Create a new master page, naming it site.master, and a new content page, default.aspx Visit https://developers.google.com/sheets/api/quickstart/dotnet and enable

Read More »
MS Access

Syncing an Access DB to MS SQL

MS Access has fallen out of favor many years ago, especially for use on the web, but it’s still being used by offices to capture data internally.  When recently asked whether that data could be exposed on a website, I thought I’d put together the following ASP.NET code to be able to do so relatively

Read More »
PowerShell

PowerShell: How To Receive Alerts When A Box is RDP’d

The following PowerShell script sends a text message and e-mail whenever any user RDPs into a Windows machine (obviously you would only want to do this in limited, critical instances).   This script is a bit of a work in progress, but got the job done for our purposes.  Note, much of this code, and the

Read More »
rSync

Using rSync To Quickly Upgrade WordPress Plugins

We occasionally have commercial WordPress plugins that don’t auto-update.  In those instances, it’s still easy to upgrade them all at once, across both our multi-site networks/sites using the following bash script.   #!/bin/bash # execute script in terminal by running bash scriptname.sh # to generate public/private key pair (to avoid repeated logins) # ssh-keygen -t rsa

Read More »
E-mail message

Using Templates Within the DSA Bulk E-mailer

This article assumes some basic familiarity with the Division of Student Affairs Bulk E-mailer tool at http://dsalistserv.colostate.edu/emailer.aspx.  More information about basic functionality of the system can be found under the “Preview Message” tab on that site. Up until recently, you had to search through the Message History tab to find and re-use a previously sent

Read More »
Custom Post Types

Custom Post Types in WordPress

What Are Custom Post Types? While most WordPress sites at CSU primarily use Pages, Posts can be just as, if not more, useful in the right context. Typically, posts are viewed as a blogging feature intended for your everyday, typical blog. However, nothing within WordPress restricts you to use posts solely for blog posts. You can

Read More »
WordPress Shortcodes

Creating Your Own WordPress Shortcode

Shortcodes: An Introduction What are shortcodes in WordPress? As WordPress.com elegantly says, A shortcode lets you do nifty things with very little effort. Think of a shortcode as a shortcut to add features to your website that would normally require lots of complicated computer code and technical ability. When Would I Need to Use a

Read More »
ASP.Net Security

ASP.NET security configuration tips

67% of ASP.NET websites have serious configuration related security vulnerabilities https://www.troyhunt.com/67-of-aspnet-websites-have-serious/ Issue Description Many web developers believe that newer Microsoft development frameworks such as ASP.NET (aka .NET) including MVC, Web Forms, or .NET Core protect them from many of the security vulnerabilities present in classic ASP and other older technologies. However, this is a false

Read More »
What is agile

What is Agile?

What follows are two excellent introductions to learning more about agile processes (which are applicable both to software development and to project management as a whole) https://www.youtube.com/watch?v=Z9QbYZh1YXY Why Have a Daily Standup An Introduction To Scrum

Read More »
Web Analytics

How to Check My Site’s Analytics – First Steps

I utilize Google Analytics for all of my public websites.  If you want to get to that data without my intervention, you will need a Google account to do so.  Here’s the steps that are taken to obtain analytics data: I would create a Google Analytics account profile for you and then wire up your

Read More »
Calendar on Portal.Office.Com

Adding Outlook Events Via portal.office.com

Here’s how to manage your Outlook calendar via a web browser: Open up your preferred browser and log into portal.office.com.  Click the Outlook Calendar icon in the left sidebar. Click the little calendar icon at the bottom left of your screen.  Or the direct link is https://outlook.office.com/calendar/. Click the blue “New Event” button in the

Read More »
Power BI

Power BI – Switching from Import to Direct Query

When getting data for Power BI, the default setting is “Import” and not “DirectQuery”.  Import doesn’t work too well for me at least, because my data sets are all changing every day.  Here are some tips in converting a project to instead use DirectQuery.   First, back-up your file and then open your new copy (of

Read More »
Calendar Permissions

Granting Calendar Access – Outlook Calendar Display For WordPress Plugin

Outlook Calendar Display for WordPress is a nifty little plugin that makes it possible to display the full details of any Outlook calendar on a WordPress site.  Unfortunately, it requires fairly aggressive permissions in order to generate the necessary tokens to work properly: https://wpintegrate.com/kb-article/outlook-calendar-display-for-wordpress-app-permissions/.  However, it’s possible to work around this issue by taking a

Read More »
SQL

Common SQL Queries

You must be logged in to view this content.

Please log in with your eID below:

[do_widget id=custom_html-3]

Read More »
Power BI

Power BI Slicer For Multiple Columns

Recently I had the need of creating a slicer in Power BI that would filter against different columns in a system storing the same type of data: case types for Student Legal Services. For purposes of remembering how this functionality was accomplished, I’m documenting it here: https://www.sqlbi.com/articles/creating-a-slicer-that-filters-multiple-columns-in-power-bi/#

Read More »
Elementor Logo

Elementor

What is Elementor? Elementor is one of the fastest growing page builder plugins available for WordPress. Like other page builders, it provides website editors the ability to create complex pages using a simple, intuitive interface. Editing Your Page Using Elementor Signing In Sign into the back-end of your site (if you don’t know the url

Read More »
Tidio Logo

Tidio Live Chat

What is Tidio? Tidio is a 3rd-party service that can be integrated with your website to allow visitors to engage in real-time (live) chat with you or your staff members. This Documentation is DSA-Specific If you or your office are not within the Division of Student Affairs, we’d recommend you reach out to your unit’s

Read More »
Slider Revolution Logo

Slider Revolution

What is Slider Revolution? Slider Revolution is an extremely powerful WordPress plugin that allows editors to create complex image sliders on their website. Most often you will see Slider Revolution being used at the top of a website’s homepage however it can be used anywhere within your WordPress website. Terminology Slides are individual slides that

Read More »
The Newsletter Plugin Logo

The Newsletter Plugin

What is The Newsletter Plugin? The Newsletter Plugin (sometimes referred to simply as “Newsletter” within WordPress) is a plugin that allows you to easily create newsletters to send to subscribers. While you can use it to send out a generic email with static text, the real benefit comes from it automatically pulling your website’s posts

Read More »
WordPress Logo

WordPress Introduction

What is WordPress? WordPress is the primary content management system (CMS) for the Division of Student Affairs and its websites. It’s open-source software that is not only the most used CMS at Colorado State University but is also the most commonly used CMS across the Internet as a whole. It allows for the rapid creation

Read More »
Gravity Forms Logo

Gravity Forms

What is Gravity Forms? Gravity Forms is an extremely powerful and flexible WordPress plugin that can be used in place of nearly any traditional, paper-based form. If you or your office want to convert any existing paper-based forms to an online form, Gravity Forms is the perfect solution. Building & Configuring a Form Adding Fields/Questions

Read More »
WPBakery Logo

WPBakery Page Builder

What is WPBakery Page Builder? WPBakery Page Builder (sometimes shortened to just WPBakery) is one of the longest maintained WordPress page builders. Due to a rebranding in 2019, you’ll sometimes see references to it using its old name “Visual Composer.” In previous versions of WordPress, it was extremely limited in its design capabilities and, as

Read More »
Oracle Instant Client

Installing the Oracle Client In Order To Connect to Banner/ODS

Every time I deploy a new machine I have the chore of installing the Oracle drivers/client in order to be able to connect to odsprod/banprod from my desktop (when testing locally in Visual Studio).  As I unfortunately misplaced the old directions to do so, with the help of Mike Brake I was able to recreate

Read More »
Connection timeout error message

Know When Your Site Goes Down Before Your Clients Do

I’m not too happy when a site I am responsible for goes down.  I especially don’t like it when a client alerts me to this fact, when I should have known/fixed the issue myself well before their knowledge of the issue.  So, here’s how to prevent such an occurrence from ever happening to you again.

Read More »
PHP Logo

PHP Web Auth

Download php-webauth.zip [insert link] To get started: Sign in to eService, www.eid.colostate.edu, and set the Web Auth Return Destination value https://[DestinationUrl]/result.php Locate and change the eServiceToken and Submit properties to your assigned eService Token and desired submit button (see the code’s comments for more information) in Login method of webauth.php $this->eServiceToken = ‘1234….’; $this->Submit = “Default”;

Read More »
Conferences

2022 Conference Opportunities

Note: I make no warranty as to the accuracy of any of the info below; this is just my attempt at aggregating a few conferences of personal interest in one location Conference Name Location Date Price Purpose Url Microsoft Build Online May 24 – 26 FREE (normally $2,395 in person) General purpose Microsoft developer conference

Read More »
Calendar on Portal.Office.Com

Adding Outlook Events Via portal.office.com

Here’s how to manage your Outlook calendar via a web browser: Open up your preferred browser and log into portal.office.com.  Click the Outlook Calendar icon in the left sidebar. Click the little calendar icon at the bottom left of your screen.  Or the direct link is https://outlook.office.com/calendar/. Click the blue “New Event” button in the

Read More »
ASP.Net Security

ASP.NET security configuration tips

67% of ASP.NET websites have serious configuration related security vulnerabilities https://www.troyhunt.com/67-of-aspnet-websites-have-serious/ Issue Description Many web developers believe that newer Microsoft development frameworks such as ASP.NET (aka .NET) including MVC, Web Forms, or .NET Core protect them from many of the security vulnerabilities present in classic ASP and other older technologies. However, this is a false

Read More »
Chrome extension

Building A Chrome Extension: Refresh N’ Click

I thought it might be fun to appear to be more active than I actually am on some well-known social media platform, and came up with a little experiment for the job at hand, which also enabled me to build my first Chrome extension. Once installed and activated (by clicking the extension’s icon), it will

Read More »
Caching

Caching Explained

This post greatly simplifies some of the core conepts of the web. If you’re interested in learning more about the underpinnings of the web, refer to “Further Readings” at the bottom of this post. Quick Background Before digging into caching, it’s important to briefly cover the core principles of how the Internet works. Within the

Read More »
SQL

Common SQL Queries

You must be logged in to view this content.

Please log in with your eID below:

[do_widget id=custom_html-3]

Read More »
WordPress Shortcodes

Creating Your Own WordPress Shortcode

Shortcodes: An Introduction What are shortcodes in WordPress? As WordPress.com elegantly says, A shortcode lets you do nifty things with very little effort. Think of a shortcode as a shortcut to add features to your website that would normally require lots of complicated computer code and technical ability. When Would I Need to Use a

Read More »
Responsive CSU Header

CSS-Only Responsive CSU Header

Background CSU’s brand guidelines require that our websites have a responsive header. For large screens, the CSU signature should be written out on one line (Colorado State University); on medium screens, the CSU signature should be written on two lines (Colorado State–University); on small screens, the CSU signature should be shortened to our initials (CSU).

Read More »
Migrate website

Custom ASHX File Handler for CKEditor

I recently discovered a vulnerability in some old .NET 4.8 web forms code that was used to provide basic file management within CKEditor (https://github.com/simogeo/Filemanager).  Since I don’t have the ability to rebuild the entire system at this time, I decided to implement a newer file manager instead (https://github.com/psolom/RichFilemanager/).  However, the ashx connector provided therein (https://github.com/psolom/RichFilemanager/blob/master/connectors/ashx/filemanager.ashx)

Read More »
Custom Post Types

Custom Post Types in WordPress

What Are Custom Post Types? While most WordPress sites at CSU primarily use Pages, Posts can be just as, if not more, useful in the right context. Typically, posts are viewed as a blogging feature intended for your everyday, typical blog. However, nothing within WordPress restricts you to use posts solely for blog posts. You can

Read More »
Elementor Logo

Dealing with Caching/Other Page Weirdness

Occasionally we get reports of various issues with pages, often along the lines of pages won’t update or intermittent errors.  A lot of these issues relate to the fact that we are using a very aggressive caching mechanism on our sites called Nginx Helper to improve page load times.  In any case, I thought I’d put

Read More »
Elements/Widgets

Element/Widget Glossary

Webpages are made up of various types of elements (or “widgets”). The naming of these elements can sometimes be confusing, so this is a quick reference guide to various elements and their names. Table of Contents Accordion Item #1 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar

Read More »
Elementor Logo

Elementor

What is Elementor? Elementor is one of the fastest growing page builder plugins available for WordPress. Like other page builders, it provides website editors the ability to create complex pages using a simple, intuitive interface. Editing Your Page Using Elementor Signing In Sign into the back-end of your site (if you don’t know the url

Read More »
Elementor Logo

Expand/Collapse All Buttons Using Elementor Accordion

Here’s how to have the ability to expand all/collapse all panes within an Elementor accordion element: Add an HTML widget and 2 buttons to your site.  Give the Expand All button the CSS class, “expand-all”, and the Collapse All button the class, “collapse-all” Add an HTML element to your page and paste in the code

Read More »
WordPress Logo

Finding Recent Changes In WordPress

Thought I’d denote some queries we commonly use to determine what has recently changed on one of our multisite instances in WordPress Pages/Posts SELECT ID, post_title FROM wp_X_posts WHERE post_status = ‘publish’ AND DATE(post_modified_gmt) BETWEEN ‘2023-08-15’ AND ‘2023-10-31’ AND post_type IN (‘post’, ‘page’) ORDER BY post_modified_gmt DESC; Events Manager Pro Events SELECT * FROM `wp_X_em_events`

Read More »
Varnish

Fun with Web Cache

If you’ve been using WordPress for any length of time within Student Affairs, you may have noticed that when you sign into your WordPress site there is an option at the top of your page that didn’t always use to be there, “Purge Current Page”: Caching is a strategy that servers/browsers use to increase performance

Read More »
Migrate website

Get iCal Feed Using Web Service and Adjust Event Times

Here’s some example code to fetch a token and then an iCal feed from a 3rd party service.  Unfortunately the times are in UTC and the plugin we are using doesn’t respect the VTIMEZONE attribute, so I have to use regex to individually adjust all event times. private readonly static string tokenUrl = "https://domain:8445/token"; private

Read More »
Calendar Permissions

Granting Calendar Access – Outlook Calendar Display For WordPress Plugin

Outlook Calendar Display for WordPress is a nifty little plugin that makes it possible to display the full details of any Outlook calendar on a WordPress site.  Unfortunately, it requires fairly aggressive permissions in order to generate the necessary tokens to work properly: https://wpintegrate.com/kb-article/outlook-calendar-display-for-wordpress-app-permissions/.  However, it’s possible to work around this issue by taking a

Read More »
Gravity Forms Logo

Gravity Forms

What is Gravity Forms? Gravity Forms is an extremely powerful and flexible WordPress plugin that can be used in place of nearly any traditional, paper-based form. If you or your office want to convert any existing paper-based forms to an online form, Gravity Forms is the perfect solution. Building & Configuring a Form Adding Fields/Questions

Read More »
Web Analytics

How to Check My Site’s Analytics – First Steps

I utilize Google Analytics for all of my public websites.  If you want to get to that data without my intervention, you will need a Google account to do so.  Here’s the steps that are taken to obtain analytics data: I would create a Google Analytics account profile for you and then wire up your

Read More »
Gravity Forms Logo

How to Fix A Corrupted Gravity Forms Field Using a SQL backup

Recently we had an instance where a Gravity Form containing some custom JS became corrupted, with half of the code missing.  I was able to restore the original Javascript from a SQL backup doing the following: Download a SQL backup (in my case I use Updraft) with a known “good” Gravity form Open the extracted

Read More »
Power BI

How to Switch From Import to Direct Query Mode in Power BI

I’m not sure why Microsoft sets “Import Query” as the default when creating new Power BI connections, but the tyranny of the default led me to create charts using that option.  Weeks later I realized I didn’t want to manually refresh my reports and sought to switch the query mode to be direct instead.  Here’s

Read More »
Oracle Instant Client

Installing the Oracle Client In Order To Connect to Banner/ODS

Every time I deploy a new machine I have the chore of installing the Oracle drivers/client in order to be able to connect to odsprod/banprod from my desktop (when testing locally in Visual Studio).  As I unfortunately misplaced the old directions to do so, with the help of Mike Brake I was able to recreate

Read More »
Elementor Logo

Integrating FileBird Document Library with WordPress Search

If you’d like to be able to search both your Media Library files and pages/posts, the following Javascript can get the job done.  Just ensure that you place the code on your search results page, along with the shortcode to embed FileBird. document.addEventListener("DOMContentLoaded", function () { // Function to trigger input change event on a

Read More »
Connection timeout error message

Know When Your Site Goes Down Before Your Clients Do

I’m not too happy when a site I am responsible for goes down.  I especially don’t like it when a client alerts me to this fact, when I should have known/fixed the issue myself well before their knowledge of the issue.  So, here’s how to prevent such an occurrence from ever happening to you again.

Read More »
Gravity Forms Logo

Migrating Gravity Forms Entries To a Newer/Different Site

Sometimes when we redesign a site (when we know the content doesn’t need to change much) we’ll duplicate the old site and then work on the duplicate until we’re ready to release.  There are potential problems with this approach, including that when you duplicate a site, it’s just a snapshot in time, and any changes

Read More »
PHP Logo

PHP Web Auth

Download php-webauth.zip [insert link] To get started: Sign in to eService, www.eid.colostate.edu, and set the Web Auth Return Destination value https://[DestinationUrl]/result.php Locate and change the eServiceToken and Submit properties to your assigned eService Token and desired submit button (see the code’s comments for more information) in Login method of webauth.php $this->eServiceToken = ‘1234….’; $this->Submit = “Default”;

Read More »
Power BI

Power BI – Switching from Import to Direct Query

When getting data for Power BI, the default setting is “Import” and not “DirectQuery”.  Import doesn’t work too well for me at least, because my data sets are all changing every day.  Here are some tips in converting a project to instead use DirectQuery.   First, back-up your file and then open your new copy (of

Read More »
Power BI

Power BI Slicer For Multiple Columns

Recently I had the need of creating a slicer in Power BI that would filter against different columns in a system storing the same type of data: case types for Student Legal Services. For purposes of remembering how this functionality was accomplished, I’m documenting it here: https://www.sqlbi.com/articles/creating-a-slicer-that-filters-multiple-columns-in-power-bi/#

Read More »
PowerShell

PowerShell: How To Receive Alerts When A Box is RDP’d

The following PowerShell script sends a text message and e-mail whenever any user RDPs into a Windows machine (obviously you would only want to do this in limited, critical instances).   This script is a bit of a work in progress, but got the job done for our purposes.  Note, much of this code, and the

Read More »
File lock

Protecting WordPress File Uploads

A Go-Daddy backed security company analyzed over 25k infected websites and 4,426,795 cleaned files to determine that the WordPress content management system accounted for 90% of all hacked websites in 2018 (increasing from 83% in 2017). The top three tactics for attacks included backdoors (68%), malware (56%), and SEO spam (51%).

Read More »
SEO

Search Engine Optimization

Learning about SEO Beginner’s Guide to Search Engine Optimization On-Page Search Engine Ranking Factors 15 Ways To Promote Your Site On-Page SEO: The Definitive Guide Tools 30 SEO Tools SEO Optimization with Yoast (if you don’t have Yoast on your site, contact your web developer) Five Minute Guide To Improving Your Ranking In Google While

Read More »
Slider Revolution Logo

Slider Revolution

What is Slider Revolution? Slider Revolution is an extremely powerful WordPress plugin that allows editors to create complex image sliders on their website. Most often you will see Slider Revolution being used at the top of a website’s homepage however it can be used anywhere within your WordPress website. Terminology Slides are individual slides that

Read More »
MS Access

Syncing an Access DB to MS SQL

MS Access has fallen out of favor many years ago, especially for use on the web, but it’s still being used by offices to capture data internally.  When recently asked whether that data could be exposed on a website, I thought I’d put together the following ASP.NET code to be able to do so relatively

Read More »
The Newsletter Plugin Logo

The Newsletter Plugin

What is The Newsletter Plugin? The Newsletter Plugin (sometimes referred to simply as “Newsletter” within WordPress) is a plugin that allows you to easily create newsletters to send to subscribers. While you can use it to send out a generic email with static text, the real benefit comes from it automatically pulling your website’s posts

Read More »
Tidio Logo

Tidio Live Chat

What is Tidio? Tidio is a 3rd-party service that can be integrated with your website to allow visitors to engage in real-time (live) chat with you or your staff members. This Documentation is DSA-Specific If you or your office are not within the Division of Student Affairs, we’d recommend you reach out to your unit’s

Read More »
Email Tracking

Tracking E-mail Opens

Recently I was asked by a client how she could track which recipients were opening her e-mail messages (without using a read receipt).  It turned out to be a pretty easy process, after finding this article: http://dyn.com/blog/tracking-email-opens-via-google-analytics/. As a note of caution, Apple at least offers Mail Privacy Protection which blocks this ability. Anyways, as

Read More »
Users on a Multisite

User Registration Across Sites within a Multisite Network

WordPress multisite installs come with many benefits. But they also come with some quirks. One such quirk is how it handles user registration on sibling sites within the multisite network. Hypothetical Situation In this hypothetical scenario, we will have Site A, Site B, and a user named Alice. Previously, Alice had registered as a user

Read More »
Migrate website

Using an External Web Service to Deliver WordPress E-mail

We recently discovered that Gmail doesn’t play nicely with emails that are sent from our Azure instance (which is hosting our WordPress sites).  More specifically, Gmail users don’t receive the emails sent to them. Because of this, we have developed an API that resides on a local, on-campus server, wsnet2 to send out WordPress emails.

Read More »
Google Sheets

Using ASP.NET C# to Read Data from Google Sheets

In the following tutorial, we’ll be reading a Google Sheet (https://docs.google.com/spreadsheets/d/1-6XeX59-zgqi_z5Bm8dqYyO1z37tfi8Ur7o5mxmmVKo/edit?usp=sharing), porting it into an ASP.NET web site. Create a new Visual Studio ASP.NET C# project (Ctrl + Shift + N) Create a new empty web site Create a new master page, naming it site.master, and a new content page, default.aspx Visit https://developers.google.com/sheets/api/quickstart/dotnet and enable

Read More »
rSync

Using rSync To Quickly Upgrade WordPress Plugins

We occasionally have commercial WordPress plugins that don’t auto-update.  In those instances, it’s still easy to upgrade them all at once, across both our multi-site networks/sites using the following bash script.   #!/bin/bash # execute script in terminal by running bash scriptname.sh # to generate public/private key pair (to avoid repeated logins) # ssh-keygen -t rsa

Read More »
E-mail message

Using Templates Within the DSA Bulk E-mailer

This article assumes some basic familiarity with the Division of Student Affairs Bulk E-mailer tool at http://dsalistserv.colostate.edu/emailer.aspx.  More information about basic functionality of the system can be found under the “Preview Message” tab on that site. Up until recently, you had to search through the Message History tab to find and re-use a previously sent

Read More »
What is agile

What is Agile?

What follows are two excellent introductions to learning more about agile processes (which are applicable both to software development and to project management as a whole) https://www.youtube.com/watch?v=Z9QbYZh1YXY Why Have a Daily Standup An Introduction To Scrum

Read More »
WordPress Logo

WordPress Introduction

What is WordPress? WordPress is the primary content management system (CMS) for the Division of Student Affairs and its websites. It’s open-source software that is not only the most used CMS at Colorado State University but is also the most commonly used CMS across the Internet as a whole. It allows for the rapid creation

Read More »
WPBakery Logo

WPBakery Page Builder

What is WPBakery Page Builder? WPBakery Page Builder (sometimes shortened to just WPBakery) is one of the longest maintained WordPress page builders. Due to a rebranding in 2019, you’ll sometimes see references to it using its old name “Visual Composer.” In previous versions of WordPress, it was extremely limited in its design capabilities and, as

Read More »