Skip to content

Instantly share code, notes, and snippets.

View chriscalip's full-sized avatar

Christopher Calip chriscalip

  • Chicago, IL
  • 04:07 (UTC -05:00)
View GitHub Profile
@chriscalip
chriscalip / xxx.drush.inc
Last active March 6, 2019 20:10
Demo of `drush-update-assets-via-csv`
<?php
/**
* Command callback. drush update-assets-via-csv
*/
function drush_capacitype_deploy_update_assets_via_csv() {
$source_csv = (!is_null(drush_get_option('csv'))) ? drush_get_option('csv') : '';
if (empty($source_csv)) {
drush_print_r('Expected parameter, csv not found.');
return;
@chriscalip
chriscalip / migrate_plus.migration.naw_adds_2pf_recovery_support.yml
Created October 26, 2018 23:55
Migrating csv data to node and corresponding paragraph
langcode: en
status: true
migration_tags:
- CSV
- non-aa
id: naw_adds_2pf_recovery_support
migration_group: csvimports
label: "Imports data from naw-adds-import.csv to paragraph:profile_support"
dependencies:
enforced:
@chriscalip
chriscalip / gist:78090dd9897027ea7558373d63ebecc8
Created May 30, 2018 22:52
possible solution on slack question for migration.
field_mandates/target_id:
-
plugin: migration
migration: d7_field_collection
source: value
-
plugin: extract
index:
- '0'
field_mandates/target_revision_id:
@chriscalip
chriscalip / gist:a0509ea657a56ffba1cec43d6fb7cf6e
Created May 15, 2018 20:11
Supporting data explaining issue Add feature id_mapping for destination plugin table. https://www.drupal.org/project/migrate_plus/issues/2949271
id: assetnode2model
label: "Asset Nodes to asset model."
migration_group: d82tables
dependencies:
enforced:
module:
- capacitype_move2aa
langcode: en
status: true
source:
id: termgroup2table
label: "Group taxonomy terms to group model."
migration_group: d82tables
dependencies:
enforced:
module:
- capacitype_move2aa
langcode: en
status: true
source:
<?php
namespace Drupal\capacitype_move2aa\Plugin\migrate\destination;
use Drupal\Core\Database\Connection;
use Drupal\Core\Database\Database;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\migrate\MigrateException;
use Drupal\migrate\MigrateSkipProcessException;
use Drupal\migrate\Plugin\MigrationInterface;
@chriscalip
chriscalip / gist:71be530785c3481ab8b21fdc85c77a36
Created February 16, 2018 02:33
dealing with Drupal 8 entity_load_multiple crashes on massive datasets via garbage collections.
<?php
$nids = [];
// example nids has 10k+
// $nids = some_logic();
$node_records = []; $throughput = 50; $nids = array_chunk($nids, $throughput);
foreach ($nids as $subset_id => $subset_nids) {
// var_dump([$subset_id,memory_get_peak_usage(),]);
$nodes = [];
$nodes = entity_load_multiple('node', $subset_nids, TRUE);
<?php
namespace Backpack\NewsCRUD\app\Http\Controllers\Admin;
use Backpack\CRUD\app\Http\Controllers\CrudController;
// VALIDATION: change the requests to match your own file names if you need form validation
use Backpack\NewsCRUD\app\Http\Requests\ArticleRequest as StoreRequest;
use Backpack\NewsCRUD\app\Http\Requests\ArticleRequest as UpdateRequest;
class ArticleCrudController extends CrudController
<?php
namespace Backpack\NewsCRUD\app\Http\Controllers\Admin;
use Backpack\CRUD\app\Http\Controllers\CrudController;
// VALIDATION: change the requests to match your own file names if you need form validation
use Backpack\NewsCRUD\app\Http\Requests\ArticleRequest as StoreRequest;
use Backpack\NewsCRUD\app\Http\Requests\ArticleRequest as UpdateRequest;
class ArticleCrudController extends CrudController
@chriscalip
chriscalip / VocabularyCrudController.php
Created January 9, 2018 23:16
Explaining the idea of Is it possible for Backpack\CRUD\app\Http\Controllers\CrudController on method setup to change the underlying query? eg. /admin/vocabulary/{vid}/overview Overview CRUD of terms that are children of vocabulary {vid}?
<?php
namespace App\Http\Controllers\Admin;
use Backpack\CRUD\app\Http\Controllers\CrudController;
use App\Http\Requests\VocabularyCrudRequest as StoreRequest;
use App\Http\Requests\VocabularyCrudRequest as UpdateRequest;
class VocabularyCrudController extends CrudController {