Skip to content

Instantly share code, notes, and snippets.

@christianseel
christianseel / Chunk tabNavigationItem
Last active November 8, 2023 11:47
"generateTabs" output filter for ContentBlocks. See http://slides.com/christianseel/contentblocks/ for instructions.
<li class="tab-title [[+idx:is=`1`:then=`active`:else=``]]" role="presentational">
<a href="#[[+id]]" role="tab" tabindex="0" aria-selected="false" controls="[[+id]]">[[+title]]</a>
</li>
@christianseel
christianseel / fix-file-permissions
Created March 13, 2015 14:07
fix file and folder permissions for MODX
<?php
switch($modx->event->name) {
case 'OnFileManagerDirCreate':
$modx->log(modX::LOG_LEVEL_ERROR, 'fix folder permissions for: '.$directory.'/');
chmod($directory.'/', octdec($modx->getOption('new_folder_permissions')));
break;
case 'OnFileManagerFileCreate':
$modx->log(modX::LOG_LEVEL_ERROR, 'fix file permissions for: '.$path);
chmod($path, octdec($modx->getOption('new_file_permissions')));
break;
@christianseel
christianseel / introRTE
Created August 14, 2014 14:52
RTE for introtext #modx
<?php
// Add RTE for introtext if richtext option is enabled for the resource
// check "OnDocFormRender" event
$modx->regClientStartupHTMLBlock('<script>Ext.onReady(function() {
if(MODx.loadRTE) MODx.loadRTE("modx-resource-introtext");
});</script>');
@christianseel
christianseel / MODX index.php
Created June 28, 2017 15:35
MODX index.php with XRouting integrated
<?php
/*
* This file is part of MODX Revolution.
*
* Copyright (c) MODX, LLC. All Rights Reserved.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
@christianseel
christianseel / alfred_sipgate
Last active May 15, 2016 21:18
AppleScript for www.alfredapp.com for Sipage. You need to be logged in at sipgate.com at the same time
on alfred_script(q)
tell application "Google Chrome"
set ActivePage to window 1
set CallTab to make new tab at end of tabs of ActivePage
set URL of CallTab to "https://app.sipgate.com/"
delay 1
set jscode to "function post(path, params, method) { method = method || 'post'; var form = document.createElement('form'); form.setAttribute('method', method); form.setAttribute('action', path); for(var key in params) { if(params.hasOwnProperty(key)) { var hiddenField = document.createElement('input'); hiddenField.setAttribute('type', 'hidden'); hiddenField.setAttribute('name', key); hiddenField.setAttribute('value', params[key]); form.appendChild(hiddenField); } } document.body.appendChild(form); form.submit(); } post('https://secure.live.sipgate.de/ajax-fast.php/account/click2dial/', {from: '2373479e0', to: '" & q & "'});"
execute front window's active tab javascript jscode
delay 1
@christianseel
christianseel / extract-teaser-layouts.php
Last active May 6, 2016 09:36
MODX Plugin (OnDocFormSave): Extract Teaser Layouts – saves a specific ContentBlocks layout into a TV to make it available elsewhere. To prevent the layout from rendering in the content area you need to wrap your CB layout template into [[+render_teaser:is=`1`:then=`<template here>`:else``]]
<?php
// load service
$corePath = $modx->getOption('contentblocks.core_path', null, $modx->getOption('core_path').'components/contentblocks/');
$ContentBlocks = $modx->getService('contentblocks','ContentBlocks', $corePath.'model/contentblocks/');
// get cb json
if ($modx->event->name == 'OnDocFormSave') {
$cbJson = $resource->get('contentblocks');
} else {
$cbJson = $resource->getProperty('content','contentblocks','');
@christianseel
christianseel / modParsedManagerController
Created April 14, 2016 07:48
save at core/components/<yournamespace>/controllers/<alias>.class.php and call it via /manager/?a=<alias>&namespace=<yournamespace> (make sure to add the namespace to you namespaces in MODX) – http://modxcookbook.com/customize-manager/cmps/cmp-made-easy.html
<?php
class TestcmpParsedManagerController extends modParsedManagerController
{
public function getPageTitle() {
return 'Test CMP';
}
public function process(array $scriptProperties = [])
{
@christianseel
christianseel / modxcloud nginx web rules
Last active March 31, 2016 20:32
# x-ua-xompatible # expire headers for assets # www.mydomain.com -> mydomain.com # filename-based cache busting # trailing slash redirect # statcache rewrite # modx furls rewrite
# x-ua-xompatible header
add_header X-UA-Compatible IE=edge,chrome=1;
#default charset uft-8
charset utf-8;
# allowed domains
set $rewrite_var 0;
@christianseel
christianseel / regClient.snippet.php
Last active February 2, 2016 12:54
Usage: [[!regClient? &input=`markup or script here` &function=`htmlToBottom`]]
<?php
$options = isset($options) ? $options : 'htmlToBottom';
$function = $modx->getOption('function', $scriptProperties, $options);
$plaintext = (strstr($input, PHP_EOL)) ? true : false;
switch ($function) {
case 'cssToHead':
$modx->regClientCSS($input);
break;
case 'htmlToHead':
$modx->regClientStartupHTMLBlock($input);
@christianseel
christianseel / .htaccess
Last active December 27, 2015 20:19
MODX Revolution default .htaccess for All-Inkl.com
# ----------------------------------------------------------------------
# PHP Settings
# ----------------------------------------------------------------------
# php cgi 5.4.x
AddHandler php54-cgi .php
# set default timezone
php_value date.timezone "Europe/Berlin"