Skip to content

Instantly share code, notes, and snippets.

Avatar

Aaron Crosman acrosman

View GitHub Profile
@acrosman
acrosman / 1. snowfakery_npsp_basic_recipe.yml
Last active Nov 21, 2020
Snowfakery NPSP Basic Recipe
View 1. snowfakery_npsp_basic_recipe.yml
# Snowfakery Recipe to generate data for a specific project that uses NPSP.
# This recipe will generate 30 accounts with gifts using NPSP standard patterns. Yes, you can make the 30 a parameter,
# but the goal here is simple for first time users. Gift yourself homework of making that a variable. This recipe also
# assumes that you need payment records but are not automatically generating those in NPSP settings.
# Load the NPSP macros (which in turn load marcos for SF Standard objects).
- include_file: npsp_macros.yml
# Create an Account using the SF Standard Object macro loaded in the previous line.
- object: Account
View cci_output_2020-09-03 15:18:21.124102.txt
CumulusCI version: 3.17.1
Python version: 3.8.5 (c:\users\ahcrosman\.local\pipx\venvs\cumulusci\scripts\python.exe)
Environment Info: Windows / AMD64
Last Command Run
================================
C:\Users\ahcrosman\.local\bin\cci org list
Traceback (most recent call last):
File "c:\users\ahcrosman\.local\pipx\venvs\cumulusci\lib\site-packages\cumulusci\cli\cci.py", line 221, in main
@acrosman
acrosman / DataLoaderBatchService.php
Created Jul 30, 2019
A Drupal 8 batch job to load large amounts of data into a Pantheon web site. Relies on Batch Services sandbox module: https://www.drupal.org/sandbox/acrosman/3025562
View DataLoaderBatchService.php
<?php
namespace Drupal\example_pantheon_loader;
use Drupal\Core\Database\Connection;
use Drupal\batch_service_interface\AbstractBatchService;
use Drupal\Core\Logger\LoggerChannelFactoryInterface;
use Drupal\Core\StringTranslation\TranslationInterface;
use Drupal\file\Entity\File;
use Drupal\Core\File\FileSystem;
@acrosman
acrosman / FA_Signing.php
Last active Apr 26, 2019
A PHP function to sign dynamic parameters for FormAssembly
View FA_Signing.php
<?php
function prepareFormAssemblyQueryString(array $parameters, $salt, $expire_timeout) {
$parts = [];
$signString = '';
foreach($parameters as $key => $value) {
$signString .= $key . $value;
$parts[] = rawurlencode($key) . '=' . rawurlencode($value);
}
$expireTime = time() + $expire_timeout;
$signString .= 'expire' . (string)$expireTime;
@acrosman
acrosman / SidebarCondition.php
Last active Oct 15, 2020
A Drupal 8 block condition to set visibility based on a node's field value.
View SidebarCondition.php
<?php
namespace Drupal\my_block\Plugin\Condition;
use Drupal\Core\Condition\ConditionPluginBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
@acrosman
acrosman / CachingController.php
Created May 6, 2017
A simple example Drupal Controller with a cached JSON Response.
View CachingController.php
<?php
namespace Drupal\example\Controller;
use Symfony\Component\HttpFoundation\Request;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Cache\CacheableJsonResponse;
use Drupal\Core\Cache\CacheableMetadata;
class ExampleController extends ControllerBase {
@acrosman
acrosman / JsonController.php
Created May 6, 2017
A simple example Drupal Controller with an uncached JsonResponse
View JsonController.php
<?php
namespace Drupal\example\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
class ExampleController extends ControllerBase {
public function getJson(Request $request) {
View custom_blocks_copyright.html.twig
View custom_blocks.module
<?php
/**
* Implements hook_theme().
*/
function custom_blocks_theme($existing, $type, $theme, $path) {
return [
'custom_blocks_copyright' => [
'variables' => [
View CopyrightBlock.php
<?php
namespace Drupal\custom_blocks\Plugin\Block;
use Drupal\Core\Block\BlockBase;
/**
* Provides a 'CopyrightBlock' block.
*
* @Block(