Skip to content

Instantly share code, notes, and snippets.

View scottsb's full-sized avatar

Scott Buchanan scottsb

View GitHub Profile
@scottsb
scottsb / gist:ebd4e00be4eb2cb18cc2
Last active August 29, 2015 14:10
All CSS Slide-Out Menu
<html>
<head>
<style type="text/css">
body {
font-family: helvetica, sans-serif;
margin: 0;
}
p {
margin: 0 0 1em;
}
@scottsb
scottsb / example.php
Last active September 11, 2015 22:01
Hack to handle multiple Exception types with a single block
<?php
class Foo extends Exception {}
class Bar extends Exception {}
class Baz extends Exception {}
try {
throw new Foo();
} catch (Exception $e) {
switch (get_class($e)) {
case 'Foo':
@scottsb
scottsb / example.php
Created September 28, 2015 13:45
Comedy of Errors
<?php
class Example {
protected $_defaultItemKey;
protected $_items;
// BUG: forces a zero-base reindex when default item is added to front of array
public function __construct($defaultItem) {
// Pretend these are loaded from the database
$this->_items = [
@scottsb
scottsb / gist:b67753b2c196fc33946c
Last active November 28, 2015 19:19
Bookmarklet to create Google Now reminder
javascript:open('https://www.google.com/webhp?#q=set+a+reminder','targetname','height=480,width=980');
@scottsb
scottsb / sugit
Last active February 2, 2016 16:26
Run Git as Repo Owner
#!/bin/sh
# Execute git commands passed on command line as whatever user owns the current Git repository.
# Script can be substituted 1:1 for git in commands.
# Available under the MIT license.
sudo -u $(stat -c %U $(git rev-parse --git-dir)) git "$@"
@scottsb
scottsb / checklist.md
Created February 24, 2016 20:25
Data to Hand Off in Digital Agency Transition
  • Credentials for site admin
  • Credentials for hosting environment
  • Credentials for domain registration & DNS
  • Admin access to any site analytics platforms
  • If the code is in version control, copy of full repository including metadata (so we can preserve commit history)
  • Explanation of how code is currently deployed to the server, including a copy of any scripts used
  • License keys & registration information for any platform third-party modules purchased
  • Any code or architecture documentation
  • List of any known outstanding defects or maintenance improvements needed
@scottsb
scottsb / pre-commit
Last active July 15, 2017 15:42 — forked from timsweb/pre-commit
Git hook to prevent committing xdebug_break() functions. Save as .git/hooks/pre-commit then chmod +x it. Submodules also have their own hooks folder: ".git/modules/submodule/path/here/hooks".
#!/bin/sh
for FILE in `git diff --cached --name-only` ; do
# Check if the file contains 'debugger'
grep -qE '^[ \t]*xdebug_break()' $FILE
if [[ $? -eq 0 ]]
then
echo $FILE ' contains xdebug_break()! To commit retry with --no-verify'
exit 1
fi
@scottsb
scottsb / component-library-generators.md
Last active December 8, 2017 16:13
Component Library Generators for Existing Site

Component Library Generators for Existing Sites

Goal

Identify a tool for generating a living component/pattern library that can be integrated alongside a pre-existing code base. Ideally should be able to generate static HTML as part of a Grunt/Gulp job.

Finalists

@scottsb
scottsb / fix-diffcase-images.sh
Last active April 19, 2019 10:24
Fix name of images in Magento whose names only vary by case (renaming them both in the filesystem and the database catalog). This is useful if media files need to pass through a case-insensitive filesystem, like a Mac.
#!/bin/bash
# Settings
SUFFIX=alt
MAGERUNCMD=magerun
# Sanity Checks
type $MAGERUNCMD >/dev/null 2>&1 || {
echo "ERROR: This script requires the command '$MAGERUNCMD' to be executable in the current path."
exit
@scottsb
scottsb / fix-description.md
Last active July 5, 2019 20:20
Patch for WooCommerce Auth.net DPM SHA2 Response Calculation

The WooCommerce Authorize.net DPM plugin (v.1.8.0) has a bug in the SHA2 response calculation, causing the following error to appear to customers when they enter invalid credit card information (as well as an email to the merchant admin email):

An error occurred while trying to report this transaction to the merchant. An e-mail has been sent to the merchant informing them of the error. The following is the result of the attempt to charge your credit card.

As a quick fix, open the file class-wc-authorize-net-relay-response-handler.php and search for this bit of code:

! empty( $data[ $hash_field ] )

And replace with this: