Skip to content

Instantly share code, notes, and snippets.

View christianhanvey's full-sized avatar

Christian Hanvey christianhanvey

View GitHub Profile
@christianhanvey
christianhanvey / modx-content-search-and-replace.php
Last active December 21, 2025 21:04
MODX utility snippet: replace absolute formed links in site content eg www.xxx.com/99 -> [[~99]] note: backing up modx_site_content table is a good idea before running this :) (original author: BobRay)
<?php
$docs = $modx->getCollection('modDocument');
$pattern = '/www.xxx.com/(\d+)/';
$replacement = '[[~$1]]';
$count = 0;
foreach ($docs as $doc) {
$content = $doc->getContent();
$hash1 = sha1($content);
@christianhanvey
christianhanvey / modx-snippets.php
Last active September 5, 2025 07:08
Useful snippets for MODX Revo
Snippet: [[SnippetName]]
Chunk: [[$ChunkName]]
System Setting: [[++SettingName]]
TV: [[*fieldName/TvName]]
Link tag: [[~PageId? &paramName=`value`]]
Placeholder: [[+PlaceholderName]]
<?php
@christianhanvey
christianhanvey / modx-upgrade.sh
Last active August 2, 2025 04:07
A shell script to help automate the upgrade of a MODX Revolution installation
#!/bin/bash
# modx-upgrade.sh
# ---------------
# A shell script to help automate the upgrade of a MODX Revolution installation
# This script is for traditional installations only - not advanced
#
# Instructions:
# 1. Update the config section with your own site specific details
# 2. Upload this file to your server, preferably outside of web root
javascript:void(location.href='https://12ft.io/'+location.href);
javascript: (() => { window.location.replace("https://12ft.io/" + window.location.href)})();
@christianhanvey
christianhanvey / modx object examiner
Created July 22, 2012 11:25
modx revo object debug helper snippet
<?php
/**
* File viewRevoObjects.php (requires MODx Revolution 2.1)
* Created on: 9/17/11 at 9:49 AM
* Project shawn_wilkerson
* @elements
* @version 1.0
* @category
* @author W. Shawn Wilkerson
@christianhanvey
christianhanvey / prevent-animations.directive.js
Created November 8, 2021 22:15
AngularJS Prevent-Animations directive
angular
.module('utilities')
.directive('preventAnimations', ['$animate', function ($animate) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
$animate.enabled(element, false);
}
};
}]);
@christianhanvey
christianhanvey / convertMarkdown.php
Created June 21, 2012 13:20
convert from Markdown to HTML - MODX custom output filter
<?php
/* convertMarkdown - a custom output filter
* by Christian Hanvey
* WTFPL License
*
* ORIGINAL PHP MARKDOWN CLASS by Michel Fortin
* http://michelf.com/projects/php-markdown/
*
*
@christianhanvey
christianhanvey / MODX caching.md
Last active June 14, 2017 11:26
Some links on caching for MODX

If you are using git, so you can take advantage of static elements within MODX, you will need to be aware that simply updating your files does not mean MODX will pick that up. It will pick up changes in a file IF you the element is being called uncached.

http://forums.modx.com/forums/thread/73346/static-resources-don-t-update-without-cache-clear http://forums.modx.com/thread/73002/static-sources-caching-and-setup

This is not a big deal while working on a development site, performance is not your initial priority at that point. But when you get to deploying, you'll need to know that updating a file will not necessarily update how your site runs, and you don't want to be clearing your entire site cache. A big site would be taking a heavy server hit as its visitors trigger all pages regenerating their cache...

For an overview of MODX caching strategy, start at the documentation (of course) if you havn't already:

@christianhanvey
christianhanvey / gist:2768300
Created May 22, 2012 10:51
Update resource fields on save (MODX Revo 2.2)
<?php
/*
Update resource fields when they are saved
trigger on the following system events:
OnBeforeDocFormSave
OnDocFormSave
note: changing / inserting tv values is better done onDocFormSave as the process for saving tvs onBeforeDocFormSave is much more complicated (apparently)