Skip to content

Instantly share code, notes, and snippets.

View michael-milette's full-sized avatar

Michael Milette michael-milette

View GitHub Profile
@michael-milette
michael-milette / get-wordpress-categories-array.php
Created September 26, 2017 20:21
Get a list of all WordPress categories as an array
/*
* Get a list of all categories in WordPress and return them as an array.
*/
function getCategoriesArray() {
// Retrieve object containing all of the categories.
$cats = get_categories();
// Convert the object into a simple array containing a list of categories.
$categories[] = '';
@michael-milette
michael-milette / get-wordpress-roles-array.php
Created September 26, 2017 20:25
Get a list of all roles in WordPress and return them as an array.
/*
* Get a list of all roles in WordPress and return them as an array.
* @return array of roles.
*/
function getRolesArray() {
global $wp_roles;
foreach($wp_roles->roles as $key => $role) {
$roles[] = $key;
}
return $roles;
@michael-milette
michael-milette / emailmoodleadmin.php
Last active June 25, 2018 05:49
Send email message to Moodle Administrators with optional attachments
<?php
// EmailMoodleAdmin is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// EmailMoodleAdmin is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
/**
* Description: This JavaScript enables you to set a launch and/or date and time when
* content will appear as well as when it will be removed from a page.
*
* Usage:
* <div class="AtDate" data-launch="2018-12-01T00:00:01-08:00" data-expire="2018-12-14T23:59:59-08:00">Limite lifespan content.</div>
* <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
* <script src="atdate.js"></script>
*
* Notes:
@michael-milette
michael-milette / touchsync.ps1
Created December 16, 2018 17:56
Touch / Sync file and/or folder (directory) date and time timestamp between two file paths without copying files or folders.
# Filename: touchsync.ps1
# Purpose: To touch / Sync file and/or folder date and time timestamp between two file paths without copying.
# files or folders. The default is to just touch folders. See comment in code to change this.
# Language: PowerShell for Windows.
# Version: 0.1
# Author: Michael Milette
# Copyright 2018 TNG Consulting Inc.
# License: GNU GPL 3.
# Configuration section. Note: Trailing slash must be included in the following paths. Example: "C:\DEV\":
@michael-milette
michael-milette / overlay.html
Created February 15, 2019 00:11
Overlay Responsive Image Text
<style>
.banner {
position:relative;
}
.overlay {
position: absolute;
top: 50%;
left: 60%;
width:40%;
transform: translate(-50%, -50%);
@michael-milette
michael-milette / .htaccess
Last active February 21, 2019 15:29
Useful Apache 2.4 redirection tips and tricks
####################################################
# Force client to use secure HTTPS connections only.
####################################################
RewriteEngine on
# Use HTTP Strict Transport Security to force client to use secure connections only.
RewriteCond %{HTTPS} on
RewriteRule ^ - [ENV=HTTPS:true]
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
/**
* Enables scrolling to a class instead of an ID for applications like Moodle that use YUI.
* YUI often litters your HTML code adding what appears to be random ID's for every element. This means that you can't
* actually use ID's in your HTML, and hence, cannot create in-page links. This solves that problem.
* Usage:
* 1) Add this code to your web page.
* 2) Add a class called goto-WhatEverYouWant such as class="goto-section5" to an element.
* 3) When you load the page, any classes starting with goto- will become an ID for that element.
* This will enable you to create in-page links such as <a href="#section5">Section 5</a>
* Consider combining this with the optional smooth scrolling Gist for a nice touch.

Cheatsheet: MySQL vs PostgreSQL commands

Description MySQL PostgreSQL
Connect to database server mysql -u username -p psql -U username
Import a database mysql -u username -p databaseName < data.sql psql -U username databaseName < data.sql
List databases SHOW databases; \l
Use/Connect to datbase with name USE databaseName; \c databaseName
List tables SHOW tables; \dt
List users SELECT user, host FROM mysql.user; \du